视频压缩原理:从像素冗余到码率控制
视频编码的本质是去除冗余信息。一段未经压缩的 1080p30 视频,每秒数据量约为 1920×1080×3×30 ≈ 186 MB(以 RGB 8bit 计),一分钟即超过 11 GB。而 HEVC/H.265 能将同等画质的码率压缩到原始体积的 1/100~1/200,靠的就是系统性地消除四类冗余:空间冗余、时间冗余、统计冗余、视觉冗余。
核心原理:编码器并不直接存储每个像素,而是将画面拆解为“结构信息 + 残差信息”。结构信息用帧内预测、帧间运动补偿来描述;残差信息经过变换、量化后,大部分高频细节被舍弃,再通过熵编码压缩成紧凑的比特流。解码端则按相反流程重建画面。
色彩空间:YUV 是 HEVC 的默认工作空间
人眼对亮度(Luma)的敏感度远高于色度(Chroma)。因此 HEVC 编码前,RGB 像素会被转换为 YUV(YCbCr) 色彩空间,并对色度通道进行下采样。最常见的格式是 4:2:0,即每 2×2 像素块共享一组 Cb/Cr 值,色度分辨率仅为亮度的一半。这一操作直接减少了一半以上的原始数据量,且人眼几乎无法察觉。
| 色彩采样格式 | 亮度/色度分辨率比 | 相对数据量 | 典型应用 |
|---|---|---|---|
| 4:4:4 | 每个像素独立色度 | 100% | 专业调色、屏幕内容 |
| 4:2:2 | 水平减半 | 约 67% | 广播级采集、后期制作 |
| 4:2:0 | 水平垂直均减半 | 50% | HEVC 主流消费级视频 |
HEVC 编码器内部始终以 YUV 处理数据,但输出容器(如 MP4)中会携带色彩空间元数据(colour_primaries、transfer_characteristics、matrix_coefficients),播放器据此将 YUV 还原为 RGB 显示。
帧类型与 GOP 结构
HEVC 定义了三种核心帧类型,它们在压缩效率和随机访问能力上各有取舍:
- I 帧(帧内编码帧):仅利用当前帧自身像素进行预测,不依赖其他帧。压缩率最低,但可作为随机访问点和错误恢复点。
- P 帧(前向预测帧):参考前面已编码的 I 帧或 P 帧,通过运动估计消除时间冗余。压缩率高于 I 帧。
- B 帧(双向预测帧):同时参考前后两个方向的帧,可获得最高压缩率,但引入额外延迟,不适合实时低延迟场景。
GOP(Group of Pictures,图像组) 描述的是 I 帧之间的帧序列结构。一个典型的 GOP 可表示为:
GOP = I B B P B B P B B P B B P B B I
长度 = 16 帧,I 帧间隔 = 16,P 帧间隔 = 3
其中两个关键参数:GOP 长度(I 帧间隔)决定随机访问粒度和码率波动;P/B 帧间隔决定时间预测链的长度。HEVC 还引入了 分层 B 帧(Hierarchical B-frames) 结构,通过为不同层级的 B 帧分配不同的量化参数(QP),在码率分配上实现更精细的控制。
GOP 参数与编码场景的匹配
GOP 结构的选择直接影响码流特性,面试中常要求根据场景判断合适的 GOP 配置:
- 视频会议 / 直播:要求低延迟,通常使用 全 I 帧或 IPPP 结构(无 B 帧),GOP 长度 1~2 秒,便于丢包恢复。
- 短视频 / 点播:可接受较高延迟,采用 分层 B 帧,GOP 长度 2~5 秒,追求极致压缩率。
- 广电 / 后期制作:需要精确到帧的剪辑,GOP 长度通常 ≤ 1 秒,且要求每个 GOP 独立可解码。
常见误区与面试要点
误区 1:认为 I 帧越多画质越好。 I 帧压缩率低,过多 I 帧会浪费码率,但能提升错误恢复能力。正确做法是:在带宽充足时增加 I 帧频率,带宽受限时优先保证 P/B 帧质量。
误区 2:混淆“编码顺序”与“显示顺序”。 B 帧需要参考未来的帧,因此编码器必须重排序:先编码参考帧,再编码 B 帧。例如显示顺序 1、2、3,编码顺序可能是 3、1、2。解码器通过 DTS/PTS 时间戳恢复显示顺序。
面试加分点:HEVC 相比 H.264 在 GOP 层面引入了 参考帧集(RPS) 机制,用更灵活的参考帧管理替代了 H.264 的滑动窗口,使得分层 B 帧结构可以做到任意层级的随机访问,同时保持更高的编码效率。
案例:从 YUV 到 HEVC 码流的完整链路
假设输入一段 1080p60 的屏幕录制视频(含大量静态区域),编码器处理流程如下:
- 将 RGB 转换为 YUV 4:2:0,色度数据量减半。
- 划分 CTU(编码树单元,最大 64×64),对静态区域使用 skip 模式,几乎不产生残差。
- 对动态区域进行运动估计,生成运动矢量;残差经 DCT 变换和量化后,大量高频系数归零。
- 使用 CABAC 熵编码,将量化系数、运动矢量、预测模式等压缩为二进制码流。
- 封装为 MP4 或 TS,携带 GOP 结构信息和色彩空间元数据。
最终码率可能从原始 1.5 Gbps 降至 8 Mbps,压缩比接近 200:1,而主观画质损失极小。这一过程的核心权衡始终围绕:码率、画质、延迟、复杂度 四者的平衡,也是 HEVC 面试中反复出现的考察主线。