4.2 运动矢量预测对照


4.2 运动矢量预测对照

本节摘要:运动矢量本身也要占码率,所以四代标准都先给候选再编码差值:H.264 用中值预测器,HEVC 用空间加时间合并的 AMVP 与 Merge 双轨,AV1 则从八个投影候选排序取近邻,并配套动态参考运动场。本节对照三套"预测的预测",并解释为什么矢量信令的效率直接影响低码率场景的画质。

一、为什么矢量信令值得单独一章

低码率场景有个反直觉现象:码率预算里,运动矢量信息占比会明显上升,甚至逼近残差本身。画面越糊、块越大,"从哪搬来"的描述就越相对昂贵。矢量信令每省一个符号,省下的比特能转化成一圈更精细的残差编码——所以各家标准都在做"预测的预测":先用便宜的方式猜出这个块大概往哪动,再只编码猜错的差值。

三套机制的对照如下:

机制 H.264 HEVC AV1
空间候选 中值预测(左/上/右上) AMVP:邻块矢量按规则竞争 8 个投影候选,按块尺寸加权排序
时间候选 无标准机制 Merge/AMVP 含时域并置块候选 基于参考帧运动场的投影(MFMV)
差值编码 MVD 直接编码 MVD 编码,精度可选 NEWMV 残差 + 全局/ hints
零成本候选 Merge 直接继承 NEARESTMV/NEARMV/GLOBALMV 系列直接继承

HEVC 的双轨值得展开一句:AMVP 给"矢量加小差值"的块用,Merge 干脆让当前块整体继承邻居的运动信息(含参考帧选择),一个 Merge 索引两三个比特就解决整块信令。AV1 没有照搬 Merge,而是把候选槽位固定为"最近、次近、全局"三档加时间投影,块级从槽位里选——检索结构不同,但"用索引代替数值"的省信令思想一脉相承。

二、AV1 的候选构造:投影与排序

AV1 为每个块构造最多八个候选矢量,来源分三层。第一层是空间投影:把左、上、右上、左上邻块在当前参考帧上用过的矢量"投影"过来,按投影后覆盖面积的相似度排序。第二层是时间投影:查参考帧同位置块的运动信息,按参考帧距离做缩放对齐(这就是 MFMV 的块级用法)。第三层是零矢量与全局运动矢量兜底。

# AV1 候选排序要点(伪代码) candidates = [] for nb in [left, above, above_right, upper_left]: v = nb.mv_for_this_reference # 邻块对该参考帧用过的矢量 score = projected_overlap(v, nb, cur_block) candidates.push(v, weight=score) candidates.sort_by_weight_desc() candidates.deduplicate() near = candidates[0] # NEARESTMV 槽 near2 = candidates[1] # NEARMV 槽 # 块级信令: 从 {NEAREST, NEAR, GLOBAL, NEW+delta} 中按率失真挑选

对照 HEVC AMVP 的"邻块竞争"规则,AV1 的投影排序有两点差异:一是按参考帧逐个构造候选(每个参考帧一份列表),HEVC 同样按列表维护但规则更耦合;二是全局运动矢量参与候选,固定机位内容(监控、会议、录像课)大量块直接命中 GLOBALMV,信令接近于零。VVC 在这条线上再进一步:SMVD 用双向对称矢量把两份矢量信令合成一份,DMVR 在解码端做微搜索精修——都是"少写矢量、多算矢量"的思路延续。

三、全局运动与 warped motion:矢量信令的"批发"模式

逐块写矢量是"零售",整帧写一个全局模型是"批发"。AV1 支持全局运动参数(平移、旋转缩放、仿射三档),帧头声明整帧共用的运动模型,块级只需一个标志位选择"用全局还是用自己的"。对固定机位与缓慢摇镜内容,批发的收益立竿见影;局部还可以在块级细化 warped motion,让大块带着自己的仿射参数去预测——透视变化的广告牌、滚动的网页,都因此受益。

对照:HEVC 没有帧级全局运动的标准机制(部分靠长期参考帧间接实现);VVC 的仿射运动补偿在块级全面铺开(四参数、六参数模型),把"批发"下放为"分布式零售"。两者的取向不同:AV1 省的是信令,VVC 拼的是预测精度,这又是"省着写"与"算得准"的路线分野。

⚠️ 调参提示:全局运动与 warped motion 对屏幕录制、固定机位内容收益大,但对密集前景遮挡内容可能引入形变伪影;SVT-AV1 的高速度档位会自动收缩这类工具的使用,弱网直播不必强开。

常见追问

问:为什么不让解码器也做运动搜索来省信令?
答:因为标准必须保证确定性——解码端任何"搜索"都必须是所有实现可逐位复现的。VVC 的 DMVR 是这条路线的边界示范:它把解码端微搜索标准化(双方按相同规则微调),既拿到了算力换信令的收益,又保住了确定性。AV1 的 MFMV 同理:运动场投影规则写死在标准里,谁的实现都算出同一个结果。

问:运动矢量精度现在是多少?还会更细吗?
答:亮度分量已到四分之一像素插值加高精度矢量表达(八分之一像素级别的矢量分辨率)。再细的插值收益快速衰减,而插值滤波的算力与缓存成本线性上涨——精度军备赛基本到顶,各家转向矢量预测与复合策略的精细化。

问:快速运动场景矢量预测为什么容易失效?
答:候选机制假设"邻居与我相似",快速运动加遮挡恰恰破坏这个假设。此时编码器更依赖 NEWMV(完整矢量加差值),信令上升、收益下降——这也是高运动内容在 7.1 节里对"省三成"数字贡献偏低的原因之一。

本节要点回顾

  • 信令经济学:低码率下矢量信令占比上升,省矢量就是省画质,各家机制殊途同归于"预测加差值"。
  • 候选构造对照:H.264 中值、HEVC 竞争加 Merge、AV1 投影排序加时间场、VVC 对称与解码端精修。
  • 批发与零售:帧级全局模型是批发,块级仿射是零售,AV1 与 VVC 在这条线上取向相反。
  • GLOBALMV 的隐藏价值:固定机位内容大量块信令趋近于零,是监控与会议场景的实效增益。

再补一条排障经验:运动矢量预测链的"继承-缩放-裁剪"三步在跳帧参考(frame skipping)场景最易出错——继承自隔层参考块的 MV 要按时间距离缩放,缩放后超出当前参考帧有效范围的分量再裁剪到边界;老编码器在缩放取整上各不相同,导致同一段素材在两家编码器下预测链发散、码率差出百分之五以上。排查这类差异的抓手是 dump 预测块的运动估计搜索起点:若两家起点系统性偏移,问题在预测链而不是搜索算法本身。对照测试时先固定相同的参考结构(same L0/L1 布局),再谈预测器对照,否则结论会被参考结构差异污染。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U