VMAF:未毕之旅

VMAF是一种将人类视觉模型与机器学习相结合的视频质量评价指标。本文来自Netflix高级软件工程师 李智在LiveVideoStackCon 2019北京大会的演讲,详细介绍了Netflix针对VMAF在性能提升,算法改进等方面的探索与实践。

 文 / 李智

整理 / LiveVideoStack

大家好,我是来自Netflix视频算法组的李智,本次将主要为大家分享我们针对VMAF的探索历程,包括VMAP的简史、基本原理和我们近期的一些工作。

1. VMAF 简介

1.1 我们是谁?VMAF是谁?

想必大家不会对我所在的Netflix感到陌生,Netflix目前在全球超过190个国家和地区运营流媒体服务,有超过1.5亿的付费用户。

Netflix的整体规模能始终保持高速增长,其中一个很大的原因是我们给用户提供足够高质量的内容并使用最优的编码和流媒体技术为世界各地的用户带来最佳的观看体验,无论地区、设备、网络情况差异。

几年前我们开始朝着这一目标努力时,一系列问题浮现在我们脑海之中:Netflix用户会如何评价一段视频的质量:极差、一般或者非常好?

对于这样一段视频,是编码器A还是编码器B的质量表现更好?当码率被限制在1000Kbps的条件下,这一个剧集是应该采用标清还是高清的分辨率来进行编码?我们发现传统的主观评议不能全面回答以上问题,因为我们有成千上万的电影电视剧集,每个剧集所采取的码率与编解码器都是不同的。传统的主观评议无法实现大规模部署,而客观评议标准虽然能实现大规模部署但无法达到我们对于准确度的要求。

最后我们发现,我们需要的是一个准确的视频质量评估工具,它能够预测人对视频质量的主观认知,同时很重要的一点是保证跨内容的一致性:例如用户在观看动画片或动作片时,用于预估用户观看的质量的评测标准应当保持一致;而为了确保此工具能够在云端进行大规模的部署,其复杂度不能过高;同样关键的是,此工具应当能够准确地预测在HTTP流媒体技术下的图像质量失真,包括压缩失真和缩放失真。

我们给出的解决方案是VMAF——视频多方法评估融合体系。

1.2 VMAF的编年史

VMAF项目最早开始于和南加州大学的合作,南加大的团队早先已经开始尝试基于图像的视频质量评估研究,在合作中我们共同探索针对Netflix平台上数以万计的动态影像内容的质量评估;大约在合作开始一年之后我们拥有了第一个可运行于Netflix运营环境的VMAF版本;接下来我们开始与更多的大学相关学者进行合作,其中包括法国南特大学、德州奥斯汀分校等高校的图像评估领域最顶级的专家。

2015年我们第一次对外公开VMAF并将其发表于ICP,2016年中旬我们在GitHub上实现了VMAF的开源并发表了第一个关于VMAF的科技博客文章;2017年初VMAF迎来了一次大版本更新并增加了针对手机等移动设备的视频播放模型;同年后期我们将FFmpeg集成至VMAF中,从此FFmpeg与VMAF得以协同工作处理视频进行质量评估。

2018年初我们实现了第一个基于VMAF的视频编码优化,同时我们开始将VMAF运用到Netflix的生产环境当中;2018年中旬我们对VMAF的运行速度进行了优化并增加了一个针对4K视频的模型;除此之外我们也为VMAF赋予了支持置信区间计算的能力,使其结果显示更为科学,同年我们发表了第二篇科技博客。今年早些时候我们对VMAF的运行速度再一次进行了更新并使其拥有40%左右的速度提升。

VMAF开源项目始于2016年中,在其开源包中我们写入了一段可以独立运行的C语言程序,其中包括一个Python库,用以让任何用户都可以根据自己的应用场景或者观看条件训练所需的模型,高度契合用户的使用条件。得益于上述一系列改进优化,我们在过去三年中一直保持用户的稳步增长。

VMAF也被集成到了不少第三方软件当中,包括FFmpeg、MSU Video Quality Measurement Tool、Elecard等。这里我要着重介绍的一个VMAF的典型应用场景之一是编解码器的性能比较。 

以下展示了在最近在瑞典举办的JVET会议上公布的研究——使用包括PSNR和MOS在内的三种不同的评测方法对比VVC和HEVC两个编解码器的性能并根据结果构建出能够反映比特率和图像质量之间关系的图线以计算出BD-rate——相同质量下的平均码率节省比例。

根据以上结果我们不难发现,对比VMAF和MOS也就是主观视觉质量,二者预测结果十分接近,而PSNR的评分结果偏低。也就是说如果我们使用PSNR作为评测工具那么最新一代的编解码器性能将会被低估,而如果使用主观视觉质量测试的话那么对应预测结果将偏高;但使用VMAF将妥善规避以上误差。

另一个比较典型的使用案例是将VMAF用于编码优化当中。Dynamic Optimizer是Netflix内部使用的一种编码优化构架。其主要思想是对一个指定平均码率的视频文件,通过Dynamic Optimizer找到使其能够达到平均最优化VMAF的编码路径。这一框架也考虑到了不同的限制条件,当使用Dynamic Optimizer得出最优化的编码途径之后,我们可以对比得出其质量的提升幅度并用下图右侧那样的曲线展示出来。

上图右侧图线展示出不同曲线,每条曲线代表编解码器为图像质量提升带来的影响。对同一个编解码器而言,使用不同路径优化同样也可以带来显著的图像质量提升。

1.3 VMAF基本架构

VMAF的基本架构需要从像素级的特征提取展开——首先我们会提取一些经过筛选的能够体现画面质量的空间域和时间域特征,这一过程精确到像素级别;随后我们进行帧级别的帧内空间域池化,如果你深入研究便不难发现上述两项过程其实是计算机对人类视觉系统神经元处理过程的模拟。

具体来说这种模拟基于对比度的掩蔽效应(ContrastMasking),这是人眼视觉系统中一个非常显著的效应。其原理是当图像出现损失,如压缩失真等被叠加到原视频上时,如果其频率与方向和源信号一致,则这些失真会变得更加难以被人眼察觉,相反则更容易被人眼察觉。例如上图右侧展示的那样,编码上图展示的画面,平静的湖面与树林之间存在非常明显的对比区分。我们添加同一段预设失真噪声至画面中的红圈与蓝圈所示位置并分别进行编码,如果把失真添加至红圈所示平静湖水区域,便会得到比较高的dB也就是失真较为明显,因为平静的湖面没有可以有效遮蔽或掩盖噪声的元素,人的肉眼对这些失真噪声更加敏感;但如果把这些失真叠加在蓝圈所示树林区域,dB值相对更低而失真难以被人眼察觉,因为蓝圈所示区域内的树林和山体都是良好的可以用来遮蔽掩盖失真噪声的元素。当然,除了基于对比度的掩蔽效应,我们还会把基于亮度的掩蔽效应(Luminance Masking)作为一项重要参考因素。

当提取了空间域和时域特征之后,我们需要做的是通过机器学习的方法,借训练成的模型将这些特征值和主观数据联系在一起,也就是进行数据融合,这一步我们使用SVM预测来实现。

我们需要做的第一步是收集主观分数,也就是通过主观实验的方法来收集用户对于特定画面的主观质量评分。上图展示的是我们与法国南特大学合作进行的主观视觉评分实验,在无论是环境整体亮度、屏幕亮度还是背景亮度都被严格控制的实验室条件下,观测者在精确固定的位置观看视频画面并对其打分,我们使用以上五个尺度(ACR——Absolute Category Rating)作为打分参照。

随后我们统计观看同一个视频画面的三四十位被测试者给出的分数并求其平均分得到MOS分数,接下来我们要做的就是将ACR尺度映射到VMAF尺度上。一般来说,“极差”的ACR尺度映射到VMAF大约是20分而“极好”的ACR尺度映射到VMAF为100分。紧接着我们用这些映射完毕的数据进行训练,最后得到的VMAF尺度模型所预测的分数会在0到100分之间。

上述过程中我们需要考虑到的一个重要因素是观看者到屏幕的距离和屏幕尺寸对于图像质量的影响。这里展示一个很直观的例子:使用不同的显示面积显示同一张视频的画面截图,我们可以发现大面积的显示容易放大更多压缩失真而较小显示区域则会让压缩失真不再那么明显。这里主要用以探索用户使用手机和电视观看视频时,屏幕尺寸和肉眼距离屏幕距离对用户观看体验的影响。

基于此,我们重新收集数据,训练了一个针对手机屏幕观看条件下的VMAF模型:上图展示了编码器编码一系列码率不同但内容相同的视频所得出的VMAF分数随码率(Mbps)变化的曲线图,两条曲线中绿色线代表使用针对手机屏幕的VMAF模型,而红色线则代表常规VMAF。观察上图我们不难发现,用户会给手机呈现的画面打出更高的视觉质量分数,但这一分数不能反映该视频画面的绝对画面质量;除此之外我们还可以发现,分辨率从720P提升到1080P,VMAF的提升幅度有限,这也说明在手机端,720P到1080P的分辨率提升为用户带来的主观视觉质量提升十分有限。

2. 近期的工作

围绕VMAF我们主要做了以下三方面工作:

2.1 HDR

毋庸置疑的是,现在越来越多的视频使用HDR技术拍摄,特别是那些Netflix的原创剧集,这些使用HDR技术拍摄的视频如果在支持HDR显示的设备上播放无疑会给观众带来无与伦比的视觉体验。而我们想要探索的是如何量化这种“体验”?举例说明——一段每秒120帧的HDR视频源其最高亮度可达3000cd/m^2。而现在市场上主流商用支持HDR的电视大概可以实现1000cd/m^2的亮度,此时摆在我们面前的问题便是:如果使用一台最高支持1000cd/m^2 HDR显示的电视播放最高亮度可达3000cd/m^2的HDR视频,具体能为用户带来多少视觉上的质量提升?

为解决以上命题,我们正在研发一套针对HDR的VMAF模型,旨在预测HDR视频相对于SDR在主观体验上的优势,并从更广义的角度将VMAF的适用范围扩展到HDR。当然,我们还面临诸多挑战,例如我们需要能捕捉到和主观质量最相关的一些物理特征——对于一个显示器来说,其实这些物理特征有不同的维度。引进所有维度并科学判断每一个维度与主观质量之间的关系无疑是一件颇具挑战的事情,而将这些维度叠加起来并结合机器学习无疑又是一项艰巨任务。因此我们需要确定那些与主观质量最相关的一系列物理特征,包括但不限于最大亮度、背光的分辨率、最小量度、比特深度和色域。为实现这样一个全新的针对HDR的VMAF模型,我们需要在这些和主观视觉质量最相关的物理特性中寻找哪些可以在针对HDR的VMAF模型中被捕捉到。

第二项挑战是需要全新的能够扩展到HDR域的人类视觉模型。在现有的基于SDR的VMAF模型当中,我们使用了一些人类视觉模型;但如果把它们直接运用到HDR中就会造成模型的不准确,那么我们需要做的就是找到一些更准确的人类视觉模型并提取新模型中的一些特征,再基于主观实验结果进行打分。

第三项挑战是需要能捕捉在亮度和压缩损失之间的复杂反应,也就是我之前提到的基于亮度的掩蔽效应。因为我们所考虑的压缩损失在SDR的显示条件下并不会很明显而在HDR条件下则会异常明显。我们需要捕捉到这样的效应,以便于使用全新模型对编解码器进行优化时该模型可以尽可能地发挥作用。

2.2 用户体验判断

第二个方面的工作是科学判断用户体验。用户的褒贬层出不穷,而我们需要关注的是问题的根源。我们对用户体验进行诊断,但影响用户体验的因素有很多,例如ABR算法好坏、编码的好坏、网络状况、CDN状态甚至视频创作问题等。

一旦用户体验出现异常,我们需要回溯并定位使用户体验大打折扣的影响因素,这项工作颇具挑战性。为此我们提出的解决方案是Hindsight.

中文翻译是“后见之明”,这是一种事后评估ABR算法的方法:当用户端出现体验异常,系统可以收集到用户网络带宽情况并将其记录,同时基于用户带宽情况和编码阶梯,我们会计算出实时状态下ABR算法可以达到的一个最佳选择;同时我们把该最佳选择和运营环境下的选择进行对比并得出二者之间差距,如果该差距很小那么我们几乎可以判断此时此刻ABR算法是正确的,随后我们可以继续寻找其他影响用户体验的因素例如网络或编码故障;如果二者差距过大那么我们便可以推断出此时的ABR算法还有继续优化提升的空间。借助Hindsight,我们可以迅速准确定位造成用户体验异常的因素并及时对症下药。

2.3 使用VMAF实现基于卷积网络的图像压缩

第三个我们正在努力的方面是使用VMAF实现基于卷积网络的图像压缩。基于卷积网络的图像压缩是最近一个比较热门的话题,业界比较流行的思路是上图展示的2017年提出的框架。如果你使用被沿用多年的JPEG格式压缩的图像那么其能够适用于这一框架:设一源信号x在进行变换编码后得出信号y,随后我们对信号y进行量化和熵编码,最后得到编码的流;紧接着我们再把整个过程.

逆向进行便可以得到一个重构信号

我们可以计算从X到

过程信号的损失值:

我们将卷积网络运用至该框架中,实际上就是使用一个非线性的卷积网络替代两个线性的变换编码。替代之后我们便通过反向传播的方式对其进行端对端优化,该反向传播优化过程需要考虑一个优化参数,一般大家会选取MSE或PSNR,也可能会选用更复杂的SSIM或MS-SSIM。沿用此思路似乎可以将VMAF运用在基于卷积网络的图像压缩当中,但实际上该思路的致命伤是VMAF不可求导。

反向传播所需要的关键是一个可导目标函数,如何解决该致命伤?我们和德州大学的研究者一起提出了这一思路:可通过训练一个可导的代理VMAF网络而非真实的VMAF网络来实现上述过程。需要强调的是真实的VMAF依然在被训练的网络当中用于制定分数,而训练这一网络的方法是通过迭代将代理的VMAF网络和压缩网络一起训练。

通过压缩网络的训练,我们可以找到真实压缩下出现失真的信号并将这些信号信号用于训练的VMAF网络中;同时,代理的VMAF网络也可为压缩网络提供指导使其朝着正确的优化途径发展。

上图展示了分别使用代理VMAF网络与MSE网络优化图像质量的基线实验结果,其中MSE被作为实验基线。观察曲线大家不难发现,使用代理VMAF网络的确可以得到我们想要的结果;同时我们对比其他一些传统意义上的图像编码器,包括HEVC、JPEG、JP2K等,观察上图右侧结果我们可以看到,在其中一些特定领域中VMAFp能够实现更好的效果。

在未来Netflix将与众多开源社区一起,致力于完善提高VMAF的性能,以及扩展其应用场景,VMAF未来可期!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券