ISO/IEC 14496-10:2005
(Main)Information technology — Coding of audio-visual objects — Part 10: Advanced Video Coding
Information technology — Coding of audio-visual objects — Part 10: Advanced Video Coding
ISO/IEC 14496-10:2005 was developed jointly with the ITU-T in response to the growing need for higher compression of moving pictures for various applications such as digital storage media, television broadcasting, Internet streaming and real-time audiovisual communication. It is also designed to enable the use of the coded video representation in a flexible manner for a wide variety of network environments. It is designed to be generic in the sense that it serves a wide range of applications, bit rates, resolutions, qualities and services. The use of ISO/IEC 14496-10:2005 allows motion video to be manipulated as a form of computer data and to be stored on various storage media, transmitted and received over existing and future networks and distributed on existing and future broadcasting channels. In the course of creating ISO/IEC 14496-10:2005, requirements from a wide variety of applications have been considered, necessary algorithmic elements have been developed, and these have been integrated into a single syntax. Hence, ISO/IEC 14496-10:2005 will facilitate video data interchange among different applications.
Technologies de l'information — Codage des objets audiovisuels — Partie 10: Codage visuel avancé
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 14496-10
Third edition
2005-12-15
Corrected version
2006-03-01
Information technology — Coding
of audio-visual objects —
Part 10:
Advanced Video Coding
Technologies de l'information — Codage des objets audiovisuels —
Partie 10: Codage visuel avancé
Reference number
ISO/IEC 14496-10:2005(E)
©
ISO/IEC 2005
---------------------- Page: 1 ----------------------
ISO/IEC 14496-10:2005(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2005
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2005 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 14496-10:2005(E)
Contents Page
0 Introduction. xiv
0.1 Prologue. xiv
0.2 Purpose . xiv
0.3 Applications . xiv
0.4 Publication and versions of this International Standard. xiv
0.5 Profiles and levels. xv
0.6 Overview of the design characteristics . xv
0.6.1 Predictive coding . xv
0.6.2 Coding of progressive and interlaced video. xvi
0.6.3 Picture partitioning into macroblocks and smaller partitions. xvi
0.6.4 Spatial redundancy reduction. xvi
0.7 How to read this specification. xvi
1 Scope . 1
2 Normative references. 1
3 Definitions. 1
4 Abbreviations . 9
5 Conventions . 10
5.1 Arithmetic operators . 10
5.2 Logical operators . 10
5.3 Relational operators . 11
5.4 Bit-wise operators . 11
5.5 Assignment operators. 11
5.6 Range notation . 11
5.7 Mathematical functions. 11
5.8 Variables, syntax elements, and tables. 12
5.9 Text description of logical operations. 13
5.10 Processes. 14
6 Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships. 14
6.1 Bitstream formats. 14
6.2 Source, decoded, and output picture formats . 15
6.3 Spatial subdivision of pictures and slices. 20
6.4 Inverse scanning processes and derivation processes for neighbours . 20
6.4.1 Inverse macroblock scanning process. 21
6.4.2 Inverse macroblock partition and sub-macroblock partition scanning process. 21
6.4.2.1 Inverse macroblock partition scanning process. 22
6.4.2.2 Inverse sub-macroblock partition scanning process. 22
6.4.3 Inverse 4x4 luma block scanning process . 23
6.4.4 Inverse 8x8 luma block scanning process . 23
6.4.5 Derivation process of the availability for macroblock addresses. 23
6.4.6 Derivation process for neighbouring macroblock addresses and their availability. 24
6.4.7 Derivation process for neighbouring macroblock addresses and their availability in MBAFF frames. 24
6.4.8 Derivation processes for neighbouring macroblocks, blocks, and partitions . 25
6.4.8.1 Derivation process for neighbouring macroblocks .26
6.4.8.2 Derivation process for neighbouring 8x8 luma block . 26
6.4.8.3 Derivation process for neighbouring 4x4 luma blocks. 27
6.4.8.4 Derivation process for neighbouring 4x4 chroma blocks. 28
6.4.8.5 Derivation process for neighbouring partitions. 28
6.4.9 Derivation process for neighbouring locations . 30
6.4.9.1 Specification for neighbouring locations in fields and non-MBAFF frames . 30
6.4.9.2 Specification for neighbouring locations in MBAFF frames . 31
© ISO/IEC 2005 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 14496-10:2005(E)
7 Syntax and semantics.33
7.1 Method of describing syntax in tabular form .33
7.2 Specification of syntax functions, categories, and descriptors.34
7.3 Syntax in tabular form.36
7.3.1 NAL unit syntax.36
7.3.2 Raw byte sequence payloads and RBSP trailing bits syntax.37
7.3.2.1 Sequence parameter set RBSP syntax .37
7.3.2.1.1 Scaling list syntax.38
7.3.2.1.2 Sequence parameter set extension RBSP syntax .39
7.3.2.2 Picture parameter set RBSP syntax .39
7.3.2.3 Supplemental enhancement information RBSP syntax .40
7.3.2.3.1 Supplemental enhancement information message syntax.41
7.3.2.4 Access unit delimiter RBSP syntax.41
7.3.2.5 End of sequence RBSP syntax .41
7.3.2.6 End of stream RBSP syntax .41
7.3.2.7 Filler data RBSP syntax .42
7.3.2.8 Slice layer without partitioning RBSP syntax .42
7.3.2.9 Slice data partition RBSP syntax.42
7.3.2.9.1 Slice data partition A RBSP syntax.42
7.3.2.9.2 Slice data partition B RBSP syntax .42
7.3.2.9.3 Slice data partition C RBSP syntax .43
7.3.2.10 RBSP slice trailing bits syntax .43
7.3.2.11 RBSP trailing bits syntax.43
7.3.3 Slice header syntax.44
7.3.3.1 Reference picture list reordering syntax.45
7.3.3.2 Prediction weight table syntax .46
7.3.3.3 Decoded reference picture marking syntax .47
7.3.4 Slice data syntax.48
7.3.5 Macroblock layer syntax .49
7.3.5.1 Macroblock prediction syntax.50
7.3.5.2 Sub-macroblock prediction syntax.51
7.3.5.3 Residual data syntax.52
7.3.5.3.1 Residual block CAVLC syntax .53
7.3.5.3.2 Residual block CABAC syntax .55
7.4 Semantics .56
7.4.1 NAL unit semantics.56
7.4.1.1 Encapsulation of an SODB within an RBSP (informative).58
7.4.1.2 Order of NAL units and association to coded pictures, access units, and video sequences .59
7.4.1.2.1 Order of sequence and picture parameter set RBSPs and their activation.59
7.4.1.2.2 Order of access units and association to coded video sequences.60
7.4.1.2.3 Order of NAL units and coded pictures and association to access units .61
7.4.1.2.4 Detection of the first VCL NAL unit of a primary coded picture.62
7.4.1.2.5 Order of VCL NAL units and association to coded pictures .63
7.4.2 Raw byte sequence payloads and RBSP trailing bits semantics.63
7.4.2.1 Sequence parameter set RBSP semantics.63
7.4.2.1.1 Scaling list semantics .68
7.4.2.1.2 Sequence parameter set extension RBSP semantics.69
7.4.2.2 Picture parameter set RBSP semantics.70
7.4.2.3 Supplemental enhancement information RBSP semantics.73
7.4.2.3.1 Supplemental enhancement information message semantics .73
7.4.2.4 Access unit delimiter RBSP semantics.73
7.4.2.5 End of sequence RBSP semantics .73
7.4.2.6 End of stream RBSP semantics .74
7.4.2.7 Filler data RBSP semantics .74
7.4.2.8 Slice layer without partitioning RBSP semantics.74
7.4.2.9 Slice data partition RBSP semantics .74
7.4.2.9.1 Slice data partition A RBSP semantics.74
7.4.2.9.2 Slice data partition B RBSP semantics.74
7.4.2.9.3 Slice data partition C RBSP semantics.74
iv © ISO/IEC 2005 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 14496-10:2005(E)
7.4.2.10 RBSP slice trailing bits semantics. 75
7.4.2.11 RBSP trailing bits semantics . 75
7.4.3 Slice header semantics . 75
7.4.3.1 Reference picture list reordering semantics . 81
7.4.3.2 Prediction weight table semantics. 82
7.4.3.3 Decoded reference picture marking semantics. 82
7.4.4 Slice data semantics . 85
7.4.5 Macroblock layer semantics. 86
7.4.5.1 Macroblock prediction semantics . 93
7.4.5.2 Sub-macroblock prediction semantics . 94
7.4.5.3 Residual data semantics . 96
7.4.5.3.1 Residual block CAVLC semantics. 97
7.4.5.3.2 Residual block CABAC semantics. 97
8 Decoding process. 98
8.1 NAL unit decoding process. 99
8.2 Slice decoding process. 99
8.2.1 Decoding process for picture order count . 99
8.2.1.1 Decoding process for picture order count type 0 . 101
8.2.1.2 Decoding process for picture order count type 1 . 102
8.2.1.3 Decoding process for picture order count type 2 . 103
8.2.2 Decoding process for macroblock to slice group map . 104
8.2.2.1 Specification for interleaved slice group map type . 105
8.2.2.2 Specification for dispersed slice group map type. 105
8.2.2.3 Specification for foreground with left-over slice group map type . 105
8.2.2.4 Specification for box-out slice group map types. 106
8.2.2.5 Specification for raster scan slice group map types . 106
8.2.2.6 Specification for wipe slice group map types . 106
8.2.2.7 Specification for explicit slice group map type. 107
8.2.2.8 Specification for conversion of map unit to slice group map to macroblock to slice group map . 107
8.2.3 Decoding process for slice data partitioning . 107
8.2.4 Decoding process for reference picture lists construction. 108
8.2.4.1 Decoding process for picture numbers. 108
8.2.4.2 Initialisation process for reference picture lists. 109
8.2.4.2.1 Initialisation process for the reference picture list for P and SP slices in frames. 109
8.2.4.2.2 Initialisation process for the reference picture list for P and SP slices in fields. 110
8.2.4.2.3 Initialisation process for reference picture lists for B slices in frames. 110
8.2.4.2.4 Initialisation process for reference picture lists for B slices in fields. 111
8.2.4.2.5 Initialisation process for reference picture lists in fields . 112
8.2.4.3 Reordering process for reference picture lists. 113
8.2.4.3.1 Reordering process of reference picture lists for short-term reference pictures. 113
8.2.4.3.2 Reordering process of reference picture lists for long-term reference pictures. 114
8.2.5 Decoded reference picture marking process . 114
8.2.5.1 Sequence of operations for decoded reference picture marking process. 115
8.2.5.2 Decoding process for gaps in frame_num. 115
8.2.5.3 Sliding window decoded reference picture marking process . 116
8.2.5.4 Adaptive memory control decoded reference picture marking process . 116
8.2.5.4.1 Marking process of a short-term reference picture as “unused for reference” . 116
8.2.5.4.2 Marking process of a long-term reference picture as “unused for reference” . 117
8.2.5.4.3 Assignment process of a LongTermFrameIdx to a short-term reference picture . 117
8.2.5.4.4 Decoding process for MaxLongTermFrameIdx. 117
8.2.5.4.5 Marking process of all reference pictures as “unused for reference” and setting
MaxLongTermFrameIdx to “no long-term frame indices”. 118
8.2.5.4.6 Process for assigning a long-term frame index to the current picture . 118
8.3 Intra prediction process. 118
8.3.1 Intra_4x4 prediction process for luma samples. 119
8.3.1.1 Derivation process for the Intra4x4PredMode . 119
8.3.1.2 Intra_4x4 sample prediction. 121
8.3.1.2.1 Specification of Intra_4x4_Vertical prediction mode . 122
8.3.1.2.2 Specification of Intra_4x4_Horizontal prediction mode . 122
8.3.1.2.3 Specification of Intra_4x4_DC prediction mode. 122
© ISO/IEC 2005 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 14496-10:2005(E)
8.3.1.2.4 Specification of Intra_4x4_Diagonal_Down_Left prediction mode .123
8.3.1.2.5 Specification of Intra_4x4_Diagonal_Down_Right prediction mode .123
8.3.1.2.6 Specification of Intra_4x4_Vertical_Right prediction mode.123
8.3.1.2.7 Specification of Intra_4x4_Horizontal_Down prediction mode.124
8.3.1.2.8 Specification of Intra_4x4_Vertical_Left prediction mode.124
8.3.1.2.9 Specification of Intra_4x4_Horizontal_Up prediction mode.124
8.3.2 Intra_8x8 prediction process for luma samples.125
8.3.2.1 Derivation process for Intra8x8PredMode .125
8.3.2.2 Intra_8x8 sample prediction.127
8.3.2.2.1 Reference sample filtering process for Intra_8x8 sample prediction .128
8.3.2.2.2 Specification of Intra_8x8_Vertical prediction mode.129
8.3.2.2.3 Specification of Intra_8x8_Horizontal prediction mode .129
8.3.2.2.4 Specification of Intra_8x8_DC prediction mode.129
8.3.2.2.5 Specification of Intra_8x8_Diagonal_Down_Left prediction mode .130
8.3.2.2.6 Specification of Intra_8x8_Diagonal_Down_Right prediction mode .130
8.3.2.2.7 Specification of Intra_8x8_Vertical_Right prediction mode.130
8.3.2.2.8 Specification of Intra_8x8_Horizontal_Down prediction mode.131
8.3.2.2.9 Specification of Intra_8x8_Vertical_Left prediction mode.131
8.3.2.2.10 Specification of Intra_8x8_Horizontal_Up prediction mode.131
8.3.3 Intra_16x16 prediction process for luma samples.
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.