Foreword
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 Variables, syntax elements, and tables
5.9 Text description of logical operations
5.10 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.2.1
Inverse macroblock partition scanning
process
6.4.2.2
Inverse 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
Derivation process of the
availability for macroblock addresses
6.4.8
Derivation process for neighbouring
macroblock addresses and their availability
6.4.9
Derivation process for neighbouring
macroblock addresses and their availability in MBAFF frames
6.4.10
Derivation processes for neighbouring
macroblocks, blocks, and partitions
6.4.10.1
Derivation process for neighbouring
macroblocks
6.4.10.2
Derivation process for neighbouring
8x8 luma block
6.4.10.3
Derivation process for neighbouring
8x8 chroma blocks for ChromaArrayType equal to 3
6.4.10.4
Derivation process for neighbouring
4x4 luma blocks
6.4.10.5
Derivation process for neighbouring
4x4 chroma blocks
6.4.10.6
Derivation process for neighbouring
4x4 chroma blocks for ChromaArrayType equal to 3
6.4.10.7
Derivation process for neighbouring
partitions
6.4.11
Derivation process for neighbouring
locations
6.4.11.1
Specification for neighbouring
locations in fields and non-MBAFF frames
6.4.11.2
Specification for neighbouring
locations in MBAFF frames
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.2.1
Sequence parameter set RBSP syntax
7.3.2.1.1
Sequence parameter set data syntax
7.3.2.1.1.1
Scaling list syntax
7.3.2.1.2
Sequence parameter set extension RBSP
syntax
7.3.2.2
Picture parameter set RBSP syntax
7.3.2.3
Supplemental enhancement information
RBSP syntax
7.3.2.3.1
Supplemental enhancement information
message syntax
7.3.2.4
Access unit delimiter RBSP syntax
7.3.2.5
End of sequence RBSP syntax
7.3.2.6
End of stream RBSP syntax
7.3.2.7
Filler data RBSP syntax
7.3.2.8
Slice layer without partitioning RBSP
syntax
7.3.2.9
Slice data partition RBSP syntax
7.3.2.9.1
Slice data partition A RBSP syntax
7.3.2.9.2
Slice data partition B RBSP syntax
7.3.2.9.3
Slice data partition C RBSP syntax
7.3.2.10
RBSP slice trailing bits syntax
7.3.2.11
RBSP trailing bits syntax
7.3.3
Slice header syntax
7.3.3.1
Reference picture list reordering
syntax
7.3.3.2
Prediction weight table syntax
7.3.3.3
Decoded reference picture marking
syntax
7.3.4
Slice data syntax
7.3.5
Macroblock layer syntax
7.3.5.1
Macroblock prediction syntax
7.3.5.2
Sub-macroblock prediction syntax
7.3.5.3
Residual data syntax
7.3.5.3.1
Residual luma syntax
7.3.5.3.2
Residual block CAVLC syntax
7.3.5.3.3
Residual block CABAC syntax
7.4 Semantics
7.4.1
NAL unit semantics
7.4.1.1
Encapsulation of an SODB within an
RBSP (informative)
7.4.1.2
Order of NAL units and association to
coded pictures, access units, and video sequences
7.4.1.2.1
Order of sequence and picture
parameter set RBSPs and their activation
7.4.1.2.2
Order of access units and association
to coded video sequences
7.4.1.2.3
Order of NAL units and coded pictures
and association to access units
7.4.1.2.4
Detection of the first VCL NAL
unit of a primary coded picture
7.4.1.2.5
Order of VCL NAL units and
association to coded pictures
7.4.2
Raw byte sequence payloads and RBSP
trailing bits semantics
7.4.2.1
Sequence parameter set RBSP semantics
7.4.2.1.1
Sequence parameter set data semantics
7.4.2.1.1.1
Scaling list semantics
7.4.2.1.2
Sequence parameter set extension RBSP
semantics
7.4.2.2
Picture parameter set RBSP semantics
7.4.2.3
Supplemental enhancement information
RBSP semantics
7.4.2.3.1
Supplemental enhancement information
message semantics
7.4.2.4
Access unit delimiter RBSP semantics
7.4.2.5
End of sequence RBSP semantics
7.4.2.6
End of stream RBSP semantics
7.4.2.7
Filler data RBSP semantics
7.4.2.8
Slice layer without partitioning RBSP
semantics
7.4.2.9
Slice data partition RBSP semantics
7.4.2.9.1
Slice data partition A RBSP semantics
7.4.2.9.2
Slice data partition B RBSP semantics
7.4.2.9.3
Slice data partition C RBSP semantics
7.4.2.10
RBSP slice trailing bits semantics
7.4.2.11
RBSP trailing bits semantics
7.4.3
Slice header semantics
7.4.3.1
Reference picture list reordering
semantics
7.4.3.2
Prediction weight table semantics
7.4.3.3
Decoded reference picture marking
semantics
7.4.4
Slice data semantics
7.4.5
Macroblock layer semantics
7.4.5.1
Macroblock prediction semantics
7.4.5.2
Sub-macroblock prediction semantics
7.4.5.3
Residual data semantics
7.4.5.3.1
Residual luma data semantics
7.4.5.3.2
Residual block CAVLC semantics
7.4.5.3.3
Residual block CABAC 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.1.1
Decoding process for picture order
count type 0
8.2.1.2
Decoding process for picture order
count type 1
8.2.1.3
Decoding process for picture order
count type 2
8.2.2
Decoding process for macroblock to
slice group map
8.2.2.1
Specification for interleaved slice
group map type
8.2.2.2
Specification for dispersed slice
group map type
8.2.2.3
Specification for foreground with
left-over slice group map type
8.2.2.4
Specification for box-out slice group
map types
8.2.2.5
Specification for raster scan slice
group map types
8.2.2.6
Specification for wipe slice group
map types
8.2.2.7
Specification for explicit slice
group map type
8.2.2.8
Specification for conversion of map
unit to slice group map to macroblock to slice group map
8.2.3
Decoding process for slice data
partitioning
8.2.4
Decoding process for reference
picture lists construction
8.2.4.1
Decoding process for picture numbers
8.2.4.2
Initialisation process for reference
picture lists
8.2.4.2.1
Initialisation process for the
reference picture list for P and SP slices in frames
8.2.4.2.2
Initialisation process for the
reference picture list for P and SP slices in fields
8.2.4.2.3
Initialisation process for reference
picture lists for B slices in frames
8.2.4.2.4
Initialisation process for reference
picture lists for B slices in fields
8.2.4.2.5
Initialisation process for reference
picture lists in fields
8.2.4.3
Reordering process for reference
picture lists
8.2.4.3.1
Reordering process of reference
picture lists for short-term reference pictures
8.2.4.3.2
Reordering process of reference
picture lists for long-term reference pictures
8.2.5
Decoded reference picture marking
process
8.2.5.1
Sequence of operations for decoded
reference picture marking process
8.2.5.2
Decoding process for gaps in
frame_num
8.2.5.3
Sliding window decoded reference
picture marking process
8.2.5.4
Adaptive memory control decoded
reference picture marking process
8.2.5.4.1
Marking process of a short-term
reference picture as “unused for reference”
8.2.5.4.2
Marking process of a long-term
reference picture as “unused for reference”
8.2.5.4.3
Assignment process of a
LongTermFrameIdx to a short-term reference picture
8.2.5.4.4
Decoding process for
MaxLongTermFrameIdx
8.2.5.4.4.1
Marking process of all reference
pictures as “unused for reference” and setting MaxLongTermFrameIdx to “no
long-term frame indices”
8.2.5.4.5
Process for assigning a long-term
frame index to the current picture
8.3 Intra prediction process
8.3.1
Intra_4x4 prediction process for luma
samples
8.3.1.1
Derivation process for the Intra4x4PredMode
8.3.1.2
Intra_4x4 sample prediction
8.3.1.2.1
Specification of Intra_4x4_Vertical
prediction mode
8.3.1.2.2
Specification of Intra_4x4_Horizontal
prediction mode
8.3.1.2.3
Specification of Intra_4x4_DC
prediction mode
8.3.1.2.4
Specification of
Intra_4x4_Diagonal_Down_Left prediction mode
8.3.1.2.5
Specification of
Intra_4x4_Diagonal_Down_Right prediction mode
8.3.1.2.6
Specification of
Intra_4x4_Vertical_Right prediction mode
8.3.1.2.7
Specification of Intra_4x4_Horizontal_Down
prediction mode
8.3.1.2.8
Specification of
Intra_4x4_Vertical_Left prediction mode
8.3.1.2.9
Specification of
Intra_4x4_Horizontal_Up prediction mode
8.3.2
Intra_8x8 prediction process for luma
samples
8.3.2.1
Derivation process for
Intra8x8PredMode
8.3.2.2
Intra_8x8 sample prediction
8.3.2.2.1
Reference sample filtering process
for Intra_8x8 sample prediction
8.3.2.2.2
Specification of Intra_8x8_Vertical
prediction mode
8.3.2.2.3
Specification of Intra_8x8_Horizontal
prediction mode
8.3.2.2.4
Specification of Intra_8x8_DC
prediction mode
8.3.2.2.5
Specification of
Intra_8x8_Diagonal_Down_Left prediction mode
8.3.2.2.6 Specification
of Intra_8x8_Diagonal_Down_Right prediction mode
8.3.2.2.7
Specification of
Intra_8x8_Vertical_Right prediction mode
8.3.2.2.8
Specification of
Intra_8x8_Horizontal_Down prediction mode
8.3.2.2.9
Specification of
Intra_8x8_Vertical_Left prediction mode
8.3.2.2.10
Specification of
Intra_8x8_Horizontal_Up prediction mode
8.3.3
Intra_16x16 prediction process for
luma samples
8.3.3.1
Specification of Intra_16x16_Vertical
prediction mode
8.3.3.2
Specification of
Intra_16x16_Horizontal prediction mode
8.3.3.3
Specification of Intra_16x16_DC
prediction mode
8.3.3.4
Specification of Intra_16x16_Plane
prediction mode
8.3.4
Intra prediction process for chroma
samples
8.3.4.1
Specification of Intra_Chroma_DC
prediction mode
8.3.4.2
Specification of
Intra_Chroma_Horizontal prediction mode
8.3.4.3
Specification of Intra_Chroma_Vertical
prediction mode
8.3.4.4
Specification of Intra_Chroma_Plane
prediction mode
8.3.4.5
Intra prediction for chroma samples
with ChromaArrayType equal to 3
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.1.1
Derivation process for luma motion
vectors for skipped macroblocks in P and SP slices
8.4.1.2
Derivation process for luma motion
vectors for B_Skip, B_Direct_16x16, and B_Direct_8x8
8.4.1.2.1
Derivation process for the
co-located 4x4 sub-macroblock partitions
8.4.1.2.2
Derivation process for spatial direct
luma motion vector and reference index prediction mode
8.4.1.2.3 Derivation
process for temporal direct luma motion vector and reference index prediction
mode
8.4.1.3
Derivation process for luma motion
vector prediction
8.4.1.3.1
Derivation process for median luma
motion vector prediction
8.4.1.3.2
Derivation process for motion data of
neighbouring partitions
8.4.1.4
Derivation process for chroma motion
vectors
8.4.2
Decoding process for Inter prediction
samples
8.4.2.1
Reference picture selection process
8.4.2.2
Fractional sample interpolation
process
8.4.2.2.1
Luma sample interpolation process
8.4.2.2.2
Chroma sample interpolation process
8.4.2.3
Weighted sample prediction process
8.4.2.3.1 Default
weighted sample prediction process
8.4.2.3.2
Weighted sample prediction process
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 transform
coefficients
8.5.7
Inverse scanning process for 8x8
transform coefficients
8.5.8
Derivation process for the chroma
quantisation parameters and scaling function
8.5.9
Scaling and transformation process
for DC transform coefficients for Intra_16x16 macroblock type
8.5.10
Scaling and transformation process
for chroma DC transform coefficients
8.5.10.1
Transformation process for chroma DC
transform coefficients
8.5.10.2
Scaling process for chroma DC
transform coefficients
8.5.11
Scaling and transformation process
for residual 4x4 blocks
8.5.11.1
Scaling process for residual 4x4
blocks
8.5.11.2
Transformation process for residual
4x4 blocks
8.5.12
Scaling and transformation process
for residual 8x8 blocks
8.5.12.1
Scaling process for residual 8x8
blocks
8.5.12.2
Transformation process for residual
8x8 blocks
8.5.13
Picture construction process prior to
deblocking filter process
8.5.14
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.1.1
Luma transform coefficient decoding
process
8.6.1.2
Chroma transform coefficient decoding
process
8.6.2
SP and SI slice decoding process for
switching pictures
8.6.2.1
Luma transform coefficient decoding
process
8.6.2.2
Chroma transform coefficient decoding
process
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
8.7.2.1
Derivation process for the luma
content dependent boundary filtering strength
8.7.2.2
Derivation process for the thresholds
for each block edge
8.7.2.3
Filtering process for edges with bS
less than 4
8.7.2.4
Filtering process for edges for bS
equal to 4
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
transform coefficient levels and trailing ones
9.2.2
Parsing process for level information
9.2.2.1
Parsing process for level_prefix
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
Initialisation process
9.3.1.1
Initialisation process for context
variables
9.3.1.2
Initialisation process for the
arithmetic decoding engine
9.3.2
Binarization process
9.3.2.1
Unary (U) binarization process
9.3.2.2
Truncated unary (TU) binarization
process
9.3.2.3
Concatenated unary/ k-th order
Exp-Golomb (UEGk) binarization process
9.3.2.4
Fixed-length (FL) binarization
process
9.3.2.5
Binarization process for macroblock
type and sub-macroblock type
9.3.2.6
Binarization process for coded block
pattern
9.3.2.7
Binarization process for mb_qp_delta
9.3.3
Decoding process flow
9.3.3.1
Derivation process for ctxIdx
9.3.3.1.1
Assignment process of ctxIdxInc using
neighbouring syntax elements
9.3.3.1.1.1
Derivation process of ctxIdxInc for
the syntax element mb_skip_flag
9.3.3.1.1.2
Derivation process of ctxIdxInc for
the syntax element mb_field_decoding_flag
9.3.3.1.1.3
Derivation process of ctxIdxInc for
the syntax element mb_type
9.3.3.1.1.4
Derivation process of ctxIdxInc for
the syntax element coded_block_pattern
9.3.3.1.1.5
Derivation process of ctxIdxInc for
the syntax element mb_qp_delta
9.3.3.1.1.6
Derivation process of ctxIdxInc for
the syntax elements ref_idx_l0 and ref_idx_l1
9.3.3.1.1.7
Derivation process of ctxIdxInc for
the syntax elements mvd_l0 and mvd_l1
9.3.3.1.1.8
Derivation process of ctxIdxInc for
the syntax element intra_chroma_pred_mode
9.3.3.1.1.9
Derivation process of ctxIdxInc for
the syntax element coded_block_flag
9.3.3.1.1.10
Derivation process of ctxIdxInc for
the syntax element transform_size_8x8_flag
9.3.3.1.2
Assignment process of ctxIdxInc using
prior decoded bin values
9.3.3.1.3
Assignment process of ctxIdxInc for
syntax elements significant_coeff_flag, last_significant_coeff_flag, and
coeff_abs_level_minus1
9.3.3.2
Arithmetic decoding process
9.3.3.2.1
Arithmetic decoding process for a
binary decision
9.3.3.2.1.1
State transition process
9.3.3.2.2
Renormalization process in the
arithmetic decoding engine
9.3.3.2.3
Bypass decoding process for binary
decisions
9.3.3.2.4
Decoding process for binary decisions
before termination
9.3.4
Arithmetic encoding process
(informative)
9.3.4.1
Initialisation process for the
arithmetic encoding engine (informative)
9.3.4.2
Encoding process for a binary
decision (informative)
9.3.4.3
Renormalization process in the
arithmetic encoding engine (informative)
9.3.4.4
Bypass encoding process for binary
decisions (informative)
9.3.4.5
Encoding process for a binary
decision before termination (informative)
9.3.4.6
Byte stuffing 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,
Main, and Extended profiles
A.3.2
Level limits common to the High,
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.3.1
Baseline profile level limits
A.3.3.2
Main, High, 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 profile level limits
A.3.3.3
Extended Profile level limits
A.3.4
Effect of level limits on frame rate
(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.2.4.1
Marking and storage of a reference
decoded picture into the DPB
C.2.4.2
Storage of a non-reference picture
into the DPB
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
C.4.5.1
Storage and marking of a reference
decoded picture into the DPB
C.4.5.2
Storage and marking of a
non-reference decoded picture into the DPB
C.4.5.3
"Bumping" process
Annex D Supplemental enhancement
information
D.1 SEI payload syntax
D.1.1
Buffering period SEI message syntax
D.1.2
Picture timing SEI message syntax
D.1.3
Pan-scan rectangle SEI message syntax
D.1.4
Filler payload SEI message syntax
D.1.5
User data registered by ITU-T Rec.
T.35 SEI message syntax
D.1.6
User data unregistered SEI message
syntax
D.1.7
Recovery point SEI message syntax
D.1.8
Decoded reference picture marking
repetition SEI message syntax
D.1.9
Spare picture SEI message syntax
D.1.10
Scene information SEI message syntax
D.1.11
Sub-sequence information SEI message
syntax
D.1.12
Sub-sequence layer characteristics
SEI message syntax
D.1.13
Sub-sequence characteristics SEI
message syntax
D.1.14
Full-frame freeze SEI message syntax
D.1.15
Full-frame freeze release SEI message
syntax
D.1.16
Full-frame snapshot SEI message
syntax
D.1.17
Progressive refinement segment start SEI
message syntax
D.1.18
Progressive refinement segment end SEI
message syntax
D.1.19
Motion-constrained slice group set
SEI message syntax
D.1.20
Film grain characteristics SEI
message syntax
D.1.21
Deblocking filter display preference
SEI message syntax
D.1.22
Stereo video information SEI message
syntax
D.1.23
Post-filter hint SEI message syntax
D.1.24
Tone mapping information SEI message
syntax
D.1.25
Reserved SEI message syntax
D.2 SEI payload semantics
D.2.1
Buffering period SEI message
semantics
D.2.2
Picture timing SEI message semantics
D.2.3
Pan-scan rectangle SEI message
semantics
D.2.4
Filler payload SEI message semantics
D.2.5
User data registered by ITU-T Rec.
T.35 SEI message semantics
D.2.6
User data unregistered SEI message
semantics
D.2.7
Recovery point SEI message semantics
D.2.8
Decoded reference picture marking
repetition SEI message semantics
D.2.9
Spare picture SEI message semantics
D.2.10
Scene information SEI message
semantics
D.2.11
Sub-sequence information SEI message
semantics
D.2.12
Sub-sequence layer characteristics
SEI message semantics
D.2.13
Sub-sequence characteristics SEI
message semantics
D.2.14
Full-frame freeze SEI message
semantics
D.2.15
Full-frame freeze release SEI message
semantics
D.2.16
Full-frame snapshot SEI message
semantics
D.2.17
Progressive refinement segment start
SEI message semantics
D.2.18
Progressive refinement segment end
SEI message semantics
D.2.19
Motion-constrained slice group set
SEI message semantics
D.2.20
Film grain characteristics SEI
message semantics
D.2.21
Deblocking filter display preference
SEI message semantics
D.2.22
Stereo video information SEI message
semantics
D.2.23
Post-filter hint SEI message
semantics
D.2.24
Tone mapping information SEI message
semantics
D.2.25
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 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.1.1
Field-to-frame reference layer
macroblock conversion process
G.6.1.2
Frame-to-field reference layer
macroblock conversion process
G.6.2
Derivation process for reference
layer partitions
G.6.3
Derivation process for reference
layer sample locations in resampling
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.3.1
NAL unit syntax
G.7.3.1.1
NAL unit header SVC extension syntax
G.7.3.2
Raw byte sequence payloads and RBSP
trailing bits syntax
G.7.3.2.1
Sequence parameter set RBSP syntax
G.7.3.2.1.1
Sequence parameter set data syntax
G.7.3.2.1.2
Sequence parameter set extension RBSP
syntax
G.7.3.2.1.3
Subset sequence parameter set RBSP
syntax
G.7.3.2.1.4
Sequence parameter set SVC extension
syntax
G.7.3.2.2
Picture parameter set RBSP syntax
G.7.3.2.3
Supplemental enhancement information
RBSP syntax
G.7.3.2.3.1
Supplemental enhancement information
message syntax
G.7.3.2.4
Access unit delimiter RBSP syntax
G.7.3.2.5
End of sequence RBSP syntax
G.7.3.2.6
End of stream RBSP syntax
G.7.3.2.7
Filler data RBSP syntax
G.7.3.2.8
Slice layer without partitioning RBSP
syntax
G.7.3.2.9
Slice data partition RBSP syntax
G.7.3.2.10
RBSP slice trailing bits syntax
G.7.3.2.11
RBSP trailing bits syntax
G.7.3.2.12
Prefix NAL unit RBSP syntax
G.7.3.2.13
Slice layer in scalable extension
RBSP syntax
G.7.3.3
Slice header syntax
G.7.3.3.1
Reference picture list reordering
syntax
G.7.3.3.2
Prediction weight table syntax
G.7.3.3.3
Decoded reference picture marking
syntax
G.7.3.3.4
Slice header in scalable extension
syntax
G.7.3.3.5
Decoded reference base picture
marking syntax
G.7.3.4
Slice data syntax
G.7.3.4.1
Slice data in scalable extension
syntax
G.7.3.5
Macroblock layer syntax
G.7.3.5.1
Macroblock prediction syntax
G.7.3.5.2
Sub-macroblock prediction syntax
G.7.3.5.3
Residual data syntax
G.7.3.5.3.1
Residual luma syntax
G.7.3.5.3.2
Residual block CAVLC syntax
G.7.3.5.3.3
Residual block CABAC syntax
G.7.3.6
Macroblock layer in scalable
extension syntax
G.7.3.6.1
Macroblock prediction in scalable
extension syntax
G.7.3.6.2
Sub-macroblock prediction in scalable
extension syntax
G.7.4
Semantics
G.7.4.1
NAL unit semantics
G.7.4.1.1
NAL unit header SVC extension
semantics
G.7.4.1.2
Order of NAL units and association to
coded pictures, access units, and video sequences
G.7.4.1.2.1
Order of SVC sequence parameter set
RBSPs and picture parameter set RBSPs and their activation
G.7.4.1.2.2
Order of access units and association
to coded video sequences
G.7.4.1.2.3
Order of NAL units and coded pictures
and association to access units
G.7.4.1.2.4
Detection of the first VCL NAL unit
of a primary coded picture
G.7.4.1.2.5
Order of VCL NAL units and
association to coded pictures
G.7.4.2
Raw byte sequence payloads and RBSP
trailing bits semantics
G.7.4.2.1
Sequence parameter set RBSP semantics
G.7.4.2.1.1
Sequence parameter set data semantics
G.7.4.2.1.2
Sequence parameter set extension RBSP
semantics
G.7.4.2.1.3
Subset sequence parameter set RBSP
semantics
G.7.4.2.1.4
Sequence parameter set SVC extension
semantics
G.7.4.2.2
Picture parameter set RBSP semantics
G.7.4.2.3
Supplemental enhancement information
RBSP semantics
G.7.4.2.3.1
Supplemental enhancement information
message semantics
G.7.4.2.4
Access unit delimiter RBSP semantics
G.7.4.2.5
End of sequence RBSP semantics
G.7.4.2.6
End of stream RBSP semantics
G.7.4.2.7
Filler data RBSP semantics
G.7.4.2.8
Slice layer without partitioning RBSP
semantics
G.7.4.2.9
Slice data partition RBSP semantics
G.7.4.2.10
RBSP slice trailing bits semantics
G.7.4.2.11
RBSP trailing bits semantics
G.7.4.2.12
Prefix NAL unit RBSP semantics
G.7.4.2.13
Slice layer in scalable extension
RBSP semantics
G.7.4.3
Slice header semantics
G.7.4.3.1
Reference picture list reordering
semantics
G.7.4.3.2
Prediction weight table semantics
G.7.4.3.3
Decoded reference picture marking
semantics
G.7.4.3.4
Slice header in scalable extension
semantics
G.7.4.3.5
Decoded reference base picture
marking semantics
G.7.4.4
Slice data semantics
G.7.4.4.1
Slice data in scalable extension
semantics
G.7.4.5
Macroblock layer semantics
G.7.4.5.1
Macroblock prediction semantics
G.7.4.5.2
Sub-macroblock prediction semantics
G.7.4.5.3
Residual data semantics
G.7.4.5.3.1
Residual luma semantics
G.7.4.5.3.2
Residual block CAVLC semantics
G.7.4.5.3.3
Residual block CABAC semantics
G.7.4.6
Macroblock layer in scalable
extension semantics
G.7.4.6.1
Macroblock prediction in scalable
extension semantics
G.7.4.6.2
Sub-macroblock prediction in scalable
extension semantics
G.8 SVC decoding process
G.8.1
SVC initialisation and decoding
processes
G.8.1.1
Derivation process for the set of
layer representations required for decoding
G.8.1.2
Array assignment, initialisation, and
restructuring processes
G.8.1.2.1
Array assignment and initialisation
process
G.8.1.2.2
Array restructuring process
G.8.1.3
Layer representation decoding
processes
G.8.1.3.1
Base decoding process for layer
representations without resolution change
G.8.1.3.2
Base decoding process for layer
representations with resolution change
G.8.1.3.3
Target layer representation decoding
process
G.8.1.4
Slice decoding processes
G.8.1.4.1
Base decoding process for slices
without resolution change
G.8.1.4.2
Base decoding process for slices with
resolution change
G.8.1.5
Macroblock initialisation and
decoding processes
G.8.1.5.1
Macroblock initialisation process
G.8.1.5.1.1
Derivation process for macroblock
type, sub-macroblock type, and inter-layer predictors for reference indices and
motion vectors
G.8.1.5.1.2
Derivation process for quantisation
parameters and transform type
G.8.1.5.2
Base decoding process for macroblocks
in slices without resolution change
G.8.1.5.3
Base decoding process for macroblocks
in slices with resolution change
G.8.1.5.4
Macroblock decoding process prior to
decoding a layer representation without resolution change and
tcoeff_level_prediction_flag equal to 0
G.8.1.5.5
Macroblock decoding process prior to
resolution change
G.8.1.5.6
Target macroblock decoding process
G.8.2
SVC reference picture lists
construction and decoded reference picture marking process
G.8.2.1
SVC decoding process for picture
order count
G.8.2.2
SVC decoding process for picture
numbers
G.8.2.3
SVC decoding process for reference
picture lists construction
G.8.2.4
SVC decoded reference picture marking
process
G.8.2.4.1
SVC reference picture marking process
for a dependency representation
G.8.2.5
SVC decoding process for gaps in
frame_num
G.8.3
SVC intra decoding processes
G.8.3.1
SVC derivation process for intra
prediction modes
G.8.3.1.1
SVC derivation process for Intra_4x4
prediction modes
G.8.3.1.2
SVC derivation process for Intra_8x8
prediction modes
G.8.3.2
SVC intra sample prediction and construction
process
G.8.3.2.1
SVC intra prediction and construction
process for luma samples or chroma samples with ChromaArrayType equal to 3
G.8.3.2.1.1
SVC construction process for luma
samples and chroma samples with ChromaArrayType equal to 3 of I_PCM
macroblocks
G.8.3.2.1.2
SVC Intra_4x4 sample prediction and
construction process
G.8.3.2.1.3
SVC Intra_8x8 sample prediction and
construction process
G.8.3.2.1.4
SVC Intra_16x16 sample prediction and
construction process
G.8.3.2.2
SVC intra prediction and construction
process for chroma samples
G.8.3.2.2.1
SVC construction process for chroma
samples of I_PCM macroblocks
G.8.3.2.2.2
SVC intra prediction and construction
process for chroma samples with ChromaArrayType equal to 1 or 2
G.8.4
SVC Inter prediction process
G.8.4.1
SVC derivation process for motion
vector components and reference indices
G.8.4.1.1
SVC derivation process for luma
motion vector components and reference indices of a macroblock or
sub-macroblock partition
G.8.4.1.2
SVC derivation process for luma
motion vectors and reference indices for B_Skip, B_Direct_16x16, and
B_Direct_8x8 in NAL units with nal_unit_type equal to 20
G.8.4.2
SVC decoding process for Inter
prediction samples
G.8.4.2.1
SVC derivation process for prediction weights
G.8.4.2.2
Intra-inter prediction combination
process
G.8.5
SVC transform coefficient decoding
and sample array construction processes
G.8.5.1
Transform coefficient scaling and
refinement process
G.8.5.1.1
Refinement process for luma transform
coefficients or chroma transform coefficients with ChromaArrayType equal
to 3
G.8.5.1.1.1
Assignment process for luma transform
coefficient values or chroma transform coefficient values with ChromaArrayType
equal to 3 for I_PCM macroblocks
G.8.5.1.1.2
Refinement process for transform
coefficients of residual 4x4 blocks
G.8.5.1.1.3
Refinement process for transform
coefficients of residual 8x8 blocks
G.8.5.1.1.4
Refinement process for transform
coefficients of Intra_16x16 macroblocks
G.8.5.1.2
Refinement process for chroma
transform coefficients
G.8.5.1.2.1
Assignment process for chroma
transform coefficient values for I_PCM macroblocks
G.8.5.1.2.2
Refinement process for chroma
transform coefficients with ChromaArrayType equal to 1 or 2
G.8.5.2
Transform coefficient level scaling
process prior to transform coefficient refinement
G.8.5.3
Residual construction and
accumulation process
G.8.5.3.1
Construction process for luma
residuals or chroma residuals with ChromaArrayType equal to 3
G.8.5.3.1.1
Construction process for luma
residuals or chroma residuals with ChromaArrayType equal to 3 of I_PCM
macroblocks
G.8.5.3.1.2
Construction process for residual 4x4
blocks
G.8.5.3.1.3
Construction process for residual 8x8
blocks
G.8.5.3.1.4
Construction process for residuals of
Intra_16x16 macroblocks
G.8.5.3.2
Construction process for chroma
residuals
G.8.5.3.2.1
Construction process for chroma
residuals of I_PCM macroblocks
G.8.5.3.2.2
Construction process for chroma
residuals with ChromaArrayType equal to 1 or 2
G.8.5.4
Sample array accumulation process
G.8.5.4.1
Picture sample array construction
process
G.8.5.4.2
Macroblock sample array extraction
process
G.8.5.4.3
Picture sample array construction
process for a colour component
G.8.5.4.4
Macroblock sample array extraction
process for a colour component
G.8.5.5
Sample array re-initialisation
process
G.8.6
Resampling processes for prediction
data, intra samples, and residual samples
G.8.6.1
Derivation process for inter-layer
predictors for macroblock type, sub-macroblock type, reference indices, and
motion vectors
G.8.6.1.1
Derivation process for reference
layer partition identifications
G.8.6.1.2
Derivation process for inter-layer
predictors for reference indices and motion vectors
G.8.6.1.3
Derivation process for inter-layer
predictors for P and B macroblock and sub-macroblock types
G.8.6.2
Resampling process for intra samples
G.8.6.2.1
Resampling process for intra samples
of a macroblock colour component
G.8.6.2.2
Reference layer sample array
construction process prior to intra resampling
G.8.6.2.2.1
Derivation process for reference
layer slice and intra macroblock identifications
G.8.6.2.2.2
Construction process for not
available sample values prior to intra resampling
G.8.6.2.3
Interpolation process for Intra_Base
prediction
G.8.6.2.4
Vertical interpolation process for
Intra_Base prediction
G.8.6.3
Resampling process for residual samples
G.8.6.3.1
Resampling process for residual
samples of a macroblock colour component
G.8.6.3.2
Reference layer sample array
construction process prior to residual resampling
G.8.6.3.2.1
Derivation process for reference
layer transform block identifications
G.8.6.3.3
Interpolation process for residual
prediction
G.8.6.3.4
Vertical interpolation process for
residual prediction
G.8.7
SVC deblocking filter processes
G.8.7.1
Deblocking filter process for
Intra_Base prediction
G.8.7.2
Deblocking filter process for target
representations
G.8.7.3
Derivation process for quantisation
parameters used in the deblocking filter process
G.8.7.4
Macroblock deblocking filter process
G.8.7.4.1
SVC filtering process for block edges
G.8.7.4.2
SVC filtering process for a set of
samples across a horizontal or vertical block edge
G.8.7.4.3
SVC derivation process for the luma
content dependent boundary filtering strength
G.8.8
Specification of bitstream subsets
G.8.8.1
Sub-bitstream extraction process
G.8.8.2
Specification of the base layer
bitstream
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.2.1
Additional parsing process for total
number of transform coefficient levels and trailing ones
G.9.2.2
Alternative parsing process for run
information
G.9.3
Alternative CABAC parsing process for
slice data in scalable extension
G.9.3.1
Initialisation process
G.9.3.2
Binarization process
G.9.3.3
Decoding process flow
G.9.3.3.1
Derivation process for ctxIdx
G.9.3.3.2
Assignment process of ctxIdxInc using
neighbouring syntax elements
G.9.3.3.2.1
Derivation process of ctxIdxInc for
the syntax element base_mode_flag
G.9.3.3.2.2
Derivation process of ctxIdxInc for
the syntax element residual_prediction_flag
G.10 Profiles and levels
G.10.1
Profiles
G.10.1.1
Scalable Baseline profile
G.10.1.2
Scalable High profile
G.10.1.3
Scalable High Intra profile
G.10.2
Levels
G.10.2.1
Level limits common to Scalable
Baseline, Scalable High, and Scalable High Intra profiles
G.10.2.2
Profile specific level limits
G.11 Byte stream format
G.12 Hypothetical reference decoder
G.13 Supplemental enhancement information
G.13.1
SEI payload syntax
G.13.1.1
Scalability information SEI message
syntax
G.13.1.2
Layers not present SEI message syntax
G.13.1.3
Layer dependency change SEI message
syntax
G.13.1.4
Sub-picture scalable layer SEI message
syntax
G.13.1.5
Non-required layer representation SEI
message syntax
G.13.1.6
Priority layer information SEI
message syntax
G.13.1.7
Scalable nesting SEI message syntax
G.13.1.8
Base layer temporal HRD SEI message
syntax
G.13.1.9
Quality layer
integrity check SEI message syntax
G.13.1.10
Redundant picture property SEI
message syntax
G.13.1.11
Temporal level zero dependency
representation index SEI message syntax
G.13.1.12
Temporal level switching point SEI message syntax
G.13.2
SEI payload semantics
G.13.2.1
Scalability information SEI message
semantics
G.13.2.2
Layers not present SEI message
semantics
G.13.2.3
Layer dependency change SEI message
semantics
G.13.2.4
Sub-picture scalable layer SEI
message semantics
G.13.2.5
Non-required layer representation SEI
message semantics
G.13.2.6
Priority layer information SEI
message semantics
G.13.2.7
Scalable nesting SEI message
semantics
G.13.2.8
Base layer temporal HRD SEI message
semantics
G.13.2.9
Quality layer
integrity check SEI message semantics
G.13.2.10
Redundant picture property SEI
message semantics
G.13.2.11
Temporal level zero dependency
representation index SEI message semantics
G.13.2.12
Temporal level switching point SEI
message semantics
G.14 SVC video usability information extension
G.14.1 SVC VUI
parameters extension syntax
G.14.2
SVC VUI parameters extension
semantics