VP9到HEVC转码的帧间加速算法

背景介绍

互联网多媒体技术的普及使数字视频得到了广泛的应用,更大分辨率、更高清晰度的视频逐渐进入人们的生活。传统视频编码标准如ITU(国际电信联盟)和ISO/IEC(国际标准化组织/国际电工委员会)共同制定的H.264/AVC标准针对大分辨率视频,如2K、4K等,压缩性能不够优良。其下一代标准高效视频编码(HEVC, High Efficiency Video Coding)编码标准相对于H.264/AVC有50%的压缩率提升,更适合大分辨率视频的压制,也因此成为目前主流的国际标准。国内自主研制的标准包括AVS2(音视频标准2)。以上这些标准代表了目前最先进的压缩技术,但使用它们往往需要支付相关的专利费用,对于商业使用来说是一笔不小的成本开销。

另一方面,以Google公司为代表的另一阵营AOM(Alliance for Open Media)则将视频压缩的关注点放在了网络视频上,这也与其公司的商业平台Youtube有着密切的联系。AOM致力于开发免费、开源的视频编解码标准以适应不断增长的网络视频服务及相关需求,这一动作吸引了包括Facebook、Netflix、Cisco、Intel、Microsoft、Mozilla等国际知名公司的参与和开发,先后形成了VP8、Daala、VP9、AV1等高效开源视频编解码器及相关标准,用于打破传统编解码标准的技术和专利壁垒,特别针对网络视频进行优化,以实现在不同功耗设备和带宽环境下高质量、低延迟的视频内容编解码、传输等服务。

不同的用户往往选择不同的编码方式对视频进行压缩,各大网络视频平台对于视频编码标准的选择都有自己的偏好,例如Google公司的Youtube视频分享平台主要使用VP9标准进行编码,目前正在向AV1逐渐过渡,而国内的商业网站则以MPEG-x和H.264/AVC为主,另外,一些主流的高清电影爱好者搭建的分享网站则往往使用HEVC标准进行高清晰度视频编码,以保证高质量的诸如1080p、2K的片源。由此可见,随着技术的进步和视频编码标准的爆发式增长,在不同视频标准之间进行转码的需求将越来越多,因此优秀的转码加速算法在未来有着巨大的前景和实用价值。

我们选择两个阵营中各自的代表标准VP9和HEVC,设计它们之间的转码加速算法。为此,我们首先比较了HEVC和VP9在部分编码技术上的异同,两者的对比如表1所示

表1. HEVC与VP9部分技术对比

转码框架及相关研究介绍

视频转码分为不同的类型,包括空间分辨率转码、码率转码、帧率转码以及在不同编码标准之间转码等,而VP9到HEVC的转码就是在不同标准之间进行转码。对于转码框架来说,图1所表示的级联转码框架,首先利用原标准的解码器还原成重建视频,然后使用目标编码器重新编码,从而完成转码的要求。该转码器原理简单、实现容易,但再编码过程的计算复杂度大,是一个全解全编的转码框架。

图1. 级联转码框架

对此进行改进就得到了图2所示的转码加速框架。转码加速的核心在于相似信息的重复利用,通常来说,不同的编码器和编码标准对于同一个视频的编码决策信息是有相似性和差异性的。利用相似性,我们就可以很大程度上减少再编码过程中极为耗时的搜索和决策过程,达到加速的效果,不仅如此,还可以在一定程度上保证转码后视频的质量下降在可接受的范围内。相比于全解全编的转码器,该框架提取了VP9解码过程中的决策信息和运动信息,这类信息是在源视频经VP9编码的过程中产生的,一定程度上反映了视频本身的特性,例如细节、纹理、运动剧烈程度等等,这些信息与HEVC在对应区域的决策模式应该是存在相关性的,如何挖掘并利用这些相关性来设计转码器,则是算法设计的关键所在。

图2. 转码加速框架

转码加速相关的研究工作也有很多。

