Method and apparatus for processing region related annotations in an image file

By organizing region items in a hierarchical spatial partition and associating them with data structures indicating area and scale, the method addresses the inefficiencies in HEIF and MIAF formats, enhancing rendering speed and reducing computational load for high-resolution images.

GB2634579APending Publication Date: 2025-04-16CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
GB2023017475
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-09
Filing Date
2023-11-15
Publication Date
2025-04-16

AI Technical Summary

Technical Problem

The HEIF and MIAF file formats do not provide efficient means to determine which region items should be parsed and processed when displaying only a part of a high-resolution image, leading to increased computing resources and reduced rendering speed.

Method used

The method involves organizing region items into a hierarchical spatial partition, such as a quadtree, and associating them with data structures that indicate the area and rendering scale, allowing selective parsing and rendering of relevant region items based on the desired image portion.

Benefits of technology

This approach reduces computing resources and accelerates rendering by only processing region items necessary for the displayed image portion, improving efficiency in handling high-resolution images with numerous annotations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Encapsulation of image 100 in ISOBMFF, comprising: obtaining image; obtaining a plurality of region annotations 130, 131, 140, 141 associated (cdsc) with the image; obtaining region partitioning information of the image (qdce & qdch); generating a plurality of data structures representing a region partition of the image; associating the region annotations with the data structures based on the region partitioning information; embedding the image, the region annotations and the plurality of data structures in the media file. Rendering (parsing) a spatial portion of an image 100 from an ISOBMFF, comprising: obtaining image item describing the image from media file and an area of the image to display; obtaining from the media file a plurality of data structures representing a region partition of the image; filtering the data structures based on the area of the image to display; further filtering the data structures based on a rendering scale of the area of the image to display; obtaining from the media file region items comprising region annotations 130, 131, 140, 141 associated with the filtered data structure based on a region partition information (qdce & qdch); rendering the spatial portion of the image and region annotations comprised in the obtained region items.
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION The present disclosure concerns a method and a device for processing information related to regions in an image file. BACKGROUND OF INVENTION Modern cameras and image analysis services enable to generate localized metadata for images. Localized metadata are metadata related to a region, a portion, of a media content and not to the whole media content. The media content is typically an image, but it may also be a video content, or a set of images. For example, a camera may generate the focusing region for a photo or detect faces while taking a picture. As another example, a deep-learning system may identify objects inside an image. These localized metadata may be seen as region annotations. Images captured by a camera or processed by an image analysis service are stored on a storage device like a memory card, for example. The images are typically encoded to reduce the size of data on the storage device. Many encoding standards may be used, like JPEG, AV1, or the more recent HEVC standard. The HEVC standard defines a profile for the encoding of still images and describes specific tools for compressing single still images or bursts of still images. An extension of the ISO Base Media File Format (ISOBMFF) used for such kind of image data has been proposed for inclusion into the ISO / IEC 23008 standard, in Part 12, under the name: “HEIF” or “High Efficiency Image File Format’. HEIF (High Efficiency Image File Format) is a standard developed by the Moving Picture Experts Group (MPEG) for storage and sharing of images and image sequences. The MIAF (Multi-Image Application Format) is a standard developed by MPEG into ISO / IEC 23000 standard part 22. The MIAF specification specifies a multimedia application format, the Multi-Image Application Format (MIAF), which enables precise interoperability points for the creation, reading, parsing and decoding of images embedded in the High Efficiency Image File (HEIF) format. The MIAF specification fully conforms to the HEIF format and only defines additional constraints to ensure higher interoperability. The HEIF and MIAF file formats provide a mechanism adapted to linking annotations to a region of an image relying on region items. However, for a high- resolution image, the number of region items may become very large. The HEIF and MIAF file formats do not provide means for determining which region items should be parsed and processed when displaying only a part of the high-resolution image. SUMMARY OF THE INVENTION The present invention has been devised to address one or more of the foregoing concerns. According to a first aspect of the invention there is provided a method of encapsulation of an image in an ISOBMFF based media file, wherein the method comprises: - obtaining an image; - obtaining a plurality of region annotations associated with the image; - obtaining region partitioning information of the image; - generating a plurality of data structures representing a region partition of the image; - associating the region annotations with the data structures based on the region partitioning information; - embedding the image, the region annotations and the plurality of data structures in the media file. In an embodiment, the region partitioning information comprises information on the area covered by a region partition and rendering scale information. In an embodiment, the data structures are cells representing a spatial partition of the image. In an embodiment, the cells are organized in a tree representing a hierarchical spatial partition of the image, the cell at the top of the tree being associated with the image, each cell being associated with child cells in the tree if any. In an embodiment, each layer in the tree represents a version of the image at a given rendering scale. In an embodiment, the association of a region annotation with a cell are based on the location and size of the region and / or an associated rendering scale range and / or priority level. In an embodiment, the tree is a quadtree. In an embodiment, each layer of the tree is associated with an image overview of the image at a given resolution. In an embodiment, each overview image, but the overview image associated with the top of the tree, is divided into tiles, the cells of the tree being associated with tiles of overview images. In an embodiment, the region annotation are grouped into region items, and wherein the data structures represent groups of region items. In an embodiment, the data structures are entity to group boxes. According to another aspect of the invention there is provided a method of rendering a spatial portion of an image from an ISOBMFF based media file, wherein the method comprises: - obtaining an image item describing the image from the media file and an area of the image to display; - obtaining from the media file a plurality of data structures representing a region partition of the image; - filtering the data structures based on the area of the image to display; - further filtering the data structures based on a rendering scale of the area of the image to display; - obtaining from the media file region items comprising region annotations associated with the filtered data structures based on a region partition information; - rendering the spatial portion of the image and region annotations comprised in the obtained region items. In an embodiment, the region partitioning information comprises information on the area covered by a region partition and rendering scale information. In an embodiment, the data structures are cells representing a spatial partition of the image. In an embodiment, the cells are organized in a tree representing a hierarchical spatial partition of the image, the cell at the top of the tree being associated with the image, each cell being associated with child cells in the tree if any. In an embodiment, each layer in the tree represents a version of the image at a given rendering scale. In an embodiment, the association of a region annotation with a cell are based on the location and size of the region and / or an associated rendering scale range and / or priority level. In an embodiment, the tree is a quadtree. In an embodiment, each layer of the tree is associated with an image overview of the image at a given resolution. In an embodiment, each overview image, but the overview image associated with the top of the tree, is divided into tiles, the cells of the tree being associated with tiles of overview images. In an embodiment, the region annotation are grouped into region items, and wherein the data structures represent groups of region items. In an embodiment, the data structures are entity to group boxes. According to another aspect of the invention there is provided a computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to the invention, when loaded into and executed by the programmable apparatus. According to another aspect of the invention there is provided a computer-readable storage medium storing instructions of a computer program for implementing a method according to the invention. According to another aspect of the invention there is provided a computer program which upon execution causes the method of the invention to be performed. According to another aspect of the invention there is provided a device for encapsulation of an image in an ISOBMFF based media file, wherein the device comprises a processor configured for: - obtaining an image; - obtaining a plurality of region annotations associated with the image; - obtaining region partitioning information of the image; - generating a plurality of data structures representing a region partition of the image; - associating the region annotations with the data structures based on the region partitioning information; - embedding the image, the region annotations and the plurality of data structures in the media file. According to another aspect of the invention there is provided a device for rendering a spatial portion of an image from an ISOBMFF based media file, wherein the device comprises a processor configured for: - obtaining an image item describing the image from the media file and an area of the image to display; - obtaining from the media file a plurality of data structures representing a region partition of the image; - filtering the data structures based on the area of the image to display; - further filtering the data structures based on a rendering scale of the area of the image to display; - obtaining from the media file region items comprising region annotations associated with the filtered data structures based on a region partition information; - rendering the spatial portion of the image and region annotations comprised in the obtained region items. At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit", "module" or "system". Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible, non-transitory carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal. BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 illustrates an embodiment of the invention for indicating under which rendering conditions a region item associated with an image is intended to be used; Figure 2 illustrates steps for creating an image file, for example an HEIF, a MIAF or any other ISOBMFF-based file format, according to embodiments of the invention; Figure 3 illustrates steps for using a tree of quadtree cells associated with an image item to select region items to retrieve and render in embodiments of the invention; Figure 4 illustrates an embodiment of the invention when using image overviews; Figure 5a illustrates an embodiment where region items are grouped into region partition groups; Figure 5b illustrates another embodiment where region items are grouped into region partition groups; Figure 6 is a schematic block diagram of a computing device for implementation of one or more embodiments of the invention. DETAILED DESCRIPTION OF THE INVENTION The HEVC standard defines a profile for the encoding of still images and describes specific tools for compressing single still images or bursts of still images. An extension of the ISO Base Media File Format (ISOBMFF) used for such kind of image data has been proposed for inclusion into the ISO / IEC 23008 standard, in Part 12, under the name: “HEIF” or “High Efficiency Image File Format". The HEIF and MIAF standards cover two forms of storage corresponding to different use cases: • the storage of image sequences, which can be indicated to be displayed as a timed sequence or by other means, and in which the images may be dependent on other images, and • the storage of a single coded image or a collection of independently coded images, possibly with derived images. In the first case, the encapsulation is close to the encapsulation of the video tracks in the ISO Base Media File Format (see document « Information technology — Coding of audiovisual objects — Part 12: ISO base media file format», w18855, ISO / IEC 14496-12, Sixth edition, October 2019), and similar tools and concepts are used, such as the ‘trak’ boxes and the sample grouping for description of groups of samples. The ‘trak’ box is a file format box that contains sub boxes for describing a track, that is to say, a timed sequence of related samples. Boxes, also called containers, are hierarchical data structures provided to describe the data in the files. Boxes are object-oriented building blocks defined by a unique type identifier (typically a four-character code, also noted FourCC or 4CC) and a length. All data in a file (media data and metadata describing the media data) is contained in boxes. There is no other data within the file. File-level boxes are boxes that are not contained in other boxes. In the second case, a set of ISOBMFF boxes, the ‘meta’ boxes are used. These boxes and their hierarchy offer fewer description tools than the ‘track-related’ boxes (‘trak’ box hierarchy) and relate to “information items” or “items” instead of related samples. It is to be noted that the wording ‘box’ and the wording ‘container’ may be both used with the same meaning to refer to data structures that contain metadata describing the organization or / and properties of the image data in the file. The HEIF and MIAF standards also enable to annotate regions from an image. The description of one or more region is realized in a “region item”. This region item can be associated with an image item through an item reference of type ‘cdsc’. Annotations can be associated with the regions described by a region item by either associating other items with the region item or by associating item properties with the region item. Annotated regions can be described for a video track or a sequence of images using a “region track”. This region track is associated with the video track or the sequence of images using a track reference of type ‘cdsc’. The region track describes the different regions and allows associating a region annotation with each region. In the following, the description targets HEIF or MIAF files only as an example. Other types of files following the ISOBMFF standard or similar structure may also take advantage of the invention. Rendering an HEIF or MIAF file requires several processing steps. First, the file, or part of the file, needs to be read into memory. Then, the file, or the part of the file, has to be parsed. Specifically, the ‘meta’ box may be parsed for obtaining information about the items, groups and item properties present in the file. As each box contains its size as its first field and its type as its second field, it is possible to parse only some of the boxes present in an HEIF or MIAF based on their types and the information searched for. The next step is to process the parsed information to complete the structures specified in the file and to connect them. For instance, an EntityToGroupBox contains a list of identifiers for the entities it contains. Linking an EntityToGroupBox to its contained entities requires finding the entities corresponding to these identifiers. As another example, the ‘ipma’ box associates item identifiers with item property indexes. Linking an item with its item properties requires finding its identifiers in the ‘ipma’ boxes, obtaining the list of item property indexes associated with this identifier and then retrieving the item properties corresponding to these indexes. Last, for each item, its content is retrieved and decoded. The ‘iloc’ box indicates the location of the content of the different items, for instance the media data corresponding to an image item in the media data box or as another example the description of regions corresponding to a region item in an item data box. Using this location, the content of an item may be read from the HEIF or MIAF file. Then the content may be parsed and used for rendering the item. When using region annotations, a region item specifies one or more regions. The geometry of the regions is specified in the content (or payload) of the region item. This means that the location of a region is stored in the content of a region item. This means that for rendering a region item, all the steps described above are required. In particular, determining which regions apply to an area of an image item requires parsing all the region items associated with this image item. The goal of the invention is to provide means for determining whether a region item is to be rendered when doing a partial rendering of the image item it describes without requiring to read and parse the content of the region item. In other words, the invention provides a mechanism to split region items associated with an image item into several groups depending on their location in the image. Possibly, the processing of the parsed information for region items may be realized only for a region item needed by the partial rendering of its associated image item. For instance, the association of a region item with other items describing it or with item properties associated with it may be realized only for region items needed by the partial rendering of an image item. In other words, considering an image item associated with a plurality of region items, the goal is to identify the region items of interest for a subpart of the image item without requiring the parsing of all the region items to compare their geometry data to the geometry of the subpart. When rendering the subpart, only the identified region items are parsed, which saves computing resources and accelerates the rendering. According to embodiments of the invention, a plurality of region items may be grouped into a partition corresponding to an area of an image item containing these region items. This partition may be used to identify the region items contained in the area when rendering the image item. Several partitions may be associated with an image item. These partitions may be organized as a tree, where a parent partition contains one or more child partitions. The number of children for a parent partition may be constrained, for instance into a quadtree where a parent partition has four children. Figure 1 illustrates an embodiment of the invention for indicating under which rendering conditions a region item associated with an image is intended to be used. The image item 100, of type ‘hvcT, may be an image with several region annotations. This image may be for instance a very large picture generated by combining several photos. For example, it may be a picture of a crowd generated from several photos of this crowd, it may be an aerial or satellite image. The invention targets images with a large number of region annotations, but it may also be applied to images with only a few region annotations. The region annotations associated with this image item 100 are described by the region items 130, 131, 140 and 141 of type ‘rgan’. Each of these region items is linked to the image item 100 through an item reference of type ‘cdsc’. Each region item may describe one or more regions in its data. The annotations corresponding to a region item may be stored in item properties associated with this region item or in other items. These annotations are not illustrated in Figure 1. Region items may describe regions corresponding to different parts of an image, or regions more useful for a specific rendering scale of the image. For instance, a region item may correspond to a large region inside the image and may be most useful when the image is displayed as a whole or ata small scale. Inversely, another region item may correspond to a detail inside the image and may be most useful when the image is displayed at a large scale, or when only a part of the image, containing the detail, is displayed. While each region item describes the precise geometry of each region it contains, determining to which part of the image a region item applies to is not possible without processing the content of the region item. When there are many region items associated with an image, loading and processing the content for all the region items may adversely impact the rendering speed of the image and the required computing resources. For indicating the area and the rendering scale corresponding to each region item associated with an image, these region items are grouped into several quadtree cells, each quadtree cell being represented as an entity to group (also denoted entity group in this disclosure) of type ‘qdce’ for “Quadtree Cell” (the name and four-character code used are just examples, any name or four-character code not conflicting with existing ones or registered ones may be used). Each ‘qdce’ entity to group groups region items corresponding to an area or a region partition of the image item (the image being partitioned into a plurality of region partitions, for instance forming a grid of region partitions covering the whole image) and to a range of rendering scale for this image item. The size of the areas or region partitions of the image item may depend on a range of rendering scale for this image item. These ‘qdce’ entity to groups may be organized as a tree. In the example of Figure 1, the ‘qdce’ entity to groups are organized as a quadtree: a first entity to group, 110, corresponds to an area covering the whole image item. This entity to group 110 contains the two region items 130 and 131. This entity to group is linked to four other entity to groups, 120, 121, 122 and 123 through an item reference of type ‘qdch’, for “Quadtree Children” (the name and four-character code used here are just examples, any name or four-character code not conflicting with existing ones or registered ones may be used). These entity to groups correspond to different areas or region partitions of the image item. The entity to group 120 corresponds to the top-left quarter of the image, the entity to group 121 corresponds to the top-right quarter of the image and so-on. Each of these entity to groups contains region items related to the area corresponding to it. A region item may be related to an area if all its regions and contained in the area, if at least one of its regions is contained in the area, or if at least one of its regions intersect the area. Possibly, a region item may be related to an area if it is of interest when rendering this area. For instance, are region item may describe the future position of an object and may be of interest when displaying this object even if this future position is outside the displayed part of the image. For instance, the entity to group 122 contains the region items 140 and 141. These entity to groups may be linked to other entity to groups corresponding to smaller areas of the image. For instance, Figure 1 shows that the entity to group 122 is linked to four other entity to groups of type ‘qdce’ through an item reference of type ‘qdch’. This is the same for the entity to group 123. In first embodiments of the invention, region items are organized in a quadtree, each quadtree cell containing region items corresponding to the area or region partition it covers. A quadtree cell is represented by an entity group, for instance with grouping_type ‘qdce’ and named QuadtreeCellGroupBox (or any other 4CC or name not already used by the standard), with the following structure: class QuadtreeCellGroupBox(version, flags) extends EntityToGroupBox('qdce', version, flags) { unsigned int(8) children_presence; unsigned int(32) left; unsigned int(32) top; unsigned int(32) cell_width; unsigned int(32) cell_height; unsigned int(32) minimum_scale_numerator; unsigned int(32) maximum_scale_numerator; unsigned int(32) scale_denominator; } Preferably, a set of quadtree cells indicates the area and the rendering scale corresponding to region items associated with an image item. The quadtree cells may be organized as a tree, with a root quadtree cell. Preferably each quadtree cell has up to 4 child quadtree cells. A quadtree cell may be linked to its child quadtree cells with an item reference of type ‘qdch’. Preferably child quadtree cells are listed in a left-right, topbottom order in the item reference. The children_presence field of the quadtree cell may be used to indicate which child quadtree cells exists for each quadtree cell. While the exemplary embodiment is based on quadtrees, any other hierarchical spatial decomposition or partition may be used, for example based on the shape of the image or a particular need of the application using the image. Preferably, the root quadtree cell is linked to the image item the quadtree cells tree is associated with, typically with an item reference of type ‘cdsc’ from the root quadtree cell to the image item. Possibly, this item reference may have another type, for example ‘qdds’ for “Quadtree Description”. Possibly, the other quadtree cells may also be linked to the image item with an item reference of type ‘cdsc’ or with an item reference of type ‘qdds’ or an item reference of type ‘qddc’ for “Quadtree Description Cell”. Possibly, the item reference may be from the image item to the root quadtree cell or from the image item to one or more of the quadtree cells. Preferably, each region item associated with the image item is contained in at least one quadtree cell. A region item may be contained in several quadtree cells at different depths in the tree if this region item is relevant for different rendering scales. A region item may be contained in several quadtree cells at the same depth in the tree, for example when this region item spans the different areas corresponding to these quadtree cells. Preferably, a quadtree cell contains only region items signalled using their item_lD in the entity_id field of the QuadtreeCellGroupBox. Possibly, it could contain other entity groups containing only region items. Possibly, it could contain other items related to the area of the image item associated with the quadtree cells’ tree either directly in the list of items it contains or indirectly by containing another entity to group. For instance, a set of quadtree cells may be used to indicate the location of an HEVC tile item inside an HEVC item. Possibly, a set of quadtree cells may be used to indicate the area and the rendering scale for items associated with an entity different from an image item. For instance, a set of quadtree cells may be linked to a bracketing entity to group to indicate the area and the rendering scale for region items associated with image items contained in this bracketing entity to group. As another example, a set of quadtree cells may be linked to a track or a sequence of images to indicate the area and the rendering scale for region items associated with this track or sequence of image, when these region items are kept in the same location for all frames. The semantics of the fields of the QuadtreeCellGroupBox are the following. children_presence is a bit-field indicating for each of the four possible children of the QuadtreeCellGroupBox whether it exists or not. If the child QuadtreeCellGroupBox exists, then the corresponding bit is set to 1, otherwise it is set to 0. The ordering of the bits in the bit-field follows the left-right, top-bottom ordering of the QuadtreeCellGroupBox children in the ‘qdch’ item reference. If all four children are present, the children_presence value is 15 (1111 in binary) and the ‘qdch’ item reference lists the identifiers of the four child QuadtreeCellGroupBox. If only the top-right child is present, the children_presence value is 4 (0100 in binary) and the ‘qdch’ item reference lists only the identifier of this child. left and top indicate the location of the top-left of the rectangle area corresponding to the QuadtreeCellGroupBox inside the image item it is associated with. cell_width and cell_heigth indicate the size of the rectangle area corresponding to the QuadtreeCellGroupBox inside the image item it is associated with. Possibly, the area of the QuadtreeCellGroupBox may be signalled differently, for example using the top, left, bottom and right positions of the rectangle area. Possibly, the area of the QuadtreeCellGroupBox may have a different shape. For instance, it may be defined as a polygon or as a circle. minimum_scale_numerator, maximum_scale_numerator and scale_denominator indicate the minimum and maximum rendering scales corresponding to region items contained in this QuadtreeCellGroupBox. The rendering scale of the image item is computed as: pixel_size image_size where, pixel_size is the size in pixels used for rendering the width of the whole image and image_size is the width of the whole image. A rendering scale of 1 means that each image pixel is rendered using 1 display pixel. A rendering scale of 2 means that 1 display pixel renders 4 (2x2) image pixels. A uniform rendering scale is considered in the exemplary embodiment. If needed, different scale factors for horizontal and vertical direction may be used. In that case, the scale parameters may be duplicated for each direction. The rendering scale may range from 0 to 1, or even more than 1 if several display pixels are used for rendering a single image pixel. The minimum rendering scale is computed as: minimums c ale-numerator scale-denominator The maximum rendering scale is computed as: maximumscale-numeral or scale-denominator Possibly, the QuadtreeCellGroupBox may signal a single rendering scale value. A minimum rendering scale and a maximum rendering scale may be derived from this single scale value. For example, the minimum and maximum rendering scale may be computed by multiplying the specified rendering scale value by predefined factors. As another example, the minimum rendering scale may be the specified rendering scale and the maximum rendering scale may be computed by multiplying the specified rendering scale by a predefined factor. As yet another example, the minimum rendering scale may be the specified rendering scale and the maximum rendering scale may be 1 or the largest rendering scale allowed. Note that preferably, the rendering of the image is proportional for both width and height, to keep a constant aspect ratio for the image. If this is not the case, the rendering scale of the image item may be computed as a combination of the horizontal rendering scale and of the vertical rendering scale. For instance, it may be the maximum of these two values, or the geometric mean of these two values. Figure 2 illustrates steps for creating an image file, for example an HEIF, a MIAF or any other ISOBMFF-based file format, according to embodiments of the invention. These steps are described when the region items are organized as a quadtree; grouping region items into quadtree cells for illustrative purpose only. They may be applied to other grouping or partitioning of the region items, with groups or partitions organized as a tree or not.In a first step, 200, an image to store in the file is obtained. Then, in step 210, one or more region annotations associated with this image are obtained. A region annotation may include a location inside the image, defined for instance as a geometric shape. It may also include metadata linked to this region of the image. This metadata may for instance be a tag, a description or a title defined by a user. This metadata may also be machine-generated annotations as for example the result of an object detection process or of a face recognition process. Then, at step 220, information for partitioning these region annotations is obtained. This information may be the description of the quadtree to use for partitioning these region annotations. This information may be the depth of the quadtree. In this case the quadtree is built by splitting each cell evenly into four children until the obtained depth is reached. This information may be the minimal size in pixel for a quadtree cell. In this case the quadtree is built by splitting each cell evenly into four children until further splitting a cell would create child cells with a size smaller than the minimal size. This information may also indicate how to split a cell for creating child cells of different size. The information may associate a rendering scale to each depth of the quadtree. These rendering scales may be specified for each depth. The rendering scale for a quadtree cell may be computed based on the size of the quadtree cell, such as the rendered size of the quadtree cell, once scaled, is a predefined number of pixels. The rendered size of an image or a part of an image may be obtained by multiplying the size of the image or of the part of the image by the rendering scale. The size may be measured either as a length or as an area, the predefined number of pixels corresponding either to a pixel’s width or height or to a pixel’s area. For instance, the size of the quadtree cell may be defined as the maximum of its width and height. The predefined number of pixels may be 500. The rendering scale corresponding to the region is then: target pixel size 500 cell_size        cell_size The size of the quadtree cell may be computed in different ways: it may be the maximum of its width and height, it may be their average, it may be the diagonal of the quadtree cell, it may be the area of the quadtree cell, or any other measure representative of the size of the quadtree cell. If the size of the quadtree cell is defined as a length, then the rendering scale is a ratio of lengths. If the size of the quadtree cell is defined as an area, then the rendering scale is a ratio of areas. Possibly, when the size of the quadtree cell is defined as an area, the rendering scale may be converted to a ratio of lengths by computing the square root of the value obtained as described previously. Inversely, when the size of the quadtree cell is defined as a length, the rendering scale may be converted to a ratio of areas by computing the square of the value obtained as described previously. These two different types of rendering scale may be used in the different embodiments of the invention for any usage of a rendering scale. The information may also associate a range of rendering scale to each depth of the quadtree. These rendering scale ranges may be specified for each depth. The rendering scales for a quadtree cell may be computed based on the size of the quadtree cell, such as the rendered size of the quadtree cell, once scaled, is between two predefined number of pixels. This computation is similar to the computation described for the rendering scale but with two predefined numbers of pixels, one for the minimum rendering scale, one for the maximum rendering scale. For instance, the predefined number of pixels may be between 250 and 1000. The rendering scale range for the quadtree cell is then in the range: 250 1000 ,cell_size ’ cell_size. The rendering scale range may be computed from a rendering scale value by multiplying the rendering scale by two predefined factors for obtaining the minimum and maximum rendering scales. The predefined number of pixels and / or the predefined factors may depend on the depth of the quadtree cell or on the total depth of the quadtree. Each quadtree cell is associated with rendering characteristics. These characteristics may include the area spanned by the quadtree cell on the image. These characteristics may include the rendering scale associated with the quadtree cell. These characteristics may include the rendering scale range associated with the quadtree cell. At step 230, a region annotation is selected. At step 240, the rendering conditions for this region annotation are obtained. The rendering conditions may include an area, corresponding to an area containing the region annotation. The rendering conditions may include a rendering scale or a range of rendering scales, indicating whether the region annotation should be rendered depending on the rendering scale of the image. The area containing the region annotation may be obtained by computing the bounding box of the region and using this bounding box as the area. The area may also be the region itself. The area may also be a convex enclosure of the region. The area may also be obtained jointly with the region annotation. The rendering scale for the region annotation may be obtained jointly with the region annotation. It may be computed based on the size of the region, such as the rendered size of the region, once scaled, is a predefined number of pixels. The size may be measured either as a length or as an area, the predefined number of pixels corresponding either to a width in pixels, to a height in pixels or to an area in pixels. For instance, the size of the region may be defined as the maximum of the width and the height of its bounding box. The predefined number of pixels may be 20. The rendering scale corresponding to the region is then: targetj}ixel size 20 region_size region_size The size of the region may be computed in different ways: it may be the maximum of the width and the height of its bounding box, it may be their average, it may be the diagonal of the bounding box, it may be the area of the region, it may be the area of the bounding box, or any other measure representative of the size of the region. The rendering scale range for the region annotation may be obtained jointly with the region annotation. It may be computed based on the size of the region, such as the rendered size of the region, once scaled, is between two predefined number of pixels. This computation is similar to the computation described for the rendering scale but with two predefined number of pixels, one for the minimum rendering scale, one for the maximum rendering scale. For instance, the predefined number of pixels may be between 5 and 40. The rendering scale range for the region is then in the range: 5 40 .region_size ’ region_size. The rendering scale range may be computed from a rendering scale value by multiplying the rendering scale by two predefined factors for obtaining the minimum and maximum rendering scales. The predefined number of pixels and / or the predefined factors may depend on the size of the region or on the number of region annotations. For instance, the predefined number of pixels may be larger when there is a large number of region annotations to reduce the number of rendered region annotations. At step 250, the region annotation is associated with one or more quadtree cells. The region annotation is associated with the quadtree cells whose characteristics match the region annotation rendering conditions. Possibly a region annotation may be associated with all the quadtree cells whose characteristics match the region annotation rendering conditions. Possibly, a region annotation may be associated with the quadtree cells whose characteristics best match the region annotation rendering conditions. Possibly, some for some characteristics, all matches are considered, while for other characteristics only the best match or best matches is or are considered. For instance, for the area, all matches may be considered, while for the rendering scale only the best matches may be considered. The area of a region annotation matches the area of a quadtree cell if they intersect. Matches can be compared using the intersection over union of the areas: the best match is the one for which the intersection over union between the area of the region annotation and the area of the quadtree cell is the highest. The rendering scale of a region annotation matches the rendering scale of a quadtree cell if they are close together. Matches may be compared using the rendering scale ratio. The rendering scale ratio may be computed as the greatest value between the ratio of the region annotation’s rendering scale and the quadtree cell’s rendering scale and the ratio of the quadtree cell’s rendering scale and the region annotation’s rendering scale. The best match is the one with the rendering scale ratio closest to 1. The rendering scale range of a region annotation matches the rendering scale range of a quadtree cell if they overlap. Matches may be compared using the ratio between the maximum value of the rendering scale of the overlap range and the minimum value of the rendering scale of the overlap range. The best match is the one with the largest ratio. At step 260, it is checked whether there is any other region annotation to process. If this is the case, then at step 265 another region annotation is selected and the next step is step 240. Otherwise, the next step is step 270. At step 270, regions sharing the same annotations and associated with the same set of quadtree cells are grouped together. Possibly, other criteria may be used for grouping regions. For instance, there may be a maximum number of regions for each group. As another example, a region to be encoded as an inline mask may be grouped with no other region. At step 280, a file is generated for representing the image, the region annotations and the quadtree. It may be for example an HEIF, a MIAF or any other ISOBMFF-based file. The image is encoded as an image item. Each group of regions is encoded as a region item. Each quadtree cell is encoded using QuadtreeCellGroupBox. Figure 3 illustrates steps for using a tree of quadtree cells associated with an image item to select region items to retrieve and render. These steps are described when the region items are organized as a quadtree; grouping region items into quadtree cells for illustrative purpose only. They may be applied to other grouping or partitioning of the region items, with groups or partitions organized as a tree or not. First, at step 300, an image item is obtained. As an example, the image item may be obtained from an HEIF, a MIAF or any other ISOBMFF-based file by reading and parsing the ‘meta’ box. In addition, an area of this image item to display is obtained. The rendering scale for displaying this area is also obtained. For instance, the area to display may be a rectangle specified by a user through a graphical user interface (GUI). The rendering scale may also be specified by the user through the same GUI. Possibly, the area and the rendering scale may be obtained after a sequence of interactions of the user with the GUI. For instance, the user may repeatedly zoom and pan over the image described by the image item. At step 310, the tree of quadtree cells associated with the image item is retrieved. First, the root of the tree is retrieved by finding the quadtree cell group that is linked to the image item through a ‘cdsc’ item reference. Then, the other quadtree cell groups are retrieved by following the ‘qdch’ item references. For example, the quadtree cell groups may be obtained by reading and parsing the EntityToGroupBoxes contained in the ‘grpl’ box, which is itself contained in the ‘meta’ box. The ‘cdsc’ item reference from a quadtree cell group to the image item may be found by parsing the ‘iref box contained in the ‘meta’ box and searching for an item reference from an EntityToGroupBox of type ‘qdce’ to the image item. For each quadtree cell, the list of region items it contains, its area and its minimum and maximum rendering scales are retrieved from the ‘qdce’ entity to group representing it. At step 320, the quadtree cells are filtered according to the area of the image item to display. For each quadtree cell, its area is compared to the area of the image item to display. If these two areas have a non-empty intersection, then the quadtree cell is kept. Otherwise, the quadtree cell is discarded. At step 330, the quadtree cells are filtered according to the rendering scale. For each quadtree cell, if the rendering scale is greater than or equal to the minimum rendering scale of the quadtree cell and lower than or equal to the maximum rendering scale of the quadtree cell, then the quadtree cell is kept. Otherwise, the quadtree cell is discarded. At step 340, the region items contained in the kept quadtree cells are retrieved. For each region item, the location of its content may be retrieved from the Hoc’ box contained in the ‘meta’ box. Using this location information, the content of the region item may be loaded from the file and parsed to obtain the description of the regions contained in this region item. In addition, annotations associated with the region item are also retrieved. For instance, the item properties associated with the region item may be retrieved by searching the ‘ipma’ box, contained in the ‘iprp’ box, itself contained in the ‘meta’ box for properties associated with the region item and then by reading and parsing these properties from the ‘ipco’ box contained in the ‘iprp’ box. As another example, the metadata associated with the region item through another item may be retrieved by searching for other items associated with the region item in the ‘iref’ box. The location of the content of these other items may be obtained from the Hoc’ box. Then the content of these other items may be read from the file and parsed. At step 350, the obtained area of the image item is displayed. The region items retrieved at step 340 are also rendered. For instance, the border of the regions specified by these region items may be displayed on the image item. As another example, the border of a region item is only displayed when the mouse is hovering over a region specified by the region item. Advantageously, using these steps, only a subset of the region items associated with the image item are read from the file and parsed. This reduces the memory and CPU required to display an area of the image item and accelerates the rendering. In some embodiments, step 320 and / or step 330 may be merged with step 310. In some embodiments, the ordering of step 320 and 330 may be swapped. Preferably, in embodiments using the steps from Figure 3, when rendering a new area of an image item, the information retrieved and processed from the ISOBMFF-based file are kept in memory to avoid retrieving and processing them again. Specifically, the information on the quadtree cells retrieved and parsed at step 310 is preferably kept in memory. Similarly, the information about the region items retrieved, parsed and processed at step 340 is preferably kept in memory. Advantageously, this decreases the processing time for rendering the new area of the image item. Possibly in these first embodiments, the number of child quadtree cells may be different from 4 children organized in 2 rows and 2 columns. For instance, quadtree cells may have 6 children organized in 2 rows and 3 columns. As another example, for wide images, quadtree cells may have N children organized as 1 row and N columns. Possibly, different EntityToGroupBox may be used to signal quadtree cells with a different number of child cells or a different organization of their child cells. In second embodiments of the invention, region items are organized in a quadtree, each quadtree cell containing region items corresponding to the area it covers. A quadtree cell is represented by a QuadtreeCellGroupBox with the following structure: class QuadtreeCellGroupBox(version, flags) extends EntityToGroupBox('qdce', version, flags) { } In these embodiments, the characteristics of each QuadtreeCellGroupBox are determined by processing other information. A quadtree cell is linked to four child quadtree cells by a ‘qdch’ item reference. The four child quadtree cells are listed left to right, top to bottom in the ‘qdch’ item reference. If a quadtree cell has less than four child quadtree cells, a missing child quadtree cell may be replaced by a reference to the quadtree cell itself in the list of references contained by the ‘qdch’ item reference. For instance, if the quadtree cell with the identifier 100 has only a top-left child, with the identifier 101, and a bottom-left child, with the identifier 103, the list of identifiers in the ‘qdch’ item reference may be: 101, 100, 103, 100. Possibly, missing child quadtree cells at the end of the list of references may be omitted. In the previous example, the list of identifiers in the ‘qdch’ item reference may be: 101, 100, 103. Possibly, for a quadtree cell without any child there may be no ‘qdch’ item reference starting from this quadtree cell. The area of the root quadtree cell covers the whole area of the image item it is associated with through a ‘cdsc’ item reference. Each child quadtree cell covers an area that is one quarter, half the width and half the height, of its parent quadtree cell. The location of a child quadtree cell is determined from its location in the list of references in the ‘qdch’ item reference linking the parent quadtree cell to the child quadtree cells. The rendering scale may be computed by setting it to 1 for the deepest quadtree cell in the tree and by dividing it by 2 for each layer in the tree. The range of rendering scales for a quadtree cell may be computed from its rendering scale by setting the maximum value of the range to the rendering scale and computing the minimum value of the range by multiplying the rendering scale by a predefined factor. The range of rendering scales for a quadtree cell may be set to a predefined range for the deepest quadtree cell, for instance [1 / 4, 2], For other quadtree cells, the range of rendering scales is computed by dividing the minimum and maximum values by 2 for each layer in the tree. The first and second embodiments of the invention may be combined, for instance, by specifying some characteristics of the quadtree cells in the QuadtreeCellGroupBox structure and by computing other characteristics of the quadtree cells. In third embodiments of the invention, region items are organized in a tree, each tree cell containing region items corresponding to the area it covers. A tree cell may have a number of child tree cells different from 4. In these embodiments, a tree cell may be represented by a TreeCellGroupBox with the following structure: class TreeCellGroupBox(version, flags) extends EntityToGroupBox('tree', version, flags) { unsigned int(8) rows; unsigned int(8) cols; unsigned int(32) children_presence; unsigned int(32) left; unsigned int(32) top; unsigned int(32) cell_width; unsigned int(32) cell_height; unsigned int(32) minimum_scale_numerator; unsigned int(32) maximum_scale_numerator; unsigned int(32) scale_denominator; } In this structure, rows and cols indicate the number of rows and columns of child tree cells for the tree cell specified by the structure. The other fields have the same meaning as in the first embodiments. Possibly, the size of the children_presence field may be larger to allow for more than 32 child tree cells. It may also depend on the number of child tree cells. These third embodiments may be combined with the second embodiments by removing some fields from the TreeCellGroupBox structure and computing the corresponding characteristics. In these third embodiments, at step 220, the region partitioning information may include the number of children for each tree cell. This number of children may be the same for all the tree cell. It may depend on the depth of the tree cell in the tree. Possibly, in these embodiments, the number of children for each tree cell may be determined dynamically. At step 220, the number of children is set to a predefined value. At step 250, the number of children for a tree cell may be changed. When a region annotation is associated with a tree cell, if the number of region annotations associated with this tree cell is greater than a predefined threshold, then the number of children of the parent of the tree cell the region annotation is associated with is increased. In other words, the tree granularity depends on the number of region annotations. The subtree originating at the parent tree cell is deleted and created again with this new number of child tree cells for the parent tree cell. Any region annotation previously associated with a deleted tree cell is associated with a newly created tree cell. This re-association process may be sped-up by keeping each region annotation associated with a new tree cell at the same depth in the tree as the deleted tree cell it was associated with. In fourth embodiments of the invention, the root of the tree is signalled using a structure corresponding to the third embodiments. Specifically, the number of rows and columns of child tree cell is specified for the root of the tree. Other tree cells have only 4 child tree cells, 2 rows and 2 columns. The other tree cells may be signalled using a structure corresponding to the first embodiments. Possibly this fourth embodiments may be combined with the second embodiments for the root of the tree, for the other tree cells, or for all the tree cells. In these embodiments, at step 220, the region partitioning information may include the number of children for the root tree cell. Possibly, in these embodiments, the number of children for the root tree cell may be determined dynamically similarly to the dynamic determination described for the third embodiments. The difference is that, when at step 250 it is determined that the number of region annotations associated with a tree cell is greater than a predefined threshold, then the whole tree, except for the root cell, is deleted and created again with a different number of children for the root cell. In fifth embodiments of the invention, a tree cell is represented by a TreeCellGroupBox with the following structure: class QuadtreeCellGroupBox(version, flags) extends EntityToGroupBox('tree', version, flags) { if (version == 1) { unsigned int(8) rows; unsigned int(8) cols; } } In these embodiments, there are two versions for the TreeCellGroupBox structure. A tree cell represented with a TreeCellGroupBox structure with a version value of 0 has 4 child tree cells, arranged in 2 rows and 2 columns. A tree cell represented with a TreeCellGroupBox structure with a version value of 1 has a number of tree cells specified by the rows and cols fields. Possibly, in these embodiments, two different EntityToGroupBox structures may be used, with different names. For instance, ‘qdc4’ and ‘qdcy’ respectively for the structure representing a tree cell with 4 children and the structure representing a tree cell with a specified number of children. As another example, ‘qdee’ and ‘tree’ may be used respectively for the structure representing a tree cell with 4 children and the structure representing a tree cell with a specified number of children. Image Overviews are a proposal for extending HEIF to efficiently access large images. Under this proposal, a base image is split into tiles that all have the same size. The tiles correspond to a rectangular region of an image. They are different from the tile concept in MPEG encoding schemes like HEVC or VVC. Other images, corresponding to overviews of this base image, are created by scaling down the base image. The scaling down of the base image is realized by binning its pixels. For instance, a binning of 2 means that groups of 2x2 pixels are combined into a single pixel, resulting in an image with half the width and half the height of the base image. Each overview is also split into tiles that have the same size as the tiles of the base image. Each tile should be decodable independently of the other tiles to allow accessing subparts of the base image at different zoom levels independently. Still under this proposal, the base image and its overviews are associated together to form a pyramid of images. In other words, overviews correspond to a set of image items, all representing the same image at different resolutions. Figure 4 illustrates an embodiment of the invention when using image overviews. Image item 400 is split into 12 tiles, 3 rows of 4 tiles. All tiles have the same size, and each tile can be decoded separately. This enables for instance to render the centre of the image by only decoding tiles 401 and 402. Image item 400 may for example be encoded as a ‘grid’ item, each tile being encoded as an independent image item. Image item 400 may also be encoded with HEVC tiles. It may be stored as an ‘hvcT image item, each tile being encoded as an HEVC tile and stored as an item of type ‘hvtT. Image item 400 may also be encoded with VVC, each tile corresponding to a VVC subpicture stored as an item of type ‘vvs’. Image item 400 is associated with two other image items that represent overviews of this image item. Image item 410 is half the width and half the height of image item 400. Image item 420 is a quarter of the width and a quarter of the height of image item 400. Both image items 410 and 420 are split into tiles that have the same size as the tiles of image item 400. These tiles can also be decoded separately. This enables to efficiently render a scaled down version of image item 400. For instance, with a very small scale, image item 420 may be used for the rendering. As the tiles have the same size for the three image items 400,410 and 420, some tiles of the image items 410 and 420 cover areas that are outside the image items. Image items 400, 410 and 420 form a pyramid. This pyramid may be signalled in the file storing these items. This file may be for instance an HEIF, a MIAF or any other ISOBMFF-based file. For example, image items 400, 410 and 420 may be contained in an EntityToGroupBox representing this pyramid. A tree of QuadtreeCellGroupBox is associated with image item 400 to indicate the area and the rendering scale corresponding to each region item associated with image item 400. The root of the tree, 430, is associated with image item 400 with an item reference of type ‘cdsc’. This root cell has 4 child quadtree cells, 440, 441,442, and 443. This root cell is linked to its child quadtree cells with an item reference of type ‘qdch’. Quadtree cell 440, corresponding to the top-left of the area of image item 400, has 4 child quadtree cells. However, quadtree cell 442, corresponding to the bottom-left of the area of image item 400, has only 2 child quadtree cells. Similarly, quadtree cell 441, corresponding to the top-right of the area of image item 400, has 4 child quadtree cells, not represented. And quadtree cell 443, corresponding to the bottom-right of the area of image item 400, has only 2 child quadtree cells. In this example, the divisions of the quadtree match the tile divisions of image item 400 and its overviews. The root quadtree cell covers the same area as the tile of image item 420. The four quadtree cells 440, 441, 442 and 443 each have an area corresponding to one of the tiles of image item 410. The child quadtree cells of quadtree cells 440, 441,442 and 443 have each an area corresponding to one of the tiles of image item 400. In sixth embodiments of the invention, the image item is associated with overviews that are scaled down versions of this image item. These image items form a pyramid of images, ordered by size from the image item to the smallest overview. The image item and its overviews are split into tiles. A tile of an image in the pyramid is fully contained in one of the tiles of the next smallest image in the pyramid. Image items 400, 410, and 420 or Figure 4 show an example of such a pyramid of images. Preferably in these embodiments, the different layers of quadtree cells match the tiles of the different overviews. If the smallest overview has a single tile, then the root of the quadtree has the same area as this single tile. If the smallest overview has several tiles, then the root of the quadtree has an area corresponding to the union of the areas of these tiles. Each quadtree cell in the second layer of the tree has an area corresponding to one of the tiles of the smallest overview. Then, each layer of quadtree cells correspond to one of the overviews. Each quadtree cell has an area corresponding to one of the tiles of the overview. The deepest layer of quadtree cells corresponds to the image item itself, each quadtree cell having an area corresponding to one of the tiles of the image item. In these embodiments, at step 200, information about the overviews is obtained in addition to the image. Possibly, the overviews are obtained in addition to the image. Possibly, indications for building the overviews are obtained in addition to the image. In these embodiments, at step 220, the region partition information related to the quadtree cells’ area is provided by the tiles of the image item and of its overviews. Possibly in these embodiments, at step 340, the retrieved region items may be associated with the retrieved tiles of the image item or of one of its overviews to enable a faster processing during a future rendering of the image time or of one of its overviews. Possibly, in these embodiments, the QuadtreeCellGroupBox corresponding to the root of the tree may be associated with each overview, for example with an item reference of type ‘cdsc’. Possibly, the type of the item reference may be different from the one used to associate it with the image item. For instance, this QuadtreeCellGroupBox may be associated with the image item with an item reference of type ‘cdsc’ and may be associated with the overviews with an item reference of type ‘qdov’ for “Quadtree Overview”. Possibly in these embodiments, the QuadtreeCellGroupBox corresponding to the root of the tree may be associated with a structure representing the pyramid, for example with an item reference of type ‘cdsc’. Possibly, this QuadtreeCellGroupBox may not be associated with the image item. Possibly in these embodiments, tiles of the image item and / or of its overviews may be associated with a corresponding QuadtreeCellGroupBox, for instance with an item reference of type ‘qdds’ from the QuadtreeCellGroupBox to the entity representing the tile. As another example, a tile may be linked to its corresponding QuadtreeCellGroupBox with an item reference of type ‘qdre’, for “Quadtree Region”, from the entity representing the tile to the QuadtreeCellGroupBox. Possibly in these embodiments, tiles of the image item and / or of its overviews may be associated with a set of corresponding QuadtreeCellGroupBoxes. For example, a tile may be linked to a set of corresponding QuadtreeCellGroupBoxes with an item reference of type ‘qdre’ from the entity representing the tile to the QuadtreeCellGroupBoxes. Possibly in these embodiments, the quadtree may be represented directly by the tiles of the image item and its overviews. This means that there are no QuadtreeCellGroupBox structure in the file. A tile may be linked to the region items it contains with an item reference of type ‘reco’, for “Region Contained”, from the entity representing the tile to the region items it contains. Possibly, one or more item properties may be associated with the entity representing the tile to describe information related to the region items it contains. For instance, an item property may describe the minimum and maximum rendering scale for the region annotations associated with the tile. Possibly, if there is no tile corresponding to the whole image in any overview, the image item may be linked to the region items associated with the root of the quadtree with an item reference of type ‘reco’ from the image item to the region items. Possibly, if there is no tile corresponding to the whole image in any overview, an overview may be linked to the region items associated with the root of the quadtree with an item reference of type ‘reco’ from the overview to the region items. Possibly in these embodiments, region items may be grouped into an entity to group TileGroupBox with a structure similar to a QuadtreeCellGroupBox and the quadtree organization may be represented directly by the tiles of the image item and its overviews. A tile may be linked to a TileGroupBox containing the region items contained in the tile, using for example an item reference of type ‘reco’ from the entity representing the tile to the TileGroupBox. Possibly, if there is no tile corresponding to the whole image in any overview, the image item may be linked to a TileGroupBox containing the region items associated with the root of the quadtree with an item reference of type ‘reco’ from the image item to the TileGroupBox. Possibly, if there is no tile corresponding to the whole image in any overview, an overview may be linked to a TileGroupBox containing the region items associated with the root of the quadtree with an item reference of type ‘reco’ from the overview to the TileGroupBox. In variants of the sixth embodiments, the image item is encoded using tiles, as for image overviews, but has no associated overviews. For instance, the image item may be encoded as a grid item, using HEVC tiles or VVC subpictures. Preferably in these variants, the boundaries of the quadtree cells match the boundaries of the tiles of the image item. Possibly, there may be only two layers in the quadtree, with a root cell corresponding to the area of the whole image and leaf cells corresponding to a tile or to a set of tiles. Possibly in these embodiments, tiles of the image item may be associated with a corresponding QuadtreeCellGroupBox, for instance with an item reference of type ‘qdds’ from the QuadtreeCellGroupBox to the entity representing the tile. As another example, a tile may be linked to its corresponding QuadtreeCellGroupBox with an item reference of type ‘qdre’ from the entity representing the tile to the QuadtreeCellGroupBox. Possibly in these embodiments, tiles of the image item may be associated with a set of corresponding QuadtreeCellGroupBoxes. For example, a tile may be linked to a set of corresponding QuadtreeCellGroupBoxes with an item reference of type ‘qdre’ from the entity representing the tile to the QuadtreeCellGroupBoxes. Possibly in these embodiments, the quadtree leaves may be represented directly by the tiles of the image item and its overviews. This means that there are no QuadtreeCellGroupBox structure in the file. A tile may be linked to the region items it contains with an item reference of type ‘reco’ from the entity representing the tile to the region items. Possibly, one or more item properties may be associated with the entity representing the tile to describe information related to the region item it contains. For instance, an item property may describe the minimum and maximum rendering scale for the region annotations associated with the tile. Possibly, the image item may be linked to the region items associated with the root of the quadtree with an item reference of type ‘reco’ from the image item to the region items. Possibly in these embodiments, the quadtree may be represented directly by the tiles of the image item. A tile may be linked to an entity to group TileGroupBox with a structure similar to a QuadtreeCellGroupBox containing the region items contained in the tile, using for example an item reference of type ‘reco’ from the entity representing the tile to the TileGroupBox. Possibly, the image item may be linked to a TileGroupBox containing the region items associated with the root of the quadtree, using for example an item reference of type ‘reco’ from the image item to the TileGroupBox. In seventh embodiments, the whole quadtree may be represented as a single QuadtreeGroupBox with the following structure: class QuadtreeGroupBox(version, flags) extends EntityToGroupBox('qdce', version, flags) { unsigned int(16) cell_count; for (i = 0; i <count; i++) { unsigned int(16) region_count; unsigned int(8) children_presence; unsigned int(32) left; unsigned int(32) top; unsigned int(32) cell_width; unsigned int(32) cell_height; unsigned int(32) minimum_scale_numerator; unsigned int(32) maximum_scale_numerator; unsigned int(32) scale_denominator; } } Advantageously, this embodiment limits the number of entity to group boxes in a file according to the invention. Therefore, it reduces the size of the file. The cells of the quadtree represented by the QuadtreeGroupBox are described following a breadth first order, using for each cell a left-right, top-left order for describing its children. The semantics of the fields of the QuadtreeGroupBox are the following. cell_count indicates the number of quadtree cells in the quadtree. region_count indicates the number of region items contained in a quadtree cell. The identifiers of these region items are listed in the QuadtreeGroupBox after those of the previously described quadtree cells, using the entityjd field of the EntityToGroupBox. For each quadtree cell, the children_presence, left, top, cell_width, cell_height, minimum_scale_numerator, maximum_scale_numerator and scale_denomiator fields have the same meaning as in the QuadtreeCellGroupBox structure of the first embodiments. Other embodiments may be combined with these seventh embodiments, for instance to provide a different description of each quadtree cell. Possibly, the QuadtreeGroupBox structure may allow different descriptions for the different quadtree cells. In eighth embodiments, the groups of regions are not organized in a tree structure. For indicating the area and the rendering scale corresponding to each region item associated with an image, these region items are grouped into one or more region partition groups (also denoted region partition entity group). A region partition group (or region partition entity group, for instance with grouping _type ‘rgpa’ or any other 4CC not already used by the standard) lists region items corresponding to an area of the image item. For instance, a region partition group may list region items that are contained inside an area of an image. This area is the area covered by the region partition group and may be defined as a rectangle in the image. This area may have another shape. The area covered by a region partition group may be defined in the region partition group structure itself or may be the area of the image item the region partition group is associated with through an item reference of type ‘rpds’ (or any other 4CC not already used by the standard), for instance standing for “Region Partition Description”. This item reference goes from the image item to the region partition group. The name and four-character code used here are just examples, any name or four-character code not conflicting with existing ones or registered ones may be used. For instance, an item reference of type ‘cdsc’ from the region partition group to the image item may be used instead of the item reference of type ‘rpds’. A region partition group associated with an image item preferably only contains region items associated with this image item or with another image item that this image item is a part of. For instance, a region partition group associated with an image item that is an input to a grid image item may contain region items associated with the grid image item. Preferably, when a region item is contained in a region partition group, at least one of its regions intersects the area covered by the region partition group. As described above for quadtree cells or for tree cells, other relations between a region item and the area covered by the region partition may be used. A region partition group preferably lists only region items it contains. A region partition group may list all the region items it contains. A region partition group may list only the region items it contains and that are adapted to being rendered when the rendered size of the area covered by the region partition group is greater than or equal to the display area. In other words, a region partition group may list a region item only if the rendering scale associated with the region item is greater than or equal to the rendering scale associated with the region partition group. Other constraints on the rendering scales of the region item and of the region partition group, such as those described above, may be used. When rendering a part of an image item, a renderer may use region partition groups to select which region items to parse and render. The renderer may use region partition groups associated with the image item to render or associated with items corresponding to parts of the image item to render. For example, when rendering a grid image item, the renderer may use region partition groups associated with input image items of this grid image item. As another example, when rendering an HEVC image item, the renderer may use region partition groups associated with HEVC tile items that are part of this HEVC image item. A region partition group may be represented by the following structure. aligned(8) class RegionPartitionGroupBox extends EntityToGroupBox(‘rgpaJ, version, flags) { unsigned int field_size = ((flags &1) + 1) * 16; if (flags &2 == 2) { unsigned int(field_size) reference_width; unsigned int(field_size) reference_height; unsigned int(field_size) top; unsigned int(field_size) left; unsigned int(field_size) width; unsigned int(field_size) height; } } The semantics of the fields of the RegionPartitionGroupBox are the following. The following flags values are defined to describe the area covered by a group of region annotation items contained in a region partition group: Value 0x000001, when set specifies that the length of the fields reference_width, reference_height, top, left, width, and height is 32 bits. When not set, it specifies that the length of the fields reference_width, reference_height, top, left, width, and height is 16 bits. Value 0x000002, when set, specifies that the fields reference_width, reference_height, top, left, width, and height are present. When not set, it specifies that the fields reference_width, reference_height, top, left, width, and height are not present. reference_width, reference_height specify, in pixel units, the width and height, respectively, of the reference space in which the region partition group is specified. top, left specify the coordinates of the top-left corner of the area covered by the region partition group relatively to the reference space. width, height specify the coordinates of the width and the height of the area covered by the region partition group relatively to the reference space. In these embodiments, steps 200 to 280 illustrated by Figure 2 and steps 300 to 350 illustrated by Figure 3 may be used by applying them on region partition groups instead of the quadtree cells. In these embodiments, at step 220, the region partitioning information may indicate that there is one region partition group for the image obtained at 200 and one region partition group for each part of the image obtained at 200. For instance, there may be one region partition group for the grid image item and one region partition group for each input item of the grid image item. The region partitioning information may also indicate a structure for the region partition groups that is similar to those described above for quadtree cells In these embodiments, at step 310, the region partition groups are obtained by retrieving all the region partition groups associated with the image item obtained at step 300. In addition, the region partition groups associated with items corresponding to parts of the image item obtained at step 300 may also be retrieved. For instance, if the image item obtained at step 300 is a grid image item, region partition groups associated with input image items of this grid image item may also be retrieved. Other embodiments may be combined with these eighth embodiments, for instance to provide a different description of region partition groups. Figure 5a illustrates an embodiment corresponding to the eighth embodiments. A grid image item, 500, is built from six HEVC image items in this example. The grid image item is associated with these input image items through an item reference of type ‘dimg’. This grid image item is also associated with several region items of type ‘rgan’. Two region partition groups 520 and 521, of type ‘rgpa’, are associated respectively with the grid image item 500 and with the image item 510 that is one of the input image items of the grid image item. The areas of both region partition groups are preferably signalled as the area of the respective image items they are associated with. The area associated with region partition groups 520 and 521 are represented respectively by references 522 and 523. The region partition group 520 contains region items that should always be rendered. The region partition group 521 contains region items contained in the area of the input image item 510, and that should be rendered when the size of the input image item 510 is roughly the size of the rendering area. For instance, the region items contained in the region partition group 521 are preferably rendered when the size of the input image item is between half and twice the size of the rendering area. Figure 5b illustrates another embodiment corresponding to the eighth embodiments. An HEVC image item 550, of type ‘hvcT is associated with several region items of type ‘rgan’. Two region partition groups 560 and 561, of type ‘rgpa’, are associated with the image item. The area of the region partition group 560 is the whole image. This area is preferably signalled as the area of the image item the region partition group 560 is associated with. The region partition group 560 contains region items that should always be rendered. The area of the region partition group 561 is the bottomcentre part of the image item 550 corresponding to input image item 510 in Figure 5a. The area associated with the region partition group 560 is represented by the reference 562. This area is preferably signalled inside the structure of the region partition group 561. The region partition group 561 contains region items contained in the bottom-centre area of the image item 550 and that should be rendered when the size of this bottomcentre area is roughly the size of the rendering area. For instance, the region items contained in the region partition group 561 should be rendered when the size of this bottom centre area is between two thirds and one and a half the size of the rendering area. The area associated with the region partition group 561 is represented by the reference 563. In some embodiments, at step 220, the rendering conditions for a region annotation may include a priority level. This priority level may be defined for each region annotation. This priority level may depend on the type of annotation. This priority level may be indicated as a list of high priority region annotations. A step 250, when a region annotation is associated with a quadtree cell, if the number of region annotations associated with this quadtree cell is greater than a predefined threshold, then the region annotation associated with this quadtree cell that has the lowest priority level is removed from this association. If several region annotations have the same lowest priority level, one of these is selected. For example, the smallest region may be selected. The region annotation removed from the association may be associated with one or more of the children of the quadtree cell. The region annotation may be associated with the child quadtree cells whose characteristics match the region annotation rendering conditions. Possibly, if a quadtree cell for which an associated region annotation is removed has no children, one or more new child quadtree cells may be created for this quadtree cell. Possibly, if a quadtree cell for which an associated region annotation is removed has no child whose area corresponds to the region annotation, one or more new child quadtree cells may be created for this quadtree cell. Possibly, if a quadtree cell for which the number of associated region annotations is greater than a predefined threshold has no children, then no associated region annotation is removed from the association. Possibly, if a quadtree cell for which the number of associated region annotations is greater than a predefined threshold has no children, then an associated region annotation is removed from the association without associating it with any other quadtree cell. In these embodiments, at step 250, preferably a region annotation is associated with one or more quadtree cells belonging to the lowest layer, i.e., the layer closest to the root, for which the rendering scale matches. Possibly, in these embodiments, only a part of the quadtree is built at step 220. The remaining of the quadtree is built at step 250 by expanding the quadtree when the number of region annotations associated with a quadtree cell becomes greater than a predefined threshold. In variants of these embodiments, the rendering conditions for a region annotation may include an occupancy value corresponding to this region annotation. This occupancy value represents the space required for rendering the region annotation. A large occupancy value corresponds to a region annotation requiring a large area for its rendering. For instance, if a region annotation corresponds to a label or a text to display on the image, then a longer label or text will correspond to a larger occupancy value. As another example, the occupancy value may be the area of the rendered region, taking into account the width of the rendered border. Possibly in these embodiments, the priority level and / or the occupancy value may be described in the file generated at step 280, for instance inside an item property. Possibly a single value may be described for a region item by combining the different values for the regions it contains, Possibly, the value corresponding to each region may be described, At the beginning of step 340, the priority level and / or the occupancy value for the region items contained in the kept quadtree cells may be retrieved from the file, The priority level and / or the occupancy value may be used to further filter the region items. For instance, only a predefined number of region items may be kept, keeping those with the highest priority levels. In some embodiments, rendering scale ranges are only defined by a minimal value, with no maximal value. A quadtree cell has a minimum rendering scale. A region annotation has a minimum rendering scale. At step 250, the rendering scale of a region annotation matches the rendering scale of a quadtree cell if the rendering scale of the region annotation is larger than or equal to the rendering scale of a quadtree cell. In addition, the rendering scale of a region annotation may match only the smallest rendering scale among the rendering scale of quadtree cells fulfilling the condition that the rendering scale of the region annotation is larger than or equal to the rendering scale of a quadtree cell. In some embodiments of the invention, an item property may be associated to a region item to indicate its bounding box. This property may be a RegionBoundingBox item property, of type ‘rbox’, with the following structure: aligned(8) class RegionBoundingBox extends ItemFullProperty('rbox', version = 0, flags) { unsigned int field_size = ((flags &1) + 1) * 16; unsigned int(field_size) top; unsigned int(field_size) left; unsigned int(field_size) width; unsigned int(field_size) height; } The semantics of this Tbox’ item property are the following. (flags &1) when equal to 0 specifies that the length of the fields top, left, width, height is 16 bits, (flags &1) when equal to 1 specifies that the length of the fields top, left, width, height is 32 bits. top and left are the position of the top-left corner of the bounding box of any region item with which the item property is associated. width and height are the size of the bounding box of any region item with which the item property is associated. In these embodiments, at step 280, when generating a region item representing region annotations, an ‘rbox’ item property may be created, specifying the bounding box containing all the regions described by the region item, and associated with the region item. In these embodiments, at step 340, the region items contained in the kept quadtree cells are first filtered according to their bounding box. A region item whose bounding box intersect the area to display is kept. A region item whose bounding box doesn’t intersect the area to display is discarded. Possibly, the top, left, width and height values are expressed in the coordinates of the image item associated with the region item. Possibly, the top, left, width and height values are expressed in the reference space of the region item. Possibly, in these embodiments, the size of the smallest quadtree cells is larger than in other embodiments. The quadtree cells may be used for a first filtering of the region items, while the bounding box information may be used for a second filtering of the region items. Advantageously, specifying the bounding box of a region item may help determine whether it is needed when rendering an area of an image item associated with this region item. Alternatively, the ‘ispe’ and the ‘rloc’ item properties may be used to respectively provide the size and the position of the bounding box containing all the regions contained in a region item. In some embodiments, an item property may be used for describing a region partition instead of a RegionPartitionGroupBox. The different embodiments, or their combinations may be adapted to file storing 3D media. For instance, if a file stores a 3D point cloud item, using for example G-PCC (ISO / IEC 23080-18) or V3C (ISO / IEC 23090-10), a region may be defined as a 3D volume. In this case, region items may be grouped into OctreeCellGroupBox, with a structure or description similar to the QuadtreeCellGroupBox. As an example, similarly to the first embodiments, an octree cell may have 8 children organized in 2 rows, 2 columns and 2 depths. An OctreeCellGroupBox may be represented by the following structure: class OctreeCellGroupBox(version, flags) extends EntityToGroupBox('occe', version, flags) { unsigned int(8) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) unsigned int(32) children_presence; x; y; z; cell_width; cell_height; cell_depth; minimum_scale_numerator; maximum_scale_numerator; scale_denominator; An OctreeCellGroupBox may be associated with its children using an item reference of type ‘occh’. The children are listed in an increasing X, increasing Y, and increasing Z order. The semantics of the fields of the OctreeCellGroupBox shared with the QuadtreeCellGroupBox are similar. The semantics of the other fields of the OctreeCellGroupBox are the following. x, y, z indicate the location of the corner closest to the origin of the volume corresponding to the OctreeCellGroupBox. cell_width, cell_height and cell_depth indicate the size of the volume corresponding to the OctreeCellGroupBox. All these embodiments may be combined together as appropriate. Possibly, in some embodiments, a region item of type ‘rgan’ is not associated with the image item it describes using an item reference of type ‘cdsc’, but through the intermediary of a grouping structure such as one of those described above. For instance, a region item may be associated with an image item by being contained in a QuadtreeCellGroupBox that is part of a quadtree associated with the image item. As another example, a region item may be associated with an image item by being contained in a RegionPartitionGroupBox associated with the image item. Preferably, in these embodiments, the contents of region items contained in a same grouping structure are stored close to each other in the HEIF, MIAF, or ISOBMFF-based file. For instance, at step 280, when generating the file, the region items may be ordered according to the grouping structure they are contained in. Then, then the contents of these region items are stored following this order. Advantageously, this enables at step 340 to retrieve the contents of region items contained in a grouping structure by accessing a single part of the file. In these embodiments, information signalled in the EntityToGroupBox boxes may be signalled in other structures of the HEIF, MIAF, or any other ISOBMFF-based file. For instance, some fields of the QuadtreeCellGroupBox may be signalled in an item property associated with the QuadtreeCellGroupBox. These embodiments may be used jointly with overviews to indicate which region items correspond to which resolution. In particular, region partition groups are useful when combined with overviews. Indeed, a region partition group can describe which region items are suited to be rendered at a given scale and at a given location for an image item. Figure 6 is a schematic block diagram of a computing device 600 for implementation of one or more embodiments of the invention. The computing device 600 may be a device such as a micro-computer, a workstation or a light portable device. The computing device 600 comprises a communication bus connected to: - a central processing unit 601, such as a microprocessor, denoted CPU; - a random access memory 602, denoted RAM, for storing the executable code of the method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing the method according to embodiments of the invention, the memory capacity thereof can be expanded by an optional RAM connected to an expansion port for example; - a read only memory 603, denoted ROM, for storing computer programs for implementing embodiments of the invention; - a network interface 604 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 604 can be a single network interface, or composed of a set of different network interfaces (for instance wired and wireless interfaces, or different kinds of wired or wireless interfaces). Data packets are written to the network interface for transmission or are read from the network interface for reception under the control of the software application running in the CPU 601; - a graphical user interface 605 may be used for receiving inputs from a user or to display information to a user; - a hard disk 606 denoted HD may be provided as a mass storage device; - an I / O module 607 may be used for receiving / sending data from / to external devices such as a video source or display. The executable code may be stored either in read only memory 603, on the hard disk 606 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs can be received by means of a communication network, via the network interface 604, in order to be stored in one of the storage means of the communication device 600, such as the hard disk 606, before being executed. The central processing unit 601 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 601 is capable of executing instructions from main RAM memory 602 relating to a software application after those instructions have been loaded from the program ROM 603 or the hard-disc (HD) 606 for example. Such a software application, when executed by the CPU 601, causes the steps of the flowcharts of the invention to be performed. Any step of the algorithms of the invention may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC (“Personal Computer”), a DSP (“Digital Signal Processor”) or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA (“Field-Programmable Gate Array”) or an ASIC (“Application-Specific Integrated Circuit”). Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention. Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate. Each of the embodiments of the invention described above can be implemented solely or as a combination of a plurality of the embodiments. Also, features from different 5 embodiments can be combined where necessary or where the combination of elements or features from individual embodiments in a single embodiment is beneficial. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate 10 that a combination of these features cannot be advantageously used.

