从HEVC到VP9的快速视频转码
摘要
高效视频编码和VP9是当前视频压缩技术的最新成果,它们的比特流分别于2013年1月和5月最终确定。这些编解码器分别是目前应用最广泛的视频编解码器 H.264/AVC和VP8的下一代继承者。因此,预计在不久的将来,这些新编解码器将取代其前身。然而,将一种标准压缩的视频内容转换为另一种标准的过程计算开销大,因为必须先将视频内容解压,再使用目标视频编码器进行压缩。尽管如此,已知可以从解码过程中提取某些信息以加速编码过程。本文提出了一些从高效视频编码转码到VP9的技术。通过利用从高效视频编码解码过程中提取的一些信息,可在VP9编码器中排除部分编码模式的检查。应用所提出的方法后,在可接受的率失真惩罚下,编码复杂度降低了约60%。
索引术语
转码,高效视频编码,VP9
一、引言
如今,视频压缩最重要的需求之一是适应性,这也是实际消费电子应用所要求的。特别是,视频内容最好能够适应消费电子设备的显示能力、处理能力、内存容量和计算限制,以及网络的带宽可用性。当然,最小化所需资源和存储空间同时保持视频质量的通用要求也同样适用。
此外,近年来对视频质量和分辨率的需求大幅增加,导致多媒体流量总体上,尤其是数字视频领域,出现了惊人的增长。在这种情况下,目前最广泛使用的视频编解码器难以满足这些日益增长的需求。H.264/高级视频编码(AVC)
而VP8可以编码高清(HD)视频,但它们最初并非为此设计,因此需要更高的压缩效率。
为了满足这一需求,新一代视频编解码器于2013年发布。新的高效视频编码(HEVC)标准由视频编码联合协作团队(JCT-VC)制定,该团队包括来自ISO/IEC 动态图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)的视频专家。HEVC最初的设计目的是在带宽受限的网络上提供高质量多媒体服务的效率和性能,同时也支持高于高清分辨率的格式,例如新兴的4K和8K格式。预计在未来几年中,HEVC将成为H.264/AVC的继任者。
另一方面,VP9是VP8的继任者,两者均为面向网络的开放视频格式,目前受到大多数互联网浏览器的支持。由于前者是一种面向网络、开放且免版税的视频编解码器,并由领先企业赞助,预计它将在不久的将来成为网络上实际消费类应用的可靠解决方案。因此,这两种视频编解码器都拥有巨大的市场,因而它们之间实用且灵活的转换也备受期待。所提出的转码器的应用可体现在网络电视网络的广播端,将已用HEVC编码的内容转换为VP9内容,也可用于视频分享网站,用户上传的视频可能采用不同格式,而播放格式则统一为VP9。
所提出的方案实现了一种更高效的转码器,这意味着能够适应更多消费电子设备的能力和限制,并且由于能耗与执行时间之间存在线性关系,从而降低了能耗。需要强调的是,尽管所提出的方案是在通用视频编码器中进行测试的,但通过采用所提出的方法,编码视频序列所需的大量计算被消除。因此,无论视频编解码器实现(高度优化或非必要高效)如何,或视频转码器部署的目标平台(标准PC模型或嵌入式系统)如何,都将获得显著的时间减少以及节能效果。
考虑到这一挑战,本文的目标是开发一种高效的从高效视频编码到VP9的转码器,能够更快地将高效视频编码比特流转换为VP9比特流
比级联转码器更高效。其效率来源于尽可能重用原始 HEVC比特流中的信息,以减少VP9的编码时间。
最后提到,据本文作者所知,这是文献中在此框架内首个可用的方法,因此是高效视频编码到VP9视频转码领域的开创性步骤。结果表明,所提出的方法可实现最高达 62%的时间节省,且率失真惩罚在可接受范围内。
本文的其余部分组织如下。在第二节中,简要回顾了视频编解码器的技术背景,重点介绍了HEVC标准和VP9视频编解码器;在第三节中,简要讨论了一些近期且突出的相关提案。本文的主要贡献在第四节,其中提出了加速高效视频编码到VP9视频转码的技术。评估方法以及实验结果在第五节中展示。最后,在第六节中概述了若干结论。
II. 技术背景
A. 高效视频编码
高效视频编码的主要挑战是在保持相同质量的同时实现视频流的更低比特率。为了实现这一目标,高效视频编码在前一代标准H.264/AVC的基础上引入了新的编码工具,并改进了已有的其他工具;这些技术共同显著提升了编码效率。
影响图像分割的最重要变化之一是,高效视频编码摒弃了用于运动估计(ME)和变换的宏块(MB)和块的概念,引入了三个新概念:编码单元(CU)、预测单元(PU)和变换单元(TU)。这种结构使得编码更加灵活,能够适应帧的特定需求。每个图像被分割成大小可变的方形区域,称为编码单元(CU),取代了以往标准中的宏块结构。每个编码单元的大小限制在8x8到64x64像素之间,可能包含一个或多个PU和TU。为了确定每个编码单元的大小,图像首先被划分为64x64像素的区域,这些区域称为编码树单元(CTU),然后每个编码树单元可以被分割为四个面积为原始区域四分之一的更小区域。这种分割可以在每个子区域上递归进行,直到其大小达到8x8像素,如图1所示。
高效视频编码会检查大多数PU(帧间和帧内模式),通过选择最佳的率失真(RD)情况来决定是否分割编码单元。此外,在帧间预测的情况下,针对每个PU分区都会调用一次运动估计算法。这种广泛的可能性使得高效视频编码比其前身H.264/AVC计算开销大得多。
高效视频编码在其他模块中也引入了变化,例如帧内预测(共有35种不同的编码模式可选择),PU模式(引入了非对称模式)、新的图像滤波器以及新的变换大小, 等。
B. WebM项目 - VP9
WebM项目的目标是为网络开发一种高质量的开源视频格式,可供任何潜在用户免费使用。WebM项目于2010年5月启动,最初提议使用类似于知名Matroska容器的封装格式,包含VP8视频和Vorbis音频。然而,随着网络视频内容近年来的趋势日益要求更高的质量和分辨率,需要一种新的视频编解码器来满足这一新场景的需求。
VP9是VP8视频编解码器的演进版本,VP9比特流的最终版本于2013年6月发布。为了提高编码效率,与VP8相比,VP9比特流规范引入了大量增强功能和新的编码工具。这些增强功能和新工具包括:更大的预测块大小、新的更大尺寸变换、新的预测模式、更多的帧内预测模式、最大运动矢量精度提升至1/8像素、改进的环路滤波、改进的熵编码等……
通过使用更大的帧间预测块,VP9相比之前采用较小帧间预测块大小的视频编解码器可以获得更好的编码效率。VP9支持最大64x64像素的块,称为超块或SB64。VP9图像分割允许使用类四叉树分解方式将块划分至4x4块,且仅允许方形块进一步分割,如图2所示。每个帧间预测块最多可使用来自八个先前编码帧池中选出的三个参考帧(最后帧、金帧和ALTREF(或不可见)帧)进行编码。
VP9中的帧内预测通过增加更多的帧内预测块大小(8x8、32x32和64x64)得到了显著改进,同时还为每个8x8或更大的方形块提供了更多的预测方向。实际上,在VP9中,每个方形块有十个预测方向可用。需要注意的是,在VP8中,16x16大小仅有四个预测方向,而4x4大小有十个预测方向。此外,VP9还增加了帧间和帧内模式的组合来预测块。这种复合预测仅在宏块、SB32或SB64级别上可用。
VP9中用于捕捉运动的运动矢量(MV)的最大精度已提高到1/8像素。此外,也可以使用与VP8相同的1/4像素精度。这种更高的精度需要改进的滤波器。为此,VP9新增了三种新的8抽头滤波器。
C. 转码
视频转码是将用特定格式或特征编码的压缩视频流转换为用不同编解码器或特征编码的另一视频流的过程。转码过程应在无需执行完整的解码和重新编码的情况下完成转换。
III. 相关工作
转码在近几年一直是一个热门的研究课题,研究框架包括从MPEG-2到H.264/AVC或H.263到 H.264/AVC,H.264扩展之间如H.264/AVC到SVC,甚至分布式视频编码(DVC)与H.264/AVC之间。然而,据作者所知,高效视频编码到VP9的视频转码框架尚未被探索,本工作是首批研究该方向的工作之一。
近年来,H.264/AVC到高效视频编码的视频转码,以及高效视频编码同质转码(源和目标视频格式均为高效视频编码,但某些特性发生变化,例如视频分辨率)的框架引起了广泛关注,因为高效视频编码recently standardized,并且需要将现有的视频内容转换为新的视频压缩标准。在这方面,也已有一些尝试提出MPEG-2到HEVC转码器,因为仍有大量内容采用此格式。然而,目前尚无针对VP9的转码器。最近且较为突出的几种转码器将在下文中简要描述。
方等人提出了一种H.264/AVC到HEVC的转码器。该算法包含一个快速模式决策算法,随后执行简化运动估计。此外,H.264/AVC中的运动矢量、残差和模式信息被重复利用。同时,还需要选择PU的搜索范围,为此使用了H.264/AVC运动矢量的方差。该算法能够将编码时间最多减少53%,同时表现出可接受的率失真性能下降。
迪亚兹-洪鲁维亚等人也提出了一种从H.264/AVC到高效视频编码的转码器。但在这种情况下,该方案试图利用在H.264/AVC解码器中收集的信息,以辅助高效视频编码中的编码单元分割决策,从而避免对所有可能的编码单元尺寸及其模式进行搜索。该算法的目标是降低转码过程的复杂度。结果表明,所提出的算法可在视频转码器中实现最高达3.98倍的加速,且率失真性能无明显损失。
沈等人提出了一种基于硬件的H.264到高效视频编码转码器;采用并行波前处理(WPP)和SIMD硬件内在函数来实现该转码器。此外,所提出的转码器重用了H.264/AVC解码器中的信息,即残差和运动矢量(MVs)。该转码器比参考方案快5到70倍。
佩肖托等人提出重用运动矢量以及一种相似性度量来决定应测试哪些高效视频编码编码单元分区。一年后,相同作者提出了两种基于机器学习模型将H.264/AVC宏块映射到高效视频编码编码单元的替代方案。在2014年,发表了两项扩展,其中利用序列的前k帧来计算参数,以便转码器能够学习该特定序列的映射。随后,提出了两种不同类型的模式映射算法。
本文提出了在高效视频编码到VP9视频转码框架下不同且原创的算法。为此,重用了高效视频编码的相关信息,例如预测模式和所使用的参考帧。下一节将介绍所有方案。
IV. 所提出的转码器
本节介绍了所提出的从高效视频编码到VP9的转码器。这些方案的基础在于减少VP9在进行图像分割后对每个可能块所必须检查的模式(帧内、帧间或复合)数量。第一个方案排除了对帧内或帧间模式的检查,第二个方案排除了对部分参考帧的检查,而最后一个方案则是前两种方法的组合。
A. 首个方案
第一种方法是通过考虑高效视频编码(HEVC)中该块所使用的模式,来决定每个分区/块的预测类型(帧内或帧间)。也就是说,如果某个给定的块
以高效视频编码(HEVC)编码的帧内块,在VP9中将仅检查该块的帧内模式。需要注意的是,当HEVC块为帧内块时,加速效果会更显著,因为此时不会检查帧间预测模式,而帧间预测比帧内预测更复杂。该首个方案针对给定块的算法如图3所示。
检查不同分区和子分区的过程可以被视为一个自底向上过程。对于每个编码单元分区,最多可能出现四个子分区,且每个子分区可以采用不同的编码方式。此外,从64x64大小的编码单元到4x4大小的编码单元,可能存在大量分区和子分区。另外,可能在高效视频编码中较小的分区并未以特定尺寸进行过编码,因此在VP9中检查这些分区时必须采用相应的解决方案。解决此问题的思路是执行一次自底向上更新。
简而言之,较小的分区(称为子块)可以使用帧间或帧内预测进行编码,如果一个子块被编码为帧内,无论其兄弟块如何编码,父块都将被编码为帧内;因此,只有当四个子块都被编码为帧间时,父块才会被检查为帧间。因此,该算法从底部开始向上进行,从4x4到64x64依次编码子分区。一旦确定为帧内或帧间,就会评估所有帧间模式(包括水平、垂直和非对称)或帧内模式(预测方向)。
图4展示了此更新过程的一个示例。
B. 第二个方案
在第一个方案中,当一个块被编码为帧间时,加速效果并不明显。因此,第二个方案试图在高效视频编码中将块选择为帧间时,减少帧间预测检查点数量。该第二个方案旨在通过考虑高效视频编码在编码每个块时所使用的参考帧,来减少帧间预测过程。
目标是VP9仅应在HEVC用作参考的帧中进行搜索,只要该帧在VP9编码器中可用即可(这包括最后帧和黄金帧,也包括ALTREF帧,因为它是包含来自不同帧的块所构建的帧)。需要注意的是,VP9中可用的参考帧可能与HEVC中可用的参考帧不同。因此,如果某帧位于帧间预测的可用参考帧池中,VP9将检查涉及该参考帧的帧内预测模式和帧间预测模式。该方案节省了在其他参考帧上所需的所有帧间预测计算。图5展示了此第二个方案针对给定块的算法。注意,在算法中指定对一个块在某一参考帧(例如最后帧)中检查帧间模式时,意味着仅使用该帧作为参考;而当指定对一个块在两个参考帧(例如LAST+ALTREF帧)中检查帧间模式时,表示使用两个参考缓冲区来编码该块,这在使用两个参考帧编码一个块的意义上类似于HEVC中的双向预测。
与之前的方案一样,由于两种视频编解码器在分割和模式检查上的差异,需要采用自底向上更新机制。因此,父块将使用其子块中最常出现的参考帧。图4中右下角的32x32编码树单元展示了此更新的一个示例,其中一些块使用帧#5作为参考帧(RF:5),另一些使用帧#6(RF:6);如果最常出现的参考帧位于可用帧池中,则不会检查其他参考帧。
C. 第三个方案
该最终方案是上述两个方案的组合。如果高效视频编码对某个块使用了帧内预测,则VP9仅检查该块的十个帧内方向;如果高效视频编码对某个块使用了帧间预测,并且参考帧位于可用参考帧池中,则VP9仅检查相应的帧间预测模式。
涉及该参考帧。如果高效视频编码对某个块使用了帧间预测,但该参考帧不在可用帧池中,则VP9会检查所有可能的帧间组合。该第三个方案针对给定块的算法如图6所示。
V. 性能评估
在本节中,对所提出的高效视频编码到VP9视频转码器进行了评估。为此,将这些方案集成到一个高效视频编码参考解码器(HM)和一个VP9参考编码器中。解码过程使用的高效视频编码参考软件是HM 13版本0,而编码过程使用的VP9参考软件是“libvpx-v1.3.0”。
实验在2吉赫兹的中央处理器核心上运行,配备8吉字节主内存,尽可能遵循JCT-VC推荐的通用测试条件和软件参考配置。具体而言,针对每个视频序列,使用四个点构建率失真曲线,并基于这些执行点进行比较。需要注意的是,VP9编码过程中使用的量化参数与JCT-VC推荐的不同,因为VP9中的量化参数值与高效视频编码中的不同。实验采用了具有不同特性的测试序列,特别是以下序列:PeopleOnStreet, ParkScene, BasketballDrill, BQMall, PartyScene, RaceHorses, BasketballPass, KristenAndSara and ChinaSpeed。
该转码器包含两个阶段:第一部分是HEVC解码,第二部分是使用VP9编码器对HEVC解码过程的输出进行编码(双通道,最佳配置文件且禁用关键帧)。
A. 指标
为了评估本文提出的方案,采用了以下指标:
1)
率失真函数
:
率失真函数定义为在给定比特率下视频序列的失真,即原始视频序列与编码视频序列之间的差异。平均全局峰值信噪比基于公式(1),其中亮度峰值信噪比(PSNRY)乘以4,因为输入文件格式为4:2:0,而色度峰值信噪比(PSNRU和PSNRV)不乘。
$$
PSNR = (4 \times PSNR_Y + PSNR_U + PSNR_V)/6 \tag{1}
$$
2)
比特率节省 (%)
:
该指标表示在相同编码条件下对两个视频序列进行编码时,给定质量下的比特率节省百分比。每种提出的方案均在不作任何修改的情况下与参考的VP9编码器进行对比测试。负值表示该方案增加了编码视频序列所需的比特数。
3)
峰值信噪比增益(分贝)
:
该指标显示了在相同编码条件下对两个视频序列进行编码时,给定比特率下的峰值信噪比增益(单位为分贝)。每种方案均在不作任何修改的情况下与参考VP9编码器进行对比测试。负值表示该方案降低了编码视频序列的质量。
4)
时间节省 (%)
:
这是为了评估所提出算法的时间节省效果。时间节省(TS)基于(2)。
$$
TS (\%) = ((T_{REF} - T_{PRO}) / T_{REF}) \times 100 \tag{2}
$$
其中$T_{REF}$表示参考软件所用的编码时间,$T_{PRO}$表示使用本文提出的算法时VP9编码器所用的时间。
B. 实验结果
为了评估这三种方案中的每一种,下表展示了每种方案与未更改的VP9编码过程的对比。表I显示了第一种方案的性能评估结果。正如预期的那样,该方案在比特率和峰值信噪比结果方面均表现得比未更改的编码过程更差,因为在不同编解码器选择的编码模式,部分编码模式被舍弃而未进行检查。
平均而言,该初步方案使编码视频序列所需的比特率增加了4.99%,质量降低了0.191分贝。然而,它实现了约23.6%的时间节省。这种时间节省是通过舍弃部分需要检查的模式实现的,但由于VP9和高效视频编码编解码器中可用的分割方式和帧间预测模式不同,可能会采用不同的预测模式。KristenAndSara视频序列是一种特殊情况,其运动几乎为零(为两人视频会议),在此情况下,该方案引入的惩罚远大于其他情况。该视频对所使用的模式非常敏感,微小的变化都会导致较大的惩罚。
视频序列 | 比特率节省 (%) | PSNR增益 (dB) | 时间节省 (%) |
---|---|---|---|
PeopleOnStreet | -4.47 | -0.164 | 26.16 |
ParkScene | -4.57 | -0.135 | 18.60 |
BasketballDrill | -3.72 | -0.135 | 24.09 |
BQMall | -2.86 | -0.110 | 20.70 |
PartyScene | -1.82 | -0.071 | 19.63 |
RaceHorses | -3.37 | -0.121 | 27.97 |
BasketballPass | -6.96 | -0.259 | 28.68 |
KristenAndSara | -13.46 | -0.545 | 18.42 |
ChinaSpeed | -3.70 | -0.176 | 28.82 |
平均 | -4.99 | -0.191 | 23.67 |
表II显示了第二个方案的性能评估。该第二个方案旨在通过检查高效视频编码中给定分区所使用的参考帧是否位于VP9编码器的可用帧池中,来减少帧间预测过程。请记住,这两种编解码器的图像参考结构完全不同。由于仅改变了VP9编码器评估的帧间预测参考帧数量,该方案在所有相关指标上均提供了更好的性能。
平均而言,该第二个方案使编码视频序列所需的比特率增加了1.49%,质量降低了0.057分贝。此外,实现了超过37%的时间节省。
视频序列 | 比特率节省 (%) | PSNR增益 (dB) | 时间节省 (%) |
---|---|---|---|
PeopleOnStreet | -1.31 | -0.051 | 37.70 |
ParkScene | -0.87 | -0.027 | 40.33 |
BasketballDrill | -2.58 | -0.093 | 36.58 |
BQMall | -1.12 | -0.043 | 38.85 |
PartyScene | -1.39 | -0.053 | 31.99 |
RaceHorses | -2.10 | -0.076 | 36.46 |
BasketballPass | -1.00 | -0.037 | 35.73 |
KristenAndSara | -1.46 | -0.062 | 46.11 |
ChinaSpeed | -1.56 | -0.075 | 32.42 |
平均 | -1.49 | -0.057 | 37.35 |
表III显示了第三个方案的性能评估,该方案是另外两个方案的组合。
关于时间节省,表格显示这一节省几乎是累积的,接近59%(另外两个方案的时间节省分别为23%和37%)。对于其他相关指标,也观察到了类似的趋势。
视频序列 | 比特率节省 (%) | PSNR增益 (dB) | 时间节省 (%) |
---|---|---|---|
PeopleOnStreet | -5.88 | -0.217 | 62.37 |
ParkScene | -5.00 | -0.149 | 55.80 |
BasketballDrill | -6.52 | -0.232 | 57.45 |
BQMall | -3.62 | -0.140 | 55.88 |
PartyScene | -2.61 | -0.107 | 46.33 |
RaceHorses | -5.39 | -0.196 | 62.70 |
BasketballPass | -7.76 | -0.287 | 62.66 |
KristenAndSara | -14.57 | -0.587 | 62.75 |
ChinaSpeed | -4.82 | -0.227 | 58.56 |
平均 | -6.24 | -0.238 | 58.28 |
图7、图8和图9展示了评估中使用的一部分率失真曲线。在每张图表中,除了本文提出的每个方案的一条率失真曲线外,还展示了参考率失真曲线。KristenAndSara视频序列的率失真曲线被特意列出,以表明尽管存在比特率和峰值信噪比的损失,所有曲线仍接近参考率失真曲线,这是这些方案的一个显著优点。这些图表说明了所有方案的表现都非常接近参考方案,相对于参考方案仅有微不足道的损失。正如预期的那样,与另外两个方案相比,第二个方案相关的曲线更接近参考曲线。
为了完成评估,图10展示了参考级联转码器(顶部)和所提出的转码器(底部)在对BQMall序列的一帧进行编码时,使用第三个方案所做出的决策。图像中存在一些差异,但总体而言,可以观察到两个编码器做出了类似的决策。
总体而言,这些方案去除了计算,旨在提供尽可能接近参考的率失真曲线,以实现最大率失真性能。在检查所有可用模式时获得。尽管某些编码模式根据HEVC解压缩过程被排除在检查之外,但我们改进的高效视频编码到VP9视频转码器的率失真性能(图7、图8和图9)以及模式决策(图10)与参考转码过程报告的结果非常相似,在图中未发现显著差异。
VI. 结论
本文提出了一些加速高效视频编码到VP9转码过程的方案。所有方案均旨在从目标视频编码器中省略部分编码模式的检查。
第一个方案在仅评估帧间或帧内模式之间进行选择,而第二个方案在为块选择帧间预测模式时,会舍弃部分参考帧的检查。这两个方案均考虑了高效视频编码中给定块所使用的模式。此外,这两个方案被结合成第三个方案,该方案第一步在评估帧间或帧内模式之间进行选择,第二步如果选择了帧间模式,则可能舍弃部分参考帧不进行检查。
所提出的方案在报告可接受的率失真损失的同时,分别实现了23%、37%和59%的显著时间节省。