H.264/AVC的帧内预测(Intra Prediction)是一种用于压缩视频数据的技术,它利用图像的自相似性来减少帧内冗余。帧内预测的目的是减少帧内各像素与其邻近像素之间的差异,从而使得预测误差(残差)更容易被压缩。
在H.264中,帧内预测主要针对宏块(Macroblock)的8x8像素区域。每个宏块可以采用多种预测模式,包括垂直预测、水平预测、DC预测、平面预测和PAETH预测等。以下是帧内预测的处理流程和关键步骤的代码说明:
1. 选择预测模式
首先,编码器需要选择一个最适合当前宏块的预测模式。这通常基于图像内容的局部特性和编码器的优化策略。
int8_t intraPredMode[MB_SIZE]; // 存储每个宏块的预测模式
// ... 选择预测模式的代码 ...// 假设当前宏块的预测模式是垂直预测
int mode = intraPredMode[mb_index];
2. 应用预测模式
根据选择的预测模式,编码器将应用相应的预测算法来计算预测值。
void intra_predict_vertical(Macroblock *mb, uint8_t *predictor, int pitch) {
// 应用垂直预测模式
int i, j;
for (i = 0; i < 8; i++) {
for (j = 0; j < 8; j++) {
predictor[j] = mb->above[j];
}

H.264/AVC的帧内预测通过利用图像自相似性减少冗余,涉及选择预测模式、应用预测、计算残差和编码残差等步骤。该文详细解释了预测模式选择、垂直、水平和DC预测的实现,并介绍了残差计算及编码的过程。
最低0.47元/天 解锁文章
438

被折叠的 条评论
为什么被折叠?



