CN101945289B - 全搜索扩展可变块运动估计电路 - Google Patents
全搜索扩展可变块运动估计电路 Download PDFInfo
- Publication number
- CN101945289B CN101945289B CN 201010516852 CN201010516852A CN101945289B CN 101945289 B CN101945289 B CN 101945289B CN 201010516852 CN201010516852 CN 201010516852 CN 201010516852 A CN201010516852 A CN 201010516852A CN 101945289 B CN101945289 B CN 101945289B
- Authority
- CN
- China
- Prior art keywords
- array
- data
- cache
- input
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种数字视频处理技术领域的全搜索扩展可变块运动估计电路,包括:四个缓存阵列、一个PE阵列,第一缓存阵列的输出端口与PE阵列的第一数据输入端相连接并传输搜索区域数据信息,第二缓存阵列的输出端口与PE阵列的第二数据输入端相连接并传输搜索区域数据信息,第三缓存阵列的输出端口与PE阵列的第三数据输入端相连接并传输搜索区域数据信息,第四缓存阵列的输出端口与PE阵列的第四数据输入端相连接并传输搜索区域数据信息,PE阵列的输入端接收搜索区域数据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的参考数据输入端接收搜索区域数据流及其控制信号。本发明实现用64×4的运动估计PE阵列来完成64×64大小宏块的扩展可变块运动估计。
Description
技术领域
本发明涉及的是一种数字视频处理技术领域的装置,具体是一种全搜索扩展可变块运动估计电路。
背景技术
数字视频传输的图像数据中往往存在着大量的冗余数据,如果可以将那些冗余数据除去,从而可以大大减少数据的传输量。运动估计(Motion Estimation,简称ME)通过消除运动图像中时间域的相关性,计算两帧之间的参考块的绝对差值(the Sum ofAbsolute Difference,简称SAD),由于两帧之间的差可以用比帧内编码少得多的比特数来编码,从而达到压缩图像的目的。运动补偿(Motion Compensation,简称MC)利用先前图像和运动估计的结果来预测、补偿当前的图像。
由于视频图像是位于时间轴区间内的一组连续画面,因此相邻帧间的变化量一般很小,仅是运动物体的空间位置略有穆动。因此运动估计和运动补偿技术是去除大量冗余的有效方法。
运动估计作为视频编码器的核心部件,也是视频压缩中的最复杂的部分,对视频图像的编码压缩质量起到决定性的作用。在运动估计的算法研究中,人们针对不同应用提出了多种不同的算法;在这些算法中,最为经典且具有实用性的为全搜索块匹配算法(Full Search Block Matching Algorithm,简称FSBM算法)。
全搜索块匹配算法(Full Search Block Matching Algorithm,简称FSBM算法)是指,将图像中的一帧的搜索区域划分成许多互不重叠的16×16像素宏块(Macro-Block,简称MB)之后,每一宏块与相邻帧搜索区域的所有块的像素值进行比较匹配来得到最佳匹配块,即具有与当前块比较匹配后拥有最小SAD值的块。所得的匹配块与当前块的相对位穆称为运动矢量(Motion Vector,简称MV)。视频压缩编码时,仅对运动矢量编码即可。
基于宏块的全搜索块匹配算法结构简单,易于硬件实现,硬件电路结构整齐,并且可重复性高,易于扩展,并能够得到全局最优的运动矢量,因此被广泛应用于各种视频编码标准中。该算法的最大缺点是运算量较大。
在基于宏块的运动估计的基础上,人们又引入的基于可变块的运动估计算法。与基于宏块的运动估计算法不同,在可变块运动估计算法中,进行运动估计的块除了包括16×16像素的宏块外,还包括4×4、4×8、8×4、8×8、8×16、16×8等不同大小的块。
在当前正在制定的High Performance Coding标准中,人们提出了扩展可变块运动估计算法,进行运动估计的块包括4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64像素这些大小不同的块。
通过检索,并未发现针对扩展可变块运动估计算法的电路结构。且如果套用现有的算法和已有的结构则需要64×64个运算处理单元(简称PE),造成硬件开销过大;如果将其分解为16×16的小块进行计算,则会需要较大的输入端口和较大的存储空间。
发明内容
本发明针对现有技术存在的上述不足,提供一种全搜索扩展可变块运动估计电路,利用PE上下左右侧的缓存阵列以及控制信号对数据流的控制来实现用64×4的运动估计PE阵列来完成64×64大小宏块的扩展可变块运动估计。
本发明是通过以下技术方案实现的,本发明包括:四个缓存阵列、一个PE阵列,其中:第一缓存阵列的数据双向输入输出端口分别与PE阵列的第一数据输入输出端、第三缓存阵列的上侧三行数据输入输出端、第四缓存阵列的上侧三行数据输入输出端相连接并传输搜索区域数据信息,第二缓存阵列的数据双向输入输出端分别与PE阵列的第二数据输入输出端、第三缓存阵列的下侧三行数据输入输出端、第四缓存阵列的下侧三行数据输入输出端相连接并传输搜索区域数据信息,第三缓存阵列的数据双向输入输出端口与PE阵列的第三数据输入输出端、第一缓存阵列的左侧数据输入输出端、第二缓存阵列的左侧数据输入输出端连接并传输搜索区域数据信息,第四缓存阵列的数据双向输入输出端口与PE阵列的第四数据输入输出端、第一缓存阵列的右侧数据输入输出端、第二缓存阵列的右侧数据输入输出端连接并传输搜索区域数据信息,PE阵列的输入端接收搜索区域数据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的数据输入端接收搜索区域数据流及其控制信号。
所述的PE阵列由16个4×4的双向纵向级联的基本宏块PE阵列构成,该基本宏块PE阵列处理的数据包括:搜索区域数据部分和参考块数据部分,其中:搜索区域数据部分在基本宏块PE阵列内进行横向双向传递及纵向双向传递并在基本宏块PE阵列之间纵向双向传递;参考块数据部分在基本宏块PE阵列内进行依次单向传递。
所述的第一缓存阵列为3×4个缓存组成,其中:缓存阵列中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。
所述的第二缓存阵列阵列为3×4个缓存组成,其中:缓存阵列中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。
所述的第三缓存阵列为70×3个缓存组成:其中:缓存阵列中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。
所述的第四缓存阵列为70×3个缓存组成:其中:缓存阵列中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接。
所述的PE阵列与缓存阵列之间连接关系为:PE阵列与第一、第二缓存阵列的互联为纵向双向级联,进行搜索区域数据的双向传播;PE阵列与第三、第四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传播;PE阵列上下两侧的第一、第二缓存阵列与左右两侧的第三、第四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传播。
本发明电路通过以下方式进行工作:
本发明结构主要由PE阵列及其上、下、左、右侧的第一、第二、第三、第四缓存阵列构成。PE阵列负责SAD值的计算及搜索区域和参考块数据的传递,缓存阵列负责搜索区域数据的暂存及传递。
PE阵列由16个4×4的基本宏块PE阵列构成,每个基本宏块PE阵列由16个PE相互连接构成,第一行PE依次为PE0,0,PE0,1,PE0,2,PE0,3,第二行PE依次为PE1,0,PE1,1,PE1,2,PE1,3,第三行PE依次为PE2,0,PE2,1,PE2,2,PE2.3,第四行PE依次为PE3,0,PE3,1,PE3,2,PE3.3。基本宏块阵列中的每一个PE都与其左右相邻的PE之间横向双向输入输出连接,与其上下相邻的PE之间纵向双向输入输出连接,且横向和纵向的双向连接传输的数据为搜索区域数据。此外,PE0,0,PE1,0,PE2,0,PE3,0,PE0,1,PE1,1,PE2,1,PE3,1,PE0,2,PE1,2,PE2,2,PE3,2,PE0,3,PE1,3,PE2,3,PE3,3,之间依次顺次连接,连接所传输的数据位参考块的数据,参考块数据从PE0,0输入,依次传输至PE3,3为止。如图3所示。
每个PE内部结构主要包括搜索区域数据的暂存及传输,参考块数据的选择、暂存和传输,SAD值的计算及暂存。每个时钟周期,搜索区域数据在控制信号的控制下上、下、左、右输入和输出PE并暂存Reg_s,并将需要进行计算的搜索区域数据输入SAD计算模块|x-y|,参考块的数据在Rfr_pxl_ctrl信号的控制下选择进入Reg1向外输出或进入Reg2并输入到SAD计算模块|x-y|,SAD计算模块|x-y|进行SAD值计算后结果进入暂存Reg并输出。如图4所示。
数据流在控制信号的控制下,PE阵列每个时钟周期都进行一个64×4的基本块条带SAD值的计算,并输出;则16个时钟周期输出16个基本块条带的SAD值,256个时钟周期则可以得到16个64×64的宏块的SAD值。从而达到对扩展可变块进行运动估计的目标。
再将输出的SAD值利用加法树结构来叠加,则由64×4的基本块条带SAD值可得到64×64的宏块的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个4×4的双向纵向级联的基本宏块PE阵列6、7、…、21组成,该基本宏块PE阵列处理的数据包括:搜索区域数据部分23和参考块数据部分24,其中:搜索区域数据部分23在基本宏块PE阵列内进行横向双向传递及纵向双向传递并在基本宏块PE阵列之间纵向双向传递;参考块数据部分24在基本宏块PE阵列内进行依次单向传递。
如图5所示,所述的第一缓存阵列1为3×4个缓存组成,顶端一行的缓存依次为R0,0,R0,1,R0,2,R0,3,每一个缓存都有左、右、下侧三个方向的数据双向输入及输出;第二行的缓存依次为R1,0,R1,1,R1,2,R1,3,第三行的缓存依次为R2,0,R2,1,R2,2,R2,3,第二行和第三行的每一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出。最左侧的缓存R0,0,R1,0,R2,0与第一缓存阵列外左侧横向输入输出双向连接,最右侧的缓存R0,3,R1,3,R2,3与第一缓存阵列外右侧横向输入输出双向连接,最下侧的缓存R2,0,R2,1,R2,2,R2,3与第一缓存阵列外下侧纵向输入输出双向连接。
如图6所示,所述的第二缓存阵列2为3×4个缓存组成,底端一行的缓存依次为R2,0,R2,1,R2,2,R2,3,每一个缓存都有左、右、上侧三个方向的数据双向输入及输出;第二行的缓存依次为R1,0,R1,1,R1,2,R1,3,第一行的缓存依次为R0,0,R0,1,R0,2,R0,3,第一行和第二行的每一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出。最左侧的缓存R0,0,R1,0,R2,0与第二缓存阵列外左侧横向输入输出双向连接,最右侧的缓存R0,3,R1,3,R2,3与第二缓存阵列外右侧横向输入输出双向连接,最上侧的缓存R0,0,R0,1,R0,2,R0,3与第二缓存阵列外上侧纵向输入输出双向连接。
如图7所示,所述的第三缓存阵列3为70×3个缓存组成,最左侧一列的缓存依次为R0,0,R1,0……R69,0,其中对于R1,0,R2,0……R68,0,每一个缓存都有右、上、下侧三个方向的数据双向输入及输出,及左侧数据的输入;而R0,0仅有右、下侧方向的数据双向输入及输出,左侧的数据输入;R69,0仅有右、上侧方向的数据双向输入及输出,左侧的数据输入。中间一列缓存依次为R0,1,R1,1……R69,1,最右侧一列缓存依次为R0,2,R1,2……R69,2,这两列缓存中,R1,1,R2,1……R68,1及R1,2,R2,2……R68,2的每一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出;而R0,1,R0,2仅有左、右、下侧方向的数据双向输入及输出;R69,1,R69,2仅有左、右、上侧方向的数据双向输入及输出,最左侧的缓存R0,0,R1,0……R69,0与第三缓存阵列外左侧横向输入连接,最右侧的缓存R0,2,R1,2……R69,2与第三缓存阵列外右侧横向输入输出双向连接,最上侧的缓存R0,0,R0,1,R0,2,R0,3没有上侧的输入输出连接,R69,0,R69,1,R69,2,R69,3没有下侧的输入输出连接。
如图8所示,所述的第四缓存阵列4为70×3个缓存组成,最右侧一列的缓存依次为R0,2,R1,2……R69,2,其中对于R1,2,R2,2……R68,2,每一个缓存都有左、上、下侧三个方向的数据双向输入及输出,及右侧数据的输入;而R0,2仅有左、下侧方向的数据双向输入及输出,右侧的数据输入;R69,2仅有左、上侧方向的数据双向输入及输出,右侧的数据输入。中间一列缓存依次为R0,1,R1,1……R69,1,最左侧一列缓存依次为R0,0,R1,0……R69,0,这两列缓存中,R1,1,R2,1……R68,1及R1,0,R2,0……R68,0的每一个缓存均有左、右、上、下侧四个方向的数据双向输入及输出;而R0,1,R0,0仅有左、右、下侧方向的数据双向输入及输出;R69,1,R69,0仅有左、右、上侧方向的数据双向输入及输出,最左侧的缓存R0,0,R1,0……R69,0与第四缓存阵列外左侧横向输入输出双向连接,最右侧的缓存R0,2,R1,2……R69,2与第三缓存阵列外右侧横向输入连接,最上侧的缓存R0,0,R0,1,R0,2,R0,3没有上侧的输入输出连接,R69,0,R69,1,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[1:0]控制为左右穆动数据时,每个时钟周期均可穆动一列数据,即一个时钟周期就可完成数据左右传送至PE阵列或第一缓存阵列1、第二缓存阵列2。
参考块的数据位宽共为16×8bit=128bit,分别输入至16个4×4的基本宏块PE阵列6、7、…、21的输入中,且16个基本宏块PE阵列6、7、…、21的参考块数据输入是并行同步的。一共需要16个时钟周期能够完成一次64×4像素的参考块数据到达各个目的PE中。
从而每个基本宏块PE阵列6、7、…、21每个时钟周期均可输出一组16个SAD值,每16个时钟周期可输出16组每组16个SAD值;64×4的PE阵列每个时钟周期均可输出256个SAD值,每16个时钟周期可输出16组每组256个SAD值。PE阵列每16个时钟周期输出的16组SAD值恰为对应搜索窗中一个4×4小块内的各点对应的16个64×4像素的基本块条带与参考块中的一个基本块条带之间计算64×4像素的SAD值所需的各点的SAD值。
4×4块的SAD值叠加模块
由于上节所描述PE阵列5和第一缓存阵列1、第二缓存阵列2、第三缓存阵列3、第四缓存阵列4电路结构得到的输出为单个像素点的SAD值,并且希望能够得到4×4像素的基本宏块的SAD值,因此SAD值的叠加首先将各个基本宏块PE阵列6、7、…、21得到16个SAD值相加得到4×4像素的基本宏块的SAD值,通过加法树得到4×4的基本宏块的SAD值。由16个单独的SAD相加得到一个4×4像素的SAD值的加法树如图2所示。然后类似的,再将这些值相加得到64×4像素的基本块条带的SAD值。
然后每隔16个时钟周期,将各个相应的64×4像素的基本块条带的SAD值输入相应的累加器,经过256个时钟周期的15次叠加得到最终64×64的宏块的SAD值。共有16个64×4像素的SAD值累加至64×64像素的SAD值的累加器。
每16个时钟周期输出的各个基本块条带的SAD值的输出顺序都不同,因此需要有控制信号对每个时钟周期输出的基本块条带的64×4像素的SAD值的连接进行选择。以状态机的形式,将扫描顺序划分为不同模式,每一种扫描模式在16个时钟周期内的16个SAD值分别属于不同的累加器。
基本宏块PE阵列结构6、7、…、21
如图3所示,将64行×4列的PE阵列5划分为16个4×4的基本宏块PE阵列(BBPEA)6、7、…、21,不仅有利于控制参考块的数据传输,而且阵列整齐,方便产生4×4的基本宏块的SAD值,且具有可重复性。
由图3中的基本宏块PE阵列6、7、…、21可以看到,虚线线条代表参考块的像素数据流,位宽为1像素的8bit;实线线条代表搜索区域的当前块的像素数据流,位宽同样为1像素的8bit。可以看到,参考块的数据又左上角的第一个PE开始,依次进入该基本宏块阵列6、7、…、21的各个PE中,只需将输入的参考块数据倒序依次进入,并控制数据用于运算的时序,即可完成参考块数据的传输。搜索区域的当前块的数据的内部传输,采用广播式的上下左右互联,与外部的上下左右互联也类似,内部数据流和内外数据流的上、下、左、右的控制由控制信号shift[1:0]统一控制。
一个基本宏块阵列(6、7、…、21)的输入主要有时钟信号clk,复位信号rst_n,搜索区域数据流的控制信号shift[1:0],上、下、左、右的搜索区域的当前块的像素点的数据输入,参考块的像素数据输入及控制信号;输出16个SAD值。
一个PE内部电路结构
如图4所示,虚线线条代表参考块的像素数据流,位宽为1像素的8bit;实线线条代表搜索区域的当前块的像素数据流,位宽同样为1像素的8bit;reg右侧的输出代表输出一个参考块像素点和一个搜索区域的当前块的点的SAD值输出。
一个PE的主要功能为求出参考块的一个像素和搜索区域的当前块的一个像素之间的差的绝对值,并完成参考块的一个像素点的数据和搜索区域的一个像素点的数据的传输。其中,参考块的数据由相邻的PE传入并传送至下一个相邻的PE中,搜索区域的像素分别向上、下、左、右四个方向传送。
参考块的数据的传送采用乒乓模式,Reg1和Reg2交替工作以保证参考块数据的传输和应用。非本PE所需的参考块的像素值放入Reg1中,然后将此数据不断向下传输,以保证参考块数据的传输的流水型;根据算法的设计,本PE计算所需的参考块数据将在每16个时钟周期的最后一个周期进入,则将该数据送至Reg2。每十六个时钟周期为一个循环,在上一次16个时钟周期的完成16个基本块条带的SAD计算时,恰好完成下一次的16个时钟周期的16个基本块条带的SAD计算所需的参考块的数据。
一个PE的输入主要有时钟信号clk,复位信号rst_n,搜索区域数据流的控制信号shift[1: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[1:0],上、下、左、右的搜索区域的当前块的像素点的数据输入,参考块的像素数据输入及控制信号;输出为上、下、左、右的搜索区域的当前块的像素点的数据。
第三缓存阵列3、第四缓存阵列4结构
设计为搜索区域的数据以列为单位进入,综合考虑第一缓存阵列1、第二缓存阵列2与PE阵列5结构及搜索区域数据流,设置第三缓存阵列3、第四缓存阵列4的行数应为64+3+3=70行。
搜索区域的数据流的分析,以列为单位数据进入,将第三缓存阵列3、第四缓存阵列4设计为分别可存储3列像素的数据即可。即第三缓存阵列3、第四缓存阵列4均为70×3列。
以PE左侧的第三缓存阵列3为例,如图7所示。
第三缓存阵列3中,除了最左面一列的寄存器的左端仅有数据输入没有输出外,每个数据寄存器均有横向和纵向的4个方向数据的双向连接输入和输出。同理,第四缓存阵列4中,除了最右侧一列的寄存器的右端仅有数据输入没有输出外,每个数据寄存器均有横向和纵向的4个方向数据的双向连接输入和输出。
第四缓存阵列4与左侧对称,如图8所示。
第三缓存阵列3、第四缓存阵列4的输入输出信号主要有时钟信号clk,复位信号rst_n,搜索区域数据流的控制信号shift[1:0],上、下、左、右的搜索区域的当前块的像素点的数据输入,参考块的像素数据输入及控制信号;输出为上、下、左、右的搜索区域的当前块的像素点的数据。
由于全搜索可变块运动估计算法的计算量较大,所以一般采用ASIC的方式进行芯片实现。根据视频应用的不同,可变块运动估计的电路结构可分为一维阵列结构和二维阵列结构两类。对于较小的视频图像,一般采用一维的阵列结构完成全搜索可变块运动估计算法的计算任务。而对于较大图像的视频压缩,例如HDTV或者更大图像的视频编码,一般采用二维阵列结构来实现可变块运动估计算法,且阵列的规模一般要大于或者等于算法中最大块中像素的个数。
对于扩展块的运动估计算法,其最大的块为64×64像素。如果套用当前的可变块运动估计VLSI结构,则电路中将包括64×64个运算处理单元,差不多是传统结构硬件开销的16倍。
同时,如果将64×64像素宏块SAD值计算顺序分解为依次算出组成64×64像素宏块的16个小块的SAD值,然后将这些小SAD相加得到宏块的SAD值,则会导致缺少数据复用,因此需要较多的输入端口;另一方面,如果宏块SAD值计算顺序为计算出所有16×16MB与参考块的搜索范围的所有SAD值后,将其寄存在buffer中,再将各SAD值进行相加得到大的宏块的SAD值,而这样的策略会导致需要大量的buffer,需较大的存储空间。
在提出的扩展可变块运动估计电路结构中,得到了一种全新的电路结构,其阵列的大小与传统的可变块运动估计电路的阵列规模相似,仅需要64×4个运算处理单元(远少于64×64个);且在输入端口和内部缓存上进行了较好的折中,使得其在HDTV及其更大图像的编码中具有较好的应用前景。
Claims (2)
1.一种全搜索扩展可变块运动估计电路,其特征在于,包括:四个缓存阵列、一个PE阵列,其中:第一缓存阵列的数据双向输入输出端口分别与PE阵列的第一数据输入输出端、第三缓存阵列的上侧三行数据输入输出端、第四缓存阵列的上侧三行数据输入输出端相连接并传输搜索区域数据信息,第二缓存阵列的数据双向输入输出端分别与PE阵列的第二数据输入输出端、第三缓存阵列的下侧三行数据输入输出端、第四缓存阵列的下侧三行数据输入输出端相连接并传输搜索区域数据信息,第三缓存阵列的数据双向输入输出端口与PE阵列的第三数据输入输出端、第一缓存阵列的左侧数据输入输出端、第二缓存阵列的左侧数据输入输出端连接并传输搜索区域数据信息,第四缓存阵列的数据双向输入输出端口与PE阵列的第四数据输入输出端、第一缓存阵列的右侧数据输入输出端、第二缓存阵列的右侧数据输入输出端连接并传输搜索区域数据信息,PE阵列的输入端接收搜索区域数据流及其控制信号、参考块数据流及其控制信号,第一至第四缓存阵列的数据输入端接收搜索区域数据流及其控制信号;
所述的PE阵列由16个4×4的双向纵向级联的基本宏块PE阵列构成,该基本宏块PE阵列处理的数据包括:搜索区域数据部分和参考块数据部分,其中:搜索区域数据部分在基本宏块PE阵列内进行横向双向传递及纵向双向传递并在基本宏块PE阵列之间纵向双向传递;参考块数据部分在基本宏块PE阵列内进行依次单向传递;
所述的第一缓存阵列和第二缓存阵列均为3×4个缓存组成,其中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接;
所述的第三缓存阵列和第四缓存阵列均为70×3个缓存组成:其中的每一个缓存均与其左右相邻的缓存横向双向连接,与其上下相邻的缓存纵向双向连接;
所述的PE为64×64个运算处理单元。
2.根据权利要求1所述的全搜索扩展可变块运动估计电路,其特征是,所述的PE阵列与缓存阵列之间连接关系为:PE阵列与第一、第二缓存阵列的互联为纵向双向级联,进行搜索区域数据的双向传播;PE阵列与第三、第四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传播;PE阵列上下两侧的第一、第二缓存阵列与左右两侧的第三、第四缓存阵列的互联为横向双向级联,进行搜索区域的数据的双向传播。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010516852 CN101945289B (zh) | 2010-10-22 | 2010-10-22 | 全搜索扩展可变块运动估计电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010516852 CN101945289B (zh) | 2010-10-22 | 2010-10-22 | 全搜索扩展可变块运动估计电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101945289A CN101945289A (zh) | 2011-01-12 |
CN101945289B true CN101945289B (zh) | 2013-04-03 |
Family
ID=43437011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010516852 Expired - Fee Related CN101945289B (zh) | 2010-10-22 | 2010-10-22 | 全搜索扩展可变块运动估计电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101945289B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102665074B (zh) * | 2012-04-10 | 2014-04-16 | 上海算芯微电子有限公司 | 用于视频编/解码的邻居查找装置及其方法 |
CN102932643B (zh) * | 2012-11-14 | 2016-02-10 | 上海交通大学 | 一种适用于hevc标准的扩展可变块运动估计电路 |
CN105847828B (zh) * | 2016-01-29 | 2019-02-05 | 西安邮电大学 | 一种用于整数运动估计的参考块像素更新并行实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909212B (zh) * | 2010-08-05 | 2012-08-22 | 上海交通大学 | 可重构多媒体SoC的多标准宏块预测系统 |
CN101924938B (zh) * | 2010-08-11 | 2012-09-05 | 上海交通大学 | 视频解码宏块预测与边界滤波中相邻块信息的处理方法 |
-
2010
- 2010-10-22 CN CN 201010516852 patent/CN101945289B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101945289A (zh) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ou et al. | An efficient VLSI architecture for H. 264 variable block size motion estimation | |
JP3159713B2 (ja) | デジタル化ビデオシーケンス符号器における運動推定回路 | |
CN102369552B (zh) | 存储器子系统 | |
CN104349168A (zh) | 一种超高速图像实时压缩方法 | |
CN101146222B (zh) | 视频系统的运动估计内核装置 | |
CN101945289B (zh) | 全搜索扩展可变块运动估计电路 | |
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
CN105323586A (zh) | 一种用于多核并行视频编码和解码的共享内存接口 | |
CN102148990B (zh) | 一种运动矢量预测装置和方法 | |
CN101778280B (zh) | 一种基于avs运动补偿亮度插值运算的电路及方法 | |
CN101951521B (zh) | 针对扩展可变块的视频图像运动估计方法 | |
CN102801982A (zh) | 一种应用于视频压缩且基于块积分的快速运动估计方法 | |
CN201111042Y (zh) | 一种二维小波变换集成电路结构 | |
CN102630014A (zh) | 一种基于前后两帧参考帧产生内插帧的双向运动估计器 | |
CN100553341C (zh) | 运动矢量检测装置和运动矢量检测方法 | |
CN100469146C (zh) | 视频图像运动补偿装置 | |
Mukherjee et al. | Efficient VLSI design of adaptive rood pattern search algorithm for motion estimation of high definition videos | |
Tseng et al. | A VLSI architecture for three-step search with variable block size motion vector | |
Hong et al. | A cost effective 2-D adaptive block size IDCT architecture for HEVC standard | |
Goel et al. | An efficient data reuse motion estimation engine | |
CN104994394B (zh) | 编码器运动估算方法及装置 | |
EP2076051A2 (en) | Configurable motion estimation | |
Cho et al. | An embedded merging scheme for H. 264/AVC motion estimation | |
Zhang et al. | An efficient and reconfigurable VLSI architecture for different block matching motion estimation algorithms | |
Yu et al. | A high-performance configurable VLSI architecture for integer motion estimation in H. 264 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130403 Termination date: 20151022 |
|
EXPY | Termination of patent right or utility model |