9. Profiles, Levels, and Bands
Cette section conserve le texte RFC relatif a APV, y compris bitstream syntax, syntax element processing, decoding and parsing processes, metadata, profiles, levels, bands, raw bitstream format et implementation references.
Texte RFC original
9. Profiles, Levels, and Bands
9.1. Overview of Profiles, Levels, and Bands
Profiles, levels, and bands specify restrictions on a coded frame and
hence limits on the capabilities needed to decode the coded frame.
Profiles, levels, and bands are also used to indicate
interoperability points between individual decoder implementations.
Each profile specifies a subset of algorithmic features and limits
that MUST be supported by all decoders conforming to that profile.
NOTE: This document does not include individually selectable
"options" at the decoder, as this would increase interoperability
difficulties.
NOTE: Encoders are not required to make use of any particular
subset of features supported in a profile.
Each level with a band specifies a set of limits on the values that
may be taken by the syntax elements of this document. For any given
profile, a level with a band generally corresponds to a particular
decoder processing load and memory capability. The constraints set
by levels and bands are orthogonal to the constraints defined by
profiles so that the same set of level and band definitions is used
with all profiles. For example, a certain level L and a certain band
B can be combined with either profile X or profile Y to specifically
define two different sets of constraints.
NOTE: Individual implementations may support a different level for
each supported profile.
9.2. Requirements on Video Decoder Capability
Capabilities of video decoders conforming to this document are
specified in terms of the ability to decode video streams conforming
to the constraints of profiles, levels, and bands specified in this
section. When expressing the capabilities of a decoder for a
specified profile, the level and the band supported for that profile
MUST also be expressed.
Specific values are specified for the syntax elements profile_idc,
level_idc, and band_idc. All other values of profile_idc, level_idc,
and band_idc are reserved for future use.
NOTE: Decoders SHALL NOT infer that a reserved value of
profile_idc between the values specified in this document
indicates intermediate capabilities between the specified
profiles, as there are no restrictions on the method to be chosen
for the use of such future reserved values. However, decoders
MUST infer that a reserved value of level_idc and a reserved value
of band_idc between the values specified in this document
indicates intermediate capabilities between the specified levels.
9.3. Profiles
9.3.1. General
All constraints for a coded frame that are specified are constraints
for the coded frame that are activated when the bitstream of the
access unit is decoded.
9.3.2. 422-10 Profile
Conformance of a coded frame to the 422-10 profile is indicated by
profile_idc equal to 33.
Coded frames conforming to the 422-10 profile MUST obey the following
constraints:
* chroma_format_idc MUST be equal to 2.
* bit_depth_minus8 MUST be equal to 2.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 422-10 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 422-10 profile at a specific level (identified by a
specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.3. 422-12 Profile
Conformance of a coded frame to the 422-12 profile is indicated by
profile_idc equal to 44.
Coded frames conforming to the 422-12 profile MUST obey the following
constraints:
* chroma_format_idc MUST be equal to 2.
* bit_depth_minus8 MUST be in the range of 2 to 4.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 422-12 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 422-12 profile at a specific level (identified by a
specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 422-12 profile or
the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.4. 444-10 Profile
Conformance of a coded frame to the 444-10 profile is indicated by
profile_idc equal to 55.
Coded frames conforming to the 444-10 profile MUST obey the following
constraints:
* chroma_format_idc MUST be in the range of 2 to 3.
* bit_depth_minus8 MUST be equal to 2.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 444-10 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 444-10 profile at a specific level (identified by a
specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 444-10 profile or
the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.5. 444-12 Profile
Conformance of a coded frame to the 444-12 profile is indicated by
profile_idc equal to 66.
Coded frames conforming to the 444-12 profile MUST obey the following
constraints:
* chroma_format_idc MUST be in the range of 2 to 3.
* bit_depth_minus8 MUST be in the range of 2 to 4.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 444-12 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 444-12 profile at a specific level (identified by a
specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 444-12 profile, the
444-10 profile, the 422-12 profile, or the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.6. 4444-10 Profile
Conformance of a coded frame to the 4444-10 profile is indicated by
profile_idc equal to 77.
Coded frames conforming to the 4444-10 profile MUST obey the
following constraints:
* chroma_format_idc MUST be in the range of 2 to 4.
* bit_depth_minus8 MUST be equal to 2.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 4444-10 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 4444-10 profile at a specific level (identified by
a specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 4444-10 profile,
the 444-10 profile, or the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.7. 4444-12 Profile
Conformance of a coded frame to the 4444-12 profile is indicated by
profile_idc equal to 88.
Coded frames conforming to the 4444-12 profile MUST obey the
following constraints:
* chroma_format_idc MUST be in the range of 2 to 4.
* bit_depth_minus8 MUST be in the range of 2 to 4.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 4444-12 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 4444-12 profile at a specific level (identified by
a specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 4444-12 profile,
the 4444-10 profile, the 444-12 profile, the 444-10 profile, the
422-12 profile, or the 422-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.3.8. 400-10 Profile
Conformance of a coded frame to the 400-10 profile is indicated by
profile_idc equal to 99.
Coded frames conforming to the 400-10 profile MUST obey the following
constraints:
* chroma_format_idc MUST be equal to 0.
* bit_depth_minus8 MUST be equal to 2.
* pbu_type MUST be equal to 1.
Coded frames conforming to the 400-10 profile MUST also conform to
any levels and bands constraints specified in Section 9.4. Decoders
conforming to the 400-10 profile at a specific level (identified by a
specific value of L) and a specific band (identified by a specific
value of B) MUST be capable of decoding all coded frames for which
all of the following conditions apply:
* The coded frame is indicated to conform to the 400-10 profile.
* The coded frame is indicated to conform to a level (by a specific
value of level_idc) that is lower than or equal to level L.
* The coded frame is indicated to conform to a band (by a specific
value of band_idc) that is lower than or equal to band B.
9.4. Levels and Bands
9.4.1. General
For purposes of comparison of level capabilities, a particular level
of each band is considered to be a lower level than some other level
when the value of the level_idc of the particular level of each band
is less than that of the other level.
* The luma sample rate (luma samples per second) MUST be less than
or equal to the "Max luma sample rate".
* The coded data rate (bits per second) MUST be less than or equal
to the "Max coded data rate".
* The value of tile_width_in_mbs MUST be greater than or equal to
16.
* The value of tile_height_in_mbs MUST be greater than or equal to
8.
* The value of TileCols MUST be less than or equal to 20.
* The value of TileRows MUST be less than or equal to 20.
9.4.2. Limits of Levels and Bands
Table 4 specifies the limits for each level of each band. A level to
which a coded frame conforms is indicated by the syntax elements
level_idc and band_idc as follows:
* level_idc MUST be set equal to a value of 30 times the level
number specified in Table 4.
+=======+==================+=====================================+
| level | Max luma sample | Max coded data rate (Mbit/s) |
| | rate (samples/s) | |
| | +=====================================+
| | | band_idc== |
| | +========+========+=========+=========+
| | | 0 | 1 | 2 | 3 |
+=======+==================+========+========+=========+=========+
| 1 | 3,041,280 | 8 | 11 | 15 | 23 |
+-------+------------------+--------+--------+---------+---------+
| 1.1 | 6,082,560 | 16 | 21 | 30 | 45 |
+-------+------------------+--------+--------+---------+---------+
| 2 | 15,667,200 | 39 | 54 | 76 | 114 |
+-------+------------------+--------+--------+---------+---------+
| 2.1 | 31,334,400 | 78 | 108 | 152 | 227 |
+-------+------------------+--------+--------+---------+---------+
| 3 | 66,846,720 | 114 | 159 | 222 | 333 |
+-------+------------------+--------+--------+---------+---------+
| 3.1 | 133,693,440 | 227 | 317 | 444 | 666 |
+-------+------------------+--------+--------+---------+---------+
| 4 | 265,420,800 | 455 | 637 | 892 | 1,338 |
+-------+------------------+--------+--------+---------+---------+
| 4.1 | 530,841,600 | 910 | 1,274 | 1,784 | 2,675 |
+-------+------------------+--------+--------+---------+---------+
| 5 | 1,061,683,200 | 1,820 | 2,548 | 3,567 | 5,350 |
+-------+------------------+--------+--------+---------+---------+
| 5.1 | 2,123,366,400 | 3,639 | 5,095 | 7,133 | 10,699 |
+-------+------------------+--------+--------+---------+---------+
| 6 | 4,777,574,400 | 7,278 | 10,189 | 14,265 | 21,397 |
+-------+------------------+--------+--------+---------+---------+
| 6.1 | 8,493,465,600 | 14,556 | 20,378 | 28,529 | 42,793 |
+-------+------------------+--------+--------+---------+---------+
| 7 | 16,986,931,200 | 29,111 | 40,756 | 57,058 | 85,586 |
+-------+------------------+--------+--------+---------+---------+
| 7.1 | 33,973,862,400 | 58,222 | 81,511 | 114,115 | 171,172 |
+-------+------------------+--------+--------+---------+---------+
Table 4: General level limits
Table 5 shows widely used typical configurations of resolution and
frame rates of video and corresponding levels for them.
+==========+============+==================+===============+=======+
| use case | resolution | frame per second | luma sample | level |
| | | | per second | |
+==========+============+==================+===============+=======+
| 720p | 1280 x 720 | 30 | 27,648,000 | 2.1 |
+----------+------------+------------------+---------------+-------+
| FHD | 1920 x | 30 | 62,208,000 | 3 |
| | 1080 | | | |
+----------+------------+------------------+---------------+-------+
| UHD 4K | 3840 x | 60 | 497,664,000 | 4.1 |
| | 2160 | | | |
+----------+------------+------------------+---------------+-------+
| UHD 4K | 3840 x | 120 | 995,328,000 | 5 |
| | 2160 | | | |
+----------+------------+------------------+---------------+-------+
| UHD 8K | 7680 x | 60 | 1,990,656,000 | 5.1 |
| | 4320 | | | |
+----------+------------+------------------+---------------+-------+
| UHD 8K | 7680 x | 120 | 3,981,312,000 | 6 |
| | 4320 | | | |
+----------+------------+------------------+---------------+-------+
Table 5: Example of typical video configurations and
corresponding levels (informative)