`
`
`
`
`
`INTERNATIONAL
`STANDARD
`
`ISO/IEC
`14496-10
`
`Sixth edition
`2010-12-15
`
`
`
`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é
`
`
`
`
`
`
`© ISO/IEC 2010
`
`
`Licensed to Immanuel Freedman. ANSI store order # X_671643. Downloaded 08/25/2020. Single user license only. Copying and networking prohibited.
`
`Reference number
`ISO/IEC 14496-10:2010(E)
`
`Roku EX1024
`U.S. Patent No. 10,334,311
`
`
`
`ISO/IEC 14496-10:2010(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.
`
`
`
`
` COPYRIGHT PROTECTED DOCUMENT
` ISO/IEC 2010
`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 2010 – All rights reserved
`Licensed to Immanuel Freedman. ANSI store order # X_671643. Downloaded 08/25/2020. Single user license only. Copying and networking prohibited.
`
`
`
`
`
`ISO/IEC 14496-10:2010(E)
`
`Contents
`
`Page
`
`0
`
`Introduction..............................................................................................................................................................xvi
`0.1
`Prologue ............................................................................................................................................................ xvi
`0.2
`Purpose.............................................................................................................................................................. xvi
`0.3 Applications ...................................................................................................................................................... xvi
`0.4
`Publication and versions of this Specification................................................................................................... xvi
`0.5
`Profiles and levels ............................................................................................................................................xvii
`0.6 Overview of the design characteristics............................................................................................................xviii
`0.6.1
`Predictive coding.....................................................................................................................................xviii
`0.6.2
`Coding of progressive and interlaced video .............................................................................................. xix
`0.6.3
`Picture partitioning into macroblocks and smaller partitions .................................................................... xix
`0.6.4
`Spatial redundancy reduction .................................................................................................................... xix
`0.7 How to read this Specification .......................................................................................................................... xix
`Scope.............................................................................................................................................................................1
`1
`2 Normative references ..................................................................................................................................................1
`3 Definitions....................................................................................................................................................................1
`4 Abbreviations ..............................................................................................................................................................9
`5 Conventions ...............................................................................................................................................................10
`5.1 Arithmetic operators........................................................................................................................................... 10
`5.2
`Logical operators................................................................................................................................................ 11
`5.3
`Relational operators............................................................................................................................................ 11
`5.4
`Bit-wise operators .............................................................................................................................................. 11
`5.5 Assignment operators......................................................................................................................................... 11
`5.6
`Range notation.................................................................................................................................................... 12
`5.7 Mathematical functions ...................................................................................................................................... 12
`5.8 Order of operation precedence ........................................................................................................................... 13
`5.9 Variables, syntax elements, and tables............................................................................................................... 14
`5.10 Text description of logical operations ................................................................................................................ 14
`5.11 Processes ............................................................................................................................................................ 15
`Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships..........16
`6.1
`Bitstream formats ............................................................................................................................................... 16
`6.2
`Source, decoded, and output picture formats ..................................................................................................... 16
`6.3
`Spatial subdivision of pictures and slices........................................................................................................... 21
`6.4
`Inverse scanning processes and derivation processes for neighbours ................................................................ 22
`6.4.1
`Inverse macroblock scanning process ........................................................................................................ 22
`6.4.2
`Inverse macroblock partition and sub-macroblock partition scanning process .......................................... 23
`6.4.3
`Inverse 4x4 luma block scanning process .................................................................................................. 25
`6.4.4
`Inverse 4x4 Cb or Cr block scanning process for ChromaArrayType equal to 3....................................... 25
`6.4.5
`Inverse 8x8 luma block scanning process .................................................................................................. 25
`6.4.6
`Inverse 8x8 Cb or Cr block scanning process for ChromaArrayType equal to 3....................................... 26
`6.4.7
`Derivation process of the availability for macroblock addresses ............................................................... 26
`6.4.8
`Derivation process for neighbouring macroblock addresses and their availability .................................... 26
`6.4.9
`Derivation process for neighbouring macroblock addresses and their availability in MBAFF frames ...... 27
`6.4.10 Derivation processes for neighbouring macroblocks, blocks, and partitions ............................................. 28
`6.4.11 Derivation process for neighbouring locations........................................................................................... 33
`6.4.12 Derivation processes for block and partition indices.................................................................................. 36
`Syntax and semantics................................................................................................................................................37
`7.1 Method of specifying syntax in tabular form ..................................................................................................... 37
`7.2
`Specification of syntax functions, categories, and descriptors ........................................................................... 38
`7.3
`Syntax in tabular form........................................................................................................................................ 40
`7.3.1
`NAL unit syntax ......................................................................................................................................... 40
`7.3.2
`Raw byte sequence payloads and RBSP trailing bits syntax ...................................................................... 40
`
`6
`
`7
`
`
`© ISO/IEC 2010 – All rights reserved
`
`Licensed to Immanuel Freedman. ANSI store order # X_671643. Downloaded 08/25/2020. Single user license only. Copying and networking prohibited.
`
`iii
`
`
`
`ISO/IEC 14496-10:2010(E)
`
`Slice header syntax .....................................................................................................................................49
`7.3.3
`Slice data syntax .........................................................................................................................................54
`7.3.4
`7.3.5 Macroblock layer syntax.............................................................................................................................55
`7.4
`Semantics............................................................................................................................................................62
`7.4.1
`NAL unit semantics ....................................................................................................................................62
`7.4.2
`Raw byte sequence payloads and RBSP trailing bits semantics .................................................................71
`7.4.3
`Slice header semantics ................................................................................................................................85
`7.4.4
`Slice data semantics ....................................................................................................................................97
`7.4.5 Macroblock layer semantics........................................................................................................................97
`8 Decoding process..................................................................................................................................................... 110
`8.1 NAL unit decoding process ..............................................................................................................................111
`8.2
`Slice decoding process......................................................................................................................................112
`8.2.1
`Decoding process for picture order count .................................................................................................112
`8.2.2
`Decoding process for macroblock to slice group map ..............................................................................116
`8.2.3
`Decoding process for slice data partitions ................................................................................................120
`8.2.4
`Decoding process for reference picture lists construction.........................................................................120
`8.2.5
`Decoded reference picture marking process .............................................................................................127
`8.3
`Intra prediction process.....................................................................................................................................132
`8.3.1
`Intra_4x4 prediction process for luma samples.........................................................................................132
`8.3.2
`Intra_8x8 prediction process for luma samples.........................................................................................139
`8.3.3
`Intra_16x16 prediction process for luma samples.....................................................................................147
`8.3.4
`Intra prediction process for chroma samples.............................................................................................149
`8.3.5
`Sample construction process for I_PCM macroblocks .............................................................................154
`8.4
`Inter prediction process.....................................................................................................................................154
`8.4.1
`Derivation process for motion vector components and reference indices.................................................157
`8.4.2
`Decoding process for Inter prediction samples.........................................................................................169
`8.4.3
`Derivation process for prediction weights ................................................................................................179
`8.5
`Transform coefficient decoding process and picture construction process prior to deblocking filter process..181
`8.5.1
`Specification of transform decoding process for 4x4 luma residual blocks..............................................182
`8.5.2
`Specification of transform decoding process for luma samples of Intra_16x16 macroblock prediction
`mode .........................................................................................................................................................182
`8.5.3
`Specification of transform decoding process for 8x8 luma residual blocks..............................................183
`Specification of transform decoding process for chroma samples............................................................184
`8.5.4
`8.5.5
`Specification of transform decoding process for chroma samples with ChromaArrayType equal to 3 ....186
`8.5.6
`Inverse scanning process for 4x4 transform coefficients and scaling lists................................................186
`8.5.7
`Inverse scanning process for 8x8 transform coefficients and scaling lists................................................187
`8.5.8
`Derivation process for chroma quantisation parameters ...........................................................................189
`8.5.9
`Derivation process for scaling functions...................................................................................................189
`8.5.10
`Scaling and transformation process for DC transform coefficients for Intra_16x16 macroblock type.....191
`8.5.11
`Scaling and transformation process for chroma DC transform coefficients .............................................191
`8.5.12
`Scaling and transformation process for residual 4x4 blocks.....................................................................193
`8.5.13
`Scaling and transformation process for residual 8x8 blocks.....................................................................196
`8.5.14
`Picture construction process prior to deblocking filter process.................................................................200
`8.5.15
`Intra residual transform-bypass decoding process ....................................................................................201
`8.6 Decoding process for P macroblocks in SP slices or SI macroblocks ..............................................................202
`8.6.1
`SP decoding process for non-switching pictures.......................................................................................202
`8.6.2
`SP and SI slice decoding process for switching pictures ..........................................................................205
`8.7 Deblocking filter process ..................................................................................................................................207
`8.7.1
`Filtering process for block edges ..............................................................................................................211
`8.7.2
`Filtering process for a set of samples across a horizontal or vertical block edge......................................213
`9 Parsing process ....................................................................................................................................................... 219
`9.1
`Parsing process for Exp-Golomb codes ............................................................................................................219
`9.1.1 Mapping process for signed Exp-Golomb codes ......................................................................................221
`9.1.2 Mapping process for coded block pattern .................................................................................................221
`9.2
`CAVLC parsing process for transform coefficient levels.................................................................................224
`9.2.1
`Parsing process for total number of transform coefficient levels and trailing ones ..................................225
`9.2.2
`Parsing process for level information .......................................................................................................229
`9.2.3
`Parsing process for run information..........................................................................................................230
`9.2.4
`Combining level and run information.......................................................................................................234
`
`iv
`
`
`
`© ISO/IEC 2010 – All rights reserved
`Licensed to Immanuel Freedman. ANSI store order # X_671643. Downloaded 08/25/2020. Single user license only. Copying and networking prohibited.
`
`
`
`ISO/IEC 14496-10:2010(E)
`
`CABAC parsing process for slice data............................................................................................................. 234
`9.3
`9.3.1
`Initialisation process................................................................................................................................. 236
`9.3.2
`Binarization process ................................................................................................................................. 260
`9.3.3
`Decoding process flow ............................................................................................................................. 269
`9.3.4
`Arithmetic encoding process (informative).............................................................................................. 291
` Annex A Profiles and levels..........................................................................................................................................299
`A.1 Requirements on video decoder capability....................................................................................................... 299
`A.2
`Profiles ............................................................................................................................................................. 299
`A.2.1
`Baseline profile......................................................................................................................................... 299
`A.2.2 Main profile.............................................................................................................................................. 300
`A.2.3
`Extended profile ....................................................................................................................................... 300
`A.2.4
`High profile .............................................................................................................................................. 301
`A.2.5
`High 10 profile ......................................................................................................................................... 301
`A.2.6
`High 4:2:2 profile ..................................................................................................................................... 302
`A.2.7
`High 4:4:4 Predictive profile .................................................................................................................... 302
`A.2.8
`High 10 Intra profile................................................................................................................................. 303
`A.2.9
`High 4:2:2 Intra profile............................................................................................................................. 303
`A.2.10 High 4:4:4 Intra profile............................................................................................................................. 304
`A.2.11 CAVLC 4:4:4 Intra profile ....................................................................................................................... 304
`A.3 Levels ............................................................................................................................................................... 305
`A.3.1
`Level limits common to the Baseline, Constrained Baseline, Main, and Extended profiles .................... 305
`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........................................................ 307
`A.3.3
`Profile-specific level limits....................................................................................................................... 309
`Effect of level limits on frame rate (informative)..................................................................................... 314
`A.3.4
`A.3.5
`Effect of level limits on maximum DPB size in units of frames (informative) ........................................ 317
` Annex B Byte stream format........................................................................................................................................319
`B.1 Byte stream NAL unit syntax and semantics.................................................................................................... 319
`B.1.1
`Byte stream NAL unit syntax ................................................................................................................... 319
`B.1.2
`Byte stream NAL unit semantics.............................................................................................................. 319
`B.2 Byte stream NAL unit decoding process.......................................................................................................... 320
`B.3 Decoder byte-alignment recovery (informative) .............................................................................................. 320
` Annex C Hypothetical reference decoder ...................................................................................................................322
`C.1 Operation of coded picture buffer (CPB) ......................................................................................................... 326
`C.1.1
`Timing of bitstream arrival....................................................................................................................... 326
`C.1.2
`Timing of coded picture removal ............................................................................................................. 327
`C.2 Operation of the decoded picture buffer (DPB) ............................................................................................... 328
`C.2.1
`Decoding of gaps in frame_num and storage of "non-existing" frames ................................................... 328
`C.2.2
`Picture decoding and output ..................................................................................................................... 329
`C.2.3
`Removal of pictures from the DPB before possible insertion of the current picture................................ 329
`C.2.4
`Current decoded picture marking and storage .......................................................................................... 330
`C.3 Bitstream conformance..................................................................................................................................... 331
`C.4 Decoder conformance....................................................................................................................................... 332
`C.4.1
`Operation of the output order DPB........................................................................................................... 333
`C.4.2
`Decoding of gaps in frame_num and storage of "non-existing" pictures ................................................. 333
`C.4.3
`Picture decoding....................................................................................................................................... 334
`C.4.4
`Removal of pictures from the DPB before possible insertion of the current picture................................ 334
`C.4.5
`Current decoded picture marking and storage .......................................................................................... 335
` Annex D Supplemental enhancement information ....................................................................................................338
`D.1
`SEI payload syntax........................................................................................................................................... 339
`D.1.1
`Buffering period SEI message syntax ...................................................................................................... 341
`D.1.2
`Picture timing SEI message syntax .......................................................................................................... 342
`D.1.3
`Pan-scan rectangle SEI message syntax ................................................................................................... 343
`D.1.4
`Filler payload SEI message syntax........................................................................................................... 343
`D.1.5
`User data registered by ITU-T Rec. T.35 SEI message syntax ................................................................ 343
`D.1.6
`User data unregistered SEI message syntax ............................................................................................. 344
`D.1.7
`Recovery point SEI message syntax......................................................................................................... 344
`D.1.8
`Decoded reference picture marking repetition SEI message syntax......................................................... 344
`D.1.9
`Spare picture SEI message syntax............................................................................................................ 345
`
`
`© ISO/IEC 2010 – All rights reserved
`
`Licensed to Immanuel Freedman. ANSI store order # X_671643. Downloaded 08/25/2020. Single user license only. Copying and networking prohibited.
`
`v
`
`
`
`ISO/IEC 14496-10:2010(E)
`
`D.1.10 Scene information SEI message syntax ....................................................................................................345
`D.1.11 Sub-sequence information SEI message syntax........................................................................................346
`D.1.12 Sub-sequence layer characteristics SEI message syntax...........................................................................346
`D.1.13 Sub-sequence characteristics SEI message syntax....................................................................................347
`D.1.14 Full-frame freeze SEI message syntax......................................................................................................347
`D.1.15 Full-frame freeze release SEI message syntax..........................................................................................347
`D.1.16 Full-frame snapshot SEI message syntax..................................................................................................347
`D.1.17 Progressive refinement segment start SEI message syntax.......................................................................348
`D.1.18 Progressive refinement segment end SEI message syntax........................................................................348
`D.1.19 Motion-constrained slice group set SEI message syntax ..........................................................................348
`D.1.20 Film grain characteristics SEI message syntax .........................................................................................349
`D.1.21 Deblocking filter display preference SEI message syntax ........................................................................349
`D.1.22 Stereo video information SEI message syntax..........................................................................................350
`D.1.23 Post-filter hint SEI message syntax...........................................................................................................350
`D.1.24 Tone mapping information SEI message syntax.......................................................................................351
`D.1.25 Frame packing arrangement SEI message syntax .....................................................................................352
`D.1.26 Reserved SEI message syntax...................................................................................................................352
`D.2
`SEI payload semantics ......................................................................................................................................352
`D.2.1
`Buffering period SEI message semantics..................................................................................................352
`D.2.2
`Picture timing SEI message semantics......................................................................................................353
`D.2.3
`Pan-scan rectangle SEI message semantics ..............................................................................................358
`D.2.4
`Filler payload SEI message semantics ......................................................................................................359
`D.2.5
`User data registered by ITU-T Rec. T.35 SEI message semantics............................................................359
`D.2.6
`User data unregistered SEI message semantics.........................................................................................360
`D.2.7
`Recovery point SEI message semantics....................................................................................................360
`D.2.8
`Decoded reference picture marking repetition SEI message semantics....................................................362
`D.2.9
`Spare picture SEI message semantics .......................................................................................................362
`D.2.10 Scene information SEI message semantics ...............................................................................................364
`D.2.11 Sub-sequence information SEI message semantics ........