2. 视频编码基础
要理解H.265为何能在同等画质下把码率压到H.264的一半左右,必须先回到视频编码最底层的逻辑:视频的本质是“大量高度相关的连续图像”,而编码的本质是“用尽可能少的比特,描述这些相关性”。H.264与H.265的差异,并不是简单的算法升级,而是对“相关性挖掘粒度”和“描述方式”的系统性重构。
一、编码原理:预测、变换、量化、熵编码四步闭环
无论H.264还是H.265,核心流程都遵循同一套混合编码框架。可以把它理解为一条“压缩流水线”:
- 预测:利用帧内相邻像素或帧间运动补偿,先“猜”出当前块的大致内容,只保留残差。预测越准,残差越小,后续压缩空间越大。
- 变换:把残差从像素域转到频域(如DCT/DST),能量集中到低频系数,便于丢弃人眼不敏感的高频信息。
- 量化:用QP(Quantization Parameter)控制系数精度,这是唯一真正“有损”的环节,也是码率与画质的调节旋钮。
- 熵编码:对量化后的系数和语法元素做无损压缩,H.264用CABAC/CAVLC,H.265用改进的CABAC,上下文建模更精细。
二、从H.264到H.265:关键演进对比
H.264引入的宏块(Macroblock)固定为16×16,所有编码决策都围绕这个“格子”展开。到了4K/8K时代,16×16的粒度太粗,大平坦区域被切碎,运动复杂的区域又不够精细。H.265最根本的变化,是用CTU(Coding Tree Unit)取代宏块,并引入四叉树递归划分。
| 对比维度 | H.264 / AVC | H.265 / HEVC |
|---|---|---|
| 基本处理单元 | 宏块 16×16 | CTU 最大64×64,四叉树递归划分 |
| 最小块粒度 | 4×4 | 4×4(PU/TU可独立划分) |
| 帧内预测方向 | 9种(4×4/8×8) | 35种(含Planar、DC及33个角度) |
| 变换块 | 4×4、8×8 | 4×4至32×32,支持DST |
| 熵编码 | CABAC / CAVLC | 改进CABAC,上下文更精细 |
| 并行工具 | Slice级 | Tile、WPP波前并行 |
| 典型压缩收益 | 基准 | 同画质码率降低约40%~50% |
这张表里最值得关注的是“四叉树递归划分”。它让编码器可以在一帧内同时存在64×64的大平坦块和4×4的细节块,相当于把“格子”变成了“可伸缩的拼图”,这是H.265压缩效率提升的最大来源之一。
三、关键术语:读懂码流与编码器日志
在实际调优中,以下术语会高频出现,理解它们才能看懂编码器日志和码流分析工具的输出:
- CTU / CU / PU / TU:CTU是最大编码单元,CU是编码单元,PU是预测单元,TU是变换单元。一个CTU可按四叉树拆成多个CU,CU再决定PU和TU的划分方式。
- QP(量化参数):范围0~51,值越大压缩越狠、画质越差。H.265还支持CU级QP自适应,让平坦区域用大QP、细节区域用小QP。
- GOP(图像组):以I帧开始、包含若干P/B帧的结构。GOP越长,压缩率越高,但随机访问和抗误码能力越弱。
- Slice / Tile / WPP:Slice用于抗误码,Tile和WPP用于并行编码。WPP(波前并行处理)让多行CTU像波浪一样并行推进,是H.265实时编码的重要工具。
- SAO(样点自适应偏移):在去块滤波后进一步修正像素,减少振铃和带状伪影,是H.265新增的环路滤波工具。
四、典型应用场景:不同场景下的编码取舍
H.264和H.265并非“新的一定全面替代旧的”,实际选型取决于终端兼容性、算力预算和带宽成本:
- 直播与视频会议:H.264兼容性最好,WebRTC生态成熟;H.265可显著降低带宽,但需考虑浏览器和终端解码支持,常配合SVC或ROI编码使用。
- 点播与短视频:H.265是当前主流选择,配合ABR多码率阶梯,可在同等带宽下提供更高清画质。
- 4K/8K超高清与HDR:H.265几乎是必选项,H.264在4K下码率过高,传输和存储成本难以承受。
- 安防监控:H.265可大幅降低存储成本,但需注意低照度噪声对编码效率的影响,常配合智能编码(如背景建模)进一步压缩。
- 移动端离线播放:需权衡解码功耗,H.265硬解已普及,但低端设备仍可能回退到H.264。
五、常见误区与复盘
误区二:QP调低就一定画质好。 QP过低会导致码率暴涨,甚至触发码率控制反噬,出现“越调越糊”的异常。
误区三:忽略解码端成本。 H.265编码复杂度约为H.264的2~4倍,若终端硬解不支持,软解功耗和发热会直接拖垮体验。
复盘时建议建立“内容—参数—收益”的对照记录:同一段素材分别用H.264和H.265、不同GOP和QP组合编码,记录SSIM/VMAF、码率和编码耗时。只有用数据验证,才能把“H.265更省码率”从口号变成可复用的调优经验。
总结来看,H.264到H.265的演进,本质是把“固定格子”升级为“自适应拼图”,把“粗粒度预测”升级为“多方向精细预测”,把“单一熵模型”升级为“更精细的上下文建模”。理解这条主线,后续学习H.265的编码性能优化时,才能知道每一个参数调整究竟在影响流水线的哪一环。