OBU
An ordered sequence of OBUs is fed into the AV1 decoding process, where each OBU comprises a variable-length string of bytes. An OBU contains a header and a payload. The header identifies the OBU type and specifies the payload size. Typical OBU types include:
- Sequence Header that contains information that applies to the entire sequence, e.g., sequence profile (see Section VIII), whether to enable certain coding tools, etc.
- Temporal Delimiter indicates the frame presentation timestamp. All displayable frames following a temporal delimiter OBU will use this timestamp until the next temporal delimiter OBU arrives. A temporal delimiter and its subsequent OBUs of the same timestamp are referred to as a temporal unit. In the context of scalable coding, the compression data associated with all representations of a frame at various spatial and fidelity resolutions will be in the same temporal unit.
- Frame Header sets up the coding information for a given frame, including signaling inter or intra frame type, indicating the reference frames, signaling probability model update method, etc.
- Tile Group contains the tile data associated with a frame. Each tile can be independently decoded. The collective reconstructions form the reconstructed frame after potential loop filtering.
- Frame contains the frame header and tile data. The frame OBU is largely equivalent to a frame header OBU and a tile group OBU but allows less overhead cost.
- Metadata carries information such as high dynamic range, scalability, and timecode.
- Tile List contains tile data similar to a tile group OBU. However, each tile here has an additional header that indicates its reference frame index and position in the current frame.
This allows the decoder to process a subset of tiles and display the corresponding part of the frame, without the need to fully decode all the tiles in the frame. Such capability is desirable for light field applications