编解码#
混合预测框架#
去除信号的冗余(空间冗余、时间冗余、信息熵冗余、视觉冗余)(前三者都是去相关性)
预测(帧内/帧间) → 变换/量化 → 熵编码 → 环路滤波/后处理
减少空间/时间冗余 -> 能量集中 压缩效率 ->统计冗余->提升主观/客观质量
编码器端结构#
原始帧 -> 预测 (帧内 / 帧间) -> 残差计算 (原始块 - 预测块) -> 变换 (DCT/整数变换) -> 量化 -> 熵编码 (CAVLC / CABAC) -> 码流输出
同时,重构环路
量化后的残差 -> 反量化 -> 逆变换 -> 加上预测块 -> 重构块
重构块进入 环路滤波 -> 存入参考帧缓冲区,用于后续帧间预测
各模块作用#
预测 (Prediction)
帧内预测 (Intra Prediction):利用同一帧中已编码的邻近像素预测当前块(去除空间冗余)。
帧间预测 (Inter Prediction):利用参考帧 + 运动矢量,做运动补偿预测(去除时间冗余)。
变换 (Transform)
- 把残差信号从时域转换到频域(通常基于整数近似 DCT/ DST),集中能量。
- 高频分量往往较小,便于量化压缩。
量化 (Quantization)
- 控制比特率和失真:大的量化步长 → 压缩率高但质量差。
- 量化参数 (QP) 是码率控制的关键。
熵编码 (Entropy Coding)
- 无损编码步骤,用统计规律减少码长。
- H.264: CAVLC/CABAC,H.265/266: CABAC 为主。
环路滤波 (Loop Filtering)
- 在编码端对重构块进行滤波,保证预测参考帧质量。
- 否则编码误差会逐帧累积。
- 常见工具:去块效应滤波 (DBF)、样值自适应滤波 (SAO)、自适应环路滤波 (ALF)。
码率控制 (Rate Control)
- 通过调整量化参数、预测模式选择,保证在目标比特率下尽可能保持画质。
帧内预测#
| 标准 | 块结构 | 模式数 | 新增工具 | 特点 |
|---|---|---|---|---|
| H.264 | MB (16×16) | 9 (8个方向 + DC)(4×4) + 4 (16×16) | 无 | 模式少,效率有限 |
| H.265 | CTU (≤64×64) | 35(33角度 + DC + Planar) | 角度更细,参考像素滤波 | 灵活性强,效率高 |
| H.266 | CTU (≤128×128) | 35 + MIP + CCLM + ISP + Wide-angle | MIP, CCLM, ISP | 精度更高,适应复杂纹理,效率进一步提升 |
H.265
- CTU - > CU/PU/TU
- 参考像素滤波
H.266
MIP (Matrix-based Intra Prediction)
- 用一个小的预测矩阵映射参考像素到当前块。
- 适合纹理复杂的图像,尤其小块。
- 本质是线性回归 / 小型神经网络风格的预测器。
CCLM (Cross-Component Linear Model)
- 在 YUV 色度预测中,引入 Y→UV 的线性模型:
- 利用亮度与色度相关性,提高色度预测精度。
Intra Sub-partition (ISP)
- 将一个大块划分为多个小条带,分别做帧内预测。
Wide-Angle Intra Prediction
- 增加了倾斜角度范围,处理极端方向纹理更好。
帧间预测#
| 标准 | 单元 | MV 精度 | 参考帧 | 主要工具 | 新增工具亮点 |
|---|---|---|---|---|---|
| H.264 | MB ≤16×16 | 1/4 | ≤16 | 可变块划分,多参考帧(MRMC),帧场自适应预测 (PAFF/ MBAFF) | 块级预测为主 |
| H.265 | CTU ≤64×64 -> CU/PU | 1/8 | 多 | Merge、AMVP、AMP | 更灵活、更高效 |
| H.266 | CTU ≤128×128 | 1/8 | 多 | Affine、Geo、SbMV、BDOF、DMVR | 复杂运动建模,更接近真实运动场景 |
H.264(AVC)
- 帧场自适应预测 (PAFF/ MBAFF)
H.265(HEVC)
非对称划分 AMP
合并模式 (Merge Mode)
- 当前块直接复用相邻块的运动信息,无需额外编码 MV。
AMVP (Advanced Motion Vector Prediction)
- 运动矢量预测增强:候选集合更丰富(相邻块、参考帧等)。
Skip 模式
- 残差直接为 0,仅传运动信息。
双向预测优化
- 增强 B 帧的前后参考帧利用率。
H.266(VVC)
Affine Motion Compensation (仿射运动补偿)
Geo (Geometric Partitioning Mode, 几何划分模式)
- 把一个块分成两部分,每部分用不同的 MV 预测。
Sub-block Motion Vector Refinement (SbMV refinement)
- 在一个 PU 内允许子块 (如 4×4) 做 MV 微调。
Bi-directional Optical Flow (BDOF)
- 在双向预测时,对前后参考帧做像素级插值,模拟光流效果。
Decoder-side Motion Vector Refinement (DMVR)
- 解码端对 MV 做进一步搜索和优化。
优势:减少编码端计算量,同时提高预测精度。
- 解码端对 MV 做进一步搜索和优化。
预测模式选择原理#
编码端遍历候选模式 -》〉每种模式生成残差 -》〉估计比特消耗与失真 -》〉计算率失真代价(RD cost)
H.264
- 帧内预测:直接测试所有候选模式
- 帧间预测:不同参考帧、MV、块划分进行穷举或快速搜索
H.265
- 候选模式筛选:基于相邻块的预测模式+代价快速估计,挑选候选
- 快速率失真估计:先用SATD粗估计,再对少量模式做精确 R-D 计算
- 合并模式(Merge Mode):如果直接复用邻居MV信息代价很低,就不测试其他复杂模式
H.266
- 多阶段候选模式筛选:先快速判断块特性(平坦、纹理、边界)-》决定是否启用MIP、ISP等特殊模式
- 机器学习/启发式规则:使用简单的模型来预测合适模式
- 解码端自优化:部门MV优化下放到解码端,减少编码器搜索压力(如DMVR)
变换#
| 标准 | 变换类型 | 块大小 | 新增/改进工具 | 特点 |
|---|---|---|---|---|
| H.264 | 整数 DCT | 4×4,8×8 | 无 | 简单,块小,精度有限 |
| H.265 | DCT + DST | 4×4 ~ 32×32 | DST(4×4 Intra) | 大小可变,效率更高 |
| H.266 | DCT + DST + MTS + LFNST | 4×4 ~ 64×64 | MTS、LFNST | 多核选择,自适应性强,复杂度高 |
H.266
MTS (Multiple Transform Selection,多变换选择)
- 每个残差块不仅可以用 DCT,还可以候选 DST、其它近似变换。
- 编码器通过率失真优化 (RDO) 选择最佳变换核。
- 优势:更好适配不同残差分布(水平、垂直、斜向)。
LFNST (Low-Frequency Non-Separable Transform, 低频非分离变换)
- 在低频区域再做一次小型 2D 变换,提升能量压缩效率
- 特别适合帧内预测后的残差。
MIP + LFNST 联动:MIP(矩阵预测)生成的残差常带方向性,LFNST 可以进一步压缩冗余。
- MIP(矩阵预测)生成的残差常带方向性,LFNST 可以进一步压缩冗余
QP设置#
| 标准 | QP 范围 | 量化特性 | 新增工具 | 特点 |
|---|---|---|---|---|
| H.264 | 0 ~ 51 | 整数量化,亮度/色度 QP offset | 无 | 简单,全局控制 |
| H.265 | 0 ~ 51 | 整数量化,大块支持 | Scaling List,Chroma QP mapping | 视觉优化,灵活性更高 |
| H.266 | 0 ~ 63 | 更精细控制,自适应增强 | MTS/LFNST 适配,非对称量化,改进 Scaling List | 视觉感知更好,支持超高清 |
熵编码#
| 标准 | 方法 | 特点 | 改进点 |
|---|---|---|---|
| H.264 | CAVLC + CABAC | CAVLC 简单,CABAC 高效 | 引入上下文自适应算术编码 |
| H.265 | CABAC (唯一) | 压缩效率更高,复杂度高 | 新扫描顺序,更多上下文,支持并行 |
| H.266 | CABAC (优化版) | 压缩率更高,复杂度降低 | 上下文精简,语法分组,适配新工具,增强并行化 |
| 方向 | 代表工作 | 方法 | 特点 |
|---|---|---|---|
| 自回归 | PixelCNN, Mentzer 2018 | 逐像素建模 | 精度高,速度慢 |
| Hyperprior | Ballé 2018 (ICLR) | 超先验估计方差 | 主流方法,高效 |
| Context+Hyper | Minnen 2018 (NeurIPS), Cheng 2020 (ICLR) | 混合建模 | 高精度,兼顾并行 |
| 视频压缩 | DVC 2019, RLVC 2020, FVC 2021 | 时空上下文概率建模 | 面向视频,效率更高 |
滤波#
| 标准 | 工具 | 作用 | 特点 |
|---|---|---|---|
| H.264 | DBF | 去除块效应 | 简单有效,减少方块感 |
| H.265 | DBF + SAO | 去块 + 补偿环状效应 | 质量提升显著,增加少量比特开销 |
| H.266 | DBF + SAO + ALF (+LMCS) | 多级滤波,适配复杂场景 | 压缩效率和主观质量进一步提升 |
H.264
- 去块效应滤波 (Deblocking Filter, DBF)
H.265
样值自适应补偿滤波 (Sample Adaptive Offset, SAO)
- Edge Offset (EO):检测边缘方向(水平/垂直/对角),对特定边缘像素做补偿
- Band Offset (BO):针对像素强度区间做偏移修正。
H.266
自适应环路滤波 (Adaptive Loop Filter, ALF)
- 基于 Wiener 滤波;每个CTU可选择不同滤波模板;可传输参数
LMCS (Luma Mapping with Chroma Scaling)
- 非线性映射调整亮度和色度;主要用于 HDR 视频
并行#
| 标准 | 并行化工具 | 粒度 | 优点 | 缺点 |
|---|---|---|---|---|
| H.264 | Slice | 粗(帧/片段) | 简单 | 滤波跨边界受限 |
| H.265 | Tiles, WPP, Slice Segments | 中(行/块/Tile) | 并行效率高,支持 4K/8K | 边界轻微损失 |
| H.266 | Tiles, WPP, Subpictures | 更细(子图像级) | 高并行 + 独立解码/传输 | 实现更复杂 |
