Information technology - Coding of audio-visual objects - Part 10: Advanced Video Coding - Amendment 2: New profiles for professional applications

Technologies de l'information — Codage des objets audiovisuels — Partie 10: Codage visuel avancé — Amendement 2: Nouveaux profils pour applications professionnelles

General Information

Status
Withdrawn
Publication Date
25-Nov-2007
Withdrawal Date
25-Nov-2007
Current Stage
9599 - Withdrawal of International Standard
Start Date
15-Sep-2008
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 14496-10:2005/Amd 2:2007 - New profiles for professional applications
English language
72 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 14496-10:2005/Amd 2:2007 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Coding of audio-visual objects - Part 10: Advanced Video Coding - Amendment 2: New profiles for professional applications". This standard covers: Information technology - Coding of audio-visual objects - Part 10: Advanced Video Coding - Amendment 2: New profiles for professional applications

Information technology - Coding of audio-visual objects - Part 10: Advanced Video Coding - Amendment 2: New profiles for professional applications

ISO/IEC 14496-10:2005/Amd 2:2007 is classified under the following ICS (International Classification for Standards) categories: 35.040 - Information coding; 35.040.40 - Coding of audio, video, multimedia and hypermedia information. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 14496-10:2005/Amd 2:2007 has the following relationships with other standards: It is inter standard links to ISO/IEC 14496-10:2005, ISO/IEC 14496-10:2008; is excused to ISO/IEC 14496-10:2005. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 14496-10:2005/Amd 2:2007 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 14496-10
Third edition
2005-12-15
Corrected version
2006-03-01
AMENDMENT 2
2007-12-01
Information technology — Coding of
audio-visual objects
Part 10:
Advanced Video Coding
AMENDMENT 2: New profiles for
professional applications
Technologies de l'information — Codage des objets audiovisuels
Partie 10: Codage visuel avancé
AMENDEMENT 2: Nouveaux profils pour applications professionnelles

Reference number
ISO/IEC 14496-10:2005/Amd.2:2007(E)
©
ISO/IEC 2007
ISO/IEC 14496-10:2005/Amd.2:2007(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 2007
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 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
Amendment 2 to ISO/IEC 14496-10:2005 was prepared by Joint Technical Committee ISO/IEC JTC 1,
Information technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia
information.
Amendment 2 to ISO/IEC 14496-10:2005 is technically aligned with ITU-T Rec. H.264 (2005)/Amd.2 (2007),
but is not published as identical text.

© ISO/IEC 2007 – All rights reserved iii

ISO/IEC 14496-10:2005/Amd.2:2007(E)

Information technology — Coding of audio-visual objects
Part 10:
Advanced Video Coding
AMENDMENT 2: New profiles for professional applications
In subclause 0.4, replace the following:
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 1 refers to the first (2003) approved version of this
Recommendation | International Standard.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 2 refers to the integrated text containing the corrections specified in the
first technical corrigendum.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 3 refers to the integrated text containing both the first technical
corrigendum (2004) and the first amendment, which is referred to as the "Fidelity range extensions".
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 4 (the current specification) refers to the integrated text containing the
first technical corrigendum (2004), the first amendment (the "Fidelity range extensions"), and an additional technical
corrigendum (2005). In the ITU-T, the next published version after version 2 was version 4 (due to the completion of the
drafting work for version 4 prior to the approval opportunity for a final version 3 text).
with:
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 1 refers to the first (2003) approved version of this
Recommendation | International Standard. The first published version in ISO/IEC corresponded to version 1.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 2 refers to the integrated text containing the corrections specified in the
first technical corrigendum. The first fully-published version in the ITU-T was version 2, due to the development of the
corrigendum during the publication process. Version 2 was also published in integrated form by ISO/IEC.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 3 refers to the integrated text containing both the first technical
corrigendum (2004) and the first amendment, which is referred to as the "Fidelity range extensions".
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 4 refers to the integrated text containing the first technical corrigendum
(2004), the first amendment (the "Fidelity range extensions"), and an additional technical corrigendum (2005). In both
ITU-T and ISO/IEC, the next complete published version after version 2 was version 4.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 5 refers to the integrated version 4 text with its specification of the High
4:4:4 profile removed. In ISO/IEC, the changes from version 4 to version 5 were published as a corrigendum text.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 6 refers to the integrated version 5 text after its amendment to support
additional colour space indicators. In the ITU-T, the changes for versions 5 and 6 were approved and published as a
single amendment.
ITU-T Rec. H.264 | ISO/IEC 14496-10 version 7 refers to the integrated version 6 text after its amendment to define five
new 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).
© ISO/IEC 2007 – All rights reserved 1

ISO/IEC 14496-10:2005/Amd.2:2007(E)
In the second paragraph of subclause 0.6, replace the sentence:
With the exception of the transform bypass mode of operation for lossless coding in the I_PCM mode of operation in all
profiles, the algorithm is typically not lossless, as the exact source sample values are typically not preserved through the
encoding and decoding processes.
with:
With the exception of the transform bypass mode of operation for lossless coding in the High 4:4:4 Intra,
CAVLC 4:4:4 Intra, and High 4:4:4 Predictive profiles, and the I_PCM mode of operation in all profiles, the algorithm is
typically not lossless, as the exact source sample values are typically not preserved through the encoding and decoding
processes.
In the third paragraph of subclause 0.7, replace the sentence:
Annex A specifies six profiles (Baseline, Main, Extended, High, High 10 and High 4:2:2), each being tailored to certain
application domains, and defines the so-called levels of the profiles.
with:
Annex A specifies eleven profiles (Baseline, Main, Extended, 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), each being tailored to certain application
domains, and defines the so-called levels of the profiles.

