6.3.3 环路滤波与并行化设计(In-loop Filtering & Parallelism)

去块滤波:做减法

HEVC 的去块滤波在思路上继承 H.264(6.2.4),工程上却做了减法:滤波只作用于 8×8 及以上块的边界,判定逻辑大幅简化。这并非缩水——CTU 时代的大块结构让单位面积内的块边界数量锐减,细粒度滤波的必要性随之下降;简化的判定则天然利于硬件并行实现。

SAO:滤波器家族的新成员

真正的新角色是 SAO(Sample Adaptive Offset,样点自适应偏移) [6]。它的观察视角与去块滤波不同:块效应发生在边界,而 量化失真在整个块内是系统性偏移——量化取整的截断效应会让一片区域的像素值整体偏离原值。SAO 的做法是在去块滤波之后,按类别给像素加一个补偿偏移:

  • BO(Band Offset,带状偏移):把像素值域分为 32 个带,对连续的 4 个带各加一个补偿——修正平坦区域的整体亮度漂移
  • EO(Edge Offset,边缘偏移):按四个方向(0°/90°/45°/135°)比较像素与两邻点的大小关系,分成五类(谷、凹、平、凸、峰)分别补偿——修复边缘处的振铃与模糊

补偿值由编码器统计分析后写入码流。SAO 以极低的比特开销换回可观的客观质量提升(PSNR 增益之外,主观上的 "干净感" 尤其明显),是 HEVC 工具箱中性价比的典范。

并行化:为多核时代补课

H.264 逐宏块串行依赖(帧内预测依赖左邻、CABAC 上下文逐位更新)在多核时代成了扩展瓶颈。HEVC 在规格层面补上了两课 [9]

  • Tiles(瓦片):把一帧划分为若干 矩形独立区域,区域间的预测与熵编码依赖完全切断——每个 Tile 可以交给一个核心独立编解码。代价是 Tile 边界处的压缩效率略有损失
  • WPP(Wavefront Parallel Processing,波前并行处理):不切画面,而是让 CTU 行像波浪一样错开推进——第 n 行的处理比第 n−1 行延迟两个 CTU 起步,这样每个块的左上方依赖都已就绪。压缩效率几乎无损,线程数却可随画面行数扩展

总账:码率减半从何而来

至此可以回答 6.3 开头的问题了。HEVC 相比 H.264 约 40%~50% 的码率节省 [6],是全书各环增量的合力:

来源 机制 贡献性质
大块结构 64×64 CTU 摊薄模式开销(对 4K 平坦区收益巨大) 主力
帧内细化 35 模式 + 参考平滑 显著
运动信息竞争 Merge/AMVP 大幅压缩运动矢量开销 显著
变换扩展 32×32 大变换 + 帧内 4×4 DST(残差特性更贴合) 稳健
熵编码 CABAC 全面取代 CAVLC + 上下文模型优化 稳健
环路滤波 SAO 系统性补偿量化失真 增量

而账单的另一端是 编码复杂度数倍于 H.264、解码复杂度约 1.5~2 倍——4K 时代的每一比特节省,都是算力换的。

从 H.261 到 H.265,H.26x 家族沿着 "框架不变、工具加料" 的路线走了三十年。但 2010 年代的故事还多了一条岔路:专利授权的摩擦,催生了一个走完全不同生态路线的对手。下一节,H.266 与 AV1 同台登场。

Copyright © Since 2021 李述博 (Arikan.Li) , All Rights Reserved all right reserved,powered by GitbookLast Updated: 2026-08-26 08:25:15

results matching ""

    No results matching ""