Claims

1. A method of encapsulation of an image in an ISOBMFF based media file, wherein the method comprises:- obtaining an image;- obtaining a plurality of region annotations associated with the image;- obtaining region partitioning information of the image;- generating a plurality of data structures representing a region partition of the image;- associating the region annotations with the data structures based on the region partitioning information;- embedding the image, the region annotations and the plurality of data structures in the media file.

2. The method of claim 1, wherein the region partitioning information comprises information on the area covered by a region partition and rendering scale information.

3. The method of claims 1 or 2, wherein the data structures are cells representing a spatial partition of the image.

4. The method of claim 3, wherein the cells are organized in a tree representing a hierarchical spatial partition of the image, the cell at the top of the tree being associated with the image, each cell being associated with child cells in the tree if any.

5. The method of claim 4, wherein each layer in the tree represents a version of the image at a given rendering scale.

6. The method of claim 5, wherein the association of a region annotation with a cell are based on the location and size of the region and / or an associated rendering scale range and / or priority level.

7. The method of claim 4, wherein the tree is a quadtree.

8. The method of claim 4, wherein each layer of the tree is associated with an image overview of the image at a given resolution.

9. The method of claim 8, wherein each overview image, but the overview image associated with the top of the tree, is divided into tiles, the cells of the tree being associated with tiles of overview images.

