转载:

第四章 解码流程
这一章对MPEG4 ASP的解码流程作一个完整的介绍。首先给出解码框图,然后按照解
码的先后顺序对每一个功能模块进行详细的说明。
4.1. 解码框图




运动向量解码运动补偿
VLC IZZ
IACDC IQ IDCT
VOP重建
(ADD)
重建VOP
运动数据
纹理数据
图4-1 MPEG4 ASP的解码流程
如图4-1 所示,它给出了基本的解码流程。其中,码流解析就是从码流中得到头信息,
并把纹理数据送交纹理解码过程,运动数据送交运动解码过程。下面按照解码的顺序,逐个
进行介绍。在编码码流中,运动信息在纹理信息前面给出来得,不过在后面的解码流程介绍
中,我们还是先介绍纹理解码,再介绍运动解码。
4.2. 码流解析
码流解析就是从编码码流中解析到头信息,并把对我们有用的信息保存下来。接着将纹
理数据交给纹理解码模块,运动数据交给运动解码模块,实际上也就是把对码流的控制权交
给它们。
4.3. 纹理解码
这一部分讲述了VOP的纹理解码过程,此过程的框图如图4-2所示:
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 62 页共 99页
Variable
Length
Decoding
Inverse Scan
Inverse DC &
AC Prediction
Inverse
Quantization
Inverse DCT Motion
Compensation
VOP Memory
Coded Data
Decoded Pels
QFS[n]
QF[v][u] f[y][x]
d[y][x]
Reconstructed VOP
F[v][u] PQF[v][u]
图4-2 MPEG4 ASP纹理解码流程
4.3.1 宏块系数解码
这一部分讲述了DCT系数的解码,包括DC系数(n=0)和AC系数(n!=0),这里n指的是
锯齿扫描的(zigzag)的系数序号。
4.3.1.1 帧内块的DC 系数解码
帧内宏块的差分DC 系数作为由dct_dc_size(见表3-25 和表3-26)指定长度的变长码
dct_dc_differential(见表3-27)来编码。dct_dc_size按DC系数的长度对它们进行分类。对每
一种分类方法,dct_dc_size后附加的若干比特唯一标识了差分的实际值。最终解码的DC系
数的实际值是差分DC值与预测值的和。这里需要注意的是,对我们来说,dct_dc_size的值
为10,11,12是不合法的,这样解码后的DC值的范围应该是[-511, +511],这样只需要用
10 个比特表示DC 系数就够了。(标准中原话如下:NOTE: The variable length code for
dct_dc_size_luminance of 10, 11 and 12 are not valid for any object types where the pixel depth is
8 bits. They shall not be present in a bitstream conforming to these object types.)
以上说的是一般情况,对下列情况需要特殊考虑:
当 short_video_header 为1 时,帧内块的DC系数不是按差分编码的,而是代以8 比特定
长码作为无符号整数来编码,除非这个整数是255。这些值中0~128 没有被使用,它们被
保留。如果要编码255,它被当成有符号整数128 来编码。短头格式情况下use_intra_dc_vlc
等于0。
对非短头格式帧内宏块,如果use_intra_dc_vlc等于0,则表示该内部宏块的DC不单独
编码,而将它同ac系数一起进行vlc编码,这也就意味着如果DC系数为0时并不编码,只
是简单的增加后面的AC系数的游程。同时,cbp的定义也要作相应的变化,本来,帧内块
的cbp为0,只要所有AC系数为0 就可以了;但如果use_intra_dc_vlc等于0 时,帧内块的
cbp为0,指的就是所有系数为0,而不仅仅是ac系数。
4.3.1.2 其他系数
AC 系数通过变长码产生一个事件(EVENT)来获得。一个事件由最后一个非0 系数指示
(LAST:0 说明这个块中还有许多非0 系数;1 说明这是块中最后一个非0系数)、编码系数
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 63 页共 99页
前面连续出现的0 的数目和这个非0 系数的值组成。
当 short_video_header 为1 时,最经常发生的事件用表4-1 的变长码编码。最后的比特
“s”表示符号,0 表示正而1 表示负。注意,此时对除帧内DC系数外的所有系数均用这个
表。
当 short_video_header 为0 时,帧内块和帧间块的变长码表是不同的。内部块的亮度和
色差系数最经常发生的事件变长码见表4-2;而帧间块的亮度和色差系数最经常发生的事
件变长码见表4-1。最后的比特“s”标识符号,0 表示正而1 表示负。
表 4-1 帧间亮度和色差TCOEF的变长码表
VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL
10s 0 0 1 0111 s 1 0 1
1111 s 0 0 3 0000 1100 1s 0 11 1
0101 01s 0 0 6 0000 0000 101s 1 0 6
0010 111s 0 0 9 0011 11s 1 1 1
0001 1111 s 0 0 10 0000 0000 100s 1 0 7
0001 0010 1s 0 0 13 0011 10s 1 2 1
0001 0010 0s 0 0 14 0011 01s 0 5 1
0000 1000 01s 0 0 17 0011 00s 1 0 2
0000 1000 00s 0 0 18 0010 011s 1 5 1
0000 0000 111s 0 0 21 0010 010s 0 6 1
0000 0000 110s 0 0 22 0010 001s 1 3 1
0000 0100 000s 0 0 23 0010 000s 1 4 1
110s 0 0 2 0001 1010 s 1 9 1
0101 00s 0 1 2 0001 1001 s 0 8 1
0001 1110 s 0 0 11 0001 1000 s 0 9 1
0000 0011 11s 0 0 19 0001 0111 s 0 10 1
0000 0100 001s 0 0 24 0001 0110 s 1 0 3
0000 0101 0000s 0 0 25 0001 0101 s 1 6 1
1110 s 0 1 1 0001 0100 s 1 7 1
0001 1101 s 0 0 12 0001 0011 s 1 8 1
0000 0011 10s 0 0 20 0000 1100 0s 0 12 1
0000 0101 0001s 0 0 26 0000 1011 1s 1 0 4
0110 1s 0 0 4 0000 1011 0s 1 1 2
0001 0001 1s 0 0 15 0000 1010 1s 1 10 1
0000 0011 01s 0 1 7 0000 1010 0s 1 11 1
0110 0s 0 0 5 0000 1001 1s 1 12 1
0001 0001 0s 0 4 2 0000 1001 0s 1 13 1
0000 0101 0010s 0 0 27 0000 1000 1s 1 14 1
0101 1s 0 2 1 0000 0001 11s 0 13 1
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 64 页共 99页
0000 0011 00s 0 2 4 0000 0001 10s 1 0 5
0000 0101 0011s 0 1 9 0000 0001 01s 1 1 3
0100 11s 0 0 7 0000 0001 00s 1 2 2
0000 0010 11s 0 3 4 0000 0100 100s 1 3 2
VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL
0000 0101 0100s 0 6 3 0000 0100 101s 1 4 2
0100 10s 0 0 8 0000 0100 110s 1 15 1
0000 0010 10s 0 4 3 0000 0100 111s 1 16 1
0100 01s 0 3 1 0000 0101 1000s 0 14 1
0000 0010 01s 0 8 2 0000 0101 1001s 1 0 8
0100 00s 0 4 1 0000 0101 1010s 1 5 2
0000 0010 00s 0 5 3 0000 0101 1011s 1 6 2
0010 110s 0 1 3 0000 0101 1100s 1 17 1
0000 0101 0101s 0 1 10 0000 0101 1101s 1 18 1
0010 101s 0 2 2 0000 0101 1110s 1 19 1
0010 100s 0 7 1 0000 0101 1111s 1 20 1
0001 1100 s 0 1 4 0000 011 escape
0001 1011 s 0 3 2
0001 0000 1s 0 0 16
0001 0000 0s 0 1 5
0000 1111 1s 0 1 6
0000 1111 0s 0 2 3
0000 1110 1s 0 3 3
0000 1110 0s 0 5 2
0000 1101 1s 0 6 2
0000 1101 0s 0 7 2
0000 0100 010s 0 1 8
0000 0100 011s 0 9 2
0000 0101 0110s 0 2 5
0000 0101 0111s 0 7 3
表 4-2 帧内亮度和色差TCOEF的变长码表
VLC CODE LAST RUN LEVEL VLC CODE LAST RUN LEVEL
10s 0 0 1 0111 s 1 0 1
1111 s 0 0 2 0000 1100 1s 1 0 2
0101 01s 0 0 3 0000 0000 101s 1 0 3
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 65 页共 99页
0010 111s 0 0 4 0011 11s 1 1 1
0001 1111 s 0 0 5 0000 0000 100s 1 1 2
0001 0010 1s 0 0 6 0011 10s 1 2 1
0001 0010 0s 0 0 7 0011 01s 1 3 1
0000 1000 01s 0 0 8 0011 00s 1 4 1
0000 1000 00s 0 0 9 0010 011s 1 5 1
0000 0000 111s 0 0 10 0010 010s 1 6 1
0000 0000 110s 0 0 11 0010 001s 1 7 1
0000 0100 000s 0 0 12 0010 000s 1 8 1
110s 0 1 1 0001 1010 s 1 9 1
0101 00s 0 1 2 0001 1001 s 1 10 1
0001 1110 s 0 1 3 0001 1000 s 1 11 1
0000 0011 11s 0 1 4 0001 0111 s 1 12 1
0000 0100 001s 0 1 5 0001 0110 s 1 13 1
0000 0101 0000s 0 1 6 0001 0101 s 1 14 1
1110 s 0 2 1 0001 0100 s 1 15 1
0001 1101 s 0 2 2 0001 0011 s 1 16 1
0000 0011 10s 0 2 3 0000 1100 0s 1 17 1
0000 0101 0001s 0 2 4 0000 1011 1s 1 18 1
0110 1s 0 3 1 0000 1011 0s 1 19 1
0001 0001 1s 0 3 2 0000 1010 1s 1 20 1
0000 0011 01s 0 3 3 0000 1010 0s 1 21 1
0110 0s 0 4 1 0000 1001 1s 1 22 1
0001 0001 0s 0 4 2 0000 1001 0s 1 23 1
0000 0101 0010s 0 4 3 0000 1000 1s 1 24 1
0101 1s 0 5 1 0000 0001 11s 1 25 1
0000 0011 00s 0 5 2 0000 0001 10s 1 26 1
0000 0101 0011s 0 5 3 0000 0001 01s 1 27 1
0100 11s 0 6 1 0000 0001 00s 1 28 1
0000 0010 11s 0 6 2 0000 0100 100s 1 29 1
0000 0101 0100s 0 6 3 0000 0100 101s 1 30 1
0100 10s 0 7 1 0000 0100 110s 1 31 1
0000 0010 10s 0 7 2 0000 0100 111s 1 32 1
0100 01s 0 8 1 0000 0101 1000s 1 33 1
0000 0010 01s 0 8 2 0000 0101 1001s 1 34 1
0100 00s 0 9 1 0000 0101 1010s 1 35 1
0000 0010 00s 0 9 2 0000 0101 1011s 1 36 1
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 66 页共 99页
0010 110s 0 10 1 0000 0101 1100s 1 37 1
0000 0101 0101s 0 10 2 0000 0101 1101s 1 38 1
0010 101s 0 11 1 0000 0101 1110s 1 39 1
0010 100s 0 12 1 0000 0101 1111s 1 40 1
0001 1100 s 0 13 1 0000 011 escape
0001 1011 s 0 14 1
0001 0000 1s 0 15 1
0001 0000 0s 0 16 1
0000 1111 1s 0 17 1
0000 1111 0s 0 18 1
0000 1110 1s 0 19 1
0000 1110 0s 0 20 1
0000 1101 1s 0 21 1
0000 1101 0s 0 22 1
0000 0100 010s 0 23 1
0000 0100 011s 0 24 1
0000 0101 0110s 0 25 1
0000 0101 0111s 0 26 1
4.3.1.3 Escape 码
我们可以发现许多可能的事件并没有事件来表示它们。为了编码这些小概率事件,我
们用escape 编码方法。DCT 系数的escape 码用五种模式编码。其中第一到第三种模式在
short_video_header 为0 时使用,并且此时不使用可逆的变长码表;第四种在
short_video_header 为1 时使用;在使用可逆变长码表时,使用第五种编码模式。它们的解
码过程在下面描述。
模式一:ESC 后面跟0,ESC+“0”后面的码作为变长码编码(使用表4-1 和表4-
2),但是LEVEL的值在解码后被修改,用来给重建值LEVEL
s
,如下所示:
LEVEL
s
=sign(LEVEL
+
)×[abs(LEVEL
+
)+LMAX]
这里LEVEL
+
是变长解码后的值,LMAX 由表4-3和表4-4 获得(这两个表的意思
是当run为某个值时,可以用来查表4-1 和4-2 的最大的level值。
这个模式存在的意义如下:如果编码时,遇到某个码字,虽然它不能直接通过表4-1
和表4-2 来编码,但是通过将当前level 值减去当前run 对应的LMAX 后,就可以用表4
-1 和4-2 来编码了,因此解码之后需要加上LMAX。由于编码时,是对绝对值进行查表
得,因此符号位单独处理,所以有上面的获得LEVEL值的表达式。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 67 页共 99页
表 4-3 内部宏块的LMAX 值
LAST RUN LMAX LAST RUN LMAX
0 0 27 1 0 8
0 1 10 1 1 3
0 2 5 1 2-6 2
0 3 4 1 7-20 1
0 4-7 3 1 others N/A
0 8-9 2
0 10-14 1
0 others N/A
表4-4 帧间宏块的LMAX 值
LAST RUN LMAX LAST RUN LMAX
0 0 12 1 0 3
0 1 6 1 1 2
0 2 4 1 2-40 1
0 3-6 3 1 others N/A
0 7-10 2
0 11-26 1
0 others N/A
模式二:ESC后面跟10,ESC+“10”后面的码作为变长码编码(使用表4-1 和表4-
2),但是RUN 的值在解码后被修改,用来给定重建值RUN
s
,如下所示:
RUN
s
=RUN
+
+(RMAX+1)
其中,RUN
+
是变长解码后的值,RMAX 由表4-5 和表4-6 得到,这两个表的意思
是当level为某个值时,可以查表4-1 和4-2 进行编码的最大的run值。
这个模式存在的意义同模式一类似:即可能存在某些码字,虽然不能直接通过表4-1
和表4-2 来编码,但是通过将当前码字的run 减去当前level 值的(RMAX+1)后,就可以通
过查表来进行编码了,因此解码之后需要将得到的run值加上(RMAX+1)。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 68 页共 99页
表 4-5 内部宏块的RMAX 值
LAST LEVEL RMAX LAST LEVEL RMAX
0 1 14 1 1 20
0 2 9 1 2 6
0 3 7 1 3 1
0 4 3 1 4-8 0
0 5 2 1 others N/A
0 6-10 1
0 11-27 0
0 others N/A
表4-6 帧间宏块的RMAX 值
LAST LEVEL RMAX LAST LEVEL RMAX
0 1 26 1 1 40
0 2 10 1 2 1
0 3 6 1 3 0
0 4 2 1 others N/A
0 5-6 1
0 7-12 0
0 others N/A
模式三:ESC后面跟11,ESC+“11”后面的码作为定长码编码,这种模式下分别用1
比特编LAST,6 比特编RUN 和12 比特编LEVEL。为了避免和resync_marker 相同,分别
有一个标记比特插在12 比特的LEVEL 的前面和后面。编码表4-1 和4-2 中的码字禁止
使用此模式。RUN 和LEVEL的编码见表4-7 中(a)和(b)。
表 4-7 RUN和LEVEL定长码表
Code Run Code Level Code Level
000 000 0 forbidden -2048 forbidden -128
000 001 1 1000 0000 0001 -2047 1000 0001 -127
000 010 2 . . . .
‘’’’’ ‘’’’’’ 1111 1111 1110 -2 1111 1110 -2
‘’’’’’’ ‘’’’’’ 1111 1111 1111 -1 1111 1111 -1
111 111111 11 111 111 63 forbidden 0 forbidden 0
0000 0000 0001 1 0000 0001 1
0000 0000 0010 2 0000 0010 2
. . . .
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 69 页共 99页
0111 1111 1111 2047 0111 1111 127
a)RUN定长码表b) LEVEL定长码表c) 短头格式下 LEVEL
定长码表
模式四:第四种模式只在short_video_header 为1 时使用。在这种情形下,ESC后面跟
着15 比特定长码,其中1 比特编LAST,6 比特编RUN、8 比特编LEVEL。LEVEL的值从
“0000 0000”和“1000 0000”被保留而不使用,run和level的定长码表见见表4-7 a 和c。
4.3.2 反扫描
这一部分讲述了一维数据QFS[n]转换为二维数组PQF[v][u]的方法。其中,QFS[n]表示
变长解码输出端的数据,QF[v][u]表示反扫描的结果。(其中n 的范围从0 到63,u 和v 的
范围从0 到7)。
图 4-3 定义了三种扫描方式,究竟使用何种方式由下面决定。对于帧内宏块,如果
acpred_flag=0,对宏块中的所有块使用锯齿形扫描。否则DC 预测方向决定了块的扫描方
式,举例说明,如果DC 预测参考水平相邻块,那么使用垂直交替扫描;反之如果DC 预测参
考垂直相邻块,那么使用水平交替扫描。对所有其他形式的块,变换系数的8x8 块用锯齿形
扫描。
还有几种特殊情况需要考虑:
对于短头格式,所有块都是用锯齿形扫描。
在场模式下,如果vop 头中的码字alternate_vertical_scan_flag 为1 时,该vop 中
所有块使用垂直扫描。
0 1 2 3 10 11 12 13 0 4 6 20 22 36 38 52 0 1 5 6 14 15 27 28
4 5 8 9 17 16 15 14 1 5 7 21 23 37 39 53 2 4 7 13 16 26 29 42
6 7 19 18 26 27 28 29 2 8 19 24 34 40 50 54 3 8 12 17 25 30 41 43
20 21 24 25 30 31 32 33 3 9 18 25 35 41 51 55 9 11 18 24 31 40 44 53
22 23 34 35 42 43 44 45 10 17 26 30 42 46 56 60 10 19 23 32 39 45 52 54
36 37 40 41 46 47 48 49 11 16 27 31 43 47 57 61 20 22 33 38 46 51 55 60
38 39 50 51 56 57 58 59 12 15 28 32 44 48 58 62 21 34 37 47 50 56 59 61
52 53 54 55 60 61 62 63 13 14 29 33 45 49 59 63 35 36 48 49 57 58 62 63
图 4-3 -- (a) 水平交替扫描(b)垂直交替扫描(c) 锯齿形扫描
4.3.3 帧内宏块系数的预测
这一部分讲述了解码系数的预测过程。这个预测过程只在非短头格式下(即
short_video_header 等于0)的帧内宏块中进行。当短头格式情况下(即short_video_header 等于
1),或者此宏块不是内部宏块时,这个过程不使用。如果需要作预测,则DC预测肯定要做,
AC 预测做不做由ac_pred_flag 决定,当ac_pred_flag 等于1 时,需要做AC 预测;当
ac_pred_flag等于0 时,不需要做AC预测。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 70 页共 99页
4.3.3.1 DC 与AC 的预测方向
DC 与AC 的预测方向的自适应选择是基于被解码块周围的水平和垂直梯度的比较上
的。下图显示了被解码块周围的三个块。块“X”、“A”、“B”和“C”分别代表了当前块、
左边的块、左上角的块和上边的块。
A
B C D
X Y Macroblock
or or
图4-4 DC预测中使用的邻居块
先前解码块的DC系数的逆量化值F[0][0],用如下方法来确定DC和AC的预测方向:
if ( |FA[0][0] – FB[0][0]| < |FB[0][0] – FC[0][0]|)
predict from block C
else
predict from block A
如果A、B或C中任意块超出了VOP的边界或视频包的边界,或者它们不属于帧内编
码块,那么此块的F[0][0]用1024 作预测值。
4.3.3.2 自适应DC 系数预测
自适应DC预测使用左边预测块或者上面预测块的F[0][0]值来进行,究竟使用哪个取决
于上面得到的预测方向。
if (predict from block C)
QFX[0][0] = PQFX[0][0] + FC[0][0] // dc_scaler
else
QFX[0][0] = PQFX[0][0] + FA[0][0] // dc_scaler
dc_scaler 定义在下表4-8 中。这个过程对宏块中的每个块独立地重复,它们使用自身
的水平相邻块A和垂直相邻块C。
DC预测对亮度块和色差块是类似的。色差块使用的水平相邻块就是左边宏块的相应的
色差块;色差块使用的垂直相邻块就是上边宏块的相应的色差块。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 71 页共 99页
表 4-8 DC量化值同quantiser_scale之间的关系
Component:Type Dc_scaler for quantiser_scale range
1 through 4 5 through 8 9 through 24 >= 25
Luminance: Type1 8 2x quantiser_scale quantiser_scale +8 2 x quantiser_scale -16
Chrominance: Type2 8 (quantiser_scale +13)/2 quantiser_scale -6
4.3.3.3 自适应AC 系数预测
这个过程只有当ac_pred_flag为1时被使用,它指示了解码过程中使用AC预测。
先前编码块的第一行系数或第一列系数都用来预测当前块的系数。在一个块基准下,
DC 系数预测的最佳方向也作为AC 系数的最佳预测方向。因此在一个宏块内,预测每一个
块可以使用的方式是独立的。AC系数的预测如下图4-5 所示。
A
B
X
C D
or
Macroblock
Y
or
图 4-5 AC预测使用的邻居块及其系数
为了补偿在当前块AC系数预测中使用的水平相邻块和垂直相邻块的量化差别,比例缩
放是必须的。因此预测是修改的,以便当前块和预测块使用相同的量化器步长。定义如下:
如果块A被选为块的预测器,如下计算量化AC系数的第一列:
QFX[v][0] = PQFX[v][0] + (QFA[v][0] * QPA) // QPX v = 1 to 7
如果块C被选为块的预测器,如下计算量化AC系数的第一行:
QFX[0][u] = PQFX[0][u] + (QFC[0][u] * QPC) // QPX u = 1 to 7
如果预测块超出VOP 边界或视频包的边界,又或者它们不属于帧内宏块,那么所有预测系
数被假设为0。
4.3.3.4 QF[v][u]的饱和
从 DC和AC预测得到的量化系数要被限制在[-2048,2047]的范围之内,即:
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc
第 72 页共 99页
QF [v][u] =
2047 QF [v][u] > 2047
QF [v][u] -2048 ? QF [v][u] ? 2047
-2048 QF [v][u] < -2048
ì 

