【论文#性能对比】Compression Performance Comparison of x264, x265, libvpx and aomenc for On-Demand Adaptive

《Compression Performance Comparison of x264, x265, libvpx and aomenc for On-Demand Adaptive Streaming Applications》
Author: Liwei Guo; Jan De Cock; Anne Aaron
Published in: 2018 Picture Coding Symposium (PCS)
Date of Conference: 24-27 June 2018
Date Added to IEEE Xplore: 06 September 2018
ISBN Information:
Electronic ISSN: 2472-7822
DOI: 10.1109/PCS.2018.8456302
Publisher: IEEE
Conference Location: San Francisco, CA, USA

摘要

视频压缩标准H.264/AVC于2003年发布,在过去的十年里一直主导着这个行业。在过去几年中,推出了许多下一代标准/格式,如VP9 (2012), H.265/HEVC(2013)和AV1(2018),都声称有重大改进
AVC / h。在本文中,我们提出了我们的性能评估这些压缩标准。我们的评估使用这些标准的开源编码器实现进行,x264(用于H.264/AVC), x265(用于H.265/HEVC), libvpx(用于VP9)和aomenc(用于AV1)。该过程旨在评估按需自适应流媒体应用程序可实现的压缩效率。报告了两种不同质量指标PSNR和VMAF的结果。我们的结果表明,x265、libvpx和aomenc都比x264实现了显著的压缩效率提高

1.前言

按需自适应流是一种基于服务器-客户端架构的服务,其中相同内容的多个流(分辨率和/或比特率不同)存储在服务器端。在客户端,播放器实时检测客户端的带宽,并相应地执行流切换。这种适应性在动态网络条件下提供了出色的观看体验,使其成为通过互联网提供优质内容的流行解决方案。Netflix、Youtube、Amazon Video和Hulu这四大自适应点播流媒体服务在高峰时段贡献了55%的下游互联网流量(2015年数据)[1]。随着现有服务提供商的扩展和新提供商的加入,自适应流媒体在整个互联网流量中的比例将继续增长。

有效的视频压缩对于在受限和宽度下提供更好的视觉质量至关重要。目前,自适应流媒体服务传输的内容大多采用H.264/AVC标准进行压缩[2]。H.264/AVC由ITU-T视频编码专家组(VCEG)和ISO/IEC JTC1运动图像专家组(MPEG)联合开发,与其前身相比具有优越的性能[3][4]。除了自适应流媒体,H.264/AVC也是许多其他应用/服务的主导标准。

H.264/AVC的最初版本于2003年发布,在2003-2009年间增加了一些扩展。虽然业界一直在努力开发H.264/AVC编码器的潜力,但标准本身施加的许多限制使得进一步改进非常困难。与此同时,学术界和工业界不断有关于压缩技术创新的报道。在这一进步的基础上,许多新的视频压缩标准已经发布,它们都声称比H.264/AVC的效率有了显著提高。

H.265/HEVC[5]是H.264/AVC的继承者,由同一组织VCEG和MPEG以JCT-VC (Joint Collaborative Team on Video Coding)的名义联合开发。为了提高不同应用的压缩效率,大量的创新工具被集成到H.265/HEVC中。为了更好地捕获具有更高分辨率的大规模特征,引入了扩展运动和变换块大小。与H.264/AVC相比,运动矢量预测和帧内预测的精度得到了进一步的改进。[7]中的一项研究表明
当比较H.265/HEVC参考编码器HM和H.264/AVC参考编码器JM时,比特率降低了大约50%。

VP9[6]是由Google开发的一种免版税的视频编码格式,YouTube已经使用它对大量视频进行编码。VP9引入了许多工具,包括可切换的插值滤波器。一项研究比较了VP9和H.264/AVC编码器,报告VP9的效率提高了大约30%[8]。

最新的视频标准化工作来自开放媒体联盟(AOM),称为AV1,于2018年3月完成。AV1继承了VP9的一些工具,并有一些来自AOM成员的额外技术贡献,包括谷歌、思科和Mozilla。尽管人们普遍认为AV1编码器的性能优于当代视频编码器,但在2016年,一项研究表明,当时AV1编码器的压缩效率比JM低10%[17]。在ICIP 2017[18]中,AV1开发人员报告了最新的AV1编码器比VP9编码器实现了25%的比特率降低。

