APP下载

视频编码优化中多模块关联度的分析与定量测试

2013-11-20孟雷雷殷海兵

中国计量大学学报 2013年3期
关键词:码率编码器选项

孟雷雷,殷海兵

(中国计量学院 信息工程学院,浙江 杭州310018)

H.264作为新一代的视频编码标准,是由IUT-T及ISO/IEC联合推出的.为了获得更高的编码效率,H.264采用许多新的编码技术,比如多参考帧、帧内预测、亚像素搜索,同时也增加了宏块的分割模式[1].与以往的标准相比,节约了50%码率的同时也提高了编码性能.

视频编码标准只是指定了进行传输时数据流的语法内容,提供一些编码工具,并没有对其自身约束一些不必要的规定和限制.在视频编码器中,几个算法可定制的模块共同作用于不同的应用目标,这些宏块的编码参数,例如宏块的分割模式、运动矢量的估计以及量化后变换的系数,如何选择将对编码压缩性能产生很大的影响.编码器就是要充分挖掘某个固定视频标准的压缩潜力.

在一般的研究过程中,定制一个模块的算法都只关注该模块的优化带来的性能变化,并没有关注模块和模块间的关联.这些算法可定制的模块之间有复杂的相互影响机制,我们在优化算法时应该同时考虑这些模块.在过去的研究中,主要是针对视频编码算法中的某一个显著模块,例如码率控制模块、运动估计模块等,部分学者也试图在进行算法优化时将模块间的关联度考虑进去.Sun等人[2]对模式选择和码率控制模块进行了联合算法优化;Zhao等人[3]对模式选择和运动估计模块进行了联合算法优化;徐等人[4]进行了视频预处理和码率控制模块的联合算法优化.然而,这些工作都没有从系统的全局优化角度来考虑.一般来说,可定制模块的算法是按照一定设计的顺序来依次确定的,如何决定模块间算法的优先顺序,而不是单一的进行一个模块的设计,这对整个算法优化是至关重要的.

本文主要关注各模块之间的影响机理,试图定量地测试各模块之间的关联程度,然后评估重要因素之间的关联性,用此来决定可定制模块的优化决策顺序.实验以开源代码X264为平台来验证一系列的想法.

1 可定制模块及表现在X264编码器中

在H.264/AVC视频编码器中,包含许多规范性模块,这些模块的算法是确定的,例如变换、量化、反量化、反变换、帧内预测、运动矢量预测、运动补偿及去块效应滤波和熵编码,同时也有许多算法可定制的模块与其他模块共同作用于应用目标.根据这些参数在编码流程中的作用,可以将视频标准中并未规定具体实现方案,把允许用户根据应用需求进行可定制的模块归纳为四个典型的模块,如图1中彩色图块显示的视频预处理(VP)、运动估计(ME)、码率控制(RC)和模式选择(MD)这几个模块.这些模块的可定制性大大增加了视频标准应用的灵活性和普适性.为了尽可能提高视频编码率失真性能,同时权衡编码复杂度,需要协调这些待定制模块,这正是编码控制模块的任务.

图1 视频编码器中算法可定制模块Figure 1 Correlation among customizable algorithm modules in video encoder

1.1 可定制模块

1)视频预处理(VP):是以提高压缩率、保证最终的图像质量为目的的一系列预先对原图像进行分析处理的步骤,主要是视频序列的图像复杂度预分析:包括场景切换检测,根据场景分布调整图像组(group of picture,GOP)结构和帧类型;在X264非实时应用多步编码中,预处理期间获取视频帧间复杂度分布情况,为优化GOP级和帧级目标码率分配提供统计参数信息,以提高视频编码算法的效率.

2)运动估计(ME):是 H.264编码器中最复杂和耗时的部分.它使用多个预测模式、多参考帧,其算法的好坏直接影响着编码的效率和图像质量.提高运动估计算法的效率主要技术有:运动搜索初始像素点的确定,匹配准则和运动搜索方式选择.X264提供四个整数像素运动估计方法,包括小菱形(DIA)、正六边形(HEX)、全局搜索(ESA)和变换全局搜索(TESA).

3)模式选择(MD):多宏块分割模式是H.264中运用的一项重要的技术,通过对基本宏块进行更精细的分割来更好地匹配实际运动物体的开头,为运动估计的进行做了更精确的准备.H.264标准可用的分割模式范围相较于之间的标准而言更加地广泛,对于帧内预测模式,它允许一个16×16宏模块可以被划分为16×16、16×8、8×16、8×8、8×4、4×8或4×4.对于内部预测,允许分区大小是16×16、8×8和4×4.对于模式选择模块的任务是从大量候选模式里选出最优的模式.

4)码率控制(RC):码率控制模块提供量化参数Qp,这个参数决定了编码比特的消耗和失真分布,所以码率控制模块是个非常重要的模块.码率控制算法需要获得一个合适的Qp来控制比特率,能够在没有缓冲区上溢和下溢的情况下满足目标比特率,提高视频质量.