??  
í 
4.3.3.5 场模式下的预测
场模式下,当dct_type 等于1 时,亮度块数据的DCT 系数由同一场的的数据组成,见
图2-3。此时,帧内块的预测同帧模式下的情况是很类似的,只是用来作预测的邻居块有
点变化。场模式下ACDC预测使用的邻居块及其系数如图4-6 所示。
B
A X Y
C D
Field-Coded
Macroblock
Top field blocks
Bottom field
blocks
图4-6 场模式下ACDC预测使用的邻居块及其系数
可见,场模式下的预测同帧模式下几乎是完全一样的,只是预测块不一样,但是对解码
端来说,这一点是不可见的,我们完全可以把它看成是帧模式同样处理。
4.3.4 反量化
系数的二维数组QF[v][u],通过逆量化产生重建DCT系数。这个过程的本质是乘以量化
步长。量化步长有两种变化机制:一种是通过权矩阵改变一个块的量化步长,另一种使用尺
度因子在很少几个比特(和编码整个权矩阵相比)的花费下改变量化步长。
下图描述了逆量化的全部过程。通过适当的逆量化算法得到系数F‘’[v][u]后,经饱和
运算得到了F‘[v][u],最后进行错误匹配控制操作,得到最终的重建DCT系数 F[v][u]。
PDF 文件使用 "pdfFactory Pro" 试用版本创建www.fineprint.cn
ASIC-MP4V_VID_MPEG4_ASP_WuBC_01.doc

