3. H265核心技术解析
H.265(HEVC)相比 H.264 能在同等主观质量下节省约 40%~50% 码率,其根本原因不是某一项单点技术,而是六个核心环节协同形成的“压缩流水线”。理解这条流水线的数据流与参数关系,是后续做性能优化和压缩效率调优的前提。本节按编码顺序逐层拆解:四叉树划分 → 帧内/帧间预测 → 变换量化 → 环路滤波 → 熵编码。
一、四叉树划分:编码单元的“弹性网格”
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、上下文模型 | 上下文更新、并行化 |
五、案例:一次 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。