本节摘要:H.264/HEVC 维护最多十六个语义中性的参考帧槽位,靠重排序指令调度;AV1 只给八个槽位,但每个槽位有明确身份——LAST 追近邻、GOLDEN 驻留高质量锚点、ALTREF 承接前瞻插值。数量少了,任务化了,信令反而更省。本节对照两套参考帧管理体系,并拆解 AV1 前瞻编码的独特收益。
H.264 的参考帧列表设计目标是通用性:十六个槽位,编码器可以随意填充与排序,DPB(解码图像缓冲)管理规则灵活。代价是"灵活性要付信令税"——编码器必须在码流里显式描述用了哪个槽、列表怎么重排,解码器要维护一套精细的状态机。HEVC 沿用并细化了这套体系。
AV1 的八个槽位各有名字和任务:LAST、LAST2、LAST3 按时间近远分层承接连续运动;GOLDEN 存放一帧高质量锚点,供场景内长程引用;BWDREF 与 ALTREF2 提供"过去与未来之间的过渡参考";ALTREF 是压轴角色,留待下一段展开。块级信令只需引用槽位名,刷新安排在帧头集中声明,解码器状态机因此简单得多。
| 对照项 | H.264/HEVC | AV1 |
|---|---|---|
| 槽位数量 | 最多 16 | 8 |
| 槽位语义 | 中性,编码器自行约定 | 任务化命名,标准内定义角色 |
| 列表调度 | 显式重排序指令 | 帧头集中声明刷新映射 |
| 单块引用 | 1–2 个列表内索引 | 1 个,或 2 个做复合 |
| 缓存压力 | 大(DPB 深) | 小(8 帧),移动端友好 |
八槽是不是"倒退"?实践给出的答案是否定的:任务化之后,每个槽位的使用模式可预测,编码器不必花大量搜索去验证"第 N 远的帧到底值不值得引用",率失真优化的分支因子小了,信令省了,而压缩收益损失有限。这是"用语义换信令"的又一次胜利——与第 2 章 OBU 对 NAL 的对照同构。
AV1 最有辨识度的参考帧是 ALTREF,它背后的机制叫前瞻编码(lookahead):编码器先缓存若干未来帧(典型十几帧量级),对这段"未来"做低成本的统计分析,然后在时间上做加权滤波,合成一帧"不存在于任何真实时刻"的参考帧——它融合了多帧信息,噪声更低、细节更稳。当前帧相对这帧超参考做预测,残差自然小。
对照其他标准:H.264/HEVC 并不禁止编码器利用未来信息(B 帧就是双向预测),但没有"合成一帧加权虚拟参考"的标准机制。VVC 的 STMVD、DMVR 等工具在矢量层面做精修,与 ALTREF 在帧层面的合成属于不同维度的创新。实践数字上,前瞻机制对固定机位、中低运动内容贡献显著,对高运动与强场景切换内容收益衰减——这也是 AV1 直播场景必须收缩前瞻窗口的原因(第 7 章的延迟账会展开)。
# 前瞻窗口示意(编码器内部视角) 输入序列: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 ... └──────── lookahead ────────┘ 第 5 帧编码时: 1) 对 F5..F16 做快速统计分析(低精度运动估计、方差统计) 2) 按时间权重合成 ALTREF(只存在于编码器构造中) 3) F5 以 ALTREF / GOLDEN / LAST 等为参考做率失真决策 4) 解码端按码流指令重建同样的 ALTREF —— 确定性可复现
注意最后一条:ALTREF 的合成参数写在码流里,解码端能逐位复现这帧虚拟参考——标准对"编码器自由发挥"的边界卡在这里,超前的自由以可复现为前提。
参考帧选好后,"搬运"的精度由亚像素插值决定。H.264 用六抽头滤波支持半像素与四分之一像素精度;HEVC 用八抽头支持半像素与四分之一像素,色度对应更短滤波器;AV1 默认八抽头,并允许在码流里逐块切换多组可切换插值滤波器(switchable interpolation filter),复合预测另有专用滤波器组。可切换滤波的含义是:平滑区域用宽响应滤波器压振铃,锐利边缘用窄响应保锐度,选择权交给率失真优化。
分辨率变化场景还有一层对照:AV1 支持参考帧缩放(reference scaling),参考帧可以用不同分辨率解码后缩放对齐,码率自适应(ABR)类转码不必为每次分辨率切换强制插入关键帧。H.264/HEVC 没有这层内建机制,切换分辨率的代价是一个 IDR 帧的码率尖峰。
💡 阅读开源编码器日志时,"show existing frame"(S 帧)机制值得留意:它让一帧直接复用已解码的 ALTREF 而不重新编码,是"时间换码率"的零成本兑现,直播场景常用来补齐帧率。
问:B 帧(双向预测)在 AV1 里去哪了?
答:AV1 没有沿用"B 帧"这个名物,取而代之的是 ALTREF 与 show_existing frame 机制加块级的双参考复合预测。功能覆盖上等价甚至更强:传统 B 帧只在块级做双向加权,AV1 能在帧级合成加权参考。命名与机制都换了,读其他标准的资料时要做一次"概念翻译"。
问:参考帧池越深画质越好吗?
答:边际递减明显。超过四五层有效参考后,收益基本被信令与缓存成本吃掉——这正是 AV1 只给八槽的底气。工程上真正敏感的不是槽位总数,而是"该更新的槽有没有被正确更新",错误管理比容量管理更常见地引发画质事故。
问:随机访问与参考帧管理怎么互相牵制?
答:关键帧重置参考池,是随机访问的代价锚点。AV1 的缓解手段是恢复点(recovery point)机制:非关键帧也能声明"从本帧起若干帧后状态可完全恢复",播放器据此做更密的 seek 点而几乎不增加码率尖峰——对比 H.264 时代"seek 必等 IDR"的体验,这是被低估的工程改进。
下一节看"搬运的方向"本身怎么省着写:运动矢量预测的候选机制对照。