Rec. ITU-T H.266 (V3) (09/2023) Versatile video coding
Summary
History
FOREWORD
CONTENTS
Introduction
     Purpose
     Profiles, tiers, and levels
     Encoding process, decoding process, and use of VUI parameters and SEI messages
     Versions of this Recommendation | International Standard
     Overview of the design characteristics
     How to read this document
1 Scope
2 Normative references
     2.1 Identical Recommendations | International Standards
     2.2 Paired Recommendations | International Standards equivalent in technical content
     2.3 Additional references
3 Definitions
4 Abbreviations
5 Conventions
     5.1 General
     5.2 Arithmetic operators
     5.3 Logical operators
     5.4 Relational operators
     5.5 Bit-wise operators
     5.6 Assignment operators
     5.7 Range notation
     5.8 Mathematical functions
     5.9 Order of operation precedence
     5.10 Variables, syntax elements and tables
     5.11 Text description of logical operations
     5.12 Processes
6  Bitstream and picture formats, partitionings, scanning processes and neighbouring relationships
     6.1 Bitstream formats
     6.2 Source, decoded and output picture formats
     6.3 Partitioning of pictures, subpictures, slices, tiles, and CTUs
          6.3.1 Partitioning of pictures into subpictures, slices, and tiles
          6.3.2 Block, quadtree and multi-type tree structures
          6.3.3 Spatial or component-wise partitionings
     6.4 Availability processes
          6.4.1 Allowed quad split process
          6.4.2 Allowed binary split process
          6.4.3 Allowed ternary split process
          6.4.4 Derivation process for neighbouring block availability
     6.5 Scanning processes
          6.5.1 CTB raster scanning, tile scanning, and subpicture scanning processes
          6.5.2 Up-right diagonal scan order array initialization process
          6.5.3 Horizontal and vertical traverse scan order array initialization process