目前大量的转码算法相关研究工作集中在H.264/AVC到HEVC的转码加速上,Peixoto和Izquierdo在文献[1]中首先提出了一个复杂度自适应的H.264/AVC到HEVC的转码器。在算法的设计上,该算法利用CU中的运动矢量MV的水平分量和垂直分量作为计算基础,计算出了两个门限值Tlow和Thigh,作为划分决策的依据。在此基础上,Peixoto在[2]中改进了模式映射的算法,并利用机器学习提高模式映射的精准度,达到转码加速的效果。Shen在[3]中使用了HEVC中的WPP并行特性来进行H.264/AVC到HEVC的转码加速,算法结合了多核的计算环境,使用单指令多数据流(SIMD)优化代码达到并行计算的效果,提高了编码过程中的计算吞吐率。由于篇幅所限,更多的H.264/AVC到HEVC的转码论文请见参考文献部分。

而VP9相关的转码加速研究目前并不多,比较重要的一个是文献[4],其实现了HEVC到VP9的转码加速。主要有两个关键点,其一是减少帧间模式的搜索。该算法在HEVC的解码过程中获取了HEVC划分块的编码模式,主要区分了帧间模式和帧内模式。帧内模式的搜索量小,因而帧内模式编码速度要大大快于帧间模式,文献[4]利用了这一点,在VP9的编码过程中参考HEVC对该块的划分方式,优化VP9的决策过程。其二是参考帧选取的简化,VP9有3类参考帧的选取,分别是ARF、GOLDEN和LASTREF,算法在HEVC的解码端记录了参考帧的使用情况,在VP9的编码端使用HEVC用过的参考帧进行匹配,配合ARF、GOLDEN和LASTREF的类型,可以大大减少选取参考帧过程中的计算量。

转码算法和结果说明

上海交通大学图像所研究团队基于传统H.264/AVC到HEVC的转码方法研究,提出了VP9到HEVC转码的帧间加速算法,一定程度上加速了转码过程,此方案主要包含以下几个步骤:

第一步是特征信息的提取。在解码信息的获取方面,VP9标准相比于传统解码端标准的优势在于,其基于四叉树划分的方式提供了传统解码端标准无法提供的丰富信息,这成为VP9的特点所在,因而VP9的解码端能够提供丰富而独特的参考信息用于决策和映射,图3所示为VP9与HEVC的划分深度示意图,在特征信息提取过程中收集了三类信息。

图3. VP9(左)与HEVC(右)对同一区域的划分示意图

第一类是VP9的深度信息,包含深度图和子块划分数目。其中VP9深度信息主要体现了VP9编码器对每个块的划分决策,一般来说,纹理复杂的区域划分细致,而平坦区域划分简单,这一点对于VP9和HEVC都是类似的,依据此使用VP9的划分深度指导HEVC的划分深度。子块划分数则不如深度图记录那么详细的信息,它记录了每个64x64的Super Block一共被划分成了多少个块,一般来说,细节区域的划分细致,子块划分数就稍大,而平坦区域划分少,子块划分数也就小,这一信息虽不如深度图记录的细致,但是也可以作为指导。图4所示即为子块划分数的一个示意图,图中VP9的编码器划分决策如黑色实线所示,通过蓝色标志性的Z字形扫描我们统计出这个Super Block被划分成了22个大小不一的子块,这个数目中等偏多,说明该块的图像还是存在一些细节的,因此HEVC在决策时应该更多的划分,这是通过一个例子进行的简单说明。

图4. 子块划分数示意图

图5. VP9(左)与HEVC(右)运动矢量分布示意图

第二类是VP9的运动矢量信息,图5所示为VP9与HEVC的运动矢量分布对比。很明显运动矢量的分布呈现出相似性,并且运动矢量这一特征在众多的转码研究中被广泛使用,是常见的解码端特征。

第三类是HEVC编码端的特征,包括2Nx2N和SKIP模式的代价,这两个模式的代价在编码的时候首先被计算出来,我们选取其作为特征。

