3. 系数扫描方式的选择策略
可以通过测度图像块的平坦测度来决定对于子块的扫描方式。在H.263标准的高级帧内编码方式中有三种扫描方式: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形扫描 18.97 平坦测度选择扫描 16.63 扫描方式对编码性能的影响
4. 总结
通过平坦测度来选择扫描模式具有简单、有效和可操作性强的特点,便于在实际应用中采用。
1. 贾志科,崔慧娟,唐昆,冯重熙。"H.263活动图像编码器码率控制研究",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.
| 对此文章发表了评论 |