WWDC Quick Look 💓 By SwiftGGTeam
What's new in AVQT

What's new in AVQT

观看原视频

Highlight

AVQT(Advanced Video Quality Tool)在 WWDC 2022 带来三项关键更新:交互式 HTML 可视化报告、时间窗口选择支持精确评估特定片段、以及 Linux 平台支持(beta 版)。同时 raw YUV 格式支持从少数几种扩展到 20 种。

核心内容

为什么需要 AVQT

视频编码后,怎么知道质量好不好?肉眼观看主观性太强,PSNR 等客观指标又和人的真实感受有偏差。AVQT 是一个全参考(full-reference)视频质量评估工具,它对比原始视频和压缩/处理后的视频,输出一个贴近人类主观评分的质量分数。

00:26

AVQT 有三个独特优势:

  • 高相关性:分数和人的主观评分高度一致,适用于动画、自然场景、运动等各种内容类型
  • 速度快:基于 AVFoundation 和 Metal,在 M1 Ultra 上评估 2 小时 4K HEVC 电影只需 20 分钟(6 倍实时速度)
  • 可配置:支持不同观看场景,通过显示分辨率、尺寸和观看距离调整评估参数

交互式 HTML 报告

以前 AVQT 只输出命令行数字,难以直观判断质量在时间轴上的分布。新版本增加了 --visualize 参数,生成交互式 HTML 报告。

02:33

报告包含:

  • 逐帧和分段 AVQT 分数曲线图,支持缩放和平移
  • 鼠标悬停显示具体时间、分数和帧索引
  • 饼图展示分数在五个质量等级(Bad、Poor、Fair、Good、Excellent)的分布
  • 底部附带 PSNR 分数对比

生成的报告是纯 HTML 文件,可以直接在 Safari 中打开,不需要安装 AVQT。方便团队成员之间分享和讨论。

时间窗口评估

整段视频的平均分可能掩盖局部问题。比如 10 分钟的视频,其中 30 秒出现严重压缩伪影,但整体平均分仍然正常。

05:03

新版本支持四个新参数精确指定评估范围:

  • --start-frame / --end-frame:按帧号指定
  • --start-time / --end-time:按时间戳指定

这样可以直接评估特定场景、转场或高复杂度片段,比处理完整视频再手动筛选更快。

Raw YUV 格式扩展

AVQT 原本支持所有 AVFoundation 视频格式,另外也支持 raw YUV。2022 年把 raw YUV 支持从少数几种扩展到 20 种,覆盖多种色度采样(4:2:0、4:2:2、4:4:4)和位深度(8/10/12/16-bit)。

06:37

参数体系也做了调整:旧的 reference-fourcctest-fourcc 已弃用,改为 chroma-subsamplingbit-depth 两个独立参数。新参数更清晰,也更容易扩展。

Linux 版本(Beta)

很多视频编码流水线部署在 Linux 服务器或云端。之前需要把视频传回 Mac 跑 AVQT,增加延迟和复杂度。

07:31

AVQT for Linux(beta 版)让开发者可以直接在 Linux 服务器上评估视频质量。特点:

  • 无需外部依赖,即插即用
  • 命令行参数和 macOS 版本完全一致
  • 支持全部 20 种 raw YUV 格式
  • 输出文件格式和 macOS 版本相同
  • 观看条件参数暂不可用,后续版本会添加

详细内容

基础用法

评估一个压缩视频的质量:

avqt -reference reference.mov -test compressed.mov

输出示例:

AVQT Score: 0.85
Processing time: 18m 32s

关键点:

  • -reference 指定原始无损视频
  • -test 指定待评估的压缩/处理后视频
  • 两个视频的分辨率和时长必须匹配
  • 分数范围 0-1,越接近 1 质量越好

生成交互式报告

avqt -reference reference.mov -test compressed.mov --visualize

运行完成后,终端会输出报告文件路径:

Report generated: /path/to/report.html

在 Safari 中打开即可查看交互式图表。

关键点:

  • --visualize 参数触发 HTML 报告生成
  • 报告包含可交互的逐帧质量分数曲线
  • 支持缩放和平移检查任意时间段
  • 饼图展示质量等级分布
  • 可直接分享给同事,无需安装 AVQT

评估特定场景

用 QuickTime Player 找到目标场景的起止帧号,然后:

avqt -reference reference.mov \
     -test compressed.mov \
     --start-frame 270 \
     --end-frame 486

关键点:

  • --start-frame--end-frame 按帧号精确裁剪评估范围
  • 只处理指定片段,比全片评估更快
  • 适合对比不同编码参数在特定场景下的表现
  • 也可使用 --start-time--end-time 按时间戳指定

处理 Raw YUV 视频

avqt -reference reference.yuv \
     -test compressed.yuv \
     -width 1920 \
     -height 1080 \
     --chroma-subsampling 4:2:0 \
     --bit-depth 10

关键点:

  • Raw YUV 需要手动指定宽度和高度
  • --chroma-subsampling 指定色度采样格式
  • --bit-depth 指定位深度
  • 旧参数 reference-fourcctest-fourcc 已弃用,应迁移到新参数

在 Linux 服务器上使用

# 下载 AVQT for Linux 并解压
./avqt -reference input.mov -test output.mov --visualize

关键点:

  • Linux 版本为 beta,命令行接口和 macOS 完全一致
  • 无需安装额外依赖
  • 适合集成到 CI/CD 编码流水线
  • 观看条件参数(显示分辨率、尺寸、距离)暂不可用

核心启发

搭建自动化视频质量监控流水线

  • 做什么:在视频编码完成后自动运行 AVQT,质量不达标时自动调整编码参数重试
  • 为什么值得做:Linux 版本让 AVQT 可以部署在编码服务器上,结合 --visualize 生成报告供团队查看
  • 怎么开始:在编码脚本后添加 AVQT 评估步骤,设定分数阈值(如 0.8),低于阈值时增加码率重新编码

建立视频质量回归测试

  • 做什么:维护一组代表性测试片段,每次编码器升级后跑 AVQT 对比分数变化
  • 为什么值得做:时间窗口功能让你可以聚焦编码器最薄弱的场景类型(如暗部、快速运动)
  • 怎么开始:挑选 5-10 个典型场景,用 --start-frame/--end-frame 精确评估,将分数记录到数据库追踪趋势

做视频压缩参数调优工具

  • 做什么:一个可视化工具,批量测试不同编码参数组合,用 AVQT 报告直观对比质量差异
  • 为什么值得做:交互式 HTML 报告让非技术人员也能看懂质量差异,加速决策
  • 怎么开始:用脚本批量生成不同参数的版本,跑 AVQT --visualize,把报告聚合到一个对比页面

为直播平台做实时质量监控

  • 做什么:在直播推流端定期截取片段,用 AVQT 评估编码质量,及时发现画质下降
  • 为什么值得做:AVQT 在 M1 Ultra 上 6 倍实时速度,足够快用于近实时评估
  • 怎么开始:每隔几分钟截取一段参考源和编码输出的对比片段,后台跑 AVQT,分数异常时告警

关联 Session

评论

GitHub Issues · utterances