Netflix VMAF:基于多方法融合的感知视频质量评估
摘要
Netflix 的 VMAF 是一个基于多方法融合的感知视频质量评估工具包,包含 C 库 libvmaf 及 Python 封装,并发布了新一代 v1 质量模型。
查看缓存全文
缓存时间: 2026/10/18 22:58
Netflix/vmaf
来源:https://github.com/Netflix/vmaf
VMAF - 视频多方法评估融合(Video Multi-Method Assessment Fusion)
libvmaf (https://github.com/Netflix/vmaf/actions/workflows/libvmaf.yml) Windows (https://github.com/Netflix/vmaf/actions/workflows/windows.yml) ffmpeg (https://github.com/Netflix/vmaf/actions/workflows/ffmpeg.yml) Docker (https://github.com/Netflix/vmaf/actions/workflows/docker.yml)
VMAF 是由 Netflix 开发的、荣获艾美奖 (https://theemmys.tv/) 的感知视频质量评估算法。该软件包包含一个独立的 C 库 libvmaf 及其 Python 封装库。Python 库还提供了一组工具,允许用户训练和测试自定义 VMAF 模型。
阅读这篇 (https://medium.com/netflix-techblog/toward-a-practical-perceptual-video-quality-metric-653f208b9652) 技术博客文章以了解概况,这篇 (https://medium.com/netflix-techblog/vmaf-the-journey-continues-44b51ee9ed12) 文章了解最佳实践技巧,以及这篇 (https://netflixtechblog.com/toward-a-better-quality-metric-for-the-video-community-7ed94e752a30) 文章了解我们在速度优化、新 API 设计以及引入对编码器评估友好的 NEG 模式方面的最新进展。
libvmaf 中还包含了其他几种指标的实现:PSNR、PSNR-HVS、SSIM、MS-SSIM 和 CIEDE2000。
vmaf logo
新闻
- (2026-06)我们正在发布新一代 VMAF 模型(v1)。关于 v1 的更多信息请参阅技术博客 (https://medium.com/netflix-techblog/vmaf-v1-good-is-not-good-enough-60d7e4244ea8)。详情及模型选择指南请参阅 models_v1.md。上一代模型(v0)的文档仍保留在 models_v0.md 中。我们欢迎用户对 VMAF v1 提供反馈,并将持续改进和更新模型。
- (2023-12-07)我们正在发布
libvmaf v3.0.0。该版本包含多项优化和 bug 修复,并彻底移除了在v2.0.0中已弃用的 API。 - (2021-12-15)我们为 CAMBI 添加了
full_ref输入参数,允许将 CAMBI 作为全参考指标运行,同时考虑源内容中已存在的 banding。请查看 使用方法 页面。 - (2021-12-1)我们为 CAMBI 添加了
max_log_contrast输入参数,允许以比默认值更高的对比度捕捉 banding。我们还加速了 CAMBI(例如,4K 分辨率下约 4.5 倍)。请查看 使用方法 页面。 - (2021-10-7)我们开源了 CAMBI(对比度感知多尺度 Banding 指数)——Netflix 用于检测 banding(又称轮廓化)伪影的检测器。概况请查看技术博客 (https://netflixtechblog.medium.com/cambi-a-banding-artifact-detector-96777ae12fe2),以及发表于 PCS 2021 的技术论文(注意:论文描述的是 CAMBI 的初始版本,与当前代码不完全一致,但仍是很好的入门资料)。另请查看 使用方法 页面。
- (2020-12-7)请查看我们最新的技术博客 (https://netflixtechblog.com/toward-a-better-quality-metric-for-the-video-community-7ed94e752a30),内容涉及速度优化、新 API 设计以及引入对编码器评估友好的 NEG 模式。
- (2020-12-3)我们正在发布
libvmaf v2.0.0。该版本采用了新的定点数实现和 x86 SIMD 优化(AVX2、AVX-512),相比之前的浮点版本实现了 2 倍的速度提升。同时引入了更加灵活和可扩展的新 API。 - (2020-7-13)我们编写了一份备忘录 (https://docs.google.com/document/d/1dJczEhXO0MZjBSNyKmd3ARiCTdFVMNPBykH4_HMPoyY/edit?usp=sharing),分享我们对 VMAF 在图像增强操作下的特性、其对编码器评估的影响以及应对方案的思考。据此,我们新增了一种名为无增强增益(NEG)的模式。
- (2020-2-27)我们将 VMAF 的许可证从 Apache 2.0 更改为 BSD+Patent (https://opensource.org/licenses/BSDplusPatent),这是一种比 Apache 更宽松的许可证,且包含明确的专利授权。
文档
这里有一个文档总览,链接到具体页面,涵盖常见问题、可用模型和功能、软件使用指南以及资源列表。
使用方法
该软件包提供了多种与 VMAF 实现进行交互的方式。
- 命令行工具
vmaf提供了完整的算法实现,便于在生产环境中部署 VMAF。此外,vmaf工具还提供了 PSNR、SSIM 和 MS-SSIM 等辅助功能。 - C 库
libvmaf提供了将 VMAF 集成到你的代码中的接口,以及将其他特征提取器集成到库中的工具。 - Python 库 提供了全套封装类和脚本,用于软件测试、VMAF 模型训练与验证、数据集处理、数据可视化等。
- VMAF 现已作为滤镜包含在 FFmpeg 中,可通过以下方式配置:
./configure --enable-libvmaf。请参阅在 FFmpeg 中使用 VMAF 页面。 - VMAF Dockerfile 可以根据 Python 库 生成 docker 镜像。详细用法请参阅此文档。
- 如需在 Windows 上构建 VMAF,请按照这些说明操作。
- AOM CTC:AOM 已根据 AOM 通用测试条件(CTC)指定 vmaf 为标准实现指标工具。符合 AOM CTC 的用法请参阅此页面。
贡献指南
请参阅贡献页面。另请参阅此幻灯片 (https://docs.google.com/presentation/d/1Gr4-MvOXu9HUiH4nnqLGWupJYMeh6nl2MNz6Qy9153c/edit#slide=id.gc20398b4b7_0_132) 以了解贡献指南概览。
相似文章
MFVSR:面向视频字幕移除的多风格细粒度基准
MFVSR 提出一个大规模、多风格的视频字幕移除基准,通过空间解耦的细粒度协议评估修复保真度、区域保持性、时间一致性与可靠性,涵盖3000对视频和16种语言。
StreamEval:交互式流式视频生成模型评估
StreamEval 是一个面向交互式流视频生成的统一基准,涵盖五个任务和 300 个测试用例,评估了 37 个模型,发现高视觉质量并不等于可靠的任务执行与状态一致性,请求执行仍是主要挑战。
@ma_nanye: VSTAT 强调了人类与多模态大模型之间巨大的感知差距,但其意义远不止于此。其多样化的任务……
VSTAT 是一个用于视频视觉状态追踪的新基准,揭示了人类与多模态大模型之间的感知差距。
Mage-VL:一种高效的编解码原生流式多模态基础模型
Mage-VL 是一种高效的编解码原生流式多模态基础模型,通过自定义分词器将视觉标记消耗减少超过75%,在静态和视频任务上与现有模型持平或更优的同时,实现高达3.5倍的推理加速。
AcrossVAM2.0:用于参数高效视频扩散适配的冲突感知点监督
AcrossVAM2.0 提出一种冲突感知的点对应监督方法,用于参数高效的视频扩散模型适配,通过置信度加权跟踪头、零初始化残差反馈和非对称 PCGrad,在保持预训练外观先验的同时提升对应一致性,但并不均匀改善视频质量。