7 Syntax and semantics
     7.1 Method of specifying syntax in tabular form
     7.2 Specification of syntax functions and descriptors
     7.3 Syntax in tabular form
          7.3.1 NAL unit syntax
               7.3.1.1 General NAL unit syntax
               7.3.1.2 NAL unit header syntax
          7.3.2 Raw byte sequence payloads, trailing bits and byte alignment syntax
               7.3.2.1 Decoding capability information RBSP syntax
               7.3.2.2 Operating point information RBSP syntax
               7.3.2.3 Video parameter set RBSP syntax
               7.3.2.4 Sequence parameter set RBSP syntax
               7.3.2.5 Picture parameter set RBSP syntax
               7.3.2.6 Adaptation parameter set RBSP syntax
               7.3.2.7 Picture header RBSP syntax
               7.3.2.8 Picture header structure syntax
               7.3.2.9 Supplemental enhancement information RBSP syntax
               7.3.2.10 AU delimiter RBSP syntax
               7.3.2.11 End of sequence RBSP syntax
               7.3.2.12 End of bitstream RBSP syntax
               7.3.2.13 Filler data RBSP syntax
               7.3.2.14 Slice layer RBSP syntax
               7.3.2.15 RBSP slice trailing bits syntax
               7.3.2.16 RBSP trailing bits syntax
               7.3.2.17 Byte alignment syntax
               7.3.2.18 Adaptive loop filter data syntax
               7.3.2.19 Luma mapping with chroma scaling data syntax
               7.3.2.20 Scaling list data syntax
               7.3.2.21 VUI payload syntax
               7.3.2.22 Sequence parameter set range extension syntax
          7.3.3 Profile, tier, and level syntax
               7.3.3.1 General profile, tier, and level syntax
               7.3.3.2 General constraints information syntax
          7.3.4 DPB parameters syntax
          7.3.5 Timing and HRD parameters syntax
               7.3.5.1 General timing and HRD parameters syntax
               7.3.5.2 OLS timing and HRD parameters syntax
               7.3.5.3 Sublayer HRD parameters syntax
          7.3.6 Supplemental enhancement information message syntax
          7.3.7 Slice header syntax
          7.3.8 Weighted prediction parameters syntax
          7.3.9 Reference picture lists syntax
          7.3.10 Reference picture list structure syntax
          7.3.11 Slice data syntax
               7.3.11.1 General slice data syntax
               7.3.11.2 Coding tree unit syntax
               7.3.11.3 Sample adaptive offset syntax
               7.3.11.4 Coding tree syntax
               7.3.11.5 Coding unit syntax
               7.3.11.6 Palette coding syntax
               7.3.11.7 Merge data syntax
               7.3.11.8 Motion vector difference syntax
               7.3.11.9 Transform tree syntax
               7.3.11.10 Transform unit syntax
               7.3.11.11 Residual coding syntax
     7.4 Semantics
          7.4.1 General
          7.4.2 NAL unit semantics
               7.4.2.1 General NAL unit semantics
               7.4.2.2 NAL unit header semantics
               7.4.2.3 Encapsulation of an SODB within an RBSP (informative)
               7.4.2.4 Order of NAL units in the bitstream
                    7.4.2.4.1 General
                    7.4.2.4.2 Order of AUs and their association to CVSs
                    7.4.2.4.3 Order of PUs and their association to AUs
                    7.4.2.4.4 Order of NAL units and coded pictures and their association to PUs
                    7.4.2.4.5 Order of VCL NAL units and their association to coded pictures
          7.4.3 Raw byte sequence payloads, trailing bits and byte alignment semantics
               7.4.3.1 Decoding capability information RBSP semantics
               7.4.3.2 Operating point information RBSP semantics
               7.4.3.3 Video parameter set RBSP semantics
               7.4.3.4 Sequence parameter set RBSP semantics
               7.4.3.5 Picture parameter set RBSP semantics
               7.4.3.6 Adaptation parameter set semantics
               7.4.3.7 Picture header RBSP semantics
               7.4.3.8 Picture header structure semantics
               7.4.3.9 Supplemental enhancement information RBSP semantics
               7.4.3.10 AU delimiter RBSP semantics
               7.4.3.11 End of sequence RBSP semantics
               7.4.3.12 End of bitstream RBSP semantics
               7.4.3.13 Filler data RBSP semantics
               7.4.3.14 Slice layer RBSP semantics
               7.4.3.15 RBSP slice trailing bits semantics
               7.4.3.16 RBSP trailing bits semantics
               7.4.3.17 Byte alignment semantics
               7.4.3.18 Adaptive loop filter data semantics
               7.4.3.19 Luma mapping with chroma scaling data semantics
               7.4.3.20 Scaling list data semantics
               7.4.3.21 VUI payload semantics
               7.4.3.22 Sequence parameter set range extension semantics
          7.4.4 Profile, tier, and level semantics
               7.4.4.1 General profile, tier, and level semantics
               7.4.4.2 General constraints information semantics
          7.4.5 DPB parameters semantics
          7.4.6 Timing and HRD parameters semantics
               7.4.6.1 General timing and HRD parameters semantics
               7.4.6.2 OLS timing and HRD parameters semantics
               7.4.6.3 Sublayer HRD parameters semantics
          7.4.7 Supplemental enhancement information message semantics
          7.4.8 Slice header semantics
          7.4.9 Weighted prediction parameters semantics
          7.4.10 Reference picture lists semantics
          7.4.11 Reference picture list structure semantics
          7.4.12 Slice data semantics
               7.4.12.1 General slice data semantics
               7.4.12.2 Coding tree unit semantics
               7.4.12.3 Sample adaptive offset semantics
               7.4.12.4 Coding tree semantics
               7.4.12.5 Coding unit semantics
               7.4.12.6 Palette coding semantics
               7.4.12.7 Merge data semantics
               7.4.12.8 Motion vector difference semantics
               7.4.12.9 Transform tree semantics
               7.4.12.10 Transform unit semantics
               7.4.12.11 Residual coding semantics
