基于镜头的编码

2021-09-01 10:26:49 浏览数 (3)

基于镜头的编码比基于主题的编码带来更高的编码效率,由于对内容感知的粒度更加细,这种改变的结果显而易见。然而,更细粒度的编码也会带来更高的负责度,比如在AWS环境中,在基础设施服务失效的情况下,如何最大限度的保留已编码的成果,从而减少重复编码工作。本文来自Netflix的科技博客,LiveVideoStack对原文进行了摘译。

文 / Megha Manohara,Anush Moorthy,Jan De Cock,Ioannis Katsavounidis, Anne Aaron

译 / 元宝

原文 : https://medium.com/netflix-techblog/optimized-shot-based-encodes-now-streaming-4b9464204830

当您正在从Netflix上收看的最喜爱的电视节目或电影时,糟糕的画质——如成块状,模糊,扭曲的脸部和物体 ,会让你不想再看下去。在很多情况下,低带宽网络或数据限流导致我们接受不了完美的图像。为了解决这个问题,Netflix视频算法团队一直在研究更高效的压缩算法,来让Netflix能够在使用更少带宽的同时提供相同或更好的图像质量。在Netflix与其他研究团队一起工作时,为了支持新的视频流和确保Netflix设备的无缝播放,我们更新了客户端应用程序和流媒体基础设施。

为了改善我们的会员的视频质量,我们在2015年开发并部署了“按主题”编码,在随后一年提供了更好的“用于移动端下载的编码”。我们的下一步是制作一个基于镜头的编码框架,称为动态优化器,从而在视频流中实现更细粒度的优化。在本文中,我们将介绍一些我们在实现将此框架应用在生产流程时克服的困难,还有介绍为我们的会员改善视频质量后的实际效果。

在生产环境中实现动态优化器

动态优化器分析整个视频是通过多个质量和分辨率点来获得编码的最佳压缩轨迹,并给出优化目标。特别地,我们利用Netflix的主观视频质量度量VMAF作为我们的优化目标,因为我们的目标是以最佳感知质量生成流的。

我们在生产中实现动态优化器框架时遇到的主要挑战是对我们的“并行编码管道”进行了改进,以处理更多的编码单元。首先,动态优化器的分析步骤需要以不同的分辨率和质量(QP)进行编码,这需要更多的复杂度。其次,我们从大约几分钟长的编码视频块转换到基于每个镜头的视频编码。例如,在原始系统中,一个1小时的《怪物奇语》片段会产生20个3分钟的块。使用基于镜头的编码,平均镜头长度为4秒,同一片段要求处理900个镜头。假设每个块对应一个镜头(图1B),新框架将每块编码的标题数量增加了两个数量级以上。这会增大与计算实例之间传递的消息数量有关的系统Oracle数据库。为了解决这些限制,我们进行了几项工程创新,我们在这里讨论了其中的两个:校对和检查点。

尽管我们可以改进核心消息传递系统来处理这种消息量的增加,但这并不是当时最可行和最方便的解决方案。我们通过引入校对来改编我们的管道。

图1:将镜头整理成“块”。(A) 视频时间线的表示。黑色虚线表示镜头边界。(B) 一个块中的一个镜头:每个镜头被分配一个块。(C)将镜头分类为块:在目标块持续时间内累积整数镜头数。

在“校对”中,我们将镜头整理在一起,以便一组连续的镜头组成一个块。现在,考虑到我们在这种排序方式上的灵活性,我们可以将整数个镜头组合在一起,以便在基于块的编码模型下产生与之前大致相同的3分钟持续时间的块(图1C )。这些块可以被配置为大致相同的大小,这有助于为以前调优的实例进行资源分配,这些实例可以在几分钟内进行编码。在每个块中,计算实例用它自己的一组定义参数独立编码每个镜头。

图2:检查点

通过在一个块中整理独立编码的镜头来改进系统,我们称之为检查点。以前,如果我们丢失了一个计算实例(因为我们已经借用了它但突然需要执行更高优先级的任务),我们重新编码了整个块。在拍摄的情况下,每个镜头都是独立编码的。一旦完成一个镜头,如果实例在对块的其余部分进行编码时丢失,则不需要重新编码。我们创建了一个检查点系统(图2),以确保每个编码镜头和相关元数据在结束后立即存储。现在,如果在另一个计算实例上重试相同的块,那么编码不会从头开始,而是从其中断的位置开始,从而节省计算量。

压缩性能

2016年12月,我们推出了用于移动端下载的AVCHi-Mobile和VP9-Mobile。对于这些移动端编码,一些变化使得压缩性能优于每个主题编码,包括更长的GOP,灵活的编码器设置和每个块的优化。这些数据流是传统速率控制设置的H.264 / AVC和VP9编码的高质量基准。

下图(图3)演示了动态优化与基于镜头编码的组合如何进一步提高压缩效率。我们绘制了我们新优化编码的比特率VMAF曲线,称为VP9-Opt和AVCHi-Opt,与

