打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
H.264/MPEG-4 Part 10 White Paper 译(四) Transform & Quantization(上)
H.264/MPEG-4 Part 10 White Paper 译(四) Transform & Quantization(上)
2008-10-10 21:24
变换和量化
1.                  引言
联合视频工作组(JVT)正在定案一个新的自然视频图像编码(压缩)标准。新标准[1]被称为H.264或称作MPEG-4 Part 10、“高级视频编码(AVS)”。这篇文档描述了标准所定义或隐含的变换和量化过程。
每个残差宏块被传输,量化并编码。之前的标准如MPEG-1,MPEG-2,MPEG-4和H.263使用了8X8离散余弦变换(DCT)作为基本变换。H.264的基本规范使用三种变换,采用何种变换取决于被编码的残差数据:(1)对宏块内部(以16X16模式预测)的亮度直流系数4X4数组进行变换。(2)对(任何宏块中的)色度直流系数2X2数组进行变换(3)对所有其它的4X4块的残差数据进行变换。如果使用了“自适应块大小变换”选项,则根据运动补偿块大小(4X8,8X4,8X8,16X8等等)选择更进一步的变换。
宏块中的数据以图Figure 1-1中所示顺序进行传输。如果宏块以16X16帧内模式编码,则标注为“-1”的块(包含每个4X4亮度块的直流系数)首先被传输。然后,亮度残差块0-15按所示顺序传输(16X16宏块内部直流系数被设为0)。块16和块17各自包含一个来自色度分量Cb和Cr的2X2排列。最后,色度残差块18-25(直流系数为0)被发送。
2.       4X4残差变换和量化(块0-15,18-25)
在运动补偿预测和帧内预测后对4X4残差数据块(在Figure 1-1中标志为0-15和18-25)使用这个变换。这个变换基于DCT但是有一些基本的区别:
(1)       它是一个整数变换(所有的操作可以用整数算术进行,没有降低精度)。
(2)       逆变换在H.264标准中已经被充分描述,如果这个描述被正确的继承,那么编码器与解码器之间不应该存在不匹配。
(3)       变换的核心部分是没有乘法的,即它只需进行加、减和移位。
(4)       一个缩放乘法(完整变换的一部分)被融入到量化器中(减少了总的乘法次数)。
变换和量化的整个过程可以使用16位整数算术来进行,并且每个系数只乘一次,没有降低精度。
2.1              从4X4 DCT推出的整数变换
对一个输入阵列X进行4X4 DCT变换:
这里
这个矩阵乘法可以被分解成下面的等价形式(等式Equation 2-2)
CXC^T(即CXC’)是一个“核心”2-D变换。E是一个比例因子矩阵,并且符号⊕(圆圈中实为X号)表示(CXC’)的每个元素与E中对应位置的比例因子相乘(用点乘代替矩阵乘法)。常量a和b与之前值相等,d=c/b(近似于0.414).
为简化变换实现过程,d被近似成0.5。为了确保变换仍然正交,b也需要进行改变。所以
a=1/2   b=(2/5)^(1/2)   d=1/2
矩阵C的第2行和第4行和矩阵C’的第2列和第4列以一个2为比例因子缩放(乘以2)并且后缩放矩阵E也被按比例缩小来进行补偿。(这就避免了核心变换CXC’中乘1/2的运算,使得使用整数算术运算不会降低精度)。最终的变换变成:
这个变换是4X4 DCT变换的一个近似变换。因为改变了因子d和b,所以新的变换的输出不会与4X4 DCT变换完全相同。
逆变换的形式为:
这次,Y的每个系数与矩阵Ei中对应位置的合适加权因子相乘,以此来进行预缩放。注意矩阵C和C’中的+/-(1/2)因子;它们可以通过一个右移来实现并且不会造成明显的精度损失,因为Y已经经过了预缩放。
正变换和逆变换都是正交的,即T^-1(T(X))=X.
2.2                  量化
H.264使用了一个纯量量化器。它的定义和实现因为实际要求而变得复杂。它有以下要求:
(1)避免除法和(或)浮点算术运算。
(2)使上述的后缩放和预缩放矩阵Ef,Ei中的因子统一。
基本的正变换量化器操作如下:
Zij = round(Yij/Qstep)
Yij是上述变换的一个系数,Qstep是量化步长,Zij是一个量化系数。
标准支持的量化步长有52种,量化步长根据量化参数QP建立索引。每个量化参数对应的量化步长的值如表Table 2-1所示。注意QP每增加6,量化步长约增加一倍;QP每增加1,量化步长增加12.5%.各种各样的量化步长使得编码器可以精确,灵活的在比特率和质量之间权衡。亮度和色度的QP值可能不同,虽然两个参数的变化范围都是0-51,但QPChroma是从QPy中得来的,QPc比QPy小,QPy的值大于30。一个用户定义的QPy和QPc之间的偏移量或许可以从一个图像参数集中得到。
后缩放因子a^2,ab/2或b^2/4(Equation 2-3)是正量化器的一部分。首先,输入块X经过变换产生一个系数未经缩放的块W=CXC’。然后,每个系数Wij被量化并且缩放(在单一操作中)。
PF根据位置(i,j)来决定是为a^2,ab/2 或是b^2/4(如式Equation 2-3所示):
--------------------------------------------
Position                            PF
--------------------------------------------
(0,0),(2,0),(0,2),(2,2)             a^2
(1,1),(1,3),(3,1),(3,3)             b^2/4
其它                                ab/2
------------------------------------------------------------------
因子(PF/Qstep)在H.264参考模型程序[3]中的实现方法是乘以MF(一个乘法因子)再进行一次右移,这样就避免了除法操作。
这里MF/2^qbits=PF/Qstep,qbits=15+floor(QP/6)
用整数算术,Equation 2-6可以用下述方法实现:
在这里>>代表二进值右移。在参考模型程序中,f在帧内块中等于2^qbits/3,在帧间块中等于2^qbits/6.
例:
设QP=4,则Qstep=1.0
(i,j)=(0,0),则PF=a^2=0.25
qbits=15,则2^qbits=32768
MF/2^qbits=PF/Qstep,则MF=(32768 X 0.25)/1=8192
根据QP和系数位置(i,j)值,MF的一组值(每组6个)如表Table 2-2所示:
Table 2-2 Multiplication Factor MF
Positions
Positions
QP
(0,0),(2,0),(2,2),(0,2)
(1,1),(1,3),(3,1),(3,3)
Other positions
0
13107
5243
8066
1
11916
4660
7490
2
10082
4194
6554
3
9362
3647
5825
4
8192
3355
5243
5
7282
2893
4559
表中第二列和第三列(因子为b^2/4和ab/2的位置)的值对Equaton 2-6的结果做了些小的修改(因为只有逆量化过程被标准化,所以为提高解码器的可感质量而改变一个前置量化器是可以接受的)。
QP>5的时候,MF因子保持不变(以6为周期重复上表)但是QP每增加6,除数2^qbits增加一倍。例如,当6<=QP<=11时,qbits=16;12<=QP<=17时,qbits=17等等。
类别:音视频处理 |
|添加到搜藏 |分享到i贴吧 | 浏览(621) |评论 (0)
上一篇:H.264/MPEG-4 Part 10 White Pap...    下一篇:H.264/MPEG-4 Part 10
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MPEG4 & H.264学习笔记之三 ------ 图像模型(图像处理过程) --H.264的博客
[图文]MPEG-2压缩编码技术原理应用(六)
帧内预测之函数Intra16x16_Mode_Decision的分析与理解
多媒体技术及其应用与发展论文(本科)7
H.264编码技术
mp3解码原理_摘抄2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服