1.2 模块间的关联度

编码器中各模块之间有着复杂的关联度,它们的关系如图2.

图2 视频编码中多模块关系示意图Figure 2 Inter-relevancy among customizable modules

视频预处理可以通过视频内容的分析对运动估计和码率控制部分起到作用,它在运动预测的基础上,给码率控制提供帧级编码复杂度信息,同时给出运动估计模块的运动矢量.运动估计和模式选择模块有着很强的相关性,许多学者在这二者中进行了联合优化研究.运动估计在相应帧间模式代价计算下获得最佳的运动矢量,这些值将成为模式选择的重要输入,同时时间域上的预测精度也决定着模式选择算法的性能.模式选择和码率控制模块也同样有着很高的相关性,率失真优化的模式选择需要量化参数来确定拉格朗日乘子,这是由码率控制决定的,同时也计算模式选择中候选模式的码率和失真.这些值经过筛选,作为一个样本数据来为码率控制模块选择出宏块级的率失真模型参数.码率控制是最复杂的视频编码器模块,它直接决定编码失真和比特率之间的权衡,此外它是在一定程度上也与其他模块有着较高的相关性,码率控制为率失真优化下的运动估计和模式选择提供了量化参数.

1.3 各模块对X264编码器的影响

X264作为兼容 H.264的开源编码器,从2003年开始,经历了多年开发后的X264在编码上的性能和运行效率已经是同时期编码器中的佼佼者,一般压缩相同的序列,X264可以用和Xvid一样的码率压缩出比后者更好的文件质量.从开发至今,在许多优秀的研究员和程序员的设计维护下,X264已经更新到目前最新的core 128版本.它已经被用于一些流行的应用程序,例如ffdshow、fmpeg和MEncoder等.

X264性能的提高主要依赖于前面提到的四个算法可定制的模块.X264针对不同的应用提供了许多可灵活性配置的算法控制选项.本文中我们使用X264编码器作为分析模块间影响机理的实验平台,其中的一些选项都是可定制模块的重要参数.每个模块都有多个可定制编码参数选项,但是其中很多对编码性能产生的影响很小,我们对于每个模块,使用几个标准测试序列来测试所有的候选选项,根据率失真性能的变化程度,我们在每个模块中选择一个最重要的编码选项来评估分析模块之间的影响.帧类型和GOP结构由视频预处理模块决定,不同的结构导致不同的编码性能,通过视频预处理决定的自适应GOP结构,相比之前固定结构提高了编码效率.X264中的自适应B帧算法选项也属于视频预处理模块中的一部分,结果如图3,可以明显看出这个算法选项提高了将近1dB的PSNR.

在X264中,ME选项对运动估计的搜索方法进行配置,R-D性能曲线在图3中画出,我们可以看出TESA选项比DIA选项获得更好的R-D性能,这两个选项都用来进行运动估计模块相关性的分析.宏块分割选项能够控制编码的分割模式,所以这个选项对模式选择的算法性能有很大的影响.在图3中模式选择的部分,选项partitions all的编码质量要好于partitions none选项.在X264中,基于感知视频编码,MBTree是个关键的码率控制算法.在此算法中,自适应的比特分布是根据邻近帧的时域失真分布来调节的,这个算法很大程度上提高了R-D性能,因此MBTree的开关用于码率控制模块的分析.我们从图3可以看出R-D性能的变化程度是由显著性(占主导地位)的编码选项来影响的.

图3 四个模块的参数配置及其率失真曲线Figure 3 Options change in modules and the resulting R-D performance change

2 模块间相关性度量

2.1 模块相关性的度量方法

在X264平台上,首先我们配置所有编码选项,并选择一个适当的选项组合来使率失真性能达到最优化.将该配置作为基准,然后对单个或多个模块选项进行改变,得到仿真结果评估模块间的影响机制.根据我们的仿真结果,我们发现模块算法改变对整体编码多目标参数性能的影响并不简单满足线性关系.

假设算法选项集合X的整体性能功效评价为v(T(X)),两个模块算法单独定制xi、xj导致整体功效改变为Δvi、Δvj,两模块算法同时定制导致整体功效改变为Δv,定量两模块间耦合关联程度系数R-coe为:

φij=ΔPSNR-(ΔPSNRi+ΔPSNRj)

针对图1中四个关键模块选择一批算法选项集合,基于大量测试,获得任意两模块间关联程度φij填入表1中,对于每个模块xi可得到三个φij,根据它们估计出参数Θj,用于度量该模块xi对整体算法耦合关联影响程度,并将结果填入表1中.

表1 模块间算法耦合关联程度Table 1 Module inter-relevancy levelφij

2.2 模块间关联性度的重要性测试