虽然[18]报告的显著改进令人鼓舞,但不能保证在自适应流媒体应用中也能实现类似的好处。首先,所有这些编码器都是在一小部分短视频片段(5秒到10秒)上进行测试的,这可能不能代表Netflix和其他提供商提供的主要内容类型。其次,考虑到流媒体服务中某些标题的高度普及,为了节省传输带宽,通过执行非常复杂的离线编码来最大化压缩效率是值得的。由于[7]中的软件没有执行2-pass编码或提前查找以充分利用这种宽松的延迟要求,因此可以立即认识到还有额外的改进空间。第三,在测试[7][8]中,分别对不同分辨率下的性能进行了评估。对于自适应流,同时提供多种分辨率,每种分辨率服务于不同的比特率区域。我们更感兴趣的是评估所有分辨率下的整体流媒体体验。在之前比较编码器在实际生产系统中的性能的工作中,[9]部分考虑了这些要点,其中H.264/AVC, H.265/HEVC和VP9的开源编码器针对大量的电影和电视节目进行了测试

本文介绍了为自适应点播流媒体服务提供准确的视频编码效率评估所做的最新工作。为了实现我们的目标,所有的测试视频都是从Netflix的流媒体库中挑选出来的,具有很好的多样性。如前所述,编码时间不是一个问题——在实践中,它可以通过将视频分割成片段以在多个实例上分发编码来缓解——因此选择编码器设置以最大限度地提高压缩效率。与我们早期的工作[9]相比,性能跨多个分辨率进行比较,以更好地适应自适应流的播放模型。此外,[9]中的部分设置是根据我们的最新研究进行更新的

与我们之前的研究类似,评估是使用这些标准的开源编码器执行的。对于H.264/AVC,我们使用x264[10],它被广泛认为是同类中最好的,并已广泛用于不同的商业服务。对于H.265/HEVC,莫斯科国立大学视频组的一项研究发现x265[11]在2015年的HEVC编码器竞争中具有最高的整体效率-因此,我们使用x265来评估HEVC/H.265。Libvpx[12]是Google为VP9发布的开源编码器(和解码器)包。对于AV1,正在使用AOM的aomenc[13]参考编码器。

PS:
(1) 评估的对象是x264,x265,libvpx和aomenc这4个编码器

2.评估方法

本节介绍评估流程。第II-A节简要讨论了所使用的质量度量。第II-B节演示了在自适应流中使用的跨分辨率的总体速率-质量曲线的概念,第II-C节解释了如何生成跨分辨率的速率-质量曲线。最后,在第II-D节中,列出了不同编码器中使用的设置。

2.1 比特率和质量指标

比特率和质量是评价压缩性能的两个关键指标。比特率度量很简单,它是压缩视频的总比特数除以总持续时间,以bps(每秒比特数)表示。对于质量,我们使用了两个不同的指标,PSNR和VMAF(视频多方法评估融合)[14],并在第三节中给出了这两个指标的结果。

a) PSNR:这是视频信号最著名的客观质量指标。在这项工作中,我们计算每帧亮度分量的PSNR,并对视频序列中的所有帧取算术平均值。

b) VMAF: Netflix在观察到PSNR值与主观结果有明显偏差的情况下,开发了VMAF并发布了其开源实现[15]。该度量将许多客观质量特征融合到一个分数中,其中基于SVM回归的融合模型是通过一组主观测试结果使用机器学习导出的。根据我们的经验,VMAF分数比PSNR更能反映观众的主观感受。我们使用算术平均将连续帧VMAF分数暂时聚合为整个视频序列的单个质量指数。

PS:
(1) 使用比特率(bps)评估比特和速率
(2) 使用PSNR和VMAF评估质量

2.2 跨分辨率评估

如前所述,自适应流提供了一组以不同分辨率编码的流,因此,对于这种类型的应用程序,应该跨流/分辨率评估压缩性能。此外,虽然自适应流媒体播放器可能会由于带宽波动而切换到不同的分辨率流,但解码的视频总是以相同的分辨率呈现,通常由屏幕大小决定。因此,尽管以不同的分辨率编码,但在适当缩放后,所有流都应该以相同的目标分辨率进行评估。在这项工作中,我们选择目标分辨率作为VMAF模型中使用的默认分辨率,即1920 × 1080。

我们可以使用以下示例来更好地解释交叉分辨率评估的概念,其中首先对1920x1080源进行下采样,然后以3种不同的分辨率(768 × 432, 960 × 540和1280 × 720)进行编码。速率质量曲线叠加在图1中。很明显,在不同的比特率区域,从不同的编码分辨率获得最佳流。

在非常低的比特率端,最低分辨率768x432是性能最好的——这是意料之中的,因为每个编码块都有固定数量的编码开销。最小分辨率的视频作为最少的这种开销,并且可以花费更多的比特在编码残差。随着比特率的增加,每个像素都可以以更高的精度进行编码,从而提高质量分数。然而,下采样过程对可以通过更高质量的编码实现的质量改进量施加了上限。实际上,额外比特带来的增量收益正在减少。下一个可用的编码分辨率为960 × 540,下采样的信息损失更少,因此具有更高的质量边界。与768 × 432相比,它的质量以更高的速率提高,并且在某一点之后,它提供了更好的质量-比特率权衡。同样,当比特率足够高时,1280 × 720的率质曲线优于960 × 540。这三条单分辨率曲线的总体速率-质量曲线如图2所示。最优自适应流应该只提供最终总体曲线的流,该曲线由三条下划线的速率-质量曲线的包络组成,因此该曲线应用于不同视频编码器之间的评估。我们把这个最终的整体曲线称为“交叉分辨率曲线”。

