王忠霄,殷海兵
(中国计量学院 信息工程学院,浙江 杭州 310018)
基于时域失真传递链的宏块级码率控制算法
王忠霄,殷海兵
(中国计量学院 信息工程学院,浙江 杭州 310018)
x264是工业界性能优秀的H.264编码器,时域自适应码率控制算法(MacroblockTree, MBTree)对其性能提升有很大贡献.该算法通过构造时域失真传递链,估算可以反映当前宏块被参考频度的传递代价ρ.再根据传递代价计算量化偏移量δ,实现码率的时域宏块级控制.然而,MBTree算法采用的δ-ρ模型是凭经验得出的,较为粗糙.针对这一问题,提出了一种基于R-D判据寻找性能最优δ-ρ模型的方法.实验证明采用本文模型后的MBTree算法,与之前相比可以获得最高0.14 dB的结构相似度提升,或在相同结构相似度下,获得最高5.8%的码率节省量.
码率控制;x264编码器;率失真性能;宏块树;传递代价
码率控制[1]是视频编码技术研究领域中的热点问题,它的任务是保证解码缓冲区不发生溢出前提下,使用R-D模型等技术确定量化参数Qp,实现目标码率分配.R-D模型和目标码率分配是两个核心的问题[2].早期已有的率失真模型包括:二阶模型、ρ域模型、逐段近似模型等,这些模型的准确程度和普适性都有一定局限性.一直以来学术界仍在研究更准确高效的R-D模型,然而模型的准确性依然不够.在目标码率分配方面,采用多步编码或者基于网格的动态规划编码技术,实现基于视频序列编码复杂度的目标码率分配,这些方法一般适应于非实时视频应用,或复杂度极高[3].
x264编码器基于内容复杂度计算帧级量化Qp,并通过时域MBTree和空域VAQ计算宏块级量化偏移量,得到最终量化参数,实现更加精细的码率控制.x264中,I与P帧的失真会在GOP内向后传递,造成GOP内失真恶化,编码效率低下.为了解决这一问题,应在GOP内给被参考次数多的宏块更多的码率[4-6],实现码率的合理分配.
MBTree算法[7]正是基于此原理,充分利用宏块的时域相关性,考虑运动预测相关宏块的失真与码率,进而确定量化参数.具体而言,在编码预分析滑动窗中构造时域传递链,从滑动窗最后一帧倒序向前作运动参考状况分析,计算出可以反映当前宏块被参考频度的参数ρ,本文称为“传递代价”.传递代价ρ越大的宏块,被后续帧参考的次数越多,应该有更小的失真.因此,通过δ-ρ模型得到量化参数偏移量δ,进而调整量化参数,这就根据宏块的时域相关性实现了码率的宏块级控制.
我们发现,MBTree采用的δ-ρ模型是基于经验性的log函数,缺少理论依据,并且这一简单log函数不能准确反映δ-ρ最优对应关系,这使得该算法对部分序列并不适用.为了充分发挥MBTree算法的优越性,本文尝试用遍历偏移点的方法解决上述问题.具体而言,本文以原log函数为基准函数,采样大量偏移点,对偏移点进行遍历测试,以R-D判据[8]找到最优偏移点,进而确定最终的δ-ρ模型.实验结果显示,MBTree算法采用本文δ-ρ模型后相比原log函数模型有明显的主客观性能提升,可以更加准确细致地反映各类型序列的δ-ρ对应关系.
本文结构如下:第一节详细分析MBTree算法原理;第二节介绍δ-ρ模型的计算原理;第三节给出测试结果;第四节是分析和展望.
1.1 滑动窗和传递代价ρ
传递代价ρ的获得是通过lookahead滑动窗模块实现的,如图1,滑动窗由当前帧及后向多个连续邻近帧组成,它默认大小为40. MBtree基于该滑动窗计算当前帧各宏块的传递代价ρ,计算主要由intra_cost和propagate两部分组成,假设N为滑动窗后续帧参考当前编码帧当前宏块的总次数,k为滑动窗倒序分析时任一帧的任一宏块,k′是被宏块k参考的对应块,如图1,k′可能被划分在四个宏块中.计算传递代价ρ的具体步骤如下:
1)计算滑动窗内各帧各宏块的最优帧内和帧间模式预测残差,用SATD度量预测代价intra_cost(j)和inter_cost(j).滑动窗最后一帧各宏块没有被参考,因此inter_cost(j)和propagate(j)都为0.
2)滑动窗中B帧和P帧会参考P帧或I帧,宏块k传递给参考帧匹配宏块k′的传递代价量amount(k′):
amount(k′)=(intra_cost(k)+propagate(k))×fraction(k),
(1)
fraction(k)=(1-inter_cost(k)/intra_cost(k)).
(2)
3)将宏块k总的传递代价量amount在与匹配宏块k′相关的四个宏块(n=1、2、3、4)间按照权重进行分配,weight(n)是由运动预测的运动矢量计算得到
in(n)=amount(k′)×weight(n).
(3)
4)图1中参考P帧的B帧和P帧所有宏块的传递代价量amount按权重weight传递给P帧各宏块后,就可以计算P帧各宏块的propagate值了,N为宏块j按权重weight被传递到的次数.
(4)
5)当前P帧的propagate计算完成后,在滑动窗里倒序继续向前循环步骤1)~4),直到计算出滑动窗中第一帧(I或P帧)各宏块的参考传递代价propagate值,最后计算时域传递代价ρ:
ρ(j)=propagate(j)/intra_cost(j).
(5)
图1 Lookahead滑动窗中计算ρ值示意图Figure 1 Diagram of calculation of ρ in the sliding window
1.2 原δ-ρ模型
MBTree算法使用公式(6)的log函数来实现由传递代价ρ向量化参数偏移量δ的计算.qcompress是基于实验得到的经验值,默认为0.6.
δ=5(1-qcompress)×log2(1+ρ).
(6)
图2是bridge-close序列qcompress分别为0.3、0.6、0.9时的δ-ρ模型.
测试发现,MBTree算法对不同序列的性能提升幅度是不同的,甚至对个别序列性能有损害.这是因为不同序列δ-ρ最优对应关系不同,而MBTree算法的δ-ρ模型基于经验且过于粗糙,忽略了不同序列的差异性.这限制了MBTree算法的应用,也不利于对它进一步的优化建模.因此,本文尝试用更准确细致的模型描述δ-ρ的对应关系,这对于MBTree算法的进一步研究非常有益.
2.1 参数ρ样本值统计分析
本文对大量视频序列的ρ样本值做了统计,如图3,ρ值主要集中在小于30的范围内,部分序列ρ值大于50的宏块数为0,在视频序列庞大的宏块个数中,ρ值大于30的宏块所占比例极小,它们所对应的δ-ρ最佳性能点对整体影响极小,因此本文选择区间(0,30]为ρ值的研究范围.
图2 MBTree-qcompress映射曲线Figure 2 Mapping curve of MBTree-qcompres
图3 ρ数值分布图Figure 3 Map of ρ distribution
2.2 δ-ρ新模型
为了得到δ-ρ性能最佳模型,本文首先对参考代价ρ进行离散化采样.
(7)
如式(7),根据ρ的数值分布及MBTree原log模型,把ρ分成了三段,每段采样若干离散点.在(0,4]内,按0.25为区间大小进行采样,各区间内的ρ值统一取值为区间中值;在(4,10]内,区间大小为0.5;在(10,30]内,区间大小为1.
对每个ρi采样点,按照log模型会计算到对应的δi值.为了得到δ-ρ最优模型,对每个δi值加上偏移量ωi.如式(8),每个δi值会有21个待选的ωij,ωij取值范围为[-2.5,2.5].
ωij=0.25×(j-11)j∈[1,21].
(8)
对于该ρi采样点加上偏移量ωij时,其余的ρ采样点并未加入偏移量,此时的δ取值为κij,计算如式(9).即,每次只对一个ρi采样点进行实验,寻找该点的性能最优δ值.
(9)
依式(10)的率失真代价函数计算每个ωij对应δ-ρ模型的率失真代价,根据式(11)得到性能最优的偏移量ωRD,率失真性能的计算如图6.
(10)
(11)
该ρi采样点对应的性能最优δRDi是原δi值与最优的偏移量ωRD叠加得到
δRDi=δi+ωRD.
(12)
按上述步骤计算所有ρ采样点对应的性能最优δRDi,这些最优δRDi就是离散化的δ-ρ新模型,图4、5是本文测试两个序列的新模型与原log模型对比图.
图4 bridge_far序列最优映射图Figure 4 The optimal mapping diagram of bridge_far
图5 hall序列最优映射图Figure 5 The optimal mapping diagram of hall
图6 率失真代价计算原理图Figure 6 Rate distortion cost calculation diagram
算法流程如图7,具体步骤如下:
1)按照式(7)对ρ进行离散采样.
2)按照式(8)(9)计算待选偏移量ωi及δ-ρ模型κij.
3)按照式(9)选取最优偏移量ωRD.
4)按照式(10)计算性能最优δfinal.
5)重复步骤2)~4)计算所有采样点的δfinal.
图7 δ-ρ新模型计算框图Figure 7 Calculation diagram of the δ-ρ new model
本文实验基于x264平台,测试参数为:—preset slower —pass 1 —bframes 2 —slow-firstpass —merange 24.
如图5、6和表1,对多数序列δ-ρ新模型相比原模型主观结构相似度质量都有提升,最高结构相似度可以提高0.14 dB,10个序列结构相似度平均提高0.01 dB;码率最高节省5.8%,10个序列平均节省1%;个别序列的峰值信噪比也有提升,如图10.
表1 结构相似度提升和比特率节省
Table 1 The ssim improvement and bitrate saving (compared with MBTree off)
序列名log模型结构相似度提升量/dB本文模型结构相似度提升量/dBlog模型码率节省/%本文模型码率节省/%Bridge⁃close0.43220.385315.6714.15mobile0.85470.780817.5716.14news1.20201.236325.6626.45paris1.47741.497327.4727.77highway0.07760.09365.316.96Bridge⁃far0.05290.10625.099.64forman0.34760.33699.289.01coastguard0.33540.318910.329.87container0.33510.32079.579.24hall0.30020.446315.1820.96Cif⁃平均0.54150.552214.1115.02
图8 bridge_far序列ssim测试结果Figure 8 The ssim result of bridge_far
图9 hall序列ssim测试结果Figure 9 The ssim result of hall
图10 hall序列psnr测试结果Figure 10 The psnr result of hall
本文首先详细分析了x264编码器中的宏块级码率控制MBTree算法原理,该算法通过构造时域传递链,得到可以反映当前宏块被参考频度的传递代价ρ,这巧妙实现了宏块被参考频度的感知,并通过一个简单log函数计算该宏块的量化偏移量δ,实现了宏块级的码率控制;接着本文针对MBTree算法中δ-ρ模型较为粗糙的问题展开研究,以R-D为判据遍历偏移量点得到δ-ρ新模型.结果显示对于多数序列的主观性能,本文新模型都有提升.目前本文算法在离散分段方面并未做到最优,同时新模型的准确性仍然有待提高.另外,本文所提映射模型是基于离线分析,相比原模型在普适性上有待改进.因此,下一步的研究将针对离散分段最优化,及对新模型进行迭代寻优进一步提高模型的准确性;并尝试找到基于内容自适应的模型,使模型普适性得以提升.
[1] CHEN Mingzhu, ZHANG Xingming, LIN Yubei, et al. A perception-based rate control algorithm for H.264/AVC[C]//HPCC_EUC.Piscataway: IEEE,2013:2219-2223.
[2] 殷海兵.数字视频编码算法优化理论、方法和芯片实现[M].北京:电子工业出版社,2015:231-237.
[3] TIAN Ling, XU Xinhao, ZHOU Yimin, et al. Analysis of quadratic R-D model in H.264/AVC video coding[C]//IEEE 17th International Conference on Image Processing. Hong Kong: [s.n.],2010:2853-2856.
[4] WANG Shanshe, MA Siwei, WANG Shiqi, et al, Rate-GOP based rate control for high efficiency video coding[J].IEEE Signal Processing Magazine,2013,7(6):1101-1111.
[5] YANG Tianwu, ZHU Ce, FAN Xiaojiu, et al. Source distortion temporal propagation model for motion compensated video coding optimization[C]//IEEE International Conference on Multimedia and Expo. Melbourne: [s.n.],2012:85-90.
[6] TOIVONEN T, MERRITT L, OJANSIVU V, et al. A new rotation search for dependent rate-distortion optimization in video coding acoustics[J].Speech and Signal Processing,2007(1):1165-1168.
[7] JASON G. A novel macroblock-tree algorithm for high-performance optimization of dependent video coding in H.264/AVC[EBOL].(2015-02-06) [2011-04-29].http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pdf.
[8] ORTEGA A, RAMCHANDRAN K. Rate-distortion methods for image and video compression[J].IEEE Signal Processing Magazine,1998,6(15):23-50.
A macroblock level adaptive ratecontrol algorithm based on temporal distortion propagate chains
WANG Zhongxiao, YIN Haibing
(College of Information Engineering, China Jiliang University, Hangzhou 310018, China)
The x264 is a splendid H.264 compatible encoder in the industry. And its superior R-D performance is mainly contributed by the temporally adaptive MBTree quantization control algorithms. The MBTree algorithm estimates the propagate costρby developing a temporal distortion propagating chain, which can reflect the amount of distortion propagated by the current block. According to the propagate costρ, the algorithm calculates the quantitative offsetsδto adjust the frame level quantization parameter Qp, achieving optimal temporal domain bit allocation. Theδ-ρmodel in the MBTree algorithm is an empirical and rough model. Now we propose an optimal model based on the rate distortion optimization. The simulation results verify that the MBTree algorithm with the new model can achieve up to 0.14 dB BD-SSIM improvement, or achieve up to 5.8% bitrate saving with the same BD-SSIM.
rate control; x264 compatible encoder; rate distortion performance; MBTree; propagate cost
1004-1540(2015)03-0353-06
10.3969/j.issn.1004-1540.2015.03.019
2015-02-06 《中国计量学院学报》网址:zgjl.cbpt.cnki.net
王忠霄(1991- ),男,山东省济宁人,硕士研究生,主要研究方向为视觉感知编码等.E-mail:599597630@qq.com 通讯联系人:殷海兵,男,教授.E-mail:yinhb@cjlu.edu.cn
TN919.8
A