1. 视频编码的十字路口:从 H.266 到神经编码
视频编码这个领域,过去三十年基本遵循一条清晰的路线:每一代标准把压缩效率往上推一截,H.264 到 H.265 大约省一半码率,H.265 到 H.266 再省一半左右。这条路线稳定、可预期,工程落地也有成熟套路。但最近几年,另一条路线开始频繁出现在讨论里——用神经网络做端到端视频压缩,也就是大家常说的神经编码(Neural Codec)。于是问题就来了:H.266 和神经编码,到底谁更先进?下一代视频 Codec 的真正竞争点在哪里?
我先把结论摆前面,免得你读到最后才发现方向不对:在可预见的几年内,H.266 及其演进版本仍然是工程落地的主力,神经编码是方向,但还没到全面替代传统 Codec 的阶段。两者不是简单的“谁取代谁”,而是在不同场景里各占一块地盘。这篇文章我会从技术原理、压缩效率、工程复杂度、硬件支持、落地场景几个维度把这件事拆开讲,尽量让你看完之后能自己判断某个具体项目该选哪条路。
这篇文章适合几类人看:做视频转码、点播、直播的工程师;研究视频压缩算法的同学;以及需要给产品选型做技术决策的人。如果你只是想知道“哪个压缩率更高”,我也会直接给数据,但更希望你能理解背后的取舍逻辑,因为选型从来不是只看一个数字。
2. 先把两个概念说清楚,别被名词绕晕
2.1 H.266/VVC 到底是什么
H.266 的正式名字叫 VVC(Versatile Video Coding),由 ITU-T 和 MPEG 联合制定,2020 年正式定稿。它是 H.265/HEVC 的正统继任者,目标很明确:在同等主观质量下,把码率再降一半。它的技术底座还是传统的混合编码框架——预测、变换、量化、熵编码这一套,只是每个环节都做得更细、更狠。
具体来说,VVC 相比 HEVC 引入了不少新工具:更大的编码块(最大 128x128 的 CTU)、更灵活的划分方式、改进的帧内预测方向、仿射运动补偿、自适应环路滤波(ALF)、以及基于矩阵的帧内预测等等。这些工具堆在一起,换来了大约 40% 到 50% 的码率节省,具体数字取决于内容和配置。
但代价也很明显:编码复杂度大幅上升。有测试表明,VVC 的编码复杂度可能是 HEVC 的十倍以上,解码复杂度大概是两倍左右。这就是为什么 H.266 定稿好几年了,实际铺开的速度远不如当年 H.265 那么快。
2.2 神经编码又是什么路子
神经编码(Neural Codec)的思路和传统 Codec 完全不同。它不依赖手工设计的预测和变换模块,而是用神经网络直接学习“从像素到码流”的映射。典型结构是:编码器网络把视频帧压缩成潜在表示(latent),然后量化、熵编码成比特流;解码器网络再从比特流重建画面。整个系统是端到端训练的,损失函数通常同时考虑码率和失真。
这条路线的吸引力在于:它不受传统框架的限制,理论上能逼近率失真理论的下界。而且神经网络可以学习到人眼视觉系统更敏感的特征,在主观质量上可能比 PSNR 指标看起来更好。近几年学术界出了不少成果,比如基于条件编码、基于隐式运动建模的方案,在低码率下确实能打出漂亮的数据。
但问题也同样明显:计算量大、硬件支持几乎为零、标准化缺失、专利和生态都是空白。这些不是小问题,而是决定它能不能落地的关键。
3. 压缩效率对比:数字背后的真相
3.1 客观指标下的差距
先看大家最关心的压缩效率。在标准测试序列上,VVC 相比 HEVC 能省大约 40% 到 50% 的码率,这个数据比较扎实,多个独立测试都验证过。那神经编码呢?学术论文里经常能看到“相比 HEVC 节省 20% 到 40%”甚至更高的数字,有些在特定低码率场景下能超过 VVC。
但这里有个关键陷阱:这些数字往往是在特定配置、特定内容、特定指标下测出来的,不能直接横向比较。比如很多神经编码的论文用的是 PSNR 或者 MS-SSIM,测试序列也偏向特定类型。一旦换到真实场景的复杂内容,优势可能缩水甚至消失。
我自己的经验是,在低码率(比如 200kbps 以下)和动画、屏幕内容这类场景,神经编码确实有优势;但在高码率、高分辨率、运动剧烈的实拍内容上,VVC 的稳定性和效率反而更好。原因也不难理解:传统 Codec 的预测和变换模块是几十年打磨出来的,对各种内容都有兜底能力;神经网络则更依赖训练数据的分布,遇到分布外的内容容易翻车。
3.2 主观质量才是真正的战场
视频最终是给人看的,所以主观质量比 PSNR 更重要。这方面神经编码有一个天然优势:它可以直接用感知损失、对抗损失来训练,让重建画面在视觉上更讨喜。传统 Codec 虽然也有感知优化,但受限于框架,能做的调整有限。
不过 VVC 也没闲着,它的 ALF、自适应量化、以及各种感知相关的工具,在主观质量上比 HEVC 有明显提升。而且 VVC 的主观优化是标准化的,不同厂商实现出来效果一致;神经编码则是各家训练各家的,效果参差不齐。
所以我的判断是:在主观质量上,神经编码在特定场景有优势,但整体还没有形成对 VVC 的压倒性领先。说“谁更先进”其实是个伪命题,得看具体场景和评价标准。
4. 工程落地:这才是决定胜负的地方
4.1 硬件支持的天壤之别
VVC 虽然编码复杂度高,但解码复杂度相对可控,而且已经有芯片厂商在推支持 VVC 解码的 SoC。手机、电视、机顶盒这些终端,硬件解码是刚需,因为软件解码太耗电。VVC 有标准、有专利池、有芯片路线图,这是它能落地的基础。
神经编码呢?目前几乎没有硬件支持。神经网络推理要么靠 CPU(慢),要么靠 GPU(功耗高),要么靠专用 NPU(生态不成熟)。在服务器端做转码,用 GPU 跑神经编码还能接受;但在终端做解码,尤其是移动端,功耗和发热根本扛不住。这一条就卡死了神经编码在消费端的普及。
4.2 标准化与互操作性
VVC 是国际标准,不同厂商的实现可以互操作。你用一个编码器压的流,另一个厂商的解码器能解。这是整个视频生态运转的前提。
神经编码目前没有统一标准,每篇论文、每个产品都是自己的模型和码流格式。这意味着你用了某家的方案,就被锁定了,换不了。对于点播平台、直播平台这种需要长期维护的系统,这是大忌。没有标准化,就没有规模效应,成本就降不下来。
4.3 专利与授权
VVC 有明确的专利池,虽然授权费不便宜,但至少规则清晰,厂商知道要付多少钱。神经编码的专利格局还很不明朗,训练用的模型、推理方法、码流格式都可能涉及专利,但没人说得清到底谁该收、收多少。这种不确定性会让大厂望而却步。
5. 实际场景怎么选:一份可操作的决策指南
5.1 场景一:大规模点播平台
如果你在做点播平台,需要存储海量视频、服务海量用户,那 VVC 是更现实的选择。原因很简单:标准化、硬件解码支持、生态成熟。你可以用 VVC 把码率降下来,省带宽和存储,同时终端用户能流畅播放。
神经编码在这个场景不是不能用,但只能用在服务器端做预处理或者特定内容优化,没法作为主编码格式。因为用户终端解不了,你总不能要求每个用户都装个 GPU 吧。
5.2 场景二:实时通信与直播
实时通信对延迟极其敏感,编码复杂度不能太高。VVC 的编码复杂度在这个场景反而是负担,很多实时场景还在用 H.264 甚至更老的格式。神经编码如果能把编码复杂度降下来,理论上有机会,但目前还没有成熟的低延迟方案。
直播场景稍微好一点,可以用 VVC 做高压缩,但需要权衡编码成本和带宽成本。如果带宽便宜、算力贵,那用 HEVC 甚至 H.264 更划算;反之才考虑 VVC。
5.3 场景三:特定内容与离线处理
如果你处理的是动画、屏幕内容、监控视频这类特定内容,神经编码可能有优势。因为这些内容分布相对固定,神经网络容易学好。而且如果是离线处理,不要求实时,那计算量大一点也能接受。
我见过一些团队在监控视频上用神经编码做存储压缩,效果不错。但这类方案通常是定制的,没法通用。
5.4 一张表看清选型逻辑
| 维度 | H.266/VVC | 神经编码 |
|---|---|---|
| 压缩效率 | 高,稳定 | 特定场景更高,波动大 |
| 编码复杂度 | 很高 | 很高,且依赖硬件 |
| 解码复杂度 | 中等,有硬件支持 | 高,几乎无硬件支持 |
| 标准化 | 国际标准,互操作好 | 无标准,各自为政 |
| 专利 | 有专利池,规则清晰 | 不明确 |
| 生态 | 成熟,芯片厂商支持 | 早期,主要在学术和实验 |
| 适用场景 | 大规模点播、直播、终端播放 | 离线处理、特定内容、实验性项目 |
6. 实操心得与常见坑
6.1 别被论文数字忽悠
我见过太多人拿着论文里的率失真曲线说“神经编码吊打 VVC”,但实际一跑就发现不是那么回事。论文的测试条件往往很理想,真实内容复杂得多。建议你自己拿业务数据跑一遍,别直接信论文。
6.2 VVC 的编码速度是硬伤
VVC 的参考软件 VTM 编码速度慢得令人发指,实际产品里必须用优化过的编码器,比如一些厂商的商用编码器。即便如此,编码成本还是比 HEVC 高不少。做选型时一定要把编码算力成本算进去,别只看带宽节省。
6.3 神经编码的模型管理是个坑
神经编码的模型文件可能很大,而且不同内容可能需要不同模型。这就带来模型管理、版本控制、分发的问题。传统 Codec 没这个问题,因为编解码器是固定的。如果你要做神经编码的产品,这块的工程复杂度要有心理准备。
6.4 注意那个编码报错
热搜里有个unicodeencodeerror: 'gbk' codec can't encode character的错误,这其实是 Python 里处理非 GBK 字符时的常见问题。做视频处理时,如果文件名或元数据里有特殊字符,很容易踩到这个坑。解决办法是显式指定编码,比如用utf-8打开文件,或者在输出时做字符过滤。虽然这和视频编码本身没关系,但在实际工程里经常遇到,顺手提一下。
7. 下一代 Codec 的真正竞争点
7.1 不是算法之争,是生态之争
很多人以为下一代 Codec 的竞争是算法优劣,其实不是。H.264 当年赢,不是因为算法最先进,而是因为生态最成熟。H.265 铺开慢, partly 是因为专利授权太乱。VVC 现在面临的也是生态问题:专利池、芯片支持、内容生态。
神经编码如果想赢,光有算法不够,得把标准化、硬件、专利、工具链都建起来。这需要整个行业协作,不是一两个团队能搞定的。
7.2 混合方案可能是出路
我个人的判断是,未来几年会出现混合方案:传统 Codec 框架里嵌入神经网络模块,比如用神经网络做环路滤波、做帧内预测、做运动估计。这样既能利用传统框架的稳定性,又能拿到神经网络的增益。实际上 VVC 里已经有基于神经网络的工具在研究了,这条路比纯神经编码更现实。
7.3 算力增长会改变格局
神经编码现在受限于算力,但算力一直在涨。等哪天终端 NPU 能轻松跑神经网络推理了,神经编码的落地障碍就少了一大半。所以这是个时间问题,不是方向问题。做技术选型时,要把时间维度考虑进去:现在选 VVC,三年后可能就要考虑神经编码了。
8. 我个人的一些实操建议
如果你现在要做一个视频相关的项目,我的建议是:主力用 VVC 或 HEVC,同时留一个神经编码的实验通道。别把所有赌注押在一条路上。VVC 保证你的基本盘,神经编码让你在特定场景有优化空间。
具体操作上,可以先把 VVC 的编码链路搭起来,用商用编码器或者优化过的开源编码器,把码率降下来。然后在服务器端,针对特定内容(比如动画、屏幕内容)试试神经编码,看能不能再省一点。如果效果好,就作为补充方案;如果不好,也不影响主链路。
另外,做技术选型时一定要算总账:带宽成本、存储成本、算力成本、人力成本、专利成本,全都算进去。别只看压缩率一个指标。我见过太多项目因为只盯着压缩率,最后总算下来反而更贵。
最后说一句,视频编码这个领域没有银弹。H.266 和神经编码各有各的适用场景,真正的竞争不是谁取代谁,而是谁能更好地解决实际问题。作为工程师,我们的任务是根据具体需求选最合适的工具,而不是追最热的概念。