How AV1 Implements HDR Color Signaling

This article provides an overview of how the AOMedia Video 1 (AV1) codec standardizes High Dynamic Range (HDR) color signaling. AV1 conveys HDR information directly within its bitstream structure using Sequence Header syntax elements and dedicated Metadata Open Bitstream Units (OBUs). This framework enables decoders and display pipelines to accurately interpret high bit-depth pixel data, wide color gamuts, electro-optical transfer functions (EOTFs), and both static and dynamic luminance metadata.

Sequence Header Color Configuration

AV1 handles fundamental color properties within the color_config syntax structure located inside the Sequence Header OBU. Because this header governs the entire sequence, it sets the baseline color properties for all subsequent video frames until a new sequence begins.

The color_config syntax specifies four critical parameters:

  • Bit Depth (BitDepth): HDR requires higher bit precision to prevent banding. AV1 signals 8-bit, 10-bit, or 12-bit pixel depth. Profiles 0 (Main) and 2 (Professional) support 10-bit, while Profile 2 also supports 12-bit.
  • Color Primaries (color_primaries): Identifies the chromaticity coordinates of the source color space. For standard HDR delivery, this is typically set to 12, representing ITU-R BT.2020.
  • Transfer Characteristics (transfer_characteristics): Defines the EOTF curve used to map code values to linear display light. The primary values used for HDR include:
    • 16: SMPTE ST 2084 (Perceptual Quantizer / PQ), the standard EOTF for HDR10, Dolby Vision, and HDR10+.
    • 18: ARIB STD-B67 (Hybrid Log-Gamma / HLG), commonly used for broadcast applications.
  • Matrix Coefficients (matrix_coefficients): Specifies the transformation matrix used to derive luma and chroma signals from red, green, and blue (RGB) primaries. HDR workflows typically set this to 9 (BT.2020 non-constant luminance) or 14 (BT.2100-ICTCP).
  • Color Range (color_range): A single bit signaling either Studio Range (narrow/limited, values 64–940 in 10-bit) or Full Range (0–1023 in 10-bit).

If these parameters conform to the standard sRGB/BT.709 space, the bitstream can set color_description_present_flag to 0, but for HDR formats, this flag is set to 1 to explicitly declare the parameters.

Chroma Subsampling and Sample Positioning

Proper HDR tone mapping requires exact alignment between luma and chroma samples. Within the color_config block:

  • Subsampling: AV1 explicitly signals subsampling_x and subsampling_y to indicate 4:2:0, 4:2:2, or 4:4:4 sampling formats.
  • Chroma Sample Position: When 4:2:0 subsampling is applied, AV1 uses chroma_sample_position to specify whether chroma samples are collocated with luma samples (e.g., vertical alignment matching ITU-R BT.2020) or positioned half-way between luma samples (center-aligned).

Static HDR Metadata Signaling

Beyond primary color spaces, AV1 carries static mastering display metadata via discrete Open Bitstream Units designated as OBU_METADATA. These packets can be injected at keyframe intervals or repeated periodically to allow decoders to reconstruct target display capabilities.

AV1 specifies two core static metadata types:

1. Mastering Display Color Volume (MDCV)

Signaled via METADATA_TYPE_HDR_MDCV (Type 1), this block implements the SMPTE ST 2086 specification. It details the display parameters of the monitor used during mastering:

  • Display Primaries: Normalized chromaticity coordinates (\(x, y\)) for red, green, and blue.
  • White Point: Normalized chromaticity coordinates (\(x, y\)) of the mastering monitor's white balance (typically D65).
  • Luminance Limits: The minimum and maximum display luminance, measured in candelas per square meter (\(\text{cd/m}^2\) or nits), expressed in fixed-point values.

2. Content Light Level (CLL)

Signaled via METADATA_TYPE_HDR_CLL (Type 2), this block implements the CTA-861-G standard to describe scene brightness across the entire video:

  • MaxCLL (Maximum Content Light Level): The luminance value of the brightest single pixel in the entire stream, measured in nits.
  • MaxFALL (Maximum Frame-Average Light Level): The highest average picture luminance across any single frame in the stream, measured in nits.

Receiving displays use MDCV and CLL data to guide static tone mapping algorithms, compressing out-of-gamut values while preserving specular highlights according to display hardware capabilities.

Dynamic Metadata Implementation

AV1 supports frame-by-frame and scene-by-scene dynamic tone mapping formats using generalized user-data wrappers.

Rather than relying on proprietary bitstream syntax, AV1 employs METADATA_TYPE_ITUT_T35 (Type 4). This metadata type encapsulates ITU-T Recommendation T.35 payload structures, which define:

  • Country Code: Standardized geographic indicator.
  • Terminal Provider Code: Specific identifier for the standard body or vendor (e.g., SMPTE, Dolby, or HDR10+ Consortium).
  • Payload: Frame-accurate metadata packets containing dynamic parametric curves, distribution percentiles (such as 1%, 50%, 99% light levels), and targeted contrast offsets.

By transmitting dynamic metadata within ITU-T T.35 OBUs directly alongside the relevant frame packets, AV1 allows HDR10+ and Dolby Vision metadata to stay synchronized with video frames through transcoding, decapsulation, and playback pipelines.