Evaluate videos with the Advanced Video Quality Tool
Audio & Video 进阶 22m

使用 Advanced Video Quality Tool 评估视频质量

Evaluate videos with the Advanced Video Quality Tool

2021年6月11日

在 Apple 官方观看视频

一句话判断

这个工具把视频质量评估从”肉眼看几遍觉得还行”推进到了可量化的工程化阶段——如果你负责编码管线的质量把控,Advanced Video Quality Tool(AVQT)应该成为你 CI 流程的一部分。

这场 Session 讲了什么

Session 介绍了 Apple 的 Advanced Video Quality Tool(AVQT),一个基于命令行的视频质量评估工具。它使用 Full Reference(全参考)方法——将编码后的视频与原始未压缩视频逐帧对比,输出客观的质量分数。支持 VMAF(Video Multimethod Assessment Fusion)、PSNR、SSIM 等主流指标。

AVQT 的独特价值在于它针对 Apple 生态的编码场景做了优化:支持评估 HDR(HLG、Dolby Vision)内容的感知质量,支持逐场景(per-scene)分析而不仅仅是全片平均分,还能处理 fMP4 和 MOV 容器格式。Session 展示了一个典型工作流:编码工程师用不同参数(CRF、preset、码率)生成多个版本,用 AVQT 打分,找到质量-码率的最优平衡点。工具输出的 JSON 报告可以直接集成到自动化管线中。

值得深挖的点

VMAF 分数与主观质量的相关性

AVQT 默认使用 Netflix 开发的 VMAF 指标,因为它与人类主观评分的相关性最高(相关系数 0.8+,而 PSNR 只有约 0.5)。但 VMAF 的分数区间(0-100)需要正确理解:90 分以上通常意味着”视觉无损”,70-90 分是”可接受的压缩伪影”,低于 70 分用户可能开始注意到块效应(blocking)或色彩带状化(banding)。Session 建议在编码参数调优时以 85 分作为基准线。

Per-scene 分析的实际应用场景

全片平均 VMAF 分数可能掩盖某些场景的质量问题——一段高速运动场景的分数可能只有 60,被静态画面的 98 分拉高到了整体 85。AVQT 的 per-scene 模式可以按时间窗口(比如每 2 秒)输出分数,让你精确找到质量洼地。结合 -segmentDuration 参数,你可以在编码管线中实现 per-scene 的码率分配:对分数低的场景加大码率,对分数高的场景节省带宽。

代码片段

# 基础用法:对比源视频和编码后视频
# 输出 VMAF 分数和详细报告
avqt --reference source_prores.mov \
     --distorted encoded_h264_crf23.mp4 \
     --output results.json \
     --metric VMAF

# 终端输出示例:
# VMAF Score: 87.34
# PSNR (dB): 38.21
# SSIM: 0.9642
# per-scene 分析模式
# 每 2 秒输出一个质量分数,定位质量洼地
avqt --reference source_prores.mov \
     --distorted encoded_hevc_crf28.mp4 \
     --output per_scene_report.json \
     --metric VMAF \
     --segmentDuration 2.0 \
     --format json

# JSON 输出中包含每段的时间码和对应分数
# 可以导入到数据可视化工具中做趋势分析
# HDR 内容的质量评估
# 需要指定色彩空间和传输函数
avqt --reference hdr_source.mov \
     --distorted hdr_encoded.mp4 \
     --output hdr_results.json \
     --metric VMAF \
     --colorPrimaries BT2020 \
     --transferCharacteristics PQ \
     --matrixCoefficients BT2020

# 评估 Dolby Vision 内容时使用 Profile 8.1 模式
avqt --reference dolby_vision_source.mov \
     --distorted dv_encoded.mp4 \
     --metric VMAF \
     --dolbyVisionProfile 8.1

最佳实践

  • 在 CI 管线中设置质量阈值门禁:编码参数变更后自动运行 AVQT,如果 VMAF 分数低于 85 或比基线下降超过 3 分,自动阻止上线。
  • 批量评估不同编码参数组合时,用脚本遍历 CRF 值(18、23、28、33)和 preset(slow、medium、fast),找到码率-质量曲线的拐点——拐点处是性价比最高的参数。
  • 对于 HDR 内容的评估,务必指定正确的色彩空间参数。用 SDR 模式评估 HDR 内容会得到误导性的高分。

还有什么值得关注

  • AVQT 支持 Apple Silicon 原生运行,评估速度在 M1 上比 Intel Mac 快约 2-3 倍。
  • 工具输出的 JSON 可以和 Xcode Instruments 集成,在性能分析的时间线中叠加视频质量曲线。
  • Apple 建议将 AVQT 与 HLS 的 variant 编码管线结合使用:为每个码率阶梯自动验证质量是否达标。
WWDC 2021