基于Baseline的H.264去块效应滤波的快速算法
2011-02-23郑建宏
陈 石,郑建宏
(重庆邮电大学通信与信息工程学院,重庆 400065)
0 引言
由于H.264/AVC视频编码标准比以前的视频编码标准拥有更高的编码效率,所以获得了广泛的使用(如可视电话、视频会议、视频监控)。但是,H.264/AVC的新功能同时大大地增加了运算复杂度。这也影响到其在可移动设备(如手机,PDA等)上的发展。因此,对解码算法进行优化已经成为了H.264/AVC在便携设备上发展的一个重要方向。
去块效应滤波器是H.264/AVC新增的一个重要功能,它用于消除运动补偿和离散余弦变换(discrete cosine transform,DCT)产生的方块效应。虽然去块滤波器提高了输出视频的质量,但是H.264的计算复杂度也比H.263和MPEG-4高出2~3倍之多。经过其他学者的研究[1]发现H.264的解码器消耗的时间分配如下:去块滤波 (33%)、插值(25%)、熵解码(13%)和图像重建(13%)。很明显,去块滤波的计算量是最大的。因此,降低去块效应滤波的运算复杂度对H.264的广泛使用具有一定的实用价值。
目前,国内外大量的去块滤波算法的研究重点都放在硬件实现方面,其中文献[2]首次基于 H.264的滤波算法提出了其硬件实现结构,然后文献[3-5]在其基础上针对不同的硬件环境提出了各自的硬件构架的优化方案。这些研究在去块滤波算法的硬件实现上取得了一定的进步,但是这也局限在硬件实现方面,对去块滤波算法并没有进行优化改进。
本文在文献[6-7]的基础之上,结合相邻的4×4块边界强度(boundary strength,BS)的相似性,优化了原有的快速算法。并使用H.264标准的参考软件JM8.6对优化后的算法进行测试。结果显示,优化算法较文献[7]的算法虽然在峰值信噪比(peak signal to noise ration,PSNR)值上有稍微的降低,但是能进一步减少去块滤波所消耗的时间。
1 H.264/AVC的去块滤波算法
在H.264/AVC的标准中,去块滤波器将每个已解码中16×16宏块作为一个滤波单元进行相应的滤波过程,如图1所示。图1中,已解码的16×16宏块总共有8条边界需要进行滤波,分别为4条垂直边界(a/b/c/d)和4条水平边界(e/f/g/h)。每条垂直或者水平边界需要进行16次像素线(0~15)的数据处理得到各自的BS。每条像素线包括了边界两侧的4×4块(Q 块和 P 块)的 4 个像素点(Q0,Q1,Q2,Q3和P0,P1,P2,P3)。决定每条像素线的BS规则如表1所示[8]。
图1 16×16宏块计算边界强度的顺序Fig.1 Order of computing boundary strength inmacroblock
表1 像素线的BS判决规则Tab.1 Rule of judging boundary strength of the line of pixels
根据上面的描述,基于Baseline Profile的H.264 BS求解的标准过程如下:首先对4条垂直边界按照abcd的顺序进行处理,每条垂直边界按照0到15的顺序(从上到下),根据表1中BS的判断条件进行16次BS的计算。然后,对4条水平的边界按照efgh的顺序进行处理。类似地,每条水平边界从左到右进行BS的计算。最终,经过计算后得到128(16×8)的BS值。在这里,仅仅以亮度宏块作为例子介绍了求解去块滤波的BS过程。而色度宏块的BS和亮度宏块的BS相似,具体过程可以参考文献[8]。
从文献[9]中可知,在去块滤波的运算中,有大约90%的计算量都集中在了求解滤波强度上。因此,我们将优化的重点放在BS算法上。
2 边界强度算法优化
根据H.264/AVC的编解码原理,编解码中的运动估计、运动补偿、DCT等过程的最小处理单元是4×4块。一个4×4块作为一个独立的单元,其中的像素点拥有相同的帧内或帧间编码模式和运动向量以及量化后的变换系数。凭借这一特点可以推断,在图1中的垂直边界或者水平边界上的处于同一个4×4块中的4条像素线有相同的BS。因此,BS算法优化的第一步就是在计算每条BS时,只需要对像素线0/4/8/12进行处理。由于像素线1/2/3和像素线0处于同一个4×4块中,所以像素线1/2/3的BS值等于像素线0的值。同理,像素线5/6/7的BS值等于像素线4的值,像素线9/10/11的BS值等于像素线8的值,像素线13/14/15的BS值等于像素线12的值。通过这样的处理可以足足减少3/4的运算量。
2.1 帧内预测模式的优化
从表1去块滤波BS的判决规程可知,P块或者Q块的预测模式是否为帧内预测模式和判决的边界是否为宏块的边界这2个条件决定了BS值为4或者3,而跟具体的某条像素线无关。所以,根据边界两边宏块的预测模式以及判决边界的位置情况就能够清楚BS取值,即BS=4或者BS=3。这样,就可以省略掉重复地对帧内预测模式中的16个边界强度相同的像素线进行计算的过程。
2.2 帧间预测模式的优化
H.264/AVC的帧间预测与以往的视频标准有所不同,它的宏块分割方式更多。16×16宏块总共有5种分割方式(1个16×16子宏块;2个16×8子宏块;2个8×16子宏块;4个8×8子宏块;Skip宏块),而8×8子宏块又可以进一步分割成为1个8× 8;2个8× 4;2个4× 8;4个4×4。从文献[10]可知,较大的宏块分割模式(skip,16 ×16,16 ×8,8 ×16)占所有分割模式的60%,而且,skip模式所占的比例随着量化参数(quantization parameter,QP)值的增大还将继续增加。当QP值为40时,仅仅skip模式所占的比例就接近60%了。这种特点给我们进一步优化BS算法提供了依据。
根据H.264/AVC标准,在帧间预测模式为16×16模式、16×16×8模式、8×16模式中的4×4块拥有相同的参考帧和运动向量。其帧内预测模式简化地界强度计算的情况如图2所示。图2中以16×8模式为例说明如何对原算法进行优化。对于垂直边界而言,边界b两边的P块和Q块都处于同一个16×8模式中,所以P块和Q块有相同的参考帧和运动向量,根据表1的BS判决规则可知BS=0。同理,边界c和d的BS也等于 0;对于水平边界而言,边界f和h两边的P块和Q块也处于同一个16×8模式中,所以提前判定边界f和h的边界强度为 0;而对于边界g,由于两边的P块和Q块处于不同的16×8模式中,则只能按照原有规则进行判决。同样的道理,在16×16的模式中,把垂直边界b,c,d和水平边界f,g,h的边界强度提前判决为 0;在8×16模式中,把垂直边界b,d和水平边界f,g,h的边界强度提前判决为0。最后对进行了提前判决的边界还要判断其量化后的变换系数值。如果边界处于4×4块有非零系数,则BS修改为 2;否则保持不变。图2中的虚线表示提前判决的边界。
图2 帧内预测模式简化边界强度计算的情况Fig.2 Situation of simplifying the computation of BS in inter-prediction
在H.264/AVC的帧间预测中有一类比较特殊的模式—skip模式。在skip模式中,宏块必须满足下面4个条件。
·帧间预测模式为16×16模式;
·参考帧只能为前一帧图像;
·运动向量为 0;
·量化后的变换系数全为 0;
很明显,在满足skip模式条件的宏块的边界上不会产生方块效应的。特别是当大量的预测模式是skip模式的时候,通过不对skip模式的宏块的边界进行判断,能够节省大量的计算,降低去块滤波消耗的时间。
综上所述,帧间预测优化的过程如下。
2.3 BS的相似性
在H.264/AVC中,相邻近的4×4块往往具有很高的相似性。由于这样的特点,使得相邻的4×4块的边界具有相同边界强度。为了得出边界强度的相关性,针对不同复杂度的标准视频测试序列(foreman,container,news,silent)不同的 QP 值(23,28,33,38)的情况下,对同一条边界的边界强度相等的情况进行统计。表2显示了不同序列中不同QP值的情况下满足同一条边界的BS相等的概率。
表2 同一边界中BS相等的概率Tab.2 Probability of the same BS in the same boundary
由表2可知,在大部分的情况下,整条边界的边界强度相等的概率很高。这样,在求解同一边界的16个边界强度值的时候,可以只对第一个像素线进行处理得到BS[0]。这样处理后,可以减少计算边界强度的次数,进一步减少运算量。
综上所述,本文结合H.264/AVC编解码的原理中的特点,并且根据帧内预测模式和帧间预测模式中各自的特点优化了求解边界强度的流程。最后,依据相邻边界强度高度的相似性进一步减少了求解BS的计算量。图3为优化后BS计算的算法流程。
图3 优化后的快速算法流程Fig.3 Flow of improved fast algorithm
3 软件测试结果
为了验证该算法的性能,使用H.264标准的参考软件JM8.6,以不同的标准视频测试序列作为测试向量,对快速去块滤波算法进行性能测试,并且将文献[7]中的算法以及本文提出的算法进行比较。在试验中,使用到的测试序列主要有foreman,container,news,silent等 4 种(共 300 帧),测试序列是基于Baseline Profile的QCIF格式(176×144)。帧率为30 frame/s,视频序列的类型为IPPP,量化参数QP 分别为 23,28,33,38。
在计算时间消耗方面,使用Intel VTune对参考软件JM8.6进行测试。图4列举出了本次测试的结果。其中,Time(*)为解码器的去块滤波消耗的时间,ΔTime为时间减少率。显然,本文算法在减少计算量上的效果优于参考算法中的效果。
图4 不同算法中减少去块滤波耗时的效果Fig.4 Effect of reducing time of deblcoking filter in different algorithm
本次测试中,使用峰值信噪比PSNR作为客观视频质量的评审依据。表3列举出了本次测试的结果。
表3 不同序列的ΔPSNRTab.3 ΔPSNR in different video sequence
PSNR(*)为某种算法得到的PSNR值,ΔPSNR为该算法与原始算法的平均PSNR差值。
通过表3可以发现,参考算法(文献[7]的算法)是一种无损失的算法,因为它仅仅利用了H.264标准中的一些特点,对去块滤波算法进行优化。而本文提出的算法在其基础上,引入了一些会带来损失的改进,这也使得PSNR值有大约0.15 dB的下降。
虽然PSNR存在稍微的下降,但是人眼根本无法感觉到这样细微的损耗,从而不会对图像的主观质量造成任何影响。所以这样的损耗是在允许范围之类的。图5a为JM8.6解码后的原始图像,而图5b为经本文优化算法解码后的图像。单单从肉眼上很难发现两幅图像的差别。
4 总结
针对在H.264/AVC解码器中去块滤波的复杂度较高的情况下,本文根据H.264标准自身的特点以及大量试验得到规律,优化了基于Baseline的去块滤波算法中的求解BS的算法。经过软件试验证明,在不影响主观质量的前提下,虽然PSNR有较小的减小(大约-0.15 dB),但是获得了更大的时间减少量(平均时间减少量大约为56.4%)。通过这样的结果,可以说明去块滤波模块的复杂度大大地减少,这有助于H.264/AVC在其他硬件平台中的实现。
图5 2种算法处理的比较Fig.5 Comparison of two algorithms
[1]HOROWITZ M,JOCH A,KOSSENTINI F,et al.H264/AVC Baseline Profile Decoder Complexity Analysis[J].IEEE Transactions on Circuit and System for Video Technology,2003,13(7):704-716.
[2]HUANG Yu-wen,CHEN To-wei,HSIEH Bing-Yu,et al.Architecture Design for Deblocking Filter in H.264/AVC[C]//Proc of ICME 2003.Baltimore,Maryland,USA:IEEE Press,2003:693-696.
[3]SHENG Bin,GAOWen,WU Di.An Implemented Architecture of Deblocking Filter for H.264/AVC[C]//Proc of 2004 International Conference on Image Processing(ICIP).Singapore:IEEE Press,2004:665-668.
[4]CHANG Shih Chien,PENG Wen Hsiao,WANG Shih Hao,et al.A Platform Based Bus-interleaved Architecture for Deblocking Filter in H.264/AVC[J].IEEE Trans Consum Electron,2005,51:249-255.
[5]SIMA M,ZHOU Yuan-hua,ZHANGWei.An Efficient Architecture for Adaptive Deblocking Filter of H.264/AVC Video Coding[J].IEEE Trans Consum Electron,2004,50(1):292-296.
[6]高媛,胡瑞敏,陈皓.基于BS预判的H.264去块滤波优化算法[J]. 计算机工程与应用,2007,34:38-40.
GAO Yuan,HU Rui-min,CHEN Hao.Optimization of deblocking filter for H.264/AVC based on pre-juudging BS[J].Computer Engineering and Applications,2007,34:38-40.
[7]YUAN Li,NING Han,CHEN Chen.A Novel Deblocking Filter Algorithm In H.264 for Real Time Implementation[C]//MUE.Third International Conference on Multimedia and Ubiquitous Engineering.Qingdao:Computer Society Press,2009:26-30.
[8]LIST P,JOCH A,LAINEMA J,etal.Adaptive Deblocking Filter[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):614-619.
[9]LAM kin-hung.Reduced Complexity Deblocking Filter for H.264 Video Coding[C]//ACSSC.The Thirty-Ninth Asilomar Conference on Signals,Systems and Computers.Pacific Grove:IEEE Press,2005:1372-1374.
[10]ZHANG Dong-ming,SHEN Yan-fei,LIN Shou-xun.Fast Inter Frame Encoding Based on Modes Pre-Decision in H.264[C]//ICME.IEEE International Conference on Multimedia and Expo.Amsterdam:IEEE press,2005:530-533.
(编辑:刘 勇)