1. Introduction
This document specifies how to use HDR10+ metadata within [AV1] bitstreams, including when carried in [CMAF]. HDR10+ metadata enables devices to optimize rendering of HDR content based on the display capabilities and on a scene-by-scene and frame-by-frame basis.
Various tools, services and devices support creation and use of HDR10+ metadata, which can be easily utilized directly in [AV1] systems.
Carriage of HDR10+ metadata in [AV1] leverages mechanisms specified in [T35] and [CTA-861]. HDR10+ metadata is placed in metadata OBUs of metadata_type
equal to METADATA_TYPE_ITUT_T35
.
This document covers details of the placement of these OBUs in [AV1] bitstreams.
2. Use of HDR10+ in AV1 bitstreams
2.1. HDR10+ Metadata
In the context of this specification, the syntax and semantics of the HDR10+ Metadata are defined in [CTA-861] and [ST-2094-40] respectively.
An HDR10+ Metadata OBU is defined as HDR10+ Metadata carried in a Metadata OBU.
The metadata_type
of such Metadata OBU is set to METADATA_TYPE_ITUT_T35
and the itu_t_t35_country_code
of the corresponding Metadata ITUT T35 element is set to 0xB5
.
The remaining syntax element of Metadata ITUT T35, itu_t_t35_payload_bytes
, is interpreted using the syntax defined in Annex S of [CTA-861], starting with the itu_t_t35_terminal_provider_code
, and the semantics defined in [ST-2094-40].
According to the definition of the HDR10+ Metadata, the first 6 bytes of the itu_t_t35_payload_bytes
of the HDR10+ Metadata OBU are set as follows:
-
0x003C
, which corresponds toitu_t_t35_terminal_provider_code
from Annex S of [CTA-861] -
0x0001
, which corresponds toitu_t_t35_terminal_provider_oriented_code
from Annex S of [CTA-861] -
0x4
, which corresponds toapplication_identifier
from Annex S of [CTA-861] -
0x1
, which corresponds toapplication_mode
from Annex S of [CTA-861]
All the remaining bytes of the itu_t_t35_payload_bytes
identify as the HDR10+ Metadata and are associated with the syntax elements of the user_data_registered_itu_t_t35
structure that is defined in Annex S of [CTA-861].
For convenience, the structure of the HDR10+ Metadata OBU is illustrated in Figure 1.
NOTE: [AV1] defines the general Metadata OBU syntax for HDR10 Static Metadata and ITU-T T.35 Metadata.
HDR10 Static Metadata is defined as a combination of three types of HDR related metadata, including MDCV, MaxCLL and MaxFALL. MDCV shall be present while MaxCLL and/or MaxFALL may be present.
2.2. HDR10+ bitstream constraints
The following sections define constraints that apply to [AV1] bitstreams when carrying HDR10+ Metadata.
2.2.1. Color Configuration
Streams suitable for incorporating HDR10+ metadata as described in this specification shall use the following values for the [AV1] color_config
:
color_primaries = 9
[CICP], which corresponds to the ITU-R BT.2020 color primaries [BT-2020] [BT-2100],transfer_characteristics = 16
[CICP], which corresponds to the PQ transfer characteristics function [ST-2084] [BT-2100],matrix_coefficients = 9
[CICP], which corresponds to the non-constant luminance Y’CbCr representation [BT-2020] [BT-2100].
Additionally, the following recommendations apply:
color_range
should be set to 0,subsampling_x
andsubsampling_y
should be set to 0,mono_chrome
should be set to 0,chroma_sample_position
should be set to 2.
2.2.2. Placement of HDR10+ Metadata OBUs
As defined in [AV1], an AV1 coded video sequence consists of one or more temporal units. A temporal unit contains a series of OBUs starting from a Temporal Delimiter OBU, optional Sequence Header OBUs, optional Metadata OBUs, a sequence of one or more Frame Header OBUs, each followed by zero or more Tile Group OBUs as well as optional Padding OBUs.
Consequently, for each frame with show_frame = 1
or show_existing_frame = 1
, there shall be one and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and located after the last OBU of the previous frame (if any) or after the Sequence Header OBU (if any) or after the start of the temporal unit (e.g. after the Temporal Delimiter OBU, for storage formats where Temporal Delimiter OBUs are preserved).
show_frame = 0
. For non-layered streams, there is only one HDR10+ Metadata OBU per temporal unit. For [AV1] bitstreams encoded with multiple layers, HDR10+ Metadata may apply to one or more layers. However, the details are out of scope of this version of the specification.
Figure 2 shows a simplified example of placement of HDR10+ Metadata OBUs in an AV1 bitstream.
2.2.3. Provision for Film Grain Processing
It is possible that some [AV1] bitstreams may contain both HDR10+ Metadata and film grain synthesis information. It is recommended that decoders in such scenarios perform the film grain synthesis prior to any HDR10+ Metadata processing.
3. Storage and Transport considerations
3.1. Constraints on AV1CodecConfigurationRecord
For formats that use theAV1CodecConfigurationRecord
when storing [AV1] bitstreams (e.g. ISOBMFF and MPEG-2 TS), HDR10+ Metadata OBUs shall not be present in the configOBUs
field of the AV1CodecConfigurationRecord
.
3.2. ISOBMFF Constraints
AV1 Metadata sample group defined in [AV1-ISOBMFF] shall not be used.[AV1-ISOBMFF] indicates that Metadata OBUs may be protected. This specification requires that HDR10 Static Metadata and HDR10+ Metadata OBUs are unprotected.
An ISOBMFF file or CMAF AV1 track as defined in [AV1-ISOBMFF] that also conforms to this specification (i.e. that contains HDR10+ metadata OBUs and complies to the constraints from this specification) should use the brandcdm4
defined in [CTA-5001] in addition to the brand av01
. If the brand cdm4
is used in conjunction with [AV1] bitstreams, the constraints defined in this specification shall be respected.
3.3. HTTP Streaming Constraints
The value of the Codecs Parameter String for [AV1] bitstreams that is used when using HTTP streaming technologies shall remain unchanged when HDR10+ Metadata OBUs are included in the [AV1] stream.Additionally, [DASH] content following [DASH-IOP] should include a Supplemental Descriptor with @schemeIdUri
set to "http://dashif.org/metadata/hdr"
and @value
set to "SMPTE2094-40"
in manifest files. This can aid players to identify tracks containing HDR10+ Metadata OBUs.
4. Example Streams and Tools
Information on this topic is found in the Wiki for this project.