《DCT变换及量化.doc》由会员分享,可在线阅读,更多相关《DCT变换及量化.doc(8页珍藏版)》请在金锄头文库上搜索。
1、整数变换及量化1.目的:进一步节省图像传输码率对图像信号进行压缩方法去除图像信号中的相关性,减少图像编码的动态范围 变换编码 量化技术 将图像时频信号变换成频域信号 根据图像动态范围的 大小确定量化参数信号能量集中在低频,比时域时码率下降 H.264中,将两个过程中的乘法合二为一,并进一步采用整 数运算,减少了编解码的运算量,提高图像压缩的实时性流程图:2. 整数变换(1) 一维N点离散余弦变化(DCT)为:其中,是输入时域序列的第n项,是输出频域序列中的第k项,系数定义为:对,k=0时的系数为直流分量,其它系数成为AC系数。(2) 二维N*N点图像块的离散余弦变化(DCT)为:可理解为先对图
2、像块的每行进行一维DCT,在对经行变换的块的每列再应用一维DCT。可以表示为:为图像块中第i行第j列图像的残差值,是变换结果矩阵Y相应频率点上的DCT系数。用矩阵表示:其中,。H.264中对4*4的图像块进行操作,则相应的4*4的DCT变换矩阵A为:设,则A中a,b,c是实数,而图像块X中元素是整数。对实数的DCT,由于在解码端的浮点运算精度问题,会造成解码后的数据的失配,进而引起漂移。H.264由于预测过程,其对预测漂移是十分敏感的,因此,对A进行改造,采用整数DCT技术,可有效减少计算量,同时不损失图像的准确度。,为简化,取d=0.5.“”表示结果中的每个元素乘以矩阵E中对应位置上的系数值
3、的运算。同时为了保持变换的正交性,对b修正,取。对矩阵C中第2行和第4行,和CT中的第2列和第4列,乘以2改造,改造矩阵E为Ef。 (1)“”对每个矩阵元素只进行一次乘法。 归纳到量化里。只剩下整数的加法、减法和移位运算。实际的DCT输出为: (2)r=2:整数DCT变换 r=1:Hadamard变换(程序中用的算法)3. 量化(1)概念H.264中,量化步长一共52个值。QP是量化参数,是量化步长的序号。 QP每增加6,增加一倍。(QP小,量化精细;QP大,量化粗糙)亮度编码:采用QP值范围051;色度编码:采用QP值范围039。(避免在较高的量化步长时出现颜色量化人工效应)。(2) 量化理
4、论:H.264中,量化过程是对前面(1)式的DCT结果进行操作:其中,是矩阵Y中的转换系数,是输出的量化系数,是量化步长。实际上,H.264量化过程还要完成DCT变换中的“”乘法运算,即: (3)其中,是矩阵W中的转换系数(见(2)式),PF是矩阵中的元素,根据样本点在图像块中的位置(i,j)取值:利用量化步长()随量化参数(QP)每增加6而增加一倍的性质,可以进一步简化计算。设:令: floor()为取整函数(不大于输入实数的最大整数)。式(2)可写成:这样,MF可以取整数,见下表:表中只列出QP值为0到5的MF值,对于QP值大于5的情况,只是qbits值每增加6而增加1,而对应的MF值不变
5、。这样,量化过程则为整数运算,并且可以避免除法。(3) 量化运算公式:具体的量化过程的运算为:f为偏移量,用以改善恢复图像的视觉效果。对帧内预测图像块f取,对帧内预测图像块f取。4. DCT直流系数的变换量化(Hadamard变换)如果当前处理的图像宏块是色度块或帧内16*16预测模式的亮度块,则需要将其中各图像块的DCT变换系数矩阵W中的直流分量或直流系数按对应图像块的顺序排序,组成新的矩阵,再对进行Hadamard变换及量化。(上面的量化过程就不需对各图像块的单独进行量化)(1) 帧内16*16预测模式亮度块的直流系数变换量化16*16的图像宏块中有4*4个4*4的图像亮度块,所以亮度块的为4*4矩阵,其组成元素为各图像块DCT的直流系数,见下图: 对亮度块的Hadamard变换为:YD是Hadamard变换结果。接着对YD再进行量化输出:是位置为(0,0)的MF系数值。4*4Hadamard变换也可采用快速算法(上面DCT快速算法图中有)。(2) 色度块的直流系数变换量化色度块的Hadamard变换为:YD再进行量化输出: