H.264(或称为 AVC,Advanced Video Coding)是一种先进的视频编码标准,它采用了一系列复杂的步骤来实现高效的视频压缩。下面是 H.264 视频编码的基本流程:
H.264 视频编码流程概述
宏块划分:
视频帧被分割成多个宏块(Macroblock,MB),每个宏块通常为16x16像素。这种划分有助于在编码时对图像进行更精细的控制和预测。
帧内预测 / 帧间预测:
I帧(帧内编码帧):每个像素点都依赖于同一帧内的其他像素点,通常用于场景切换或关键帧。
P帧(帧间预测帧):帧间预测使用前向预测,当前帧的像素预测来自之前编码的I帧或P帧。
B帧(双向预测帧):B帧使用前向和后向预测,从之前的I帧、P帧或后续的P帧来预测当前帧的像素。
DCT 离散余弦变换:
在每个宏块内,使用离散余弦变换(DCT)将时域中的像素数据转换为频域系数。DCT 可以分解帧内或帧间预测后的残差,以减少冗余信息,从而实现更高效的数据压缩。
量化:
DCT 变换后的频域系数通过量化表进行量化。量化的目的是减少数据的精度,以减小数据量,同时保留对视频质量影响较小的信息。
熵编码:
量化后的系数通过熵编码技术进行编码,常用的有基于上下文的自适应变长编码(CABAC)和上下文自适应算术编码(CAVLC)。这些编码方法根据频域系数的统计特性进行编码,以进一步压缩数据流。
总结
H.264 编码标准通过宏块划分、帧内和帧间预测、DCT 变换、量化和熵编码等步骤,实现了高效的视频压缩和编码。这些步骤共同作用,使得 H.264 在相同视频质量下能够比之前的标准(如 MPEG-2)提供更低的比特率,从而节约存储空间和传输带宽。