基于快速边界强度判定的H.264去块滤波新算法
李康顺1, 2,金晶1,王峰3
(1. 江西理工大学 信息工程学院,江西 赣州,341000;
2. 华南农业大学 信息学院,广东 广州,510642;
3. 武汉大学 软件工程国家重点实验室,湖北 武汉,430072)
摘要:在H.264/AVC标准中,去块滤波是提高图像质量和压缩效率有效手段,但其计算复杂度所占时间极大。在整个滤波过程中,边界强度(Bs)的计算复杂度的计算时间几乎占90%,在重点分析H.264的去块滤波的Bs判定准则之后,提出一种基于快速Bs判定的H.264去块滤波优化算法(FF算法)。通过实验数据分析,FF算法能够有效地确保视频序列的编解码质量,并比JM中基准算法降低了近50%的Bs判定时间及近20%的滤波时间;与其他改进滤波算法相比也有自身优势,因此,FF算法能够有效地降低去块滤波中的计算复杂度,有助于视频序列实时传输的实现。
关键词:边界强度;帧间预测;片类型;去块滤波;H.264/AVC标准
中图分类号:TN919.81 文献标志码:A 文章编号:1672-7207(2012)01-0221-08
A new algorithm for H.264 de-blocking filter based on quick decision of boundary strength
LI Kang-shun1, 2, JIN Jing1, WANG Feng3
(1. School of Information Engineering, Jiangxi University of Science & Technology, Ganzhou 341000, China;
2. School of Information, South China Agricultural University, Guangzhou 510642, China;
3. State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China)
Abstract: In the H.264/AVC standard, the de-blocking filtering is an effective way to improve the image quality and compression efficiency, but it contains a very high computational complexity. In the whole filtering process, the computation of the boundary strength (Bs) is the largest part, which is almost 90%. A new algorithm for H.264 de-blocking filter based on quick decision of Bs is proposed after analyzing the theory of Bs decision. The experimental data show that the FF algorithm is able to maintain the quality of codec video images, and compared with standard algorithm in JM, it can reduce nearly 50% of Bs decision time and nearly 20% of filtering time. Then, compared with any other improved filtering algorithms, it has its own advantages. Therefore, the FF algorithm can effectively decrease the computational complexity of de-blocking filter and can promote the realization of real-time transmission of video sequences.
Key words: boundary strength; inter prediction; slice type; de-blocking filter; H.264/AVC standard
作为新一代视频压缩编码标准,H.264/AVC引入了一系列能有效提高视频质量及压缩效率编码技术,如4×4整数DCT变换、1/4像素精度的运动估计及去块效应自适应滤波器等。但这些技术增加了编码的计算复杂度,对于同一个编码序列,H.264/AVC虽然比H.263节约近50%的码率[1],但是其计算复杂度是H.263的4~5倍[2]。去方块滤波器是H.264/AVC视频编码的重要组成部分之一,该系统需通过极高的计算复杂度来改善视频质量和提高压缩效率,除去其中的乘、除法外,仍占据解码器的1/3[3-4]。H.264/AVC中滤波器采用自适应去块滤波算法,利用基准准则得到边界强度Bs,再进行不同强度的滤波,其高自适应性主要表现在等级上对块边界和像素进行循环和条件处理,使得Bs的计算量占据整个去块滤波的90%[5-6]。因此,简化Bs的计算量是能够有效降低去方块效应计算复杂度的有效思路。高媛等[7]提出了一种简化Bs判断准则的H.264去块滤波算法,与基准算法相比,尽管减少了近70%的Bs计算时间,但是其滤波后各个分量(Y, U, V)的峰值信噪比却下降1 dB左右,极大降低了滤波后的视频质量。周芦明等[8]提出了一种基于纹理方向自适应的H.264去块滤波优化算法,它依据图像相邻像素的相关性,对帧内预测编码时的边界强度Bs进行优化,与基准算法相比,该算法在一定程度上提高了重构帧中各个分量(Y, U, V)的峰值信噪比0.4 dB左右,但是,其编码帧的主观视觉和滤波速率均没有有效地提高。路文等[9]利用帧间预测编码的STGS图的统计特性来替代复杂的Bs判断准则,提出了一种基于内容预分析的环路滤波算法。与基准算法相比,该算法以牺牲部分各个分量(Y, U, V)的峰值信噪比为代价来降低Bs计算量,使得滤波时间提高0.99%~ 2.43%。
1 H.264/AVC去块效应滤波器
在H.264视频编码中,从原理上讲,方块效应的产生主要体现在[9]:(1) 预测残差的DCT变换系数量化相对粗糙,使得系数的恢复带有误差,进而造成主观视觉不连续;(2) 运动补偿的像素点可能从不同帧的不同位置上复制而来,使得运动补偿块的匹配度不能绝对准确,进而造成视觉上不连续。为消除这种方块效应,H.264引入了自适应环路滤波器。
1.1 边界强度(Bs)计算
在去块滤波时,边界强度与相邻块的编码方式及边界上样点值的变化梯度相关,首先以当前宏块中相邻的4×4块为基础进行边界强度Bs计算,然后,依据Bs并以raster方式对4×4块进行扫描式滤波,按照先亮度后色度,先横向后纵向的顺序处理。如图1所示,8个像素样点(p0, p1, p2, p3和q0, q1, q2, q3)分别在相邻块的(p块和q块)垂直和水平边界上。
图1 垂直和水平边界上的像素样点
Fig.1 Pixel points of vertical and horizontal boundaries
表1所示为边界强度Bs参数(0~4)与相邻图像块 (p块和q块)的模式以及编码条件相对应的基准准 则[10-12]:(1) 对于涉及参考像素相对较少帧内预测,鉴于其产生的残差值比帧间预测大,其变换量化后的误差也相对较大,此时Bs判为3或4才能满足滤除块边界上产生的虚假边界;(2) 对于参考像素相对较多的帧间预测,残差系数较小,只需轻微滤波。当当前滤波块与参考块不匹配,需进行残差系数进行残差编码,则Bs设为2;当2个图像块的运动补偿参考帧不同时,则Bs设为1;当2个图像块的参考帧相同时,残差系数为0,Bs设为0来跳过滤波处理。综上可知,Bs的设置主要取决于残差。
表1 边界强度Bs与编码模式的关系
Table 1 Relationships between Bs values and coding models
依据表1中基准Bs判定准则并结合JM参考代码中的相关函数,可得基准算法的Bs判定流程图,如图2所示。基准算法的边界强度Bs判定是以像素为单元,所以,对于宏块(16×16)中的每条滤波边的Bs要循环计算16次得到。显然,这样的分支与循环导致滤波复杂度很大。
1.2 滤波过程
在H.264/AVC视频编码的去方块滤波中,为了保持图像的逼真度,应该在尽量滤除由DCT变换系数产生的虚假边界的同时,保持图像的真实边界不被滤波。(块间的边界门限值)和(块内的边界门限值)是被定义的1对与各量化步长相对应的参数[13],用来检查图像的内容,以决定被滤波的样本点集。图1中的像素样点只有同时满足下列3个条件时才会被滤波:
< (1)
< (2)
< (3)
图2 基准算法的Bs判断的流程图
Fig.2 Flow chart of Bs judgment of standard algorithm
式(1)~(3)中和已经定义在码表内,需根据边界两边的平均量化参数QP进行查找,且和的查表指数(IndexA和IndexB)公式可表示如下:
(4)
(5)
式中:QP为0~51的DCT变换的量化步长;OffsetA和OffsetB为编码器中供选择的偏移量。在片级上,对于某个特定的量化步长,编码器可以选择偏移量(OffsetA和OffsetB)来调整和,相对于0偏移增加或减少滤波强度,获得比默认表(当偏移量为0时)效果更好的图像,以达到优化滤波性能和解码视频质量的作用。滤波器的实现如下[14]:
(1) 当Bs=0时,对应于宏块中的平坦区域,此时的残差系数为0,无需对边界进行滤波处理。
(2) 当Bs=1,2或3时,对应于宏块中相对平坦的区域,不用区分虚假和真实边界,需要用1个4抽头的线性数字滤波器对p0,p1,q0和q1样点值进行滤波,并输出和。对于宏块中的亮度分量,当满足<,则用另一个4抽头的线性数字滤波器滤波对输入的样点值进行滤波并产生;若满足<,则需通过另一个4抽头的线性数字滤波器对输入样点值滤波并产生。
(3) 当Bs=4时,对应于帧内预测宏块边界,是滤波中极不平坦的区域。对于p块(图1所示)中的亮度块,若和满足<且<:需用1个5抽头的线性数字滤波器对p0,p1,p2,q0和q1滤波,并产生p0;需用1个4抽头的线性数字滤波器对p0,p1,p2和q0滤波,并产生;需用另一个5抽头的线性数字滤波器对p0,p1,p2,p3和q0滤波,并产生;否则,需用1个3抽头的线性数字滤波器对p0,p1和q1滤波并产生p0。对于q块(图1所示)中的亮度块,若和同时满足<且<的条件时,需用1个5抽头的线性数字滤波器对q0,q1,q2,p0和p1滤波并产生q0,用1个4抽头的线性数字滤波器对q0,q1,q2和p0滤波并产生q1,用另一个5抽头的线性数字滤波器对q0,q1,q2,q3和p0滤波并产生q2;否则,需要用1个3抽头的线性数字滤波器对q0,q1和p1滤波并产生q0。
2 基于快速Bs判定的H.264去块滤波优化算法
2.1 片类型下宏块预测模式的快速判定
片(slice)作为编码的生命周期可进一步划分成整数个(16×16)宏块(MB)。编码时以片为基本单元来保持之编码包之间的相互独立性,以有效地限制误码的扩散和传输。片的语法结构如图3所示,片头规定了片类型(slice type)及相关的参考图像等;片数据包含了相关的宏块数据及标志位。
图3 片的语法结构
Fig. 3 Syntax structure of slice
在H.264/AVC视频编码中,各类型的宏块、片以及帧具有自己特有的性质:
(1) I宏块只能利用当前片中已解码的像素作参考进行帧内预测;P宏块可利用已解码的图像作为参考图像进行帧间预测;B宏块则利用前后向的参考帧进行帧间预测。
(2) I片仅包含I宏块;P片包含P宏块及和少量I宏块;B片包含B宏块和极少量I宏块;SP片用于不同编码流之间的切换且作为特殊的P片;SI包含特殊类型的编码宏块且作为特殊的I片。
(3) I帧是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,在片级上,它仅分割I片;P帧需要参考前面的I帧和/或自身帧的不同部分才能进行编码,在片级上,它仅分割成P片;B帧需要同时以前面的帧和后面的帧作为参考帧,在片级上,它仅分割成B片。
通过上述分析可以定性判断:I片和SI片只包含I宏块,所以仅为帧内预测模式;P片和SP片同时包含P宏块和少量I宏块,可为单向帧间的预测模式或帧内预测模式;B片同时包含极少量I宏块和B宏块,仅为双向的帧间预测模式。因此,在编码的1个周期内,对于片内宏块的预测模式通过片类型快速判定,以达到降低计算复杂度的目的。
2.2 帧间预测模式下Bs的快速判定
根据H.264的语法结构特点,为了提高各宏块之间的关联性,帧间预测模式的宏块(16×16像素)可依据时间和空间的相关性分割成如图4所示的分割 块[15]:1个16×16块,2个16×8块或2个8×16块,4个8×8块;同样,8×8模式的子块也可分割成:1个8×8块,2个4×8块或2个8×4块及4个4×4块。
图4 宏块和子块的分割模式
Fig.4 Partitions of macro-blocks and sub-macro-blocks
在帧间预测中,宏块间相对应的像素具有较高的时间和空间相关性[16],特别是DCT变换系数为0的平坦区域, 统计表明大块分割模式(16×16, 16×8, 8×16, 8×8)占据编码模式的60%以上[17]。通过Elecard StreamEye Tools工具对帧间预测编码帧(如图5所示:B帧和P帧)分析可知: 16×16, 16×8, 8×16及8×8的大块分割模式占据编码模式的大部分并对应于帧间变化较小的区域;对于P帧中的多运动区域,变化的残差较大,则需要更有效的尺寸(4×8, 8×4, 4×4)进行分割。
图5 帧的块分割
Fig.5 Partitions of frame
表1中Bs判定的基准准则表明:对帧间预测模式下的边界强度判定,需考虑运动矢量大小、残差系数和运动矢量的参考帧等多方面的编码信息, 这无疑阻碍了滤波效率的提高,但残差起决定性作用,一方面决定宏块的块分割模式,另一方面又决定Bs。
所以对于帧间预测模式的宏块,当其块分割模式为16×16,16×8,8×16或8×8时,对应于无需滤波的残差极小区域,Bs判为0;当其块分割模式为4×8或8×4时,当前滤波边缘的Bs判为1,使得能够有效地对残差较小的区域进行滤波;当其块分割模式为4×4时,对应于残差系数较大且易产生虚假边界的不平坦区域,若残差系数不为0,则判定 Bs为2,反之判为1。可见:上述Bs可直接给予判定,无需像基准算法那样经过循环计算16次得出,并且进入4×4块Bs判定的数量极少,从而极大地减少了Bs判定的计算复杂度。
2.3 片类型和帧间预测模式下快速Bs判定
通过以上分析可知:I片和SI片为帧内预测模式;B片可近似判定为双向帧间预测模式;鉴于含有少数的I宏块的(大部分是P宏块)P片和SP片,当其宏块是帧内预测编码模式的I宏块时,可利用基准算法判定各宏块的Bs;当其宏块是单向的帧间预测编码模式且占据绝大多数的P宏块时,可利用帧间预测模式下的快速Bs判定原理进行滤波。
为了克服H.264视频编码标准中基准算法中Bs判定的计算复杂度高的缺点,依据片类型下宏块预测模式的快速判定原理、帧间预测模式下Bs的快速判定原理以及JM8.6中相关参数的定义,本文提出了一种基于快速Bs判定的H.264去块滤波优化算法(FF算法)。该算法主要结合了片类型下的宏块预测模式的特性以及帧间预测模式下大块分割的残差系数小的特点,与基准算法相比,编码后视频中各个分量(Y, U, V)的信噪比(PSNR)不变,且能够有效地减少Bs判定的计算复杂度。FF算法具体流程步骤如下。
步骤1:当片是仅包含I宏块的I片或SI片(即帧内预测编码)时,当其边界作为宏块的边缘(JM代码中参数edge=0)时, 边界强度Bs判为4,否则判为3。
步骤2:当片是仅含有极少量的I宏块的(大部分是B宏块)的B片时(即双向帧间预测编码),若其预测模式的块分割为16×16, 16×8, 8×16或8×8时,当前滤波边缘无需滤波,边界强度Bs判为 0;若其预测模式的块分割为4×8或8×4时,残差系数较小,当前滤波边缘只需轻微滤波,边界强度Bs判为1;否则,直接进入4×4 块Bs判决, 若残差系数不为0,则Bs判定为2, 反之Bs判为1。
步骤3:当片为包含少量的帧内预测编码的I宏块的P片或SP片时,若片内宏块为I宏块,则重复步骤1判定帧内预测模式的方法进行操作,否则重复步骤2进行判断。
根据上述的判定步骤可得FF算法的流程图如图6所示。其中,idx表示4×4块的滤波边缘数序号(0~3),进而降低以像素点为基本单元的Bs判定复杂度。
3 实验仿真与结果分析
本文实验H.264/AVC参考代码JM8.6作为实验测试蓝本,并选取五组不同的测试序列对本文提出的FF算法进行验证。表2所示为本次测试的实验环境。
图6 FF算法流程图
Fig.6 Flow chart of FF algorithm
表2 实验环境
Table 2 Experimental environment
以carphone视频序列为例,如图7所示。其中:图7(a)所示为原始帧,图7(b)所示为JM8.6中基准算法的解码帧,图7(c)所示为FF算法的解码帧。从主观视觉上看,原始帧(图7(a))要比解码帧(图7(b))和(图7(c))更清晰,这也从侧面说明对一个帧进行变换、量化以及滤波等会产生一定的失真;解码帧(图7(b))和(图7(c))的主观视觉质量相当。表3和表4所示的实验结果给予了充分证明:对于相同的视频序列,通过FF算法所测试得到的视频序列中各个分量(Y, U, V)的信噪比(PSNR)与通过JM8.6中基准算法得到的基本一致,仅在0.2 dB的误差范围内,这也充分地表明本文的FF算法能够有效地确保视频编码后的质量。
图7 原始帧,基准算法解码帧和FF算法解码帧
Fig.7 Original frame, decoded frame of standard algorithm and decoded frame of FF algorithm
依据表3和表4的实验数据得出了表5中FF算法与JM8.6中基准算法的性能比较结果数据:在Bs的计算时间上,FF算法比JM8.6中基准算法减少近50%,对应的滤波时间比JM8.6中的基准算法快20%左右,使得总的编码时间也比JM8.6中的基准算法快10%左右。
通过上述实验结果以及文献[7-9]中算法的综述分析可知:(1) 与文献[7]算法相比,在Bs计算时间上,虽然FF算法计算时间仅为文献[7]算法计算时间的0.71倍左右,但是,在确保编码后视频质量上,FF算法是文献[7]算法的近5倍;(2) 与文献[8]算法相比,尽管FF算法在编码后视频质量上是文献[8]算法的2倍左右,但是文献[8]算法并没有效地提高滤波的速率;(3) 与文献[9]算法相比,FF算法无论是在滤波速率上还是在确保编码后视频质量上都优于文献[9]算法。总之,FF算法既确保了滤波后图像的质量,又减少了一定的滤波时间。
表3 JM8.6中基准算法测试的实验结果
Table 3 Test results of JM8.6 standard algorithm
表4 FF算法测试的实验结果
Table 4 Experimental results of FF algorithm
表5 FF算法与JM8.6中的基准算法实验结果对比
Table 5 Comparative results between FF algorithm and JM8.6 standard algorithm
4 结论
(1) 本文在对H.264去块效应滤波器原理尤其是Bs判定准则再分析的基础上,提出了一种快速判定边界强度Bs的H.264去块效应滤波新算法(FF算法)。
(2) 该算法不影响已有的码流和图像质量,可实现快速判定Bs和提高去块效应环路滤波效率的目的。
(3) 将FF算法与几种典型算法进行性能对比,进一步说明了FF算法能够在确保滤波图像质量的前提下,有效地减少滤波时间,并提供了一种提高视频序列的实时性的新思路。
参考文献:
[1] Richardson I E G. H.264 and MPEG-4 video compression video coding for next-generation multimedia[M]. West Sussex: John Wiley & Sons Ltd, 2003: 184-213.
[2] Tsai C Y, Chen T C, Chen L G. Low power entropy coding hardware design for H.264/AVC baseline profile encoder[C]//2006 IEEE International Conference on Multimedia and Expo (ICME 2006). Toronto: IEEE Computer Society, 2006: 1941-1944.
[3] Lam K H. Reduced complexity de-blocking filter for H.264 video coding[C]//The 39th Asilomar Conference on Signals, Systems and Computers (ACSSC 2005). Asilomar: IEEE Conference Record, 2005: 1372-1374.
[4] WEI Hu, LIN Tao, LIN Zhang-hui. Parallel processing architecture of H.264 adaptive de-blocking filter[J]. Journal of Zhejiang University: English Edition, 2009, 10(8): 93-98.
[5] 毕厚杰. 新一代视频压缩编码标准: H.264/AVC[M]. 2版. 北京: 人民邮电出版社, 2009: 76-135.
BI Hou-jie. Next-generation video compression standard H.264/AVC[M]. 2nd ed. Beijing: People’s Posts & Telecommunications Publishing House, 2009: 76-135.
[6] Parlak M, Hamzaoglu I. Low power H.264 de-blocking filter hardware implementation[J]. IEEE Transactions on Consumer Electronics, 2008, 54(2): 808-816.
[7] 高媛, 胡瑞敏, 陈皓. 基于Bs预判的H.264去块滤波优化算法[J]. 计算机工程与应用, 2007, 43(34): 38-40.
GAO Yuan, HU Rui-min, CHEN Hao. Optimization of de-blocking filter for H.264/AVC based on pre-judging Bs[J]. Computer Engineering and Applications, 2007, 43(34): 38-40.
[8] 周芦明, 刘春生, 罗亮, 等. 基于纹理方向自适应的H.264去块滤波算法[J]. 数据采集与处理, 2010, 25(4): 521-524.
ZHOU Lu-ming, LIU Chun-sheng, LUO Liang. New de-blocking filter algorithm based on texture direction adaptive technique for H.264[J]. Journal of Data Acquisition & Processing, 2010, 25(4): 521-524.
[9] 路文, 高新波, 何立火, 等. 基于内容预分析的环路滤波算法[J]. 通信学报, 2009, 30(6): 95-102.
LU Wen, GAO Xin-bo, HE Li-huo, et al. In-loop filter algorithm based on content pre-analysis[J]. Journal on Communications, 2009, 30(6): 95-102.
[10] Seo W, Choi K, Hong M. Spatially adaptive gradient-protection algorithm to remove blocking artifacts of H.264 video coding standards[C]//The 14th Asia Pacific Conference on Communication (APCC 2008). Tokyo: IEEE Conference Record, 2008: 1-5.
[11] Kim D. Optimal post-process/in-loop filter for improved video compression performance[J]. IEEE Transactions on Consumer Electronics, 2007, 53(4): 1687-1693.
[12] WEI Hu, LIN Tao. Parallel-pipelined architecture of H.264 de-blocking filter with adaptive dynamic power[J]. Journal of Shanghai Jiaotong University: Science Edition, 2010, 15(2): 224-230.
[13] Tai S C, Chen Y R, Chen C Y. Low complexity de-blocking method for DCT coded video signals[J]. IEEE Proceeding Vision, Image and Signal Processing, 2006, 153(1): 46-56.
[14] YANG Kun, ZHANG Chun, WANG Zhi-hua. Design of adaptive de-blocking filter for H.264/AVC decoder SOC[J]. Journal of China Universities of Posts and Telecommunications, 2009, 16(1): 91-94.
[15] Yu A C,Martin G R, Heechan P.Fast inter-mode selection in the H.264/AVC standard using a hierarchical decision process[J]. IEEE Transactions on Circuits and Systems for Video Technology,2008, 18(2): 186-195.
[16] 王正宁, 彭强, 诸昌钤. 一种基于残差分析的H.264/AVC帧间块尺寸选择快速预测算法[J]. 中国图像图形学报, 2005, 10(12): 1584-1590.
WANG Zheng-ning, PENG Qiang, ZHU Chang-qian. Residual texture based fast block-size selection for inter-frame coding in H.264/AVC[J]. Journal of Image and Graphics, 2005, 10(12): 1584-1590.
[17] ZHANG Dong-ming, SHEN Yan-fei, LIN Shou-xun. Fast inter frame encoding based on modes pre-decision in H.264[C]//IEEE International Conference on Multimedia and Expo (ICME 2005). Beijing: Chinese Academy of Science, 2005: 6-8.
(编辑 杨幼平)
收稿日期:2011-01-10;修回日期:2011-03-28
基金项目:国家自然科学基金资助项目(70971043);江西省自然科学基金资助项目(2008GZS0028)
通信作者:李康顺(1962-),男,江西兴国人,博士,教授,博士生导师,从事图像视觉、演化计算、演化硬件研究;电话:13807079564;E-mail: likangshun@sina.com