diff --git a/index.bs b/index.bs
index a55cce2..a62172a 100755
--- a/index.bs
+++ b/index.bs
@@ -157,14 +157,14 @@ This specification reuses syntax and semantics used in [[!AV1-ISOBMFF]].
AV1 Image Item
When an item is of type av01, it is called an AV1 Image Item, and shall obey the following constraints:
- - The [=AV1 Image Item=] shall be a conformant [=MIAF image item=].
- - The [=AV1 Image Item=] shall be associated with an [=AV1ItemConfigurationProperty=].
+ - The [=AV1 Image Item=] shall be a conformant [=MIAF image item=].
+ - The [=AV1 Image Item=] shall be associated with an [=AV1ItemConfigurationProperty=].
- The content of an [=AV1 Image Item=] is called the AV1 Image Item Data and shall obey the following constraints:
- - The [=AV1 Image Item Data=] shall be identical to the content of an [=AV1 Sample=] marked as 'sync', as defined in [[!AV1-ISOBMFF]].
- - The [=AV1 Image Item Data=] shall have exactly one [=Sequence Header OBU=].
+ - The [=AV1 Image Item Data=] shall be identical to the content of an [=AV1 Sample=] marked as 'sync', as defined in [[!AV1-ISOBMFF]].
+ - The [=AV1 Image Item Data=] shall have exactly one [=Sequence Header OBU=].
- If the [=AV1 Image Item Data=] consists of a single frame (i.e. when using a single layer),
- - It should have its [=still_picture=]
flag set to 1.
- - It should have its [=reduced_still_picture_header=]
flag set to 1.
+ - It should have its [=still_picture=]
flag set to 1.
+ - It should have its [=reduced_still_picture_header=]
flag set to 1.
Image Item Properties
@@ -180,21 +180,21 @@ When an item is of type av01, it is
The syntax and semantics of the AV1ItemConfigurationProperty are identical to those of the [=AV1CodecConfigurationBox=] defined in [[!AV1-ISOBMFF]], with the following constraints:
- - [=Sequence Header OBUs=] should not be present in the [=AV1CodecConfigurationBox=].
- - If a [=Sequence Header OBU=] is present in the [=AV1CodecConfigurationBox=], it shall match the [=Sequence Header OBU=] in the [=AV1 Image Item Data=].
- - The values of the fields in the [=AV1CodecConfigurationBox=] shall match those of the [=Sequence Header OBU=] in the [=AV1 Image Item Data=].
- - [=Metadata OBUs=], if present, shall match the values given in other item properties, such as the PixelInformationProperty or ColourInformationBox.
+ - [=Sequence Header OBUs=] should not be present in the [=AV1CodecConfigurationBox=].
+ - If a [=Sequence Header OBU=] is present in the [=AV1CodecConfigurationBox=], it shall match the [=Sequence Header OBU=] in the [=AV1 Image Item Data=].
+ - The values of the fields in the [=AV1CodecConfigurationBox=] shall match those of the [=Sequence Header OBU=] in the [=AV1 Image Item Data=].
+ - [=Metadata OBUs=], if present, shall match the values given in other item properties, such as the PixelInformationProperty or ColourInformationBox.
-This property should be marked as essential.
+This property should be marked as essential.
Image Spatial Extents Property
-The semantics of the 'ispe' property as defined in [[!HEIF]] apply. More specifically, for AV1 images, the values of 'image_width' and 'image_height' shall respectively equal the values of [=FrameWidth=] and [=FrameHeight=] as defined in [[!AV1]] but for a specific frame in the item payload. The exact frame depends on the presence and content of the 'lsel' and [=OperatingPointSelectorProperty=] properties as follows:
+The semantics of the 'ispe' property as defined in [[!HEIF]] apply. More specifically, for AV1 images, the values of 'image_width' and 'image_height' shall respectively equal the values of [=FrameWidth=] and [=FrameHeight=] as defined in [[!AV1]] but for a specific frame in the item payload. The exact frame depends on the presence and content of the 'lsel' and [=OperatingPointSelectorProperty=] properties as follows:
- In the absence of a 'lsel' property associated with the item, or if it is present and its 'layer_id' value is set to 0xFFFF:
- - If no [=OperatingPointSelectorProperty=] is associated with the item, the 'ispe' shall document the dimensions of the last frame decoded when processing the operating point whose index is 0.
+ - If no [=OperatingPointSelectorProperty=] is associated with the item, the 'ispe' shall document the dimensions of the last frame decoded when processing the operating point whose index is 0.
- - If an [=OperatingPointSelectorProperty=] is associated with the item, the 'ispe' property shall document the dimensions of the last frame decoded when processing the corresponding operating point.
+ - If an [=OperatingPointSelectorProperty=] is associated with the item, the 'ispe' property shall document the dimensions of the last frame decoded when processing the corresponding operating point.
NOTE: The dimensions of possible intermediate output images might not match the ones given in the 'ispe' property. If they display these intermediate images, renderers are expected to scale the output image to match the 'ispe' property.
@@ -218,7 +218,7 @@ NOTE: Although the clean aperture property ('clap') defined in [[!HEIF]] is appl
[[!AV1]] supports encoding a frame using multiple spatial layers. A spatial layer may improve the resolution or quality of the image decoded based on one or more of the previous layers. A layer may also provide an image that does not depend on the previous layers. Additionally, not all layers are expected to produce an image meant to be rendered. Some decoded images may be used only as intermediate decodes. Finally, layers are grouped into one or more [=Operating Points=]. The [=Sequence Header OBU=] defines the list of [=Operating Points=], provides required decoding capabilities, and indicates which layers form each [=Operating Point=].
-[[!AV1]] delegates the selection of which [=Operating Point=] to process to the application, by means of a function called choose_operating_point()
. AVIF defines the [=OperatingPointSelectorProperty=] to control this selection. In the absence of an [=OperatingPointSelectorProperty=] associated with an [=AV1 Image Item=], the AVIF renderer is free to process any [=Operating Point=] present in the [=AV1 Image Item Data=]. In particular, when the [=AV1 Image Item=] is composed of a unique [=Operating Point=], the [=OperatingPointSelectorProperty=] should not be present. If an [=OperatingPointSelectorProperty=] is associated with an [=AV1 Image Item=], the op_index
field indicates which [=Operating Point=] is expected to be processed for this item.
+[[!AV1]] delegates the selection of which [=Operating Point=] to process to the application, by means of a function called choose_operating_point()
. AVIF defines the [=OperatingPointSelectorProperty=] to control this selection. In the absence of an [=OperatingPointSelectorProperty=] associated with an [=AV1 Image Item=], the AVIF renderer is free to process any [=Operating Point=] present in the [=AV1 Image Item Data=]. In particular, when the [=AV1 Image Item=] is composed of a unique [=Operating Point=], the [=OperatingPointSelectorProperty=] should not be present. If an [=OperatingPointSelectorProperty=] is associated with an [=AV1 Image Item=], the op_index
field indicates which [=Operating Point=] is expected to be processed for this item.
NOTE: When an author wants to offer the ability to render multiple [=Operating Points=] from the same AV1 image (e.g. in the case of multi-view images), multiple [=AV1 Image Items=] can be created that share the same [=AV1 Image Item Data=] but have different [=OperatingPointSelectorProperty=]s.
@@ -241,7 +241,7 @@ NOTE: When such a progressive decoding of the layers within an [=Operating Point
Description
-An OperatingPointSelectorProperty may be associated with an [=AV1 Image Item=] to provide the index of the operating point to be processed for this item. If associated, it shall be marked as essential.
+An OperatingPointSelectorProperty may be associated with an [=AV1 Image Item=] to provide the index of the operating point to be processed for this item. If associated, it shall be marked as essential.
Syntax
@@ -253,10 +253,10 @@ class OperatingPointSelectorProperty extends ItemProperty('a1op') {
Semantics
-op_index indicates the index of the operating point to be processed for this item. Its value shall be between 0 and [=operating_points_cnt_minus_1=].
+op_index indicates the index of the operating point to be processed for this item. Its value shall be between 0 and [=operating_points_cnt_minus_1=].
Layer Selector Property
-The 'lsel' property defined in [[!HEIF]] may be associated with an [=AV1 Image Item=]. The 'layer_id' indicates the value of the [=spatial_id=] to render. The value shall be between 0 and 3, or the special value 0xFFFF. When a value between 0 and 3 is used, the corresponding spatial layer shall be present in the bitstream and shall produce an output frame. Other layers may be needed to decode the indicated layer. When the special value 0xFFFF is used, progressive decoding is allowed as described in [[#layered-items-overview]].
+The 'lsel' property defined in [[!HEIF]] may be associated with an [=AV1 Image Item=]. The 'layer_id' indicates the value of the [=spatial_id=] to render. The value shall be between 0 and 3, or the special value 0xFFFF. When a value between 0 and 3 is used, the corresponding spatial layer shall be present in the bitstream and shall produce an output frame. Other layers may be needed to decode the indicated layer. When the special value 0xFFFF is used, progressive decoding is allowed as described in [[#layered-items-overview]].
Layered Image Indexing Property
@@ -272,9 +272,9 @@ The 'lsel' property defined in [[!HEIF]] may be associated with an [=AV1 Image I
Description
-The AV1LayeredImageIndexingProperty property may be associated with an [=AV1 Image Item=]. It should not be associated with [=AV1 Image Items=] consisting of only one layer.
+The AV1LayeredImageIndexingProperty property may be associated with an [=AV1 Image Item=]. It should not be associated with [=AV1 Image Items=] consisting of only one layer.
-The [=AV1LayeredImageIndexingProperty=] documents the size in bytes of each layer (except the last one) in the [=AV1 Image Item Data=], and enables determining the byte ranges required to process one or more layers of an [=Operating Point=]. If associated, it shall not be marked as essential.
+The [=AV1LayeredImageIndexingProperty=] documents the size in bytes of each layer (except the last one) in the [=AV1 Image Item Data=], and enables determining the byte ranges required to process one or more layers of an [=Operating Point=]. If associated, it shall not be marked as essential.
Syntax
@@ -289,7 +289,7 @@ class AV1LayeredImageIndexingProperty extends ItemProperty('a1lx') {
Semantics
-layer_size indicates the number of bytes corresponding to each layer in the item payload, except for the last layer. Values are provided in increasing order of [=spatial_id=]. A value of zero means that all the layers except the last one have been documented and following values shall be 0. The number of non-zero values shall match the number of layers in the image minus one.
+layer_size indicates the number of bytes corresponding to each layer in the item payload, except for the last layer. Values are provided in increasing order of [=spatial_id=]. A value of zero means that all the layers except the last one have been documented and following values shall be 0. The number of non-zero values shall match the number of layers in the image minus one..
NOTE: The size of the last layer can be determined by subtracting the sum of the sizes of all layers indicated in this property from the entire item size.
@@ -299,21 +299,21 @@ NOTE: The size of the last layer can be determined by subtracting the sum of the
An AV1 Image Sequence is defined as a set of AV1 [=Temporal Units=] stored in an [=AV1 track=] as defined in [[!AV1-ISOBMFF]] with the following constraints:
- - The track shall be a valid [=MIAF image sequence=].
- - The track handler for an [=AV1 Image Sequence=] shall be pict
.
- - The track shall have only one sample description entry.
- - If multiple [=Sequence Header OBUs=] are present in the track payload, they shall be identical.
+ - The track shall be a valid [=MIAF image sequence=].
+ - The track handler for an [=AV1 Image Sequence=] shall be pict
.
+ - The track shall have only one sample description entry.
+ - If multiple [=Sequence Header OBUs=] are present in the track payload, they shall be identical.
Auxiliary Image Items and Sequences
An AV1 Auxiliary Image Item (respectively an AV1 Auxiliary Image Sequence) is an [=AV1 Image Item=] (respectively [=AV1 Image Sequence=]) with the following additional constraints:
- - It shall be a compliant [=MIAF Auxiliary Image Item=] (respectively [=MIAF Auxiliary Image Sequence=]).
- - The [=mono_chrome=]
field in the [=Sequence Header OBU=] shall be set to 1.
- - The [=color_range=]
field in the [=Sequence Header OBU=] shall be set to 1.
+ - It shall be a compliant [=MIAF Auxiliary Image Item=] (respectively [=MIAF Auxiliary Image Sequence=]).
+ - The [=mono_chrome=]
field in the [=Sequence Header OBU=] shall be set to 1.
+ - The [=color_range=]
field in the [=Sequence Header OBU=] shall be set to 1.
-An AV1 Alpha Image Item (respectively an AV1 Alpha Image Sequence) is an [=AV1 Auxiliary Image Item=] (respectively an [=AV1 Auxiliary Image Sequence=]), and as defined in [[!MIAF]], with the aux_type
field of the AuxiliaryTypeProperty
(respectively AuxiliaryTypeInfoBox
) set to urn:mpeg:mpegB:cicp:systems:auxiliary:alpha
. An [=AV1 Alpha Image Item=] (respectively an [=AV1 Alpha Image Sequence=]) shall be encoded with the same bit depth as the associated master [=AV1 Image Item=] (respectively [=AV1 Image Sequence=]).
+An AV1 Alpha Image Item (respectively an AV1 Alpha Image Sequence) is an [=AV1 Auxiliary Image Item=] (respectively an [=AV1 Auxiliary Image Sequence=]), and as defined in [[!MIAF]], with the aux_type
field of the AuxiliaryTypeProperty
(respectively AuxiliaryTypeInfoBox
) set to urn:mpeg:mpegB:cicp:systems:auxiliary:alpha
. An [=AV1 Alpha Image Item=] (respectively an [=AV1 Alpha Image Sequence=]) shall be encoded with the same bit depth as the associated master [=AV1 Image Item=] (respectively [=AV1 Image Sequence=]).
-For [=AV1 Alpha Image Item=] and [=AV1 Alpha Image Sequence=], the ColourInformationBox should be omitted. If present, readers shall ignore it.
+For [=AV1 Alpha Image Item=] and [=AV1 Alpha Image Sequence=], the ColourInformationBox should be omitted. If present, readers shall ignore it.
An AV1 Depth Image Item (respectively an AV1 Depth Image Sequence) is an [=AV1 Auxiliary Image Item=] (respectively an [=AV1 Auxiliary Image Sequence=]), and as defined in [[!MIAF]], with the aux_type
field of the AuxiliaryTypeProperty
(respectively AuxiliaryTypeInfoBox
) set to urn:mpeg:mpegB:cicp:systems:auxiliary:depth
.
@@ -327,38 +327,38 @@ NOTE: [[!AV1]] supports encoding either 3-component images (whose semantics are
An [=AV1 Image File Format=] file may conform to multiple brands. Similarly, an [=AV1 Image File Format=] reader/parser or [=AV1 Image File Format=] renderer may be capable of processing the features associated with one or more brands.
-If any of the brands defined in this document is specified in the [=major_brand=]
field of the [=FileTypeBox=], the file extension and Internet Media Type should respectively be ".avif
" and "image/avif
" as defined in [[#mime-registration]].
+If any of the brands defined in this document is specified in the [=major_brand=]
field of the [=FileTypeBox=], the file extension and Internet Media Type should respectively be ".avif
" and "image/avif
" as defined in [[#mime-registration]].
AVIF image and image collection brand
The brand to identify [=AV1 image items=] is avif.
Files that indicate this brand in the [=compatible_brands=] field of the [=FileTypeBox=] shall comply with the following:
- - The primary item shall be an [=AV1 Image Item=] or be a derived image that references directly or indirectly one or more items that all are [=AV1 Image Items=].
+ - The primary item shall be an [=AV1 Image Item=] or be a derived image that references directly or indirectly one or more items that all are [=AV1 Image Items=].
- [=AV1 auxiliary image items=] may be present in the file.
-Files that conform with these constraints should include the brand [=avif=]
in the [=compatible_brands=] field of the [=FileTypeBox=].
+Files that conform with these constraints should include the brand [=avif=]
in the [=compatible_brands=] field of the [=FileTypeBox=].
-Additionally, the brand avio is defined. If the file indicates the brand [=avio=]
in the [=compatible_brands=] field of the [=FileTypeBox=], then the primary item or all the items referenced by the primary item shall be [=AV1 image items=] made only of [=Intra Frames=]. Conversely, if the previous constraint applies, the brand [=avio=]
should be used in the [=compatible_brands=] field of the [=FileTypeBox=].
+Additionally, the brand avio is defined. If the file indicates the brand [=avio=]
in the [=compatible_brands=] field of the [=FileTypeBox=], then the primary item or all the items referenced by the primary item shall be [=AV1 image items=] made only of [=Intra Frames=]. Conversely, if the previous constraint applies, the brand [=avio=]
should be used in the [=compatible_brands=] field of the [=FileTypeBox=].
AVIF image sequence brands
The brand to identify AVIF image sequences is avis.
Files that indicate this brand in the [=compatible_brands=] field of the [=FileTypeBox=] shall comply with the following:
- - they shall contain one or more [=AV1 image sequences=].
+ - they shall contain one or more [=AV1 image sequences=].
- they may contain [=AV1 auxiliary image sequences=].
-Files that conform with these constraints should include the brand [=avis=]
in the [=compatible_brands=] field of the [=FileTypeBox=].
+Files that conform with these constraints should include the brand [=avis=]
in the [=compatible_brands=] field of the [=FileTypeBox=].
-Additionally, if a file contains [=AV1 image sequences=] and the brand [=avio=]
is used in the [=compatible_brands=] field of the [=FileTypeBox=], the item constraints for this brand shall be met and at least one of the [=AV1 image sequences=] shall be made only of [=AV1 Samples=] marked as 'sync'. Conversely, if such a track exists and the constraints of the brand [=avio=]
on [=AV1 image items=] are met, the brand should be used.
+Additionally, if a file contains [=AV1 image sequences=] and the brand [=avio=]
is used in the [=compatible_brands=] field of the [=FileTypeBox=], the item constraints for this brand shall be met and at least one of the [=AV1 image sequences=] shall be made only of [=AV1 Samples=] marked as 'sync'. Conversely, if such a track exists and the constraints of the brand [=avio=]
on [=AV1 image items=] are met, the brand should be used.
NOTE: As defined in [[!MIAF]], a file that is primarily an image sequence still has at least an image item. Hence, it can also declare brands for signaling the image item.
General constraints
The following constraints are common to files compliant with this specification:
- - The file shall be compliant with the [[!MIAF]] specification and list 'miaf' in the [=compatible_brands=] field of the [=FileTypeBox=].
- - The file shall list '[=avif=]'
or '[=avis=]'
in the [=compatible_brands=] field of the [=FileTypeBox=].
- - If transformative properties are used in derivation chains (as defined in [[MIAF]]), they shall only be associated with items that are not referenced by another derived item. For example, if a file contains a grid item and its referenced coded image items, cropping, mirroring or rotation transformations are only permitted on the grid item itself.
+ - The file shall be compliant with the [[!MIAF]] specification and list 'miaf' in the [=compatible_brands=] field of the [=FileTypeBox=].
+ - The file shall list '[=avif=]'
or '[=avis=]'
in the [=compatible_brands=] field of the [=FileTypeBox=].
+ - If transformative properties are used in derivation chains (as defined in [[MIAF]]), they shall only be associated with items that are not referenced by another derived item. For example, if a file contains a grid item and its referenced coded image items, cropping, mirroring or rotation transformations are only permitted on the grid item itself.
NOTE: This constraint further restricts files compared to [[MIAF]].
@@ -368,9 +368,9 @@ NOTE: This constraint further restricts files compared to [[MIAF]].
The profiles defined in this section are for enabling interoperability between [=AV1 Image File Format=] files and [=AV1 Image File Format=] readers/parsers. A profile imposes a set of specific restrictions and is signaled by brands defined in this specification.
-The [=FileTypeBox=] should declare at least one profile that enables decoding of the primary image item. It is not an error for the encoder to include an auxiliary image that is not allowed by the specified profile(s).
+The [=FileTypeBox=] should declare at least one profile that enables decoding of the primary image item. It is not an error for the encoder to include an auxiliary image that is not allowed by the specified profile(s).
-If '[=avis=]'
is declared in the [=FileTypeBox=] and a profile is declared in the [=FileTypeBox=], the profile shall also enable decoding of at least one image sequence track. The profile should allow decoding of any associated auxiliary image sequence tracks, unless it is acceptable to decode the image sequence without its auxiliary image sequence tracks.
+If '[=avis=]'
is declared in the [=FileTypeBox=] and a profile is declared in the [=FileTypeBox=], the profile shall also enable decoding of at least one image sequence track. The profile should allow decoding of any associated auxiliary image sequence tracks, unless it is acceptable to decode the image sequence without its auxiliary image sequence tracks.
It is possible for a file compliant to this [=AV1 Image File Format=] to not be able to declare an AVIF profile, if the corresponding AV1 encoding characteristics do not match any of the defined profiles.
@@ -385,7 +385,7 @@ This section defines the MIAF AV1 Baseline profile of [[!HEIF]], specifically fo
If the brand MA1B
is in the list of [=compatible_brands=] of the [=FileTypeBox=], the common constraints in the section [[#brands]] shall apply.
The following additional constraints apply to all [=AV1 Image Items=] and all [=AV1 Image Sequences=]:
- - The AV1 profile shall be the Main Profile and the level shall be 5.1 or lower.
+ - The AV1 profile shall be the Main Profile and the level shall be 5.1 or lower.
NOTE: AV1 tiers are not constrained because timing is optional in image sequences and are not relevant in image items or collections.
@@ -412,14 +412,14 @@ This section defines the MIAF AV1 Advanced profile of [[!HEIF]], specifically fo
If the brand MA1A
is in the list of [=compatible_brands=] of the [=FileTypeBox=], the common constraints in the section [[#brands]] shall apply.
The following additional constraints apply to all [=AV1 Image Items=]:
- - The AV1 profile shall be the High Profile and the level shall be 6.0 or lower.
+ - The AV1 profile shall be the High Profile and the level shall be 6.0 or lower.
NOTE: Following [[!AV1]] level definitions, coded image items compliant to the AVIF Advanced profile may not have a number of pixels greater than 35651584, a width greater than 16384 or a height greater than 8704. It is still possible to use the Advanced profile to create larger images using grid derivation.
The following additional constraints apply only to [=AV1 Image Sequences=]:
- - The AV1 profile shall be either Main Profile or High Profile.
- - The AV1 level for Main Profile shall be 5.1 or lower.
- - The AV1 level for High Profile shall be 5.1 or lower.
+ - The AV1 profile shall be either Main Profile or High Profile.
+ - The AV1 level for Main Profile shall be 5.1 or lower.
+ - The AV1 level for High Profile shall be 5.1 or lower.