ISO/IEC 23008-2:2013
(Main)Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 2: High efficiency video coding
Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 2: High efficiency video coding
ISO/IEC 23008-2:2013 specifies high efficiency video coding. It was developed in response to the growing need for higher compression of moving pictures for various applications such as videoconferencing, digital storage media, television broadcasting, internet streaming, and communications. It is also designed to enable the use of the coded video representation in a flexible manner for a wide variety of network environments as well as to enable the use of multi-core parallel encoding and decoding devices. The use of ISO/IEC 23008-2:2013 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.
Technologies de l'information — Codage à haute efficacité et livraison des medias dans des environnements hétérogènes — Partie 2: Codage vidéo à haute efficacité
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 23008-2
First edition
2013-12-01
Information technology — High efficiency
coding and media delivery in
heterogeneous environments —
Part 2:
High efficiency video coding
Technologies de l'information — Codage à haute efficacité et livraison
des medias dans des environnements hétérogènes —
Partie 2: Codage vidéo à haute efficacité
Reference number
ISO/IEC 23008-2:2013(E)
©
ISO/IEC 2013
---------------------- Page: 1 ----------------------
ISO/IEC 23008-2:2013(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2013
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 2013 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 23008-2:2013(E)
CONTENTS
Page
0 Introduction . 1
0.1 General. 1
0.2 Prologue. 1
0.3 Purpose . 1
0.4 Applications. 1
0.5 Publication and versions of this Specification . 1
0.6 Profiles, tiers and levels . 2
0.7 Overview of the design characteristics . 2
0.8 How to read this Specification. 2
1 Scope . 3
2 Normative references. 3
2.1 General. 3
2.2 Identical Recommendations | International Standards . 3
2.3 Paired Recommendations | International Standards equivalent in technical content . 3
2.4 Additional references. 3
3 Definitions . 3
4 Abbreviations. 12
5 Conventions . 13
5.1 General. 13
5.2 Arithmetic operators . 13
5.3 Logical operators . 13
5.4 Relational operators . 14
5.5 Bit-wise operators. 14
5.6 Assignment operators . 14
5.7 Range notation . 14
5.8 Mathematical functions. 15
5.9 Order of operation precedence. 15
5.10 Variables, syntax elements, and tables. 16
5.11 Text description of logical operations. 17
5.12 Processes. 18
6 Bitstream and picture formats, partitionings, scanning processes, and neighbouring relationships . 18
6.1 Bitstream formats. 18
6.2 Source, decoded, and output picture formats . 18
6.3 Partitioning of pictures, slices, slice segments, tiles, coding tree units, and coding tree blocks. 21
6.3.1 Partitioning of pictures into slices, slice segments, and tiles . 21
6.3.2 Block and quadtree structures . 22
6.3.3 Spatial or component-wise partionings. 23
6.4 Availability processes . 23
6.4.1 Derivation process for z-scan order block availability. 23
6.4.2 Derivation process for prediction block availability . 24
6.5 Scanning processes . 25
6.5.1 Coding tree block raster and tile scanning conversion process. 25
6.5.2 Z-scan order array initialization process . 26
6.5.3 Up-right diagonal scan order array initialization process . 26
6.5.4 Horizontal scan order array initialization process. 27
6.5.5 Vertical scan order array initialization process . 27
7 Syntax and semantics. 28
7.1 Method of specifying syntax in tabular form. 28
7.2 Specification of syntax functions and descriptors. 29
7.3 Syntax in tabular form . 30
7.3.1 NAL unit syntax. 30
7.3.1.1 General NAL unit syntax. 30
© ISO/IEC 2013 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 23008-2:2013(E)
7.3.1.2 NAL unit header syntax. 30
7.3.2 Raw byte sequence payloads, trailing bits, and byte alignment syntax. 31
7.3.2.1 Video parameter set RBSP syntax . 31
7.3.2.2 Sequence parameter set RBSP syntax. 32
7.3.2.3 Picture parameter set RBSP syntax. 34
7.3.2.4 Supplemental enhancement information RBSP syntax. 35
7.3.2.5 Access unit delimiter RBSP syntax . 35
7.3.2.6 End of sequence RBSP syntax. 35
7.3.2.7 End of bitstream RBSP syntax. 35
7.3.2.8 Filler data RBSP syntax. 36
7.3.2.9 Slice segment layer RBSP syntax. 36
7.3.2.10 RBSP slice segment trailing bits syntax . 36
7.3.2.11 RBSP trailing bits syntax. 36
7.3.2.12 Byte alignment syntax . 36
7.3.3 Profile, tier and level syntax . 37
7.3.4 Scaling list data syntax. 38
7.3.5 Supplemental enhancement information message syntax . 38
7.3.6 Slice segment header syntax . 39
7.3.6.1 General slice segment header syntax . 39
7.3.6.2 Reference picture list modification syntax. 41
7.3.6.3 Weighted prediction parameters syntax. 42
7.3.7 Short-term reference picture set syntax. 43
7.3.8 Slice segment data syntax . 43
7.3.8.1 General slice segment data syntax . 43
7.3.8.2 Coding tree unit syntax. 44
7.3.8.3 Sample adaptive offset syntax . 45
7.3.8.4 Coding quadtree syntax . 46
7.3.8.5 Coding unit syntax. 47
7.3.8.6 Prediction unit syntax . 49
7.3.8.7 PCM sample syntax . 49
7.3.8.8 Transform tree syntax . 50
7.3.8.9 Motion vector difference syntax . 50
7.3.8.10 Transform unit syntax. 51
7.3.8.11 Residual coding syntax . 52
7.4 Semantics. 54
7.4.1 General. 54
7.4.2 NAL unit semantics . 54
7.4.2.1 General NAL unit semantics. 54
7.4.2.2 NAL unit header semantics. 55
7.4.2.3 Encapsulation of an SODB within an RBSP (informative) . 58
7.4.2.4 Order of NAL units and association to coded pictures, access units, and coded video sequences . 59
7.4.3 Raw byte sequence payloads, trailing bits, and byte alignment semantics . 62
7.4.3.1 Video parameter set RBSP semantics. 62
7.4.3.2 Sequence parameter set RBSP semantics .64
7.4.3.3 Picture parameter set RBSP semantics . 69
7.4.3.4 Supplemental enhancement information RBSP semantics . 72
7.4.3.5 Access unit delimiter RBSP semantics . 72
7.4.3.6 End of sequence RBSP semantics. 72
7.4.3.7 End of bitstream RBSP semantics . 72
7.4.3.8 Filler data RBSP semantics. 73
7.4.3.9 Slice segment layer RBSP semantics. 73
7.4.3.10 RBSP slice segment trailing bits semantics . 73
7.4.3.11 RBSP trailing bits semantics. 73
7.4.3.12 Byte alignment semantics . 73
7.4.4 Profile, tier and level semantics . 73
7.4.5 Scaling list data semantics . 75
7.4.6 Supplemental enhancement information message semantics. 76
7.4.7 Slice segment header semantics. 77
7.4.7.1 General slice segment header semantics. 77
7.4.7.2 Reference picture list modification semantics . 81
7.4.7.3 Weighted prediction parameters semantics. 82
7.4.8 Short-term reference picture set semantics . 83
7.4.9 Slice segment data semantics. 85
iv © ISO/IEC 2013 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 23008-2:2013(E)
7.4.9.1 General slice segment data semantics. 85
7.4.9.2 Coding tree unit semantics. 85
7.4.9.3 Sample adaptive offset semantics . 85
7.4.9.4 Coding quadtree semantics . 87
7.4.9.5 Coding unit semantics. 87
7.4.9.6 Prediction unit semantics. 89
7.4.9.7 PCM sample semantics. 90
7.4.9.8 Transform tree semantics. 90
7.4.9.9 Motion vector difference semantics. 91
7.4.9.10 Transform unit semantics. 91
7.4.9.11 Residual coding semantics. 92
8 Decoding process. 94
8.1 General decoding process . 94
8.2 NAL unit decoding process . 95
8.3 Slice decoding process. 96
8.3.1 Decoding process for picture order count . 96
8.3.2 Decoding process for reference picture set . 96
8.3.3 Decoding process for generating unavailable reference pictures . 100
8.3.3.1 General decoding process for generating unavailable reference pictures . 100
8.3.3.2 Generation of one unavailable picture . 101
8.3.4 Decoding process for reference picture lists construction. 101
8.4 Decoding process for coding units coded in intra prediction mode . 102
8.4.1 General decoding process for coding units coded in intra prediction mode . 102
8.4.2 Derivation process for luma intra prediction mode. 103
8.4.3 Derivation process for chroma intra prediction mode. 105
8.4.4 Decoding process for intra blocks. 105
8.4.4.1 General decoding process for intra blocks. 105
8.4.4.2 Intra sample prediction . 106
8.5 Decoding process for coding units coded in inter prediction mode . 112
8.5.1 General decoding process for coding units coded in inter prediction mode . 112
8.5.2 Inter prediction process. 112
8.5.3 Decoding process for prediction units in inter prediction mode . 115
8.5.3.1 General. 115
8.5.3.2 Derivation process for motion vector components and reference indices. 115
8.5.3.3 Decoding process for inter prediction samples . 130
8.5.4 Decoding process for the residual signal of coding units coded in inter prediction mode. 138
8.5.4.1 General. 138
8.5.4.2 Decoding process for luma residual blocks . 139
8.5.4.3 Decoding process for chroma residual blocks . 140
8.6 Scaling, transformation and array construction process prior to deblocking filter process. 141
8.6.1 Derivation process for quantization parameters. 141
8.6.2 Scaling and transformation process . 142
8.6.3 Scaling process for transform coefficients. 143
8.6.4 Transformation process for scaled transform coefficients . 144
8.6.4.1 General. 144
8.6.4.2 Transformation process. 144
8.6.5 Picture construction process prior to in-loop filter process. 146
8.7 In-loop filter process. 146
8.7.1 General. 146
8.7.2 Deblocking filter process . 147
8.7.2.1 General. 147
8.7.2.2 Derivation process of transform block boundary. 148
8.7.2.3 Derivation process of prediction block boundary. 149
8.7.2.4 Derivation process of boundary filtering strength . 150
8.7.2.5 Edge filtering process . 151
8.7.3 Sample adaptive offset process . 159
8.7.3.1 General. 159
8.7.3.2 Coding tree block modification process. 159
© ISO/IEC 2013 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 23008-2:2013(E)
9 Parsing process . 161
9.1 General. 161
9.2 Parsing process for 0-th order Exp-Golomb codes . 161
9.2.1 General. 161
9.2.2 Mapping process for signed Exp-Golomb codes . 163
9.3 CABAC parsing process for slice segment data . 163
9.3.1 General. 163
9.3.2 Initialization process . 165
9.3.2.1 General. 165
9.3.2.2 Initialization process for context variables . 166
9.3.2.3 Storage process for context variables . 174
9.3.2.4 Synchronization process for context variables. 174
9.3.2.5 Initialization process for the arithmetic decoding engine . 174
9.3.3 Binarization process.
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.