1 引 言
随着网络和多媒体的发展,越来越多的数字视频业务不断涌现,新一代的视频编码技术H.264 标准的制定正是为适应各种业务增长对于运动图像压缩率的更高要求,并使得编码后的视频数据能够在各种网络环境下传输。H.264 视频压缩技术的基础模块与之前的协议(MPEG1,MPEG2,MPEG4,H.263)类似,但它采用了很多全新的编码技术:
帧内预测,可变大小的图像分块,1/4 和1/8 像素精度的运动估计,基于内容的自适应二值算术编码,残差图像的整数变换编码等。下面将探讨H.264 视频编码的关键技术及其应用前景。
2 H.264 关键模块介绍
H.264 这一最新的视频编码标准,仍是基于运动补偿和变换编码的混合编码方式,但其关键部件都做了重大改进,如多模式的帧内和帧间预测编码技术、多参考帧时间预测技术、多方向的空间预测技术,以及4×4 的整数正交变换、UVLC(UniversalVariable Length Coding)和CABAC(Context-basedAdaptive Binary Arithmetic Coding)熵编码、去块效应的环内滤波器等技术,在保证图像质量的同时仍能获得很高的压缩比。
2.1 帧内预测
帧内预测主要用于减少空域和频域的冗余度。一个块或宏块若以帧内模式进行编码,则该块或宏块是在它之前编码和重建的块的基础上得到预测的。以亮度块为例,一个亮度块可能是4×4 的块,也可能是16×16 的块。对于一个4×4 的亮度块,有9 种预测模式。首先可以用相邻模块预测目标宏块,特别是目标宏块的上面和左边的宏块,因为这些宏块的编码已经完成。然后对目标宏块与得到的预测之差编码,这样就可以用尽量少的比特表示目标宏块。帧内预测用在背景比较单一的图像当中,可以大大减少空间上的冗余。
2.2 运动估计及补偿
H.264 在这一模块做了以下改进。
(1)多尺寸的运动估计
为了提高编码的效率,原有的宏块被分割成更多尺寸更小的块,使细微的运动可以被区分出来,然后用前向和后向的运动矢量来预测当前的块。由于块的大小和形状更加灵活,运动矢量的精度也得到了相应的提高。H.264 中块的大小共有7 种选择
(2)1/8 像素运动补偿
对于一个复杂的或者说编码效率高的系统,可以用1/8 像素的插值。插值在具体的实现上是通过两个独立的步骤得到的。首先在水平方向上用8 阶滤波器,然后是竖直方向上,同样用一维的8 阶滤波器进行插值。1/2 像素的插值是通过水平和垂直方向上两个6阶滤波器实现的。1/4 像素精度的插值是利用线性的二阶滤波器对已有的1/2 像素插值结果进行计算的,计算复杂度不高,但是由于需要先得到1/2 像素精度的插值结果,所以总的运算复杂度还是很高的。
(3)多参考的运动补偿
H.264 还采用了多假设多参考帧的运动补偿的概念。在B 帧预测上,有了很大的改进。整个处理过程包括:在参考帧缓冲区内选取一个或多于一个的预测信息;将预测信息作平均,已完成码的图像存储在参考帧缓冲区内;将这些得到的多假设信息用作参考帧。编码器中耗时比例较多的是编码模式选择、熵编码以及多尺寸多参考帧的运动估计和整型变换。
400-700-9974