10. The method of any one claim 1 to 9, wherein the region annotation are grouped into region items, and wherein the data structures represent groups of region items.

11. The method of claim 10, wherein the data structures are entity to group boxes.

12. A method of rendering a spatial portion of an image from an ISOBMFF based media file, wherein the method comprises:- obtaining an image item describing the image from the media file and an area of the image to display;- obtaining from the media file a plurality of data structures representing a region partition of the image;- filtering the data structures based on the area of the image to display;- further filtering the data structures based on a rendering scale of the area of the image to display;- obtaining from the media file region items comprising region annotations associated with the filtered data structures based on a region partition information;- rendering the spatial portion of the image and region annotations comprised in the obtained region items.

13. The method of claim 12, wherein the region partitioning information comprises information on the area covered by a region partition and rendering scale information.

14. The method of claim 12 or 13, wherein the data structures are cells representing a spatial partition of the image.

15. The method of claim 14, wherein the cells are organized in a tree representing a hierarchical spatial partition of the image, the cell at the top of the tree being associated with the image, each cell being associated with child cells in the tree if any.

16. The method of claim 15, wherein each layer in the tree represents a version of the image at a given rendering scale.

17. The method of claim 16, wherein the association of a region annotation with a cell are based on the location and size of the region and / or an associated rendering scale range and / or priority level.

