CN100463524C - 一种用于运动估计的vlsi装置及运动估计的方法 - Google Patents
一种用于运动估计的vlsi装置及运动估计的方法 Download PDFInfo
- Publication number
- CN100463524C CN100463524C CNB2006101047763A CN200610104776A CN100463524C CN 100463524 C CN100463524 C CN 100463524C CN B2006101047763 A CNB2006101047763 A CN B2006101047763A CN 200610104776 A CN200610104776 A CN 200610104776A CN 100463524 C CN100463524 C CN 100463524C
- Authority
- CN
- China
- Prior art keywords
- data
- search window
- estimation
- subprocess
- mode
- 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
本发明提供了一种用于运动估计的VLSI装置及支持多尺寸搜索窗口和可变尺寸块的运动估计方法,可支持率失真代价的准则,降低运动估计的计算强度,减少硬件功耗和计算时间,并可以执行H.264/AVC标准和其它多种数字视频编码标准。本发明装置的工作模式为4种基本工作模式中的一种,将搜索窗口数据划分为2至5个窗口存入相应的2至5个搜索窗数据缓存中;总控制器根据不同基本工作模式将整个运动估计分成1至32个子过程,进行SAD的计算,由并行比较器分别将子块的SAD转变为率失真代价;每执行完一个子过程后,由串行比较器比较传入的局部最小值和内部的全局最小值,所有的子过程执行完毕后,由串行比较器输出运动估计的结果。
Description
技术领域
本发明涉及一种基于数字视频信号运动估计的VLSI(超大规模集成电路系统)装置及运动估计的方法。
背景技术
在数字视频信号编码中,运动估计的方法是,先将当前要编码的帧划分为固定大小的块,然后针对每个要被编码的块(CB),在参考帧的一定搜索范围内找出与它匹配误差最小的块,计算匹配误差所依据的准则是累计绝对值差(SAD)。两者间的空间偏移就是当前块的运动向量MV(Motion Vector),这个搜索范围定义为搜索窗口(SW),其中每一个可能的运动向量被称为候选向量。确定运动向量之后,对每个块只需编码它与参考帧中匹配块的差图像即可,这样可以大大减少编码的比特数。
实现运动估计的方法,通常使用全搜索算法,因为全搜索的并行性比较强。但是大多数情况下,即便使用并行计算的硬件系统装置,也不能满足实时编码的要求,而且它并不能有效的减少运动估计所需的计算量。
在H.264/AVC编码标准中,有7种不同尺寸的形状的像素块被用于运动估计,包括4×4、4×8、8×4、8×8、8×16、16×8和16×16,H.264/AVC的编码器要在这些树状分割模式中选择一种模式进行编码,要确定这个最优模式就要对其中41个不同的像素子块分别进行运动估计,求出它们各自的运动向量,即可变尺寸块的运动估计方法。此外,H.264/AVC标准中运动向量计算的准则改为使被编码像素块的率失真代价(RDCOST)最小,一个子块的率失真代价包含两部分,一是子块的SAD,这与以往的编码标准中是一致的,还有一部分是与运动向量有关的运动向量编码代价。可变尺寸块的运动估计方法和率失真代价准则的引入大大增加了运动估计的计算量,也增加了硬件实现所需的电路资源,尤其在H.264中引入了各种4×4到16×16尺寸块的运动估计,极大的增加了运动估计的计算量和复杂度。还有一些编码标准也采用了可变尺寸块的运动估计方法,比如AVS标准中有8×8、8×16、16×8和16×16共四种子块被用于运动估计,MPEG-4 Part2中也采用了8×8和16×16两种模式的运动估计。可以看出H.264/AVC中的运动估计是这些标准中最复杂的,
中国专利(公开号为CN1588638A)公开了一种支持4×4到16×16各种尺寸多种模式的运动估计的体系结构和方法,但是它的每一种模式只能完成一种尺寸块的运动估计计算,如果要得到所有尺寸子块的运动估计结果(如H.264/AVC标准的运动估计),需要调用该装置在每一种工作模式下都计算一遍。此外,该装置没有充分利用到运动估计中数据的可重用特性,参考搜索窗口数据在计算过程中需要很多次输入;还有它没有考虑到对动态搜索窗口调整算法这类的快速运动估计算法做进一步的优化。
发明内容
针对现有VLSI运动估计执行装置及其方法没有考虑到SW可动态调整大小、所采用的可变尺寸块运动估计计算量大等不足,本发明提供了一种用于运动估计的VLSI(超大规模集成电路系统)装置及支持多尺寸搜索窗口和可变尺寸块的运动估计方法,可以配合自适应动态调整SW快速运动估计算法,在保证一定的运动估计精度的条件下可显著降低运动估计的计算强度,减少硬件功耗和计算时间;还可支持率失真代价的准则,可以执行H.264/AVC标准和其它多种数字视频编码标准。
为达到以上目的,本发明是采取如下技术方案予以实现的:
一种基于多尺寸搜索窗口的运动估计的VLSI装置,包括一个转换系统工作状态的总控制器,一个参考帧搜索窗口数据提供器,一个运动估计执行单元;其特征是,该装置还包括一个与参考帧搜索窗口数据提供器连接的参考帧搜索窗口数据输入通道,用于接受搜索窗数据缓存的数据进行移位寄存并经多路选择器输至PE单元。所述总控制器通过控制通道分别连接参考帧搜索窗口数据输入通道及参考帧搜索窗口数据提供器、当前宏块数据提供器和运动估计执行单元。
在上述方案中,所述参考帧搜索窗口数据提供器由五个子搜索窗口数据缓存和一个用于控制搜索窗数据输入顺序的搜索窗数据地址产生器组成,搜索窗口数据缓存与搜索窗口数据地址产生器之间通过控制通道连接;所述参考帧搜索窗口数据输入通道由五个包括数量不等的移位串行寄存器的移位串行寄存器组、一个用于选择移位寄存器中对应位置数据的多路选择器组以及一个多路选择器控制器组成,所述五个移位串行寄存器组的输出连接多路选择器,多路选择器的输入连接多路选择器控制器的输出,所述五个移位串行寄存器组的数据输入分别连接五个子搜索窗口数据缓存的数据输出。
所述运动估计执行单元由PE单元组和一个与PE单元组输出连接的用于完成SAD到率失真代价转化并且找到输入的率失真代价最小值的并行比较器组成,PE单元组的数据输入分别连接多路数据选择器以及当前帧宏块像素数据提供器的数据输出。
所述PE单元组中的每个PE处理单元由累加器模块和加法树模块组成,用于在一个子过程中完成多个形状不同的子块的SAD值计算。
所述总控制器由一个控制器连接一个串行比较器组成,该串行比较器和运动估计执行单元的并行比较器之间通过数据通道连接;控制器通过控制通道分别连接PE单元组、多路选择器控制器、搜索窗数据地址产生器和当前帧宏块象素数据提供器。
所述运动估计执行单元还可连接一个运动向量代价数据提供器的输出,该运动向量代价数据提供器的输入通过控制通道连接总控制器中的控制器。
一种基于多尺寸搜索窗口的运动估计方法,包括以下步骤:
a.外部电路根据搜索窗口大小设置系统的工作模式为第一种至第四种工作模式中的一种,并且将搜索窗口数据划分为2至5个子窗口存入相应的2至5个搜索窗数据缓存中,当前帧宏块数据和运动向量代价数据也存入其相应的数据缓存中;
b.总控制器根据基本工作模式的不同将整个运动估计分成1至32个子过程,这些子过程的计算方法和数据输入方式是一致的,不同之处在于搜索窗口数据提供器和运动向量代价数据提供器调入的数据不同;PE单元组的每一个PE可以在一个子过程中分时完成41个子块SAD的计算,由并行比较器分别将子块的SAD转变为率失真代价,并行比较器在16个率失真代价中找到最小值和它对应的索引;
c.每次执行完一个子过程后,串行比较器要比较传入的局部最小值和内部的全局最小值,如果传入的局部最小值更小,将全局最小值替换为传入的局部最小值,转化局部索引为全局索引并记录;
d.所有的子过程执行完毕后,控制器的串行比较器输出运动估计的结果。
上述方法中,所述不同工作模式下的搜索窗口数据划分方法和子过程执行次数为:
1)第一种工作模式,搜索范围为[-2,1],相应的搜索窗口大小为20×20,所有的候选运动向量共有16个,所以整个运动估计过程分为一次子过程,搜索窗数据被划分为5个独立的部分,每部分的大小为4×20,分别存入第一至第五个搜索窗数据缓存中;
2)第二种工作模式,搜索范围为[-4,3],相应的搜索窗口大小为24×24,所有的候选运动向量共有64个,整个运动估计过程分为四次子过程,搜索窗数据被划分为3个独立的部分,每部分的大小为8×24,分别存入第一个、第三个和第五个搜索窗数据缓冲中;
3)第三种工作模式,搜索范围为[-8,7],相应的搜索窗口大小为32×32,所有的候选运动向量共有256个,整个运动估计过程分为16次子过程,搜索窗数据被划分为2个独立的部分,每部分的大小为16×32,分别存入第一和第五个搜索窗数据缓冲中;
4)第四种工作模式,搜索范围为[-16,15],相应的搜索窗口大小为48×48,所有的候选运动向量共有1024个,搜索窗口数据被划分为左右两个非独立的部分SW_LEFT和SW_RIGHT进行运动估计,每部分的大小为32×48,对每个部分运动估计分别要进行32次子过程。
所述工作模式为第四种时搜索窗口数据划分的方法为:分别对搜索窗口的左部分SW_LEFT和右部分SW_RIGHT进行运动估计,先对SW0和SW1数据计算,再对SW0’和SW1’的数据计算,最终将两次计算的结果再进行比较,第一次计算之前,将SW0和SW1数据分别放入第一和第五个搜索窗数据缓存中,第二次计算之前,将SW0’和SW1’数据也分别放入第一和第五个搜索窗数据缓存中。
本发明针对数字视频图像编码和视频分析跟踪等计算处理过程中广泛采用的块匹配运动估计运算,提出了一种灵活、高效的配合搜索窗口动态调整及进行可变尺寸块的运动估计方法,及其专用超大规模集成电路并行实现结构的装置。使得基于其开发的新一代专用集成电路芯片可以支持包括H.264/AVC标准和中国的AVS标准在内的所有MPEG-X/H.26X的采用混合视频编码框架的视频编码标准,如AVS、MPEG-4 Part2、H.263、H.261、MPEG-1、MPEG-2等标准中的运动估计计算。适用范围包含数字电视、网络媒体、可视电话、信息家电、多媒体移动通讯、激光视盘等在内的多个产业领域。
本发明与现有技术相比,具有如下优点:
1.可以根据不同的搜索窗口大小调整输入阵列的数据流形式,并以不同的数据流送给执行单元进行计算,在搜索窗口大小变化时,所有的16个处理单元都可以并行工作,共同完成运动估计计算。
2.对运动估计中需要的数据有很好的重用性,可以较少重复数据的输入。
3.本发明的处理单元PE可以在一个子过程中完成中41个不同尺寸子块的SAD值计算,这些计算是通过复用16个最小的子块的SAD值得到的,减少了可变尺寸块运动估计的计算量。
4.本发明对率失真代价的匹配误差准则有很好的支持,并行比较器可以完成SAD到率失真代价的转化,所以对H.264/AVC标准的支持更加完善。
附图说明
图1为为本发明的装置结构图。
图2为图1的运动估计单元104中PE单元组319的单个单元的结构示意图。
图3为图2中PE单元的累加器模块(PE_ACCUM)401的结构图。
图4为图2中PE单元的加法树模块(PE_ADDTREE)402的结构图。
图5为图1的运动估计单元104中并行比较器320的结构图。
图6为H.264/AVC标准中树状分割块的运动估计的示意图。
图7为搜索范围[-2,1]时的搜索窗口数据的划分,划分为5个部分。
图8为搜索范围[-4,3]时的搜索窗口数据的划分,划分为3个部分。
图9为搜索范围[-8,7]时的搜索窗口数据的划分,划分为2个部分。
图10为搜索范围[-16,15]时的搜索窗口数据的划分,先划分为左右两个部分,每个部分再划分两个部分。
图11为光栅扫描的数据存放顺序。
图12为工作模式一时SW数据地址产生器的局部地址。
图13为工作模式二时SW数据地址产生器的局部地址。
图14为工作模式三或四时SW数据地址产生器的局部地址。
图15为工作模式一时的多路选择器的周期控制信号在16个基本周期中的取值。
图16为工作模式二时的多路选择器的周期控制信号在16个基本周期中的取值。
图17为工作模式三或四时的多路选择器的周期控制信号在16个基本周期中的取值。
图18是PE_ACCUM的累加寄存器选择和SAD输出时刻。
图19是控制器322的工作状态转移图。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述。
如图1所示,一种多尺寸搜索窗口的运动估计的VLSI装置,包括:
一个参考帧搜索窗口数据提供器103;一个当前帧宏块像素数据提供器105;一个运动向量代价数据提供器106;一个参考帧搜索窗口数据输入通道102;一个当前帧宏块像素数据输入通道318;一个运动估计执行单元104;一个总控制器101。其中参考帧搜索窗口数据提供器103由五个子搜索窗口数据缓存301,301,303,304,305和一个搜索窗口数据地址产生器306组成,数据缓存301,301,303,304,305与地址产生器306之间由控制通道连接。
参考帧搜索窗口数据输入通道102由五个数量不等的移位串行寄存器组311,312,313,314和315、一个多路数据选择器组316以及一个多路选择器控制信号产生器317组成,五个子搜索窗口数据缓存301,301,303,304,305的输出分别连接五个移位串行寄存器组311,312,313,314和315的输入,移位串行寄存器组311,312,313,314,315的输出连接多路数据选择器组316的一个输入,多路数据选择器组316的另一个输入与多路选择器控制信号产生器317的控制输出连接。
当前帧宏块像素数据提供器105由当前宏块数据缓存307和当前宏块数据地址产生器308组成,数据缓存307与地址产生器308之间由控制通道连接。当前帧宏块像素数据输入通道为一个移位串行寄存器组318。该移位串行寄存器组318的输入连接当前宏块数据缓存307的输出。
运动向量代价数据提供器106由运动向量代价数据缓存309和运动向量代价数据地址产生器310组成,数据缓存309与地址产生器310之间由控制通道连接。
运动估计执行单元104由一组16个内部结构完全一样的PE处理单元组319和一个并行比较器320相互连接组成。PE单元组319的输入分别与多路数据选择器组316以及移位串行寄存器组318的输出连接。并行比较器320的输入与运动向量代价数据缓存309的输出连接。
总控制器101由一个串行比较器321和一个控制器322组成。串行比较器321的输入连接并行比较器320的输出;控制器322与串行比较器321、PE单元组319、多路选择器控制信号产生器317、搜索窗口数据地址产生器306、当前宏块数据地址产生器308和运动向量代价数据地址产生器310之间由控制通道连接。
本实施例的装置是一个可以对图6中4×4、4×8、8×4、8×8、8×16、16×8和16×16等几何形状和尺寸的像素块进行运动估计的并行计算的装置,并且可以针对搜索范围是[-2,1]、[-4,3]、[-8,7]和[-16,15]按照四种基本工作模式高效执行运动估计的装置。在执行运动估计时,应由外部电路或处理器输入运动估计需要的数据到本装置的内部缓存中,还要设置运动估计的工作模式。
图1中有7个数据缓存301、302、303、304、305、307和309,采用8bit宽度的存储器,它们存放的是搜索窗口的像素亮度值。其中当前块数据缓存307存放的数据是当前要做运动估计的宏块的亮度值,采用光栅扫描的顺序存放(具体形式见图11)。运动向量代价缓存309存放的数据是候选位置运动向量的编码代价(如果运动估计的准则采用SAD,如MPEG-4 Part2标准,运动向量代价缓存的数据全部为0),这些数值由外部的电路或处理器预先计算好,采用图11所示的光栅扫描的顺序存放。
如图2、图3、图4所示,运动估计单元104中PE单元组319的单个PE单元由累加器模块(PE_ACCUM)401和加法树模块(PE_ADDTREE)402组成,可以在一个子过程中完成图6中41个形状不同的子块的SAD值计算。其中累加器模块(PE_ACCUM)401包括4个累加寄存器,它可以根据工作周期决定像素误差绝对值应该累加在那个寄存器上,在什么时刻输出,它可以在一个子过程中分时输出16个4×4子块(图6中的第一种划分)的SAD值,并且输出OE信号给加法树模块402,通知它某一个子块的SAD值输出了。加法树模块(PE_ADDTREE)402的结构由4级加法树结构和一个多路选择器组成,可以复用16个最小的子块的SAD值,将它们相加得到剩余的25个子块的SAD值,并分时输出,这样节省了计算量。比起以往装置PE单元的结构,本装置的PE处理单元需要的电路逻辑结构更简单,而且利用率高。
图5示出了并行比较器320的结构,它的最左边有16个运动向量代价寄存器,它们的值由运动向量代价缓存309输入。输入的顺序是由运动向量代价地址产生器310控制的,地址产生器310产生的地址为起始地址(第一次起始地址为0,每一次子过程起始地址加16)加上局部地址得到,局部地址为0到15每个时钟递增,这些数据应在PE的累加器模块401输出第一个4×4子块的SAD之前由RCOST_IN端口输入到比较器的运动向量代价寄存器中。运动向量代价与对应的SAD计算单元的输出相加,得到该候选位置运动向量的率失真代价。16个率失真代价经过后面的4级比较器可以得到局部最小值和局部最小值索引,将它们输出给总控制器101中的串行比较器321。
一种适于H.264/AVC标准的多尺寸搜索窗口的运动估计方法,包括以下步骤:
a.外部电路根据搜索窗口大小设置本装置的工作模式为4种基本工作模式中的一种,并且将搜索窗口数据划分为2至5个子窗口存入相应的2至5个搜索窗数据缓存中,当前帧宏块数据和运动向量代价数据也存入其相应的数据缓存中;
b.总控制器101根据基本工作模式的不同将整个运动估计分成1至32个子过程,这些子过程的计算方法和数据输入方式是一致的,不同之处在于搜索窗口数据提供器103和运动向量代价数据提供器310调入的数据不同;PE单元组319的每一个PE可以在一个子过程中分时完成图6所示的41个子块SAD的计算,由并行比较器320分别将子块的SAD转变为率失真代价,并行比较器320在16个率失真代价中找到最小值(称为局部最小值)和它对应的索引(称为局部索引);
c.每次执行完一个子过程后,串行比较器321要比较传入的局部最小值和内部的全局最小值(是已执行完的子过程中的最小率失真代价,初始值为率失真代价的最大值),如果传入的局部最小值小,将全局最小值替换为它的值,转化局部索引为全局索引并记录;
d.所有的子过程执行完毕后,总控制器101的串行比较器321输出运动估计的结果。
其中本发明装置能够实现的基本工作模式下的搜索窗口数据划分方法和子过程执行次数如下:
1)第一种工作模式,搜索范围为[-2,1],相应的搜索窗口大小为20×20,所有的候选运动向量共有16个,所以整个运动估计过程分为一次子过程。图7是采用工作模式一时搜索窗口数据划分的方法,这时搜索窗数据被划分为了5个独立的部分SW0、SW1、SW2、SW3和SW4,每部分的大小为4×20,分别存入五个搜索窗数据缓存301、302、303、304和305中。
2)第二种工作模式,搜索范围为[-4,3],相应的搜索窗口大小为24×24,所有的候选运动向量共有64个,所以整个运动估计过程分为四次子过程。图8是采用工作模式二时搜索窗口数据划分的方法,这时搜索窗数据被划分为了3个独立的部分SW0、SW2和SW4,每部分的大小为8×24,分别存入三个搜索窗数据缓存301、303和305中。
3)第三种工作模式,搜索范围为[-8,7],相应的搜索窗口大小为32×32,所有的候选运动向量共有256个,所以整个运动估计过程分为16次子过程。图9是采用工作模式三时搜索窗口数据划分的方法,这时搜索窗数据被划分为了2个独立的部分SW0和SW4,每部分的大小为16×32,分别存入两个搜索窗数据缓存301和305中。
4)第四种工作模式,搜索范围为[-16,15],相应的搜索窗口大小为48×48,所有的候选运动向量共有1024个,搜索窗口需要分左(SW_LEFT)、右(SW_RIGHT)两个部分进行运动估计,对SW_LEFT和SW_RIGHT分别要进行32次子过程。图10是采用工作模式四时搜索窗口数据划分的方法,由于本发明考虑到电路的复杂性不要太大,所以体系结构中只有16个PE计算单元,也就是一次只能计算16个候选运动向量的率失真代价。这种情况下,需要分别对SW_LEFT和SW_RIGHT进行运动估计,先对SW0和SW1数据计算,再对SW0’和SW1’的数据计算,最终将两次计算的结果再进行比较即可。第一次计算之前,将SW0和SW1数据分别放入数据缓存301和305中。第二次计算之前,将SW0’和SW1’数据也分别放入数据缓存301和305中。每个子过程中,16个内部结构完全相同的PE处理单元319可以计算出图6中41个子块在16个候选运动向量位置的SAD值,共656个,并行比较器320每次转换16个SAD值到率失真代价,并找到率失真代价的局部最小值和它对应的局部索引。为了完成这样的计算,需要当前宏块105和搜索窗103的数据高效灵活的送入每一个PE单元,并且尽可能的复用这些数据。
如果搜索范围大于[-16,15],其运动估计的实现需要以第三种或第四种工作模式重复工作一次以上,实现的方法可以是纯软件的,即由外部电路控制执行多次;也可以是纯硬件的,即由多个相同结构的本装置在外部电路的控制下执行一次;也可以是软硬件协同的,由多个相同的本装置执行一次以上,因此实现的方法并不唯一。例如,对于搜索范围为[-32,31],其运动估计的实现需要以第四种工作模式重复工作4次,或者以第三种工作模式重复工作16次。
本发明的方法在图1所示硬件的具体实现过程为:
在外部电路或处理器设置完工作状态和输入运动估计所需的各种数据后,整个装置的行为由控制器322控制,它根据工作模式的不同将运动估计过程分为若干个基本相同的子过程完成。
当前宏块105的数据采用广播的方式输入到PE单元,输入的时间顺序也比较简单,从起始地址(每一次子过程的起始地址都是0)开始顺序的输入缓存308中的数据。搜索窗口数据提供器103的数据先输入搜索窗口数据输入通道102,再由多路选择器组316进行选择输入到对应位置的PE中,数据输入的顺序由搜索窗数据地址产生器306控制,它产生的地址为起始地址(第一次起始地址为0,每一次子过程起始地址加16)加上局部地址得到。多路选择器组316由多路选择控制器317控制,如果一个多路选择器输入的控制信号为0,选择移位寄存器311中对应位置的数据;如果输入的控制信号为1,选择位移寄存器312中对应位置的数据;如果输入的控制信号为2,选择移位寄存器313中对应位置的数据;如果输入的控制信号为3,选择移位寄存器314中对应位置的数据;如果输入的控制信号为4,选择移位寄存器315中对应位置的数据。
采用工作模式一时,通道中的5个串行移位寄存器311,312,313,314,315接受5个数据缓存301,302,303,304,305中的数据,地址产生器306中的局部地址为从0开始每个时钟节拍加一,这个值每隔16个时钟节拍再减去11,具体见图12所示,多路选择控制器317的信号是一个以16为周期的周期信号,其中每4个多路选择器的信号是相同的,而且这4个多路选择器的控制信号相互延迟1个时钟节拍,可以选择五个串行移位寄存器的数据参与计算,16个基本周期的取值见图15所示;采用工作模式二时,通道中的3个串行移位寄存器311,313,315接受3个数据缓存301,303,305中的数据,地址产生器306中的局部地址为从0开始每个时钟节拍加一,这个值每隔16个时钟节拍再减去7,具体见图13所示,多路选择控制器的信号是一个以16为周期的周期信号,其中每8个多路选择器的信号是相同的,而且这8个多路选择器的控制信号相互延迟1个时钟节拍,可以选择三个串行移位寄存器的数据参与计算,16个基本周期的取值见图16所示;采用工作模式三或四时,通道中的2个串行移位寄存器311,315接受2个数据缓存301,305中的数据,地址产生器306中的局部地址为从0开始每个时钟节拍加一,具体见图14所示,多路选择控制器的信号是一个以16为周期的周期信号,这16个多路选择器的控制信号相互延迟1个时钟节拍,可以选择两个串行移位寄存器的数据参与计算,16个基本周期的取值见图17所示。
图18是PE_ACCUM的累加寄存器选择和SAD输出时刻,其中CLK是PE_ACCUM的工作时钟计数器(每一个子过程从0开始,256个周期之后16个子块的SAD计算完毕);OE=1时表示应该输出某个子块的SAD值;REG_IDX表示输出的SAD是那个累加寄存器中的值;T_IDX表示这个SAD值是图6中那一个4×4子块。
图19是控制器322的工作状态转移图。它的工作状态有4个,电路Reset之后进入模式配置状态(CONFIG),这个状态主要是等待外部逻辑或处理器设置工作状态,之后进入装载状态(LOAD),等待外部逻辑装载各种数据到各个缓存;之后进入运动估计状态(ME),这个状态下分若干子过程计算宏块的运动向量和对应的率失真代价,每个子过程中它要控制搜索窗口数据地址产生器306(输入起始地址并让它重新开始工作),当前宏块数据地址产生器308(让它重新开始工作),运动向量代价地址产生器310(输入起始地址并让它重新开始工作),多路选择控制器317(输入工作模式控制并让它重新开始工作),PE单元组(控制它比其它的部件晚工作16个时钟周期);所有子过程计算完毕之后,进入运动估计后处理状态(MEOVER),这个状态下总控制器控制串行比较器321输出所有41个子块的运动向量和率失真代价;输出完毕后进入CONFIG状态,等待下一个宏块的运动估计开始。
串行比较器321要比较传入的某一个块的局部最小值和内部的全局最小值(已执行完的子过程中的最小率失真代价,初始值为率失真代价可能取值范围内的最大值),如果传入的局部最小值小,将全局最小值替换为它的值,转化局部索引为全局索引并记录(局部索引加已经执行过的子过程次数乘以16)。在一个子过程中串行比较器要对图6中所有的41个块进行这样的操作。
本实施例的装置可以实现全部功能(可以支持H.264/AVC标准的运动估计),使用Xilinx ISE8.1工具综合后占用7669个Slice,等效门数为150532,可以在FPGA器件XC4VSX35上实现,大概需要它49%的资源。如果只是对16×16大小的块进行运动估计,处理单元PE只计算整个宏块的SAD,去掉率失真代价转化功能(这种结构可以支持MPEG-1/2,H.261/263等标准的运动估计),使用Xilinx ISE8.1工具综合后只占用2139个Slice,等效门数为40991,可以在逻辑资源少一些的FPGA器件XC4VFX12上实现,大概需要它39%的资源。
本发明上述实施例的装置与方法虽然是针对视频信号编码过程提出的,但同样适用于其它的视频处理分析过程,例如运动分析、运动跟踪、运动分割和运动预测等等。
Claims (10)
1.一种用于运动估计的VLSI装置,包括一个转换系统工作状态的总控制器,一个参考帧搜索窗口数据提供器,一个当前帧宏块像素数据提供器,一个运动估计执行单元;其特征是,该装置还包括一个连接参考帧搜索窗口数据提供器的参考帧搜索窗口数据输入通道,用于接受搜索窗数据缓存的数据进行移位寄存并经多路选择器输至PE单元组;所述总控制器通过控制通道分别连接参考帧搜索窗口数据输入通道及参考帧搜索窗口数据提供器、当前宏块数据提供器和运动估计执行单元。
2.根据权利要求1所述的用于运动估计的VLSI装置,其特征是,所述参考帧搜索窗口数据提供器由五个子搜索窗口数据缓存和一个用于控制搜索窗数据输入顺序的搜索窗数据地址产生器组成,搜索窗口数据缓存与搜索窗口数据地址产生器之间通过控制通道连接;所述参考帧搜索窗口数据输入通道由五个包括数量不等的移位串行寄存器的移位串行寄存器组、一个用于选择移位寄存器中对应位置数据的多路选择器组以及一个多路选择器控制器组成,所述五个移位串行寄存器组的输出连接多路选择器,多路选择器的输入连接多路选择器控制器的输出,所述五个移位串行寄存器组的数据输入分别连接五个子搜索窗口数据缓存的数据输出。
3.根据权利要求1所述的用于运动估计的VLSI装置,其特征是,所述运动估计执行单元由PE单元组和一个与PE单元组输出连接的用于完成SAD到率失真代价转化并且找到输入的率失真代价最小值的并行比较器组成,PE单元组的数据输入分别连接多路选择器组以及当前帧宏块像素数据提供器的数据输出。
4.根据权利要求3所述的用于运动估计的VLSI装置,其特征是,所述的PE单元组中的每个PE处理单元由累加器模块和加法树模块组成,用于在一个子过程中完成多个形状不同的子块的SAD值计算。
5.根据权利要求1所述的用于运动估计的VLSI装置,其特征是,所述总控制器由一个控制器连接一个串行比较器组成,该串行比较器的输入连接并行比较器的输出;控制器通过控制通道分别连接PE单元组、多路选择器控制器、搜索窗数据地址产生器和当前帧宏块象素数据提供器。
6.根据权利要求1~5之一所述的用于运动估计的VLSI装置,其特征是,所述运动估计执行单元连接一个运动向量代价数据提供器的输出,该运动向量代价数据提供器的输入通过控制通道连接总控制器中的控制器。
7.一种运动估计方法,包括以下步骤:
a.外部电路根据搜索窗口大小设置系统的工作模式为第一种至第四种工作模式中的一种,并且将搜索窗口数据划分为2至5个子窗口存入相应的2至5个搜索窗数据缓存中,当前帧宏块数据和运动向量代价数据也存入其相应的数据缓存中;
b.总控制器根据工作模式的不同将整个运动估计分成1至32个子过程,这些子过程的计算方法和数据输入方式是一致的,不同之处在于参考帧搜索窗口数据提供器和运动向量代价数据提供器调入的数据不同;PE单元组的每一个PE在一个子过程中分时完成41个子块SAD的计算,由并行比较器分别将子块的SAD转变为率失真代价,并行比较器在16个率失真代价中找到最小值和它对应的索引;
c.每次执行完一个子过程后,串行比较器要比较传入的局部最小值和内部的全局最小值,如果传入的局部最小值更小,将全局最小值替换为传入的局部最小值,转化局部索引为全局索引并记录;
d.所有的子过程执行完毕后,串行比较器输出运动估计的结果。
8.根据权利要求7所述的运动估计方法,其特征是,所述第一至第四种工作模式的搜索窗口数据划分方法和子过程执行次数为:
1)第一种工作模式,搜索范围为[-2,1],相应的搜索窗口大小为20×20,所有的候选运动向量共有16个,所以整个运动估计过程分为一次子过程,搜索窗数据被划分为5个独立的部分,每部分的大小为4×20,分别存入第一至第五个搜索窗数据缓存中;
2)第二种工作模式,搜索范围为[-4,3],相应的搜索窗口大小为24×24,所有的候选运动向量共有64个,整个运动估计过程分为四次子过程,搜索窗数据被划分为3个独立的部分,每部分的大小为8×24,分别存入第一、第三和第五个搜索窗数据缓存中;
3)第三种工作模式,搜索范围为[-8,7],相应的搜索窗口大小为32×32,所有的候选运动向量共有256个,整个运动估计过程分为16次子过程,搜索窗数据被划分为2个独立的部分,每部分的大小为16×32,分别存入第一和第五个搜索窗数据缓存中;
4)第四种工作模式,搜索范围为[-16,15],相应的搜索窗口大小为48×48,所有的候选运动向量共有1024个,搜索窗口数据被划分为左右两个非独立的部分SW_LEFT和SW_RIGHT进行运动估计,每部分的大小为32×48,对每个部分运动估计分别要进行32次子过程。
9.根据权利要求8所述的运动估计方法,其特征是,所述工作模式为第四种时搜索窗口数据的计算方法为:分别对搜索窗口的左部分SW_LEFT和右部分SW_RIGHT进行运动估计,先对SW0和SW1数据计算,再对SW0’和SW1’的数据计算,最终将两次计算的结果再进行比较,第一次计算之前,将SW0和SW1数据分别放入第一和第五个搜索窗数据缓存中,第二次计算之前,将SW0’和SW1’数据也分别放入第一和第五个搜索窗数据缓存中。
10.根据权利要求7所述的运动估计方法,其特征是,所述工作模式的搜索范围大于[-16,15]时,其运动估计的实现需要以第三种或第四种工作模式重复工作一次以上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101047763A CN100463524C (zh) | 2006-10-20 | 2006-10-20 | 一种用于运动估计的vlsi装置及运动估计的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101047763A CN100463524C (zh) | 2006-10-20 | 2006-10-20 | 一种用于运动估计的vlsi装置及运动估计的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1946178A CN1946178A (zh) | 2007-04-11 |
CN100463524C true CN100463524C (zh) | 2009-02-18 |
Family
ID=38045361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101047763A Expired - Fee Related CN100463524C (zh) | 2006-10-20 | 2006-10-20 | 一种用于运动估计的vlsi装置及运动估计的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100463524C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090245374A1 (en) * | 2008-03-26 | 2009-10-01 | Mediatek Inc. | Video encoder and motion estimation method |
CN101854538B (zh) * | 2009-04-03 | 2012-06-27 | 联咏科技股份有限公司 | 运动图像处理方法及运动图像处理器 |
CN102075762B (zh) * | 2010-12-31 | 2012-12-05 | 北京大学深圳研究生院 | 用于视频编码器的帧间预测电路及其实现方法 |
CN102075765B (zh) * | 2010-12-31 | 2012-12-05 | 北京大学深圳研究生院 | 用于视频编解码器的色度插值电路及其实现方法 |
CN102932643B (zh) * | 2012-11-14 | 2016-02-10 | 上海交通大学 | 一种适用于hevc标准的扩展可变块运动估计电路 |
US20170332094A1 (en) * | 2016-05-16 | 2017-11-16 | Google Inc. | Super-wide area motion estimation for video coding |
CN113038125B (zh) * | 2021-05-28 | 2021-10-22 | 杭州博雅鸿图视频技术有限公司 | 帧内预测模式选择方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519287B1 (en) * | 1998-07-13 | 2003-02-11 | Motorola, Inc. | Method and apparatus for encoding and decoding video signals by using storage and retrieval of motion vectors |
EP1313325A2 (en) * | 1994-11-08 | 2003-05-21 | General Instrument Corporation | Pixel interpolation filters for video decompression processor |
CN1588638A (zh) * | 2004-08-09 | 2005-03-02 | 中芯联合(北京)微电子有限公司 | 多模多尺度运动估计的超大规模集成电路体系结构及方法 |
CN1649417A (zh) * | 2004-01-31 | 2005-08-03 | 三星电子株式会社 | 存储器访问方法和存储器访问装置 |
-
2006
- 2006-10-20 CN CNB2006101047763A patent/CN100463524C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1313325A2 (en) * | 1994-11-08 | 2003-05-21 | General Instrument Corporation | Pixel interpolation filters for video decompression processor |
US6519287B1 (en) * | 1998-07-13 | 2003-02-11 | Motorola, Inc. | Method and apparatus for encoding and decoding video signals by using storage and retrieval of motion vectors |
CN1649417A (zh) * | 2004-01-31 | 2005-08-03 | 三星电子株式会社 | 存储器访问方法和存储器访问装置 |
CN1588638A (zh) * | 2004-08-09 | 2005-03-02 | 中芯联合(北京)微电子有限公司 | 多模多尺度运动估计的超大规模集成电路体系结构及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1946178A (zh) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100463524C (zh) | 一种用于运动估计的vlsi装置及运动估计的方法 | |
Chen et al. | Fully utilized and reusable architecture for fractional motion estimation of H. 264/AVC | |
CN101815218B (zh) | 基于宏块特征的快速运动估计视频编码方法 | |
CN101610413B (zh) | 一种视频的编码/解码方法及装置 | |
CN101621696B (zh) | 允许分数视频运动估计和双向视频运动估计的选择性使用方法和编码器 | |
CN107277506B (zh) | 基于自适应运动矢量精度的运动矢量精度选择方法及装置 | |
CN1316856A (zh) | 运动估计器 | |
CN103414895A (zh) | 一种适用于hevc标准的编码器帧内预测装置及方法 | |
CN101505427A (zh) | 视频压缩编码算法中的运动估计装置 | |
CN101600112A (zh) | 分像素运动估计装置和方法 | |
US20240037700A1 (en) | Apparatus and method for efficient motion estimation | |
CN101304529A (zh) | 宏块模式的选择方法和装置 | |
CN102143361A (zh) | 一种视频编码方法和装置 | |
CN103096064B (zh) | 编码和重构像素块的方法以及相应设备 | |
CN106658012A (zh) | 一种vp9解码器并行流水线任务划分方法 | |
CN101409845A (zh) | 一种avs视频编码中的视频失真度估计方法及其装置 | |
CN100474932C (zh) | 基于最佳预测模式概率的视频帧内图像快速编码方法 | |
Kim et al. | MESIP: A configurable and data reusable motion estimation specific instruction-set processor | |
Ismail et al. | High performance architecture for real-time HDTV broadcasting | |
CN101631242A (zh) | 视频加权预测系统及其编码解码方法 | |
CN110971896B (zh) | 一种h.265编码方法和装置 | |
CN101227616B (zh) | H.263/avc整象素向量搜索方法 | |
CN101309401B (zh) | 一种快速的先进视频编码率计算方法及其装置 | |
Huang et al. | Parallelized RDOQ Algorithm and Fully Pipelined Hardware Architecture for AVS3 Video Coding | |
CN108012151B (zh) | 一种基于贝叶斯分类的自适应运动矢量精度快速选择方法与装置 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090218 Termination date: 20111020 |