Replace subclause 3.6 with the following:
3.6 arbitrary slice order: A decoding order of slices in which the macroblock address of the first macroblock of
some slice of a picture may be less than the macroblock address of the first macroblock of some other preceding
slice of the same coded picture or, in the case of a picture that is coded using three separate colour planes, some
other preceding slice of the same colour plane.

Replace subclause 3.75 with the following:
3.75 macroblock: A 16x16 block of luma samples and two corresponding blocks of chroma samples of a picture that
has three sample arrays; or a 16x16 block of samples of a monochrome picture or a picture that is coded using
three separate colour planes. The division of a slice or a macroblock pair into macroblocks is a partitioning.

Replace subclause 3.136 with the following:
3.136 slice: An integer number of macroblocks or macroblock pairs ordered consecutively in the raster scan within a
particular slice group. For the primary coded picture, the division of each slice group into slices is a
partitioning. Although a slice contains macroblocks or macroblock pairs that are consecutive in the raster scan
within a slice group, these macroblocks or macroblock pairs are not necessarily consecutive in the raster scan
within the picture. The addresses of the macroblocks are derived from the address of the first macroblock in a
slice (as represented in the slice header), the macroblock to slice group map, and, when a picture is coded using
three separate colour planes, a colour plane identifier.

2 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
In subclause 6.2 “Source, decoded, and output picture formats”, make the following changes.
Replace the following:
The variables SubWidthC, and SubHeightC are specified in Table 6-1, depending on the chroma format sampling
structure, which is specified through chroma_format_idc. An entry marked as "-" in Table 6-1 denotes an undefined
value for SubWidthC or SubHeightC. Other values of chroma_format_idc, SubWidthC, and SubHeightC may be
specified in the future by ITU-T | ISO/IEC.
Table 6-1 –SubWidthC, and SubHeightC values derived from chroma_format_idc

chroma_format_idc Chroma Format SubWidthC SubHeightC
0 monochrome - -
1 4:2:0 2 2
2 4:2:2 2 1
3 4:4:4 1 1
with:
The variables SubWidthC and SubHeightC are specified in Table 6-1, depending on the chroma format sampling
structure, which is specified through chroma_format_idc and separate_colour_plane_flag. An entry marked as "-" in
Table 6-1 denotes an undefined value for SubWidthC or SubHeightC. Other values of chroma_format_idc, SubWidthC,
and SubHeightC may be specified in the future by ITU-T | ISO/IEC.
Table 6-1 –SubWidthC, and SubHeightC values derived from chroma_format_idc and
separate_colour_plane_flag
chroma_format_idc separate_colour_plane_flagChroma Format SubWidthC SubHeightC
0 0 monochrome - -
1 0 4:2:0 2 2
2 0 4:2:2 2 1
3 0 4:4:4 1 1
3 1 4:4:4 - -
Replace the following paragraph:
In 4:4:4 sampling, each of the two chroma arrays has the same height and width as the luma array.
with:
In 4:4:4 sampling, depending on the value of separate_colour_plane_flag, the following applies.
– If separate_colour_plane_flag is equal to 0, each of the two chroma arrays has the same height and width as the
luma array.
© ISO/IEC 2007 – All rights reserved 3

ISO/IEC 14496-10:2005/Amd.2:2007(E)
– Otherwise (separate_colour_plane_flag is equal to 1), the three colour planes are separately processed as
monochrome sampled pictures.
Replace the following paragraph:
The number of bits necessary for the representation of each of the samples in the luma and chroma arrays in a video
sequence is in the range of 8 to 12, and the number of bits used in the luma array may differ from the number of bits used
in the chroma arrays.
with:
The number of bits necessary for the representation of each of the samples in the luma and chroma arrays in a video
sequence is in the range of 8 to 14, and the number of bits used in the luma array may differ from the number of bits used
in the chroma arrays.
Replace the following paragraph:
– If chroma_format_idc is equal to 0 (monochrome), MbWidthC and MbHeightC are both equal to 0 (as no chroma
arrays are specified for monochrome video).
with:
– If chroma_format_idc is equal to 0 (monochrome) or separate_colour_plane_flag is equal to 1, MbWidthC and
MbHeightC are both set equal to 0.

In subclause 6.3 “Spatial subdivision of pictures and slices”, make the following changes:
Replace the following:
Each macroblock is comprised of one 16x16 luma array and, when the video format is not monochrome, two
corresponding chroma sample arrays. When macroblock-adaptive frame/field decoding is not in use, each macroblock
represents a spatial rectangular region of the picture. For example, a picture may be divided into two slices as shown in
Figure 6-7.
with:
Each macroblock is comprised of one 16x16 luma array and, when the chroma sampling format is not equal to 4:0:0 and
separate_colour_plane_flag is equal to 0, two corresponding chroma sample arrays. When separate_colour_plane_flag is
equal to 1, each macroblock is comprised of one 16x16 luma or chroma sample array. When macroblock-adaptive
frame/field decoding is not in use, each macroblock represents a spatial rectangular region of the picture. For example, a
picture may be divided into two slices as shown in Figure 6-7.
When a picture is coded using three separate colour planes (separate_colour_plane_flag is equal to 1), a slice contains
only macroblocks of one colour component being identified by the corresponding value of colour_plane_id, and each
colour component array of a picture consists of slices having the same colour_plane_id value. Coded slices with
different values of colour_plane_id within an access unit can be interleaved with each other under the constraint that for
each value of colour_plane_id, the coded slice NAL units with that value colour_plane_id shall be in the order of
increasing macroblock address for the first macroblock of each coded slice NAL unit.

