摘 要: 本文提出了一种适用于H.264标准,亚象素运动估计算法的硬件实现架构,其采用一维处理单元(PE)阵列(1×16)来实现整数象素运动估计算法中最佳匹配块的搜索,从而得到最佳匹配模块的运动向量。再确定亚象素搜索的范围,插值后采用一维PE阵列(1×3)得到亚象素最佳匹配块的运动向量。与整数象素运动估计的架构相比,这种架构采用两个并行的PE阵列,在相同时钟周期内可以实现亚象素最佳匹配,并具有结构简单、易于实现的特点。
关键词: 亚象素,运动估计,并行处理单元阵列,硬件架构,H.264标准
1 引言
块匹配运动估计算法是目前视频编码领域最常用的一种方法,基于此算法的运动估计和补偿技术在现代视频压缩编解码领域中得到广泛应用。国际标准ITU-T H.261 就是采用了整象素的块基匹配算法。
然而,实际运动物体的位移极少是整数象素的。自从H.263 和MPEG-1 及MPEG-2 等国际标准中相继采用半象素精度的运动估计和补偿算法后,MPEG-4 和H.264中更引入1/4 和1/8 象素精度的运动估计技术来提高运动补偿的精度[1]。因为精确的运动描述可以得到更小的预测误差,更高的压缩率,从而获得更好的视觉质量[2]。但是在运动估计和补偿中引入分数象素将极大地提高算法的复杂度,增加硬件实现的难度,降低视频压缩的效率。基于上述问题,本文提出了一种并行PE阵列的硬件架构。该架构简单清晰,易于硬件实
现,且搜索时钟周期与整象素运动搜索周期相同。
本文在第二节主要介绍了亚象素运动估计搜索的算法描述,第三节主要介绍了亚象素运动估计搜索的硬件架构,第四、五节分别阐述了试验分析与结论。
2 亚象素搜索的算法描述
由于数据访问上的不规则性以及硬件运算的周期性,本文采用全搜索的运动估计算法[3]。先在搜索区内找到最佳整数象素匹配块的运动矢量,再在该匹配点四周8个亚象素点处寻找半象素精度的最佳匹配运动矢量[4]。为了不失一般性,本文中测试的所有算法均采用绝对误差和(SAD)作为块的匹配准则:
(1)
其中,(m, n)为位移矢量。若在某一个(m, n)处 SAD(m, n)最小,则该点就是要找的最优匹配点。C(i, j)和 R(i+m, j+n)分别为当前帧和参考帧中对应象素亮度值。
通过整数象素搜索后得到整数象素最佳匹配块的运动矢量,由此确定了搜索窗中进行半象素插值的范围。如图1所示,整数象素(大写字母)之间的半象素点(小写字母,图一中的b, h, m, s等)是利用一个六阶有限冲击响应滤波器对相邻整数位置的象素值进行内插得到的,其权重值是(1/32,-5/32,20/32,20/32,-5/32,1/32)[5]。例如横向半象素b,纵向半象素h和中间半象素j的插值公式如下:
b=round((E-5F+20G+20H-5I+J)/32) (2)
h=round((A-5C+20G+20M-5R+T)/32) (3)
j=round((aa-5bb+20b+20s-5gg+hh)/32) (4)
3 亚象素搜索的体系结构
3.1 亚象素运动估计的硬件架构
图2为亚象素运动估计的硬件架构,系统输入为当前帧和参考帧,系统输出包括整数象素搜索得到的运动向量和亚象素搜索得到的运动向量。整个系统包括三大模块:缓存模块、运动估计模块和运动向量比较模块。
缓存分为三级缓存:第一级为帧缓存,存储当前帧和参考帧;第二级包括宏块缓存和搜索窗第三级为亚象素搜索窗缓存,用来存储插值后的亚象素数据。运动估计模块又包括三个模块:整数象素运动估计模块、亚象素插值模块和亚象素运动估计模块。运动向量比较模块则比较简单,不再赘述。需要特别指出的是,整数象素搜索与亚象素搜索的并行性。在完成block0块的整数象素搜索后,运动向量被传递给亚象素搜索模块,启动block0的亚象素搜索,与此同时整数象素搜索模块对block1进行整数象素搜索。具体流程参照图3。
系统所用的全搜索算法规定当前宏块的大小为16×16,搜索窗的大小为31×31。但是由于系统工作周期的影响,故实际从帧缓存读取的搜索窗数据为32×32的宏块,之后在搜索窗缓存中通过地址操作取得31×31大小的宏块。
3.2 整数象素运动估计模块

图4为整数象素运动估计模块[6],模块的输入为当前16×16宏块和31×31的搜索窗数据,其功能为在搜索窗中搜索与当前宏块间的SAD最小值所对应宏块的运动向量。在31×31的搜索窗中,共有256个16×16的宏块与当前宏块相对应,因此在一个搜索周期内总共需搜索256次。本文设计的系统为一维的1×16的PE阵列,可以一次搜索16个宏块。故要完成整个搜索共需要重复进行16次。每次搜索所需的周期为256个时钟周期,因此完成每个宏块的搜索需4096个时钟周期。具体而言,该模块每次搜索范围为搜索窗中的一行,当前宏块中的象素和控制信号通过移位寄存器逐级寄存后送入各个PE单元,而搜索范围内宏块中的象素则同时送入各个PE单元。根据处理时数据流的需要,不同的PE单元需要处理搜索范围中不同位象素(详见表1)。解决的办法是同时将2个不同位置的象素送入一个多路选通器(MUX),由控制信号来确定选通哪一个象素送入相应的PE单元进行处理。结构中的每一个PE单元负责计算搜索范围中某一个位置的宏块与当前宏块的SAD值。
3.3 亚象素运动估计模块

