本文根据 Pranav Sodhani 在 WWDC 2021《Evaluate videos with the Advanced Video Quality Tool 》主题分享翻译。Pranav Sodhani,来自 Apple 显示和色彩技术团队,在算法开发、机器学习、色彩科学和视频技术方面具备专业的知识。 译者陶金亮,网易云信资深音视频开发工程师,拥有多年端侧音视频工作经验。
本文主要分享高级视频质量工具 (AVQT) 是如何帮助我们准确评估压缩视频文件的感知质量。利用 AVFoundation 框架,AVQT 支持 SDR 和 HDR 域中的各种视频格式、编解码器、分辨率和帧速率,从而实现简单高效的工作流程——例如,无需解码为原始像素格式等。AVQT 使用 Metal ,将繁重的像素级计算下沉到 GPU 来实现高处理速度,通常用于分析超过实时视频帧速率的视频。凭借优秀的易用性和计算效率,AVQT 可以实现从视频目录中删除低质量视频,以免它们以其他方式影响应用程序中的用户。
使用背景
在本次演讲中,我们将介绍一种视频质量工具——AVQT(Advanced Video Quality Tool) ,并展示如何使用它来评估应用或内容创建工作流程中压缩视频的感知质量。让我们从典型的视频交付工作流程开始。
在这样的工作流程中,高质量的源视频经过视频压缩和可选的视频缩减以生成具有较低比特率的视频。然后可以通过带宽受限的网络轻松传送这些低比特率视频。
使用此类工作流的几种方法包括 AVFoundation API(例如 AVAssetWriter)、应用程序(例如 Compressor),它也可以是您自己的视频压缩工作流之一。
常见的缩小和压缩原始视频会导致视频模糊。这会导致源视频主观质量下降,并产生可见的不清晰。这种不清晰的一个例子是压缩视频中的块状效应,如右侧的帧所示。
另一个例子是当视频看起来模糊并且视频细节开始消失时,这种伪影会对消费者的视频质量体验产生不利影响。我们都知道,消费者期待高质量的视频体验。因此,实现这一功能非常重要。
现在,执行此操作的第一步是评估所交付内容的质量。最准确的方法是让真人观看视频并根据视频质量等级对其进行评分。但如果我们想评估大量视频,这非常耗时且不可扩展。这里我们可以选择另一种表征视频质量的客观方法,以便我们可以自动化该过程以提高速度和可扩展性。
在这样的设置中,感知视频质量工具将压缩视频和源视频作为输入并输出视频质量分数,该分数可以是 1 到 5 范围内的浮点数,并模拟真实的人对压缩视频的评分。
AVQT 是什么?
今天,我们很高兴可以为开发人员提供这样一个感知视频质量工具——高级视频质量工具 Advanced Video Quality Tool,简称 AVQT,下面让我们了解更多关于 AVQT 的信息。
那么 AVQT 究竟是什么?AVQT 是为 macOS 命令行提供的可执行文件,它试图模仿真实的人们是如何评价压缩视频的质量的。我们可以使用 AVQT 来计算帧级别和段级别分数,其中段通常有几秒钟长。当然,我们还在 AVQT 中添加了对所有基于 AVFoundation 视频格式的支持,包括 SDR 以及 HDR 等视频格式,如 HDR10、HLG 和杜比视界。
AVQT 的三大特性
接下来,我们要讨论 AVQT 的三个关键属性,这些属性使其在跨应用程序中非常有用。首先,我们将看到主观感知一致性,然后我们将讨论 AVQT 的计算速度迅速,最后将展示为什么在预测视频质量时设置观看参数很重要。让我们详细了解其中的每一个。
主观感知一致性
AVQT 与人类对视频质量的看法密切相关,它适用于各种内容的类型,例如动画、自然场景或体育等。我们发现,传统的视频质量指标,如 PSNR 和结构相似性(简称 SSIM),通常在不同的内容类型中不能都统一客观地评价。
让我们看一个例子。
这是来自高质量体育剪辑的帧,是我们的第一个源视频。让我们看看压缩视频中的同一帧,可以看到该帧确实具有足够高的感知质量,它的 PSNR 得分约为 35,AVQT 得分为 4.4。
接下来,我们对第二个源视频进行相同的测试。这种情况下的压缩视频似乎有可见的伪影,特别是,我们可以在人脸看到一些伪影。但是,有趣的是,它获得了大约 35 与上个视频相同 PSNR 分数,但这次 AVQT 将其评为 2.5 左右,这意味着质量很差。我们认为这里的 AVQT 分数是正确的预测。但这只是我们选择的一个示例,说明跨内容评估中可能出现的问题。
我们想在不同的视频集上测试 AVQT 的感知准确性。因此,我们在公开可用的视频质量数据集上对其进行了评估。这些数据集包括源视频、压缩视频和人类受试者提供的视频质量分数。
在这里,我们看一下两个数据集的结果:Waterloo IVC 4K 和 VQEG HD3:
- Waterloo IVC 数据集:包括 20 个源视频和 480 个压缩视频,涵盖编码和缩放工件,它涵盖四种不同的视频分辨率和两种不同的视频标准。
- VQEG HD3 数据集:相对较小,它有 9 个源视频和 72 个压缩视频,这些是使用 1080p 视频分辨率的视频编码生成的。
为了客观地衡量视频质量指标的性能,我们使用了 Person 相关系数和 RMSE 距离度量:
- Pearson 相关系数,或简称 PCC,衡量预测分数与主观分数的相关程度,更高的 PCC 值意味着更好的相关性。
- RMSE 衡量预测与主观分数的差距,较低的 RMSE 值意味着较高的预测精度。
现在,我们要评估 AVQT 对人类受试者给出的分数的预测能力。如下图,x 轴上是真实的主观视频质量分数, y 轴上是 AVQT 预测的分数,每个点都代表一个压缩视频。
从散点图中可以看出,除了少数异常值外,AVQT 在预测该数据集的主观分数方面做得很好,这也反映在高 PCC 和低 RMSE 分数上。我们在 VQEG HD3 数据集上也看到了高性能。
计算速度迅速
让我们继续讨论 AVQT 的计算速度。我们都知道,高计算速度对于确保可扩展性非常重要。AVQT 的算法经过设计和优化,可以在 Metal 上快速运行,这让我们可以非常快速地浏览大型视频文件。同时,它还负责本地处理所有预处理,使得我们不必解码视频并离线缩放它们。AVQT 可以以每秒 175 帧的速度运行 1080p 视频。因此,如果我们有时长 10 分钟、 24 Hz 1080p 的视频,AVQT 可以在 1.5 分钟内计算其质量。
设置观看参数
我们要讨论的最后一个属性是设置观看参数。我们对视频的观看设置会影响我们在观看视频时感知到的视频质量,特别是,显示尺寸、显示分辨率和观看距离等因素可能会掩盖或夸大视频中的伪影。
为了解决这个问题,AVQT 将这些参数作为工具输入,然后随着这些参数的变化尝试预测正确的趋势。我们来看一个这样的案例,考虑两种情况:
在场景 A 中,我们在 4K 显示器上以 1.5 倍屏幕高度的观看距离观看 4K 视频。在场景 B 中,我们在同一显示器上观看相同的视频,但现在的观看距离是屏幕高度的三倍。显然,在场景 B 中,我们会错过一些在您仔细观察时可见的细节。这意味着我们在场景 B 中感知到的视频质量将高于场景 A。可以通过 AVQT 计算由于观看距离导致的最终不同质量水平视频的得分,从而反映出某种变化趋势。
如上图显示,随着观看距离从 1.5H 增加到 3H,AVQT 分数也会增加。如果想要了解更多的技术细节,可以查看该工具提供的 README 文档。
既然大家都对 AVQT 感到兴奋,那么让我们看看该如何正确使用该工具。我们将很快通过苹果开发者门户(https://developer.apple.com/ )向所有人提供 AVQT。
我们先来看一个操作演示。首先,我已经下载了 AVQT 并在系统上完成了安装,查看“which AVQT”,即可看到 AVQT 被放置在 usr/local/bin 目录中。现在,我们可以调用 AVQT,帮助命令来阅读有关 AVQT 支持的不同标志的用法以及其他更多信息。
当前目录中有一个示例参考和一个示例压缩视频,我通过它们来运行 AVQT。我们将提供参考和测试的文件作为输入并指定一个输出文件,将输出文件命名为 sample_output.csv。该工具会在屏幕上打印进度并报告分段分数。默认片段持续时间为 6 秒,由于此片段长 5 秒,因此我们只有一个片段。接下来,看看输出文件,在此处可以查看帧级别分数。最后,我们将细分级别的分数放在底部。
除了演示时候展示的选项外,该工具还内置了一些其他功能。
例如,我们可以使用 segment-duration 和 temporal-pooling 标志来更改聚合帧级分数的方式。同样,也可以使用查看距离和显示分辨率标志指定查看设置。
请参阅自述文件以获取更多详细信息。到目前为止,我们已经了解了 AVQT 的一些关键属性,也演示了如何在一对视频上使用命令行工具来生成视频质量分数。
AVQT 的使用案例
现在让我们看一个特定的案例,我们可以使用 AVQT 来优化 HLS 的比特率。
HLS(是由苹果公司提出基于 HTTP 的流媒体网络传输协议)层以不同的比特率进行编码。我们知道选择这些比特率并不总是一个简单的过程。
为了帮助解决这个问题,我们在 HLS 创作规范文档中发布了一些比特率指南。这些比特率只是通过 HLS 交付典型内容的初始编码目标。我们也知道不同的内容具有不同的编码复杂度,这意味着最佳比特率因不同的内容而异。
因此,适用于一种类型的内容,例如:动画电影的比特率可能不适用于体育赛事。
下面来看看如何使用 AVQT 作为反馈,来帮助我们确定内容的最佳比特率。首先,我们从初始目标比特率开始,使用这个比特率来编码我们的源视频并创建 HLS 层。然后,我们通过源视频和编码的 HLS 层使用 AVQT 计算视频质量分数。最后,我们可以分析 AVQT 分数来决定是要增加还是减少 HLS 层的目标比特率。
为了演示这一点,我们选择一个特定的 HLS 层。在这里,我们选择每秒 11.6 M 的 2160p 分辨率的视频。然后,我们将使用推荐的比特率对前两个序列:动画和体育进行编码。在我们准备好编码层后,就使用 AVQT 来计算它们的视频质量分数。
下图显示了两个视频序列的 AVQT 分数。对于这一特定层,我们想要得到高视频质量,因此我们将阈值设置为 4.5,表示接近优秀的质量。可以看到,虽然这个比特率对于这个动画剪辑来说已经足够了,但对于体育剪辑来说还不够。
因此,我们返回并使用此反馈来调整我们的比特率目标,需要提高体育剪辑的比特率目标并重新计算其 AVQT 分数。
我们的目标是将比特率提高 10%。在这里,我们绘制了体育剪辑的新 AVQT 分数,更新后的分数现在高于我们预期的四分半阈值,并且它也更接近于动画内容的视频质量。
最后,我们希望演讲可以告诉大家一点:视频压缩会导致可见的伪像,从而影响消费者的视频质量体验。
我们可以使用 AVQT 评估压缩视频的质量。AVQT 作为 macOS 命令行工具提供,计算速度快并且可以设置观看参数,它还支持所有基于 AVFoundation 的视频格式,也可以使用 AVQT 来优化 HLS 层的视频质量。
总结
以上就是本次 Pranav Sodhani 在 WWDC 2021 大会上分享的全部内容译文,若有翻译不合理处,欢迎指正交流。
目前网易云信全平台实现的超分功能,刚好可以使用 AVQT 来评测超分之后的主观图像质量,也欢迎大家来使用最新的 SDK 来体验我们的超分功能。
作者介绍
Pranav Sodhani,来自 Apple 显示和色彩技术团队。Pranav 在算法开发、机器学习、色彩科学和视频技术方面具备专业的知识。他于 2017 年从加州大学洛杉矶分校 (UCLA)获得计算机科学硕士学位,并于 2015 年从印度理工学院古瓦哈提(IIT G) 获得电气工程学士学位。 在加拿大和韩国大学进行研究,在国际机器学习会议上发表过论文。 获得多项奖学金和奖项,包括 O.P. Jindal 工程与管理奖学金 (OPJEMS)、Mitacs Globalink 奖、第四届国际数学奥林匹克竞赛金牌得主。同时他也是“Haha Reacts Only - Pranav Sodhani 原创笑话集”的作者,于 2018 年出版,面向印度观众。
- 分享实录视频:https://developer.apple.com/videos/play/wwdc2021/10145/
- 参考文档:https://www.its.bldrdoc.gov/vqeg/vqeg-home.aspx
更多技术干货,欢迎关注【网易智企技术+】微信公众号
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。