关键字 |
视频编码,运动估计,全搜索块匹配,三步搜索,超大规模集成电路架构 |
介绍 |
由于实时视频播放系统的严格要求,视频编码是任何可视化应用中最基本的部分。此外,由于信道容量有限,这些应用程序也需要非常高的压缩比。众所周知,运动估计算法在视频序列压缩中起着重要的作用。运动估计是一种利用并试图最小化连续帧之间存在的时间冗余的技术。ME是计算密集型的,涉及编码器[1]大约80%的计算能力。块匹配运动估计是消除帧间时间冗余的最有效和最流行的技术之一。在这种技术中,当前帧被划分为块(候选块),对于每个块,在可用的前一帧中搜索最佳匹配的块(在搜索范围内)。运动矢量(MV)定义为候选块(CB)位置与前一帧(Stored)中最佳匹配块之间的位移。预测当前帧的宏块(MB)由运动补偿(MC)产生。剩余MB是原始MB和预测MB之间的差值。视频压缩的目标是最小化剩余MB中包含的能量。很明显,更好的预测将减少剩余MB中包含的能量。有必要讨论运动估计的算法和架构,应用程序,并考虑设计问题,芯片面积,速度,I/O带宽,内存带宽,功耗,图像质量, and some requirements for application. Many fast blockmatching algorithms for motion estimation have been proposed because of their lower computation overhead than that of full search block-matching algorithm. One of the main research goals has been the reduction of computational complexity and the power consumption of the motion estimation while keeping quality of image. |
用于运动估计的块匹配算法(BMAâÂ′Â′s)[3]-[7]可以通过可编程处理器和专用硬件两种不同的方法实现。而且它们都是可编程处理器和专用硬件可编程通用处理器非常灵活,但是这个优势对于BMAâ '  ' s来说并不是必不可少的,因为它们的计算类型是固定的。此外,极高的计算复杂度需要多个高性能(因此是高成本的)视频信号处理器。相反,将BMA映射到专用的体系结构提供了一种灵活性较低但效率高得多的解决方案,因为它可以针对这个特殊目的进行优化。由于这个原因,专用的运动估计架构已经应用于一些低比特率应用的视频编码芯片组。此外,专用BMA芯片或模块可以与可编程处理器相结合,以提供具有足够吞吐量的灵活视频编码器。 |
为了降低最优全搜索(FS)过程的高计算复杂度,已经开发了许多快速BMAÃⅱÂ′Â′s。3-step search (TSS)是目前常用的快速运动估计算法之一,被认为是最好的算法之一,被CCITT RM8[8]和MPEG SM3[9]推荐。但是三步分层搜索(TSS)将会有更大的复杂性和更多的检查点。本文提出了一种快速三步搜索算法。与其他快速算法相比,FTSS的性能更接近于视频电话和视频会议应用的全搜索块匹配算法的性能。本文开发了一个包含三个pe的体系结构来实现对算法的改进。该体系结构利用了智能数据重用和内存配置以及减少外部内存访问的技术,为低内存带宽需求铺平了道路。这一点,加上低面积要求,使所提出的架构高效,适合低功耗低比特率视频处理应用。 |
本文组织结构如下。下一节将详细介绍FTSS算法。第三节介绍了高效的3-PEâ '  ' s FTSS架构。第四节给出了结果和比较。最后,第五节给出了结论。 |
快速运动估计算法 |
通常,当前块体的位移与前一个块体的位移有一定的关系,称为运动矢量。在低比特率的视频应用中尤其如此,包括视频电话和视频会议,在这些应用中很少涉及快速和复杂的移动。FTSS算法[3]利用了来自相邻前块运动向量的方向信息。 |
|
|
利用前一个运动矢量的方向信息估计出当前的运动矢量。当前帧的相邻运动向量有助于预测当前运动向量的方向。左邻体的运动向量,即前一个运动向量的符号,可以由图1所示的当前运动向量确定。根据图2所示的四种穷举条件,求出上一个运动向量指向左上角(如图1(a)所示)时下一阶段的检查点集(Search points)。如图1 (a)、(b)、(c)所示,其余三个可能的前一运动向量的检查点的第二阶段也将以类似的方式确定。通过从相邻的前一个运动向量中选择方向,而不是如图1所示的随机搜索方向,在第一步中增加了4个检查点出现的概率。通过对当前运动矢量方向的精确估计,我们在第一步中可以只检查四个搜索点,而不是像[7]那样检查五六个搜索点。通过使用定向信息,我们可以在第一步中比Lu和Liouâ '  ' s算法[7]减少一到两个检查点。根据原TSS算法,第一步的检查点数为9个。FTSS算法在保证性能接近TSS算法的同时,每一步都有4 - 5个点的降低。 |
A.平均绝对差(MAD)的计算 |
取一个大小为N x N的块,块运动估计搜索一个运动向量,在一个邻域内产生最小的平均绝对差(MAD)。假设在垂直和水平方向上的最大运动为±w。如果使用Full Search (FS)方法,那么总共有(2W+1)个运动向量要检查,每个运动向量都在搜索窗口中的一个点之后。搜索窗口中所有点的MAD值形成一个误差曲面。作为失真的判据,计算每个候选位置(u, v)的MAD为 |
|
其中Ft和Ft-1是当前的块和之前要比较的帧,(x, y)是当前块在Ft中左上像素的坐标,u和v的值限制在d1和d2之间。在低比特率视频应用中,通常对大小为16 × 16的区域进行搜索,因此d1=d2=7。FTSS算法[1]和TSS算法[2]的区别是by |
•考虑前面的运动向量 |
•对于每一步,在第一阶段它考虑图1中指定的三个搜索点,在第二阶段它考虑图2中指定的一个或两个搜索点。 |
|
所以每一步它都会检查4到5个搜索点。所以搜索点的最小数目是12,最大数目是15。而在TSS算法中,搜索点的数量是固定的25个。搜索点的排列如图3所示。 |
FTSS架构 |
FTSS的体系结构由存储子系统、控制单元和过程控制单元组成。如图4所示。内存子系统有三个搜索区域缓冲区,用于存储来自外部内存的搜索块。该块输出前一帧的块的索引号,这些索引号必须与基于搜索范围的每个当前帧块的候选块进行比较。控制单元中的状态机块在空闲状态后立即启用此块。该模块从搜索中获取输入,并将输出提供给过程控制单元。每个任务使用两个半搜索区域缓冲区。这些缓冲区再次存储在9个内存模块中,以提高内存带宽,并应用内存交叉进行同时访问。 |
|
|
控制单元功能如下: |
ï ·控制单元由有限状态机组成,它为所有块生成定时信号和控制信号,通过启用和禁用信号来控制它们的运行。 |
ï ·激活所需的半搜索区域缓冲区来访问外部内存。 |
ï ·为每一步计算MAD向过程控制单元发送搜索点基址。 |
ï ·取MAD值,来自进程控制块,根据最小MAD值。 |
ïÂ‑·这个最小的MAD被馈送给地址生成器,为下一次搜索生成新地址 |
ï ·完成三个步骤后找到运动向量。 |
过程控制单元的功能如下: |
ï ·进程控制单元本身有处理元素阵列单元(PE array)和地址生成器阵列单元(address Gen. array)。 |
ï ·从控制单元获取步进激活信号和搜索点的基址。从基址和偏移地址,地址生成器计算内存模块号和模块地址。 |
ï ·进程控制单元向内存子系统发送模块号和模块地址,然后从内存子系统获取搜索像素,从ext内存获取当前像素。 |
ï ·计算每个搜索点的MAD值并发送到控制单元。 |
地址生成器数组有三个地址生成器。每个地址生成器将根据进程控制单元接收到的基址和偏移地址生成模块号和模块地址。根据FTSS算法,每一步有两个阶段。算法单元将在第一阶段的9个搜索点中选出3个,根据相邻上一个运动向量的符号。所选搜索点的基址将发送到过程控制单元。经过256个时钟处理控制单元将发送MAD PE阵列由三个处理元件(PE)。每个PE将搜索像素和当前像素作为内存子系统的输入,求出平均绝对差(MAD)。该差值将累积起来,并给出每256个时钟的每个搜索点(16 × 16块)的MAD值。PE的结构如图5所示。 |
本文提出的3 PEâÂ′Â′s并行架构是FTSS[3]算法的一个很好的选择。由于每一步有两个阶段,根据FTSS算法第一阶段每一步的检查点数量为3个。在第二阶段的每一步中,检查点的数量为1或2。因此并行检查点的个数不超过3个,只需要3个PEâÂ′Â′s。但由于数据寻址困难、互连复杂等原因,使其难以实现。本文提出了一种能够有效解决这些问题的硬件结构;该架构基于两种数据管理技术,即(1)用于减少外部内存访问数量的片内缓冲区配置,(2)用于并行数据访问的剩余内存交织。 |
结果与比较 |
在Xilinx- ISE 8.1i平台上,使用vertex4器件族和MATLAB对所提出的体系结构进行了仿真。在这个仿真图像,我们已经是一个¢LenaA¢和一个¢PalaceA¢大小128 x128块大小16 x16,搜索范围。图6为TSS和FTSS的每块检查点数量。接下来的模拟实验,块大小固定在16 x 16。块匹配是在一个15 x 15的搜索窗口内进行的,以全像素为基础,即水平或垂直方向上的最大块位移为+/-7 pels。 |
|
在实际应用中,采用平均绝对距离(MAD)作为匹配准则,减少了块匹配计算量,减少了计算量。实验中利用了四个大、中、小运动的测试图像序列:Akiyo序列(QCIF-176x144,低运动),Foreman序列(CIF-352x288,中等运动),BUS序列(QCIF-176x144,高运动)和Container (CIF-运动)。算法的性能是计算得到的PSNR和每个算法所需的平均搜索点之间的折衷。下表总结了四种序列对PSNR(分贝)和平均搜索点的模拟结果。图7(a)、7(b)、7(c)、7(d)分别为序列Akiyo和Bus的PSNR和平均搜索点。4个视频序列的前100帧得到的结果如表1所示。结果表明,“AkiyoâÂ′Â′”等低运动视频的前100帧平均PSNR值,FTSS具有与全搜索相似的最佳性能。 |
|
|
|
|
结论 |
快速运动估计算法的性能部分取决于算法中使用的模式。在本文中,我们提出了一个高效的VLSI架构的FTSS算法。随机存取片上缓冲器的配置解决了芯片I/O和内存带宽需求的问题。该缓冲区和输入数据是通过一种称为剩余内存交织的原则来安排的,用于并行访问数据。所提出的体系结构采用了3个pe,减小了芯片面积。采用该方法可大大降低计算复杂度。将所实现的FTSS与FS和TSS块匹配算法进行了性能比较。通过实验评估,得到了峰值信噪比(PSNR)和每帧平均搜索点数的结果。这为降低功耗铺平了道路。结果表明,该算法所需要的平均搜索点数要比其他两种算法少得多。 This architecture is considered to be useful for low bit rate, low power video applications like video telephony, video conference and HDTV. |
|
参考文献 |
- R. Srinivasan和K. R. Rao“视频会议的运动补偿编码器”,IEEE Trans。通讯,第COM-35卷,第297-304页,1987年3月。
- 谢国华,林廷平,“基于VLSI的块匹配运动估计算法”,IEEE, 2011。视频技术电路和系统,卷。2,没有。2,第169-175页,1992年6月。
- Kim Jong-Nam和Tae-Sun Choi,“具有最小检查点的快速三步搜索算法”,IEEE消费电子会议,pp.132-133, 1998年6月2-4日。
- 钟herming,陈良吉,Chiueh,“并行架构的3步分层搜索块匹配算法”,电子学报,Vol.4.No. 4。4,第407-416页,1994年8月。
- 赛斯。K, Rangarajan周二。Srinivasan P。年代,Kamakoti。V, BalaKuteshwar。V,“块运动估计的新三步搜索算法的并行架构实现”,IEEE VLSI设计会议,2004年,第1071-1076页。
- 李仁祥,曾兵,刘明L.,“一种新的块运动估计的三步搜索算法”,电子工程学报,Vol.4,no. 1。4,第438-442页,1994年8月。
- 吕剑菊,刘明L.,“一种简单高效的块匹配运动估计搜索算法”,电子工程学报,Vol.7, no. 7。2,页429-433,1997年4月。
- CCITT SGXV,“参考模型8 (RM8)描述”,第525号文件,第XV/4工作组,可视电话编码专家组,1989年6月。
- Mpeg, " is0 cd11172-2;高达1.5 Mbits/s的数字存储媒体的动态图片和相关音频编码”,1991年11月
- B. Zeng等,“一种新的三步搜索算法的块运动估计”,IEEE学报。电路系统。视频技术,4(1994)438-442。
- P. Kuhn,算法,“MPEG-4运动估计的复杂性分析和VLSI架构”,Kluwer学术出版社,Dordrecht, 1999。
- H. G. Musmann, P. Pirsch和H. J. Grallert,“图像编码的进展”,
|