H.264帧内预测模式选择改进算法
2014-08-24,
,
(浙江工业大学 计算机科学与技术学院,浙江 杭州 310023)
H.264/AVC,是ITU-T视频编码专家(VCEG)联合ISO/IEC动态图像专家(MPEG),成立联合视频小组(JVT,Joint video team)共同开发的新一代视频编码标准.它具有较高效的压缩率和较好的网络适应性,广泛应用于网络流媒体(如YouTube,iTunes Store)、高清电视(如ATSC,DVB-T)、卫星(DVB-S,DVB-S2)等领域.它采用了帧内预测技术、1/4像素精度运动补偿、类DCT整数变换、多参考帧运动补偿和率失真优化等技术,许多学者对其进行了研究[1-4].在相同的图像质量下,与H.263或MPEG-4视频编码标准相比,H.264/AVC编码速率可以提高50%,可节约50%的比特率[5].
帧内预测是H.264重要组成部分,它充分利用图像的空间相关性,采用率失真优化技术RDO,通过对宏块、子块分割,全模式选择的方法,提高图像编码质量和数据压缩率.然而,帧内预测的多模式选择非常耗时,编码器需要对每一种模式进行计算和比较,存在大量计算冗余,存在改进的可能性.为了降低帧内预测的复杂度,许多学者进行了研究.Pan[6]采用Sobel算子做边缘检测,得到图像边缘方向直方图,根据边缘方向确定候选预测模式;Wang[7]提出一种基于变换域特征的帧内预测算法;Kim[8]提出基于特征的帧内预测快速算法,采用SAD和SATD两个特征,得到最终的编码模式;汪育春等[9]利用相邻像素间的梯度筛选预测模式.而这些算法中,Pan被公认为最好的算法,并被JVT收录到文件JVT-G013中.笔者根据图像纹理特性以及子块之间的相关性提出一种快速帧内预测模式选择算法.根据图像的纹理方向,减少预测模式的数量;根据色度块与亮度块预测模式的相对独立性,减少预测模式的重复计算;根据子块之间模式的相关性,进一步减少RDO的计算.
1 H.264帧内预测编码
帧内预测是H.264视频编码技术重要的组成部分,它充分利用图像的空间相关性,消除子块空间冗余,不仅有利于码率的控制,而且在帧间预测找不到匹配块时,同样可以采用帧内预测进行压缩,提高压缩效率.H.264帧内预测存在以下几种预测模式:4×4亮度块预测模式,共计9种,适用于面积小图像比较复杂的编码;16×16亮度块预测模式,共有4种,适用于面积大图像变化小的编码;8×8色度块同样也有4种预测模式.
1.1 4×4亮度预测模式
H.264将16×16宏块分成16个4×4子块.4×4亮度块待预测像素a—p,通过上方和左侧相邻的已重建的像素A—M计算得到,如图1(a)所示.每种预测方向如图1(b)所示,加上DC模式,一共9种模式.
(a) 利用已知像素A—M预测像素a—p (b) 帧内4×4 预测的8个预测方向
1.2 16×16亮度预测模式与8×8色度预测模式
16×16亮度块有4种预测模式,如图2所示,模式0(垂直),模式1(水平),模式2(DC),模式3(平面).
图2 16×16亮度块帧内预测
8×8色度块预测同样有4种模式,分别为:模式0(DC),模式1(水平),模式2(垂直),模式3(平面).
1.3 帧内预测模式选择
在H.264中,全搜索算法通过率失真优化技术(RDO)[10],对每一种可能的预测模式进行计算,选择最小率失真代价值的模式作为最优预测模式,即
RDcost=SSD+λmode·R
(1)
以亮度分量为例,其算法如下:
Step1判断当前宏块的周边信息,包括上边像素、左边像素以及右上像素是否可用.
Step2将宏块划分为16个4×4小块,对9种预测模式进行RDcost计算,选择最小的RDcost值,并将16个4×4小块的RDcost值进行累加,得到intra 4×4RDcost.
Step3分别对16×16宏块的4种预测模式进行SAD(绝对误差和)计算,选择最小的SAD值对应的模式作为最优预测模式,再者,计算最优预测模式下的RDcost,作为intra 16×16RDcost.
Step4比较intra 4×4RDcost与intra 16×16RDcost,选择较小的RDcost值作为该宏块的帧内预测方式.
对每一个宏块,其RDO的计算次数为
NRDO=M8×(M4×16+M16)
(2)
式中:M8为色度预测模式数量;M4为亮度4×4块预测模式数量;M16为亮度16×16块预测模式数量.
因此,由式(2)可知:全搜索预测模式一共需4×(9×16+4)=592次不同的RDO计算.由此可见:H.264帧内预测模式选择复杂度非常高,极大的影响了编码速度.
2 帧内预测模式选择改进算法
2.1 块模式选择
图像具有很强的空间相关性,相邻宏块之间的纹理也具有很强的相似性.如果得到宏块的纹理方向,那么可以通过该方向确定块的几种候选预测模式,大大简化计算.基于这一思想,算法如下:
1)对于4×4块,定义4个纹理方向:0°,45°,90°,135°.
Step1将4×4子块分割成4个2×2子块,如图3所示,其每个像素值为
图3 4×4子块分割成2×2子块
Step2定义相关性系数r,分别计算相关性系数r在4个纹理方向的值:
相关性系数r说明某一纹理方向像素的均值,r值越小,说明该方向的像素越接近.由4×4帧内预测算法可知,除了DC模式,其余8种模式都具有方向性,因此,可以通过相关性系数r判断各种预测模式,r值越小,该方向预测的可能性越高.
Step3计算各种模式的近似纹理方向值:
Step4比较各模式的相关性系数r值,取最小的3种对应的模式,再加上DC模式,共有4个模式作为候选模式.
Step5对候选模式进行RDO计算,选取最小的RDcost作为最优模式.
2)对于16×16亮度块与8×8色度块,定义3个纹理方向:0°,45°,90°.
按照上面的算法对16×16亮度块与8×8色度块进行帧内模式选择,只是16×16亮度块分解为4个8×8亮度块,8×8色度块分解为4个4×4色度块.只选取最小相关性系数r对应的模式以及DC模式2种模式作为候选模式.对候选模式进行RDO计算,选取最小的RDcost作为最优模式.
2.2 色度块与亮度块预测模式相对独立性
在JM8.6基本档次下,对色度块与亮度块帧内预测模式的处理是以色度模式为外循环,依次扫描亮度模式[11].由1.3节可知:JM8.6全搜索预测模式一共需4×(9×16+4)=592次不同的RDO计算,运算量巨大.
对JM8.6算法分析可知:在进行帧内预测时,亮度块存在重复计算.8×8色度块具有4种预测模式,每进行一次色度循环,都要进行4×4亮度预测和16×16亮度预测,如图4所示,然而,在4种色度模式循环中每次计算得到的intra 4×4RDcost与intra 16×16RDcost相同,即亮度最优预测模式相同.也就是说,色度块与亮度块预测模式具有相对的独立性.因此,可以根据这一特性对帧内预测进行进一步的优化.
图4 色度块与亮度块帧内预测算法
2.3 邻块预测模式相关性
4×4块帧内预测通过与块相邻的左边、上边及右上方的像素预测得到,因此邻块之间的预测模式有很强的相似性.基于这一思想,我们可以通过当前块周边的模式来预测当前块的模式,如图5所示.
1) 如果已预测块PredMB_Up和PredMB_Left预测模式相同,则当前块CurrentMB的预测模式与PredMB_Up,PredMB_Left相同.
2) 如果已预测块PredMB_Up和PredMB_Left预测模式不同,则比较PredMB_Up,PredMB_Left的RDcost值,取其小者对应的模式作为当前块CurrentMB的预测模式.
图5 邻块的相关性
2.4 算法流程图
帧内预测模式选择改进算法流程图见图6.图7,8分别为4×4,16×16亮度块模式选择算法流程图.
图6 帧内预测模式选择改进算法流程图
图7 4×4亮度块模式选择算法流程图
图8 16×16亮度块模式选择算法流程图
3 性能分析和仿真结果
如表1,2所示,通过算法分析,RDO计算次数本算法优于JM8.6算法和Pan算法,降低了计算复杂度,加快了编码速度.
表1 各算法候选模式比较
表2 各算法RDO计算次数比较
为了证明笔者算法的有效性,将笔者算法分别与JM8.6算法以及Pan算法,在编码时间、输出码率和峰值性噪比等三个方面进行对比实验.实验方法采用CAVLC熵编码,使用率失真优化(RDO),采用hadamard变换,图像大小为QCIF(176×144,YUV是4∶2∶0),量化参数QP为24,28,32.由于算法测试速度与硬件平台有很大关系,为排除硬件条件对算法的干扰,验证算法的有效性,本实验对编码码率变化率(Δbits)、图像质量变化(ΔPSNR)以及编码时间变化率(Δtime)进行比较,即
(3)
实验结果如表3—5所示.
表3 改进算法与JM8.6算法、Pan算法比较(QP=24)
表4 改进算法与JM8.6算法、Pan算法比较(QP=28)
表5 改进算法与JM8.6算法、Pan算法比较(QP=32)
从实验结果可以看出:笔者算法相较于JM8.6算法,码率有所增加,平均增加4.57%左右;图像质量略有下降,平均降低0.067 dB,图像清晰度基本不变,编码时间大幅缩减,平均减少65%左右;相较于Pan算法,码率下降,平均降低4.37%左右,图像质量基本不变,仅下降0.031 dB,编码时间平均减少20%左右.由此可见:本算法相较于JM8.6算法和Pan算法,有效的降低了编码时间,提高编码了效率.
笔者的算法思想有效的减少了编码时间,但从实验数据可知,图像质量略有下降,码率有所提高.究其原因,首先,通过纹理特征近似选取候选模式存在一定的误差,其次,候选模式由9种减少到4种,预测准确性降低,因此,后续的工作需要进一步研究视频序列特征,有效的选取候选模式并改进算法.
4 结束语
提出一种H.264帧内模式快速选择算法,利用图像的纹理特征,色度块与亮度块预测模式的相对独立性以及子块之间模式的相关性,减少帧内预测模式数量,减少RDO计算次数,从而提高帧内预测编码速度.实验结果显示,在图像质量基本保持不变的情况下,编码时间平均减少65%左右.
参考文献:
[1] 仲伟波,孟艳茹.基于时空相关的H.264多参考帧快速选择算法[J].计算机科学,2013,40(5):93-96.
[2] 李晓波,孟利民.H.264多媒体数据在嵌入式系统中的存储机制的设计[J].浙江工业大学学报,2012,40(4):437-440.
[3] 周志立,阮秀凯.基于H.264的码率控制的改进方法研究[J].浙江工业大学学报,2008,36(5):519-522.
[4] 廖锋峰,郭行波,刘文捷.基于小波变换的图像编码研究[J].浙江工业大学学报,2010,38(2):197-201.
[5] WIEGAND T, SULLIVAN G, BJONTEGAARD G, et al. Overview of the H.264/AVC video coding standard[J]. IEEE Trans Circuits Sys Video Technology,2003,13(7):560-576.
[6] PAN F, LIN X. Fast mode decision algorithm for intra prediction in H.264/AVC video coding[J]. IEEE Trans on Circuit and Systems for Video Technology,2005,15(7):813-822.
[7] WANG Feng-qin, FAN Yang-yu, LAN Ya-jing, et al. Fast intra mode decision algorithm in H.264/AVC using characteristics of transformed coefficients[C]//Visual Information Engineering. Xi’an:Conference Publications of the 5thInternational Visual Information Engineering,2008:245-249.
[8] KIM C S, SHIH H H, KUO C C. Feature-based intra-prediction mode decision for H.264[C]//Proceedings of the 2004 International Image Processing Conference. Singapore:Conference Publications of the 2004 International Image Processing,2004:769-772.
[9] 汪育春,曾毓敏,朱力.H.264帧内预测模式选择快速算法的研究[J].计算机应用及软件,2011,28(12):115-118
[10] TSENG C H, WANG H M, YANG J F. Enhanced intra 4×4 mode decision for H.264/AVC coders[J]. IEEE Trans on Circuit and Systems for Video Technology,2006,16(8):1027-1032.
[11] 毕厚杰,王健.新一代视频压缩编码标准—H.264/AVC[M].北京:人民邮电出版社,2009.