4 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
Insert a new subclause 6.4.3.1 as follows:
6.4.3.1 Inverse 4x4 Cb or Cr block scanning process for ChromaArrayType equal to 3
This process is only invoked when ChromaArrayType is equal to 3.
The inverse 4x4 chroma block scanning process is identical to inverse 4x4 luma block scanning process as specified in
subclause 6.4.3 when substituting the term “luma” with the term “Cb” or the term “Cr”, and substituting the term
“luma4x4BlkIdx” with the term “cb4x4BlkIdx” or the term “cr4x4BlkIdx” in all places in subclause 6.4.3.
Insert a new subclause 6.4.4.1 as follows:
6.4.4.1 Inverse 8x8 Cb or Cr block scanning process for ChromaArrayType equal to 3
This process is only invoked when ChromaArrayType is equal to 3.
The inverse 8x8 chroma block scanning process is identical to inverse 8x8 luma block scanning process as specified in
subclause 6.4.4 when substituting the term “luma” with the term “Cb” or the term “Cr”, and substituting the term
“luma8x8BlkIdx” with the term “cb8x8BlkIdx” or the term “cr8x8BlkIdx” in all places in subclause 6.4.4.
In subclause 6.4.8 "Derivation processes for neighbouring macroblocks, blocks, and partitions”, make the following
changes.
Insert the following sentence after the paragraph starting with “Subclause 6.4.8.2 specifies”:
Subclause 6.4.8.2.1 specifies the derivation process for neighbouring 8x8 chroma blocks for ChromaArrayType equal
to 3.
Insert the following sentence after the paragraph starting with “Subclause 6.4.8.4 specifies”.
Subclause 6.4.8.4.1 specifies the derivation process for neighbouring 4x4 chroma blocks for ChromaArrayType equal
to 3.
Replace the paragraph starting with “Table 6-2 specifies” with the following:
Table 6-2 specifies the values for the difference of luma location ( xD, yD ) for the input and the replacement for N in
mbAddrN, mbPartIdxN, subMbPartIdxN, luma8x8BlkIdxN, cb8x8BlkIdxN, cr8x8BlkIdxN, luma4x4BlkIdxN,
cb4x4BlkIdxN, cr4x4BlkIdxN, and chroma4x4BlkIdxN for the output. These input and output assignments are used in
subclauses 6.4.8.1 to 6.4.8.5. The variable predPartWidth is specified when Table 6-2 is referred to.
Insert a new subclause 6.4.8.2.1 as follows:
6.4.8.2.1 Derivation process for neighbouring 8x8 chroma blocks for ChromaArrayType equal to 3
This process is only invoked when ChromaArrayType is equal to 3.
The derivation process for neighbouring 8x8 chroma block is identical to the derivation process for neighbouring 8x8
luma block as specified in subclause 6.4.8.2 when substituting the term “luma” with the term “Cb” or the term “Cr”, and
substituting the term “luma8x8BlkIdx” with the term “cb8x8BlkIdx” or the term “cr8x8BlkIdx” in all places in subclause
6.4.8.2.
© ISO/IEC 2007 – All rights reserved 5

ISO/IEC 14496-10:2005/Amd.2:2007(E)
In subclause 6.4.8.4 “Derivation process for neighbouring 4x4 chroma blocks”, make the following changes.
Replace the paragraph starting with “Depending on chroma_format_idc” with the following:
The position ( x, y ) of the upper-left sample of the 4x4 chroma block with index chroma4x4BlkIdx is derived by
x = InverseRasterScan( chroma4x4BlkIdx, 4, 4, 8, 0 ) (6-25)
y = InverseRasterScan( chroma4x4BlkIdx, 4, 4, 8, 1 ) (6-26)
Update all equation numbers in the subsequent subclauses due to the removal of equation 6-27 and 6-28.
Insert a new subclause 6.4.8.4.1 as follows:
6.4.8.4.1 Derivation process for neighbouring 4x4 chroma blocks for ChromaArrayType equal to 3
This process is only invoked when ChromaArrayType is equal to 3.
The derivation process for neighbouring 4x4 chroma block in 4:4:4 chroma format is identical to the derivation process
for neighbouring 4x4 luma block as specified in subclause 6.4.8.3 when substituting the term “luma” with the term “Cb”
or the term “Cr”, and substituting the term “luma4x4BlkIdx” with the term “cb4x4BlkIdx” or the term “cr4x4BlkIdx” in
all places in subclause 6.4.8.3.

In subclause 7.3.2.1 “Sequence parameter set RBSP syntax”, make the following changes.
Replace the syntax element “residual_colour_transform_flag” with the syntax element “separate_colour_plane_flag”.
Replace the expression “profile_idc = = 144” with “profile_idc = = 44 | | profile_idc = = 244”.
Replace the expression “i < 8” with “i < ( ( chroma_format_idc ! = 3 ) ? 8 : 12 )”.