8 Decoding process
     8.1 General decoding process
          8.1.1 General
          8.1.2 Decoding process for a coded picture
     8.2 NAL unit decoding process
     8.3 Slice decoding process
          8.3.1 Decoding process for picture order count
          8.3.2 Decoding process for reference picture lists construction
          8.3.3 Decoding process for reference picture marking
          8.3.4 Decoding process for generating unavailable reference pictures
               8.3.4.1 General decoding process for generating unavailable reference pictures
               8.3.4.2 Generation of one unavailable picture
          8.3.5 Decoding process for symmetric motion vector difference reference indices
          8.3.6 Decoding process for collocated picture and no backward prediction
     8.4 Decoding process for coding units coded in intra prediction mode
          8.4.1 General decoding process for coding units coded in intra prediction mode
          8.4.2 Derivation process for luma intra prediction mode
          8.4.3 Derivation process for chroma intra prediction mode
          8.4.4 Cross-component chroma intra prediction mode checking process
          8.4.5 Decoding process for intra blocks
               8.4.5.1 General decoding process for intra blocks
               8.4.5.2 Intra sample prediction
                    8.4.5.2.1 General
                    8.4.5.2.2 Matrix-based intra sample prediction
                    8.4.5.2.3 MIP boundary sample downsampling process
                    8.4.5.2.4 MIP weight matrix derivation process
                    8.4.5.2.5 MIP prediction upsampling process
                    8.4.5.2.6 General intra sample prediction
                    8.4.5.2.7 Wide angle intra prediction mode mapping process
                    8.4.5.2.8 Reference sample availability marking process
                    8.4.5.2.9 Reference sample substitution process
                    8.4.5.2.10 Reference sample filtering process
                    8.4.5.2.11 Specification of INTRA_PLANAR intra prediction mode
                    8.4.5.2.12 Specification of INTRA_DC intra prediction mode
                    8.4.5.2.13 Specification of INTRA_ANGULAR2..INTRA_ANGULAR66 intra prediction modes
                    8.4.5.2.14 Specification of INTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLM intra prediction mode
                    8.4.5.2.15 Position-dependent intra prediction sample filtering process
               8.4.5.3 Decoding process for palette mode
     8.5 Decoding process for coding units coded in inter prediction mode
          8.5.1 General decoding process for coding units coded in inter prediction mode
          8.5.2 Derivation process for motion vector components and reference indices
               8.5.2.1 General
               8.5.2.2 Derivation process for luma motion vectors for merge mode
               8.5.2.3 Derivation process for spatial merging candidates
               8.5.2.4 Derivation process for pairwise average merging candidate
               8.5.2.5 Derivation process for zero motion vector merging candidates
               8.5.2.6 Derivation process for history-based merging candidates
               8.5.2.7 Derivation process for merge motion vector difference
               8.5.2.8 Derivation process for luma motion vector prediction
               8.5.2.9 Derivation process for motion vector predictor candidate list
               8.5.2.10 Derivation process for spatial motion vector predictor candidates
               8.5.2.11 Derivation process for temporal luma motion vector prediction
               8.5.2.12 Derivation process for collocated motion vectors
               8.5.2.13 Derivation process for chroma motion vectors
               8.5.2.14 Rounding process for motion vectors
               8.5.2.15 Temporal motion buffer compression process for collocated motion vectors
               8.5.2.16 Updating process for the history-based motion vector predictor candidate list
          8.5.3 Decoder-side motion vector refinement process
               8.5.3.1 General
               8.5.3.2 Fractional sample bilinear interpolation process
                    8.5.3.2.1  General
                    8.5.3.2.2 Luma sample bilinear interpolation process
               8.5.3.3 Sum of absolute differences calculation process
               8.5.3.4 Array entry selection process
               8.5.3.5 Parametric motion vector refinement process
                    8.5.3.5.1 General
                    8.5.3.5.2 Derivation process for delta motion vector component offset
          8.5.4 Derivation process for geometric partitioning mode motion vector components and reference indices
               8.5.4.1 General
               8.5.4.2 Derivation process for luma motion vectors for geometric partitioning merge mode
          8.5.5 Derivation process for subblock motion vector components and reference indices
               8.5.5.1 General
               8.5.5.2 Derivation process for motion vectors and reference indices in subblock merge mode
               8.5.5.3 Derivation process for subblock-based temporal merging candidates
               8.5.5.4 Derivation process for subblock-based temporal merging base motion data
               8.5.5.5 Derivation process for luma affine control point motion vectors from a neighbouring block
               8.5.5.6 Derivation process for constructed affine control point motion vector merging candidates
               8.5.5.7 Derivation process for luma affine control point motion vector predictors
               8.5.5.8 Derivation process for constructed affine control point motion vector prediction candidates
               8.5.5.9 Derivation process for motion vector arrays from affine control point motion vectors
          8.5.6 Decoding process for inter blocks
               8.5.6.1 General
               8.5.6.2 Reference picture selection process
               8.5.6.3 Fractional sample interpolation process
                    8.5.6.3.1 General
                    8.5.6.3.2 Luma sample interpolation filtering process
                    8.5.6.3.3 Luma integer sample fetching process
                    8.5.6.3.4 Chroma sample interpolation process
               8.5.6.4 Prediction refinement with optical flow process
               8.5.6.5 Bi-directional optical flow prediction process
               8.5.6.6 Weighted sample prediction process
                    8.5.6.6.1 General
                    8.5.6.6.2 Default weighted sample prediction process
                    8.5.6.6.3 Explicit weighted sample prediction process
               8.5.6.7 Weighted sample prediction process for combined merge and intra prediction
          8.5.7 Decoding process for geometric partitioning mode inter blocks
               8.5.7.1 General
               8.5.7.2 Weighted sample prediction process for geometric partitioning mode
               8.5.7.3 Motion vector storing process for geometric partitioning mode
          8.5.8 Decoding process for the residual signal of coding blocks coded in inter prediction mode
          8.5.9 Decoding process for the reconstructed signal of chroma coding blocks coded in inter prediction mode
     8.6 Decoding process for coding units coded in IBC prediction mode
          8.6.1 General decoding process for coding units coded in IBC prediction mode
          8.6.2 Derivation process for block vector components for IBC blocks
               8.6.2.1 General
               8.6.2.2 Derivation process for IBC luma block vector prediction
               8.6.2.3 Derivation process for IBC spatial block vector candidates
               8.6.2.4 Derivation process for IBC history-based block vector candidates
               8.6.2.5 Derivation process for chroma block vectors
               8.6.2.6 Updating process for the history-based block vector predictor candidate list
          8.6.3 Decoding process for IBC blocks
     8.7 Scaling, transformation and array construction process
          8.7.1 Derivation process for quantization parameters
          8.7.2 Scaling and transformation process
          8.7.3 Scaling process for transform coefficients
          8.7.4 Transformation process for scaled transform coefficients
               8.7.4.1 General
               8.7.4.2 Low frequency non-separable transformation process
               8.7.4.3 Low frequency non-separable transformation matrix derivation process
               8.7.4.4 Transformation process
               8.7.4.5 Transformation matrix derivation process
               8.7.4.6 Residual modification process for blocks using colour space conversion
          8.7.5 Picture reconstruction process
               8.7.5.1 General
               8.7.5.2 Picture reconstruction with mapping process for luma samples
               8.7.5.3 Picture reconstruction with luma dependent chroma residual scaling process for chroma samples
     8.8 In-loop filter process
          8.8.1 General
          8.8.2 Picture inverse mapping process for luma samples
               8.8.2.1 General
               8.8.2.2 Inverse mapping process for a luma sample
               8.8.2.3 Identification of piecewise function index process for a luma sample
          8.8.3 Deblocking filter process
               8.8.3.1 General
               8.8.3.2 Deblocking filter process for one direction
               8.8.3.3 Derivation process of transform block boundary
               8.8.3.4 Derivation process of subblock boundary
               8.8.3.5 Derivation process of boundary filtering strength
               8.8.3.6 Edge filtering process for one direction
                    8.8.3.6.1 General
                    8.8.3.6.2 Decision process for luma block edges
                    8.8.3.6.3 Filtering process for luma block edges
                    8.8.3.6.4 Decision process for chroma block edges
                    8.8.3.6.5 Filtering process for chroma block edges
                    8.8.3.6.6 Decision process for a luma sample
                    8.8.3.6.7 Filtering process for a luma sample using short filters
                    8.8.3.6.8 Filtering process for a luma sample using long filters
                    8.8.3.6.9 Decision process for a chroma sample
                    8.8.3.6.10 Filtering process for a chroma sample
          8.8.4 Sample adaptive offset process
               8.8.4.1 General
               8.8.4.2 CTB modification process
          8.8.5 Adaptive loop filter process
               8.8.5.1 General
               8.8.5.2 Coding tree block filtering process for luma samples
               8.8.5.3 Derivation process for ALF transpose and filter index for luma samples
               8.8.5.4 Coding tree block filtering process for chroma samples
               8.8.5.5 ALF boundary position derivation process
               8.8.5.6 ALF sample padding process
               8.8.5.7 Cross-component filtering process
