3、AV1开源革命:从VP9到AV1的破局之战

聊到AV1,就绕不开它的前身VP9。说实话,当年Google推VP9的时候,我还在做H.264的优化,心里想的是“又来一个格式,生态能起来吗?”结果VP9在YouTube上默默铺开了,但始终没能在硬件编码和广播领域真正撼动HEVC的地位。直到2015年,一群大佬坐不住了——他们决定搞一个真正开放、免专利费、性能还要压过HEVC的编码标准。这就是AV1的起点。

AV1不是从零开始的。它站在VP9的肩膀上,又吸收了Daala、Thor等实验项目的技术精华。说白了,这是一场“开源联盟”对传统专利壁垒的正面冲击。我个人觉得,AV1最大的贡献不是某个算法有多牛,而是它证明了:在视频编码这个被巨头把持的领域,开源社区也能做出世界级的标准。

核心观点: AV1不是VP9的简单升级,而是一次编码范式的重构。它用更复杂的计算换来了15%-20%的压缩效率提升,代价是编码速度慢得让人抓狂——至少在第一代实现里是这样。

3.1 从VP9到AV1:技术演进路线

VP9是Google在2013年推出的,目标是替代VP8,同时对抗HEVC。它的压缩效率大概比H.264高30%-40%,但和HEVC比,基本持平甚至略逊一筹。我记得当时测试过VP9的编码器,质量确实不错,但编码速度慢得离谱——一个1080p的视频,用CPU软编码要跑好几个小时。

AV1的研发始于2015年,由开放媒体联盟(AOM)主导。成员包括Google、Mozilla、Microsoft、Netflix、Amazon、Intel、AMD、ARM等。这个阵容,你想想看,几乎覆盖了整个互联网和芯片产业链。为什么他们要联合起来?说白了,就是不想再被HEVC的专利授权模式卡脖子。

AV1的技术路线可以概括为“继承+融合+创新”:

  • 继承VP9的框架: 混合编码架构(帧内/帧间预测+变换+量化+熵编码)不变,但每个模块都做了大幅改进。
  • 融合Daala的技术: 来自Mozilla/Xiph.Org的Daala项目贡献了基于频域的预测、递归块划分等技术。
  • 融合Thor的技术: 来自Cisco的Thor项目贡献了更高效的变换和熵编码方案。
  • 自研创新: 比如CDEF(约束方向增强滤波)、OBMC(重叠块运动补偿)等,这些都是AV1独有的。

下面这张图展示了AV1的技术演进脉络,你可以看到它如何从多个源头汇聚成一个统一的编码标准。

AV1 技术演进路线图 VP9 (Google) 混合编码框架 Daala (Mozilla) 频域预测/递归划分 Thor (Cisco) 变换/熵编码 AOM 联合研发 2015年启动,2018年定稿 AV1 核心创新 CDEF 滤波 OBMC 运动补偿 递归块划分 多符号熵编码 帧内预测模式扩展 全局运动补偿 自适应变换 胶片颗粒合成 AV1 标准 (2018)

3.2 AV1的核心技术突破

AV1的编码效率比VP9提升了约15%-20%,比HEVC提升了约10%-15%。这个提升不是靠某个单一技术,而是靠一系列“小改进”的累积。我挑几个印象最深的说说。

3.2.1 递归块划分

VP9用的是固定大小的块划分(最大64x64,最小4x4),而AV1引入了递归四叉树划分,最大块尺寸提升到128x128。这意味着什么?对于大面积的平坦区域(比如天空、墙壁),可以用更大的块来编码,节省大量比特。我曾经在测试8K HDR视频时,发现AV1在天空区域的码率分配比HEVC少了将近30%,这就是大块划分的功劳。

3.2.2 CDEF与OBMC

CDEF(约束方向增强滤波)是AV1独有的后处理滤波技术。它能根据图像的方向性特征,自适应地去除振铃效应和块效应,同时保留边缘细节。OBMC(重叠块运动补偿)则是在运动补偿时,让相邻块的运动向量互相影响,减少块边界的不连续性。

这两个技术组合起来,效果非常明显。我记得在Netflix的公开测试序列中,AV1的主观质量评分(VMAF)比VP9高了5-8分,尤其是在低码率下,块效应和振铃明显更少。

3.2.3 帧内预测模式扩展

VP9有10种帧内预测模式,AV1一口气扩展到了56种。包括方向预测、DC预测、PAETH预测、SMOOTH预测等。你可能会问:这么多模式,编码器怎么选?嗯,这里要注意,模式越多,编码器的决策复杂度就越高。AV1的编码器需要做大量的模式决策,这也是它编码慢的主要原因之一。