In subclause 7.3.2.2 “Picture parameter set RBSP syntax”, replace the expression “i < 6 + 2*
transform_8x8_mode_flag” with “i < 6 + ( (chroma_format_idc ! = 3 ) ? 2 : 6 ) * transform_8x8_mode_flag”.

Replace the slice data partition B RBSP syntax table of subclause 7.3.2.9.2 “Slice data partition B RBSP syntax” with
the following:
slice_data_partition_b_layer_rbsp( ) { C Descriptor
slice_id All ue(v)
if( separate_colour_plane_flag = = 1 )
colour_plane_id All u(2)
if( redundant_pic_cnt_present_flag )
redundant_pic_cnt All ue(v)
slice_data( ) /* only category 3 parts of slice_data( ) syntax */ 3
rbsp_slice_trailing_bits( ) 3
}
6 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
Replace the slice data partition C RBSP syntax table of subclause 7.3.2.9.3 “Slice data partition C RBSP syntax” with
the following:
slice_data_partition_c_layer_rbsp( ) {
C Descriptor
All ue(v)
slice_id
if( separate_colour_plane_flag = = 1 )
All u(2)
colour_plane_id
if( redundant_pic_cnt_present_flag )
All ue(v)
redundant_pic_cnt
slice_data( ) /* only category 4 parts of slice_data( ) syntax */ 4
rbsp_slice_trailing_bits( ) 4
}
Replace the slice header syntax table of subclause 7.3.3 “Slice header syntax” with the following:
slice_header( ) { C Descriptor
first_mb_in_slice 2 ue(v)
slice_type 2 ue(v)
pic_parameter_set_id 2 ue(v)
if( separate_colour_plane_flag = = 1 )
colour_plane_id 2 u(2)
frame_num 2 u(v)
if( !frame_mbs_only_flag ) {
field_pic_flag 2 u(1)
if( field_pic_flag )
bottom_field_flag 2 u(1)
}
if( nal_unit_type = = 5 )
idr_pic_id 2 ue(v)
if( pic_order_cnt_type = = 0 ) {
pic_order_cnt_lsb 2 u(v)
if( pic_order_present_flag && !field_pic_flag )
delta_pic_order_cnt_bottom 2 se(v)
}
if( pic_order_cnt_type = = 1 && !delta_pic_order_always_zero_flag ) {
delta_pic_order_cnt[ 0 ] 2 se(v)
if( pic_order_present_flag && !field_pic_flag )
delta_pic_order_cnt[ 1 ] 2 se(v)
}
if( redundant_pic_cnt_present_flag )
redundant_pic_cnt 2 ue(v)
if( slice_type = = B )
direct_spatial_mv_pred_flag 2 u(1)
if( slice_type = = P | | slice_type = = SP | | slice_type = = B ) {
num_ref_idx_active_override_flag 2 u(1)
if( num_ref_idx_active_override_flag ) {
© ISO/IEC 2007 – All rights reserved 7

ISO/IEC 14496-10:2005/Amd.2:2007(E)
2 ue(v)
num_ref_idx_l0_active_minus1
if( slice_type = = B )
2 ue(v)
num_ref_idx_l1_active_minus1
}
}
ref_pic_list_reordering( ) 2
if( ( weighted_pred_flag &&
( slice_type = = P | | slice_type = = SP ) ) | |
( weighted_bipred_idc = = 1 && slice_type = = B ) )
pred_weight_table( ) 2
if( nal_ref_idc != 0 )
dec_ref_pic_marking( ) 2
if( entropy_coding_mode_flag && slice_type != I &&
slice_type != SI )
cabac_init_idc 2 ue(v)
slice_qp_delta 2 se(v)
if( slice_type = = SP | | slice_type = = SI ) {
if( slice_type = = SP )
sp_for_switch_flag 2 u(1)
slice_qs_delta 2 se(v)
}
if( deblocking_filter_control_present_flag ) {
disable_deblocking_filter_idc 2 ue(v)
if( disable_deblocking_filter_idc != 1 ) {
slice_alpha_c0_offset_div2 2 se(v)
slice_beta_offset_div2 2 se(v)
}
}
if( num_slice_groups_minus1 > 0 &&
slice_group_map_type >= 3 && slice_group_map_type <= 5)
slice_group_change_cycle 2 u(v)
}
In the syntax table of subclause 7.3.3.2 “Prediction weight table syntax”, replace the syntax expression:
chroma_format_idc != 0
with:
ChromaArrayType != 0
(in all 3 occurrences)
8 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
In the syntax table of subclause 7.3.5.1 “Macroblock prediction syntax”, replace the syntax expression
chroma_format_idc != 0
with:
ChromaArrayType = = 1 | | ChromaArrayType = = 2
(in one occurrence)
Replace the content of subclause 7.3.5.3 “Residual data syntax” with the following:
residual( ) { C Descriptor
if( !entropy_coding_mode_flag )
residual_block = residual_block_cavlc
else
residual_block = residual_block_cabac
residual_luma( i16x16DClevel, i16x16AClevel, level, level8x8 )
Intra16x16DCLevel = i16x16DClevel
Intra16x16ACLevel = i16x16AClevel
LumaLevel = level
LumaLevel8x8 = level8x8
if( ChromaArrayType = = 1 | | ChromaArrayType = = 2 ) {
NumC8x8 = 4 / ( SubWidthC * SubHeightC )
for( iCbCr = 0; iCbCr < 2; iCbCr++ )
if( CodedBlockPatternChroma & 3 )
/* chroma DC residual present*/
residual_block( ChromaDCLevel[ iCbCr ], 4 * NumC8x8 ) 3 | 4
else
for( i = 0; i < 4 * NumC8x8; i++ )
ChromaDCLevel[ iCbCr ][ i ] = 0
for( iCbCr = 0; iCbCr < 2; iCbCr++ )
for( i8x8 = 0; i8x8 < NumC8x8; i8x8++ )
for( i4x4 = 0; i4x4 < 4; i4x4++ )
if( CodedBlockPatternChroma & 2 )
/* chroma AC residual present */
residual_block( ChromaACLevel[ iCbCr ][ i8x8*4+i4x4 ],15 ) 3 | 4
else
for( i = 0; i < 15; i++ )
ChromaACLevel[ iCbCr ][ i8x8*4+i4x4 ][ i ] = 0
} else if( ChromaArrayType = = 3 ) {
residual_luma( i16x16DClevel, i16x16AClevel, level, level8x8 )
CbIntra16x16DCLevel = i16x16DClevel
CbIntra16x16ACLevel = i16x16AClevel
CbLevel = level
CbLevel8x8 = level8x8
residual_luma( i16x16DClevel, i16x16AClevel, level, level8x8 )
CrIntra16x16DCLevel = i16x16DClevel
© ISO/IEC 2007 – All rights reserved 9

ISO/IEC 14496-10:2005/Amd.2:2007(E)
CrIntra16x16ACLevel = i16x16AClevel
CrLevel = level
CrLevel8x8 = level8x8
}
}
Replace the content of subclause 7.3.5.3.2 “Residual block CABAC syntax” with the following:
residual_block_cabac( coeffLevel, maxNumCoeff ) { C Descriptor
if( maxNumCoeff != 64 | | (ChromaArrayType = = 3) )
coded_block_flag 3 | 4 ae(v)
if( coded_block_flag ) {
numCoeff = maxNumCoeff
i = 0
do {
significant_coeff_flag[ i ] 3 | 4 ae(v)
if( significant_coeff_flag[ i ] ) {
last_significant_coeff_flag[ i ] 3 | 4 ae(v)
if( last_significant_coeff_flag[ i ] ) {
numCoeff = i + 1
for( j = numCoeff; j < maxNumCoeff; j++ )
coeffLevel[ j ] = 0
}
}
i++
} while( i < numCoeff - 1 )
coeff_abs_level_minus1[ numCoeff - 1 ] 3 | 4 ae(v)
coeff_sign_flag[ numCoeff - 1 ] 3 | 4 ae(v)
coeffLevel[ numCoeff - 1 ] =
( coeff_abs_level_minus1[ numCoeff – 1 ] + 1 ) *
( 1 – 2 * coeff_sign_flag[ numCoeff – 1 ] )
for( i = numCoeff - 2; i >= 0; i-- )
if( significant_coeff_flag[ i ] ) {
coeff_abs_level_minus1[ i ] 3 | 4 ae(v)
coeff_sign_flag[ i ] 3 | 4 ae(v)
coeffLevel[ i ] = ( coeff_abs_level_minus1[ i ] + 1 ) *
( 1 – 2 * coeff_sign_flag[ i ] )
} else
coeffLevel[ i ] = 0
} else
for( i = 0; i < maxNumCoeff; i++ )
coeffLevel[ i ] = 0
}
10 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
Insert a new subclause 7.3.5.3.3 as follows:
7.3.5.3.3 Residual luma data syntax
residual_luma( i16x16DClevel, i16x16AClevel, level, level8x8 ) { C Descriptor
if( !entropy_coding_mode_flag )
residual_block = residual_block_cavlc
else
residual_block = residual_block_cabac
if( MbPartPredMode( mb_type, 0 ) = = Intra_16x16 )
residual_block( i16x16DClevel, 16 ) 3
for( i8x8 = 0; i8x8 < 4; i8x8++ )
if( !transform_size_8x8_flag | | !entropy_coding_mode_flag )
for( i4x4 = 0; i4x4 < 4; i4x4++ ) {
if( CodedBlockPatternLuma & ( 1 << i8x8 ) )
if( MbPartPredMode( mb_type, 0 ) = = Intra_16x16 )
residual_block( i16x16AClevel[i8x8*4+ i4x4], 15) 3
else
residual_block( level[ i8x8 * 4 + i4x4 ], 16) 3 | 4
else if( MbPartPredMode( mb_type, 0 ) = = Intra_16x16 )
for( i = 0; i < 15; i++ )
i16x16AClevel[ i8x8 * 4 + i4x4 ][ i ] = 0
else
for( i = 0; i < 16; i++ )
level[ i8x8 * 4 + i4x4 ][ i ] = 0
if( !entropy_coding_mode_flag && transform_size_8x8_flag )
for( i = 0; i < 16; i++ )
level8x8[ i8x8 ][ 4 * i + i4x4 ] = level[ i8x8 * 4 + i4x4 ][ i ]
}
else if( CodedBlockPatternLuma & ( 1 << i8x8 ) )
residual_block( level8x8[ i8x8 ], 64 ) 3 | 4
else
for( i = 0; i < 64; i++ )
level8x8[ i8x8 ][ i ] = 0
}
In subclause 7.4.1.2.5 “Order of VCL NAL units and association to coded pictures”, replace the following paragraph:
- Otherwise (arbitrary slice order is not allowed), the order of coded slice of an IDR picture NAL units shall be in the
order of increasing macroblock address for the first macroblock of each coded slice of an IDR picture NAL unit.

