AVIF uses the HEIF property boxes (ispe, pixi,
colr, clap, irot, imir,
auxC and the rest, laid out on
HEIC item properties, with every
colour code) and adds the properties below. The brands and the AV1 item itself are on
Brands and items.
av1C: AV1 configuration
A plain box holding the AV1CodecConfigurationRecord of the AV1 ISOBMFF binding.
Exactly one on every av01 item, and none on other items. Its values must
match the item’s sequence header.
| Byte | Bits | Name | Description |
|---|---|---|---|
| 0 | 1 | marker | 1, so the byte cannot be mistaken for an OBU header. |
| 0 | 7 | version | 1. The first byte is therefore 81. |
| 1 | 3 | seq_profile | 0 Main, 1 High, 2 Professional. Main covers 8 and 10-bit 4:2:0 and monochrome, High adds 4:4:4, and Professional adds 12-bit and 4:2:2 (AV1 specification, Annex A). |
| 1 | 5 | seq_level_idx_0 | Level of operating point 0: level = 2 + (idx ÷ 4), sub-level idx mod 4; 13 is level 5.1, 16 is 6.0, 31 means no limit. |
| 2 | 1 | seq_tier_0 | 0 Main tier, 1 High tier. |
| 2 | 1 | high_bitdepth | 1 for 10 or 12 bits. |
| 2 | 1 | twelve_bit | 1 for 12 bits (with high_bitdepth); 0 when the sequence header has no such flag. |
| 2 | 1 | monochrome | 1 for a single channel. |
| 2 | 1 | chroma_subsampling_x | 1 when chroma is halved horizontally. |
| 2 | 1 | chroma_subsampling_y | 1 when chroma is halved vertically. 1, 1 is 4:2:0; 1, 0 is 4:2:2; 0, 0 is 4:4:4. |
| 2 | 2 | chroma_sample_position | 0 unknown, 1 vertical (between luma rows), 2 co-located with luma, 3 reserved. |
| 3 | 3 | reserved | 0. |
| 3 | 1 | initial_presentation_delay_present | 1 when the next field is used. |
| 3 | 4 | initial_presentation_delay_minus_one | Samples to decode, less one, before showing the first; otherwise reserved 0. |
| 4 | to end | configOBUs | Zero or more OBUs, each with its size field. At most one sequence header, and it comes first; usually just metadata OBUs. For items, AVIF says a sequence header should not be here. |
a1op: operating point selector
A plain box, at most one per item, marked essential when present. Left out when the item has a single operating point.
| Size | Type | Name | Description |
|---|---|---|---|
| 1 | u8 | op_index | Which AV1 operating point to decode, from 0 to operating_points_cnt_minus_1. Without this property a reader may use any operating point present. |
a1lx: layered image indexing
A plain box, at most one per item, for items with several spatial layers. It must not be marked essential.
| Bits | Name | Description |
|---|---|---|
| 7 | reserved | 0. |
| 1 | large_size | 0: the sizes below are 16-bit; 1: 32-bit. |
| 3 × 16 or 32 | layer_size[3] | Byte size of each layer except the last, in increasing spatial_id order. 0 ends the list. The last layer’s size is the item size minus the sum. A two-layer item has [X, 0, 0]. |
lsel: layer selector in AVIF
The HEIF lsel box (layer_id, u16) chooses which spatial layer of a
layered AV1 item to show:
| layer_id | Meaning |
|---|---|
| 0 to 3 | Show the output of the layer with that spatial_id. It must exist; lower layers may still be decoded to reach it. |
| 0xFFFF | Progressive: show only the highest layer, or show each layer’s output in turn ending with the highest. |
AVIF rules for HEIF properties
| Property | Rule in AVIF |
|---|---|
ispe | Width and height are the upscaled width and frame height of the output frame. |
pixi | Bit depth and channel count must agree with av1C. |
pasp | If present, must be 1:1. |
clap | The crop must be anchored at the top left (0, 0), unless the uncropped image is also offered as a separate, visible item. |
clap, irot, imir | Only on the item shown, never on the tiles of a grid. |
colr | As in HEIF; omitted on alpha items. The colour codes duplicate those in the AV1 sequence header. |
clli, mdcv | HDR metadata; if the item also has metadata OBUs, they must agree. Properties are preferred. |
cclv, amve, reve, ndwt | Content colour volume, ambient viewing environment, mastering viewing environment and nominal diffuse white: further HDR properties that AVIF 1.2.0 lists. Their layouts are not repeated here. |