H.266与神经编码正面对决:下一代视频编码的竞争与融合

发布时间:2026/11/2 20:01:44
H.266与神经编码正面对决:下一代视频编码的竞争与融合

1. 这场竞争,为什么现在才被摆上台面

先说一个有意思的巧合。最近不少做视频处理的朋友都撞上过这样一个报错:UnicodeEncodeError: 'gbk' codec can't encode character。你看,连 Python 处理字符串时都会因为“编码标准不统一”而翻车,视频领域这边,关于“下一代编码标准到底该往哪走”的争论,也卡在同样的十字路口上。一个是字符编码,一个是视频编码,本质上是同一类问题:信息在传输和存储时,怎么用最少的比特,把该表达的东西表达清楚。

在视频编码圈里,H.266/VVC 和神经编码(Neural Video Coding)就是目前最有竞争力的两个方向。H.266 是传统编码路线的集大成者,几乎把手工设计的编码工具榨到了极限,号称比上一代 H.265/HEVC 再省 30%-50% 码率。而神经编码则是把深度学习模型直接塞进编解码链路,跳过人工设计的模式,用神经网络自己找压缩规律。两者路线截然不同,但目标高度一致:用更少的码率,还原更高清的画质。

这篇文章不打算搞那种“最终赢家是谁”的站队式结论,而是把这两个方向拆开来看:它们各自真实的水平、背后的技术逻辑、落地的难度,以及最关键的——它们之间真正的竞争关系,其实很可能不是“你死我活”,而是“合二为一”。

2. H.266/VVC 到底牛在哪

2.1 它强在“把老手艺做到极限”

如果要一句话总结 H.266/VVC 的技术本质,那就是:它没有改变编码范式,但把所有环节的工具精度都往上推了一级。编码范式还是沿用了几十年的混合编码框架——预测、变换、量化、熵编码这一套流水线,但 VVC 在每个环节都做了“更精细的分工”。

拿块划分来说。H.265 最大支持 64x64 的编码树单元,H.266 直接推到了 128x128,而且引入了 QTMT(四叉树加多类型树)结构——不仅允许正方形块,还能拆成横向或纵向的长条形块。为什么这样做?因为画面里的纹理往往是各向异性的,比如天空渐变色、墙面砖缝、人物头发丝,这些内容用方形块去拟合,要么块太大拟合不准,要么块太小浪费比特。长条形的块能更贴合自然画面的边缘走向,压缩效率自然就上去了。

再比如帧内预测的角度,H.265 支持 33 种角度模式,H.266 直接翻到 65 种。角度越多,意味着参考像素能更精确地沿着纹理方向去预测。但代价也很直观:模式越多,编码器在决策时的计算量就越大,需要做的率失真优化搜索空间也越大。这就是 VVC 一直被诟病“编码复杂度爆炸”的根本原因。

2.2 VVC 的几个关键提升点,到底提升了什么

我用一个比较直观的类比来解释 VVC 的几项核心技术:

  • 多参考帧与运动细化:以前是找相似的参考块之后就直接抄过来,H.266 会在参考块附近再做一次更精细的位置修正,相当于在旧照片里眯着眼睛再对一次焦。这就是 DMVR(解码端运动矢量修正)干的事。
  • 仿射运动补偿:以前假设画面里的物体是平移的,但实际场景里有旋转、缩放(比如无人机航拍推进、镜头通过窗外的物体)。仿射模型用 4 参数或 6 参数来描述运动,可以在一个块内表达旋转缩放变化。这个工具对航拍视频、影视镜头抖动的提升非常明显。
  • 环内滤波增强:VVC 在去块滤波和 SAO 之外加了 ALF(自适应环路滤波器),用维纳滤波器对重建画面做全局修正。滤波不是简单地去除噪声,而是让重建帧尽量逼近原始帧的像素分布。

这些工具叠加起来,效果确实扎实。实测在同等主观画质下,VVC 相比 HEVC 平均节省约 35%-40% 码率,极端内容(屏幕内容、纹理密集场景)下可以到 50% 以上。这个数字是编码领域很少见的大跳级,因为每一代标准的码率压缩率提升通常在 25% 左右,VVC 直接干到了接近两倍。

2.3 代价与门槛:为什么“先进”不等于“普及”

VVC 的编码复杂度大概是 HEVC 的 10 倍左右,解码复杂度则是 2-3 倍。很多人觉得“编码慢没关系,反正可以离线编,解码快就行”,但直播和实时通信场景完全不一样——那要求在几十毫秒内完成编码,VVC 的软件编码要在普通 CPU 上做到 1080p 实时,目前依然是很大挑战,需要极强的优化,或者依靠专门的硬件编码器。

还有一个更现实的问题:专利授权。HEVC 当年被专利池搞得七零八落,VVC 的授权模式到现在也没有彻底清晰,这让很多中小厂和开源社区在现场观望。编解码器的标准技术再先进,授权费谈不拢,就只能在巨头的武装里打转,普通团队根本不敢碰。

3. 神经编码,路线变了而不是算法升级