with:
- Otherwise (arbitrary slice order is not allowed), the following applies.
– If separate_colour_plane_flag is equal to 0, the order of coded slices of IDR picture NAL units shall be in
the order of increasing macroblock address for the first macroblock of each coded slice of an IDR picture
NAL unit.
© ISO/IEC 2007 – All rights reserved 11

ISO/IEC 14496-10:2005/Amd.2:2007(E)
– Otherwise (separate_colour_plane_flag is equal to 1), the order of coded slices of IDR picture NAL units
for each value of colour_plane_id shall be in the order of increasing macroblock address for the first
macroblock of each coded slice of the particular value of colour_plane_id of an IDR picture NAL unit.
NOTE – When separate_colour_plane_flag is equal to 1, the relative ordering of coded slices having different values
of colour_plane_id is not constrained.

In subclause 7.4.2.1 “Sequence parameter set RBSP semantics”, make the following changes.
Replace the paragraphs that state as follows:
NOTE – When more than one of constraint_set0_flag, constraint_set1_flag, or constraint_set2_flag are equal to 1, the bitstream
obeys the constraints of all of the indicated subclauses of subclause A.2.

constraint_set3_flag indicates the following.
– If profile_idc is equal to 66, 77, or 88 and level_idc is equal to 11, constraint_set3_flag equal to 1 indicates that
the bitstream obeys all constraints specified in Annex A for level 1b and constraint_set3_flag equal to 0
indicates that the bitstream may or may not obey all constraints specified in Annex A for level 1b.
– Otherwise (profile_idc is equal to 100, 110, 122, or 144 or level_idc is not equal to 11), the value of 1 for
constraint_set3_flag is reserved for future use by ITU-T | ISO/IEC. constraint_set3_flag shall be equal to 0 in
bitstreams conforming to this Recommendation | International Standard when profile_idc is equal
to 100, 110, 122, or 144 or level_idc is not equal to 11. Decoders conforming to this Recommendation |
International Standard shall ignore the value of constraint_set3_flag when profile_idc is equal
to 100, 110, 122, or 144 or level_idc is not equal to 11.