MPEG4标准中的Advanced Simple Profile(ASP)完整的说明-04-1章相关推荐

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

    转载: 第 26 页共 99页 marker_bit 1 bslbf vop_time_increment 1-16 bslbf marker_bit 1 bslbf vop_coding_type ...

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

    转载: 第 13 页共 99页 第三章 ASP码流语法和语义 3.1. 准备知识 3.1.1 MPEG4码流中的术语和函数 bslbf:Bit string, left bit first.比特串,左 ...

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

    转载: 第 38 页共 99页 Video_object_type_indication:指示当前码流所使用的对象类型,它决定了后面的码流所能使 用的工具,见表3-5: 表 3-5 视频对类象型指示 ...

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

    转载: 第 50 页共 99页 表 3-19 I-VOP和P-VOP中cbpy的变长码表 Code cbpy(intra-MB) (12 34) cbpy(inter-MB), (12 34) 001 ...

  5. mpeg4标准包含{xvid\divx,h264\avc}

    "MPEG-4由一系列的子标准组成,被称为部..... ............................ 第二部(ISO/IEC 14496-2):视讯:定义了一个对各种视觉信息(包 ...

  6. 【Codecs系列】mpeg1、mpeg2和mpeg4标准对比分析和总结

    Date: 2018.11.2 mpeg1.mpeg2和mpeg4标准对比 0.参考 (1). MPEG2.MPEG4.H264的差异和简介 (2). MPEG-2标准总结文档 (3). mpeg1. ...

  7. MPEG1、MPEG2、MPEG4标准比较

    MPEG1的标准制定于1992年左右,它是将视频数据压缩成1-2MB/S的标准数据流,对于动作不激烈的视频信号能获得较好的图像质量.但如果图像对象动作激烈时,图像有可能产生马赛克现象,此种标准没有定义 ...

  8. 【Android FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视频基础 | MPEG-4 标准 | Android 开发环境 | FFMPEG 交叉编译 | 安卓项目导入配置 )

    本篇博客代码及资源下载 : https://download.csdn.net/download/han1202012/10382762 文章目录 一. 音视频基础 1. 音频基础 (1) 声音要素 ...

  9. 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包

    原文:利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包 因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户 ...