图5为亚象素运动估计的模块,模块输入为当前16×16宏块和整数象素最佳匹配点以及周围的八个亚象素点所对应宏块的数据,其功能为搜索亚象素最佳匹配点所对应宏块的运动向量。因为只有九个匹配点,因此亚象素搜索只需搜索9次。本文设计的亚象素搜索模块为一维的1×3的PE阵列,因此该系统可以一次搜索3个对应宏块。故搜索九个匹配点共需循环进行3次。每次搜索周期为256各时钟周期,因此当前宏块的亚象素搜索周期为768个时钟周期。在插值后的数据空间中共有九个点,成3×3排列队形,PE0,PE1,PE2分别搜索第一列至第三列的匹配宏块。假定最佳匹配点的坐标为(1,1),则其他八个半象素点的坐标分别为(0.5,0.5),(1,0.5),(1.5,0.5),(0.5,1),(1.5,1),(0.5,1.5),(1,1.5),(1.5,1.5)具体数据流请参照表2。

4 实验分析及结果
4.1 图像序列运动补偿精度的测量
评判本文所提出的亚象素运动估计搜索系统的方法与其他运动估计算法的质量评判方法类似,主要依据峰值信噪比(PSNR)和平均绝对误差(MAE)来衡量运动估计的质量。其表达式为
(5)
(6)
上式中,C(i,j)和R(i,j)分别表示当前帧和补偿帧中对应象素亮度值,M和N表示每帧图像的行数与列数。
4.2 实验数据分析
本系统在DSP Builder中搭建而成,并在Simulink下仿真通过。试验先将图像序列经过亚象素运动估计,得到各个宏块最佳匹配点的运动向量,再将这些运动向量传输到运动补偿模块,经过运动补偿最终得到当前帧的补偿帧。
在实验中,采用了QCIF格式的12个不同序列作为研究对象,分别为Bridgeclose、Bridgefar、Carphone、Clare、Container、Foreman、Grandma、Highway、Motherbb、News、Salesman和Silent。每个序列提取前30帧的亮度分量分别输入整数象素运动估计系统和亚象素运动估计系统,得到不同的补偿图像和预测误差,试验数据如表3所示。表中,1到12分别表示上述12种图像序列,“未搜索MAE”表示直接以参考帧作为补偿帧所得到数据的MAE,“整象素搜索MAE”表示经过整数象素运动搜索后得到补偿帧的MAE,“亚象素搜索MAE”表示经过亚象素运动搜索后得到的补偿帧的MAE。
从表中可以看到,同一序列经过亚象素搜索后所得补偿帧的MAE比经过整数象素搜索后所得到的补偿帧的MAE更接近当前帧,即当前帧与补偿帧之间的残差数据更小,图像预测更精确,需要传输的数据量更少,压缩率更高,图像质量也更好。另外也可以看到,不同图像序列之间亚象素搜索达到的效果也是不同的,对于Carphone(3)、Foreman(3)、Highway(8)和Motherbb(9)等运动比较剧烈的图像序列,亚象素搜索的优势要明显;对于其他运动相对平缓的图像,虽然算法也有改进,但质量提升不是特别明显。
试验中单独取出Carphone序列前三十帧图像的PSNR和MAE的试验数据图来分析(图6和图7所示),

在三条曲线之间,未经搜索直接以参考帧作为补偿帧的PSNR比较小,MAE则比较大,且不同帧之间的波动幅度较大;经过亚象素搜索后
补偿帧的PSNR比较大,而MAE则比较小,且不同帧之间波动幅度不大;而整数象素搜索结果则居于两者之间。由此可以得出结论:本文提出的基于亚象素运动估计的架构能够满足理论的要求,可以很好的提高预测的精度,降低残差的数据量,同时也证明了该系统结构是可行的。
5 结论
本文阐述了在视频处理的运动估计中,亚象素的引入可以有效的提高预测的精确度,提高压缩效率。同时提出了一种并行处理阵列的亚象素运动搜索体系结构,详细阐述了该体系结构的工作流程及各个模块的结构和功能。随后,采用了12个QCIF格式的图像序列进行实验。通过分析实验数据发现,采用这种新的结构处理图像序列可以有效的提高预测的精度,得到更小的预测误差,提高压缩率,进而获得更好的视觉质量。该架构结构简单,易于硬件实现,可以很好的应用在视频会议、视频广播和存储等领域。
参考文献
1 Joint Video Team of ITU-T and ISO/IEC JTC 1, “Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC)”, Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVT-G050, Mar. 2003.
2 ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTE022,September 2002
3 Viet L. Do and Kenneth Y. Yun,” A Low-Power VLSI Architecture for Full-Search Block-Matching Motion Estimation” IEEE Trans. Circuits Syst .for video technology,vol.8,no.4,pp.393-398, August 1998
4 International Telecommunication Union. Video Codec Test Model 5.0[S]. ITU-T, 1996.
5 Iain E.G.Richardson 著,欧阳合,韩军 译,《H.264和MPEG-4 视频压缩》,国防科技大学出版社,2004
6 Swee Yeow Yap and John V. McCanny,” A VLSI Architecture for Variable Block Size Video Motion Estimation” IEEE Trans. Circuits Syst., vol. 51, no. 7, pp. 384–389, July 2004