Information technology - Coding of audio-visual objects - Part 2: Visual - Technical Corrigendum 1

Technologies de l'information — Codage des objets audiovisuels — Partie 2: Codage visuel — Rectificatif technique 1

General Information

Status
Withdrawn
Publication Date
23-Aug-2000
Withdrawal Date
23-Aug-2000
Current Stage
9599 - Withdrawal of International Standard
Start Date
06-Dec-2001
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 14496-2:1999/Cor 1:2000
English language
59 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 14496-2:1999/Cor 1:2000 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Coding of audio-visual objects - Part 2: Visual - Technical Corrigendum 1". This standard covers: Information technology - Coding of audio-visual objects - Part 2: Visual - Technical Corrigendum 1

Information technology - Coding of audio-visual objects - Part 2: Visual - Technical Corrigendum 1

ISO/IEC 14496-2:1999/Cor 1:2000 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-2:1999/Cor 1:2000 has the following relationships with other standards: It is inter standard links to ISO/IEC 14496-2:1999, ISO/IEC 14496-2:2001; is excused to ISO/IEC 14496-2:1999. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 14496-2:1999/Cor 1:2000 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 STANDARD ISO/IEC 14496-2:1999
TECHNICAL CORRIGENDUM 1
Published 2000-08-15
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION � МЕЖДУНАРОДНАЯОРГАНИЗАЦИЯПОСТАНДАРТИЗАЦИИ � ORGANISATION INTERNATIONALE DE NORMALISATION
INTERNATIONAL ELECTROTECHNICAL COMMISSION � МЕЖДУНАРОДНАЯ ЭЛЕКТРОТЕХНИЧЕСКАЯ КОМИССИЯ � COMMISSION ÉLECTROTECHNIQUE INTERNATIONALE
Information technology — Coding of audio-visual objects —
Part 2:
Visual
TECHNICAL CORRIGENDUM 1
Technologies de l'information — Codage des objets audiovisuels —
Partie 2: Codage visuel
RECTIFICATIF TECHNIQUE 1
Technical Corrigendum 1 to International Standard ISO/IEC 14496-2:1999 was prepared by Joint Technical
Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 29, Coding of audio, picture, multimedia and
hypermedia information.
ICS 35.040 Ref. No. ISO/IEC 14496-2:1999/Cor.1:2000(E)
© ISO/IEC 2000 – All rights reserved
Printed in Switzerland
ISO/IEC 14496-2:1999/Cor.1:2000(E)
Throughout the whole document, replace “quantization” with “quantisation”.
On Page xiii, Overview of the object based nonscalable syntax, replace the following paragraph:
"
The coded representation defined in the non-scalable syntax achieves a high compression ratio while preserving good image
quality. Further, when access to individual objects is desired, the shape of objects also needs to be coded, and depending on
the bandwidth available, the shape information can be coded lossy or losslessly.
"
with
"
The coded representation defined in the non-scalable syntax achieves a high compression ratio while preserving good image
quality. Further, when access to individual objects is desired, the shape of objects also needs to be coded, and depending on
the bandwidth available, the shape information can be coded in a lossy or lossless fashion.
"
In Subclause 5.1, Method of describing bitstream syntax, replace the following table:
"
while ( condition ) { If the condition is true, then the group of data elements
data_element occurs next in the data stream. This repeats until the
... condition is not true.
}
do {
data_element The data element always occurs at least once.
...
} while ( condition ) The data element is repeated until the condition is not true.
if ( condition ) { If the condition is true, then the first group of data
data_element elements occurs next in the data stream.
...
} else { If the condition is not true, then the second group of data
data_element elements occurs next in the data stream.
...
}
for ( i = m; i < n; i++) { The group of data elements occurs (n-m) times. Conditional
data_element constructs within the group of data elements may depend
... on the value of the loop control variable i, which is set to
} m for the first occurrence, incremented by one for
the second occurrence, and so forth.
/* comment . */ Explanatory comment that may be deleted entirely without
in any way altering the syntax.
"
with
"
while ( condition ) { If the condition is true, then the group of data elements
data_element occurs next in the data stream. This repeats until the
... condition is not true.
}
do {
data_element The data element always occurs at least once.
...
} while ( condition ) The data element is repeated until the condition is not true.
do {
...
continue The continue continues execution of the next repetition of the
nearest while-do loop.
...
© ISO/IEC 2000 – All rights reserved 1

ISO/IEC 14496-2:1999/Cor.1:2000(E)
} while ( condition )
if ( condition ) { If the condition is true, then the first group of data
data_element elements occurs next in the data stream.
...
} else { If the condition is not true, then the second group of data
data_element elements occurs next in the data stream.
...
}
for ( i = m; i < n; i++) { The group of data elements occurs (n-m) times. Conditional
data_element constructs within the group of data elements may depend
... on the value of the loop control variable i, which is set to
} m for the first occurrence, incremented by one for
the second occurrence, and so forth.
/* comment . */ Explanatory comment that may be deleted entirely without
in any way altering the syntax.
"
In Subclause 5.2.4, Definition of next_start_code() function, delete the following paragraph:
"
This function checks whether the current position is byte aligned. If it is not, a zero stuffing bit followed by a number of one
stuffing bits may be present before the start code.
"
In Clause 3, Definitions, add the following definitions with the appropriate numbering in alphabetical order:
"
3.xxx mesh object planes, MOP: The instance of mesh objects at a given time.
3.xxx video object planes, VOP: The instance of video objects at a given time.
"
In Clause 3, Definitions, remove the following definition:
"
3.3 backward compatibility: A newer coding standard is backward compatible with an older coding standard if decoders
designed to operate with the older coding standard are able to continue to operate by decoding all or part of a
bitstream produced according to the newer coding standard.
"
In Table 6-3, replace the following row 5 (left column):

visual_object_sequence__start_code
"
with

