预测编码是视频压缩中最基本的编码工具,常见的预测编码为帧间预测和帧内预测。
视频编码中,主要的冗余信息是时间冗余,其次是空间冗余,视频编码通过帧间预测消除时间冗余,通过帧内预测消除空间冗余。接下来说说帧内预测。
帧内预测的具体方法分两种,一维预测和二维预测。
一维预测是利用同行相邻像素点的相关性进行预测,一般下一个像素点值总和它前一个像素值比较接近,这样我们就可以将前一个像素值作为当前像素点的预测值。
二维预测除了利用本行的相邻像素点进行预测外,还使用前一行的像素点进行预测。通过给不同行的像素值赋予相应的加权值,最后获得预测值。
说完预测方法之后,接下来是针对具体的预测实现。
1、4x4亮度块预测模式
图一是获取到的亮度宏块及要进行预测的4x4亮度块。
图二
图二-a是利用像素A~Q对a~p像素进行4x4帧内预测。
图二-b是预测方向,一个九个。
预测模式一共有九种:
0、Vertical。
1、horizontal。
2、DC。
3、diagonal down-left。
4、diagonal down-right。
5、vertical-right。
6、horizontal-down。
7、veritical-left。
8、horizontal-up。
九种预测模式如下图:
图三
九种预测模式对应的效果图如下图:
图四
从效果图可看出最佳预测模式为模式7(vertical-left)。
2、16x16亮度块预测模式
16x16预测模式是4x4亮度预测模式的一种替代方法,预测模式共有四种。
模式0(垂直):从块上部采样推出(H)。
模式1(水平):从块左侧采样推出(V)。
模式2(直流):从块上部和左侧的采样的均值推出(H+V)。
模式3(平面): 对块上部和左侧的采样H和V使用一个线性“平面”函数。
四种模式方向图如下:
图五
获取到的16x16亮度宏块如下图:
图六
四种预测模式对应的效果图如下:
图七
从效果图可知,效果最好的是模式3(plane)平面模式。
3、8x8色度块预测模式
一个宏块的每个8x8色度分量从之前已编码重构的上部和(或)左侧的色度采样中预测。色度块的四种预测模式和16x16亮度块预测模式非常相似,除模式号不同:直流(模式0)、横向(模式1)、垂直(模式2)和平面(模式3)。相同的预测模式在色度块中也始终适用。
最后对帧内预测技术进行总结:
a、H.264帧内预测提供了4x4和16x16两种方式,使预测更加灵活准确,其中4x4块用于图像细节部分的预测,可以提高预测精度;16x16块用于预测平坦的图像区域,能够在保证帧内预测精度的同时降低运算复杂度和码率。
b、H.264充分考虑了帧内像素的统计分布规律,详细设定了多种方向的预测模式,能够更好地匹配图像像素分布的真是情况,减少预测误差。对于不同类型的图像,这种帧内预测方法能够有效低逼进真实值,保证较高的预测精度。