为了使数据更加的明显,我们做了很多的准备工作,选择了“基准”一项的参数选项来编码测试,得到结果作为更改设置时的算法对比.结合图3,它应该是具有最好配置的X264编码器,接下来关联性的定量测试按以下方法进行:选择两个模块并根据表2中“对比”一列中的选项改变设置,然后作φij的计算,所有的φij的组合已在表2中全部列出.

表2 模块关联性度量的X264参数Table 2 X264options for inter-relevancy measure

根据表1中所列出的结果,我们就此可以找到方法来描述一个可定制模块的优先级,这样就可以进行这些模块的算法优化.我们为每个模块定义一个参数Θj来表示整个算法性能中模块间的一个关联程度.对于第j个模块,有三个φij参量来度量它与其他三个模块间的相关程度,由每个xj对应的三个φij值,为单个模块关联度的影响因子Factor(F):

根据四个模块的Θj结果,我们就可以定义模块算法决策的优先级顺序由D到A,那么我们可按照由A到D的顺序来执行算法优化,由此我们就将复杂的可定制模块的算法优化简化为连续几个单模块的算法优化,达到了我们最终的目的.

3 仿真结果

此实验是在X264工程上进行的仿真,四个可定制模块的中典型的编码选项的测试结果在表2中已给出.此次仿真实验选取720p序列Night和1080p序列Pedestrian area作为典型测试序列,结果已经显示.在此次实验中,所有的模块一对对的相结合与单独都做了相应的测试,得到的结果φij值也在表1中给出,有六个成对的组合,分别 是:φ12(φ21),φ13(φ31),φ14(φ41),φ23(φ32),φ24(φ42),φ34(φ43)。

图4 序列的模块关联性测试结果Figure 4 Inter-module relevancy level example results

图5 序列的相关性影响因子Figure 5 Inter-relevancy impact factor of typical sequences

根据前一小节中提出的方法,首先本文将率失真性能作为模块关联的研究内容之一.把PSNR作为功效改变,则Δv即为ΔPSNR.从图中我们可以看出,两个模块同时改变的R-D性能并不等于两个模块单独变之和,在许多情况下它们之间的差距要大于0.2dB,这个结果告诉我们模块之间关联度的测量是非常有意义的.

图5给出了几个典型序列关联度φij与相应的Θj之间的关系,根据这个结果,我们可以发现按平均效果来讲,关联度重要性的影响因子一般遵循相同的趋势,同样由图5我们还可以得出这四个模块对性能影响的程度大小顺序应该为视频预处理→码率控制→运动估计→模式选择.这个结果提示了优化算法选择的规则和优先顺序.

4 结 语

本文对视频编码各个模块间复杂的关系进行了简要的介绍,对多模块间的影响机理做了大量的研究,然后根据关联性定量测试的方法,对关联度级别和关联性影响因子做了定量的测试.本文使用了X264编码器作为实验平台,实验结果也证实了我们的想法和模型,这项工作对多模块联合优化算法具有指导意义,在这项工作的基础上,我们可以更进一步的研究多模块的联合优化.

[1]Wiegand T,Sullivan G J,Bjontegaard G.Overview of the H.264/AVC video coding standard[J].IEEE Transactions on Circuits Systems for Video Technolongy,2003,3(7):560-576.

[2]Sun Huifang,Kwok W.MPEG coding performance improvement by jointly optimizing coding mode decisions and rate control[J].IEEE Transactions on Circuits Systems for Video Technolongy,1997,7(3):449-458.

[3]Zhao Zhuo,Liang Ping.A Statistical Analysis of H.264/AVC FME Mode Reduction[J].IEEE Transactions on Circuits Systems for Video Technolongy,2011,21(1):53-61.

[4]Xu Long,Zhao Debin,Gao Wen,et al.Window-Level Rate Control for Smooth Picture Quality and Smooth Buffer Occupancy[J].IEEE Trans Image Processing,2011,20(3):723-734.

[5]Choi I,Lee J,Jeon B.Fast coding mode selection with rate-distortion optimization for MPEG-4part-10AVC/H.264[J].IEEE Transactions on Circuits and Systems for Video Technology,2006,16(12):1557-1561.

[6]钱 瑛.基于 X264的运动估计算法研究[J].硅谷,2008(24):108-108.Qian Ying.Motion estimation algorithm research based on X264[J].Silicon Valley,2008(24):108-108.

[7]李 宾,薛 全,经 颖,等.H.264视频编码新标准及性能分析[J].电视技术,2003(6):25-27.Li Bin,Xue Quan,Jing Ying,et al.New standards and performance analysis of H.264video coding[J].TV Engineering,2003(6):25-27.

猜你喜欢

码率编码器选项
融合CNN和Transformer编码器的变声语音鉴别与还原
移动视频源m3u8多码率节目源终端自动适配技术
一种基于HEVC 和AVC 改进的码率控制算法
舞台机械技术与设备系列谈(二)
——编码器
基于状态机的视频码率自适应算法
基于双增量码道的绝对式编码器设计
跟踪导练(四)
阅读理解
跟踪导练(5)
单项填空精选练习100道