一种适用于整数运动估计的深度流水线硬件架构的制作方法

文档序号:7893165阅读:143来源:国知局
专利名称:一种适用于整数运动估计的深度流水线硬件架构的制作方法
技术领域
本发明属于数字视频信号编解码技术领域,具体涉及一种适用于整数运动估计的硬件架构。本方法可适用于宏块大小不超过16x16像素的视频编码标准,具体包括MPEG-1/2/4, H. 264、RealVideo、VC-1、AVS 等多种标准
背景技术
运动估计可以有效地消除视频序列中各帧之间的时间相关性,目前已经被广泛地应用于各种基于分块匹配的视频编码标准当中。它也是整个视频压缩编码过程中最为耗时、计算复杂度最高的步骤。统计数据表明,在一个典型的视频编码过程中,运动估计消耗了 50-90%的计算时间。运动估计的效果直接影响到最终的编码效率。传统的编码标准如MPEG-2或者MPEG-4简单地将一个大小为16 X 16像素的宏块分为4个8X8的小块。随着多媒体技术的发展,H. 264视频编码标准得到了广泛的应用。由于采用了 CABAC(自适应)、块大小可变化的运动估计等多种新的编码工具,H. 264编码效率比MPEG-2要高50%。H. 264视频标准中规定一个16X 16像素的宏块可以分成了 7种不同的块大小4X4、8X8、8X4、4X8、8X8、16X8、8X16、16X16。一个宏块可以分为 16X16、16X8、8X16、8X8这四种划分模式,如果选择8X8划分模式,每一个8X8的块可以进一步分为4X4、4X8、8X4这三种划分模式,所以在H. 264标准中,一个16X 16的宏块可以有41种分块模式。块大小可变的运动估计(VBSME)模块在提高编码效率的同时也大大增加了运动估计的计算复杂度。与各种快速搜索算法相比,全搜索块匹配模式能够得到更好的压缩效果。由于它计算过程比较规则,全搜索算法也非常有利于硬件实现。在选择最佳匹配块时,一般一般采用SAD (差值绝对值之和)作为判决依据。SAD可以表示如下
N-I N-I
SAD(mji) = EEl C(i,j) — R(i + m'J + η)(I)
a=0 /=43
SADmin = min (SAD(m, n)), -p ^m, n<p(2)
其中C (I, j)代表当前帧像素,R (i+m, j+n)代表参考帧像素,N代表块大小,(m, η)代表参考帧中的搜索位置,P代表搜索范围。传统的全搜索算法一般采用增加硬件并行度的方法来提高硬件的数据处理能力。但是这样会导致硬件面积随着处理能力的增加而同比例的增加。有些方案采用降采样或像素截位的方式来减小硬件开销,但是这样会导致压缩效率下降。

发明内容
本发明的目的在于提出一种适用于整数运动估计的深度流水线硬件架构。本发明通过对VBSME的计算过程进行仔细分析,将这一过程分割为六个相对独立的步骤,分别对应于硬件架构上的6级流水线。通过深度流水线的方法,可以大大提高硬件的工作频率,从而在保持硬件面积基本不变的情况下即可大幅改进硬件性能。本发明提出的深度流水线架构可以分为6级流水线结构,其中
(I)第一级流水线(S2X2)。本级流水线主要负责计算每ー个2X2块的SAD。(2)第二级流水线(S4X4)。本级流水线主要负责计算每ー个4X4块的SAD。(3)第三级流水线(S8X8)。本级流水线主要负责计算每ー个8X8、8X4、4X8块的 SAD。(4)第四级流水线(SC)。本级流水线主要负责计算16 X 16、16 X 8、8 X 16块的SAD。每ー种划分模式的运动向量代价也在此级流水线中得到。(5)第五级流水线(CA)。本级流水线主要负责计算所有41种分块模式的代价。 (6)第六级流水线(MC)。本级流水线主要负责从41种分块模式之中选择代价值最小的那ー种模式作为最佳模式。本发明的有益效果
本发明中提出的硬件采用6级流水线架构,可以支持各种宏块大小为16x16像素的视频标准,能够大幅提高硬件的工作频率,从而在不显著増加硬件面积的同时提升硬件性能。本发明通过采用深度流水线的硬件架构,可以工作在较高的工作频率上,因而可以大大提高硬件的数据处理能力,能够实时完成整数运动估计的全搜索算法。


图I :整数运动估计单元的整体架构。图2 :每ー个SAD计算单元内部的6级流水线架构。图3 :6级流水线架构的时序图。
具体实施例方式下面结合附图对本发明做进ー步的描述。本发明提出了ー种适用于整数运动估计的硬件实现方法,其整体架构如图I所示。CMB存储阵列用来存储当前宏块中的所有256个像素;REF存储阵列用来存储所有的參考像素,其大小由搜索范围决定;SAD计算单元负责选取最佳匹配块。此架构中使用的SAD单元个数可以根据需要灵活配置,每个SAD単元可以在ー个时钟周期内针对当前的捜索位置,计算出所有41种划分模式的编码代价并选出最优模式。如果同时使用N个SAD计算单元,那么此架构就可以在ー个时钟周期内捜索N个搜索位置。下面结合图2,具体讲述每ー个SAD计算单元内部的计算过程,其具体实施方式
可如下述的六个步骤
(I)第一级流水线(S2 X 2)。本级流水线主要负责计算每ー个2X2块的SAD。将当前待编码宏块和參考宏块横行和纵向都8等分,这样ー个16X 16的宏块可以分成64个2X2的小块。将待编码宏块中每ー个2X2小块中的像素与參考宏块中相应2X2小块中相应位置的像素相减求差后再取绝对值,每个2X2小块可以得到4个绝对值,将这4个绝对值加起来求和即可得到2X2块的SAD。对所有2X2小块都进行相关的计算,即可得到64个2X2小块的SAD。(2)第二级流水线(S4 X 4)。本级流水线主要负责计算每ー个4X4块的SAD。将步骤一中得到的64个SAD值横行和纵向都4等分,然后将每个4X4块内对应的4个2X2块的SAD值求和,这样即可得到16个4X4块的SAD。(3)第三级流水线(S8X8)。本级流水线主要负责计算每ー个8X8、8X4、4X8块的SAD。将步骤ニ中的16个SAD值横行和纵向都2等分,然后将每个8X8块内对应的4个4X4块的SAD值求和,这样即可得到4个8X8块的SAD ;将步骤ニ中的16个SAD值横行2等分、纵向4等分,然后将每个8x4块内对应的2个4x4块的SAD值求和,这样即可得到8个8X4块的SAD ;将步骤 ニ中的16个SAD值横行4等分、纵向都2等分,然后将每个4X8块内对应的2个4X4块的SAD值求和,这样即可得到8个8X4块的SAD。(4)第四级流水线(SC)。本级流水线主要负责计算16X 16、16X8、8X 16块的SAD。每ー种划分模式的运动向量代价也在此级流水线中得到。将步骤三种的4个8 X 8块的SAD相加求和,即可得到16 X 16块的SAD值;将步骤ニ中的4个SAD值横行不变、纵向2等分,然后将每个16X8块内对应的2个4X4块的SAD值求和,这样即可得到8个8X4块的SAD ;将步骤ニ中的16个SAD值横行4等分、纵向都2等分,然后将每个4X8块内对应的2个4X4块的SAD值求和,这样即可得到8个8X4块的SAD。(5)第五级流水线(CA)。本级流水线主要负责计算所有41种分块模式的代价。前几级流水线中已经得到了每ー种分区块的SAD。本级流水线根据划分模式和与之对应分区块的SAD值,得出当前捜索位置对应的所有41种模式的编码代价。(6)第六级流水线(MC)。如果只使用ー个SAD计算单元,那么步骤五中的输出可以直接作为本级输出,不需要额外的操作。当整个架构中采用了 N个(N>1)SAD计算单元,本级流水线负责从N个输出结果中选择出,编码代价最小的分块模式,将之作为最佳模式。由于每个SAD模式有41个输出,因此对于使用多个SAD计算单元的架构而言,本级流水线中需要用到41个N选I多路选择器。本发明将整数运动估计的计算过程分解为6个串行的步骤,并以此为依据提出了ー种6级流水线架构的硬件实现方法,每ー级流水线即对应于上述的6个步骤。流水线的时序图如图3所示,6级流水线最多可以同时处理6个不同的宏块(ΜΒ(ΓΜΒ5)。深度流水线的架构可以缩短关键路径上的延时,能够大大提高硬件的最高工作频率,进而提升了整个硬件性能而无需增加过多的硬件资源。
权利要求
1.一种适用于整数运动估计的深度流水线硬件架构,其特征在于分为6级流水线结构,其中 第一级流水线,负责计算每一个2X2块的SAD ; 第二级流水线,负责计算每一个4X4块的SAD ; 第三级流水线,负责计算每一个8X8、8X4、4X8块的SAD ; 第四级流水线,负责计算16 X 16、16 X 8、8 X 16块的SAD,每一种划分模式的运动向量代价也在此级流水线中得到; 第五级流水线,负责计算所有41种分块模式的代价; 第六级流水线,负责从41种分块模式之中选择代价值最小的那一种模式作为最佳模式; 其中,SAD表示式如下
2.根据权利要求I所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第一级流水线计算每一个2X2块的SAD的步骤为将当前待编码宏块和参考宏块横行和纵向都8等分,这样一个16X16的宏块分成64个2X2的小块;将待编码宏块中每一个2X2小块中的像素与参考宏块中相应2X2小块中相应位置的像素相减求差后再取绝对值,每个2 X 2小块得到4个绝对值,将这4个绝对值加起来求和即可得到2X2块的SAD ;对所有2X2小块都进行相关的计算,即得到64个2X2小块的SAD。
3.根据权利要求2所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第二级流水线计算每一个4X4块的SAD的步骤为将第一级流水线中得到的64个SAD值横行和纵向都4等分,然后将每个4 X 4块内对应的4个2 X 2块的SAD值求和,这样即得到16个4X4块的SAD。
4.根据权利要求3所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第三级流水线计算每一个8 X 8、8 X 4、4X 8块的SAD的步骤为将第二级流水线中的16个SAD值横行和纵向都2等分,然后将每个8X8块内对应的4个4X4块的SAD值求和,这样即得至Ij 4个8 X 8块的SAD ;将第二级流水线中的16个SAD值横行2等分、纵向4等分,然后将每个8X4块内对应的2个4X4块的SAD值求和,这样即得到8个8X4块的SAD ;将第二级流水线中的16个SAD值横行4等分、纵向都2等分,然后将每个4 X 8块内对应的2个4 X 4块的SAD值求和,这样即得到8个8X4块的SAD。
5.根据权利要求3所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第四级流水线计算16 X 16、16 X 8、8 X 16块的SAD的步骤为将第三级流水线中的4个8 X 8块的SAD相加求和,即得到16 X 16块的SAD值;将第二级流水线中的4个SAD值横行不变、纵向2等分,然后将每个16 X 8块内对应的2个4 X 4块的SAD值求和,这样即得到8个8 X 4块的SAD ;将第二级流水线中的16个SAD值横行4等分、纵向都2等分,然后将每个4X8块内对应的2个4X4块的SAD值求和,这样即得到8个8X4块的SAD。
6.根据权利要求4所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第五级流水线计算所有41种分块模式的代价的步骤为根据前几级流水线中已经得到的每一种分区块的SAD,本级流水线根据划分模式和与之对应分区块的SAD值,得出当前搜索位置对应的所有41种模式的编码代价。
7.根据权利要求5所述的适用于整数运动估计的深度流水线硬件架构,其特征在于第六级流水线(MC),如果只使用一个SAD计算单元,那么第五级流水线的输出直接作为本级输出,不需要额外的操作;当整个架构中采用N个SAD计算单元,N>1,本级流水线负责从N个输出结果中选择出编码代价最小的分块模式,将之作为最佳模式。
全文摘要
本发明属于数字视频信号编码技术领域,具体为一种适用于整数运动估计的深度流水线硬件架构。为了提高图像编码的效率,本发明中采用全搜索算法来实现整数运动估计。全搜索算法的计算量非常大,因此本发明中提及的硬件采用六级流水线架构,将整数运动估计的计算过程分成六个步骤,每个步骤对应于一级流水线。通过采用深度流水线的硬件架构,本发明可以工作在较高的工作频率上,因而本发明可以大大提高硬件的数据处理能力,能够实时完成整数运动估计的全搜索算法。
文档编号H04N7/26GK102630016SQ20121010055
公开日2012年8月8日 申请日期2012年4月9日 优先权日2012年4月9日
发明者曾晓洋, 沈沙, 沈蔚炜, 范益波 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1