3.1 神经编码的工作原理与 H.266 完全不同

神经编码的底层逻辑是:不做人工设计,改用神经网络学一个压缩函数。传统编码器是“我告诉你规则,你按规则编”,神经编码是“我让你看一百万张图,你总结出怎么编最省”。

具体架构上,目前主流的学习型图像/视频编码框架大致是这样的:编码端先做非线性变换,把像素域映射到隐空间(latent space),然后用超先验网络捕捉隐空间的概率分布,结合上下文模型做熵估计,最后用算术编码把特征量化后的符号压成码流。解码端再通过对称的神经网络反变换重建画面。

这套路子和传统编码器的“分块-预测-变换”完全不同。神经网络不限定块大小,也不区分帧内帧间,它把所有信息建模成一个高维张量,在隐空间里做压缩。更新的视频编码模型还会引入光流网络来估计帧间运动,再用 warping 做运动补偿,相当于把传统编码器里的“运动估计+运动补偿”模块,替换成了“光流网络+可微变形”。

3.2 神经编码目前能做到什么水平

衡量编码效率,最权威的方式是用详细的测试条件下做 BD-Rate 对比,也就是在相同质量下比较码率节省比例。目前发表在 CVPR、ICLR 等顶会上的多个神经视频编码模型,在 PSNR 指标下已经能做到与 VVC 相当、甚至在特定数据分布下超过 VVC。需要说明的是,这些对比通常是在特定测试集上完成的,而不是像标准组织那样在多样化的大规模语料库上做一致性测试,所以参考意义和全面性还需要打折。

这里必须泼一盆冷水:实验室里的“超过 VVC”和工业级的“可用”差距很大。因为码率节省的前提是模型知道测试集的内容分布。你要是用自然风景片训练,突然丢给它一个屏幕录制视频,它的性能会下滑得很厉害。传统编码器就没有这个问题,因为手工设计的工具是通用的,不管画面里是猫还是飞机还是 Excel 表格,它都按同一种规则处理。

3.3 神经编码的复杂度,常被误解

很多人以为“神经网络编码肯定比 VVC 快”,这是个严重的误解。神经编码的编码端推理确实不需要像传统编码那样做海量模式搜索,看起来“一次前向传播就搞定”,但这“一次前向”在 GPU 上可能要跑几百毫秒。

更麻烦的是熵编码环节。传统编码的熵编码是轻量级的查表操作,而神经编码里的概率估计是网络实时预测出来的,解码端每解一个符号就要跑一次网络推理。而且,如果要维持压缩效率,上下文模型需要逐个符号串行解码——这个串行过程是 GPU 最不擅长的事情,时延非常高,并行化极难。这也是为什么神经编码虽然压缩率屡创新高,但离实时视频通话这种场景依然有非常大的距离。

4. 正面碰撞:四个维度的综合对比

我整理了一张对比表,按实际应用视角去比较这两个路线:

维度H.266/VVC神经编码
压缩效率相比 HEVC 省 35%-50%,稳定可预期特定内容/特定模型下与 VVC 打平或略胜,但泛化性弱
编码复杂度极高(HEVC 的约 10 倍),需硬件或强优化GPU 推理,不适合 CPU;熵编码串行化,时延高
解码复杂度相对可控(HEVC 的 2-3 倍),硬件化潜力大解码也是神经网络,算力需求高,移动端暂不现实
标准化与生态ITU/ISO 标准产物,专利授权待明确,生态尚在建设无统一标准,各团队自研架构,模型互不兼容
实时性靠硬件编码器可满足直播/通话场景目前实时低延迟场景基本不可行
泛化性内容自适应,任何画面都能编对训练分布外的内容稳定性差

单拎任何一个维度做“谁更先进”的结论,都容易跑偏。压缩率上神经编码已经逼近甚至局部超越 VVC,但这是靠巨大的算力代价和内容特化换来的;通用性和生态成熟度上,VVC 又完全碾压神经编码。

我实话讲,单看已经达到的水平,VVC 是目前唯一能真正商用的“下一代标准”——注意是“能商用”,不是“已普及”。神经编码更像是从另一个维度杀出来的潜在变量,它证明了一件事:编码工具可以不再是手工设计的。

5. 真正决定胜负的,是标准组织的“兼容并蓄”

5.1 神经编码正在被标准化

很多人不知道,ISO/IEC 的 MPEG 和 ITU-T 的 VCEG 一直在关注神经编码的进展。MPEG 甚至在近期启动了神经压缩标准的探索——试图定义一种统一的神经编码接口,不强制具体模型结构,而是规定模型部署的框架和码流格式。这意味着“神经编码”并不一定永远是各玩各的,它正在被标准化的“安全网”接住。

这一块的意义相当深远。一旦有了标准接口,不同厂商训练的模型就能在同一容器里部署,播放端只需要支持“神经解码加速模块”就能解码不同模型的码流。这和当年 H.264 统一解码兼容是一个逻辑,只不过把“解码器芯片”换成“通用模型容器”。

5.2 下一代真正的形态:基座仍是传统框架

