视频基础知识
编码格式
基础概念 (Basic Concepts)
在视频压缩中,为了进一步降低数据量,编码器会利用帧与帧之间的相似性(时间冗余)。根据参考方式的不同,视频帧主要分为三种类型:I 帧、P 帧和 B 帧。
1. I 帧 (Intra-coded Picture) - 关键帧
- 定义: 帧内编码帧,也称为关键帧 (Keyframe)。
- 特点:
- 不依赖其他帧,可以独立解码。
- 包含一幅完整的图像数据(类似于一张 JPG 图片)。
- 压缩率最低,体积最大。
- 作用: 作为 GOP (Group of Pictures) 的起点,提供解码的参考基准。视频拖动播放(Seek)时,通常需要定位到最近的 I 帧开始解码。
2. P 帧 (Predictive-coded Picture) - 前向预测帧
- 定义: 前向预测编码帧。
- 特点:
- 利用前一帧(I 帧或 P 帧)作为参考进行编码。
- 只记录与前一帧的差异数据(运动矢量和残差)。
- 压缩率高于 I 帧,体积约为 I 帧的 30%~50%。
- 作用: 进一步压缩数据,但解码必须依赖前一帧。
3. B 帧 (Bidirectionally predicted Picture) - 双向预测帧
- 定义: 双向预测编码帧。
- 特点:
- 利用前一帧和后一帧(I 帧或 P 帧)作为参考进行编码。
- 记录当前帧与前后参考帧的差异。
- 压缩率最高,体积最小(约为 I 帧的 10%~20%)。
- 缺点:
- 编码/解码复杂度高: 需要对比前后两帧。
- 增加延迟: 必须等待后一帧解码完成后,才能解码当前的 B 帧。因此不适合对实时性要求极高(如超低延迟直播)的场景。
GOP (Group of Pictures)
- 定义: 两个 I 帧之间的一组连续画面。
- 结构: 通常以 I 帧开始,包含若干 P 帧和 B 帧。例如:
I B B P B B P ... - GOP 长度: 两个 I 帧之间的距离。GOP 越长,B/P 帧越多,压缩率越高,但 Seek 响应越慢,且抗丢包能力越弱。
DTS 与 PTS
引入 B 帧后,视频帧的解码顺序和显示顺序不再一致,因此需要两个时间戳:
- DTS (Decoding Time Stamp): 解码时间戳,告诉播放器什么时候解码这一帧。
- PTS (Presentation Time Stamp): 显示时间戳,告诉播放器什么时候显示这一帧。
示例:
- 显示顺序 (PTS): I B B P
- 解码顺序 (DTS): I P B B (因为 B 帧需要参考后面的 P 帧,所以 P 帧必须先解码)
H.264 (AVC)
H.264,全称为 MPEG-4 Part 10, Advanced Video Coding (AVC),是一种面向块的运动补偿视频压缩标准。它是目前最常用的视频编码格式之一,广泛应用于网络流媒体、蓝光光盘和高清电视广播。
核心概念
- 宏块 (Macroblock): H.264 处理图像的基本单位是 16x16 像素的宏块。
- 帧内预测 (Intra Prediction): 利用当前帧中已编码像素预测当前块,减少空间冗余。
- 帧间预测 (Inter Prediction): 利用参考帧(过去或未来)预测当前块,减少时间冗余。支持多参考帧。
- 变换与量化: 使用整数变换(DCT的近似)和量化来压缩数据。
- 熵编码: 使用 CABAC (Context-based Adaptive Binary Arithmetic Coding) 或 CAVLC (Context-based Adaptive Variable Length Coding) 进行无损压缩。
常见 Profile (档次)
- Baseline Profile: 计算复杂度低,适用于实时通信(如视频会议、移动设备)。不支持 B 帧。
- Main Profile: 曾用于标清数字电视,支持 B 帧和隔行扫描。
- High Profile: 目前最主流,用于高清电视、蓝光、网络视频。支持 8x8 变换,压缩效率更高。
优缺点
- 优点: 兼容性极好(几乎所有设备都支持),压缩效率高,画质好。
- 缺点: 相比 H.265,在 4K/8K 超高清分辨率下压缩效率显得不足。
H.265 (HEVC)
H.265,全称为 High Efficiency Video Coding (HEVC),是 H.264 的继任者。其设计目标是在保证相同视频质量的前提下,将比特率降低约 50%。
核心改进
- 编码树单元 (CTU): 取代了 H.264 的宏块。CTU 的尺寸最大可达 64x64,可以根据图像内容的平坦或复杂程度灵活划分(四叉树结构)。这对于高分辨率视频(4K/8K)非常有效。
- 更高效的预测: 支持更多的帧内预测方向(35种 vs H.264的9种),更精细的帧间预测。
- 并行处理: 设计了 Tile 和 Wavefront Parallel Processing (WPP) 技术,更有利于多核处理器并行解码。
优缺点
- 优点: 压缩效率极高(同画质下体积约为 H.264 的一半),非常适合 4K、8K 和 HDR 视频。
- 缺点:
- 计算复杂度高: 编码和解码需要的算力远高于 H.264(编码复杂度约增加 2-10 倍)。
- 专利授权: 专利池比较复杂,收费较高,一定程度上阻碍了早期推广。
H.264 vs H.265 对比
| 特性 | H.264 (AVC) | H.265 (HEVC) |
|---|---|---|
| 发布年份 | 2003 | 2013 |
| 基本单元 | 宏块 (Macroblock),固定 16x16 | 编码树单元 (CTU),最大 64x64 |
| 压缩效率 | 基准 | 提升约 50% (同画质下码率减半) |
| 计算复杂度 | 较低,对硬件要求低 | 较高,需要更强的 CPU/GPU |
| 最高分辨率支持 | 4K (通常) | 8K (甚至更高) |
| 应用场景 | 1080p 视频, 直播, 广泛兼容场景 | 4K/8K 视频, 带宽受限的高清传输 |