全搜索扩展可变块运动估计电路的利记博彩app

文档序号:7762894阅读:429来源:国知局
专利名称:全搜索扩展可变块运动估计电路的利记博彩app
技术领域
本发明涉及的是一种数字视频处理技术领域的装置,具体是一种全搜索扩展可变 块运动估计电路。
背景技术
数字视频传输的图像数据中往往存在着大量的冗余数据,如果可以将那些冗余数 据除去,从而可以大大减少数据的传输量。运动估计(Motion Estimation,简称ME)通过消 除运动图像中时间域的相关性,计算两帧之间的参考块的绝对差值(the Sum of Absolute Difference,简称SAD),由于两帧之间的差可以用比帧内编码少得多的比特数来编码,从而 达到压缩图像的目的。运动补偿(Motion Compensation,简称MC)利用先前图像和运动估 计的结果来预测、补偿当前的图像。由于视频图像是位于时间轴区间内的一组连续画面,因此相邻帧间的变化量一般 很小,仅是运动物体的空间位置略有移动。因此运动估计和运动补偿技术是去除大量冗余 的有效方法。运动估计作为视频编码器的核心部件,也是视频压缩中的最复杂的部分,对视频 图像的编码压缩质量起到决定性的作用。在运动估计的算法研究中,人们针对不同应用提 出了多种不同的算法;在这些算法中,最为经典且具有实用性的为全搜索块匹配算法(Full Search BlockMatching Algorithm,简称 FSBM 算法)。全搜索块匹配算法(FullSearch Block Matching Algorithm,简称 FSBM 算法) 是指,将图像中的一帧的搜索区域划分成许多互不重叠的16X16像素宏块(Macro-Block, 简称MB)之后,每一宏块与相邻帧搜索区域的所有块的像素值进行比较匹配来得到最佳匹 配块,即具有与当前块比较匹配后拥有最小SAD值的块。所得的匹配块与当前块的相对位 移称为运动矢量(Motion Vector,简称MV)。视频压缩编码时,仅对运动矢量编码即可。基于宏块的全搜索块匹配算法结构简单,易于硬件实现,硬件电路结构整齐,并且 可重复性高,易于扩展,并能够得到全局最优的运动矢量,因此被广泛应用于各种视频编码 标准中。该算法的最大缺点是运算量较大。在基于宏块的运动估计的基础上,人们又引入的基于可变块的运动估计算法。与 基于宏块的运动估计算法不同,在可变块运动估计算法中,进行运动估计的块除了包括 16X16像素的宏块外,还包括4X4、4X8、8X4、8X8、8X16、16X8等不同大小的块。在当前正在制定的High Performance Coding标准中,人们提出了扩展可变块运 动估计算法,进行运动估计的块包括4X 4、4X 8、8 X 4、8 X 8、8 X 16、16 X 8、16 X 16、16 X 32、 32X16、32X32、32X64、64X32、64X64像素这些大小不同的块。通过检索,并未发现针对扩展可变块运动估计算法的电路结构。且如果套用现有 的算法和已有的结构则需要64X64个运算处理单元(简称PE),造成硬件开销过大;如果 将其分解为16X16的小块进行计算,则会需要较大的输入端口和较大的存储空间。

