What Are Open Bitstream Units in AV1?

Open Bitstream Units (OBUs) are the foundational structural syntax elements used to package, format, and deliver video data within the AOMedia Video 1 (AV1) codec specification. This article breaks down the architecture of OBUs in AV1, explains their internal structure, details the primary OBU types, and highlights how this modular design enhances streaming flexibility, error resilience, and temporal or spatial scalability.

The Role of OBUs in the AV1 Bitstream

In AV1, an encoded bitstream is not a single contiguous block of video data. Instead, it is structured as a sequence of discrete data packets called Open Bitstream Units.

Functionally, OBUs serve a similar role to Network Abstraction Layer (NAL) units in legacy standards like AVC (H.264) and HEVC (H.265). However, OBUs are engineered specifically for modern internet protocols and container formats, allowing decoders and parsers to inspect, extract, or discard specific sections of the bitstream without needing to decode the entire payload.

Structure of an Open Bitstream Unit

Every OBU consists of a standardized header followed by an optional payload. The header defines the type of data contained within the unit and provides instructions on how parsers should handle it.

  1. OBU Header (1 to 2 bytes):

    • obu_type (4 bits): Identifies the category of data (e.g., Sequence Header, Frame, Tile Group, Metadata).
    • obu_extension_flag (1 bit): Indicates whether an extension header follows.
    • obu_has_size_field (1 bit): Specifies whether the length of the payload is explicitly stated in the OBU.
    • Reserved bits (2 bits): Reserved for future syntax expansion.
  2. OBU Extension Header (Optional, 1 byte):

    • Present only when obu_extension_flag is set.
    • Contains the temporal_id (3 bits) and spatial_id (2 bits), which enable native support for Scalable Video Coding (SVC). Parsers can drop higher temporal or spatial layers during network congestion without parsing the compressed video payload.
  3. OBU Payload Size (Optional):

    • Encoded using a variable-length format (LEB128). It defines the byte length of the subsequent payload, allowing non-decoding network middleboxes to skip unneeded units efficiently.
  4. OBU Payload:

    • The actual payload data corresponding to the specified obu_type.

Core OBU Types

The AV1 specification defines several distinct OBU types, each responsible for a specific function within the decoding pipeline:

Key Advantages of the OBU Architecture

The OBU syntax provides several operational advantages: