Netflix推出CAMBI用于检测条带失真

178 阅读9分钟

作者 | Joel Sole、Mariana Afonso、Lukas Krasula、Zhi Li和Pulkit Tandon

译者 | 张文杰

技术审校 | 李智(本文作者之一)

CAMBI 影音探索 #007#

条带失真非常讨厌,但首先,你可能更想知道,什么是条带失真?

条带失真

当你正在家中观看全新电视上的节目,内容优质并且画质卓越,但是突然,你注意到在美丽的日落场景中出现了一些条带。那是什么?科幻情节?设备故障?不,更有可能是条带失真,一种本该是平滑变化的图像区域,却出现了虚假阶梯边缘的现象。

在天空、日落、黑暗场景,或平面背景等场景中,都可能出现条带。然而无论何种场景,我们都不喜欢它,任何人也不应该因为条带的出现而从故事情节中分心。

视频信号中的轻微变化都会造成条带失真,而某些像素值的这种轻微变化会不同程度地影响感知质量。特别是当遇到如下观看条件时,条带会更加地明显:在一个黑暗的,没有屏幕反射的环境下,近距离观看一个大尺寸、高质量、对比度好的电视。

以下是一些例子。由于我们不知道读者是在何时何地阅读这篇博文,因此我们夸大了条带失真的影响,以便你了解要点。第一个例子来自Netflix早期的一部原创剧集。注意观察天空,看到条带了吗? 观看环境(背景亮度、环境照明、屏幕亮度、对比度、观看距离)会影响条带的可见度。你可以尝试改变这些因素,去体会条带的感知是如何受到影响的。

图片

条带失真也可以在压缩图像中找到,正如下面这幅图像(我们经常用来说明这一点):

图片

就连“旅行者”号探测器也在途中遇到了条带效应。图片来自于xkcd :-)

图片

条带失真到底有多令人不悦?

我们创建了一个实验来测量条带失真存在时的感知质量。我们要求参与者对不同分辨率、码率和抖动的视频进行评分,从0分(无法观看)到100分(难以察觉)。参与者总共对86个视频进行了评分,大多数内容都容易出现条带效应,而有些则没有。所收集的平均主观意见分(MOS)覆盖了完整的分数范围。

图片

根据通常的指标,实验中可感知条带效应的视频应该是中等到高质量的(即PSNR>40dB, VMAF>80)。然而,实验分数显示了完全不同的结论,我们将在下面看到。

如果你不能发现它,你就无法修复它

Netflix对其视频一直进行着大规模的编码,并同时对完成的编码进行大规模的质量评估。这样的质量评估不可能依靠人来完成。这就是客观视频质量指标的用武之地,它们可以自动分析出可操作性的编码实际质量。

数十年来,PSNR(Peak Signal to Noise Ratio,峰值信噪比)一直是视频质量评估的一种主要方式:它是基于编码视频与源视频的平均像素距离来计算指标。在条带效应下,这个距离相对于它的感知影响来说是很小的。因此,PSNR数值中能体现条带效应的信息很少。主观实验的数据证实了PSNR和MOS之间缺乏相关性:

图片

另一个视频质量指标是VMAF,由Netflix与几个合作者共同开发,并在Github上开源。VMAF已经成为评估编码系统性能和驱动编码优化的一种“既成”标准,是Netflix编码质量的关键因素。然而,VMAF在初期主要是针对压缩失真以及缩放失真而设计的,它并未单独考虑条带失真的情况。VMAF在一般情况下工作得非常好,但是和PSNR一样,在存在条带效应时,它与MOS缺乏相关性:

图片

VMAF、PSNR和其他常见的视频质量指标不能正确地检测条带失真。如果我们不能发现问题,我们就不能采取措施修复它。理想情况下,我们希望实现的条带失真检测器包括以下特征:

  • 条带失真引起的内容失真与MOS高度相关

  • 简单、直观、有针对性,并基于人类视觉系统的准则

  • 对于我们的服务中不同分辨率、质量和比特深度的视频具有一致的性能

  • 对于视频编码中常见的抖动处理具有鲁棒性

我们在已知工作中没有找到任何符合我们目标的算法,所以我们着手开发一个。

CAMBI

我们用传统的、非神经网络(NNN,non-neural network)的方法设计了一种算法来满足我们的要求。这是一种源自第一性原理的白盒解决方案,其中只使用了几个基于视觉原理的参数,我们称之为:基于对比度感知以及多空间尺度的条带指数(CAMBI,Contrast-Aware Multiscale Banding Index)。

CAMBI算法所涉及的步骤框图如下所示。作为一个无参考条带检测器,CAMBI将一个(失真的)视频作为输入,并生成一个条带可见度分数作为输出。该算法对编码视频的帧提取多个空间尺度的像素级映射图,随后,它将这些映射图合成为一个由人眼对比敏感度函数(CSF,Contrast Sensitivity Function )驱动的单一指标。

图片

预处理

每个输入帧都要经过三个预处理步骤。

第一步提取亮度分量:虽然色度通道也存在条带,但与过去大多数工作一样,我们假设大部分条带可以在亮度通道中获取。第二步是将亮度通道转换为 10比特(假设输入是 8比特)。

第三,我们考虑了视频编码里常出现的抖动处理。抖动是一种有意使用的噪声,用于使压缩产生的量化误差随机化,其被证明会降低条带的可见性。为了考虑抖动和非抖动内容,我们使用 2×2 滤波器来平滑强度值,近似于人类视觉系统中所做的低通滤波。

多空间尺度条带置信度

我们认为条带检测是一个对比度检测问题,因此条带可见度主要由CSF控制。CSF本身在很大程度上取决于条带的对比度以及空间频率。CAMBI 通过查看像素强度的差异明确地检测出像素之间的对比度,并在多个空间尺度上进行此操作以将空间频率考虑其中。我们会计算不同对比度和不同空间尺度下的像素级条带置信度,每一个计算结果可作为当前帧的一张CAMBI映射图。条带置信度计算还考虑了取决于局部亮度的亮度变化敏感性。在此过程的最后,每帧可得到20张获取了条带信息的CAMBI映射图,包含4个对比度和5个空间尺度。

时空域池化

将CAMBI映射图进行时空域池化,即可得到最终的条带指数。通过我们的观察,条带失真属于CSF的低频率线性阶段(即韦伯定律适用的阶段),基于此我们进行空域池化。首先,通过保持每个位置的最大加权对比度,我们在对比度维度上进行池化,结果为五张映射图,每个尺度上一张。在本文的下方有一个此类映射图的示例。

由于质量最差的区域主导了视频的感知质量,在对每个尺度的映射图进行空域池化时,我们只考虑了条带效应最大的一部分像素。每个尺度的结果得分与基于CSF的权重线性组合,从而得到每一帧的CAMBI。

根据我们的实验,CAMBI在单个视频镜头中是时域稳定的,因此简单的平均值足以作为跨帧的时域池化机制。但是需要注意的是,对于具有不同特征的多个镜头的视频,这种假设会失效。

CAMBI与主观评价的一致性

我们的结果表明,CAMBI与MOS具有高度相关性,而如上文所述,VMAF和PSNR与MOS的相关性非常低(译者注:此处特指条带效应的检测)。下表显示了两个相关系数,斯皮尔曼等级相关系数(SROCC)和皮尔逊相关系数(PLCC):

图片

下图显示了CAMBI与主观分数具有较高的相关性。在CAMBI值5左右,观众会开始对画面里的条带失真感到不悦。请注意,与现有其他质量指标不同,CAMBI与MOS是反相关的关系:CAMBI分数越高,条带越明显,因此质量越低。

图片

案例:日落场景

我们使用日落作为一个例子,来展现条带效应以及CAMBI是如何对它评分的。下面我们也使用了多种虚假颜色来展示同一日落场景以使条带失真更加明显。

图片

图片

图像中的海洋部分没有条带失真。在天空中,条带的宽度随着与太阳距离的增加而增加。下面的五张映射图,每个尺度一张,获取了不同空间频率的条带置信度。考虑到CSF,对这些映射图进行进一步的空域池化,得出该帧的CAMBI评分为19。根据MOS数据,这在感知上介于“令人不悦”和“非常恼人”之间。

图片

开源和下一步

对多种编码参数鲁棒的条带检测机制可以帮助识别视频中条带失真的出现,并作为缓解条带效应的第一步。在未来,我们希望利用CAMBI开发一个新版本的VMAF,以提升VMAF的条带失真鲁棒性。

我们将CAMBI作为libvmaf中一个新的独立特征进行开源。与VMAF类似,CAMBI是一个有机项目,将随着时间的推移逐步完善。我们欢迎任何反馈和贡献。


致谢

我们要感谢 Christos Bampis、Kyle Swanson、Andrey Norkin 和 Anush Moorthy,感谢他们富有成果的讨论,感谢所有参与主观测试的人使这项工作成为可能。

原文链接:

netflixtechblog.medium.com/cambi-a-ban…


扫描图中二维码了解大会更多信息

图片