9 Parsing process
     9.1 General
     9.2 Parsing process for k-th order Exp-Golomb codes
          9.2.1 General
          9.2.2 Mapping process for signed Exp-Golomb codes
     9.3 CABAC parsing process for slice data
          9.3.1 General
          9.3.2 Initialization process
               9.3.2.1 General
               9.3.2.2 Initialization process for context variables
               9.3.2.3 Storage process for context variables
               9.3.2.4 Synchronization process for context variables
               9.3.2.5 Initialization process for the arithmetic decoding engine
               9.3.2.6 Storage process for palette predictor
               9.3.2.7 Synchronization process for palette predictor
          9.3.3 Binarization process
               9.3.3.1 General
               9.3.3.2 Rice parameter derivation process for abs_remainder[ ] and dec_abs_level[ ]
               9.3.3.3 Truncated Rice binarization process
               9.3.3.4 Truncated binary (TB) binarization process
               9.3.3.5 k-th order Exp-Golomb binarization process
               9.3.3.6 Limited k-th order Exp-Golomb binarization process
               9.3.3.7 Fixed-length binarization process
               9.3.3.8 Binarization process for intra_chroma_pred_mode
               9.3.3.9 Binarization process for inter_pred_idc
               9.3.3.10 Binarization process for cu_qp_delta_abs
               9.3.3.11 Binarization process for abs_remainder[ ]
               9.3.3.12 Binarization process for dec_abs_level[ ]
               9.3.3.13 Binarization process for palette_idx_idc
               9.3.3.14 Binarization process for abs_mvd_minus2
          9.3.4 Decoding process flow
               9.3.4.1 General
               9.3.4.2 Derivation process for ctxTable, ctxIdx and bypassFlag
                    9.3.4.2.1 General
                    9.3.4.2.2 Derivation process of ctxInc using left and above syntax elements
                    9.3.4.2.3 Derivation process of ctxInc for the syntax element mtt_split_cu_vertical_flag
                    9.3.4.2.4 Derivation process of ctxInc for the syntax elements last_sig_coeff_x_prefix and last_sig_coeff_y_prefix
                    9.3.4.2.5 Derivation process of ctxInc for the syntax element tu_y_coded_flag
                    9.3.4.2.6 Derivation process of ctxInc for the syntax element sb_coded_flag
                    9.3.4.2.7 Derivation process for the variables locNumSig and locSumAbsPass1
                    9.3.4.2.8 Derivation process of ctxInc for the syntax element sig_coeff_flag
                    9.3.4.2.9 Derivation process of ctxInc for the syntax elements par_level_flag and abs_level_gtx_flag
                    9.3.4.2.10 Derivation process of ctxInc for the syntax element coeff_sign_flag for transform skip mode
                    9.3.4.2.11 Derivation process of ctxInc for the syntax element run_copy_flag
               9.3.4.3 Arithmetic decoding process
                    9.3.4.3.1 General
                    9.3.4.3.2 Arithmetic decoding process for a binary decision
                         9.3.4.3.2.1 General
                         9.3.4.3.2.2 State transition process
                    9.3.4.3.3 Renormalization process in the arithmetic decoding engine
                    9.3.4.3.4 Bypass decoding process for binary decisions
                    9.3.4.3.5 Decoding process for binary decisions before termination
A Annex A  Profiles, tiers and levels
     A.1 Overview of profiles, tiers and levels
     A.2 Requirements on video decoder capability
     A.3 Profiles
          A.3.1 Main 10 and Main 10 Still Picture profiles
          A.3.2 Main 10 4:4:4 and Main 10 4:4:4 Still Picture profiles
          A.3.3 Multilayer Main 10 profile
          A.3.4 Multilayer Main 10 4:4:4 profile
          A.3.5 Operation range extensions profiles
     A.4 Tiers and levels
          A.4.1 General tier and level limits
          A.4.2 Profile-specific level limits
          A.4.3 Effect of level limits on picture rate (informative)
B Annex B  Byte stream format
     B.1 General
     B.2 Byte stream NAL unit syntax and semantics
          B.2.1 Byte stream NAL unit syntax
          B.2.2 Byte stream NAL unit semantics
     B.3 Byte stream NAL unit decoding process
     B.4 Decoder byte-alignment recovery (informative)
C Annex C  Hypothetical reference decoder
     C.1 General
     C.2 Operation of the CPB
          C.2.1 General
          C.2.2 Timing of DU arrival
          C.2.3 Timing of DU removal and decoding of DU
     C.3 Operation of the DPB
          C.3.1 General
          C.3.2 Removal of pictures from the DPB before decoding of the current picture
          C.3.3 Picture output
          C.3.4 Current decoded picture marking and storage
     C.4 Bitstream conformance
     C.5 Decoder conformance
          C.5.1 General
          C.5.2 Operation of the output order DPB
               C.5.2.1 General
               C.5.2.2 Output and removal of pictures from the DPB
               C.5.2.3 Additional bumping
               C.5.2.4 "Bumping" process
     C.6 General sub-bitstream extraction process
     C.7 Subpicture sub-bitstream extraction process
