2 AVS整像素运动估计硬件设计
2.1像素截断
由参考文献[2]可知,适当地对像素的低位数据进行截断,并不影响整个运动估计的结果。本文采用的方法并不是真正截断数据,而是利用“与门”将输人像素的低3位变为0,以减少运算量,降低功耗。
2.2内置SAD加法树计算阵列
要实现高性能全搜索可变块运动估计的硬件结构,需要满足资源利用率高、PE个数少、I/0带宽低等条件。本文采用参考文献[3]提出的在计算阵列中内置加法树的方法。计算阵列由8x8个处理单元(PE)及二维加法树组成,如图3所示。采用二维阵列结构提高了硬件资源的利用率;将当前像素储存在阵列寄存器中,不需要反复读人当前像素,PE个数由宏块大小决定,不随着搜索窗大小变化而变化;参考像素存储在移位寄存器组中,每个移位寄存器存储9个像素值,配合蛇形移动的数据传输方式,如图4所示,参考块数据输人经过初始的8个移动周期后,寄存器组中正好存放着一个参考块的像素值,之后的每次移动,寄存器组中的数据只需更新一行新的数据,而有7行数据是与上一个参考块共享的,这样能实现列方向100%的数据重用率,有效地减少了1/0带宽。整个设计结构有4个这样的计算阵列,只需在开始计算时等待25个周期,以后的每个周期计算阵列都将输出整个8x8块的SAD值,保证了数据读人过程中的时钟不被浪费。
2.3进位选择加法器
通过上文介绍的结构可知,每个计算阵列需要使用大量的加法器。当计算小块SAD值时,不仅需要得到当前像素和一个参考像素的差的绝对值,而且需要累加整个块的绝对差值;当计算大块SAD值时,又需要将小块SAD值进行累加。大量的加法器严重影响计算阵列的面积和处理速度,故本设计对加法器进行了改进。目前已有设计选择使用超前进位流水线加法器,其处理速度虽然提高了很多,但是大量并行处理占用了比普通加法器更多的资源。由于进位选择加法器比普通加法器处理速度快,占用的资源比超前进位加法器少,所以本设计选择进位选择加法器。