visual_object_sequence_start_code
"
In Subclause 6.2.1, Start Codes, replace the following paragraph:
"
When coded visual objects are carried within a Systems bitstream defined by ISO/IEC 14496-1, configuration information and
elementary stream data are always carried separately. Configuration information and elementary streams follow the syntax
below, subject to the break points between them defined above. The Systems specification ISO/IEC 14496-1 defines
containers that are used to carry Visual Object and Visual Object Layer configuration information. A separate container is used
for each object. For video objects, a separate container is also used for each layer. VisualObjectSequence headers are not
carried explicitly, but the information is contained in other parts of the Systems bitstream.
"
2 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
When coded visual objects are carried within a Systems bitstream defined by ISO/IEC 14496-1, configuration information and
elementary stream data are always carried separately. Configuration information and elementary streams follow the syntax
below, subject to the break points between them defined above. The Systems specification ISO/IEC 14496-1 defines
containers that are used to carry Visual Object Sequence, Visual Object and Video Object Layer configuration information. For
video objects one container is used for each layer for each object. This container carries a Visual Object Sequence header, a
Visual Object header and a Video Object Layer header. For other types of visual objects, one container per visual object is
used. This container carries a Visual Object Sequence header and a Visual Object header. The Visual Object Sequence
Header must be identical for all visual streams input simultaneously to a decoder. The Visual Object Headers for each layer of
a multilayer object must be identical.
"
In Subclause 6.2.1, Start Codes, replace the following paragraph:
"
The elementary stream data associated with a single layer may be wrapped in configuration information defined in accordance
with the syntax below. A visual bitstream may contain at most one instance of each of VisualObjectSequence(), VisualObject()
and VideoObjectLayer(). The Visual Object Sequence Header must be identical for all streams input simultaneously to a
decoder. The Visual Object Headers for each layer of a multilayer object must be identical.
"
with
"
The elementary stream data associated with a single layer may be wrapped in configuration information defined in accordance
with the syntax below. A visual bitstream may contain at most one instance of each of VisualObjectSequence(), VisualObject()
and VideoObjectLayer(), with the exception of repetition of the Visual Object Sequence Header, the Visual Object Header and
the Video Object Layer Header as described below. The Visual Object Sequence Header must be identical for all visual
streams input simultaneously to a decoder. The Visual Object Headers for each layer of a multilayer object must be identical.
The Visual Object Sequence Header, the Visual Object Header and the Video Object Layer Header may be repeated in a single
visual bitstream. Repeating these headers enables random access into the visual bitstream and recovery of these headers
when the original headers are corrupted by errors. This header repetition is used only when visual_object_type in the Visual
Object Header indicates that visual object type is video. (i.e. visual_object_type==”video ID”) All of the data elements in the
Visual Object Sequence Header, the Visual Object Header and the Video Object Layer Header repeated in a visual bitstream
shall have the same value as in the original headers, except that first_half_vbv_occupancy and latter_half_vbv_occupancy may
be changed to specify the VBV occupancy just before the removal of the first VOP following the repeated Video Object Layer
Header.
"
In Subclause 6.2.2, Visual Object Sequence and Visual Object, replace the VisualObjectSequence() syntax:
"
VisualObjectSequence() { No. of bits Mnemonic
visual_object_sequence_start_code 32 bslbf
profile_and_level_indication 8uimsbf
while ( next_bits()== user_data_start_code){
user_data()
}
VisualObject()
visual_object_sequence_end_code 32 bslbf
}
"
© ISO/IEC 2000 – All rights reserved 3

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
VisualObjectSequence() { No. of bits Mnemonic
do {
visual_object_sequence_start_code 32 bslbf
profile_and_level_indication 8uimsbf
while ( next_bits()== user_data_start_code){
user_data()
}
VisualObject()
} while ( next_bits() != visual_object_sequence_end_code)
visual_object_sequence_end_code 32 bslbf
}
"
In Subclause 6.2.2.1, User data(), replace the user_data() syntax:
"
user_data() { No. of bits Mnemonic
user_data_start_code 32 bslbf
while( next_bits() != ‘0000 0000 0000 0000 0000 0001’ ){
user_data 8uimsbf
}
next_start_code()
}
"
with
"
user_data() { No. of bits Mnemonic
user_data_start_code 32 bslbf
while( next_bits() != ‘0000 0000 0000 0000 0000 0001’ ){
user_data 8uimsbf
}
}
"
In Subclause 6.2.4, Group of Video Object Plane, in conformance to Table 6-3 replace the following row 2:

group_vop_start_codes 32 bslbf
"
with

group_of_vop_start_code 32 bslbf
"
4 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
In Subclause 6.2.5, Video Object Plane and Video Plane with Short Header, replace the following rows 18 to 26 of the
VideoObjectPlane() syntax:
"
if(!(sprite_enable && vop_coding_type == “I”)) {
vop_width 13 uimsbf
marker_bit 1bslbf
vop_height 13 uimsbf
marker_bit 1bslbf
vop_horizontal_mc_spatial_ref 13 simsbf
marker_bit 1bslbf
vop_vertical_mc_spatial_ref 13 simsbf
}
"
with
"
if(!(sprite_enable && vop_coding_type == “I”)) {
vop_width 13 uimsbf
marker_bit 1bslbf
vop_height 13 uimsbf
marker_bit 1bslbf
vop_horizontal_mc_spatial_ref 13 simsbf
marker_bit 1bslbf
vop_vertical_mc_spatial_ref 13 simsbf
marker_bit 1bslbf
}
"
In Subclause 6.2.5, replace the following rows 33 to 35 of the VideoObjectPlane() syntax:

}
if (!complexity_estimation_disable)
read_vop_complexity_estimation_header()
"
with

}
if (video_object_layer_shape != ‘’binary only‘’)
if (!complexity_estimation_disable)
read_vop_complexity_estimation_header()
"
In Subclause 6.2.5, Video Object Plane and Video Plane with Short Header, replace row 44 of the VideoObjectPlane() syntax:
"
if (no_sprite_points > 0)
"
with
"
if (no_of_sprite_warping_points > 0)
"
© ISO/IEC 2000 – All rights reserved 5