with:
NOTE – When one or more than one of constraint_set0_flag, constraint_set1_flag, or constraint_set2_flag are equal to 1, the
bitstream must obey the constraints of all of the indicated subclauses of subclause A.2. When profile_idc is equal to 44, 100, 110,
122, or 244, the values of constraint_set0_flag, constraint_set1_flag, and constraint_set2_flag must all be equal to 0.

constraint_set3_flag indicates the following.
– If profile_idc is equal to 66, 77, or 88 and level_idc is equal to 11, constraint_set3_flag equal to 1 indicates that
the bitstream obeys all constraints specified in Annex A for level 1b and constraint_set3_flag equal to 0
indicates that the bitstream may or may not obey all constraints specified in Annex A for level 1b.
– Otherwise, if profile_idc is equal to 100 or 110, constraint_set3_flag equal to 1 indicates that the bitstream
obeys all constraints specified in Annex A for the High 10 Intra profile, and constraint_set3_flag equal to 0
indicates that the bitstream may or may not obey these corresponding constraints.
– Otherwise, if profile_idc is equal to 122, constraint_set3_flag equal to 1 indicates that the bitstream obeys all
constraints specified in Annex A for the High 4:2:2 Intra profile, and constraint_set3_flag equal to 0 indicates
that the bitstream may or may not obey these corresponding constraints.
– Otherwise, if profile_idc is equal to 44, constraint_set3_flag shall be equal to 1. When profile_idc is equal to 44,
the value of 0 for constraint_set3_flag is forbidden.
– Otherwise, if profile_idc is equal to 244, constraint_set3_flag equal to 1 indicates that the bitstream obeys all
constraints specified in Annex A for the High 4:4:4 Intra profile, and constraint_set3_flag equal to 0 indicates
that the bitstream may or may not obey these corresponding constraints.
– Otherwise (profile_idc is equal to 66, 77, 88 and level_idc is not equal to 11), the value of 1 for
constraint_set3_flag is reserved for future use by ITU-T | ISO/IEC. constraint_set3_flag shall be equal to 0 in
bitstreams conforming to this Recommendation | International Standard when profile_idc is equal
12 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
to 66, 77, or 88 and level_idc is not equal to 11. Decoders conforming to this Recommendation | International
Standard shall ignore the value of constraint_set3_flag when profile_idc is equal to 66, 77, or 88 and level_idc is
not equal to 11.
Delete the paragraph starting with “residual_colour_transform_flag”.
Add the following paragraph before the paragraph starting with “bit_depth_luma_minus8”.
separate_colour_plane_flag equal to 1 specifies that the three colour components of the 4:4:4 chroma format are coded
separately. separate_colour_plane_flag equal to 0 specifies that the three colour components of the 4:4:4 chroma format
are not coded separately. When separate_colour_plane_flag is not present, it shall be inferred to be equal to 0. When
separate_colour_plane_flag is equal to 1, the primary coded picture consists of three separate components, each of which
consists of coded samples of one colour plane (Y or Cb or Cr) that conforms to the monochrome coding syntax. In this
case, each picture is associated with a specific colour_plane_id value.
NOTE – There is no dependency in decoding processes between the colour planes having different colour_plane_id values. For
example, the decoding process of a monochrome picture with one value of colour_plane_id does not use any date from
monochrome pictures having different values of colour_plane_id for inter prediction.

