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 条评论
登录 后参与评论

相关文章

来自专栏新智元

【重磅】百度通用 AI 大突破,智能体通过交互式学习实现举一反三

【新智元导读】百度IDL研究员徐伟、余昊男、张海超提出了一个新的框架,通过多任务强化学习和零数据学习,让智能体在没有先验知识的情况下,自己学会了结合语言和视觉两...

4249
来自专栏IT派

资源 | Style2paints:专业的AI漫画线稿自动上色工具

IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 由于档期限制,我们经常会看到动画由于制作时间紧张而出现作画崩坏的情况。来自苏州大学的研究者...

4566
来自专栏专知

【ICCV2017 Tutorial】何恺明博士最佳论文Mask R-CNN Tutorial 报告(附下载)

【导读】当地时间 10月 22 日到10月29日,两年一度的计算机视觉国际顶级会议 International Conference on Computer V...

3144
来自专栏机器之心

斯坦福提出机器学习开发新思路:无Bug的随机计算图Certigrad(已开源)

选自Github 机器之心编译 参与:李泽南、蒋思源 在实践中,机器学习算法经常会出现各种错误,而造成错误的原因也经常难以找到。近日,斯坦福大学的研究者提出了...

2567
来自专栏思影科技

静息态网络核心区域的动态连接的调制激活

来自哈佛医学院的Tang wei和Stufflebeam等人在PNAS上发文,主要介绍了其针对静息态网络核心区域的动态连接影响局部神经激活的研究。文...

3468
来自专栏深度学习与计算机视觉

深度学习与机器学习中开源图片数据库汇总

数据的准备工作是训练模型前的必要工作,显然这也是非常耗时的,所以在入门阶段我们完全可以用现有的开源图片库快速完成前期的准备工作: ImageNet ImageN...

2875
来自专栏机器学习算法与Python学习

2017年度盘点:Github上十大有趣的机器学习项目(文末有惊喜......)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 目录: AlphaZero-Gomo...

4966
来自专栏CVer

CVPR 2018 收录论文名单全公布

本文将介绍 CVPR 2018 所有录用论文的标题, 包括每篇论文属于 oral, spotlight还是 poster的情况. 大家可以根据论文的标题去 go...

642
来自专栏机器之心

资源 | Darkon:可更好理解深度学习模型的开源工具包

2585
来自专栏大数据文摘

学界 | 李飞飞高徒Andrej Karpathy提醒你,小心搭建神经网络的六个坑

继Ian Goodfellow的推特小课堂之后,特斯拉的人工智能研究负责人、李飞飞斯坦福高徒Andrej Karpathy也在twitter上分享了他对神经网络...

872

扫描关注云+社区