这里是我个人这几年观察下来最有信心的判断:下一代视频编码不会是“纯神经”,而是“传统框架+神经增强模块”的混合体。这不是谁替代谁的问题,而是分工问题。

传统编码框架里,块划分、运动补偿、变换、量化这套结构经历了三十年验证,鲁棒性极强。问题在于:人工设计的工具无法精准地适配任意内容,而神经网络恰恰可以在细节局部做“超分辨率增强”,或者在决策环节做“率失真优化加速”。

典型案例就是 JVET(H.266 的制定团队)已经在探索的 NNVC(神经网络视频编码)方向——保留 VVC 的块结构和运动补偿,但把环路滤波替换成神经网络滤波器,或者在帧内预测时用神经网络辅助生成参考像素。这样做的好处是:编码复杂度只增加 10%-20%,但压缩效率可以再提升 15%-20%。而且由于基础结构还是标准框架,兼容性没问题,你即使用神经增强模块解码,也可以退回纯传统解码器——这就是一种向下的兼容性保障。

5.3 “先有鸡还是先有蛋”的生态问题

为什么 H.266 到现在都没有全面普及?说白了,不是技术不行,是生态没转起来。编码器做好了,但没有设备硬件解码,就没有终端会播放;没有播放需求,就没有内容方愿意用;内容方不用,芯片厂就没有动力把解码器做进 SoC。这是一个典型的先有鸡还是先有蛋的问题。

神经编码要走进这个生态,除了要解决算力和泛化,还要面对一个更根本的挑战——模型持续更新的问题。传统解码器一旦定义好,几十年不用改;神经模型要是更新了版本,旧码流还怎么解?这需要通过“模型版本管理”和“码流内嵌模型描述”来兜底,而不是像传统标准那样“一次性冻结”。

所以我倾向于这样看:未来两三年内,H.266 一定会在大规模视频分发场景里逐步落地,因为它的硬件解码方案已经趋于成熟;而神经编码会在特定垂直场景爆发,比如视频云转码、影视文件压缩、医学影像存储、监控视频归档这些对编码耗时不敏感的离线场景。

6. 给工程实践者的选型建议

如果屏幕前的你正准备在项目里用上“下一代编码”,我根据自己的实际踩坑经验给几条判断建议:

第一,视频内容以自然场景为主、有离线批量处理需求,可以开始试神经编码模型。选模型时别看论文里的 PSNR 和 BD-Rate 数字,直接拿 500 张与你真实业务数据分布接近的图片做一次主观对比测试,“眼见为实”永远是第一标准。

第二,做实时通话、直播、会议这类延迟敏感型业务,短期之内不要指望纯神经编码方案。老老实实跟硬件平台确认支持 AV1 和 H.266 的时间表,在硬件成熟之前,HEVC 依然是性价比最高的选择——这个话说出来可能不好听,但现实就是如此。

第三,做视频编辑、非编系统、后期制作工具,需要灵活逐帧访问,H.266 的帧内编码和随机访问能力依然不可替代。神经编码目前对随机访问、帧级编辑的支持非常弱,基本是整段序列一起压缩,这一点在实际剪辑流程里往往是致命的。

第四,如果你是独立开发者或小团队,别轻易押注任何一个标准去做深度定制。保持解码器抽象、编解码参数可配置,让核心业务逻辑与具体 Codec 解耦——这一条经验我在 AV1 和 HEVC 切换上吃了不少亏,等到 H.266 成熟时能换得更加从容。

再分享一个实操细节:做神经编码部署时,千万别忽略量化导出的环节。很多模型在 PyTorch 里 PSNR 很高,一旦转成 TensorRT/ONNX 并做低比特量化,重建画面立刻出现色偏或块状伪影。这在传统编码器里不会遇到,所以在搭神经编码工程链路时,建议在模型训练阶段就用模拟量化,导出后再做一次验证集全量回归。

7. 最后的个人观察

回头看那个gbk codec的报错,其实挺适合做这次讨论的注脚——字符集不同,导致同样的字节被人为地解错。视频编码领域也处于类似的“标准冲突期”:H.266 的标准很严谨,但它是在旧范式的延长线上;神经编码虽然打破了很多限制,但距离“可用的标准”还有很长的路要走。

我个人在实际实验里最大的感受是:不要用“谁替代谁”的思路去理解这件事。传统编码和神经编码不是两个赛道的竞争对手,而是同一道工序里的两个环节。真正能做出来的下一代视频编码系统,大概率是让 VVC 的稳健结构做骨架,让神经网络在骨架上的关键节点提供“读不懂规则时用经验补位”的能力。

最后再分享一个我在对比测试中的发现:单独测 H.266 和单独测神经编码,都各有亮点,但把它们串成一个混合管线——用神经网络后处理增强 VVC 解码画面——在相同码率下,主观画质提升反而比单纯替换编码器更明显。这个小实验给了我一个很强烈的启示:下一代 Codec 的竞争,比拼的不是某一个单一技术的极限,而是把现有技术重新组合的能力。这大概才是这场竞争里最值得关注的部分。