前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于MCMC的X265编码参数优化方法

基于MCMC的X265编码参数优化方法

作者头像
用户1324186
发布2018-07-26 16:50:05
2.4K0
发布2018-07-26 16:50:05
举报
文章被收录于专栏:媒矿工厂媒矿工厂

一、背景介绍

新一代视频编码标准,包括高效视频编码HEVC和音频视频编码标准AVS2近年来已被提出以进一步提高H.264/AVC编码标准的压缩性能。在相同的主观视觉的前提下,HEVC相比其上一代编码器H.264/AVC实现了大约40%的比特率降低。更加复杂的编码树结构和高级运动矢量预测之类的新技术已经在压缩比方面带来了很大的改进,但是它们也导致复杂度的显著增加。因此,作为HEVC标准的正式提供的参考软件,HM一般只用于验证压缩算法,由于其过于复杂而难以直接应用于实际应用。

为了加速HEVC编码,许多研究围绕着并行和提前终止展开。HEVC标准本身兼容波前并行处理(WPP)并行编码。提前终止算法包括快速CU深度决策方法,快速PU模式判决方法以及有效的预测方案来降低速率失真优化(RDO)复杂度。事实上,除了局部算法优化之外,通过调整参数的方法,也可以实现复杂度的优化。文献[1]通过分析编码器,建立了不同的复杂度可扩展系统,分析所有编码参数并分析重要因素,并将分析结果用于控制编码时间。这种思路一般是基于Pareto法则,即大部分的编码结果一定是由小部分的因素决定。尽管如此,HM并非实用编码器。基于HM的复杂性控制只具有有限的实用价值。

x265[2]是当今最广泛使用的HEVC视频编码器,它由于自己并行的编码模式和一些提前终止算法的使用能够在家用计算机上实现720p 30fps的实时编码,十分具有实用价值。由于x265采用并行,因此某些参数的码率-失真-时间(RDT)性能的影响与文献[3]中分析的单线程相比有很大差异。而且,由于并行特性和提前终止算法,x265拥有比HM更多的参数,因此非常需要对这些参数的影响进行彻底分析指导实际应用。然而现有工作尚未报告对x265参数的影响进行全面分析。当前,编码效率和复杂度一般通过经验性的参数设定,这显然有可优化的空间。因此,需要对x265编码参数进行细致全面的研究。

二、x265编码参数分析筛选

对x265编码参数的研究从默认配置的编码速度-编码性能表现入手。

图1 x265默认配置编码性能对比

我们分别用x265的10个默认编码配置编码ClassA~ClassF中所有的编码器通用测试序列,并记录编码时间与编码性能,得到如上图所示的表现,将所有数据取代数平均得到下表所示的x265默认配置编码速度-编码性能配比。

表1 x265默认配置编码性能-相对时间

从上表中可以看出,Slow配置参数处于编码速度-编码性能的拐点,因此具有最高的"性价比",另一方面,Slower虽然编码时间是Slow的三倍,但是从平均性能看来甚至还不如Slow,这从侧面印证编码器进行了很多计算,但是大多数都属于"空转",x265默认编码参数一般都沿用上一个版本,但随着编码器内部工具的增多,初始编码参数已经不是最优值。事实上,Slow和Medium配置在实际应用中使用最多,因此基于Slow配置进行优化是比较合理的方案。既然要基于Slow配置进行优化,首先需要了解x265默认编码参数值从Slow到Ultrafast都有哪些更改。如下表所示,其中加粗的字体是Slow配置的参数值:

表2 Slow到Ultrafast相关编码参数

可以发现,参数及参数值的选择非常多,其中部分参数对编码速度-编码性能的影响粒度较大,有些影响粒度较小。在同样编码性能损失下,不同参数带来的时间增益也不同,因此需要一个评价指标评判各编码参数修改的性价比:

其中TS代表着改变编码参数带来的编码时间节省,BDBR代表随之而来的编码性能损失。有了该评价指标,我们每次在Slow的默认配置上修改一个参数的参数值,并观察本次修改带来的效果,经过RDTscore以及BDBR和TS的筛选,表2精简为表3所示:

表3 Slow到Ultrafast精简的编码参数

表中的编码参数及参数值的改变均可以对编码时间和编码性能带来明显的变化。

三、基于MCMC的更优编码参数配置的生成

在有限因素的前提下,为了获取最优值,传统有两种方法。第一种是遍历所有的组合,以获取最优解,一种是使用贪婪法,以最快速度获取较优解。但是遍历所有组合效率较低,基于RDTscore的贪婪法又只考虑单个参数改变带来的影响。为了考虑到不同参数之间的相互影响,本工作采用MCMC的思想,设计了一个参数自适应算法。

MCMC的思想,即蒙特卡洛法马尔可夫链,是通过随机采样的方法构筑状态机中的不同状态的跳转情况下结果的几率,并通过各种结果的概率决定当前状态需不需要进行转移。其思想主要用于围棋AI算法。

在编码参数的自适应中,参数的改变也是一个状态跳转的过程。我们设置目标编码时间,使用初始编码参数进行编码,从旧编码参数生成新编码参数,并根据新编码参数的编码结果决定新的参数组合是否被接受,即是否进行跳转。

图2 模拟状态跳转图

图2展示了一个目标时间为0.3的模拟状态跳转图,其中红色的箭头代表被拒绝的新参数组合,绿色箭头代表被接受的新参数组合。可以看出,经过有限次的跳转,初始编码参数可以逐步收敛到目标编码时间一定阈值内,编码性能相对x265默认编码配置较优的编码参数。具体的跳转方法和边界条件请参考论文细节[4]。将目标编码时间分别设置为0.9~0.1,按照设计的MCMC算法,在不遍历所有参数组合的前提下,即可生成一系列比x265默认编码参数更优,并且接近最优的编码参数。

表4 生成的新编码配置表

通过对比生成的编码参数和x265默认的编码参数,可以算得在保证同样编码性能的前提下,节省26.72%的编码时间,这对于本身编码速度就很快的x265编码器可以说效果十分显著,具有实用价值。

本贴文章IEEE下载链接:https://ieeexplore.ieee.org/document/8351034/

参考文献

[1] Corrêa G, Assunção P A, Agostini L V, et al. Pareto-based method for high efficiency video coding with limited encoding time[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(9): 1734-1745.

[2] x265.x265 Software [Online].Available:https://bitbucket.org/multicoreware/x265/downloads/.

[3] M. Grellert, S. Bampi, and B. Zatt, "Complexity-scalable hevc encoding,"in 2016 Picture Coding Symposium (PCS), Dec 2016, pp. 1-5.

[4] Huang Y, Song L, Xie R, et al. An MCMC based Efficient Parameter Selection Model for x265 Encoder[C]//Circuits and Systems (ISCAS), 2018 IEEE International Symposium on. IEEE, 2018: 1-5.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档