在这里插入图片描述
PS:
(1) 交叉分辨率的码率-质量曲线表示了在不同的码率下,什么分辨率的视频能够取得最佳的视频质量;低码率下,低分辨率视频的质量最好,高码率下,高分辨率视频的质量最好

2.3 交叉分辨率-质量曲线的生成

在生成跨分辨率曲线之前,需要生成每个分辨率的速率质量曲线。在我们之前的工作[9]中,速率-质量点是通过速率控制来生成的,其中目标速率是根据内容的复杂性来决定的。因此,编码器的性能很大程度上取决于其速率控制算法的智能程度。在这项工作中,我们决定对x264和x265使用恒定速率因子(CRF),对libvpx和aomenc使用恒定量化参数(CQP)。通过这样做,我们希望减少速率控制机制对编码器实现性能的影响。

然而,对于由多个场景组成的长视频序列,为了最大限度地提高压缩效率,仍然需要使编码适应不同的场景。为此,我们使用动态优化器[16]对速率-质量曲线进行以下与编码器无关的优化。

  1. 执行场景变化检测,并在场景边界将视频序列划分为短段。如果段长度超过N秒,则进一步对其进行分区,以限制每个段的持续时间。在这项工作中,我们选择N=5秒,主要是由于aomenc的执行速度较慢。

  2. 让m×n作为编码分辨率。每个片段被下采样到m×n,并以CQP/CRF模式编码。由于每个场景都很短,并且同一场景中的帧具有相似的特征,因此我们不需要执行任何进一步的量化参数(QP)调制。每个场景被编码多次,具有不同的qp或速率因子(RFs)(图3)。

  3. 构建每个场景的分辨率-质量曲线;这就产生了每个场景的一系列速率-质量曲线。

  4. 对于每个分辨率,我们考虑约束优化问题,其中从每个场景中选择一个编码(对应于特定的QP/RF值),以便在特定的平均比特率约束下最大化整体质量;这导致了整个视频序列的单一速率质量点。通过扫描所有比特率,可以得到整个视频序列的每分辨率质量曲线。我们可以简单地证明最后的曲线是凹的。

  5. 所有分辨率都要重复步骤2到步骤4。在所有的分辨率都生成了它们的曲线之后,所有曲线上的点都被输入到凸包选择算法中。很容易证明凸船体上的点比船体上的点提供了更高的速率-质量权衡。凸包点的集合由此产生交叉分辨率-质量曲线,这是用于比较编码器的最终特征。

在这项工作中,使用了以下7种流媒体应用的典型分辨率:384 × 216、480 ×270、608×342、768×432、960×540、1280×720和1920×1080。对于每个分辨率,已经选择了9个QP/RF值。对于x264和x265,我们选择了16、20、24、28、32、36、40、44、48,并相信它可以很好地覆盖0-51的理论范围。对于libvpx和aomec,由于理论范围更大(0-63),因此使用稍大的步长来选择以下QP值:14、20、26、32、38、44、50、56、62。

PS:
(1) x264和x265使用CRF模式,libvpx和aomenc使用CQP模式
(2) 每5秒划分一个编码区间
(3) QP值和RF值的选择按照一一对应,即一个分辨率对应一个QP/RF值

2.4 编码器设定

测试编码器的设置列在表1和表2中。关于这些设置的详细解释可以在[19][20][21]中找到。我们的目标是实现最高的压缩效率,所以我们选择了最高的复杂度模式,同时也禁用了x264、x265和libvpx的多线程和贴图。本次测试中使用的aomenc版本(commit: d952bfced57897b2ac8ad769b149eadbf586dc6e)于2018年2月发布,在速度优化方面花费的精力很少。为了在合理的时间内完成我们的编码实验,我们选择cpu的“1”而不是“0”来进行标记。我们还必须在除最低分辨率外的所有分辨率下启用线程和磁贴。一些已知会降低PSNR值的设置,如psyr -rd(适用于x264和x265)和aq-mode(适用于所有4个编码器)被禁用。由于编码是为5秒或更短的片段执行的,因此只有第一帧被编码为瞬时解码刷新(IDR)帧

对于libvpx和aomenc,使用2-pass CQP编码模式,因为这是视频点播应用程序的推荐模式。第一关是一个轻量级的分析过程,主要目标是从所有帧收集信息。这些信息主要用于优化可查看参考帧(alt-ref)的位置及其对应的QP值选择。使用选项rc-lookahead, x264和x265对未来帧执行类似的预分析,以指导当前帧的编码。我们将rc-lookahead设置为一个大的数字,所以这个预分析涵盖了一个片段中的所有帧。
在这里插入图片描述

