DC恢复算法及其在图像压缩编码中的应用*
2013-11-24查宣威
查宣威,岑 峰
(同济大学 电子与信息工程学院,上海 201804)
离散余弦变换(DCT)作为图像视频压缩编码中的关键技术之一,是一种在信号和图像处理领域广泛应用的变换。许多图像视频标准都建立在DCT变换的基础上,诸如JPEG、MPEG和H.264/AVC等。为了降低复杂性,一般图像或图像帧被分割为N×N块来进行变换。作为一种良好的去相关变换,DCT变换将相同频率的成分表征为各种DCT系数。DCT系数主要分为两个部分:直流分量系数(DC系数)代表块内像素的平均值,拥有块像素的大多数能量;交流分量系数(AC系数)则反映了块内像素的细节信息。
JPEG图像压缩中对DC系数的压缩采用差分脉冲编码调制 DPCM (Differential Pulse Code Modulation)方法,对块的DC系数进行预测,将当前DC系数与预测值作差,进而传输预测残差。
在图像无损压缩领域,针对DPCM方法,O′Neal[1]根据最小均方差准则对整幅图像求统计平均,得出最佳预测系数。MUSMANN和ERDMANN[2]应用视觉特性,由活动函数和掩盖函数设计自适应量化器。GRAHAM[3]和COHEN[4]先后提出按最小梯度方向作自适应的预测器。然而这些都是应用在图像无损压缩中的像素级预测方法,而针对DCT变换后DC系数的预测方式研究较少。
H.264/AVC视频压缩编码中,帧内预测算法利用左块上块及右上块相邻像素形成最多9种方向的预测模式,其中DC模式用相邻像素的平均值作为本块的预测,即对本块的DC系数的预测。由于对视频编码实时性的要求,对帧内预测算法的研究重点集中在对预测模式的快速选择上,没有过多地论及单一预测模式,如DC预测模式的性能。
本文采用UEHARA T提出的一种利用图像特性恢复图像加密的DC系数的方法[5]对图像编解码过程中的DC系数进行预测,利用周边块边缘的像素值结合图像连续性的特点来预测DC系数,在图像压缩编码中取得良好的效果。
1 DC恢复算法
UEHARA T的DC恢复算法,即 USO方法[6],是针对DC系数丢失的图像的恢复算法,其主要是利用基于DCT变换压缩传输数字图像的两种特性。(1)相邻像素之间的差值满足高斯分布,或者说自然图像是画面连续的(如图 1所示);(2)数字图像的像素值需要被约束在0~255之间,而AC分量导致的像素值变化幅值较大时,必然对像素的均值产生限制,反之亦然。
图1 相邻像素之间的差值分布图
利用图像的像素连续性,相邻像素之间可以认为它们的像素值是相等的。而对于基于块分割编码的JPEG图像压缩编码、MPEG及H.264视频压缩编码,则是相邻块边缘的像素值之间可以认为它们近似相等。
特性(1)可表述为:
令(Bi,Bi+1)为两相邻 N×N 块,(pi,pi+1)为两块边缘处的像素点,(ρi,ρi+1)为其块丢失 DC系数后的边缘像素点。则有
特性 (1)使得在已知前一块的DC系数的情况下,通过式(1)近似地计算下一块的 DC系数,逐块反复,整幅图像的DC系数都可以恢复。
特性(2)可表述为:
Bi块 pi中像素值范围为像素值范围为,则
2 JPEG图像压缩编码下的DC预测算法
2.1 初始块的DC系数
由特性(1)可知,在恢复每个块的 DC系数的过程中,都会用到前一DC块或上方块的DC系数,在初始化情况下,初始块的DC系数是未知的,利用式(2)对图像进行一定调整,以期初始块的DC系数能是正确的。
但在图像传输过程中,图像在编码端进行压缩过程中可以压缩一部分的DC系数,这部分DC系数可以在解码端优化恢复算法性能。因为USO DC恢复算法是从图像第一行第一块开始逐块逐行进行DC恢复,所以第一块DC系数的正确性就显得尤为重要。传输初始化块的DC系数将是很好的选择,它能保证在DC恢复过程中,如果能保证图像块分割情况下块边缘是连续的话,每个块的DC系数将得到正确的恢复。
图2显示了在恢复算法中加入初始块的DC系数前后恢复图像的PSNR变化情况。相比于原算法,PSNR得到了一定的提升。在原算法中,利用式(2)在保证图像像素值不溢出0~255区间范围内对图像的初始块进行估计会带来一定的偏差,并且在逐块恢复DC系数的过程中,由于初始块DC系数不准确,会带来一定的差错传播。由图2可知,正确的初始块DC系数能提高DC系数恢复的准确度,并一定程度上控制差错传播。
图2 USO恢复算法加入初始块DC系数前后PSNR的变化
在JPEG图像压缩中,初始块的DC系数是需要传输的,而且在预测DC系数过程中,待预测DC系数块左方与上方块的DC系数是也是已知的,而且与实际值相同,这对于DC恢复算法而言,将进一步提高DC系数预测的准确度。
2.2 JPEG图像压缩编码中的DC系数预测
JPEG图像压缩编码中对DC系数的预测采用的是DPCM,即将上一块DC系数作为当前块的DC系数的预测值,然后与当前块的DC系数实际值作差,传输它们之间的差值。这样的方式是以块为单位利用图像的连续性,并且只是利用了当前块左方块的DC系数。
利用DC恢复算法进行JPEG DC系数预测前,在编码端要对当前块去除DC系数给块像素带来的均值,而在解码端要首先解码AC系数,以此来模仿DC系数丢失的情况。除初始块之外的块,DC系数通过对DC系数的预测获得。
为了获得块边界处图像连续性更高的方向,首先要计算图3中3种模式下两块像素间均方差,其中均方差更小的模式表明块边界像素在这个方向上更加连续。利用这些像素点的平均值,套用式(1)来预测本块的DC系数。
图3 水平相邻块像素的3种模式
实验对 2flowers(如图 4所示)分别进行了 DPCM预测与DC恢复算法预测。图5所示为它们的块差值分布,可见,DC恢复算法预测的DC系数与原始DC系数作差后,每个块的偏差更小,DC恢复算法能更有效地预测DC系数。
图4 2flower图像
图5 预测得到的块差值分布
对200张图片进行实验,每张图片使用DC恢复算法和DPCM分别进行预测。图6中下部柱状代表每张图片中DC恢复算法预测块DC系数优于DPCM方法的块比例,而上部则是DPCM方法更优的块比例。统计平均下来,图片中75%的块使用DC恢复算法进行预测能得到优于DPCM的预测值。
图6 DC恢复算法预测优于DPCM方法的块比例
利用DC恢复算法在JPEG图像压缩中能更准确地预测DC系数,使得JPEG图像压缩中需要传输的DC系数预测残差值更小,带来更高的图像压缩率。另外,对于MPEG及H.264视频压缩编码,其帧内预测模式中就有利用左上方块进行本块的DC预测,该方式与本文探讨的DC恢复算法在目的上有一定的相似性,如何将DC恢复算法应用于视频压缩编码中也是未来研究内容之一。
[1]O’NEAL J B.Predictive quantizing differential pulse code modulation for the transmission of television signals[J].Bell Syst. Tech.J., 1966,45(15):689-722.
[2]MUSMANN H G. Predictive image coding. Image Transmission Techniques, Academic Press, New York,1979:73-112.
[3]GRAHAM R E.Predictive quantizing of television signals.IRE Wescon.Convention Record, 1958:147-157.
[4]COHEN P,ADOUL J P.Adaptive differential coding of picture signals based on a local contour prediction[J].NTC′76, 1976,1(6.1):1-5.
[5]UEHARA T, SAFAVI-NAINIR, OGUNBONA P.Recovering DC coefficients in block-based DCT[J].IEEE Transactions on Image Processing, 2006,15 (11):3592-3596.
[6]Li Shujun, AHMAD J J, SAUPE D, et al.An improved DC recovery method from AC coefficients of DCT-transformed images [J]. 2010 17th IEEE International Conference on Image Processing(ICIP), 2010:2085-2088.
[7]The Independent JPEG Group.JPEG Software Release 8c(jpegsr8c)[DB/OL].http://www.ijg.org,2012-10-01.