D Annex D  Supplemental enhancement information and use of SEI and VUI
     D.1 General
     D.2 General SEI payload
          D.2.1 General SEI payload syntax
          D.2.2 General SEI payload semantics
     D.3 Buffering period SEI message
          D.3.1 Buffering period SEI message syntax
          D.3.2 Buffering period SEI message semantics
     D.4 Picture timing SEI message
          D.4.1 Picture timing SEI message syntax
          D.4.2 Picture timing SEI message semantics
     D.5 DU information SEI message
          D.5.1 DU information SEI message syntax
          D.5.2 DU information SEI message semantics
     D.6 Scalable nesting SEI message
          D.6.1 Scalable nesting SEI message syntax
          D.6.2 Scalable nesting SEI message semantics
     D.7 Subpicture level information SEI message
          D.7.1 Subpicture level information SEI message syntax
          D.7.2 Subpicture level information SEI message semantics
     D.8 SEI manifest SEI message
          D.8.1 SEI manifest SEI message syntax
          D.8.2 SEI manifest SEI message semantics
     D.9 SEI prefix indication SEI message
          D.9.1 SEI prefix indication SEI message syntax
          D.9.2 SEI prefix indication SEI message semantics
     D.10 Constrained RASL encoding indication SEI message
          D.10.1 Constrained RASL encoding indication SEI message syntax
          D.10.2 Constrained RASL encoding indication SEI message semantics
     D.11 Use of ITU-T H.274 | ISO/IEC 23002-7 VUI parameters
     D.12 Use of SEI messages specified in other specifications
          D.12.1 General
          D.12.2 Use of the film grain characteristics SEI message
          D.12.3 Use of the decoded picture hash SEI message
          D.12.4 Use of the dependent random access point (DRAP) indication SEI message
          D.12.5 Use of the equirectangular projection, generalized cubemap projection, and region-wise packing SEI messages
          D.12.6 Use of the frame-field information SEI message
          D.12.7 Use of the annotated regions SEI message
          D.12.8 Use of the extended dependent random access point (EDRAP) indication SEI message
          D.12.9 Use of the colour transform information SEI message
          D.12.10 Use of the shutter interval information SEI message
          D.12.11 Use of the neural network post-filter characteristics SEI message and the neural network post-filter activation SEI message
          D.12.12 Use of the phase indication SEI message
Bibliography