第二步是映射模型的训练。模型的作用是将VP9解码信息尽量准确的映射到编码端以优化编码端的搜索过程,在实现过程中,算法使用的是基于朴素贝叶斯的机器学习方法,在众多学习算法中朴素贝叶斯简单有效。通过监督学习就可以建立输入输出之间的映射关系,在实际的转码过程中利用映射关系完成VP9到HEVC转码的帧间加速部分。以下为相关的共识推导,其中r为决策结果,vj代表了各个特征,通过贝叶斯公式进行变形以及独立性进行化简后就可以得到最终的判决公式。

第三步是HEVC端的加速。在HEVC端编码的递归搜索过程中,通过对CU64x64和CU32x32搜索进行提前终止,达到转码加速的效果。算法的关注点在于每个CU64×64和CU32×32是否继续分割,这个决策应该由映射算法给出。如果决策是继续分割,则跳过当前未计算的PU划分模式,并将CU分成4个子CU继续进行判决;反之,如果决策是停止继续分割,则检查当前大小的CU中所有的PU模式,并不再将CU分成4个子CU,而是直接跳到下一个CU进行计算。以上文字描述的算法流程图如图6所示。

图6. 加速算法

表2所示为VP9到HEVC转码的帧间加速的实验结果,其中Depth0是仅对CU64进行加速的实验结果,Depth1是仅对CU32进行加速的实验结果,Depth0&1是结合了两者。可以看到平均BD-Rate增加为2.8%,而转码时间节省约为43.5%。进一步分析,可以发现对于大分辨率的视频会产生一定的质量损失,而从CU64x64和CU32x32的数据来看,质量损失更多是由对CU32x32的加速决策导致的。

表2. 帧间转码加速的实验结果

下图给出了部分序列率失真曲线的对比,其中蓝色的为全解全编曲线,橙色的为转码加速曲线,可以看到虽然存在一定的失真,但是整体来说,两条曲线还是贴合比较紧密的。

图7.全解全编与转码加速曲线对比

下图给出了相应的主观图像质量对比,虽然在放大后会有部分细节处存在失真,但是整体的效果是比较好的,这也与实验结果是吻合的。

图8. 主观质量对比

更多论文细节和实验分析详见论文:

Li X, Xie R, Song L, et al. Machine learning based VP9-to-HEVC video transcoding[C]// IEEE International Symposium on Broadband Multimedia Systems and Broadcasting. IEEE, 2017:1-6.

下载链接:

http://medialab.sjtu.edu.cn/publications/publications.html

参考文献

[1] Peixoto E, Izquierdo E. A complexity-scalable transcoder from H.264/AVC to the new HEVC codec[C]// IEEE International Conference on Image Processing. IEEE, 2013:737-740.

[2] Peixoto E, Macchiavello B, Hung E M, et al. An H.264/AVC to HEVC video transcoder based on mode mapping[C]// IEEE International Conference on Image Processing. IEEE, 2014:1972-1976.

[3] Shen T, Lu Y, Wen Z, et al. Ultra Fast H.264/AVC to HEVC Transcoder[C]// Data Compression Conference. IEEE Computer Society, 2013:241-250.

[4] Torre E D L, Rodriguez-Sanchez R, Martínez J L. Fast video transcoding from HEVC to VP9[J]. IEEE Transactions on Consumer Electronics, 2015, 61(3):336-343.

[5] Chen ZY, Fang JT, Liao TL, et al. Efficient PU Mode Decision and Motion Estimation for H.264/AVC to HEVC Transcoder[J]. Signal & Image Processing, 2014, 5(2): 81-93.

