H.264模式决策算法的快速设计与实现

时间:2011-07-19

  摘   要: MPEG4 AVC/ITU-T H.264视频编码标准因其优异的编码效率和性能而被广泛采用,但其模式决策问题导致运动估计器运算复杂度非常大。本文提出一种快速模式决策算法的实现方法。仿真结果证明,本方法在编码质量降低较小的情况下,能够减少80%以上的编码时间。

  1  现有的快速决策算法

  H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

  针对运动估计模式的快速决策算法已有如下几种:(1)通过3×3的Sobel计算得到当前宏块的边缘矢量图(Edge Map),然后利用每点边缘矢量的幅度值之和的统计特性去判断宏块的空间一致性,并根据一致性越强所采用的运动估计块越大的原则,减少进行复杂的码率和失真折衷值(Rate-Distortion Cost,RDC)计算的候选模式数量。但是,由于Sobel计算涉及每个象素点,因此它本身的计算量也很大。(2)利用模式间的相关性把7种模式分组,计算有代表性的16×16、8×8、4×4三种模式的RDC值,通过分析结果选择出的模式组。(3)只进行基于8×8子块的运动估计,通过分析得到的4个运动矢量间的相似性进行估计块(即模式)的合并,合并后得到的模式即为模式。

  本文提出一种适合在移动终端设备等计算能力有限的应用场合下进行H.264实时编码的快速模式决策算法的实现方法。该方法具有计算复杂度低和逻辑简单的特点。实验证明,在图像质量和压缩效率降低很少的情况下,该方法使编码速度提高了80%以上。

  2  H.264的模式决策算法

  H.264采用8种帧间编码模式,包括7种采用不同大小和形状的运动估计块对宏块进行运动估计的编码模式和SKIP模式。H.264帧间预测模式如图1所示,其决策算法是:首先,对宏块分别计算16×16、16×8、8×16和SKIP 4种模式下的RDC值;然后,对宏块中的每一个8×8子块分别计算8×8、8×4、4×8和4×4 4种子模式下的RDC值,得到具有值的子模式,再将子块的RDC值相加得到宏块在模式下的RDC值;,在宏块层次上比较各模式RDC值,选取值的模式作为宏块编码模式。

  H.264是在MPEG-4技术的基础之上建立起来的,其编解码流程主要包括5个部分:帧间和帧内预测(Estimation)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(Loop Filter)、熵编码(Entropy Coding)。   H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2视频压缩标准发布以后的、有前途的视频压缩标准。通过该标准,在同等图象质量下的压缩效率比以前的标准提高了2倍以上,因此,H.264被普遍认为是有影响力的行业标准。

  在帧内编码方面,H.264采用基于4×4子块和基于16×16宏块的2种预测模式,其中4×4模式有9个预测方向,宏块模式有4个预测方向。在的参考软件JM9.3中加入了基于8×8子块的预测模式。每一种预测模式都是利用相邻已编码块的样点值去预测当前块的样点值。H.264要分别计算宏块在基于4×4、16×16和8×8 3种模式下的各个预测方向的RDC值,并选择值的模式作为帧内预测模式。如果当前编码宏块属于帧间预测帧(P帧),该值还要与帧间编码模式的RDC值进行比较来确定模式。

  H.264协议采用Lagrange代价函数计算每种模式下宏块的RDC值,其定义如下:

  通过上面的分析可以看到,H.264在进行宏块模式决策时,运动估计、量化、反量化和DCT变换等操作被多次反复调用,这样的计算强度对于实时性要求较高的视频通信应用及处理能力相对较弱的手持设备而言是很难被接受的。

  3  模式决策算法的快速实现

  3.1 提出方法的动机

  H.264协议帧间模式决策的基本原则是:对只含有背景成分、全局运动成分或很少量局部运动成分的宏块采用大估计块模式进行编码;对于含有丰富运动成分的宏块采用小估计块模式进行编码。由此可以得出:随着7种运动估计块自大向小被调用,宏块的RDC值呈现出近似的单调变化趋势。所以,通过对这种趋势的分析,很可能在不调用所有模式的情况下得到编码模式。

  使用H.264参考软件JM9.3对9个QCIF和CIF格式的图像序列进行编码实验,编码模式的分配情况如表1所示。从表中可以得到很多关于图像统计特性的信息:(1)SKIP模式被使用的概率相当高,特别是那些类似于视频通信应用的图像序列,如Claire、News等序列。这表明对这些图像进行编码时如果能够尽早确定是否采用SKIP模式,将使模式决策过程所需的时间大大减少。(2)P帧中的宏块使用帧内预测编码模式(表中INTRA列)的概率很低,所以对P帧中的宏块不采用帧内模式对编码质量不会产生大的影响。(3)对于8×8的子块采用8×4、4×8、4×4 3种子模式的概率较低,特别是在那些类似于视频通信应用的序列中,这3种子模式被使用的概率只有1%左右,而含有许多运动成分的图像序列使用这3种子模式的概率大约是2%~10%。

  3.2 帧间模式决策算法的快速实现

  通过分析,本文提出一种快速模式决策算法的实现方法。具体步骤如下。

  第1步:计算编码宏块SKIP模式的RDC值JSKIP并与阈值TSKIP比较,若小于阈值则表示SKIP模式为模式,模式决策过程结束;否则,到第2步。其中阈值TSKIP的确定方法是根据经验确定一个比较小的初值,在编码过程中利用所有用SKIP模式编码的已编码宏块的RDC值的均值动态改变它。

  第4步:计算8×8模式的RDC值J8×8,并与上面得到的各种模式的值进行比较,得到模式。

  3.3 帧内模式决策算法的快速实现

  关于帧内预测模式决策算法的快速实现,本文提出的方法的思想是利用反映图像空间特性的原始图像和预测图像在变换域中的差值之和(SATD)与JMODE值之间的相关性,减少需要RDC计算的候选模式的数量。SATD定义如下:

  

  式中I(x,y)表示原始图像值,P(x,y)表示预测图像值,T{}表示Hadamard变换,bk表示取值范围,即块的大小。

  方法的具体步骤是:(1)计算每个4×4子块基于4×4预测模式的可能预测方向上的SATD值。(2)选择具有SATD值的3个模式进行RDC值的计算,如果由相邻的已编码块得出的可能模式没有被包含其中,则还要计算这种模式的RDC值。(3)选出具有RDC值的模式为4×4子块的模式。对基于8×8块的预测模式的选择采用同样的办法。

  4  仿真结果

  根据本文提出的方法,修改软件JM9.3的相应部分,并对8个格式为CIF和QCIF的图像序列进行了编码仿真。具体的仿真环境:编码帧数为100,参考帧数为5,序列形式为IPPP,固定的量化系数(28、38),CAVLC熵编码。此外,采用JM软件默认的运动估计算法,搜索范围为16。仿真结果表明,本方法虽然使得图像质量有所下降,但明显减少了编码时间。

  5  结束语

  本文提出的H.264模式决策算法的快速实现方法,有效利用了图像序列和编码模式的统计特性和空间特性。因此,本方法能够在编码质量下降不多的情况下,大幅度地降低编码时间和算法复杂度,使H.264协议更适于移动终端设备的视频通信应用。下一步的工作重点是改进运动估计的搜索算法,拟采用自适应路径搜索算法(Adaptive Root Pattern Search,ARPS),以及整个决策算法的硬件实现和仿真。


  
上一篇:飞思卡尔推出一款完整的电表参考设计
下一篇:固态驱动器为车载信息娱乐系统提供紧凑耐久的存储选项

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料