压片画质亏没亏,别再靠猜了:Netflix同款VMAF标尺自己就能测,但分数也会骗人

源自5位全网作者

07:12

熬夜把一部 50GB 的蓝光原盘压成 H.265,文件缩到十几 GB,点播放的那一刻,脑子里总会冒出一个问题:画质到底亏了多少?

靠肉眼看?同一部片子,半夜两点看啥都挺清楚,第二天你根本不记得原片长什么样。靠码率看?两部码率一样的片子,画质能差出一个档次——这事在压片圈早就吵明白了。

其实这个问题早有一把公认的"尺子",叫 VMAF。压制组的发布说明里经常挂着它,Netflix 的线上画质把关也靠它。这篇文章就把三件事一次讲清:这把尺子量的是什么、压片时照着多少分压不亏、以及最容易被忽略的一点——分数本身也会骗人。

码率和文件大小,为什么当不了尺子

很多人的直觉是"文件越大画质越好",这个直觉只对了一半。画质消耗的大头是画面复杂度:一段静态访谈和一段爆炸追车,同样的码率,前者绰绰有余,后者直接糊成马赛克。

最能说明问题的是 Netflix。他们在 2015 年提出"按片定码率"(Per-Title Encoding),不再给所有片子套同一个码率档位,而是逐片测算内容复杂度,简单的片子给更低码率,复杂的片子加码率,结果是整体带宽平均省了约 20%,主观画质反而上升。知乎换句话说,码率是个"预算",预算花在哪、够不够,取决于画面本身——拿预算数字反推画质,天然就不靠谱。

那靠什么?业界的答案是拿"人眼打分"来校准。

压片画质亏没亏,别再靠猜了:Netflix同款VMAF标尺自己就能测,但分数也会骗人

VMAF 是什么:一把用人眼打分训练出来的尺子

VMAF(Video Multi-Method Assessment Fusion)是 Netflix 在 2016 年开源的视频质量评估算法,如今基本是行业默认标准。知乎它的思路不复杂:把多个画质特征(细节保留、结构变化、运动信息等)丢进一个机器学习模型,而这个模型是用大量真人主观评分(MOS)训练出来的——也就是说,它的刻度是直接对着"人觉得糊不糊"校准的。

对比一下老指标就知道差距:PSNR 是逐像素算差异,画面整体平移一个像素,分数就崩了,但人眼根本看不出来;SSIM 看亮度、对比度、结构,好一些,但对运动模糊和色带这类问题照样迟钝。VMAF 0-100 分,分数越接近 100 越接近原片观感。

压片画质亏没亏,别再靠猜了:Netflix同款VMAF标尺自己就能测,但分数也会骗人

圈内现在大致有这么几条经验线(注意,是社区和工程实践里沉淀的参考值,不是物理定律):

  • 1080p 流媒体,VMAF 93 被普遍当成"黄金线"——低于它,多数观众能感觉到画质下降;高于它,再堆码率换来的主观提升微乎其微。知乎

  • 收藏向压片、压制组归档,普遍把 95 分以上当"视觉无损"的及格线,为了这个分数可以接受 CPU 软编慢慢磨。知乎

  • 手机上看的低清版本,用专门的手机模型(vmaf-phone)打分,标准还会再松一些。

重点来了:这把尺子自己就能上手

VMAF 不是大厂专属,它就是 FFmpeg 里的一个滤镜。最简流程:

```
ffmpeg -i 压制后.mp4 -i 原片.mp4 -lavfi libvmaf -f null -
```

两个坑先说在前面:第一,顺序不能反,第一个输入是待测视频,第二个是参考原片。知乎第二,两边分辨率、帧率必须一致,压完 1080p 就不能直接跟 4K 原片比,要先缩放到同分辨率再打分(4K 内容可以用专门的 4K 模型)。

压片时更实用的玩法是"试探法":

  1. 同一段视频,用目标编码器(比如 x265)压三个 CRF 档,比如 24、28、32;

  2. 三个版本分别跑一遍 VMAF,记下分数和文件体积;

  3. 找到能满足目标分数的最低 CRF——那就是这部片子的"最优性价比点",以后同类片子照着压就行。

这一步的价值在于:从此"压到什么程度"不再是玄学,而是你自己测出来的数字。Netflix 的 per-title 思路,本质上就是把这个试探过程自动化、规模化,我们自己手工做一遍低配版,原理完全一样。

压片画质亏没亏,别再靠猜了:Netflix同款VMAF标尺自己就能测,但分数也会骗人

但是,分数也会骗人

这是我最想提醒的一段。VMAF 是尺子,可一旦有人"应试",尺子就会变形。

压片圈最近就在吵一个现成的例子:SVT-AV1 编码器更新后加入了针对 VMAF 优化的 tune 参数,有 UP 主实测发现,开了这个 tune,VMAF 跑分原地涨 2~3 分,但肉眼看画质反而比默认设置略差。哔哩哔哩原因不难理解:编码器学会了"讨好"评分模型的偏好,把算力花在刷分的地方,而不是花在人眼真正敏感的地方。评分模型一旦公开,就会被反向优化——这在哪个领域都一样。

类似的坑还有:给画面加一圈锐化滤镜,PSNR 会降,VMAF 却可能升高(锐化恰好命中了它的特征偏好),所以 libvmaf 专门提供了 neg(no enhancement gain)模式来压制这种"增强刷分"。知乎

压片画质亏没亏,别再靠猜了:Netflix同款VMAF标尺自己就能测,但分数也会骗人

另外 VMAF 也有自己的短板:极低码率下容易失灵、对动画和真人内容的敏感度不同、模型本身是基于特定片源训练的,存在偏差。知乎所以成熟的用法是"VMAF 守门 + 抽帧肉眼复查",分数用来排除明显压坏的版本,最后的关键场景(暗场、快速运动、字幕边缘)还是自己看一眼。

谁值得折腾,谁直接略过

  • 适合:NAS 影库要批量转 H.265 省空间的、在两个资源版本之间纠结的、做二创需要控制导出体积的——花半小时建一套自己的"分数-体积"对照,后面每一次压片都省心;

  • 不适合:平时只在流媒体平台看片的(平台二压你管不着,也测不了)、追求一键出片的——直接用 HandBrake 的官方预设或者硬件编码默认参数,完全够用,不必引入新焦虑。

最后留个继续观察的线索:VMAF 本身也在迭代,新一代模型和 neg、cambi 这些防刷分机制正在被越来越多的测试者采用,SVT-AV1 的 tune 之争也还没吵完。你手里的分数对照表,建议每隔一两年用新模型复测一次——毕竟尺子自己也在进化。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章