Aller au contenu principal

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)