最新文章

  1. Python RPi GPIO编程控制
  2. 3.1线性判别函数【模式识别】
  3. SGU - 507 启发式合并维护平衡树信息
  4. phpunit 单元测试案例--签到任务
  5. C++ 十大经典排序算法原理及模板之STL方法实现以及稳定性分析
  6. 计算机图形与游戏技术,宾夕法尼亚大学计算机图形与游戏技术研究生Offer及录取要求...
  7. Oracle 数据库基础学习 (六) 子查询
  8. electron 5.0.3版本 改动的地方
  9. php双引号表示什么,PHP中的单引号和双引号字符串有什么区别?
  10. python语法简图
  11. tukey 窗口_语音信号滤波去噪——使用TUKEYWIN窗设计的FIR滤波器.
  12. 为什么区块链世界既需要计算机科学家也需要经济学家?
  13. 台电 8G U盘通过量产程序实现USB-CDROM启动
  14. winpe装双系统linux_如何安装linux,winpe下如何安装linux的ISO
  15. LOL自制皮肤0-介绍我自己
  16. 基于clamp.js封装vue指令,处理多行文本的溢出
  17. 亚马逊显示在售商品为0怎么办?亚马逊新品货还没到就在售了
  18. 视觉学习笔记Week9 Gazebo仿真环境下相机焦距计算
  19. mybatis自联表三级菜单
  20. jOOQ星期二:Markus Winand执行现代SQL任务

热门文章

  1. 怎么把游戏(魔兽世界)转移到另一个电脑上
  2. 数据库-sql语句-第一次课
  3. 手工定制Linux系统
  4. 已知鸡兔的脚一共80只C语言,在一个笼子里,有鸡又有兔共c只,数一下它们的脚,共有2v只.请问笼子里鸡、兔各有几只?...
  5. 中国前五国产数据库特性比较
  6. 2023第十届北京国际老年用品展览会,北京养老服务业展,8月
  7. java计算机毕业设计社区老年人信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  8. 计算机主机对人体的辐射,电脑会发出对人体有害的辐射吗
  9. oracle如何删除用户
  10. TextView字幕效果