[6] Shanableh T, Peixoto E, Izquierdo E. MPEG-2 to HEVC Video Transcoding with Content-Based Modeling[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2013, 23(7):1191-1196.

[7] Zhang D, Li B, Xu J, et al. Fast Transcoding from H.264 AVC to High Efficiency Video Coding[C]// IEEE International Conference on Multimedia and Expo. IEEE Computer Society, 2012:651-656.

[8] Zhang D, Tong J, Zang D. Fast CU partition for H.264/AVC to HEVC transcoding based on fisher discriminant analysis[C]// Visual Communications and Image Processing. IEEE, 2017:1-4.

[9] Correa G, Agostini L, Cruz L A D S. Fast H.264/AVC to HEVC transcoder based on data mining and decision trees[C]// IEEE International Symposium on Circuits and Systems. IEEE, 2016:2539-2542.

[10] Zhu L, Zhang Y, Li N, et al. Machine learning based fast H.264/AVC to HEVC transcoding exploiting block partition similarity[J]. Journal of Visual Communication & Image Representation, 2016, 38(C):824-837.

[11] Cuenca P. Low-complexity heterogeneous architecture for H.264/HEVC video transcoding[J]. Journal of Real-Time Image Processing, 2016, 12(2):311-327.

[12] Liu M F, Zhong G Y, He X H, et al. Transcoding method from H.264/AVC to high efficiency video coding based on similarity of intraprediction, interprediction, and motion vector[J]. Journal of Electronic Imaging, 2016, 25(5):053028.

[13] Díaz-Honrubia A J, Martínez J L, Puerta J M, et al. Fast quadtree level decision algorithm for H.264/HEVC transcoder[C]// IEEE International Conference on Image Processing. IEEE, 2015:2497-2501.

原文发布于微信公众号 - 媒矿工厂(media_tech)

原文发表时间:2018-01-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

业界 | Uber推出机器学习平台Michelangelo:全面处理工作流程推动AI民主化

选自Uber 作者:JEREMY HERMANN、MIKE DEL BALSO 机器之心编译 参与:黄小天、路雪、蒋思源 近日 Uber 提出了他们的机器学习平...

3186
来自专栏鸿的学习笔记

The Quora Topic Network(下)

为我们的网络确定的最简单的度量之一是每个节点的indegree。这只是指向节点的链接的权重的总和。在我们的例子中,这对应于我们在上一节中定义的入站链路权重的总和...

771
来自专栏AI科技大本营的专栏

手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式

【导读】近年来,我们在自动模型选择和超参数调优方面取得了进展,但机器学习流程中最重要的方面-- 特征工程,在很大程度上被我们所忽略。在本文中,我们将使用 Fea...

1143
来自专栏PaddlePaddle

【AI核心技术】课程十: AlexNet 深度学习关键突破

UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程持续更新中!

825
来自专栏磐创AI技术团队的专栏

热点 | github近期热点项目汇总

【磐创AI导读】:我们总结了过去一年近8000个开源机器学习项目,从中选择了前30个最热点的项目推荐给大家。想要获取更多的机器学习、深度学习资源。欢迎大家点击上...

611
来自专栏AI研习社

为计算机视觉生成庞大的、合成的、带标注的、逼真的数据集

我想要给大家分享一个我们在Greppy一直使用的测试版工具,其被称之为”Greepy Metaverse“,其通过快速、简便地为机器学习生成大量训练数据,来辅助...

592
来自专栏应兆康的专栏

Andrew Ng - 《Machine Learning Yearning》 Chapter 1-14

Machine Learning Yearning. 全新版本 本书作者是Andrew NG

1K24
来自专栏人工智能头条

本周必看 | 7月ML&Python 最佳开源项目Top 10 :从几百个项目中脱颖而出,都在收藏!

【导读】七月就要结束了,在即将到来的 7 月最后一个周末,人工智能头条为大家整理了本月 ML 和 Python 最受欢迎的十大开源项目。就算放假在家也可以知道大...

1053
来自专栏新智元

【干货】7月机器学习Top 10,GitHub平均1041星!

【新智元导读】本月的最热机器学习项目出来了!Mybridge对过去一个月的近250个机器学习开源项目进行了排名,甄选出GitHub星数最多的10大热门项目。开源...

391
来自专栏大数据文摘

什么是机器学习做不到的呢?

964

扫码关注云+社区