18. The method of claim 15, wherein the tree is a quadtree.

19. The method of claim 15, wherein each layer of the tree is associated with an image overview of the image at a given resolution.

20. The method of claim 19, wherein each overview image, but the overview image associated with the top of the tree, is divided into tiles, the cells of the tree being associated with tiles of overview images.

21. The method of any one claim 12 to 20, wherein the region annotation are grouped into region items, and wherein the data structures represent groups of region items.

22. The method of claim 21, wherein the data structures are entity to group boxes.

23. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims 1 to 22, when loaded into and executed by the programmable apparatus.

24. A computer-readable storage medium storing instructions of a computer program for implementing a method according to any one of claims 1 to 22.

25. A computer program which upon execution causes the method of any one of claims 1 to 1 to 22 to be performed.

26. A device for encapsulation of an image in an ISOBMFF based media file, wherein the device comprises a processor configured for:- obtaining an image;- obtaining a plurality of region annotations associated with the image;- obtaining region partitioning information of the image;- generating a plurality of data structures representing a region partition of the image;- associating the region annotations with the data structures based on the region partitioning information;- embedding the image, the region annotations and the plurality of data structures in the media file.

27. A device for rendering a spatial portion of an image from an ISOBMFF based media file, wherein the device comprises a processor configured for:- obtaining an image item describing the image from the media file and an area of the image to display;- obtaining from the media file a plurality of data structures representing a region partition of the image;- filtering the data structures based on the area of the image to display;- further filtering the data structures based on a rendering scale of the area of the image to display;- obtaining from the media file region items comprising region annotations associated with the filtered data structures based on a region partition information;- rendering the spatial portion of the image and region annotations comprised in the obtained region items.

Citation Information

Patent Citations

  • Method and apparatus for encapsulating region related annotation in an image file

    WO2021204526A1