3. H265核心技术解析

H.265(HEVC)相比 H.264 能在同等主观质量下节省约 40%~50% 码率,其根本原因不是某一项单点技术,而是六个核心环节协同形成的“压缩流水线”。理解这条流水线的数据流与参数关系,是后续做性能优化和压缩效率调优的前提。本节按编码顺序逐层拆解:四叉树划分 → 帧内/帧间预测 → 变换量化 → 环路滤波 → 熵编码。

H.265 编码核心流水线(数据流与反馈环) 原始 YUV帧 四叉树划分 CTU 64×64 CU / PU / TU 深度 0~3 最小 8×8 预测 帧内预测 35 种角度模式 帧间预测 AMVP / Merge 残差 e = 原−预 变换 + 量化 DCT / DST 4×4~32×32 QP 控制步长 量化系数 熵编码 CABAC 上下文建模 算术编码 输出码流 环路滤波(重建参考) 去块滤波 Deblocking → SAO → ALF 滤波后帧存入 DPB,供后续帧参考 重建帧反馈(反量化+反变换) 码流

一、四叉树划分:编码单元的“弹性网格”

H.265 把一帧图像切成固定 64×64 的 CTU(Coding Tree Unit),再以四叉树方式递归划分。每个节点是一个 CU(编码单元),可继续切成 4 个 32×32,直到 8×8 为止,深度 0~3。划分越深,单元越小,预测越精准但头信息开销越大;划分越浅,压缩比高但残差能量大。编码器通过率失真代价(RD Cost)比较“划分”与“不划分”的代价,选择最优深度。

在 CU 之下还有两层划分:PU(预测单元)决定帧内/帧间预测的块形状,帧间支持 2N×2N、2N×N、N×2N、N×N 及非对称 AMP 模式;TU(变换单元)决定变换量化的尺寸,可独立于 PU 再递归划分。这种“预测与变换解耦”的设计,是 H.265 相比 H.264 更灵活的关键。

二、帧内预测与帧间预测:消除空间与时间冗余

帧内预测利用当前帧已重建的相邻像素生成预测块。H.265 提供 35 种模式:Planar、DC 和 33 种角度模式(覆盖更细的角度方向),并支持 4×4 到 64×64 的多种 PU 尺寸。角度模式越多,纹理方向匹配越准,残差越小。

帧间预测利用已编码帧作为参考,核心是运动估计与运动补偿。H.265 引入 AMVP(高级运动矢量预测)与 Merge 模式:前者显式传运动矢量差,后者直接复用邻块运动信息,仅传索引。此外还有 Skip 模式(残差为零)、双向预测以及 1/4 像素精度的插值滤波,显著降低运动信息的比特开销。

三、变换量化:把残差“压扁”

残差块经整数 DCT(亮度 4×4 帧内还可用 DST)变换到频域,能量集中到左上角低频系数,再用量化矩阵除以 Qstep 完成量化。QP 每增加 6,Qstep 翻倍,码率约减半、失真上升。量化是唯一不可逆的有损环节,也是码率控制的核心旋钮。

# x265 中与变换量化相关的常用参数
--qp 28                 # 基础量化参数
--qpmin 0 --qpmax 51    # QP 范围
--rd 3                  # 率失真优化等级,影响划分与模式决策
--tu-inter-depth 2      # 帧间 TU 最大递归深度
--tu-intra-depth 2      # 帧内 TU 最大递归深度
--max-tu-size 32        # 最大变换单元尺寸

四、环路滤波与熵编码:重建质量与码流收尾

环路滤波位于编码环内,滤波结果会作为后续帧的参考,因此必须与解码端完全一致。它包含三级:去块滤波(Deblocking)消除块边界不连续;SAO(样点自适应偏移)按区域补偿像素;ALF(自适应环路滤波)在部分档次中进一步降噪。滤波强度由边界强度、QP 和阈值共同决定。

熵编码采用 CABAC,对语法元素做上下文自适应二进制算术编码。它比 H.264 的 CAVLC 平均再省 5%~15%,但计算复杂度更高,且上下文模型初始化与更新顺序必须严格一致。

核心环节主要作用关键参数/对象优化关注点
四叉树划分自适应块结构CTU 64、深度 0~3、RD Cost划分深度上限、RD 等级
帧内预测消除空间冗余35 模式、PU 尺寸模式数裁剪、快速决策
帧间预测消除时间冗余AMVP、Merge、MV 精度搜索范围、亚像素精度
变换量化能量集中与有损压缩DCT/DST、QP、TU 尺寸QP 分配、TU 深度
环路滤波提升重建与参考质量Deblock、SAO、ALF滤波开关、强度阈值
熵编码无损压缩语法元素CABAC、上下文模型上下文更新、并行化
优化提示:六个环节并非独立。降低划分深度会减少头信息但增大残差,需要更强的量化或滤波补偿;提高 RD 等级能提升压缩效率,但编码耗时可能成倍增长。调参时应以“率失真曲线”而非单一指标判断收益。
常见误区:把“环路滤波”当成后处理。它位于编码环内,滤波后的帧会写回 DPB 作为参考帧,因此滤波参数不一致会直接导致编解码失配(漂移)。另一个误区是只盯 QP 调码率,忽略 TU 深度与 SAO 开关对主观质量的影响。

五、案例:一次 1080p 直播编码的参数复盘

某 1080p30 直播场景,初始配置为 --preset medium --qp 26 --rd 2,码率约 3.2 Mbps,但运动场景出现块效应。复盘发现:TU 深度被限制为 1,导致大块残差量化过粗;SAO 关闭使平坦区域出现带状伪影。调整后:

--preset medium --qp 26 --rd 4
--tu-inter-depth 3 --tu-intra-depth 3
--max-tu-size 32
--sao --deblock 0:0
--bframes 4 --ref 4

结果码率降至约 2.6 Mbps,运动区域块效应明显减轻,编码耗时增加约 18%。这说明:压缩效率的提升往往来自“划分—变换—滤波”三者的联合调优,而不是单独压低 QP。