`Case 1:11-cv—00797-RGA Document 110-2
`Filed 01/13/12 Page 1 of 23 Page|D #: 700
`
`
`
`Ex. 2
`
`EX. 2
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 2 of 23 PageID #: 701
`
`
`
`
`I n t e r n a t i o n a l T e l e c o m m u n i c a t i o n U n i o n
`
`
`
`ITU-T
`
`TELECOMMUNICATION
`STANDARDIZATION SECTOR
`OF ITU
`
`H.264
`
`(11/2007)
`
`SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS
`Infrastructure of audiovisual services – Coding of moving
`video
`
`Advanced video coding for generic audiovisual
`services
`
`ITU-T Recommendation H.264
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 3 of 23 PageID #: 702
`
`
`ITU-T H-SERIES RECOMMENDATIONS
`AUDIOVISUAL AND MULTIMEDIA SYSTEMS
`
`
`
`CHARACTERISTICS OF VISUAL TELEPHONE SYSTEMS
`INFRASTRUCTURE OF AUDIOVISUAL SERVICES
`General
`Transmission multiplexing and synchronization
`Systems aspects
`Communication procedures
`Coding of moving video
`Related systems aspects
`Systems and terminal equipment for audiovisual services
`Directory services architecture for audiovisual and multimedia services
`Quality of service architecture for audiovisual and multimedia services
`Supplementary services for multimedia
`MOBILITY AND COLLABORATION PROCEDURES
`Overview of Mobility and Collaboration, definitions, protocols and procedures
`Mobility for H-Series multimedia systems and services
`Mobile multimedia collaboration applications and services
`Security for mobile multimedia systems and services
`Security for mobile multimedia collaboration applications and services
`Mobility interworking procedures
`Mobile multimedia collaboration inter-working procedures
`BROADBAND AND TRIPLE-PLAY MULTIMEDIA SERVICES
`Broadband multimedia services over VDSL
`
`For further details, please refer to the list of ITU-T Recommendations.
`
`
`
`H.100–H.199
`
`H.200–H.219
`H.220–H.229
`H.230–H.239
`H.240–H.259
`H.260–H.279
`H.280–H.299
`H.300–H.349
`H.350–H.359
`H.360–H.369
`H.450–H.499
`
`H.500–H.509
`H.510–H.519
`H.520–H.529
`H.530–H.539
`H.540–H.549
`H.550–H.559
`H.560–H.569
`
`H.610–H.619
`
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 4 of 23 PageID #: 703
`
`
`ITU-T Recommendation H.264
`
`Advanced video coding for generic audiovisual services
`
`
`
`Summary
`This Recommendation | International Standard represents an evolution of the existing video coding standards (H.261,
`H.262, and H.263) and 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
`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. The use of this Recommendation | International Standard 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.
`The revision approved 2005-03 contained modifications of the video coding standard to add four new profiles, referred
`to as the High, High 10, High 4:2:2, and High 4:4:4 profiles, to improve video quality capability and to extend the range
`of applications addressed by the standard (for example, by including support for a greater range of picture sample
`precision and higher-resolution chroma formats). Additionally, a definition of new types of supplemental data was
`specified to further broaden the applicability of the video coding standard. Finally, a number of corrections to errors in
`the published text were included.
`Corrigendum 1 to ITU-T Rec. H.264 corrected and updated various minor aspects to bring the ITU-T version of the text
`up to date relative to the April 2005 output status approved as a new edition of the corresponding jointly-developed and
`technically-aligned text ISO/IEC 14496-10. It additionally fixed a number of minor errors and needs for clarification and
`defined three previously-reserved sample aspect ratio indicators.
`Amendment 1 "Support of additional colour spaces and removal of the High 4:4:4 Profile" contained alterations to
`ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding to specify the support of additional colour spaces and to
`remove the definition of the High 4:4:4 Profile.
`NOTE – ITU-T Rec. H.264 is a twin text with ISO/IEC 14496-10 and this amendment is published in two different documents in
`the ISO/IEC series:
`–
`The removal of the High 4:4:4 profile is found in ISO/IEC 14496-10:2005/Cor.2.
`–
`The specification for support of additional colour space will be found in ISO/IEC 14496-10:2005/Amd.1.
`Amendment 2 "New profiles for professional applications" contained extensions to ITU-T Rec. H.264 | ISO/IEC 14496-
`10 Advanced Video Coding to specify the support of five additional profiles intended primarily for professional
`applications (the High 10 Intra, High 4:2:2 Intra, High 4:4:4 Intra, CAVLC 4:4:4 Intra, and High 4:4:4 Predictive
`profiles) and two new types of supplemental enhancement information (SEI) messages (the post-filter hint SEI message
`and the tone mapping information SEI message).
`Amendment 3 "Scalable video coding" contained extensions to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video
`Coding to specify a scalable video coding extension in three profiles (the Scalable Baseline, Scalable High, and Scalable
`High Intra profiles).
`The H.264 edition published in 2005-11 included the text approved 2005-03 and its Corrigendum 1 approved 2005-09.
`H.264 (2005) Amd.2 (2007) was available only as pre-published text since it was superseded by H.264 Amd.3 (11/2007)
`before its publication; further, H.264 Amd.3 was not published separately. This third edition integrates into the H.264
`edition published in 2005-11 all changes approved in Amendments 1 (2006-06), 2 (2007-04) and 3 (2007-11).
`
`
`
`Source
`ITU-T Recommendation H.264 was approved on 22 November 2007 by ITU-T Study Group 16 (2005-2008) under the
`ITU-T Recommendation A.8 procedure.
`
`
`
`
`
`ITU-T Rec. H.264 (11/2007)
`
`i
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 5 of 23 PageID #: 704
`
`
`FOREWORD
`The International Telecommunication Union (ITU) is the United Nations specialized agency in the field of
`telecommunications, information and communication technologies (ICTs). The ITU Telecommunication
`Standardization Sector (ITU-T) is a permanent organ of ITU. ITU-T is responsible for studying technical,
`operating and tariff questions and issuing Recommendations on them with a view to standardizing
`telecommunications on a worldwide basis.
`The World Telecommunication Standardization Assembly (WTSA), which meets every four years,
`establishes the topics for study by the ITU-T study groups which, in turn, produce Recommendations on
`these topics.
`The approval of ITU-T Recommendations is covered by the procedure laid down in WTSA Resolution 1.
`In some areas of information technology which fall within ITU-T's purview, the necessary standards are
`prepared on a collaborative basis with ISO and IEC.
`
`
`
`NOTE
`In this Recommendation, the expression "Administration" is used for conciseness to indicate both a
`telecommunication administration and a recognized operating agency.
`Compliance with this Recommendation is voluntary. However, the Recommendation may contain certain
`mandatory provisions (to ensure e.g. interoperability or applicability) and compliance with the
`Recommendation is achieved when all of these mandatory provisions are met. The words "shall" or some
`other obligatory language such as "must" and the negative equivalents are used to express requirements. The
`use of such words does not suggest that compliance with the Recommendation is required of any party.
`
`
`
`INTELLECTUAL PROPERTY RIGHTS
`ITU draws attention to the possibility that the practice or implementation of this Recommendation may
`involve the use of a claimed Intellectual Property Right. ITU takes no position concerning the evidence,
`validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or others
`outside of the Recommendation development process.
`As of the date of approval of this Recommendation, ITU had received notice of intellectual property,
`protected by patents, which may be required to implement this Recommendation. However, implementers
`are cautioned that this may not represent the latest information and are therefore strongly urged to consult the
`TSB patent database at http://www.itu.int/ITU-T/ipr/.
`
`
`
`© ITU 2008
`All rights reserved. No part of this publication may be reproduced, by any means whatsoever, without the
`prior written permission of ITU.
`
`ii
`
`ITU-T Rec. H.264 (03/2005)
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 6 of 23 PageID #: 705
`
`
`CONTENTS
`
`
`Page
`Foreword ........................................................................................................................................................................xix
`0
`Introduction .............................................................................................................................................................. 1
`0.1
`Prologue ...............................................................................................................................................................1
`0.2
`Purpose.................................................................................................................................................................1
`0.3
`Applications ..........................................................................................................................................................1
`0.4
`Publication and versions of this specification ......................................................................................................1
`0.5
`Profiles and levels.................................................................................................................................................2
`0.6 Overview of the design characteristics .................................................................................................................3
`0.6.1
`Predictive coding ........................................................................................................................................ 3
`0.6.2
`Coding of progressive and interlaced video................................................................................................ 3
`0.6.3
`Picture partitioning into macroblocks and smaller partitions...................................................................... 3
`0.6.4
`Spatial redundancy reduction...................................................................................................................... 4
`0.7 How to read this specification ..............................................................................................................................4
`Scope .......................................................................................................................................................................... 4
`1
`2 Normative references................................................................................................................................................ 4
`3 Definitions.................................................................................................................................................................. 5
`4 Abbreviations.......................................................................................................................................................... 13
`5 Conventions............................................................................................................................................................. 13
`5.1
`Arithmetic operators...........................................................................................................................................13
`5.2
`Logical operators................................................................................................................................................14
`5.3
`Relational operators ...........................................................................................................................................14
`5.4
`Bit-wise operators...............................................................................................................................................14
`5.5
`Assignment operators .........................................................................................................................................15
`5.6
`Range notation....................................................................................................................................................15
`5.7 Mathematical functions.......................................................................................................................................15
`5.8
`Variables, syntax elements, and tables ...............................................................................................................16
`5.9
`Text description of logical operations ................................................................................................................17
`5.10 Processes ............................................................................................................................................................18
`Source, coded, decoded and output data formats, scanning processes, and neighbouring relationships........ 18
`6.1
`Bitstream formats................................................................................................................................................18
`6.2
`Source, decoded, and output picture formats .....................................................................................................18
`6.3
`Spatial subdivision of pictures and slices ...........................................................................................................23
`6.4
`Inverse scanning processes and derivation processes for neighbours................................................................24
`6.4.1
`Inverse macroblock scanning process....................................................................................................... 24
`6.4.2
`Inverse macroblock partition and sub-macroblock partition scanning process......................................... 25
`6.4.2.1
`Inverse macroblock partition scanning process .................................................................................... 26
`6.4.2.2
`Inverse sub-macroblock partition scanning process.............................................................................. 26
`6.4.3
`Inverse 4x4 luma block scanning process................................................................................................. 27
`6.4.4
`Inverse 4x4 Cb or Cr block scanning process for ChromaArrayType equal to 3 ..................................... 27
`6.4.5
`Inverse 8x8 luma block scanning process................................................................................................. 27
`6.4.6
`Inverse 8x8 Cb or Cr block scanning process for ChromaArrayType equal to 3 ..................................... 28
`6.4.7
`Derivation process of the availability for macroblock addresses.............................................................. 28
`6.4.8
`Derivation process for neighbouring macroblock addresses and their availability................................... 28
`6.4.9
`Derivation process for neighbouring macroblock addresses and their availability in MBAFF frames .... 29
`6.4.10 Derivation processes for neighbouring macroblocks, blocks, and partitions............................................ 29
`6.4.10.1 Derivation process for neighbouring macroblocks.............................................................................. 30
`6.4.10.2 Derivation process for neighbouring 8x8 luma block ......................................................................... 30
`6.4.10.3 Derivation process for neighbouring 8x8 chroma blocks for ChromaArrayType equal to 3 .............. 31
`6.4.10.4 Derivation process for neighbouring 4x4 luma blocks........................................................................ 31
`6.4.10.5 Derivation process for neighbouring 4x4 chroma blocks.................................................................... 32
`6.4.10.6 Derivation process for neighbouring 4x4 chroma blocks for ChromaArrayType equal to 3 .............. 32
`6.4.10.7 Derivation process for neighbouring partitions................................................................................... 32
`6.4.11 Derivation process for neighbouring locations ......................................................................................... 34
`6.4.11.1 Specification for neighbouring locations in fields and non-MBAFF frames ...................................... 34
`6.4.11.2 Specification for neighbouring locations in MBAFF frames .............................................................. 35
`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
`
`6
`
`
`
`
`
`ITU-T Rec. H.264 (11/2007)
`
`iii
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 7 of 23 PageID #: 706
`
`
`Syntax in tabular form ........................................................................................................................................39
`7.3
`7.3.1
`NAL unit syntax........................................................................................................................................ 39
`7.3.2
`Raw byte sequence payloads and RBSP trailing bits syntax..................................................................... 39
`7.3.2.1 Sequence parameter set RBSP syntax................................................................................................... 39
`7.3.2.1.1 Sequence parameter set data syntax ............................................................................................... 40
`7.3.2.1.1.1 Scaling list syntax ................................................................................................................... 41
`7.3.2.1.2 Sequence parameter set extension RBSP syntax............................................................................ 41
`7.3.2.2 Picture parameter set RBSP syntax....................................................................................................... 42
`7.3.2.3 Supplemental enhancement information RBSP syntax......................................................................... 43
`7.3.2.3.1 Supplemental enhancement information message syntax .............................................................. 43
`7.3.2.4 Access unit delimiter RBSP syntax ...................................................................................................... 43
`7.3.2.5 End of sequence RBSP syntax.............................................................................................................. 44
`7.3.2.6 End of stream RBSP syntax.................................................................................................................. 44
`7.3.2.7 Filler data RBSP syntax........................................................................................................................ 44
`7.3.2.8 Slice layer without partitioning RBSP syntax....................................................................................... 44
`7.3.2.9 Slice data partition RBSP syntax .......................................................................................................... 44
`7.3.2.9.1 Slice data partition A RBSP syntax................................................................................................ 44
`7.3.2.9.2 Slice data partition B RBSP syntax................................................................................................ 45
`7.3.2.9.3 Slice data partition C RBSP syntax................................................................................................ 45
`7.3.2.10 RBSP slice trailing bits syntax............................................................................................................ 45
`7.3.2.11 RBSP trailing bits syntax .................................................................................................................... 45
`7.3.3
`Slice header syntax ................................................................................................................................... 46
`7.3.3.1 Reference picture list reordering syntax ............................................................................................... 47
`7.3.3.2 Prediction weight table syntax .............................................................................................................. 48
`7.3.3.3 Decoded reference picture marking syntax........................................................................................... 49
`7.3.4
`Slice data syntax ....................................................................................................................................... 50
`7.3.5 Macroblock layer syntax........................................................................................................................... 51
`7.3.5.1 Macroblock prediction syntax............................................................................................................... 52
`7.3.5.2 Sub-macroblock prediction syntax........................................................................................................ 53
`7.3.5.3 Residual data syntax ............................................................................................................................. 54
`7.3.5.3.1 Residual luma syntax ..................................................................................................................... 55
`7.3.5.3.2 Residual block CAVLC syntax...................................................................................................... 56
`7.3.5.3.3 Residual block CABAC syntax...................................................................................................... 57
`7.4
`Semantics............................................................................................................................................................58
`7.4.1
`NAL unit semantics .................................................................................................................................. 58
`7.4.1.1 Encapsulation of an SODB within an RBSP (informative) .................................................................. 61
`7.4.1.2 Order of NAL units and association to coded pictures, access units, and video sequences.................. 61
`7.4.1.2.1 Order of sequence and picture parameter set RBSPs and their activation...................................... 61
`7.4.1.2.2 Order of access units and association to coded video sequences ................................................... 62
`7.4.1.2.3 Order of NAL units and coded pictures and association to access units ........................................ 63
`7.4.1.2.4 Detection of the first VCL NAL unit of a primary coded picture .................................................. 65
`7.4.1.2.5 Order of VCL NAL units and association to coded pictures.......................................................... 65
`7.4.2
`Raw byte sequence payloads and RBSP trailing bits semantics ............................................................... 66
`7.4.2.1 Sequence parameter set RBSP semantics ............................................................................................. 66
`7.4.2.1.1 Sequence parameter set data semantics.......................................................................................... 66
`7.4.2.1.1.1 Scaling list semantics .............................................................................................................. 72
`7.4.2.1.2 Sequence parameter set extension RBSP semantics ...................................................................... 72
`7.4.2.2 Picture parameter set RBSP semantics ................................................................................................. 74
`7.4.2.3 Supplemental enhancement information RBSP semantics ................................................................... 77
`7.4.2.3.1 Supplemental enhancement information message semantics......................................................... 77
`7.4.2.4 Access unit delimiter RBSP semantics ................................................................................................. 77
`7.4.2.5 End of sequence RBSP semantics......................................................................................................... 77
`7.4.2.6 End of stream RBSP semantics............................................................................................................. 77
`7.4.2.7 Filler data RBSP semantics................................................................................................................... 77
`7.4.2.8 Slice layer without partitioning RBSP semantics ................................................................................. 77
`7.4.2.9 Slice data partition RBSP semantics..................................................................................................... 78
`7.4.2.9.1 Slice data partition A RBSP semantics .......................................................................................... 78
`7.4.2.9.2 Slice data partition B RBSP semantics........................................................................................... 78
`7.4.2.9.3 Slice data partition C RBSP semantics........................................................................................... 78
`7.4.2.10 RBSP slice trailing bits semantics....................................................................................................... 79
`7.4.2.11 RBSP trailing bits semantics............................................................................................................... 79
`7.4.3
`Slice header semantics .............................................................................................................................. 79
`7.4.3.1 Reference picture list reordering semantics .......................................................................................... 85
`
`iv
`
`ITU-T Rec. H.264 (03/2005)
`
`
`
`Case 1:11-cv-00797-RGA Document 110-2 Filed 01/13/12 Page 8 of 23 PageID #: 707
`
`
`7.4.3.2 Prediction weight table semantics......................................................................................................... 86
`7.4.3.3 Decoded reference picture marking semantics...................................................................................... 86
`7.4.4
`Slice data semantics.................................................................................................................................. 89
`7.4.5 Macroblock layer semantics ..................................................................................................................... 90
`7.4.5.1 Macroblock prediction semantics ......................................................................................................... 97
`7.4.5.2 Sub-macroblock prediction semantics .................................................................................................. 97
`7.4.5.3 Residual data semantics ...................................................................................................................... 100
`7.4.5.3.1 Residual luma data semantics ...................................................................................................... 100
`7.4.5.3.2 Residual block CAVLC semantics............................................................................................... 101
`7.4.5.3.3 Residual block CABAC semantics .............................................................................................. 101
`8 Decoding process................................................................................................................................................... 102
`8.1
`NAL unit decoding process...............................................................................................................................103
`8.2
`Slice decoding process......................................................................................................................................104
`8.2.1
`Decoding process for picture order count ............................................................................................... 104
`8.2.1.1 Decoding process for picture order count type 0 ................................................................................ 105
`8.2.1.2 Decoding process for picture order count type 1 ................................................................................ 106
`8.2.1.3 Decoding process for picture order count type 2 ................................................................................ 107
`8.2.2
`Decoding process for macroblock to slice group map ............................................................................ 108
`8.2.2.1 Specification for interleaved slice group map type............................................................................. 109
`8.2.2.2 Specification for dispersed slice group map type................................................................................ 109
`8.2.2.3 Specification for foreground with left-over slice group map type ...................................................... 109
`8.2.2.4 Specification for box-out slice group map types................................................................................. 110
`8.2.2.5 Specification for raster scan slice group map types ............................................................................ 110
`8.2.2.6 Specification for wipe slice group map types ..................................................................................... 111
`8.2.2.7 Specification for explicit slice group map type................................................................................... 111
`8.2.2.8 Specification for conversion of map unit to slice group map to macroblock to slice group map ....... 111
`8.2.3
`Decoding process for slice data partitioning........................................................................................... 111
`8.2.4
`Decoding process for reference picture lists construction....................................................................... 112
`8.2.4.1 Decoding process for picture numbers................................................................................................ 112
`8.2.4.2
`Initialisation process for reference picture lists................................................................................... 113
`8.2.4.2.1
`Initialisation process for the reference picture list for P and SP slices in frames......................... 114
`8.2.4.2.2
`Initialisation process for the reference picture list for P and SP slices in fields........................... 114
`8.2.4.2.3
`Initialisation process for reference picture lists for B slices in frames......................................... 115
`8.2.4.2.4
`Initialisation process for reference picture lists for B slices in fields........................................... 115
`8.2.4.2.5
`Initialisation process for reference picture lists in fields.............................................................. 116
`8.2.4.3 Reordering process for reference picture lists..................................................................................... 116
`8.2.4.3.1 Reordering process of reference picture lists for short-term reference pictures........................... 117
`8.2.4.3.2 Reorde