3.测试结果

总共有22个1920x1080标题被用作测试材料。这22部电影是从Netflix的流媒体库中选出的代表性内容,涵盖了动作、戏剧、动画等不同的类别。对于每个标题,从标题的中间选择20个场景的片段,以避免通常出现在开头和结尾的黑帧。这样一个20个场景的片段的典型持续时间是50到100秒。

根据第II-C节中描述的程序,每个剪辑被下采样为7个分辨率,划分为段,并使用9个不同的QP/RF值进行编码。然后,为每个编码器生成相应的单分辨率和交叉分辨率速率-质量曲线。由于动态优化器在优化过程中使用了不同的质量指标(PSNR或VMAF),因此PSNR和VMAF的比较曲线是分开生成的。Bjontegaard-Delta (BD)-rate[22]是计算来自两个不同编码器的曲线之间的差异,其中负BD-rate表示比特率节省

表IV (PSNR)和表V (VMAF)给出了交叉分辨率的比较,显示了这些编码器相对于彼此的BD-rate节省。在VMAF范围内的曲线上计算BD-rate节省[30,95]。数据显示,当使用PSNR测量时,aomenc具有显着的优势,与x264, x265和libvpx相比,分别实现了44.82%,15.21%和18.71%的比特率节省。X265和libvpx都比x264节省了30%以上。当使用VMAF时,aomenc相对于其他编码器的优势减少了,尽管它仍然比x265(第二好的编码器)高出10%以上

我们还计算了各个分辨率的BD-rate,并在编码分辨率下计算了PSNR/VMAF。我们相信这对于预测无分辨率切换的应用程序(如线性电视)的可实现增益是有用的。结果显示了在x264上的bd速率变化(表VI和表VII)。对于PSNR和VMAF, aomenc都具有最高的增益。读者可能会注意到,每个分辨率的总体节省似乎比跨分辨率评估中的节省要大。有三个原因可以解释这一现象。首先,在交叉分辨率情况下,将解码后的视频缩放到目标分辨率后计算质量度量。其次,对于任何编码的分辨率,只有部分速率-质量曲线出现在交叉分辨率曲线中(图1 vs图2),并且只有这些点被用于交叉分辨率评估。第三,在交叉分辨率比较中,一种分辨率的某些率质量点可以与另一种分辨率的点进行比较,因为它们具有相同的质量。这在交叉分辨率比较中也是一个独特的情况。我们认为第二个原因是主要因素,实际上可以提供视频编码的另一个重要见解:它突出了为每个编码分辨率选择(感知上)相关的qp的重要性。同样重要的是要强调,每个编码分辨率的相关QP区域都依赖于内容。在优化视频通信系统时,需要充分认识这一概念,并仔细选择操作点

在这里插入图片描述
PS:
综合所有分辨率,相对比于x264
(1) 在PSNR方面,x265提升了约35%,libvpx提升了约32%,aomenc提升了约44.8%
(2) 在VMAF方面,x265提升了约34%,libvpx提升了约32%,aomenc提升了约42%

在这里插入图片描述
PS:
针对于单个分辨率,相对比于x264
(1) 在PSNR方面,x265在更高分辨率上提升的效果更好,至多约为54%,libvpx至多为44%,而aomenc约为55%
(2) 在VMAF方面类似,x265为53.74%,libvpx约为44%,aomenc约为55%

就复杂性而言,所有编码过程都自动分配给具有不同类型CPU、内存等的Amazon Web Services (AWS)实例,因此从运行时间来估计复杂性是不可靠的。我们对相对复杂性的最佳估计是,与x264相比,x265慢2 -4倍,libvpx慢3 -5倍。很明显,aomenc没有针对速度进行优化,它的运行速度比其他编码器慢得多,大约比x264慢500倍。

4.结论

在这项工作中,我们评估了x264, x265, libvpx和aomenc的压缩效率,这是最先进的视频编码标准,H.264/AVC, H.265/HEVC, VP9和AV1的开源编码器。目标应用程序是点播自适应视频流,因此我们选择高压缩离线编码器设置,并评估可能交付给观众的所有流/分辨率的性能。我们还给出了传统的PSNR和新的视频质量VMAF度量的结果,该度量被认为与主观质量有更好的相关性。在我们的测试中,与x264相比,x265、libvpx和aomenc都表现出了卓越的性能,VMAF的bd速率节省了32.03%到41.56%,PSNR的bd速率节省了32.13%到44.82%。其中,aomenc的压缩性能最好。Libvpx在VMAF和PSNR方面都略微落后于x265。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值