本节摘要:块效应是块编码框架的原罪——每个块独立预测与量化,边界两侧的误差不连续,人眼对这种"接缝"极其敏感。去块滤波(DBF)在重建环路上第一顺位工作:判断哪条边界真有痕迹、痕迹多强,再对边界两侧像素做有分寸的低通平滑。本节讲清VVC去块的判定规则、滤波器设计与执行顺序,并回答"为什么它永远排第一"。
第6章第一站。先处理最扎眼的块边界,6.2节再用SAO与ALF收拾更细腻的统计性痕迹。
复盘一下生产链路:第2章把画面切成大小不一的块,每块独立预测、独立量化(第5章)。量化是"有损"的那一刀——每块的残差被不同强度地舍入,重建后边界两侧的误差不连续:一侧偏高、一侧偏低,肉眼看到一条明暗接缝。QP越高(第5.2节),舍入越狠,接缝越亮。
还有一个放大器:边界两侧的块往往用不同预测模式(一侧帧间一侧帧内),预测起点本就不同,误差落差更大。
帧里大量的"块边界"落在平坦区域或本来就有真实边缘的地方——乱熨会毁掉真边缘(过度模糊)。所以去块滤波分两步走:先判定,后滤波。
判定看三样东西:
VVC的判定简化:HEVC要为每条边界查多组阈值表,VVC把决策逻辑重排,减少了分支与查表次数——解码端"判定"本身的算力被显著压缩(这属于第9.3节复杂度账里少有的"做减法"条目)。
判定通过后,对边界两侧各若干像素做低通平滑。VVC的设计要点:

滤波顺序是去块 → SAO → ALF(6.2节),这个顺序不可调换,原因有两层:
其一,污染源要最先清除。块边界的不连续如果不先熨平,SAO的分类(按像素特征归类)与ALF的滤波都会把"接缝"当成内容特征来处理,轻则浪费算力,重则沿接缝产生二次伪影。
其二,算力预算的排布。去块判定便宜、覆盖全图;SAO中等;ALF最贵但逐块可选。把便宜的放前面做粗筛,后面的贵工具只在确有残留痕迹的块上启用——这又是一套"漏斗"(第4.3节的漏斗思想在此重现)。
💡 历史注脚:去块滤波从H.263时代后期进入标准,二十多年来一直在"判定规则"上做精细化而非"滤波器本身"上动刀——因为滤波器本质就是低通,没有太多花样;难的是判断哪里该熨哪里不该。理解了这一点,看VVC去块的改动清单(判定简化、抽头加长)就不会觉得"平淡"——它恰恰说明这个工具已经高度成熟。
调试或评估中直接观察去块效果的三种场合:
快速自测(伪代码思路): for 每条块边界: if 两侧都是零残差 且 都用相同帧间模式: 跳过判定,直接不滤波 # 最常见的快速通道 else: 查编码信息 → 计算梯度 → 比阈值 分档 → 执行对应强度低通 用修改后的像素参与下一条边界判定 # 串行性来源
第10.4节会讲神经编码的未来,这里先把一个常见追问拦在门口:既然AI滤波研究火热,去块为什么不换成网络?三个现实理由:
其一,覆盖面。去块要处理全图每一条边界,每秒数十帧×数百万像素的吞吐,网络推理的算力预算在端侧不存在(9.3节账本);低通滤波器加查表判定恰好卡在算力甜点上。其二,确定性。去块结果写回参考帧缓存(本章开头的"环路"含义),网络输出的微小不确定会随编码链路累积放大——确定性语法在环路内不是可选项。其三,收益上限。去块对付的块效应机理明确、波形规整,经典低通已接近对症下药;网络的非线性优势在统计性痕迹(振铃、纹理糊化)上更值钱——那是ALF及其后继(第10.4节的神经增强滤波)的战场。
问:主观上最明显的去块效果出现在哪?
低码率暗部场景。暗部码字少,量化误差相对幅度大,块边界在平坦暗区最扎眼;开与关去块在这类素材上的AB对比肉眼立辨——也是验证解码链路滤波是否生效的最快素材选择。
问:去块强度有编码器参数可调吗?
有。PPS/条带级的去块参数偏移(8.1节表里的去块参数)允许产品按内容微调——屏幕内容偏保守(护锐利边缘)、自然视频偏积极。但幅度有限,去块的核心行为由标准定死——这是"实现自由度"与"码流一致性"的边界样本。