徐静,周兵,黄雪莉,李炜,曹蕾
(1.郑州大学 信息工程学院 河南省高等学校信息网络重点学科开放实验室,河南 郑州 450052;2.北京航空航天大学 计算机学院,北京100083)
新一代视频编码国际标准 H.264[1]采用了众多先进的编码技术,如:帧内预测、四分之一像素运动补偿和多参考帧等,使其在相同图像质量下,编码效率比MPEG-2、MPEG-4和H.263分别提高了64.46%、38.62%和48.80%[2],但在这些新技术提高H.264/AVC性能的同时,也大幅度增加了编码器的计算复杂度。特别是H.264现有的多参考帧预测算法需要对每个宏块遍历n(从1至16)个参考帧并计算各模式下的率失真代价,此外还需要进行运动估计、多方向帧内预测,所以整个多参考帧预测过程十分耗时。
为使H.264能够更广泛地实时应用于现有的硬软件条件下,降低多参考帧技术带来的时间和空间上的高复杂度,许多快速算法[3~11]被提出。这些快速算法可分为3种:第1种是基于3D[5,6]运动估计的快速算法,即从当前帧及其多个参考帧中建立三维数学模型,将搜索点从传统 2D的简单平移扩展到 3D空间,但这种技术需要大规模的多参考帧存储操作;第2种基于多参考帧运动矢量预测[7,8]的快速算法,由于每一帧的MV均是由最近参考帧的MV所产生,所以对参考帧的MV精度要求较高,且这类方法不适用于快速搜索算法;第 3种是多参考帧选择技术[9~11],可直接应用于现有的搜索算法中,但选择参考帧的过程需要一些额外的计算量。
本文提出一种基于空间特性的H.264快速多参考帧选择算法。该算法首先利用自然视频序列的空间特性,根据相邻宏块Skip编码模式信息在运动估计之前判断当前宏块是否为Skip编码模式;然后对视频序列Skip编码模式的占用率进行统计和分析,设置多模式下参考帧数量的分布。实验结果表明,该算法将性能损失控制在可忽略范围内的情况下,可节约35%~87%的编码时间。
如图1所示本算法共分为3个步骤:第1步根据条件预测当前宏块是否为 Skip编码模式;第 2步根据视频空间特性以及宏块编码模式与量化参数值之间的关系进行帧间模式选择;第 3步统计Skip编码模式宏块在当前帧中所占百分比,根据不同视频模式设置合适的参考帧数量。
图1 基于空间特性的快速多参考帧选择算法框架
由于在自然视频序列中存在着大量空间上均匀平坦或时域静止的区域,在这些区域中Skip编码模式被大量的使用,所以如果在运动估计之前判断出当前宏块是否为Skip编码模式,便可极大地降低Skip编码模式所占比例较大序列的编码时间。
图2的akiyo模式分布中浅色点所在的宏块为 Skip模式,可见当前宏块的周围邻块为 Skip编码模式时,则其最终编码模式为 Skip的概率高。因此,如果利用邻块信息在运动估计之前提前预测出一部分 Skip编码模式则能更进一步地提高编码效率。由于当前宏块和其周围相邻宏块存在空间相关性,在图3若宏块A、B、C和D均为Skip编码模式,则E的编码模式为Skip编码的概率很大。
图2 akiyo模式分布
图3 宏块空间相关图
由文献[12]可知,若一宏块为Skip编码模式,则该宏块必须满足以下4个条件:
1) 运动补偿的最佳宏块划分为16×16;
2) 参考帧为当前帧的前一帧;
3) 通过运动搜索得到的最佳运动矢量与通过预测得到的运动矢量相同;
4) 残差经过变换量化后均为0。
当宏块只满足前3个条件时,此时的宏块所采用的编码模式为准 Skip编码模式。由试验数据可知,当周围宏块都为Skip或准Skip模式时,尽管对运动缓慢纹理简单的序列能比较准确地判断出Skip模式;但对于运动复杂纹理丰富的序列而言,其误判率最差情况达到63.221 9%,因此需要考虑条件4)来减少误判率。满足以上条件时,当前宏块编码模式 M 为 Skip ,16×16,16×8,8×16,8×8,Intra4×4,Intra16×16在各视频Seq中所占百分比数值见表1。
表1 当前宏块编码模式的百分比
由上节可知 Skip编码模式在视频序列的编码过程中起着重要的作用,其所具有的特点不仅仅可运用于运动估计之前也可运用于运动估计的过程中,可缩小宏块级模式的判断范围。本文通过实验数据分析表2中不同量化参数下的亚宏块编码模式分布,发现宏块编码模式与量化参数值之间的关系,即随着量化参数的增加,P8×8模式在整个编码模式中所占的比例越来越小;同时在P8×8模式中8×8模式所占的比例不断增加,4×4模式所占的比例不断减少,而8×4和4×8在P8×8种所占的比例变化不大。在量化参数较小的时候,亚宏块的模式分布主要集中在{8×8,4×4}中,量化参数比较大时,主要集中在{8×8,8×4}中,当量化参数取中等数值时,亚宏块的模式分布主要集中在{8×8,8×4,4×8}中。根据这一实验现象将P8×8划分成若干子集合,即{8×8,4×4},{8×8,8×4,4×8},{8×8,8×4},分别对应于不同程度的量化参数值。同时权衡到编码速度,在中等量化参数情况下添加亚宏块模式子集合{8×4,4×8}。本文对亚宏块级模式进行集合划分,不同的量化参数值下的宏块选择不同的亚宏块模式集合,缩小亚宏块级模式判断范围。
表2 不同量化参数下的亚宏块编码模式分布
因此提出了一种快速帧间编码模式选择算法作为H.264快速多参考帧选择算法中的一部分,流程描述如下:
step 1 设置当前宏块最终编码模式为16×16,以16×16编码模式进行运动估计,计算率失真代价,并设置为最小代价;
step 2 判断运动估计的结果是否满足 2.1节中条件2)和3),若不满足,则转入step 6;
step 3 设置最终编码模式为16×16,对亮度和色度残差进行变换和量化;
step 4 判断量化后的系数是否都为0(2.1节中条件4),若满足最终编码模式为Skip模式,否则转入step 7;
step 5 对当前宏块进行Intra16×16模式选择,计算其率失真代价,与最小代价相比,取代价最小的模式为最终模式,同时更新最小代价,转入step 9;
step 6 对当前宏块进行16×8、8×16运动估计和率失真代价计算,与最小代价相比,取代价最小的模式为最终模式,同时更新最小代价;
step 7 若 qp≤24,对当前宏块进行 8×8、4×4运动估计和率失真代价计算,若 24<qp≤36,对当前宏块进行8×4、4×8运动估计和率失真代价计算,若 qp>36,对当前宏块进行 8×8、8×4运动估计和率失真代价计算,与最小代价相比,取代价最小的模式为最终模式,同时更新最小代价;
step 8 对当前宏块进行 Intra4×4、Intra16×16模式选择和率失真代价计算,与最小代价相比,取代价最小模式为最终模式,同时更新最小代价;
step 9 为最终编码模式进行相应的参数设置;
step 10 结束。
在H.264中,可支持16个参考帧(一般设为5帧)、10种预测模式(16×16、8×16、16×8、8×8、4×8、8×4、4×4、intra4×4、intra16×16、Skip)。为找出最合适的参考帧,通常在整个运动估计过程是遍历所有参考帧并计算搜索范围内每个宏块的率失真值。
其中,s为当前块像素值,ref为要选择的参考帧,mv为参考帧 ref的运动矢量,r(r ef,m v)为参考块的像素值,SAD(sum of absolute difference)为当前块与参考像素差值的绝对值和, λMOTION是Lagrange乘数因子,pred为预测矢量,R是宏块编码所需的比特数,包括运动矢量与其预测值的差值编码比特和参考帧的编码比特。通过依次遍历最近的参考帧1直到最远的参考帧 n各宏块的 JMOTION(m v,ref|λMOTION)值,得到最佳参考帧能够使得码率与失真得到优化,如图4所示。
图4 多参考帧预测过程
同单参考帧相比,多参考帧技术可有效提高图像预测的精度。然而,多参考帧技术能在多大程度上提高编码效率,以及使用多少个参考帧最合适,完全依赖视频序列内容的特性。实验发现,多参考帧技术的编码增益主要来自宏块内子块所使用不同的参考帧。表3和表4分别列出了量化参数为28的情况下,标准测试序列Seq在16×16模式及亚宏块编码模式下选择最佳参考帧的分布情况,其中RF是指选择的最佳参考帧的序号(从0(最近)到4(最远))。
表3 16×16模式各序列最佳参考帧的分布
表4 亚宏块模式各序列最佳参考帧的分布
从表3和表4数据可知,对于运动平缓简单的序列其参考帧一般取比较临近的参考帧,亚宏块模式与16×16模式相比选择较远参考帧的概率较大。由于参考帧的选择由其自身所具有的视频运动纹理特征确定,从表1数据分析可知,对于运动复杂、纹理丰富的视频序列,其采用Skip编码模式进行编码的宏块相对较少;反之,对于运动缓慢、纹理简单的序列,其采用Skip编码模式进行编码的宏块相对较多。所以采用Skip模式在所有模式中所占比例大小代表视频序列的特性是可行的。因此统计Skip编码模式的分布,对于7种不同的编码模式,可分配与之对应的参考帧数量。算法描述见2.4节算法step 5和step 6。
本文提出的快速帧间模式选择算法首先在运动估计之前判断该宏块是否为Skip模式,然后在运动估计过程中运用2.2节中提出的快速帧间编码模式选择算法,最后根据SKIP编码模式的比例分配不同的参考帧数。算法中设16×16,16×8,8×16,8×8,8×4,4×8,4×4 这 7 种块模式分别为 m1 至m7,其流程描述如下。
step1 进入宏块级编码,宏块默认大小为16×16;
step2 判断周围已经编码的宏块(左临宏块和上临宏块)是否均为Skip编码模式或者准Skip编码模式,并且判断当前宏块是否满足2.1节2)、3)、4)条件,若不满足,转入 2.2节快速帧间编码模式选择算法;
step3 设置当前宏块的最终编码模式为 Skip编码模式,若该帧内容没有编完则转入 step1继续下一宏块编码,否则转入step4;
step4 统计前2个P帧的Skip编码模式的宏块个数Skip_num;
其中,
step5 根据不同的模式,求出参考帧数量RF_num;
step6 若计时时钟时间到,则更新 Skip编码模式的统计分布,否则转入 step1继续下一帧的宏块编码。
为测试本文算法的实际性能,结合H.264/AVC的参考软件JM10.2[13]进行了实验。实验采用运动特征和纹理特征都不相同的标准测试序列 bus、mobile、foreman、container、silent和Mother的 CIF格式和QCIF格式的前100帧进行测试。编码器主要参数设置见表5。
表5 编码器参数设置
图 5是本文算法与全搜索算法客观性能对比图,表6中列出了本文算法和H.264编码器JM10.2所采用的全模式搜索算法以及张淑芳等提出基于H.264的多参考帧快速选择算法[9](这里简称Zhang算法)的编码性能比较。表6中,比特率(kbit/s)选项中变化率1是指Zhang算法与JM10.2相比较的变化比率,变化率2是本文算法与JM10.2比较的变化比率,“—”表示参考文献中没有提及的项。如表6所示,本文的PSNR表示本文算法相对于全搜索算法,客观性能略微下降,这是由于该算法Skip编码模式覆盖率增大造成的。从表6中可以看出,客观性能损失与 JM10.2相比平均下降约为Δ0.07dB,但比Zhang算法提高0.41dB。从人眼视觉特性来看,当图像客观性能的下降在Δ0.5dB以内时,人的主观感觉并不会有太大的变化。所以,本文算法造成的客观性能下降因其幅度很小,不会影响到视频的主观视觉效果,如图5所示,其PSNR和现有算法、全搜索算法非常接近。
图5 客观性能对比图
同全搜索算法以及文献[9]相比,本文算法在运动估计之前判断Skip编码模式,并根据Skip编码覆盖率对不同的帧间编码模式选择不同的多参考帧数目;同时本文算法能够全面地覆盖Skip模式宏块,并随着量化参数的增加使得Skip模式的覆盖率增大,编码节省的时间数值进一步增大,多参考帧预测时间减少,可大幅度地降低编码器复杂度,因此在编码时间和比特率上比现有算法更具有优势。如图6所示,针对运动缓慢纹理简单的视频序列,如表6中silent_QCIF、container_CIF、ice_4CIF标准测试序列能使编码器的时间开销平均降低75.69%、79.23%、87.63%,特别是针对相对静止的视频如silent_QCIF,由于silent_QCIF中的绝大部分宏块的编码模式均为Skip模式,因此不仅仅可以大幅降低编码时间还能够将编码比特率降低47.21%;而针对运动剧烈纹理复杂的序列,如表6中 mobile_CIF标准测试序列本文算法也比现有算法更能明显提高编码效率。
表6 本文算法与全搜索算法编码性能比较
本文分析了几类具有代表性自然视频的特性,根据H.264标准要求,提出一种多参考帧选择快速算法,在保证H.264编码质量的同时明显提高了编码器的编码效率。该算法不但适于运动缓慢、纹理简单的CIF、QCIF、4CIF视频序列,而且适于运动剧烈、纹理复杂的CIF、QCIF、4CIF视频序列。此外,该算法虽然对于不同的编码模式分配的参考帧数量是由几类代表性视频序列实验得出,但其结论对不同尺寸的一般自然视频同样有效。
[1] ITU-T Recommendation and Final Draft International Standard of Joint Video Specification[S].(ITU-T Rec H.264 | ISO/IEC 14496-10 AVC),2003.
[2] SCHAFER R,WIEGAND T,SCHWARZ H.The Emerging H.264/AVC Standard[S].EBU Technical Review,2003.
[3] GAN Z L,ZHU X C.Novel multi-frame fast motion search algorithm based on H.264[J].Journal of Communications,2007,28(1):17-21.
[4] CHEN Y P,ZHANG P R,SUN Y,et al.One low complex reference picture selection optimal method[J].Journal of Electronics and Information Technology,2007,29(4):967-970.
[5] TING C W,LAM W H,PO L M,Fast block-matching motion estimation by recent-biased search for multiple reference frames[A].Proc IEEE Int Conf on Image Processing[C].2004.1445-1448.
[6] PU J H,XIONG Z,LIU Y L.Fast motion estimation algorithm for H.264 with multi-references[J].Journal of Beijing University of Aeronautics and Astronautics,2006,32(5): 617-620.
[7] QIAO R,DONG X C,TANG H Y,et al.Fast motion estimation and inter-frame mode selection algorithm based on H.264 encoding[J].Journal of Xihua University(Natural Science Edition),2008,27(4):13-17.
[8] CHEN M J,CHIANG Y Y,LI H J,et al.Efficient multi-frame motion estimation algorithms for MPEG-4/AVC/JVT/H.264[A].Proc IEEE Int Symp on Circuits and Systems[C].2004.737-740.
[9] ZHANG S F,LI H.A Multi-reference frames fast selection algorithm for H.264[J].Acta Elecironica Sinica,2009,37(1):62-66.
[10] TING C W,PO L M,CHEUNG C H.Center biased frame selection algorithms for fast multi-frame motion estimation in H.264[A].Proc IEEE Int Conf Neural Networks & Signal Processing[C].2003.
[11] HUANG Y W,HSIEH B Y,CHIEN S Y,et al.Analysis and complexity reduction of multiple reference frames motion estimation in H.264/AVC[J].IEEE Trans,Circuits Syst,Video Technol,2006,16(4):507-522.
[12] WOONG I,JEON B,JEONG J.Fast motion estimation with modified diamond search for variable motion block sizes[A].IEEE International Conference on Image Processing[C].Barcelona: Institute of Electrical and Electronics Engineers Computer Society,2003.371-374.
[13] JVT reference software version 10.2[EB/OL].http://iphome.hhi.de/suehring /tml/download/ old_jm.