6.1 去块滤波


6.1 去块滤波

本节摘要:块效应是块编码框架的原罪——每个块独立预测与量化,边界两侧的误差不连续,人眼对这种"接缝"极其敏感。去块滤波(DBF)在重建环路上第一顺位工作:判断哪条边界真有痕迹、痕迹多强,再对边界两侧像素做有分寸的低通平滑。本节讲清VVC去块的判定规则、滤波器设计与执行顺序,并回答"为什么它永远排第一"。

第6章第一站。先处理最扎眼的块边界,6.2节再用SAO与ALF收拾更细腻的统计性痕迹。

块效应从哪来

复盘一下生产链路:第2章把画面切成大小不一的块,每块独立预测、独立量化(第5章)。量化是"有损"的那一刀——每块的残差被不同强度地舍入,重建后边界两侧的误差不连续:一侧偏高、一侧偏低,肉眼看到一条明暗接缝。QP越高(第5.2节),舍入越狠,接缝越亮。

还有一个放大器:边界两侧的块往往用不同预测模式(一侧帧间一侧帧内),预测起点本就不同,误差落差更大。

判定:不是每条边界都要熨

帧里大量的"块边界"落在平坦区域或本来就有真实边缘的地方——乱熨会毁掉真边缘(过度模糊)。所以去块滤波分两步走:先判定,后滤波

判定看三样东西

  1. 边界两侧块的编码信息——两侧是否至少一方采用帧内、残差是否存在、QP多大(QP大说明量化狠、痕迹可能重);
  2. 边界两侧像素梯度的绝对值——跨边界像素差大,可能是真边缘(不熨)或重痕迹(要熨),需要结合下面的相对量判断;
  3. 跨边界梯度与沿边界梯度的比值——真边缘通常沿边界方向也连续,而块痕迹只在跨边界方向跳变。用β(阈值族)与α(阈值族)两组参数把边界分档,决定"不滤波/弱滤波/强滤波"。

VVC的判定简化:HEVC要为每条边界查多组阈值表,VVC把决策逻辑重排,减少了分支与查表次数——解码端"判定"本身的算力被显著压缩(这属于第9.3节复杂度账里少有的"做减法"条目)。

滤波:有分寸的低通

判定通过后,对边界两侧各若干像素做低通平滑。VVC的设计要点:

  • 亮度滤波器抽头更长:HEVC最多触及边界两侧各4个像素,VVC扩展到更多像素——因为VVC的块更碎(QTMT),痕迹更细密,需要更宽的熨斗;
  • 强度分档:弱滤波只动最贴近边界的像素(轻度接缝),强滤波动得更宽(重度接缝),档位由判定阶段给出;
  • 色度单独一套:色度分辨率低(4:2:0)、人眼敏感度不同,色度去块规则更保守;
  • 并行受限的串行本质:滤波会修改像素,而修改结果影响下一条边界的判定——所以去块天然串行。标准用CTU行错峰(第2.2节)让它与解码流水线重叠,这也是VPDU约束在滤波环节的投影。

图解:判定与分档

图解:判定与分档

为什么去块永远排第一

滤波顺序是去块 → SAO → ALF(6.2节),这个顺序不可调换,原因有两层:

其一,污染源要最先清除。块边界的不连续如果不先熨平,SAO的分类(按像素特征归类)与ALF的滤波都会把"接缝"当成内容特征来处理,轻则浪费算力,重则沿接缝产生二次伪影。

其二,算力预算的排布。去块判定便宜、覆盖全图;SAO中等;ALF最贵但逐块可选。把便宜的放前面做粗筛,后面的贵工具只在确有残留痕迹的块上启用——这又是一套"漏斗"(第4.3节的漏斗思想在此重现)。

💡 历史注脚:去块滤波从H.263时代后期进入标准,二十多年来一直在"判定规则"上做精细化而非"滤波器本身"上动刀——因为滤波器本质就是低通,没有太多花样;难的是判断哪里该熨哪里不该。理解了这一点,看VVC去块的改动清单(判定简化、抽头加长)就不会觉得"平淡"——它恰恰说明这个工具已经高度成熟。

实战视角:什么时候你会"看见"去块

调试或评估中直接观察去块效果的三种场合:

  1. 高QP低码率流:把9.2节式的实验拉到高QP段,关掉去块对比主观质量——块效应立刻铺满画面,这是验证滤波开关最粗暴有效的实验;
  2. 屏幕内容:文字边缘本来就是锐利跳变,去块的"真边缘保护"判定在这里最容易误判——第7章SCC对边界处理有专门考虑;
  3. 解码器对齐测试:去块判定依赖大量邻域状态,是实现偏差的高发区;开源解码器的回归测试集里,去块相关用例占比很大(第10.1节会看到实例)。
快速自测(伪代码思路): for 每条块边界: if 两侧都是零残差 且 都用相同帧间模式: 跳过判定,直接不滤波 # 最常见的快速通道 else: 查编码信息 → 计算梯度 → 比阈值 分档 → 执行对应强度低通 用修改后的像素参与下一条边界判定 # 串行性来源

拓展讨论:为什么去块不换成神经网络滤波

第10.4节会讲神经编码的未来,这里先把一个常见追问拦在门口:既然AI滤波研究火热,去块为什么不换成网络?三个现实理由:

其一,覆盖面。去块要处理全图每一条边界,每秒数十帧×数百万像素的吞吐,网络推理的算力预算在端侧不存在(9.3节账本);低通滤波器加查表判定恰好卡在算力甜点上。其二,确定性。去块结果写回参考帧缓存(本章开头的"环路"含义),网络输出的微小不确定会随编码链路累积放大——确定性语法在环路内不是可选项。其三,收益上限。去块对付的块效应机理明确、波形规整,经典低通已接近对症下药;网络的非线性优势在统计性痕迹(振铃、纹理糊化)上更值钱——那是ALF及其后继(第10.4节的神经增强滤波)的战场。

两问两答

问:主观上最明显的去块效果出现在哪?
低码率暗部场景。暗部码字少,量化误差相对幅度大,块边界在平坦暗区最扎眼;开与关去块在这类素材上的AB对比肉眼立辨——也是验证解码链路滤波是否生效的最快素材选择。

问:去块强度有编码器参数可调吗?
有。PPS/条带级的去块参数偏移(8.1节表里的去块参数)允许产品按内容微调——屏幕内容偏保守(护锐利边缘)、自然视频偏积极。但幅度有限,去块的核心行为由标准定死——这是"实现自由度"与"码流一致性"的边界样本。

本节要点回顾

  • 块效应是独立量化的原罪:边界两侧误差不连续,QP越高越明显,预测模式差异会放大它;
  • 判定重于滤波:三查(编码信息、绝对梯度、梯度比值)区分真边缘与块痕迹,VVC把判定分支精简;
  • 抽头加长是VVC主变化:块更碎,痕迹更细密,熨斗要更宽;
  • 顺序不可调换:先清除结构性接缝,SAO与ALF才能正确工作;
  • 去块高度成熟:二十多年演进集中在判定规则,工具本身没有悬念。

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