Depending on the value of separate_colour_plane_flag, assign the value of the variable ChromaArrayType as follows.
– If separate_colour_plane_flag is equal to 0, ChromaArrayType is set equal to chroma_format_idc.
– Otherwise (separate_colour_plane_flag is equal to 1), ChromaArrayType is set equal to 0.

Replace the paragraph starting with “bit_depth_luma_minus8” with the following:
bit_depth_luma_minus8 specifies the bit depth of the samples of the luma array and the value of the luma quantisation
parameter range offset QpBdOffset , as specified by
Y
BitDepth = 8 + bit_depth_luma_minus8 (7-1)
Y
QpBdOffset = 6 * bit_depth_luma_minus8 (7-2)
Y
When bit_depth_luma_minus8 is not present, it shall be inferred to be equal to 0. bit_depth_luma_minus8 shall be in the
range of 0 to 6, inclusive.
Replace the paragraph starting with “bit_depth_chroma_minus8” with the following.
bit_depth_chroma_minus8 specifies the bit depth of the samples of the chroma arrays and the value of the chroma
quantisation parameter range offset QpBdOffset , as specified by
C
BitDepth = 8 + bit_depth_chroma_minus8 (7-3)
C
QpBdOffset = 6 * bit_depth_chroma_minus8 (7-4)
C
When bit_depth_chroma_minus8 is not present, it shall be inferred to be equal to 0. bit_depth_chroma_minus8 shall be
in the range of 0 to 6, inclusive.
NOTE – The value of bit_depth_chroma_minus8 is not used in the decoding process when ChromaArrayType is equal to 0. In
particular, when separate_colour_plane_flag is equal to 1, each colour plane is decoded as a distinct monochrome picture using the
luma component decoding process (except for the selection of scaling matrices) and the luma bit depth is used for all three colour
components.
© ISO/IEC 2007 – All rights reserved 13

ISO/IEC 14496-10:2005/Amd.2:2007(E)
Replace the paragraph starting with “seq_scaling_matrix_present_flag equal to 1” with the following:
seq_scaling_matrix_present_flag equal to 1 specifies that the flags seq_scaling_list_present_flag[ i ] for i = 0.11 are
present. seq_scaling_matrix_present_flag equal to 0 specifies that these flags are not present and the sequence-level
scaling list specified by Flat_4x4_16 shall be inferred for i = 0.5 and the sequence-level scaling list specified by
Flat_8x8_16 shall be inferred for i = 6.11. When seq_scaling_matrix_present_flag is not present, it shall be inferred to
be equal to 0.
Replace Table 7–2 with the following:
Table 7-2 – Assignment of mnemonic names to scaling list indices and specification of fall-back rule
Value of Mnemonic name Block MB Component Scaling list Scaling list Default
size scaling list
scaling list prediction fall-back rule fall-back rule
index type set A set B
0 Sl_4x4_Intra_Y 4x4 Intra Y default sequence-level Default_4x4_Intra
scaling list scaling list
1 Sl_4x4_Intra_Cb 4x4 Intra Cb scaling list scaling list Default_4x4_Intra
for i = 0 for i = 0
2 Sl_4x4_Intra_Cr 4x4 Intra Cr scaling list scaling list Default_4x4_Intra
for i = 1 for i = 1
3 Sl_4x4_Inter_Y 4x4 Inter Y default sequence-level Default_4x4_Inter
scaling list scaling list
4 Sl_4x4_Inter_Cb 4x4 Inter Cb scaling list scaling list Default_4x4_Inter
for i = 3 for i = 3
5 Sl_4x4_Inter_Cr 4x4 Inter Cr scaling list scaling list Default_4x4_Inter
for i = 4 for i = 4
6 Sl_8x8_Intra_Y 8x8 Intra Y default sequence-level Default_8x8_Intra
scaling list scaling list
7 Sl_8x8_Inter_Y 8x8 Inter Y default sequence-level Default_8x8_Inter
scaling list scaling list
8 Sl_8x8_Intra_Cb 8x8 Intra Cb scaling list scaling list Default_8x8_Intra
for i = 6 for i = 6
9 Sl_8x8_Inter_Cb 8x8 Inter Cb scaling list scaling list Default_8x8_Inter
for i = 7 for i = 7
10 Sl_8x8_Intra_Cr 8x8 Intra Cr scaling list scaling list Default_8x8_Intra
for i = 8 for i = 8
11 Sl_8x8_Inter_Cr 8x8 Inter Cr scaling list scaling list Default_8x8_Inter
for i = 9 for i = 9
Replace the paragraph starting with “frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset,
frame_crop_bottom_offset” with the following.
frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset, frame_crop_bottom_offset specify the
samples of the pictures in the coded video sequence that are output from the decoding process, in terms of a rectangular
region specified in frame coordinates for output.
14 © ISO/IEC 2007 – All rights reserved