ISO/IEC 14496-2:1999/Cor.1:2000(E)
In Subclause 6.2.5.2, Video Plane with Short Header, replace the video_packet_header() syntax:
"
video_packet_header() { No. of bits Mnemonic
next_resync_marker()
resync_marker 17-23 uimsbf
macroblock_number 1-14 vlclbf
if (video_object_layer_shape != “binary only”)
quant_scale 5uimsbf
header_extension_code 1bslbf
if (header_extension_code) {
do {
modulo_time_base 1bslbf
} while (modulo_time_base != ‘0’)
marker_bit 1bslbf
vop_time_increment 1-16 bslbf
marker_bit 1bslbf
vop_coding_type 2uimsbf
if (video_object_layer_shape != “binary only”){
intra_dc_vlc_thr 3uimsbf
if (vop_coding_type != “I”)
vop_fcode_forward 3uimsbf
if (vop_coding_type == “B”)
vop_fcode_backward 3uimsbf
}
}
}
"
with
"
video_packet_header() { No. of bits Mnemonic
next_resync_marker()
resync_marker 17-23 uimsbf
if (video_object_layer_shape != “rectangular”){
header_extension_code 1bslbf
if (header_extension_code && !(sprite_enable && vop_coding_type == “I”)) {
vop_width 13 uimsbf
marker_bit 1bslbf
vop_height 13 uimsbf
marker_bit 1bslbf
vop_horizontal_mc_spatial_ref 13 simsbf
marker_bit 1bslbf
vop_vertical_mc_spatial_ref 13 simsbf
marker_bit 1bslbf
}
}
macroblock_number 1-14 vlclbf
if (video_object_layer_shape != “binary only”)
quant_scale 5uimsbf
if (video_object_layer_shape == “rectangular”)
6 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
header_extension_code 1bslbf
if (header_extension_code) {
do {
modulo_time_base 1bslbf
} while (modulo_time_base != ‘0’)
marker_bit 1bslbf
vop_time_increment 1-16 bslbf
marker_bit 1bslbf
vop_coding_type 2uimsbf
if (video_object_layer_shape != “rectangular”){
change_conv_ratio_disable 1bslbf
if (vop_coding_type != “I”)
vop_shape_coding_type 1bslbf
}
if (video_object_layer_shape != “binary only”){
intra_dc_vlc_thr 3uimsbf
if (vop_coding_type != “I”)
vop_fcode_forward 3uimsbf
if (vop_coding_type == “B”)
vop_fcode_backward 3uimsbf
}
}
}
"
In Subclause 6.2.5.3, Motion Shape Texture, replace the following rows 11, 12 and 13 of data_patitioned_i_vop() syntax:
"
if (!transparent_mb()) {
mcbpc 1-9 vlclbf
if (mb_type == 4)
"
with
"
If (!transparent_mb()) {
if( video_object_layer_shape != “rectangle”){
do{
mcbpc 1-9 vlclbf
} while( derived_mb_type == “stuffing”)
}else{
mcbpc 1-9 vlclbf
if( derived_mb_type == “stuffing”)
continue
}
if (mb_type == 4)
"
In Subclause 6.2.5.3, Motion Shape Texture, replace the Note at the end of data_patitioned_i_vop() syntax:
"
NOTE The value of block_count is 6 in the 4:2:0 format. The value of alpha_block_count is 4.
"
© ISO/IEC 2000 – All rights reserved 7

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
NOTE 1 — The value of mb_in_video_packet is the number of macroblocks in a video packet. The count of stuffing
macroblocks is not included in this value.
NOTE 2 — The value of block_count is 6 in the 4:2:0 format.
NOTE 3 — The value of alpha_block_count is 4.
"
In Subclause 6.2.5.3, Motion Shape Texture, replace the following rows 15 to 22 of the data_patitioned_p_vop() syntax:
"
if (!transparent_mb()) {
not_coded 1bslbf
if (!not_coded) {
mcbpc 1-9 vlclbf
if (derived_mb_type < 3)
motion_coding(“forward”, derived_mb_type)
}
}
"
with
"
if (!transparent_mb()) {
if( video_object_layer_shape != “rectangle”){
do{
not_coded 1bslbf
if (!not_coded)
mcbpc 1-9 vlclbf
} while( !(not_coded || derived_mb_type != “stuffing”))
}else{
not_coded 1bslbf
if (!not_coded){
mcbpc 1-9 vlclbf
if( derived_mb_type == “stuffing”)
continue
}
}
if (!not_coded) {
if (derived_mb_type < 3)
motion_coding(“forward”, derived_mb_type)
}
}
"
In Subclause 6.2.5.3, Motion Shape Texture, replace the Note at the end of data_patitioned_p_vop() syntax:
"
NOTE The value of block_count is 6 in the 4:2:0 format. The value of alpha_block_count is 4.
"
8 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
NOTE 1 — The value of mb_in_video_packet is the number of macroblocks in a video packet. The count of stuffing
macroblocks is not included in this value.
NOTE 2 — The value of block_count is 6 in the 4:2:0 format.
NOTE 3 — The value of alpha_block_count is 4.
"
In Subclause 6.2.6, Macroblock, replace the following rows 6 to 11 of the macroblock() syntax:
"
if (!transparent_mb()) {
if (vop_coding_type != “I” && !(sprite_enable
&& sprite_transmit_mode == “piece”))
not_coded 1bslbf
if (!not_coded || vop_coding_type == “I”){
mcbpc 1-9 vlclbf
if (!short_video_header &&
(derived_mb_type == 3 ||
derived_mb_type == 4))
"
with
"
if (!transparent_mb()) {
if (video_object_layer_shape != “rectangular”
&& !(sprite_enable && low_latency_sprite_enable
&& sprite_transmit_mode == “update”)) {
do{
if (vop_coding_type != “I” && !(sprite_enable
&& sprite_transmit_mode == “piece”))
not_coded 1bslbf
if (!not_coded || vop_coding_type == “I”
|| (vop_coding_type == "S"
&& low_latency_sprite_enable
&& sprite_transmit_mode == "piece"))
mcbpc 1-9 vlclbf
} while(!(not_coded || derived_mb_type != “stuffing”))
}else{
if (vop_coding_type != “I” && !(sprite_enable
&& sprite_transmit_mode == “piece”))
not_coded 1bslbf
if (!not_coded || vop_coding_type == “I”
|| (vop_coding_type == "S"
&& low_latency_sprite_enable
&& sprite_transmit_mode == "piece"))
mcbpc 1-9 vlclbf
}
© ISO/IEC 2000 – All rights reserved 9

ISO/IEC 14496-2:1999/Cor.1:2000(E)
if (!not_coded || vop_coding_type == “I”
|| (vop_coding_type == "S"
&& low_latency_sprite_enable
&& sprite_transmit_mode == "piece")) {
if (!short_video_header &&
(derived_mb_type == 3 ||
derived_mb_type == 4))
"
In Subclause 6.2.8, Still Texture Object, replace the StillTextureObject() syntax:
"
StillTextureObject() { No. of bits Mnemonic
still_texture_object_start_code 32
texture_object_id 16 uimsbf
marker_bit 1bslbf
wavelet_filter_type 1uimsbf
wavelet_download 1uimsbf
wavelet_decomposition_levels 4uimsbf
scan_direction 1bslbf
start_code_enable 1bslbf
texture_object_layer_shape 2uimsbf
quantization_type 2uimsbf
if (quantization_type == 2) {
spatial_scalability_levels 4uimsbf
if (spatial_scalability_levels != wavelet_decomposition_levels) {
use_default_spatial_scalability 1uimsbf
if (use_default_spatial_layer_size == 0)
for (i=0; i wavelet_layer_index 4
}
}
if (wavelet_download == “1” ){
uniform_wavelet_filter 1uimsbf
if (uniform_wavelet_filter == “1”)
download_wavelet_filters()
else
for (I=0; i download_wavelet_filters( )
}
wavelet_stuffing 3uimsbf
if(texture_object_layer_shape == “00”){
texture_object_layer_width 15 uimsbf
marker_bit 1bslbf
texture_object_layer_height 15 uimsbf
marker_bit 1bslbf
}
else {
horizontal_ref 15 imsbf
marker_bit 1bslbf
vertical_ref 15 imsbf
10 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
marker_bit 1bslbf
object_width 15 uimsbf
marker_bit 1bslbf
object_height 15 uimsbf
marker_bit 1bslbf
shape_object_decoding ( )
}
for(color= “y”, “u”, “v”)
wavelet_dc_decode()
if(quantization_type == 1)
TextureLayerSQ ( )
else if (quantization_type == 2){
if (start_code_enable == 1) {
do {
TextureSpatialLayerMQ ( )
} while ( next_bits() == texture_spatial_layer_start_code )
}else{
for (i =0; i TextureSpatialLayerMQNSC ( )
}
}
else if (quantization_type == 3){
for(color= “y”, “u”, “v”)
do{
quant_byte
} while( quant_byte >>7)
max_bitplanes
if (scan_direction == 0) {
do {
TextureSNRLayerBQ ( )
} while (next_bits() == texture_snr_layer_start_code)
}else{
do {
TextureSpatialLayerBQ ( )
} while ( next_bits() == texture_spatial_layer_start_code )
}
}
}
"
with
"
StillTextureObject() { No. of bits Mnemonic
still_texture_object_start_code 32
texture_object_id 16 uimsbf
marker_bit 1bslbf
wavelet_filter_type 1uimsbf
wavelet_download 1uimsbf
wavelet_decomposition_levels 4uimsbf
scan_direction 1bslbf
start_code_enable 1bslbf
© ISO/IEC 2000 – All rights reserved 11

ISO/IEC 14496-2:1999/Cor.1:2000(E)
texture_object_layer_shape 2uimsbf
quantization_type 2uimsbf
if (quantization_type == 2) {
spatial_scalability_levels 4uimsbf
if (spatial_scalability_levels != wavelet_decomposition_levels) {
use_default_spatial_scalability 1uimsbf
if (use_default_spatial_layer_size == 0)
for (i=0; i wavelet_layer_index 4
}
}
if (wavelet_download == “1” ){
uniform_wavelet_filter 1uimsbf
if (uniform_wavelet_filter == “1”)
download_wavelet_filters()
else
for (i=0; i download_wavelet_filters( )
}
wavelet_stuffing 3uimsbf
if(texture_object_layer_shape == “00”){
texture_object_layer_width 15 uimsbf
marker_bit 1bslbf
texture_object_layer_height 15 uimsbf
marker_bit 1bslbf
}
else {
horizontal_ref 15 imsbf
marker_bit 1bslbf
vertical_ref 15 imsbf
marker_bit 1bslbf
object_width 15 uimsbf
marker_bit 1bslbf
object_height 15 uimsbf
marker_bit 1bslbf
shape_object_decoding ( )
}
for(color= “y”, “u”, “v”)
wavelet_dc_decode()
if(quantization_type == 1)
TextureLayerSQ ( )
else if (quantization_type == 2){
if (start_code_enable == 1) {
do {
TextureSpatialLayerMQ ( )
} while ( next_bits() == texture_spatial_layer_start_code )
}else{
for (i =0; i TextureSpatialLayerMQNSC ( )
}
12 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
}
else if (quantization_type == 3){
for(color= “y”, “u”, “v”)
do{
quant_byte
} while( quant_byte >>7)
max_bitplanes
if (scan_direction == 0) {
do {
TextureSNRLayerBQ ( )
} while (next_bits() == texture_snr_layer_start_code)
}else{
do {
TextureSpatialLayerBQ ( )
} while ( next_bits() == texture_spatial_layer_start_code )
}
}
}
"
In Subclause 6.2.8.1, replace the TextureLayerSQ() syntax:
"
TextureLayerSQ() { No. of bits Mnemonic
if (scan_direction == 0) {
for (“y”, “u”, “v”){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i if ( i!=0 || color!= “u“,“v“ ){
max_bitplane[i] 5 uimsbf
if ((i+1)%4==0)
marker_bit 1bslbf
}
}
for (i = 0; i for(color= “y”, “u”, “v”)
arith_decode_highbands_td()
}else{
if ( start_code_enable ) {
do {
TextureSpatialLayerSQ()
} while ( next_bits() == texture_spatial_layer_start_code)
}else{
for (i = 0; i< wavelet_decomposition_levels; i++)
TextureSpatialLayerSQNSC()
}
}
}
"
© ISO/IEC 2000 – All rights reserved 13

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
TextureLayerSQ() { No. of bits Mnemonic
if (scan_direction == 0) {
for (“y”, “u”, “v”){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i if ( i!=0 || color!= “u“,“v“ ){
max_bitplane[i] 5 uimsbf
if ((i+1)%4==0)
marker_bit 1bslbf
}
}
for (i = 0; i for(color= “y”, “u”, “v”)
arith_decode_highbands_td()
}else{
if ( start_code_enable ) {
do {
TextureSpatialLayerSQ()
} while ( next_bits() == texture_spatial_layer_start_code)
}else{
for (i = 0; i< wavelet_decomposition_levels; i++)
TextureSpatialLayerSQNSC()
}
}
}
NOTE — The value of tree_block is that wavelet coefficients are organized in a tree structure which is rooted in the low-
low band (DC band) of the wavelet decomposition, then extends into the higher frequency bands at the same spatial
location. Note the DC band is encoded separately.
"
In Subclause 6.2.8.3, replace the TextureSpatialLayerSQNSC() syntax:
"
TextureSpatialLayerSQNSC() { No. of bits Mnemonic
for (color=“y“,“u“,“v“){
if ( (first_wavelet_layer && color==“y“)||
(second_wavelet_layer && color==“u“,“v“))
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
if (color ==“y“)
max_bitplanes 5uimbsf
else if (!first_wavelet_layer)
max_bitplanes 5uimbsf
}
arith_decode_highbands_bb()
}
"
14 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
TextureSpatialLayerSQNSC() { No. of bits Mnemonic
for (color=“y“,“u“,“v“){
if ( (first_wavelet_layer && color==“y“)||
(second_wavelet_layer && color==“u“,“v“))
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
if (color ==“y“)
max_bitplanes 5uimbsf
else if (!first_wavelet_layer)
max_bitplanes 5uimbsf
}
for (color="y","u","v")
if (color="y" || !first_wavelet_layer)
arith_decode_highbands_bb()
}
NOTE — The value of first_wavelet_layer becomes “true” when the variable ‘i’ of Subclause 6.2.8.1 TextureLayerSQ()
equals to zero. Otherwise, it is “false”.
The value of second_wavelet_layer becomes “true” when the variable ‘i’ of Subclause 6.2.8.1 TextureLayerSQ() equals to
one. Otherwise, it is “false”.
"
In Subclause 6.2.8.7, replace the TextureSNRLayerMQNSC() syntax:
"
TextureSNRLayerMQNSC(){ No. of bits Mnemonic
if (spatial_scalability_levels == wavelet_decomposition_levels
&& spatial_layer_id == 0) {
for(color= “y“ ){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i max_bitplane[i] 5 uimsbf
if ((i+1)%4 == 0)
marker_bit 1bslbf
}
}
}
else {
for (color=“y”, “u”, “v”){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i max_bitplane[i] 5 uimsbf
if ((i+1)%4 == 0)
marker_bit 1bslbf
}
}
© ISO/IEC 2000 – All rights reserved 15

ISO/IEC 14496-2:1999/Cor.1:2000(E)
}
if (scan_direction == 0) {
for (i = 0; i for(color= “y”, “u”, “v”)
if (wavelet_decomposition_layer_id != 0 || color != “u”, “v” )
arith_decode_highbands_td()
}else{
for (i = 0; i< spatial_layers; i++) {
for(color= “y”, “u”, “v”){
if (wavelet_decomposition_layer_id != 0 || color != “u”, “v” )
arith_decode_highbands_bb()
}
}
}
}
"
with
"
TextureSNRLayerMQNSC(){ No. of bits Mnemonic
if (spatial_scalability_levels == wavelet_decomposition_levels
&& spatial_layer_id == 0) {
for(color= “y“ ){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i max_bitplane[i] 5 uimsbf
if ((i+1)%4 == 0)
marker_bit 1bslbf
}
}
}
else {
for (color=“y”, “u”, “v”){
do {
quant_byte 8uimsbf
} while (quant_byte >> 7)
for (i=0; i max_bitplane[i] 5 uimsbf
if ((i+1)%4 == 0)
marker_bit 1bslbf
}
}
}
if (scan_direction == 0) {
for (i = 0; i for(color= “y”, “u”, “v”)
if (wavelet_decomposition_layer_id != 0 || color != “u”, “v” )
arith_decode_highbands_td()
}else{
16 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
for (i = 0; i< spatial_layers; i++) {
for(color= “y”, “u”, “v”){
if (wavelet_decomposition_layer_id != 0 || color != “u”, “v” )
arith_decode_highbands_bb()
}
}
}
}
NOTE — The value of spatial_layers is equivalent to the maximum number of the wavelet decomposition layers in that
scalability layer.
"
In Subclause 6.2.8.11, DownloadWaveletFilters, replace the download_wavelet_filters syntax:

download_wavelet_filters( ){ No. of bits Mnemonic
lowpass_filter_length 4uimsbf
highpass_filter_length 4uimsbf
do{
if ( wavelet_filter_type == 0) {
filter_tap_integer 16 imsbf
marker_bit 1bslbf
}else{
filter_tap_float_high 16 uimsbf
marker_bit 1bslbf
filter_tap_float_low 16 uimsbf
marker_bit 1bslbf
}
} while (lowpass_filter_length--)
do{
if ( wavelet_filter_type == 0){
filter_tap_integer 16 imsbf
marker_bit 1bslbf
}else{
filter_tap_float_high 16 uimsbf
marker_bit 1bslbf
filter_tap_float_low 16 uimsbf
marker_bit 1bslbf
}
} while (highpass_filter_length--)
if ( wavelet_filter_type == 0) {
integer_scale 16 uimsbf
marker_bit
}
}
"
with

download_wavelet_filters( ){ No. of bits Mnemonic
lowpass_filter_length 4uimsbf
highpass_filter_length 4uimsbf
© ISO/IEC 2000 – All rights reserved 17

ISO/IEC 14496-2:1999/Cor.1:2000(E)
do{
if ( wavelet_filter_type == 0) {
filter_tap_integer 16 imsbf
marker_bit 1bslbf
}else{
filter_tap_float_high 16 uimsbf
marker_bit 1bslbf
filter_tap_float_low 16 uimsbf
marker_bit 1bslbf
}
} while (lowpass_filter_length--)
do{
if ( wavelet_filter_type == 0){
filter_tap_integer 16 imsbf
marker_bit 1bslbf
}else{
filter_tap_float_high 16 uimsbf
marker_bit 1bslbf
filter_tap_float_low 16 uimsbf
marker_bit 1bslbf
}
} while (highpass_filter_length--)
if ( wavelet_filter_type == 0) {
integer_scale 16 uimsbf
marker_bit 1bslbf
}
}
"
In Subclause 6.3.3, Semantics of the low_delay, replace the following:
"
low_delay : This is a one-bit flag which when set to ‘1’ indicates the VOL contains no B-VOPs.
"
with
"
low_delay : This is a one-bit flag which when set to ‘1’ indicates the VOL contains no B-VOPs. If this flag is not present in the
bitstream, the default value is 0 for visual object types that support B-VOP otherwise it is 1
"
In Subclause 6.3.3, Video Object Layer, replace the following:

sprite_left_coordinate – This is a 13-bit signed integer which defines the left-edge of the sprite. The value of
sprite_left_coordinate shall be divisible by two.
sprite_top_coordinate: This is a 13-bit signed integer which defines the top edge of the sprite. The value of
sprite_left_coordinate shall be divisible by two.
"
with

sprite_left_coordinate – This is a 13-bit signed integer which defines the left edge of the sprite. The value of
sprite_left_coordinate shall be divisible by two.
sprite_top_coordinate: This is a 13-bit signed integer which defines the top edge of the sprite. The value of
sprite_top_coordinate shall be divisible by two.
"
in Subclause 6.3.3, Video Object Layer, replace table 6-16:
18 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)

Table 6-16 Number of point and implied warping function
Number of points warping function
0 Stationary
1 Translation
2,3 Affine
4 Perspective
"
with

Table 6-16 Number of points and implied warping function
Number of points warping function
0 Stationary
1 Translation
2,3 Affine
4 Perspective
5-63 Reserved
"
In Subclause 6.3.3, Video Object Layer, replace the following paragraph:
"
first_half_vbv_occupancy, latter_half_vbv_occupancy: The vbv_occupancy is a 26-bit unsigned integer. This value is
divided to two parts. The most significant bits are in first_half_vbv_occupancy (11 bits) and the least significant bits are in
latter_half_vbv_occupancy (15 bits). The marker_bit is inserted between the first_vbv_buffer_size and the
latter_half_vbv_buffer_size in order to avoid the resync_marker emulation. The value of this integer is the VBV occupancy in
64-bit units just before the removal of the first VOP following the VOL header. The purpose for the quantity is to provide the
initial condition for VBV buffer fullness.
"
with
"
first_half_vbv_occupancy, latter_half_vbv_occupancy: The vbv_occupancy is a 26-bit unsigned integer. This value is
divided to two parts. The most significant bits are in first_half_vbv_occupancy (11 bits) and the least significant bits are in
latter_half_vbv_occupancy (15 bits). The marker_bit is inserted between the first_half_vbv_occupancy and the
latter_half_vbv_occupancy in order to avoid the resync_marker emulation. The value of this integer is the VBV occupancy in 64-
bit units just before the removal of the first VOP following the VOL header. The purpose for the quantity is to provide the initial
condition for VBV buffer fullness.
"
In Subclause 6.3.3, Video Object Layer, replace the following paragraph:
"
not_8_bit: This one bit flag is set when the video data precision is not 8 bits per pixel.
"
with
"
not_8_bit: This one bit flag is set when the video data precision is not 8 bits per pixel and visual object type is N-bit.
"
In Subclause 6.3.3, Video Object Layer, replace the following paragraphs:
"
video_object_layer_width: The video_object_layer_width is a 13-bit unsigned integer representing the width of the
displayable part of the luminance component in pixel units. The width of the encoded luminance component of VOPs in
macroblocks is (video_object_layer_width+15)/16. The displayable part is left-aligned in the encoded VOPs.
© ISO/IEC 2000 – All rights reserved 19

ISO/IEC 14496-2:1999/Cor.1:2000(E)
video_object_layer_height: The video_object_layer_height is a 13-bit unsigned integer representing the height of the
displayable part of the luminance component in pixel units. The height of the encoded luminance component of VOPs in
macroblocks is (video_object_layer_height+15)/16. The displayable part is top-aligned in the encoded VOPs.
"
with
"
video_object_layer_width: The video_object_layer_width is a 13-bit unsigned integer representing the width of the
displayable part of the luminance component in pixel units. The width of the encoded luminance component of VOPs in
macroblocks is (video_object_layer_width+15)/16. The displayable part is left-aligned in the encoded VOPs. A zero value is
forbidden.
video_object_layer_height: The video_object_layer_height is a 13-bit unsigned integer representing the height of the
displayable part of the luminance component in pixel units. The height of the encoded luminance component of VOPs in
macroblocks is (video_object_layer_height+15)/16. The displayable part is top-aligned in the encoded VOPs. A zero value is
forbidden.
"
In Subclause 6.3.3, Video Object Layer, replace the following:
"
ref_layer_sampling_direc: This is a one-bit flag which when set to ‘1’ indicates that the resolution of the reference layer
(specified by reference_layer_id) is higher than the resolution of the layer being coded. If it is set to ‘0’ then the reference layer
has the same or lower resolution then the resolution of the layer being coded.
"
with
"
ref_layer_sampling_direc: This is a one-bit flag which when set to ‘1’ indicates that the resolution of the reference layer
(specified by reference_layer_id) is higher than the resolution of the layer being coded. If it is set to ‘0’ then the reference layer
has the same or lower resolution than the resolution of the layer being coded.
"
In Subclause 6.3.4, Group of Video Object Plane, replace the following:
"
group_vop_start_code: The group_vop_start_code is the bit string ‘000001B3’ in hexadecimal. It identifies the beginning of a
GOV header.
"
with
"
group_of_vop_start_code: The group_of_vop_start_code is the bit string ‘000001B3’ in hexadecimal. It identifies the
beginning of a GOV header.
"
In Subclause 6.3.5, Video Object Layer, replace the following:
"
vop_coded: This is a 1-bit flag which when set to ‘0’ indicates that no subsequent data exists for the VOP. In this case, the
following decoding rule applies: For an arbitrarily shaped VO (i.e. when the shape type of the VO is either ‘binary’ or ‘binary
only’), the alpha plane of the reconstructed VOP shall be completely transparent. For a rectangular VO (i.e. when the shape
type of the VO is ‘rectangular’), the corresponding rectangular alpha plane of the VOP, having the same size as its luminance
component, shall be completely transparent. If there is no alpha plane being used in the decoding and composition process of a
rectangular VO, the reconstructed VOP is filled with the respective content of the immediately preceding VOP for which
vop_coded!=0.
"
with
"
vop_coded: This is a 1-bit flag which when set to '0' indicates that no subsequent data exists for the VOP. In this case, the
following decoding rules apply: If binary shape or alpha plane does exist for the VOP (i.e. video_object_layer_shape !=
"rectangular"), it shall be completely transparent. If binary shape or alpha plane does not exist for the VOP (i.e.
video_object_layer_shape == "rectangular"), the luminance and chrominance planes of the reconstructed VOP shall be filled
with the forward reference VOP as defined in clause 7.6.7.
"
20 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
In Subclause 6.3.5, Video Object Plane and Video Plane with Short Header, replace the following paragraph:
"
vop_shape_coding_type: This is a 1 bit flag which specifies whether inter shape decoding is to be carried out for the current
P VOP. If vop_shape_coding_type is equal to ‘0’, intra shape decoding is carried out, otherwise inter shape decoding is carried
out.
"
with
"
vop_shape_coding_type: This is a 1 bit flag which specifies whether inter shape decoding is to be carried out for the current
P- or B-VOP. If vop_shape_coding_type is equal to ‘0’, intra shape decoding is carried out, otherwise inter shape decoding is
carried out.
"
In Subclause 6.3.5.2, Video Plane with Short Header, replace the following paragraph:
"
num_macroblocks_in_gob: This is the number of macroblocks in each group of blocks (GOB) unit. This parameter is derived
from the source_format as shown in Table 6-25.
"
with
"
num_macroblocks_in_gob: This is the number of macroblocks in each group of blocks (GOB) unit. This parameter is derived
from the source_format as shown in Table 6-25. The count of stuffing macroblocks is not included in this value.
"
In Subclause 6.3.5.4, Sprite coding, replace the following paragraph:
"
send_mb(): This function returns 1 if the current macroblock has already been sent previously and “not coded”. Otherwise it
returns 0.
"
with
"
send_mb(): This function returns 1 if the current macroblock has already been transmitted. Otherwise it returns 0.
"
In Subclause 6.3.6, Macroblock related, replace the following paragraph:
"
not_coded: This is a 1-bit flag which signals if a macroblock is coded or not. When set to’1’ it indicates that a macroblock is
not coded and no further data is included in the bitstream for this macroblock; decoder shall treat this macroblock as ‘inter’ with
motion vector equal to zero and no DCT coefficient data. When set to ‘0’ it indicates that the macroblock is coded and its data is
included in the bitstream.
"
with
"
not_coded: This is a 1-bit flag which signals if a macroblock is coded or not. When set to’1’ it indicates that a macroblock is
not coded and no further data is included in the bitstream for this macroblock (with the exception of alpha data that may be
present). The decoder shall treat this macroblock as ‘inter’ with motion vector equal to zero and no DCT coefficient data. When
set to ‘0’ it indicates that the macroblock is coded and its data is included in the bitstream.
"
In Subclause 6.3.8, Still texture object, replace the following paragraph:
"
texture_object_id: This is given by 16-bits representing one of the values in the range of ‘0000 0000 0000 0000’ to ‘1111
1111 1111 1111’ in binary. The texture_object_layer_id uniquely identifies a texture object layer.
"
© ISO/IEC 2000 – All rights reserved 21

ISO/IEC 14496-2:1999/Cor.1:2000(E)
with
"
texture_object_id: This is given by 16-bits representing one of the values in the range of ‘0000 0000 0000 0000’ to ‘1111
1111 1111 1111’ in binary. The texture_object_id uniquely identifies a texture object layer.
"
In Subclause 6.3.8, Still texture object, replace the following paragraph:
"
max_bitplanes -- This field indicates the number of maximum bitplanes inbilevel_quant mode.
"
with
"
max_bitplanes -- This field indicates the number of maximum bitplanes in all three quantization modes.
"
In Subclause 6.3.8.1, Texture Layer Decoding, delete the following paragraphs:
"
tree_blocks: The tree block is that wavelet coefficients are organized in a tree structure which is rooted in the low-low band
(DC band) of the wavelet decomposition, then extends into the higher frequency bands at the same spatial location. Note the
DC band is encoded separately.
spatial_layers: This field is equivalent to the maximum number of the wavelet decomposition layers in that scalability layer.
"
In Subclause 6.3.8.1, Texture Layer Decoding, replace the following paragraph:
"
quant_dc_byte: This field indicates the quantization step size for one color component of the DC subband. A zero value is
forbidden. The quantization step size parameter, quant_dc, is decoded using the function get_param( ): quant = get_param( 7 );
"
with
"
quant_dc_byte: This field indicates the quantization step size for one color component of the DC subband. A zero value is
forbidden. The quantization step size parameter, quant_dc, is decoded using the function get_param( ): quant_dc = get_param(
7 ); where get_param() function is defined in the description of band_offset_byte.
"
In Subclause 6.3.8.1, Texture Layer Decoding, replace the following paragraph:
"
band_max_byte -- This field defines one byte of the maximum value of the DC band. The parameter band_max_value is
decoded using function get_param
band_max_value = get_param( 7 );
"
with
"
band_max_byte -- This field defines one byte of the maximum value of the DC band. The parameter band_max_value is
decoded using function get_param( ). The number of maximum bitplanes for DC band is derived from
CEIL(log2(band_max_value+1))
band_max_value = get_param( 7 );
"
In Subclause 6.3.8.1, Texture Layer Decoding, remove the following paragraphs:
"
root_max_alphabet_byte-- This field defines one byte of the maximum absolute value of the quantized coefficients of the
three lowest AC bands. This parameter is decoded using the function get_param( ):
root_max_alphabet = get_param ( 7 );
valz_max_alphabet_byte-- This field defines one byte of the maximum absolute value of the quantized coefficients of the 3
highest AC bands. The parameter valz_max is decoded using the function get_param( ):
valz_max_alphabet = get_param ( 7 );
22 © ISO/IEC 2000 – All rights reserved

ISO/IEC 14496-2:1999/Cor.1:2000(E)
valnz_max_alphabet_byte-- This field defines one byte of the maximum absolute value of the quantized coefficients which
belong to the middle AC bands (the bands between the 3 lowest and the 3 highest AC bands). The parameter
valnz_max_alphabet is decoded using the function get_param( ):
valnz_max_alphabet = get_param ( 7 );
"
In Subclause 7.3, VOP reconstruction, replace the following formula:
"
bits _ per _ pixel
0� d[ y][x]� 2 �1, for all x, y
"
with
"
bits _ per _ pixel bits _ per _ pixel
�2 -1; d[ y][x]� 2 �1

bits _ per _ pixel
d[ y][x]� d[ y][x]; 0� d[ y][x]� 2 � 1


0; d[ y][x]� 0

"
In Subclause 7.4.1.3, Escape code, replace the following:
"
Type 3 : ESC is followed by “11”, and the code following ESC + “11” is decoded as fixed length codes. This type of escape
codes are represented by 1-bit LAST, 6-bit RUN and 12-bit LEVEL. A marker bit is inserted before and after the 12-bit-LEVEL
in order to avoid the resync_marker emulation. Use of this escape sequence for encoding the combinations listed in Table B-16
and Table B-17is prohibited. The codes for RUN and LEVEL are given in Table B-18.
Type 4: The fourth type of escape code is used if and only if short_video_header is 1. In this case, the 15 bits following ESC
are decoded as fixed length codes represented by 1-bit LAST, 6-bit RUN and 8-bit LEVEL. The values 0000 0000 and 1000
000 for LEVEL are not used (they are reserved).
"
with
"
Type 3 : ESC is followed by “11”, and the code following ESC + “11” is decoded as fixed length codes. This type of escape
codes are represented by 1-bit LAST, 6-bit RUN and 12-bit LEVEL. A marker bit is inserted before and after the 12-bit-LEVEL
in order to avoid the resync_marker emulation. Use of this escape sequence for encoding the combinations listed in in Table B-
16 and Table B-17is prohibited. The codes for RUN and LEVEL are given in Tables B-18a and b.
Type 4: The fourth type of escape code is used if and only if short_video_header is 1. In this case, the 15 bits following ESC
are decoded as fixed length codes represented by 1-bit LAST, 6-bit RUN and 8-bit LEVEL. The values 0000 0000 and 1000
000 for LEVEL are not used (they are reserved). The codes for RUN and LEVEL are given in Table B-18 a and c.
"
In Subclause 7.4.3, replace the following subtitle:
"
Intra dc and ac prediction for intra macroblocks
"
with
"
Dc and ac prediction for intra macroblocks
"
In Subclause 7.4.3.3, Adaptive AC Coefficient prediction, correct the indexes for coefficients in the formula by replacing the
following paragraph:
© ISO/IEC 2000 – All rights reserved 23

ISO/IEC 14496-2:1999/Cor.1:2000(E)
"
If block ‘A’ was selected as the predictor for the block for which coefficient prediction is to be performed, calculate the first
column of the quantized AC coefficients as follows.
QF [0][i] = PQF [0][i] + (QF [0][i] * QP )//QP i=1to7
X X A A X
If block ‘C’ was selected as the predictor for the block for which coefficient prediction is to be performed, calculate the first row
of the quantized AC coefficients as follows.
QF [j][0] = PQF [j][0] + (QF [j][0] * QP )//QP i=1to7
X X C C X
If the pred
...

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...