[计算机]图像块平坦测度与系数扫描方式选择
1. 问题的提
在众多的图像编码建议中,如 DCT变换,将图
象从空间的表达式/空间域转化为频谱表达式/频率域。这样变换后,只需要少量的数据点
就可以表示图象。并且 DCT产生的系数很容易被量化,可获得好的块压缩。在量化后,图
像矩阵中的大多数 DCT系数都被截取为零值。在这些图像块的 DCT系数的游程编码前,一
般都要按一定并且可选的方式对系数进行重新排列,排列的目的是增加游程编码的效率,
使得尽可能多的零相连。在 建议中,在高级帧内编码模式中给出了一些指导性的建
议和扫描的顺序,但是建议本身并不提供如何实际地选择系数扫描模式。而且是不是只有
在高级帧内编码模式中才能应用多种扫描模式,建议并未指明
本人在实际的视频压缩编码研究和应用中发现,扫描方式的选择与图像的平坦测度有
直接的关系,并且通过平坦测度测定和图像块方差可以简单地确定系数扫描方式。并且正
确选择率较高。同时把这一扫描模式选择推广到任何帧内编码宏块
2. 块的平坦测
块的平坦测度(Flatness measurement)指块的像素在水平和垂直两个方向上的综合
分布特点。假定块的大小为 大小。块的平坦测度定义如下
其中和分别是块的垂直和水平平坦测度,a、b是比例因子,它们的作用是调节水平和
垂直平坦测度以获得子块的综合平坦测度。一般,和分别定义如下
其中:和定义如下
其中 FM()为相邻像素平坦测度函数,定义如下
T是控制阈值,控制阈值的确定由人类视觉系统对于像素亮度变化的敏感度决定。一
般而言,阈值可以由实验的出。对于控制阈值的选择是获得优良编码性能的关键,控制阈
值的选择依赖于图像块本身的起伏特性,图像的起伏特性可以由图像像素的方差表征。如
果图像的像素的方差较大,则阈值也要较大,否则,方差较小,阈值也小。方差的计算可
以由下式完成
其中
在实际计算时可以简化为
得到方差后就可以用实验的方法获得控制阈值 T,本人在实验中得到的经验公式为
另外控制阈值与量化参数也有一定的关系,直观的分析表明,控制阈值大,子块的平
坦度小,控制阈值小,子块的平坦度大,,因为控制阈值与图像的方差为线性关系。通过
对 HVS(Human Visual System)的分析,HVS对平坦区域比对非平坦区域更加敏感,因此如
果一个块的平坦测度较大,就要采用精细量化,反之则采用粗糙量化。通过平坦度和控制
阈值的关系我们可以调整量化参数,从而有效地分配码位,达到较好的图像质量
3. 系数扫描方式的选择策
可以通过测度图像块的平坦测度来决定对于子块的扫描方式。在 标准的高级帧
内编码方式中有三种扫描方式:ZigZag Scan(暂且称之为 Z形扫描)、Alternate-
Horizontal Scan(称之为轮流水平扫描) 和 Alternate-Vertical Scan(称之为轮流垂直扫
描)。但是我们可以把这种做法推广到一般的编码块中。一般而言,对于原始图像块采用
这种扫描选择策略获得的较好的编码性能,而帧差信号的分布随机性较大,一般适合 Z形
扫描。当然,如果采用也可以在一定程度上提高编码效率
Z形扫描 子块中所有频率分量都比较均匀,这种情况适合 Z形扫描。扫描路径见图
1。
轮流水平扫描 如果块中包含较强的水平频率分布,也就是非零 DCT系数主要集中垂
直方向的低频部分。表现在像素亮度上则是块在垂直方向上较为平坦。扫描路径见图 2。
轮流垂直扫描 如果子块中包含较强的垂直频率分布,也就是非零 DCT系数主要集中
水平方向的低频部分。表现在像素亮度上则是块在水平方向上较为平坦。扫描路径见图 3
具体确定扫描方式的策略如下
1) 如果水平平坦测度和垂直平坦测度之差小于 DIST,采用 ZigZag扫描。否则转
2。之所以采取这种方案是因为几乎一半以上的图像块适合 ZigZag扫描
2) 如果水平平坦测度和垂直平坦测度之差大于等于 DIST,则选择较小的平坦测度作
为扫描的方式。例如,水平测度小于垂直测度,就选择水平扫描方式
DIST称为测度失真,它表征在平坦度测定过程中可能出现的误差。这里有个问题就是
如何确定 DIST,DIST一般在通过实验得到,量化参数和图像方差
决定它的取值,其值一般在[5,9]中间取值。通过 DIST的选取能明显提高扫描模式
的选择的正确率。DIST值取得大,有利于 ZigZag扫描的正确选择,而 DIST取值小,有利
于另外两种扫描的正确选择
以上对于 DIST的选择是静态的。另外,可以设计一个函数,,其中是图像的垂直和
水平平坦测度,是图像的方差,Q是图像的量化参数
由于平坦程度的测定比较粗糙,控制阈值的确定也只是从统计意义上得出,因此通过
上述方法得到的扫描模式不可能保证总是效率最好的编码,有时候会出现相反的情况,但
是将上述方法应用于帧内编码宏块时命中率一般大于 65%
方差的计算量较大,难以在实时应用中使用。但是考虑到原始图像的连续性可以计算
宏块的方差,在实际操作时只抽取部分像素作为样本,从而减少算量。例如可以采用下图
的方法在计算图像的方差是可以采取隔行列,这样获得方差计算量可以减少到 1/4,计算
出的方差用于四个子块的平坦度测定。通过对方差以及平坦测度的计算可以明显看出其算
法规律性强,适合于利用 MMX技术指令实现,从而大大提高速度
一般将平坦度测定用于帧内编码的图像宏块中,而在帧间编码的宏块中统一采用
ZigZag扫描,因为,帧间编码图像宏块像素分布随机性大,采用其他两种类型的扫描策略
编码效果不明显,并且采用上述扫描方式选择方法命中率较低,而复杂的选择策略显著影
响编码速度
通过对 6000帧图像中所有的 I宏块进行统计,得到下
方法平均位数(Bit) 单纯 Z形扫描 平坦测度选择扫描 扫描方式对编
码性能的影响
4. 总
通过平坦测度来选择扫描模式具有简单、有效和可操作性强的特点,便于在实际应用
中采用
参考文献
1. 贾志科,崔慧娟,唐昆,冯重熙。"活动图像编码器码率控制研究",1997,通
信学报。2. Sung Deuk Kim,Jaeyoun Yi,Hyun Mun Kim,and Jong Beom Ra."IEEE
TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO THCHENOLOGY",FEBRUARY
1999,VOLUME 9,NUMBER 1.