ISO/IEC 14496-10:2005/Amd.2:2007(E)
The variables CropUnitX and CropUnitY are derived as follows:
– If ChromaArrayType is equal to 0, CropUnitX and CropUnitY are derived as
CropUnitX = 1 ( 7-16)
CropUnitY = 2 – frame_mbs_only_flag ( 7-17)
– Otherwise (ChromaArrayType is equal to 1, 2, or 3), CropUnitX and CropUnitY are derived as
CropUnitX = SubWidthC ( 7-18)
CropUnitY = SubHeightC * ( 2 – frame_mbs_only_flag ) ( 7-19)
The frame cropping rectangle contains luma samples with horizontal frame coordinates from
CropUnitX * frame_crop_left_offset to PicWidthInSamples – ( CropUnitX * frame_crop_right_offset + 1 ) and vertical
L
frame coordinates from CropUnitY * frame_crop_top_offset to ( 16 * FrameHeightInMbs ) –
( CropUnitY * frame_crop_bottom_offset + 1 ), inclusive. The value of frame_crop_left_offset shall be in the range of 0
to ( PicWidthInSamples / CropUnitX ) – ( frame_crop_right_offset + 1 ), inclusive; and the value of
L
frame_crop_top_offset shall be in the range of 0 to ( 16 * FrameHeightInMbs / CropUnitY ) –
( frame_crop_bottom_offset + 1 ), inclusive.
When frame_cropping_flag is equal to 0, the values of frame_crop_left_offset, frame_crop_right_offset,
frame_crop_top_offset, and frame_crop_bottom_offset shall be inferred to be equal to 0.
When ChromaArrayType is not equal to 0, the corresponding specified samples of the two chroma arrays are the samples
having frame coordinates ( x / SubWidthC, y / SubHeightC ), where ( x, y ) are the frame coordinates of the specified
luma samples.
For decoded fields, the specified samples of the decoded field are the samples that fall within the rectangle specified in
frame coordinates.
In subclause 7.4.2.1.2 “Sequence parameter set extension RBSP semantics”, replace the text:
The value of chroma_format_idc
with:
The value of chroma_format_idc and the value of ChromaArrayType
(in one occurrence)
Add the following note at the end of subclause 7.4.2.2 “Picture parameter set RBSP semantics”:
NOTE – The values of bit_depth_chroma_minus8, chroma_qp_index_offset and second_chroma_qp_index_offset are not used in
the decoding process when ChromaArrayType is equal to 0. In particular, when separate_colour_plane_flag is equal to 1, each
colour plane is decoded as a distinct monochrome picture using the luma component decoding process (except for the selection of
scaling matrices), including the application of the luma quantisation parameter derivation process without application of an offset
for the decoding of the pictures having colour_plane_id not equal to 0.

In subclause 7.4.2.9.1 “Slice data partition A RBSP semantics”, replace the paragraph that states as follows:
slice_id identifies the slice associated with the data partition. Each slice shall have a unique slice_id value within the
coded picture that contains the slice. When arbitrary slice order is not allowed as specified in Annex A, the first slice of a
© ISO/IEC 2007 – All rights reserved 15

ISO/IEC 14496-10:2005/Amd.2:2007(E)
coded picture, in decoding order, shall have slice_id equal to 0 and the value of slice_id shall be incremented by one for
each subsequent slice of the coded picture in decoding order.
with:
slice_id identifies the slice associated with the data partition. The value of slice_id is constrained as follows.
– If separate_colour_plane_flag is equal to 0, the following applies.
– If arbitrary slice order is not allowed as specified in Annex A, the first slice of a coded picture, in decoding
order, shall have slice_id equal to 0 and the value of slice_id shall be incremented by one for each subsequent
slice of the coded picture in decoding order.
– Otherwise (arbitrary slice order is allowed), each slice shall have a unique slice_id value within the set of
slices of the coded picture.
– Otherwise (separate_colour_plane_flag is equal to 1), the following applies.
– If arbitrary slice order is not allowed as specified in Annex A, the first slice of a coded picture having each
value of colour_plane_id, in decoding order, shall have slice_id equal to 0 and the value of slice_id shall be
incremented by one for each subsequent slice of the coded picture having the same value of colour_plane_id,
in decoding order.
– Otherwise (arbitrary slice order is allowed) each slice shall have a unique slice_id value within each set of
slices of the coded picture that have the same value of colour_plane_id.

In subclause 7.4.2.9.2 “Slice data partition B RBSP semantics”, insert the following after the paragraph starting with
“slice_id”.
colour_plane_id specifies the colour plane associated with the current slice RBSP when separate_colour_plane_flag is
equal to 1. The value of colour_plane_id shall be in the range of 0 to 2, inclusive. colour_plane_id equal to 0, 1, and 2
correspond to the Y, Cb, and Cr planes, respectively.
NOTE – There is no dependency between the decoding processes of pictures having different values of colour_plane_id.

In subclause 7.4.2.9.3 “Slice data partition C RBSP semantics”, insert the following after the paragraph starting with
“slice_id”:
colour_plane_id has the same semantics as specified in subclause 7.4.2.9.2.

In subclause 7.4.3 “Slice header semantics”, make the following changes.
Replace the following paragraph:
first_mb_in_slice specifies the address of the first macroblock in the slice. When arbitrary slice order is not allowed as
specified in Annex A, the value of first_mb_in_slice shall not be less than the value of first_mb_in_slice for any other
slice of the current picture that precedes the current slice in decoding order.
with:
first_mb_in_slice specifies the address of the first macroblock in the slice. When arbitrary slice order is not allowed as
specified in Annex A, the
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...