--用于下载的按块编码(VP9-Mobile和AVCHi-Mobile)

--按主题编码流(AVCMain)。

为了构建这个图表,我们从我们的目录中抽取了数千个标题的样本。对于每个比特率x(水平轴上)以及每个标题,我们选择比特率≤x 的最高质量编码(由VMAF的值表示)。然后,我们对给定x的所有标题求平均VMAF值,这为下图中的每条曲线提供了一个点。扫描所有比特率值x,得到5条曲线,对应于上面讨论的5种编码类型。假设网络条件稳定,这是您在Netflix服务中以特定视频带宽获得的平均VMAF质量。

图3:按主题,按块和新优化编码的压缩效率。

让我们通过在VMAF = 80(良好质量)下绘制水平线来说明等效质量下比特率的降低,这给出了以下比特率:

我们可以看到,与使用AVCMain进行的按主题编码相比,经过优化的编码需要不到一半的比特数来实现相同的质量。使用VP9-Opt,我们可以在AVCMain的三分之一比特数以下流传输相同的质量。与AVCHi-Mobile和VP9-Mobile相比,我们分别节省17%和30%。

我们还研究了在相同的带宽下视觉质量如何受到影响。例如,250 kbps的平均蜂窝连接带宽下的平均VMAF值如下表所示。可以看出优化后的编码比AVCMain提供了明显更好的视频质量。

为了说明视觉质量的差异,下面的例子显示了Chef's Table片段中的一个帧图像,分别从大约250kbps比特率的不同编码方式中获得。显而易见,图纹理的质量提高了(如砖,树,岩石,水等)。在AVCMain(图4A,VMAF = 58)和AVCHi-Opt(图4B,VMAF = 73)之间能观察到视觉上明显的差异。VP9-Opt帧(图4C,VMAF = 79)看起来最清晰。

图4 (A): AVCMain, 250 kbps, VMAF=58.

图4 (B): AVCHi-Opt, 254 kbps, VMAF=73.

图4 (C): VP9-Opt, 248 kbps, VMAF=79.

在下面的例子中,我们显示了一张“13 Reasons Why”的开场景,分别以大约250 kbps的码率的不同编码方式得到。对于AVCMain(图5A),顶部的文本几乎不清晰,值得VMAF值为60.对于AVCHi-Opt(图5B),我们看到质量大幅跳跃到74的VMAF值。对于VP9 -Opt(图5C),文字和边缘变得清楚,并且在质量上显着增加,这也反映在81的VMAF值中。

Figure 5: (A) AVCMain, 260 kbps, VMAF=60; (B) AVCHi-Opt, 257 kbps, VMAF=74; (C) VP9-Opt, 252 kbps, VMAF=81.

现场测试优化的编码

在前面的章节中,我们说明了优化后的编码比按主题编码有更高的压缩效率,从而可以在相同的比特率下提高质量,或在相同质量下降低比特率。但问题在于这是否会为我们会员提供的更好体验。

在实际中部署任何新的编码算法之前,我们在不同平台和设备上的使用“A/B testing”来全面地验证流的可播放性。“A/B testing”为我们提供了一种可控的方式来比较处理单元(我们的新编码)与控制单元(现有经验)的体验质量(QoE)。我们通过运行A / B测试,将我们优化的编码与现有的AVCMain流式体验在各种设备和标题上相比较。这也使我们能够对不同平台的编码算法和自适应流引擎进行微调。

我们评估了优化编码对不同QoE指标的影响。根据A/B testing的结果,我们期望对会员的观看体验进行以下改进:

--对于低带宽连接的会员,我们将以相同(甚至更低)的比特率提供更高质量的视频。

--对于具有高带宽连接的会员,我们将以较低的比特率提供相同的优质服务。

--当网络吞吐量急剧下降时,许多会员将遇到更少的缓冲和质量下降。

--支持VP9流的设备将以相同的比特率获得更高的视频质量。

此外,我们的许多会员的手机套餐都有数据量上限。使用新的优化编码,这些成员现在可以使用相同数量的数据以相同或更高的质量传输更长时间的Netflix视频。优化的编码也可用于我们的离线下载功能。对于可下载的视频,我们的会员可以在相同存储空间上获得更高质量视频。

重新编码和设备支持

在过去的几个月中,我们为整个Netflix的产品都生成了AVCHi-Opt编码,并开始在多个平台上进行流式传输。在iOS,Android,PS4和XBox One上观看Netflix时,您目前可以享受这些优化的视频流。VP9-Opt流可用于选择流行内容,并可在某些Android设备上进行流式传输。我们正在积极在其他设备和浏览器上测试这些新流。

无论您是使用最快速的宽带连接观看智能电视上的Chef's Table,还是使用蜂窝网络在移动设备上观看Jessica Jones,Netflix都致力于提供尽可能最佳的图像质量。新优化编码的推出是结合创新研究,有效的跨团队研究和数据驱动部署,为我们的会员带来更好体验的绝佳范例。

1 人点赞