MPEG4标准中的Advanced Simple Profile(ASP)完整的说明-03-3章

转载:

38 页共 99
Video_object_type_indication:指示当前码流所使用的对象类型,它决定了后面的码流所能使
用的工具,见表35
35 视频对类象型指示
Video Object Type Code
Reserved 00000000
Simple Object Type 00000001
Simple Scalable Object Type 00000010
Core Object Type 00000011
Main Object Type 00000100
N-bit Object Type 00000101
Basic Anim. 2D Texture 00000110
Anim. 2D Mesh 00000111
Simple Face 00001000
Still Scalable Texture 00001001
Advanced Real Time Simple 00001010
Core Scalable 00001011
Advanced Coding Efficiency 00001100
Advanced Scalable Texture 00001101
Simple FBA 00001110
Simple Studio 00001111
Core Studio 00010000
Advanced Simple 00010001
Fine Granularity Scalable 00010010
Reserved 00010011 - 11111111
我们只可能支持simple advanced simple,遇到其它类型的视频对象类型,我们就停
止解码。
Is_video_object_identifyier:这是一个1比特标志,当它设置为1指示版本和优先权将在后面
被给出;当它为0 是,不给出版本信息和优先权。
Video_object_layer_verid:这4 比特码字指示了视频对象层的版本号。它的含义在表36
给出。如果visual_object_veridvideo_object_layer_verid都存在,后者将取代前者。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
39 页共 99
36 video_object_layer_verid的含义
video_object_layer_verid Meaning
0000 reserved
0001 object type listed in Table 9-1
0010 object type listed in Table V2-39
0011 reserved
0100 object type listed in Table AMD3-40
0101 object type listed in Table AMD4-13
0011 - 1111 reserved
这个表格的含义同前面visual_object_verid的含义一样,不再赘述。
Video_object_layer_priority:这3 比特码指示了视频对象层的优先级。它的值从1 71
示优先级最高,7 表示优先级最低,0 值保留。这个信息对我们的解码过程没用,如果存在
的话,直接扔掉。
Aspect_ratio_info:这4 比特码指示了像素外形的长宽比,其含义见表37。如果
aspect_ratio_info指示为extended PAR,则pixel_aspect_ratio参见par_widthpar_heitht,这
两个数之间是互质的。我们通常用11 的。这个标志也可以理解为每个像素所占的尺寸的
长宽比。这个标志也是在显示的时候用到,对解码过程没影响。
37 象素长宽比的含义
aspect_ratio_info pixel aspect ratios
0000 Forbidden
0001 1:1 (Square)
0010 12:11 (625-type for 4:3 picture)
0011 10:11 (525-type for 4:3 picture)
0100 16:11 (625-type stretched for 16:9 picture)
0101 40:33 (525-type stretched for 16:9 picture)
0110-1110 Reserved
1111 extended PAR
Par_width:这个8 比特无符号整数指示了像素外形的水平尺寸,0值被禁止。
Par_height:这个8 比特无符号整数指示了像素外形的垂直尺寸,0值被禁止。
Vol_control_parameters:这是一个1 比特标志,当它被设置为1时,指示了下列参数的存在:
Chroma_formatlow_delayvbv_parameters
Chroma_format:这是一个2 比特整数,指示了色彩格式,其含义见表38
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
40 页共 99
38 chroma_format的含义
chroma_format Meaning
00 Reserved
01 4:2:0
10 Reserved
11 Reserved
我们用4:2:0,如果不是,则表示出错。
Low_delay:这是一个1 比特标志,设置为1 表示vol 中没有B-VOP
Vbv_parameters:这是一个1 比特标志,设置为1指示了以下参数的存在:first_half_bit_rate
latter_half_bit_rate first_half_vbv_buffer_size latter_half_vbv_buffer_size
first_half_vbv_occupancylatter_half_vbv_occupancy
First_half_bit_ratelatter_half_bit_rate:比特率是一个30比特的无符号整数,单位是400bits/s
其中0 值被禁止。比特率被分为两个部分,主要部分(前15 比特)定义在first_half_bit_rate
次要部分(后15 比特)定义在latter_half_bit_rateMarker_bit 被插入在两者之间,用来防
止起始码竞争(即起始码字重复)。编码器可见的瞬时视频对象层比特率被Rvol(t)指示。如
果比特率域(也就是first_half_bit_rate latter_half_bit_rate)在VOL 头中存在,它定义了
峰值码率,也就说Rvol(t) <= 400 * bit_rate
First_half_vbv_buffer_sizelatter_half_vbv_buffer_sizevbv_buffer_size 是一个18 比特的无
符号整数。它分为两个部分,主要部分(前15比特)在first_half_vbv_buffer_size中定义,
次要部分(后3比特)在latter_half_vbv_buffer_size 中定义。Marker_bit被插入在两者之间,
用来防止起始码竞争。描述vbv缓冲区尺寸的单位是16384bits0值在vbv_buffer_size被禁
止。
First_half_vbv_occupancylatter_half_vbv_occupancyvbv_occupancy是一个26 比特的无符
号整数,它分为两个部分,主要部分(前11 比特)在first_half_vbv_occupancy 中定义,次
要部分(后15 比特)在latter_half_vbv_occupancy 中定义。Marker_bit 被插入在
first_vbv_buffer_size latter_half_vbv_buffer_size 之间防止起始码竞争。这个整数指示了
VOL头后面第一个VOP移出解码缓冲区之前的VBV占有量,单位为64 比特。这个量的目
的是给VBV缓冲区的充满程度提供初始条件。
Video_object_layer_shape:这2 比特整数含义定义在表39 中,指示了视频对象层的形状
类型。我们只使用rectangular,对其他类型不打算再介绍。如果码流中指示的形状类型不是
rectangular,则停止解码。
39 视频对象层的形状类型
Shape format Meaning
00 Rectangular
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
41 页共 99
01 Binary
10 binary only
11 Grayscale
Vop_time_increment_resolution:这是一个16 比特的整数,指示了vop_time_increment 的时
间分辨率。它的值实际上就表示了1 秒被分成多少间隔。例如,它的值为5,则表示1 秒平
均分成5 块,因此时间分辨率就是15 秒,也就是说vop_time_increment 的单位为15 秒。
Fixed_vop_rate:这是一个1 比特标志,它指示所有VOP是否用固定的码率编码。只有当任
意两个连续的vop 显示间隔是常数时,它才被设置为1。在这种情形下,vop 码率可以由
fixed_vop_time_increment 得到。如果它被设置为0,那么两个连续的VOP 的显示间隔是变
化的,这时需要vop头中的时间戳表示。
Fixed_vop_time_increment:这个码字描述了显示序列中两个vop 之间的时间长度,单位由
vop_time_increment_resolution 决定, 等于它的倒数。它可以在[ 0
vop_time_increment_resoluteion ] 之间取值。它需要的比特数可以用
vop_time_increment_resoluteion 的上界来计算。Fixed_vop_time_increment 只有在
fixed_vop_rate 被设置为1 时才存在,而且它的值必须和显示顺序中两个连续的vop 的时间
间隔给出的常量一致。在这种情形下, 固定的vop 码率由
vop_time_increment_resolution/fixed_vop_time_increment给出。0 值被禁止。
Vop_time_increment_resolutionfix_vop_time_increment vop_time_increment 的关系见表3
10。例如:
VOP time vop_time_increment/vop_time_increment_resolution
310 vop_time_increment_resolution,fixed_vop_time_increment
vop_time_increment的关系的例子
Fixed VOP rate =
1/VOP time
vop_time_increment_
resolution
fixed_vop_time_
increment
vop_time_increment
15Hz 15 1 0, 1, 2, 3, 4,…
7.5Hz 15 2 0, 2, 4, 6, 8,…
29.97…Hz 30000 1001 0, 1001, 2002, 3003,…
59.94…Hz 60000 1001 0, 1001, 2002, 3003,…
Video_object_layer_width:这个一个13 比特的无符号整数,以像素为单位描述了亮度的宽
度。在编码的VOP中以宏块为单位的宽度为(video_object_layer_width15)/16
Video_object_layer_height:这个一个13 比特的无符号整数,以像素为单位描述了亮度的高
度。在编码的VOP中以宏块为单位的高度为(video_object_layer_width15)/16
Interlaced:这是一个1 比特标志,当它设置为1,表示VOP 可以包含隔行图像;但它设置
0 时,vop中不能包含隔行图像,也就是只能是逐行的图像。
Obmc_disable:这是一个1 比特标志,设置为1 禁止重叠块运动补偿。重叠块运动补偿在
MPEG4目前的profile中都没有定义,我们也肯定不支持,所以如果码流中这个标志不是1
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
42 页共 99
则表示码流错误,停止解码。
Sprite_enable:当video_object_layer_verid ‘0001’时,它为1 比特,否则为2 比特,它
的具体含义见表311
311 sprite_enable的含义
sprite_enable
(video_object_layer_
verid == ‘0001’)
sprite_enable
(video_object_layer_
verid == ‘0002’)
Sprite Coding Mode
0 00 sprite not used
1 01 static (Basic/Low Latency)
- 10 GMC (Global Motion Compensation)
- 11 Reserved
我们不支持sprite编码,所以sprite的值为0 或者00,如果不是,则表示当前码流我们不能
解码,停止继续解码。
Not_8_bit:这是一个1 比特标志,但它设置为1 时表示视频数据的精度不是每像素8 比特。
我们不支持这种情况,因此如果如果这个标志为1,我们将停止解码。
Quant_type:这是一个1 比特标志,当它设置为1 时,使用MPEG 量化,当它为0 时使用
263 量化。如果使用MPEG 量化,有两个缺省的量化矩阵,分别对应帧内宏块和帧间宏块:
内部宏块的缺省量化矩阵为:
8 17 18 19 21 23 25 27
17 18 19 21 23 25 27 28
20 21 22 23 24 26 28 30
21 22 23 24 26 28 30 32
22 23 24 26 28 30 32 35
23 24 26 28 30 32 35 38
25 26 28 30 32 35 38 41
27 28 30 32 35 38 41 45
帧间宏块的缺省量化矩阵为:
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
43 页共 99
16 17 18 19 20 21 22 23
17 18 19 20 21 22 23 24
18 19 20 21 22 23 24 25
19 20 21 22 23 24 26 27
20 21 22 23 25 26 27 28
21 22 23 24 26 27 28 30
22 23 24 26 27 28 30 31
23 24 25 27 28 30 31 33
Load_intra_quant_mat:这是一个1 比特标志,当intra_quant_mat 在后面出现时,它被设置
1
Intra_quant_mat:这是一个包含2 个到64 个无符号整数的表。它是以之字形扫描的形式在
码流中传输的。如果遇到0 值,表示后面没有数了,剩下的没有传输的值被设定为与最后一
个非0 值相同。第一个值总是8,他在解码过程中不被使用。
Load_nonintra_quant_mat:这是一个1 比特标志,但它被设置为1 时,说明后面有
nonintra_quant_mat
Nonintra_quant_mat:这是一个包含2 个到64 个无符号整数的表。它是以之字形扫描的形式
在码流中传输的。如果遇到0值,表示后面没有数了,剩下的没有传输的值被设定为与最后
一个非0 值相同。第一个值不能为0
Quarter_sample:这是一个1 比特表示,设置为0 时表示使用12像素运动补偿;设置为1
时表示对亮度部分使用14 像素运动补偿。
Complexity_estimation_disable:这是一个1 比特标志,当它为1 时说明在每一个vop中禁止
复杂估计头。我们不用复杂估计头,如果码流中使用了复杂估计头,就停止解码。
Resync_marker_disable:这是一个1 比特标志,当它设置为1 时指示编码的vop 中没有
resync_marker。这个标志只在解码优化中使用。成功的解码器在执行时可以不考虑这个标志
的值。Resync_marker 实际上就是一个重同步标志,当码流出错时,它能起到一定的作用,
我们是支持的。
Data_partitioned:这是一个1 比特标志,当它设置为1时表示宏块数据用不同方式重新安排,
特别是运动向量数据从纹理数据中分离出来。我们暂时不用这个,如果遇到码流使用了数据
分割,我们就停止解码。
Reversible_vlc:这是一个1 比特标志,当特设置为1 时指示在解码DCT 系数过程中使用可
逆的变长码表。这些表只有当data_partitioned标志设置为1 时才使用。我们暂不考虑用这个。
Newpred_enable:这是一个1 比特标志,当它设置为1 时,表示使用NEWPRED 模式。当
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
44 页共 99
video_object_layer_verid 等于‘0001’时,Newpred_enable 没有传输,取默认值0。我们暂
不支持这种模式,如果我们解码的码流中支持,则停止解码。
Reduced_resolution_vop_enable:这是一个1 比特标志,当设置为1 表示使用降分辨率vop
工具。当video_object_layer_verid等于‘0001’时,Reduced_resolution_vop_enable没有传输,
取默认值0。我们暂不支持这种模式,如果我们解码的码流中支持,则停止解码。
Scalability:这是一个1 比特标志,当它设置为1 时指示了当前曾使用了可扩展编码。如果
当前层是基本层,设置为0。我们不使用扩展编码,因此如果我们解码的码流中这个标志为
1,则停止解码。
stuffing_start_code: 这是一个比特串,以16 进制表示为‘000001C3’ 。它和后面的
stuffing_byte联合使用为了保证VBV buffer 的调整。
stuffing_byte: 这是一个8 比特字符串,它的值为’11111111’.
3.3.3 Group of Video Object Plane
group_of_vop_start_code:它以16 进制表示为‘00 00 01 B3’,表示GOV头的开始。
Time_code:这是一个18 比特整数,包含以下内容:time_code_hourstime_code_minutes
marker_bittime_code_seconds(参见表312)。这些参数符合IEC标准461(视频磁带记
录的时间和控制码的定义。时间码为GOV 头后面第一个视频对象平面(显示顺序)给出了以
秒为单位的整数部分。
312 time—code的含义
time_code range of value No. of bits Mnemonic
time_code_hours 0 - 23 5 uimsbf
time_code_minutes 0 - 59 6 uimsbf
marker_bit 1 1 bslbf
time_code_seconds 0 - 59 6 uimsbf
Closed_gov:这是一个1 比特标志,它指示了紧跟在GOV头后第一个编码的I-VOP后的第
一个B-VOP(指的是解码顺序)中使用的预测的本性。Closed_gov设置为1指示了这些B-VOP
在编码时只使用后向预测和内部编码(?),这个标志保证了编码后的视频可以被编辑,如果
前面的图像删除,broken_link 将被设置为1,以便解码器可以不显示这些紧跟在GOV 头后
第一个I-VOPB-VOP。然而closed_gov1 时,编辑后可以不设置broken_link,因为此
时这些B-VOP可以被解码。
Broken_link:这是一个1 比特标志,在编码过程中它被设置为0。它设置为1 指示了紧跟
GOV头后第一个I-VOPB-VOP可能不能正确解码,因为用来预测的参考帧已经不可用。
解码器使用这个标志来避免显示不能正确解码的帧。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
45 页共 99
3.3.4 Video Object Plane
vop_start_code:这是一个16 进制的比特串‘00 00 01 B6’,它表示了vop的开始。
Vop_coding_type:这个2 比特标志给出了vop的编码类型。如表313 所示:
313 vop_coding_type的含义
vop_coding_type coding method
00 intra-coded (I)
01 predictive-coded (P)
10 bidirectionally-predictive-coded (B)
11 sprite (S)
其中sprite我们不使用,如果遇到vop_coding_type sprite,则停止解码。
Modulo_time_base:这个是以秒为分辨率的局部时间基准,它给出从GOV 头中的时间基准
开始,到当前帧经过了多少秒,它由一个0 和后面紧跟着的若干个1 组成,每个1 表示1
秒。如01111,表示经过了4 秒。
Vop_time_increment:这个值的单位为vol 中定义的1/vop_time_increment_resolution 秒,它
给出当前vop 的以modulo_time_base 为基准的精确时间。它的取值范围为
[0,vop_time_increment_resolution]。这个值所需要的比特数由描述这个范围所需要的最小比
特数来计算。
Vop_coded:这是一个1 比特标志,当它为0时指示了这个VOP没有后续数据存在。在这种
情形下,用前向参考VOP的内容来填充。
Vop_rounding_type:这是一个1 比特标志,它给出了参数rounding_control 的值,这个值用
P-VOP的运动补偿中使用的像素差值中。如果这个标志为0rounding_control 0;如果
这个标志为1rounding_control 的值为1。当vop_rounding_type VOP 头中不存在时,
rounding_control 的值为0
Intra_dc_vlc_thr:这是一个3 比特码。帧内宏块的DC系数编码可以采用两种方法,这个码
字为DC采用哪种编码方式提供了一个选择机制,如表314 所示:
314 intra_dc_vlc_thr的含义
index meaning of intra_dc_vlc_thr code
0 Use Intra DC VLC for entire VOP 000
1 Switch to Intra AC VLC at running Qp >=13 001
2 Switch to Intra AC VLC at running Qp >=15 010
3 Switch to Intra AC VLC at running Qp >=17 011
4 Switch to Intra AC VLC at running Qp >=19 100
5 Switch to Intra AC VLC at running Qp >=21 101
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
46 页共 99
6 Switch to Intra AC VLC at running Qp >=23 110
7 Use Intra AC VLC for entire VOP 111
Running QP定义为上一个宏块的量化值,一个VOP或者video packet的第一个宏块除外。
如果当前宏块是VOP或者video packet中第一个宏块,则running QP定义为当前宏块的量
化值。
例如,如果intra_dc_vlc_thr 001,当前宏块的QP 14,由于14>13,所以DC 用同AC
系数一样的VLC编码,如果QP值为1111<13,则DC单独编码。
Top_field_first:这是一个1 比特标志,当它设置为1时,表示重建VOP的顶场先被显示(即
在解码时首先被输出显示)。当它设为0时,表示重建VOP的底场先被显示。
Alternate_vertical_scan_flag:这是一个1 比特标志,当它被设置为1 时,表示在隔行扫描的
VOP中使用交替垂直扫描。
Vop_quant:这是一个无符号整数,它给出在宏块逆量化过程中的量化值,直到被后续的
dquantdbquantquant_scale更新为止。它的长度为5,范围为131
Vop_fcode_forward:这是一个3 比特的无符号整数,取值从1 70 被禁止,它在运动向
量解码中使用,给出了运动矢量的范围。
Vop_fcode_backward:这是一个3 比特的无符号整数,取值从1 70 被禁止,它在运动
向量解码中使用,给出了运动矢量的范围。
3.3.5 Video Packet Header
resync_marker:这是一个二进制串,有至少16 0,后面跟一个1 组成,‘0 0000 0000 0000
0001’。对I-VOPresync_marker 16 0 后面一个1。对P-VOPresync_marker 的长度
取决于vop_fcode_forward的值;对B-VOPresync_marker 的长度取决于vop_fcode_forward
vop_fcode_backward中较大的值。对P-VOPresync_marker 的值为(15+fcode)0 后面跟
一个1;对B-VOPresync_marker 的值为max(15+fcode,17)0 后面跟一个1 组成。它只有
resync_marker_disable0 才会出现,并且只能在宏块数据前面字节对齐的位置。
Macorblock_number:这是一个长度可变的码字,从1比特到14 比特,它标识了vop中的宏
块编号。VOP中左上角的宏块号为0,宏块号从左到右,从上到下逐个增加。这个码的实际
长度依赖于VOP中的总宏块数目,VOP中的宏块数可以由表315给出。例如,对于720*576
的帧,宏块数有1620个,因此需要11 比特表示就可以了。
3-15 Macroblock_number码长的度
length of macroblock_number code ((video_object_layer_width+15
)/16) * ((video_object_layer
_height+15)/16)
1 1-2
2 3-4
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
47 页共 99
3 5-8
4 9-16
5 17-32
6 33-64
7 65-128
8 129-256
9 257-512
10 513-1024
11 1025-2048
12 2049-4096
13 4097-8192
14 8193-16384
Quant_scale:这是一个无符号整数,它给出了对视频包中的宏块进行反量化时使用的量化值,
直到被后面的dquant 更新为止。它的长度为5比特。
Header_extention_code:这是一个1 比特标志,当它设置为1 时说明在该视频包头中还有附
加的码字存在。当header_extention_code1 时,modulo_time_basevop_time_increment
vop_coding_typeintra_dc_vlc_thr 也在头中出现,如果是P帧,vop_fcode_forward将会存在,
如果是B帧,vop_fcode_backward也会存在。这些码字的含义前面已经都提到过,这里不再
重复。
3.3.6MacroBlock
3.3.6.1 宏块头信息
not_coded:这是一个1 比特标志,用来指示一个宏块是否编码。当它被设置为1 时,表示
这个宏块没有被编码,码流中没有进一步的关于这个宏块的数据。解码器对待这个宏块就如
同运动向量为0 并且所有DCT系数也都为0 的帧间宏块。当它设置为0 时,标志这个宏块
被编码,码流中有进一步的数据。这个标志只有帧间宏块时才会存在。
Mcbpc:这是一个变长码,它来自于宏块类型mb_type和色差块的的编码模式,它只有当宏
块被编码时才会出现。表317 和表318 分别给出了I-VOPP-VOP中有mcbpc的允许
码值。这些表中的“MB type”一列的值被用作变量“derived_mb_type”的值,它用在运动和
纹理信息的解码中。在短头格式中,mcbpc指示了宏块类型2 不被使用,即不使用四矢量运
动补偿。
316 中给出了I帧和P帧中不同宏块类型和对应的在码流用允许存在的数据元素。
316 I 帧和P帧中宏块类型和它所包含的数据元素
VOP type mb type Name not_coded mcbpc cbpy dquant mvd mvd2-4
P not coded - 1
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
48 页共 99
P 0 inter 1 1 1 1
P 1 inter+q 1 1 1 1 1
P 2 inter4v 1 1 1 1 1
P 3 intra 1 1 1
P 4 intra+q 1 1 1 1
P stuffing - 1 1
I 3 intra 1 1
I 4 intra+q 1 1 1
I stuffing - 1
其中stuffing类型的宏块是填充用的,实际上它并不是实际的有意义的宏块。
Inter:帧间宏块,只有一个运动矢量,并且dquant 不存在。
Inter+q:帧间宏块,只有一个运动矢量,但是存在dquant
Inter4v:帧间宏块,有四个运动矢量,即每个亮度块都由一个运动矢量。
Intra:帧内宏块,存在dquant
Intra+q:帧内宏块,不存在dquant
317 IVOPmcbpc的变长码表
Code mbtype cbpc
(56)
1 3 00
001 3 01
010 3 10
011 3 11
0001 4 00
0000 01 4 01
0000 10 4 10
0000 11 4 11
0000 0000 1 Stuffing --
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
49 页共 99
318 PVOPmcbpc的变长码表
Code MB type cbpc
(56)
1 0 00
0011 0 01
0010 0 10
0001 01 0 11
011 1 00
0000 111 1 01
0000 110 1 10
0000 0010 1 1 11
010 2 00
0000 101 2 01
0000 100 2 10
0000 0101 2 11
0001 1 3 00
0000 0100 3 01
0000 0011 3 10
0000 011 3 11
0001 00 4 00
0000 0010 0 4 01
0000 0001 1 4 10
0000 0001 0 4 11
0000 0000 1 Stuffing --
Ac_pred_flag:这是一个1 比特标志,当它设置为1 时表示帧内编码宏块的AC 系数的第一
行或者第一列使用差分编码,即使用AC预测编码。
Cbpy:这是一个变长码字,解码之后得到一个四个比特码字,这个四比特码每一位对应一
个亮度块的编码模式。对帧内宏块,如果cbpy解出的四比特码字为1101,则表示第三个亮
度块除DC 系数外,所有的ac 系数都为0,其它三个亮度块至少有一个ac 系数不为0。对
帧间宏块,如果cbpy 解出的四比特码字为1011,则表示第二个亮度的所有系数均为0,其
它三个亮度块至少有一个系数不为0(包括dc 系数,实际上此时dc ac 是等价的)。Cby
的变长码表见表319。(内部宏块dc不单独编码时,这个码字如何定义?)
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc

你可能感兴趣的:(MPEG4标准中的Advanced Simple Profile(ASP)完整的说明-03-3章)