专利名称:一种分像素运动估计中使用数据路由结构的数据分配方法
技术领域:
本发明属于视频压缩传输技术领域,具体涉及一种分像素运动估计中使用数据路由结构的数据分配方法。
背景技术:
视频压缩编码有很多编码标准,如MPEG-4标准,H. 263标准以及MPEG-2标准, H. 264标准。这几种压缩标准虽然各自针对性不同,但压缩编码方法大体相似都包含了运动估计,运动补偿等。采用上述的编码技术能够使编码效率大大提高,但却使运动估计算法的复杂度成倍增加、计算量大大增加、搜索时间大幅度增长。其中帧间运动估计模块占用了整个编码器的大多数计算和存储资源,因此,帧间运动估计模块的性能直接决定了编码器的性能。帧间运动估计是以宏块为单位以一定的搜索范围在参考帧中得到预测块。其中运动矢量MVOiiotion ventor)就是预测块和当前块位置的差异。一个宏块可以有多种分割方式。帧间运动估计分为整像素运动估计IME(Integer Motion htimation),和分像素运动估计FME (Fractional Motion htimation),其中分像素运动估计是对整像素运动估计结果进行精细加工处理,包括1/2精度,1/4精度和1/8精度。首先在搜索区内找到最佳整像素运动矢量,再在整像素最佳匹配点下寻找最佳1/2匹配点,得到半像素精度的运动矢量,接着在该半像素精度最佳匹配点周围进行1/4像素点搜索,得到1/4像素精度最佳匹配点以及相应的运动矢量。随之精度的不同,依次往下进行。在分数像素运动估计过程中参与运算的数据量大。一个宏块进行分像素匹配运算所需要的子块数目量多,并且子块的大小也不同。对于多参考帧,需要运算的子块数会成倍增长。在分像素运动估计中需要先用滤波器完成不用精度下的插值,而插值后的数据会剧增。这些插值得到的分像素会在运动估计和帧间运动补偿的过程中重复使用,所以尽可能利用过程数据复用就能有效减小硬件实现代价。
发明内容
本发明的目的是提供一种分像素运动估计中使用数据路由结构的数据分配方法, 提高了运动估计的速度,节省了硬件资源。本发明所采用的技术方案是,一种分像素运动估计中使用数据路由结构的数据分配方法,其特征在于,具体步骤如下步骤1、设置寄存器堆RF,将整像素运动估计得到的运动矢量MV与外部输入的插值数据地址进行匹配,得出寄存器堆RF的片选信号Cen,根据片选信号Cen选择有效的分像素数据,并存入寄存器堆RF;步骤2、按照半像素匹配规则,从寄存器堆RF中读取半像素匹配位置的数据;步骤3、按照四分之一像素匹配规则,从寄存器堆RF中读出求四分之一像素所需的半像素数据。其中,对寄存器堆RF进行数据的存入和读取是通过读写使能信号Wen来实现的。步骤1的具体方法如下步骤1. 1、将插值完成的半像素数据逐行送入,随之送入的还有其行地址;步骤1. 2、由整像素运动估计IME送出的运动矢量MV,经过地址变换,得到半像素运动估计所需数据块在搜索窗口中的地址范围;步骤1. 3、使用地址匹配器对步骤1. 1的行地址进行命中匹配,如果该行地址在步骤1. 2的地址,则为命中,否则为非命中,并将命中的数据存入寄存器堆RF。本发明方法将有效数据实时接收并存储,合理分配从前一流水级送入的分像素数据,将有效数据存入寄存器堆RF中,然后将分像素数据按照分像素的匹配特点读出,使经过插值得出的分像素数据使用率达到100%,再次使用率降为0,大大提高了处理效率,并且可以增加数据路由的个数,以并行结构提高处理速度而不增加插值模块的输入输出端口 (I/O)个数。
图1是本发明方法所用的硬件结构图;图2是本发明方法对寄存器堆的读写时序图。
具体实施例方式如图1所示,本发明一种分像素运动估计中使用数据路由结构的数据分配方法, 具体步骤如下步骤1、设置寄存器堆RF(regiSter file),将整像素运动估计IME(Integer motion estimation)得到的运动矢量MV (motion ventor)、与外部输入的插值数据地址进行匹配,得出寄存器堆RF的片选信号Cen,根据片选信号Cen选择有效的分像素数据,并存入寄存器堆RF。步骤1的具体方法如下步骤1. 1、将插值完成的半像素数据逐行送入,随之送入的还有其行地址 address_sw0在送入数据后,先把送入的插值完成的半像素数据根据列信息进行移位,取出相应的有效数据,再把得到的有效数据按照半像素的位置关系进行拼接,直至得到存入RF的数据。步骤1.2、由整像素运动估计IME送出的在搜索窗口 search window中的运动矢量 MV,经过地址变换,得到半像素运动估计所需数据块在搜索窗口 search window中的地址范围,即起始地址到终止地址addr_sta addr_end。其中,地址变换时,运动矢量MV是根据不同的分割模式进行不同的分解,得到所需要匹配的地址。步骤1. 3、使用地址匹配器对步骤1. 1的行地址addreSS_SW进行命中匹配,如果该行地址在步骤1. 2的地址范围addr_Sta addr_end内,则为命中,否则为非命中,将命中的数据存入寄存器堆RF。如图2所示,本发明方法中,对寄存器堆RF进行数据的存入和读取是通过读写使能信号Wen来实现的。其中,片选信号Cen有效时,通过读写使能信号Wen对寄存器堆RF 进行读写操作。如图2所示当片选信号Cen为低电平,读写使能信号Wen为低电平时,数据Data被存入寄存器堆RF中;当片选信号Cen为低电平,读写使能信号Wen为高电平时, 从寄存器堆RF中读出所需要的数据。通过计数器来统计匹配命中的片选信号Cen的个数,也就是统计了存入寄存器堆 RF的数据的个数,当寄存器堆RF没有被填满时,读写使能信号Wen都为低电平就继续对寄存器堆RF写入数据,当寄存器堆RF被填满后,读写使能信号Wen变为高电平,此时就不再对寄存器堆RF写入数据而是开始读取数据。当寄存器堆RF中的数据存入完毕后,开始读取数据。步骤2、按照半像素匹配规则,从寄存器堆RF中读取半像素匹配位置的数据。此时,读写使能信号Wen为高电平。步骤3、按照四分之一像素匹配规则,从寄存器堆RF中读出求四分之一像素所需的半像素数据。此时,读写使能信号Wen为高电平。在分像素运动估计中,本发明方法步骤2和步骤3得到的数据,输出至后续模块并用于计算SATD值(即残差),经过比较,最终得到分像素运动估计的运动矢量MV。如下表所示为本实施例的基本性能参数。其中寄存器堆RF有16组,每个RF的大小为IlXllXSbits ;写周期为80个时钟周期,不同的插值窗口大小对应的写周期也不一样;读一个寄存器堆RF需要11个周期,所以读周期最大为176个周期。
权利要求
1.一种分像素运动估计中使用数据路由结构的数据分配方法,其特征在于,具体步骤如下步骤1、设置寄存器堆RF,将整像素运动估计得到的运动矢量MV与外部输入的插值数据地址进行匹配,得出寄存器堆RF的片选信号Cen,根据片选信号Cen选择有效的分像素数据,并存入寄存器堆RF;步骤2、按照半像素匹配规则,从寄存器堆RF中读取半像素匹配位置的数据;步骤3、按照四分之一像素匹配规则,从寄存器堆RF中读出求四分之一像素所需的半像素数据。
2.按照权利要求1所述的一种分像素运动估计中使用数据路由结构的数据分配方法, 其特征在于,对寄存器堆RF进行数据的存入和读取是通过读写使能信号Wen来实现的。
3.按照权利要求1所述的一种分像素运动估计中使用数据路由结构的数据分配方法, 其特征在于,步骤1的具体方法如下步骤1.1、将插值完成的半像素数据逐行送入,随之送入的还有其行地址;步骤1. 2、由整像素运动估计IME送出的运动矢量MV,经过地址变换,得到半像素运动估计所需数据块在搜索窗口中的地址范围;步骤1. 3、使用地址匹配器对步骤1. 1的行地址进行命中匹配,如果该行地址在步骤 1.2的地址,则为命中,否则为非命中,并将命中的数据存入寄存器堆RF。
全文摘要
本发明公开了一种分像素运动估计中使用数据路由结构的数据分配方法,具体步骤如下设置寄存器堆RF,将运动矢量与插值数据地址进行匹配,得出寄存器堆RF的片选信号Cen,根据片选信号Cen选择有效的分像素数据,并存入寄存器堆RF;按照半像素匹配规则,从寄存器堆RF中读取半像素匹配位置的数据;按照四分之一像素匹配规则,从寄存器堆RF中读出求四分之一像素所需的半像素数据。本发明提高了运动估计的速度,节省了硬件资源。
文档编号H04N7/26GK102420984SQ201110370880
公开日2012年4月18日 申请日期2011年11月21日 优先权日2011年11月21日
发明者余宁梅, 孔睿, 贾文华, 顾梅花 申请人:西安理工大学