发明内容
本发明针对现有技术存在的上述不足,提供一种全搜索扩展可变块运动估计电 路,利用PE上下左右侧的缓存阵列以及控制信号对数据流的控制来实现用64X4的运动估 计PE阵列来完成64X64大小宏块的扩展可变块运动估计。本发明是通过以下技术方案实现的,本发明包括四个缓存阵列、一个PE阵列,其 中第一缓存阵列的数据双向输入输出端口分别与PE阵列的第一数据输入输出端、第三缓 存阵列的上侧三行数据输入输出端、第四缓存阵列的上侧三行数据输入输出端相连接并传 输搜索区域数据信息,第二缓存阵列的数据双向输入输出端口分别与PE阵列的第二数据 输入输出端、第三缓存阵列的下侧三行数据输入输出端、第四缓存阵列的下侧三行数据输 入输出端相连接并传输搜索区域数据信息,第三缓存阵列的数据双向输入输出端口与PE 阵列的第三数据输入输出端、第一缓存阵列的左侧数据输入输出端、第二缓存阵列的左侧 数据输入输出端相连接并传输搜索区域数据信息,第四缓存阵列的数据双向输入输出端口 与PE阵列的第四数据输入输出端、第一缓存阵列的右侧数据输入输出端、第二缓存阵列的 右侧数据输入输出端连接并传输搜索区域数据信息,PE阵列的数据输入端接收搜索区域数 据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的数据输入端接收 搜索区域数据流及其控制信号。所述的PE阵列由16个4X4的双向纵向级联的基本宏块PE阵列构成,该基本宏 块PE阵列处理的数据包括搜索区域数据部分和参考块数据部分,其中搜索区域数据部 分在基本宏块PE阵列内进行横向双向传递及纵向双向传递并在基本宏块PE阵列之间纵向 双向传递;参考块数据部分在基本宏块PE阵列内进行依次单向传递。所述的第一缓存阵列为3X4个缓存组成,其中缓存阵列中的每一个缓存均与其 左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。所述的第二缓存阵列为3X4个缓存组成,其中缓存阵列中的每一个缓存均与其 左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。所述的第三缓存阵列为70X3个缓存组成;其中缓存阵列中的每一个缓存均与 其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。所述的第四缓存阵列为70X3个缓存组成;其中缓存阵列中的每一个缓存均与 其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。所述的PE阵列与缓存阵列之间连接关系为PE阵列与第一、第二缓存阵列的互联 为纵向双向级联,进行搜索区域数据的双向传播;PE阵列与第三、第四缓存阵列的互联为 横向双向级联,进行搜索区域的数据的双向传播;PE阵列上下两侧的第一、第二缓存阵列 与左右两侧的第三、第四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传 播。本发明电路通过以下方式进行工作本发明结构主要由PE阵列及其上、下、左、右侧的第一、第二、第三、第四缓存阵列 构成。PE阵列负责SAD值的计算及搜索区域和参考块数据的传递,缓存阵列负责搜索区域 数据的暂存及传递。PE阵列由16个4X 4的基本宏块PE阵列构成,每个基本宏块PE阵列由16个PE 相互连接构成,第一行PE依次为?、(1,?、1冲、2卞£(1.3,第二行?£依次为PEi^PEi^PEu,PE1^,第三行 PE 依次为 PE2,。,PE2a, PE2j2, PE2.3,第四行 PE 依次为 PE3,。,PE3il,PE3,2,PE3.3。基 本宏块阵列中的每一个PE都与其左右相邻的PE之间横向双向输入输出连接,与其上下相 邻的PE之间纵向双向输入输出连接,且横向和纵向的双向连接传输的数据为搜索区域数 据。此夕卜,PE0,ο,PEli0' PE2,ο' PE3,0,PE0,ι,PEiaj PE2,” PE3,” PE0,2,PEli2, PE2,2,PE3,2,PE0,3,PE1, 3,PE2,3, PE3,3之间依次顺次连接,连接所传输的数据为参考块的数据,参考块数据从PEu输 入,依次传输至PE3,3为止。如图3所示。每个PE内部结构主要包括搜索区域数据的暂存及传输,参考块数据的选择、暂存 和传输,SAD值的计算及暂存。每个时钟周期,搜索区域数据在控制信号的控制下上、下、 左、右输入和输出PE并暂存Reg_s,并将需要进行计算的搜索区域数据输入SAD计算模块
x_y I,参考块的数据在Rfr_pxl_Ctrl信号的控制下选择进入Regl向外输出或进入Reg2 并输入到SAD计算模块I x-y I,SAD计算模块I x-y |进行SAD值计算后结果进入暂存Reg并 输出。如图4所示。数据流在控制信号的控制下,PE阵列每个时钟周期都进行一个64X4的基本块条 带SAD值的计算,并输出;则16个时钟周期输出16个基本块条带的SAD值,256个时钟周期 则可以得到16个64X64的宏块的SAD值。从而达到对扩展可变块进行运动估计的目标。再将输出的SAD值利用加法树结构来叠加,则由64X4的基本块条带SAD值可得 到64X64的宏块的SAD值。本发明提出了一种全新的针对扩展可变块的运动估计电路,使得其运算阵列所占 用的硬件开销与传统的可变块运动估计电路相当,而在内部缓存和输入端口有很好的折 中,使得其在HDTV和更大图像的编码中有很好的应用前景。


图1为本发明结构示意图。图2为SAD值的加法树结构示意图。图3为BBPEA的电路结构示意图。图4为PE内部电路结构示意图。图5为第一缓存阵列的电路结构示意图。图6为第二缓存阵列的电路结构示意图。图7为第三缓存阵列的电路结构示意图。图8为第四缓存阵列的电路结构示意图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行 实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施 例。如图1所示,本实施例包括第一缓存阵列1、第二缓存阵列2、第三缓存阵列3、第 四缓存阵列4和PE阵列5,其中第一缓存阵列1的数据双向输入输出端口分别与PE阵列 5的第一数据输入输出端、第三缓存阵列3的上侧三行数据输入输出端、第四缓存阵列4的 上侧三行数据输入输出端相连接并传输搜索区域数据信息,第二缓存阵列2的数据双向输入输出端口分别与PE阵列5的第二数据输入输出端、第三缓存阵列3的下侧三行数据输入 输出端、第四缓存阵列4的下侧三行数据输入输出端相连接并传输搜索区域数据信息,第 三缓存阵列3的数据双向输入输出端口与PE阵列5的第三数据输入输出端、第一缓存阵列 1的左侧数据输入输出端、第二缓存阵列2的左侧数据输入输出端相连接并传输搜索区域 数据信息,第四缓存阵列4的数据双向输入输出端口与PE阵列5的第四数据输入输出端、 第一缓存阵列1的右侧数据输入输出端、第二缓存阵列2的右侧数据输入输出端连接并传 输搜索区域数据信息,PE阵列5的数据输入端接收搜索区域数据流及其控制信号、参考块 数据流及其控制信号,第一至第四缓存阵列4的数据输入端接收搜索区域数据流及其控制 信号。所述的PE阵列5由16个4X4的双向纵向级联的基本宏块PE阵列6、7、…、22 组成,该基本宏块PE阵列处理的数据包括搜索区域数据部分23和参考块数据部分24,其 中搜索区域数据部分23在基本宏块PE阵列内进行横向双向传递及纵向双向传递并在基 本宏块PE阵列之间纵向双向传递;参考块数据部分24在基本宏块PE阵列内进行依次单向 传递。如图5所示,所述的第一缓存阵列1为3X4个缓存组成,顶端一行的缓存依次为 R0,0' R0,!' Ro,2' Ru,每一个缓存都有左、右、下侧三个方向的数据双向输入及输出;第二行的 缓存依次为Ru,Ria, Rlj2, R1j3'第三行的缓存依次为R2,。,R2jl'R2,2' R2,3,第二行和第三行的每 一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出。最左侧的缓存Ru,Ru,R2, O与第一缓存阵列外左侧横向输入输出双向连接,最右侧的缓存Ru,Ru,R2,3与第一缓存阵 列外右侧横向输入输出双向连接,最下侧的缓存R2,ο,R2,!' R2,2' R2,3与第一缓存阵列外下侧 纵向输入输出双向连接。如图6所示,所述的第二缓存阵列2为3X4个缓存组成,底端一行的缓存依次为 R2,0,R2,!' R2,2' R2,3,每一个缓存都有左、右、上侧三个方向的数据双向输入及输出;第二行的 缓存依次为礼,。,Ria, Rlj2, R1j3'第一行的缓存依次为Rtl,。,R0,i'R0,2' R。,3,第一行和第二行的每 一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出,最左侧的缓存Ru,R1,ο' R2,ο 与第二缓存阵列外左侧横向输入输出双向连接,最右侧的缓存R0,3,Ru,R2,3与第二缓存阵 列外右侧横向输入输出双向连接,最上侧的缓存Ru,Ro,i' R0,2'礼,3与第二缓存阵列外上侧 纵向输入输出双向连接。如图7所示,所述的第三缓存阵列3为70X3个缓存组成,最左侧一列的缓存依次 为礼,。,礼,。……R69,C1,其中对于R1^R2itl……R68,ο,每一个缓存都有右、上、下侧三个方向的数 据双向输入及输出,及左侧数据的输入;而Ru仅有右、下侧方向的数据双向输入及输出, 左侧的数据输入;R69itl仅有右、上侧方向的数据双向输入及输出,左侧的数据输入。中间一 列缓存依次为Rcm, Ria……R69il,最右侧一列缓存依次为Rtl,2,Rli2……R69,2,这两列缓存中, Rlll,R2jl……!^〃及礼』,R2,2……R68,2的每一个缓存均有左、右、上、下侧四个方向的数据双 向输入及输出;而Rtl,pR。』仅有左、右、下侧方向的数据双向输入及输出A69ll,R69,2仅有左、 右、上侧方向的数据双向输入及输出,最左侧的缓存Ru,R1^……R69,ο与第三缓存阵列外左 侧横向输入连接,最右侧的缓存Rtl,2,礼,2……R69,2与第三缓存阵列外右侧横向输入输出双向 连接,最上侧的缓存Rtl,。,R0jl' R0,2' R0,3没有上侧的输入输出连接,R69j0' R69,I' R69,2,R69,3没有 下侧的输入输出连接。
如图8所示,所述的第四缓存阵列4为70X3个缓存组成,最右侧一列的缓存依次 为礼,2,礼,2……R69,2,其中对于R1^R2i2……R68,2,每一个缓存都有左、上、下侧三个方向的数 据双向输入及输出,及右侧数据的输入;而Rc^2仅有左、下侧方向的数据双向输入及输出, 右侧的数据输入;R69,2仅有左、上侧方向的数据双向输入及输出,右侧的数据输入。中间一 列缓存依次为Rcm, Ria……R69il,最左侧一列缓存依次为Rtl,。,Ru……R69,。,这两列缓存中, Rlll,R2jl……!^〃及礼,。,R2,Q……R68,。的每一个缓存均有左、右、上、下侧四个方向的数据双 向输入及输出;而Rtl,”礼,。仅有左、右、下侧方向的数据双向输入及输出A69ll,R69,。仅有左、 右、上侧方向的数据双向输入及输出,最左侧的缓存Ru,R1^……R69,。与第四缓存阵列外左 侧横向输入输出双向连接,最右侧的缓存Rtl,2,礼,2……R69,2与第三缓存阵列外右侧横向输入 连接,最上侧的缓存Rtl,。,R0jl' R0,2' R0,3没有上侧的输入输出连接,R69j0' R69,I' R69,2,R69,3没有 下侧的输入输出连接。所述的PE阵列5与缓存阵列之间连接关系为PE阵列5与第一缓存阵列1、第二 缓存阵列2的互联为纵向双向级联,进行搜索区域数据的双向传播;PE阵列5与第三缓存 阵列3、第四缓存阵列4的互联为横向双向级联,进行搜索区域的数据的双向传播;PE阵列 5上下两侧的第一缓存阵列1、第二缓存阵列2与左右两侧的第三缓存阵列3、第四缓存阵列 4的互联为横向双向级联,进行搜索区域的数据的双向传播。PE阵列5左右两侧的第三缓存阵列3、第四缓存阵列4的搜索区域的数据输入可 以由整体电路的外部输入端输入其左侧或右侧,也有从运算单元阵列和第一缓存阵列1、第 二缓存阵列2中输入其右侧或左侧,既有数据内部的互联,又有外部的数据输入;而PE阵列 5上下侧的第一缓存阵列1、第二缓存阵列2的搜索区域数据均由与其相邻的第三缓存阵列 3、第四缓存阵列4从左右侧输入,或由PE阵列5中数据从上下侧输入,仅为内部数据的互 联,没有外部数据输入。第三缓存阵列3、第四缓存阵列4的搜索区域的数据输入以四分之一列为单位输 入,经过4个时钟周期完成一列搜索区域数据传送值左或右侧缓存阵列的最外侧。由于PE 阵列5的搜索区域数据由缓存阵列中直接互联传输,因此数据控制信号shift[l:0]控制为 左右移动数据时,每个时钟周期均可移动一列数据,即一个时钟周期就可完成数据左右传 送至PE阵列或第一缓存阵列1、第二缓存阵列2。参考块的数据位宽共为16X8bit = 128bit,分别输入至16个4X4的基本宏块 PE阵列6、7、…、22的输入中,且16个基本宏块PE阵列6、7、…、22的参考块数据输入是 并行同步的。一共需要16个时钟周期能够完成一次64X4像素的参考块数据到达各个目 的PE中。从而每个基本宏块PE阵列6、7、…、22每个时钟周期均可输出一组16个SAD值, 每16个时钟周期可输出16组每组16个SAD值;64X4的PE阵列每个时钟周期均可输出 256个SAD值,每16个时钟周期可输出16组每组256个SAD值。PE阵列每16个时钟周期 输出的16组SAD值恰为对应搜索窗中一个4X4小块内的各点对应的16个64X4像素的 基本块条带与参考块中的一个基本块条带之间计算64X4像素的SAD值所需的各点的SAD 值。4X 4块的SAD值叠加模块由于上节所描述PE阵列5和第一缓存阵列1、第二缓存阵列2、第三缓存阵列3、第四缓存阵列4电路结构得到的输出为单个像素点的SAD值,并且希望能够得到4X4像素 的基本宏块的SAD值,因此SAD值的叠加首先将各个基本宏块PE阵列6、7、…、22得到16 个SAD值相加得到4X4像素的基本宏块的SAD值,通过加法树得到4X4的基本宏块的SAD 值。由16个单独的SAD相加得到一个4X4像素的SAD值的加法树如图2所示。然后类似 的,再将这些值相加得到64X4像素的基本块条带的SAD值。然后每隔16个时钟周期,将各个相应的64X4像素的基本块条带的SAD值输入相 应的累加器,经过256个时钟周期的15次叠加得到最终64X64的宏块的SAD值。共有16 个64X4像素的SAD值累加至64X64像素的SAD值的累加器。每16个时钟周期输出的各个基本块条带的SAD值的输出顺序都不同,因此需要有 控制信号对每个时钟周期输出的基本块条带的64X4像素的SAD值的连接进行选择。以状 态机的形式,将扫描顺序划分为不同模式,每一种扫描模式在16个时钟周期内的16个SAD 值分别属于不同的累加器。基本宏块PE阵列结构6、7、…、22如图3所示,将64行X 4列的PE阵列5划分为16个4X 4的基本宏块PE阵列 (BBPEA)6,7,…、22,不仅有利于控制参考块的数据传输,而且阵列整齐,方便产生4X4的 基本宏块的SAD值,且具有可重复性。由图3中的基本宏块PE阵列6、7、…、22可以看到,虚线线条代表参考块的像素 数据流,位宽为1像素的8bit ;实线线条代表搜索区域的当前块的像素数据流,位宽同样为 1像素的8bit。可以看到,参考块的数据又左上角的第一个PE开始,依次进入该基本宏块 阵列6、7、…、22的各个PE中,只需将输入的参考块数据倒序依次进入,并控制数据用于运 算的时序,即可完成参考块数据的传输。搜索区域的当前块的数据的内部传输,采用广播式 的上下左右互联,与外部的上下左右互联也类似,内部数据流和内外数据流的上、下、左、右 的控制由控制信号shift[l:0]统一控制。一个基本宏块阵列(6、7、…、22)的输入主要有时钟信号clk,复位信号rst_n,搜 索区域数据流的控制信号shift[l:0],上、下、左、右的搜索区域的当前块的像素点的数据 输入,参考块的像素数据输入及控制信号;输出16个SAD值。一个PE内部电路结构如图4所示,虚线线条代表参考块的像素数据流,位宽为1像素的Sbit ;实线线条 代表搜索区域的当前块的像素数据流,位宽同样为1像素的8bit ;紫红色线条代表输出一 个参考块像素点和一个搜索区域的当前块的点的SAD值输出。一个PE的主要功能为求出参考块的一个像素和搜索区域的当前块的一个像素之 间的差的绝对值,并完成参考块的一个像素点的数据和搜索区域的一个像素点的数据的传 输。其中,参考块的数据由相邻的PE传入并传送至下一个相邻的PE中,搜索区域的像素分 别向上、下、左、右四个方向传送。参考块的数据的传送采用乒乓模式,Regl和Reg2交替工作以保证参考块数据的 传输和应用。非本PE所需的参考块的像素值放入Regl中,然后将此数据不断向下传输,以 保证参考块数据的传输的流水型;根据算法的设计,本PE计算所需的参考块数据将在每16 个时钟周期的最后一个周期进入,则将该数据送至Reg2。每十六个时钟周期为一个循环,在 上一次16个时钟周期的完成16个基本块条带的SAD计算时,恰好完成下一次的16个时钟周期的16个基本块条带的SAD计算所需的参考块的数据。—个PE的输入主要有时钟信号clk,复位信号rst_n,搜索区域数据流的控制信号 shift[l:0],上、下、左、右的搜索区域的当前块的像素点的数据输入,参考块的像素数据输 入及控制信号;输出1个像素的SAD值。第一缓存阵列1、第二缓存阵列2结构搜索区域的数据以列为单位进入,第一缓存阵列1、第二缓存阵列2中的搜索区域 的数据由上下的PE阵列和第三缓存阵列3、第四缓存阵列4传送进入,并非由外界直接进 入。第一缓存阵列1、第二缓存阵列2的列数设置为与PE阵列一致,为4列。根据搜索区域的数据流的分析,第一缓存阵列1、第二缓存阵列2仅需设计为分别 可存储3行像素的数据的大小即可。以第一缓存阵列1为例,如图5所示。第一缓存阵列1中,除了最上面一排的寄存器没有上端数据输入外,每个数据寄 存器均有横向和纵向的4个方向数据的双向连接输入和输出。同理,PE阵列5下侧的第二 缓存阵列2中,除了最下面一排的寄存器没有下端数据输入外,每个数据寄存器均有横向 和纵向的4个方向数据的双向连接输入和输出。第二缓存阵列2与上侧对称,如图6所示。PE阵列5上下侧的第一缓存阵列1和第二缓存阵列2的输入输出信号主要有时钟 信号clk,复位信号rst_n,搜索区域数据流的控制信号shift[l:0],上、下、左、右的搜索区 域的当前块的像素点的数据输入,参考块的像素数据输入及控制信号;输出为上、下、左、右 的搜索区域的当前块的像素点的数据。第三缓存阵列3、第四缓存阵列4结构设计为搜索区域的数据以列为单位进入,综合考虑第一缓存阵列1、第二缓存阵列 2与PE阵列5结构及搜索区域数据流,设置第三缓存阵列3、第四缓存阵列4的行数应为 64+3+3 = 70 行。搜索区域的数据流的分析,以列为单位数据进入,将第三缓存阵列3、第四缓存阵 列4设计为分别可存储3列像素的数据即可。即第三缓存阵列3、第四缓存阵列4均为70X3 列。以PE左侧的第三缓存阵列3为例,如图7所示。第三缓存阵列3中,除了最左面一列的寄存器的左端仅有数据输入仅有输出外, 每个数据寄存器均有横向和纵向的4个方向数据的双向连接输入和输出。同理,第四缓存 阵列4中,除了最右侧一列的寄存器的右端仅有数据输入没有输出外,每个数据寄存器均 有横向和纵向的4个方向数据的双向连接输入和输出。第四缓存阵列4与左侧对称,如图8所示。第三缓存阵列3、第四缓存阵列4的输入输出信号主要有时钟信号clk,复位信号 rst_n,搜索区域数据流的控制信号shift[l:0],上、下、左、右的搜索区域的当前块的像素 点的数据输入,参考块的像素数据输入及控制信号;输出为上、下、左、右的搜索区域的当前 块的像素点的数据。由于全搜索可变块运动估计算法的计算量较大,所以一般采用ASIC的方式进行 芯片实现。根据视频应用的不同,可变块运动估计的电路结构可分为一维阵列结构和二维阵列结构两类。对于较小的视频图像,一般采用一维的阵列结构完成全搜索可变块运动估 计算法的计算任务。而对于较大图像的视频压缩,例如HDTV或者更大图像的视频编码,一 般采用二维阵列结构来实现可变块运动估计算法,且阵列的规模一般要大于或者等于算法 中最大块中像素的个数。对于扩展块的运动估计算法,其最大的块为64X64像素。如果套用当前的可变块 运动估计VLSI结构,则电路中将包括64 X 64个运算处理单元,差不多是传统结构硬件开销 的16倍。同时,如果将64X64像素宏块SAD值计算顺序分解为依次算出组成64X64像素 宏块的16个小块的SAD值,然后将这些小SAD相加得到宏块的SAD值,则会导致缺少数据复 用,因此需要较多的输入端口 ;另一方面,如果宏块SAD值计算顺序为计算出所有16X16MB 与参考块的搜索范围的所有SAD值后,将其寄存在buffer中,再将各SAD值进行相加得到 大的宏块的SAD值,而这样的策略会导致需要大量的buffer,需较大的存储空间。在提出的扩展可变块运动估计电路结构中,得到了一种全新的电路结构,其阵列 的大小与传统的可变块运动估计电路的阵列规模相似,仅需要64X4个运算处理单元(远 少于64 X 64个);且在输入端口和内部缓存上进行了较好的折中,使得其在HDTV及其更大 图像的编码中具有较好的应用前景。
权利要求
一种全搜索扩展可变块运动估计电路,其特征在于,包括四个缓存阵列、一个PE阵列,其中第一缓存阵列的数据双向输入输出端口分别与PE阵列的第一数据输入输出端、第三缓存阵列的上侧三行数据输入输出端、第四缓存阵列的上侧三行数据输入输出端相连接并传输搜索区域数据信息,第二缓存阵列的数据双向输入输出端口分别与PE阵列的第二数据输入输出端、第三缓存阵列的下侧三行数据输入输出端、第四缓存阵列的下侧三行数据输入输出端相连接并传输搜索区域数据信息,第三缓存阵列的数据双向输入输出端口与PE阵列的第三数据输入输出端、第一缓存阵列的左侧数据输入输出端、第二缓存阵列的左侧数据输入输出端相连接并传输搜索区域数据信息,第四缓存阵列的数据双向输入输出端口与PE阵列的第四数据输入输出端、第一缓存阵列的右侧数据输入输出端、第二缓存阵列的右侧数据输入输出端连接并传输搜索区域数据信息,PE阵列的数据输入端接收搜索区域数据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的数据输入端接收搜索区域数据流及其控制信号。
2.根据权利要求1所述的全搜索扩展可变块运动估计电路,其特征是,所述的PE阵列 由16个4X4的双向纵向级联的基本宏块PE阵列构成,该基本宏块PE阵列处理的数据包 括搜索区域数据部分和参考块数据部分,其中搜索区域数据部分在基本宏块PE阵列内 进行横向双向传递及纵向双向传递并在基本宏块PE阵列之间纵向双向传递;参考块数据 部分在基本宏块PE阵列内进行依次单向传递。
3.根据权利要求1所述的全搜索扩展可变块运动估计电路,其特征是,所述的第一缓 存阵列和第二缓存阵列均为3X4个缓存组成,其中的每一个缓存均与其左右相邻的缓存 横向双向连接,与其上下相邻的缓存纵向双向连接。
4.根据权利要求1所述的全搜索扩展可变块运动估计电路,其特征是,所述的第三缓 存阵列和第四缓存阵列均为70X3个缓存组成;其中的每一个缓存均与其左右相邻的缓存 横向双向连接,与其上下相邻的缓存纵向双向连接。
5.根据权利要求1所述的全搜索扩展可变块运动估计电路,其特征是,所述的PE阵列 与缓存阵列之间连接关系为PE阵列与第一、第二缓存阵列的互联为纵向双向级联,进行 搜索区域数据的双向传播;PE阵列与第三、第四缓存阵列的互联为横向双向级联,进行搜 索区域的数据的双向传播;PE阵列上下两侧的第一、第二缓存阵列与左右两侧的第三、第 四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传播。
全文摘要
一种数字视频处理技术领域的全搜索扩展可变块运动估计电路,包括四个缓存阵列、一个PE阵列,第一缓存阵列的输出端口与PE阵列的第一数据输入端相连接并传输搜索区域数据信息,第二缓存阵列的输出端口与PE阵列的第二数据输入端相连接并传输搜索区域数据信息,第三缓存阵列的输出端口与PE阵列的第三数据输入端相连接并传输搜索区域数据信息,第四缓存阵列的输出端口与PE阵列的第四数据输入端相连接并传输搜索区域数据信息,PE阵列的输入端接收搜索区域数据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的参考数据输入端接收搜索区域数据流及其控制信号。本发明实现用64×4的运动估计PE阵列来完成64×64大小宏块的扩展可变块运动估计。
文档编号H04N7/26GK101945289SQ20101051685
公开日2011年1月12日 申请日期2010年10月22日 优先权日2010年10月22日
发明者何卫锋, 毛志刚, 陈伟伟 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1