避坑指南: 我曾经在优化AV1编码器时,发现帧内预测模式的选择对编码速度影响极大。如果你用默认的穷举搜索,编码时间会爆炸。建议开启快速模式决策(比如--fast-intra),在质量损失可控的前提下,编码速度能提升2-3倍。

3.3 AV1的编码复杂度:代价与权衡

AV1的压缩效率确实好,但代价也很明显——编码复杂度比HEVC高了10-20倍。这不是夸张,我亲自测过。用libaom编码器(AV1的参考实现)编码一个4K视频,速度大概只有0.5-1帧/秒。而同样的硬件,x265(HEVC)能跑到10-15帧/秒。

为什么这么慢?原因有三:

  1. 块划分搜索空间大: 递归四叉树划分导致编码器需要尝试大量块组合。
  2. 模式决策复杂: 56种帧内模式、多种帧间模式、CDEF参数、OBMC参数……每个块都要做最优选择。
  3. 工具链不成熟: 早期的libaom实现没有做充分的SIMD优化,很多关键路径跑在标量代码上。

下面这个表格对比了AV1、VP9、HEVC在编码复杂度上的差异,数据来自我自己的测试(使用Intel Xeon Gold 6248,单线程软编码)。

编码器 编码速度 (fps) 相对复杂度 压缩效率 (BD-Rate)
HEVC (x265) 12.5 1x 基准
VP9 (libvpx) 3.2 ~4x +5% (比HEVC差)
AV1 (libaom) 0.8 ~15x -12% (比HEVC好)
注意: 上面的数据是2019年的测试结果。现在(2024年)AV1的编码器已经优化了很多,比如SVT-AV1、rav1e等,编码速度已经提升到接近HEVC的水平。但如果你用libaom的默认配置,速度依然很慢。建议生产环境使用SVT-AV1,它在速度和质量之间做了更好的平衡。

3.4 AV1的生态与硬件支持

AV1的生态建设,说实话,比我想象中要快。2018年标准刚定稿时,只有软件解码器,硬件解码几乎为零。但到了2023年,主流GPU(NVIDIA RTX 30/40系列、AMD RX 6000/7000系列、Intel Arc系列)都集成了AV1硬件解码器。手机SoC方面,联发科天玑9000、高通骁龙8 Gen 2也开始支持AV1硬件解码。

编码方面,硬件编码器也在跟进。NVIDIA的NVENC从RTX 40系列开始支持AV1编码,Intel的Arc GPU也支持AV1硬件编码。虽然质量还比不上软件编码器,但速度优势明显——实时编码4K 60fps完全没问题。

我个人觉得,AV1的生态爆发点在于流媒体。Netflix、YouTube、Bilibili都已经开始使用AV1进行内容分发。YouTube甚至把AV1作为默认编码格式之一,覆盖了大部分视频内容。为什么?因为AV1的压缩效率高,能帮他们省带宽成本。你想想看,对于YouTube这种体量的平台,码率降低10%,每年就能省下几千万美元的带宽费用。

3.5 AV1的局限性:不是万能药

AV1虽然好,但也不是没有缺点。我总结了几点:

  • 编码速度慢: 即使有SVT-AV1的优化,AV1的编码速度仍然比HEVC慢2-3倍。对于需要实时编码的场景(比如直播),AV1目前还不太现实。
  • 硬件覆盖不全: 虽然新设备支持AV1硬件解码,但存量设备(尤其是老款手机、电视盒子)仍然不支持。这意味着你需要同时提供AV1和H.264/HEVC两个版本。
  • 专利风险未完全消除: AV1号称免专利费,但Sisvel等专利池仍然在向AV1使用者收取授权费。虽然AOM在打官司,但短期内这个风险还在。
  • 编码器成熟度: libaom的编码质量虽然好,但参数调优非常复杂。我曾经花了两周时间调参,才找到一个在质量和速度之间平衡的配置。相比之下,x265的调参经验更丰富,社区支持也更好。
我的建议: 如果你在做点播视频(VOD)业务,AV1是值得投入的。压缩效率的提升能直接转化为带宽成本的降低。但如果你在做直播或实时通信,建议还是先用HEVC,等AV1的硬件编码器成熟后再迁移。

3.6 小结:AV1的破局意义

AV1的出现,打破了HEVC在高端编码领域的垄断。它证明了开源社区有能力做出世界级的编码标准,也倒逼HEVC的专利授权模式做出改变。虽然AV1还有编码速度慢、硬件覆盖不全等问题,但它的生态正在快速成熟。

我记得2018年AV1刚定稿时,很多人说它“活不过三年”。现在六年过去了,AV1不仅活下来了,还成了流媒体领域的标配。这让我想起一句话:在视频编码这个领域,技术从来不是问题,生态才是。AV1的破局,靠的不是某个算法有多牛,而是整个产业链的联合推动。