Table of Contents

0 Introduction
0.1 Prologue
0.2 Purpose
0.3 Applications
0.4 Publication and versions of this Specification
0.5 Profiles and levels
0.6 Overview of the design characteristics
0.6.1 Predictive coding
0.6.2 Coding of progressive and interlaced video
0.6.3 Picture partitioning into macroblocks and smaller partitions
0.6.4 Spatial redundancy reduction
0.7 How to read this Specification
1 Scope
2 Normative references
3 Definitions
4 Abbreviations
5 Conventions
5.1 Arithmetic operators
5.2 Logical operators
5.3 Relational operators
5.4 Bit-wise operators
5.5 Assignment operators
5.6 Range notation
5.7 Mathematical functions
5.8 Order of operation precedence
5.9 Variables, syntax elements, and tables
5.10 Text description of logical operations
5.11 Processes
6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships
6.1 Bitstream formats
6.2 Source, decoded, and output picture formats
6.3 Spatial subdivision of pictures and slices
6.4 Inverse scanning processes and derivation processes for neighbours
6.4.1 Inverse macroblock scanning process
6.4.2 Inverse macroblock partition and sub-macroblock partition scanning process
6.4.3 Inverse 4x4 luma block scanning process
6.4.4 Inverse 4x4 Cb or Cr block scanning process for ChromaArrayType equal to 3
6.4.5 Inverse 8x8 luma block scanning process
6.4.6 Inverse 8x8 Cb or Cr block scanning process for ChromaArrayType equal to 3
6.4.7 Inverse 4x4 chroma block scanning process
6.4.8 Derivation process of the availability for macroblock addresses
6.4.9 Derivation process for neighbouring macroblock addresses and their availability
6.4.10 Derivation process for neighbouring macroblock addresses and their availability in MBAFF frames
6.4.11 Derivation processes for neighbouring macroblocks, blocks, and partitions
6.4.12 Derivation process for neighbouring locations
6.4.13 Derivation processes for block and partition indices
7 Syntax and semantics
7.1 Method of specifying syntax in tabular form
7.2 Specification of syntax functions, categories, and descriptors
7.3 Syntax in tabular form
7.3.1 NAL unit syntax
7.3.2 Raw byte sequence payloads and RBSP trailing bits syntax
7.3.3 Slice header syntax
7.3.4 Slice data syntax
7.3.5 Macroblock layer syntax
7.4 Semantics
7.4.1 NAL unit semantics
7.4.2 Raw byte sequence payloads and RBSP trailing bits semantics
7.4.3 Slice header semantics
7.4.4 Slice data semantics
7.4.5 Macroblock layer semantics
8 Decoding process
8.1 NAL unit decoding process
8.2 Slice decoding process
8.2.1 Decoding process for picture order count
8.2.2 Decoding process for macroblock to slice group map
8.2.3 Decoding process for slice data partitions
8.2.4 Decoding process for reference picture lists construction
8.2.5 Decoded reference picture marking process
8.3 Intra prediction process
8.3.1 Intra_4x4 prediction process for luma samples
8.3.2 Intra_8x8 prediction process for luma samples
8.3.3 Intra_16x16 prediction process for luma samples
8.3.4 Intra prediction process for chroma samples
8.3.5 Sample construction process for I_PCM macroblocks
8.4 Inter prediction process
8.4.1 Derivation process for motion vector components and reference indices
8.4.2 Decoding process for Inter prediction samples
8.4.3 Derivation process for prediction weights
8.5 Transform coefficient decoding process and picture construction process prior to deblocking filter process
8.5.1 Specification of transform decoding process for 4x4 luma residual blocks
8.5.2 Specification of transform decoding process for luma samples of Intra_16x16 macroblock prediction mode
8.5.3 Specification of transform decoding process for 8x8 luma residual blocks
8.5.4 Specification of transform decoding process for chroma samples
8.5.5 Specification of transform decoding process for chroma samples with ChromaArrayType equal to 3
8.5.6 Inverse scanning process for 4x4 transform coefficients and scaling lists
8.5.7 Inverse scanning process for 8x8 transform coefficients and scaling lists
8.5.8 Derivation process for chroma quantization parameters
8.5.9 Derivation process for scaling functions
8.5.10 Scaling and transformation process for DC transform coefficients for Intra_16x16 macroblock type
8.5.11 Scaling and transformation process for chroma DC transform coefficients
8.5.12 Scaling and transformation process for residual 4x4 blocks
8.5.13 Scaling and transformation process for residual 8x8 blocks
8.5.14 Picture construction process prior to deblocking filter process
8.5.15 Intra residual transform-bypass decoding process
8.6 Decoding process for P macroblocks in SP slices or SI macroblocks
8.6.1 SP decoding process for non-switching pictures
8.6.2 SP and SI slice decoding process for switching pictures
8.7 Deblocking filter process
8.7.1 Filtering process for block edges
8.7.2 Filtering process for a set of samples across a horizontal or vertical block edge
9 Parsing process
9.1 Parsing process for Exp-Golomb codes
9.1.1 Mapping process for signed Exp-Golomb codes
9.1.2 Mapping process for coded block pattern
9.2 CAVLC parsing process for transform coefficient levels
9.2.1 Parsing process for total number of non-zero transform coefficient levels and number of trailing ones
9.2.2 Parsing process for level information
9.2.3 Parsing process for run information
9.2.4 Combining level and run information
9.3 CABAC parsing process for slice data
9.3.1 Initialization process
9.3.2 Binarization process
9.3.3 Decoding process flow
9.3.4 Arithmetic encoding process (informative)
Annex A Profiles and levels
A.1 Requirements on video decoder capability
A.2 Profiles
A.2.1 Baseline profile
A.2.2 Main profile
A.2.3 Extended profile
A.2.4 High profile
A.2.5 High 10 profile
A.2.6 High 4:2:2 profile
A.2.7 High 4:4:4 Predictive profile
A.2.8 High 10 Intra profile
A.2.9 High 4:2:2 Intra profile
A.2.10 High 4:4:4 Intra profile
A.2.11 CAVLC 4:4:4 Intra profile
A.3 Levels
A.3.1 Level limits common to the Baseline, Constrained Baseline, Main, and Extended profiles
A.3.2 Level limits common to the High, Progressive High, Constrained High, High 10, Progressive High 10, High 4:2:2, High 4:4:4 Predictive, High 10 Intra, High 4:2:2 Intra, High 4:4:4 Intra, and CAVLC 4:4:4 Intra profiles
A.3.3 Profile-specific level limits
A.3.4 Effect of level limits on frame rate (informative)
A.3.5 Effect of level limits on maximum DPB size in units of frames (informative)
Annex B Byte stream format
B.1 Byte stream NAL unit syntax and semantics
B.1.1 Byte stream NAL unit syntax
B.1.2 Byte stream NAL unit semantics
B.2 Byte stream NAL unit decoding process
B.3 Decoder byte-alignment recovery (informative)
Annex C Hypothetical reference decoder
C.1 Operation of coded picture buffer (CPB)
C.1.1 Timing of bitstream arrival
C.1.2 Timing of coded picture removal
C.2 Operation of the decoded picture buffer (DPB)
C.2.1 Decoding of gaps in frame_num and storage of "non-existing" frames
C.2.2 Picture decoding and output
C.2.3 Removal of pictures from the DPB before possible insertion of the current picture
C.2.4 Current decoded picture marking and storage
C.3 Bitstream conformance
C.4 Decoder conformance
C.4.1 Operation of the output order DPB
C.4.2 Decoding of gaps in frame_num and storage of "non-existing" pictures
C.4.3 Picture decoding
C.4.4 Removal of pictures from the DPB before possible insertion of the current picture
C.4.5 Current decoded picture marking and storage
Annex D Supplemental enhancement information
D.1 SEI payload syntax
D.1.1 General SEI message syntax
D.1.2 Buffering period SEI message syntax
D.1.3 Picture timing SEI message syntax
D.1.4 Pan-scan rectangle SEI message syntax
D.1.5 Filler payload SEI message syntax
D.1.6 User data registered by Rec. ITU‑T T.35 SEI message syntax
D.1.7 User data unregistered SEI message syntax
D.1.8 Recovery point SEI message syntax
D.1.9 Decoded reference picture marking repetition SEI message syntax
D.1.10 Spare picture SEI message syntax
D.1.11 Scene information SEI message syntax
D.1.12 Sub-sequence information SEI message syntax
D.1.13 Sub-sequence layer characteristics SEI message syntax
D.1.14 Sub-sequence characteristics SEI message syntax
D.1.15 Full-frame freeze SEI message syntax
D.1.16 Full-frame freeze release SEI message syntax
D.1.17 Full-frame snapshot SEI message syntax
D.1.18 Progressive refinement segment start SEI message syntax
D.1.19 Progressive refinement segment end SEI message syntax
D.1.20 Motion-constrained slice group set SEI message syntax
D.1.21 Film grain characteristics SEI message syntax
D.1.22 Deblocking filter display preference SEI message syntax
D.1.23 Stereo video information SEI message syntax
D.1.24 Post-filter hint SEI message syntax
D.1.25 Tone mapping information SEI message syntax
D.1.26 Frame packing arrangement SEI message syntax
D.1.27 Display orientation SEI message syntax
D.1.28 Green metadata SEI message syntax
D.1.29 Mastering display colour volume SEI message syntax
D.1.30 Colour remapping information SEI message syntax
D.1.31 Content light level information SEI message syntax
D.1.32 Alternative transfer characteristics SEI message syntax
D.1.33 Content colour volume SEI message syntax
D.1.34 Ambient viewing environment SEI message syntax
D.1.35 Syntax of omnidirectional video specific SEI messages
D.1.36 SEI manifest SEI message syntax
D.1.37 SEI prefix indication SEI message syntax
D.1.38 Reserved SEI message syntax
D.2 SEI payload semantics
D.2.1 General SEI payload semantics
D.2.2 Buffering period SEI message semantics
D.2.3 Picture timing SEI message semantics
D.2.4 Pan-scan rectangle SEI message semantics
D.2.5 Filler payload SEI message semantics
D.2.6 User data registered by Rec. ITU‑T T.35 SEI message semantics
D.2.7 User data unregistered SEI message semantics
D.2.8 Recovery point SEI message semantics
D.2.9 Decoded reference picture marking repetition SEI message semantics
D.2.10 Spare picture SEI message semantics
D.2.11 Scene information SEI message semantics
D.2.12 Sub-sequence information SEI message semantics
D.2.13 Sub-sequence layer characteristics SEI message semantics
D.2.14 Sub-sequence characteristics SEI message semantics
D.2.15 Full-frame freeze SEI message semantics
D.2.16 Full-frame freeze release SEI message semantics
D.2.17 Full-frame snapshot SEI message semantics
D.2.18 Progressive refinement segment start SEI message semantics
D.2.19 Progressive refinement segment end SEI message semantics
D.2.20 Motion-constrained slice group set SEI message semantics
D.2.21 Film grain characteristics SEI message semantics
D.2.22 Deblocking filter display preference SEI message semantics
D.2.23 Stereo video information SEI message semantics
D.2.24 Post-filter hint SEI message semantics
D.2.25 Tone mapping information SEI message semantics
D.2.26 Frame packing arrangement SEI message semantics
D.2.27 Display orientation SEI message semantics
D.2.28 Green metadata SEI message semantics
D.2.29 Mastering display colour volume SEI message semantics
D.2.30 Colour remapping information SEI message semantics
D.2.31 Content light level information SEI message semantics
D.2.32 Alternative transfer characteristics SEI message semantics
D.2.33 Content colour volume SEI message semantics
D.2.34 Ambient viewing environment SEI message semantics
D.2.35 Semantics of omnidirectional video specific SEI messages
D.2.36 SEI manifest SEI message semantics
D.2.37 SEI prefix indication SEI message semantics
D.2.38 Reserved SEI message semantics
Annex E Video usability information
E.1 VUI syntax
E.1.1 VUI parameters syntax
E.1.2 HRD parameters syntax
E.2 VUI semantics
E.2.1 VUI parameters semantics
E.2.2 HRD parameters semantics
Annex F Intellectual property rights information
Annex G Scalable video coding
G.1 Scope
G.2 Normative references
G.3 Definitions
G.4 Abbreviations
G.5 Conventions
G.6 Source, coded, decoded and output data formats, scanning processes, neighbouring and reference layer relationships
G.6.1 Derivation process for reference layer macroblocks
G.6.2 Derivation process for reference layer partitions
G.6.3 Derivation process for reference layer sample locations in resampling
G.6.4 SVC derivation process for macroblock and sub-macroblock partition indices
G.7 Syntax and semantics
G.7.1 Method of specifying syntax in tabular form
G.7.2 Specification of syntax functions, categories, and descriptors
G.7.3 Syntax in tabular form
G.7.4 Semantics
G.8 SVC decoding process
G.8.1 SVC initialization and decoding processes
G.8.2 SVC reference picture lists construction and decoded reference picture marking process
G.8.3 SVC intra decoding processes
G.8.4 SVC Inter prediction process
G.8.5 SVC transform coefficient decoding and sample array construction processes
G.8.6 Resampling processes for prediction data, intra samples, and residual samples
G.8.7 SVC deblocking filter processes
G.8.8 Specification of bitstream subsets
G.9 Parsing process
G.9.1 Alternative parsing process for coded block pattern
G.9.2 Alternative CAVLC parsing process for transform coefficient levels
G.9.3 Alternative CABAC parsing process for slice data in scalable extension
G.10 Profiles and levels
G.10.1 Profiles
G.10.2 Levels
G.11 Byte stream format
G.12 Hypothetical reference decoder
G.13 Supplemental enhancement information
G.13.1 SEI payload syntax
G.13.2 SEI payload semantics
G.14 Video usability information
G.14.1 SVC VUI parameters extension syntax
G.14.2 SVC VUI parameters extension semantics
Annex H Multiview video coding
H.1 Scope
H.2 Normative references
H.3 Definitions
H.4 Abbreviations
H.5 Conventions
H.6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships
H.7 Syntax and semantics
H.7.1 Method of specifying syntax in tabular form
H.7.2 Specification of syntax functions, categories, and descriptors
H.7.3 Syntax in tabular form
H.7.4 Semantics
H.8 MVC decoding process
H.8.1 MVC decoding process for picture order count
H.8.2 MVC decoding process for reference picture lists construction
H.8.3 MVC decoded reference picture marking process
H.8.4 MVC inter prediction and inter-view prediction process
H.8.5 Specification of bitstream subsets
H.8.6 MFC enhanced resolution picture reconstruction
H.9 Parsing process
H.10 Profiles and levels
H.10.1 Profiles
H.10.2 Levels
H.11 Byte stream format
H.12 MVC hypothetical reference decoder
H.13 MVC SEI messages
H.13.1 SEI message syntax
H.13.2 SEI message semantics
H.14 Video usability information
H.14.1 MVC VUI parameters extension syntax
H.14.2 MVC VUI parameters extension semantics
Annex I Multiview and depth video coding
I.1 Scope
I.2 Normative references
I.3 Definitions
I.4 Abbreviations
I.5 Conventions
I.6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships
I.7 Syntax and semantics
I.7.1 Method of specifying syntax in tabular form
I.7.2 Specification of syntax functions, categories, and descriptors
I.7.3 Syntax in tabular form
I.7.4 Semantics
I.8 MVCD decoding process
I.8.1 MVCD decoding process for picture order count
I.8.2 MVC decoding process for reference picture lists construction
I.8.3 MVCD decoded reference picture marking process
I.8.4 MVCD inter prediction and inter-view prediction process
I.8.5 Specification of bitstream subsets
I.9 Parsing process
I.10 Profiles and levels
I.10.1 Profiles
I.10.2 Levels
I.11 Byte stream format
I.12 MVCD hypothetical reference decoder
I.13 MVCD SEI messages
I.13.1 SEI message syntax
I.13.2 SEI message semantics
I.14 Video usability information
I.14.1 MVCD VUI parameters extension syntax
I.14.2 MVCD VUI parameters extension semantics
Annex J Multiview and depth video with enhanced non-base view coding
J.1 Scope
J.2 Normative references
J.3 Definitions
J.4 Abbreviations
J.5 Conventions
J.6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships
J.6.1 Inverse sub-macroblock partition scanning process
J.7 Syntax and semantics
J.7.1 Method of specifying syntax in tabular form
J.7.2 Specification of syntax functions, categories, and descriptors
J.7.3 Syntax in tabular form
J.7.4 Semantics
J.8 3D-AVC decoding process
J.8.1 3D-AVC decoding process for reference picture lists construction
J.8.2 3D-AVC inter prediction, inter-view prediction, view synthesis prediction and adaptive luminance compensation
J.8.3 Specification of bitstream subsets
J.8.4 Decoding process for depth range parameters
J.9 Parsing process
J.9.1 Alternative CABAC parsing process for slice data and macroblock layer in depth extension
J.10 Profiles and levels
J.10.1 Profiles
J.10.2 Levels
J.11 Byte stream format
J.12 3D-AVC hypothetical reference decoder
J.13 3D-AVC SEI messages
J.13.1 SEI message syntax
J.13.2 SEI message semantics
J.14 Video usability information