CN101146222B - 视频系统的运动估计内核装置 - Google Patents
视频系统的运动估计内核装置 Download PDFInfo
- Publication number
- CN101146222B CN101146222B CN 200610116071 CN200610116071A CN101146222B CN 101146222 B CN101146222 B CN 101146222B CN 200610116071 CN200610116071 CN 200610116071 CN 200610116071 A CN200610116071 A CN 200610116071A CN 101146222 B CN101146222 B CN 101146222B
- Authority
- CN
- China
- Prior art keywords
- data
- buf
- memory
- piece
- sad
- 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)
- Image Processing (AREA)
Abstract
本发明公开了设置于一个FPGA中的视频系统运动估计(ME)内核,包括;数据输入控制器,从图像帧存储器中读取需要进行ME处理的宏块;参考帧缓冲区和当前帧缓冲区,用于存储帧的数据;线扫描/残差计算控制器对多个MV搜索;SAD计算阵列,可同时完成针对16个MV的SAD计算,并从中选出最小的SAD对应的MV;残差计算单元,完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算。本发明提供了“行列结构”的片内数据缓冲区,构建了并行运算器阵列,从而,从“点式搜索”的方式转换为“线式扫描”,可同时进行数据的输入和输出,为多个运算单元提供需要的数据,提高了工作效率。
Description
技术领域
本发明涉及视频压缩系统,尤其是视频系统的运动估计内核装置。
背景技术
视频和可视通信的所有应用都要处理大量的数据,因此,在现代数字视频应用中,视频压缩是不可或缺的部分。视频压缩的准则就是尽可能的消除视频数据序列间的时间和空间冗余。空间冗余的消除主要采用各种帧内变换编码技术来实现,如广泛应用的DCT(离散余弦变换),DWT(离散小波换算)变换。而对时间上的冗余,即帧间冗余信息的消除主要采用的方法是基于运动估计(ME)和运动补偿(MC)的。首先通过对视频图像进行运动估计,得到运动矢量后,再进行运动补偿,最后对得到的残差图像进行压缩编码,减少帧间需传输的图像信息,从而提高整体图像的压缩比。因此,运动估计是运动图像压缩系统中的核心,一个好的运动估计,将大大减少帧间需传输的像素值。运动估计算法中所涉及的运算只有加、减法和存储操作,易于用硬件来实现。相比于用软件实现,速度要快得多。随着FPGA(现场可编程门阵列)的量和内部存储区的越来越大,使得在一片FPGA中可实现多个运动估计模块对视频数据进行并行处理,实现视频和可视通信数据的实时传输和处理成为可能。
视频压缩系统是目前研究的热点。近年来,有关“运动估计”的发明和新型实用专利很多。其中,有的侧重于视频系统,有的侧重于运动估 计的算法,也有的侧重于实现方法,如中星公司的CN200410096324.6,松下公司的CN200510063924.7,三星公司的CN200510075093.5等。传统的各种ME算法,都是为通用CPU和DSP器件实现而设计的,它们不适合用硬件(FPGA芯片)完成实时处理。
本发明公开了一种在实时应用环境中,适合硬件(如FPGA)实现的ME内核装置。目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
为了解决现有技术ME算法不适合用硬件(FPGA芯片)完成实时处理的问题,本发明的目的在于提供一种视频系统的运动估计内核装置。利用本发明可使FPGA器件在可实现的较低的时钟频率下(200MHz以下),完成高速通用CPU和DSP器件都较难实时处理的计算。本发明适合于在大规模的可编程逻辑器件上实现,以便于和其他内核一起构成可编程的片上系统,它是实时应用环境中的视频压缩系统的核心模块。
为了达到上述发明目的,本发明为解决其技术问题所采用的技术方案是提供一种视频系统的运动估计内核装置,该内核设置于一个FPGA芯片中,它包括:
数据输入控制器,用于从图像帧存储器中读取当前帧需要进行运动估计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索算法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD计算,进行块匹配计算,并根据SAD计算的结果确定是否已经找到最佳匹配块,从而得到运动矢量MV。
参考帧缓冲区(I-BUF),用于存储参考帧的数据;
当前帧缓冲区(P-BUF),用于存储当前帧的数据;
线扫描/残差计算控制器,用于对多个MV的搜索,控制残差计算单元的工作状态;
SAD计算阵列,从外部调入以前MV的计算结果,确定计算的起点,并根据参考帧缓冲区、当前帧缓冲区的状态,实现多至16个相关MV的SAD计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器。
残差计算单元,包括残差运算器及其缓冲器,根据MV指示的P(n,m)的匹配块P*(n,m),计算残差图像P(n,m)-P*(n,m);残差计算单元根据参考帧缓冲区(I-BUF)、当前帧缓冲区(P-BUF)的状态,一次完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算。
残差缓冲区,根据CPU提供的参数控制计算单元的工作,用于产生缓冲区的地址。
数据输出控制器,用于将运动估计计算得到的MV和残差图像存到FPGA外围电路MV存储器及残差图像存储器中对应的单元。
CPU核,内嵌于上述FPGA芯片中,用于控制数据输入控制器、数据输出控制器和线扫描/残差计算控制器的工作。CPU核工作所需要的数据和程序存储在外挂存储器(RAM)中。
本发明视频系统的运动估计内核装置根据当今FPGA芯片中有较多的片内存储块的特点,设计了“行列结构”的片内数据缓冲区,其有益效果是:可以同时进行数据的输入和输出,使得运算单元和数据调度单元能同时并行工作;可以同时访问多个存储单元,使得片内的数据总线的宽度极 高;能同时为多个运算单元提供需要的数据,为运算阵列的实现奠定了基础。
本发明在“行列结构”的片内数据缓冲区的基础上,构建了运算器阵列,进行并行运算。其有益效果是:针对某个MV的计算,使用了多个计算单元并行运算。一般,可以在20个时钟周期内完成计算。而现有技术采用单核CPU或DSP用软件来计算,要进行256次计算。
本发明由于采用上述结构,因而从“点式搜索”的方式转换为“线式扫描”方式,使得在1次搜索中可以完成对多个MV的搜索,不但搜索的速度快,而且与传统的算法相比,在相同的搜索次数中,搜索的样本多,得到最匹配的MV的机会就高。同时,由硬件构成的ME内核可以与系统中的其他模块并行工作,提高了工作的效率。
附图说明
图1是本发明视频系统的运动估计内核的结构框图;
图2是本发明实现ME算法的系统框图;
图3是本发明的数据调度模块的结构框图;
具体实施方式
下面结合附图和实施例对本发明作进一步详细的说明。
图1是本发明视频系统的运动估计内核的结构框图;该内核设置于一个FPGA芯片中(图中虚线框内)。如图1所示,它包括:
数据输入控制器1,用于从图像帧存储器中读取当前帧需要进行运动估计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索算法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD(像素绝对差和)计算,进行块匹配计算,并根据SAD计算的结果确定是否已经找到最佳匹配块,从而得到运动矢量MV。
参考帧缓冲区(I-BUF)2,用于存储参考帧的数据;
当前帧缓冲区(P-BUF)3,用于存储当前帧的数据;
线扫描/残差计算控制器4,用于对多个MV的搜索,控制残差计算单元6的工作状态;
SAD计算阵列5,从外部调入以前MV的计算结果,确定计算的起点,并根据参考帧缓冲区2、当前帧缓冲区3的状态,实现多至9个宏块的SAD计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器4。
残差计算单元6,包括残差运算器及其缓冲器,根据MV指示的P(n,m)的匹配块P*(n,m),计算残差图像P(n,m)-P*(n,m);残差计算单元根据参考帧缓冲区(I-BUF)2、当前帧缓冲区(P-BUF)3的状态,一次完成1列中16个点的计算,总共16个周期就可完成1个图像宏块残差的计算。
残差缓冲区7,根据CPU提供的参数控制计算单元的工作,产生缓冲区的地址。
数据输出控制器8,用于将n路ME处理单元得到的MV存到FPGA外围电路MV存储器及残差图像存储器11中对应的单元。MV存储器、残差图像存储器11在ME控制器的控制下输出计算结果MV和残差图像。
CPU核9,内嵌于上述FPGA芯片中,用于控制数据输入控制器1、数据输出控制器8和线扫描/残差计算控制器4的工作。CPU核工作所需要的数据和程序存储在外挂存储器(RAM)10中。
上述ME处理单元设置在一个FPGA芯片中(图1虚线框内),根据ME内核在整个系统的应用要求,数据输入控制器1和数据输出控制器8可作定制。图1中深色单元框:参考帧缓冲区(I-BUF)2、当前帧缓冲区(P-BUF)3、线扫描/残差计算控制器4、SAD计算阵列5、残差计算单元6构成ME处理单元的核心部分,它是相对固定的部分,ME处理单元在规定的时限内,对当前图像的宏块在搜索窗内搜索匹配的块,由此计算出宏块的运动矢量MV。一个合适的片内数据存储器的结构是构成并行运算阵列的基础。当今的FPGA芯片中有数量很多的小容量存储器块,本发明利用这种结构组成多个运算单元同时提供数据缓冲区,便于并行工作。
这种小存储器块可以配置成双端口RAM(DPRAM),有一个写入口和一个读出口,读写口可以分别对不同的地址同时操作。另外,读写口的数据总线的宽度也可以配置成不同的宽度。因此,可以用这种小存储块排成“行列结构”M*N,这种结构一般可以有以下几种应用方式:
方式1:各存储块合用读出口的地址总线和读信号,当给定读地址i时,可同时得到M个存储块中地址i的数据。
方式2:各存储块合用读出口的地址总线和数据总线,使用各自的读信号,则通过数据选择器可以读到指定存储块的指定地址单元上的数据。
方式3:各存储块合用写入口的地址总线和写信号,使用各自的数据总线,当给出写地址i时,可同时向M个存储块中地址i写数据。
方式4:各存储块合用写入口的地址总线和数据总线,使用各自的写信号,则可以向指定存储块的指定地址单元写数据。
以下为本发明采用不同的应用方式的组合来构造ME所需的各种数据缓冲区。包括:
参考帧图像块缓冲区2,为了能使计算单元和数据传输单元并行工作,缓冲区的设置应大于1个搜索窗口。所以,行数设为64行,则可以容纳4行宏块。关于列数的设置应采用如下准则:1)为充分利用存储器资源,要用整数块小存储块;2)当片内存储器资源丰富时,为便于数据的调度,其列数要不小于图像的列数;3)当片内存储器资源紧缺时,为便于数据的调度,其列数要等于2n个图像宏块的列数。
当前帧图像块缓冲区3,为了能使计算单元和数据传输单元并行工作,缓冲区应大于1个宏块,所以,行数设为16行,列数为16n列,则可以容纳n个宏块。关于列数的设置应采用如下准则:为充分利用存储器资源,要用整数块小存储块。
残差图像块缓冲区7,为了能使计算单元和数据传输单元并行工作,根据后级模块的要求,行数设为16m行,列数为16n列,则可以容纳m*n个宏块。关于列数的设置应采用如下准则:为充分利用存储器资源,要用整数块小存储块。另外,除了采用双口RAM的方式,根据系统的需求,残差图像块缓冲器也可采用FIFO(先进先出)的方式。
当采用以上“行列结构”的片内缓冲器时,只要给定列地址i,SAD运算器就可以得到该列中所有的数据。因此,要完成SAD的MVX(X轴运动矢量)和MVY(Y轴运动矢量)的计算,SAD计算阵列5可以设计16个|A-B|运算单元并行工作,可在1个周期完成1列的计算,16个周期完成1整块宏块对应的16个MV的SAD计算。
表1给出了在整个MVY的范围内(即MVY=-16,-15,…,15),需要由参考帧I提供的数据。
表1按列计算SAD的参考帧数据提供表
SAD列 | 参考帧I要提供的数据 |
SAD(.,-16) | {I.,-16+yp0,I.,-15+yp0,…,I.,-1+yp0} |
SAD(.,-15) | {I.,-15+yp0,I.,-14+yp0,…,I.,0+yp0} |
...... | ...... |
SAD(.,-1) | {I.,-1+yp0,I.,0+yp0,…,I.,14+yp0} |
SAD(.,0) | {I.,0+yp0,I.,1+yp0,…,I.,15+yp0} |
...... | ...... |
SAD(.,15) | {I.,15+yp0,I.,16yp0,…,I.,30+yp0} |
由于采用了本发明的片内缓冲器的结构,当给定列地址i时,可以同时得到表1中所有的Ii,j,这就为同时计算32个SAD提供了条件。
当然,更多的并行运算单元需要消耗片内更多的资源。考虑要对图像的边缘宏块进行ME计算时,MV的取值范围是MVY∈[0,15]。因此,只需考虑16个MVY的取值。根据上述原因,设计的SAD计算阵列,每次完成16个相邻MVY的搜索。
综上所述,本发明由16个SAD运算器构成SAD计算阵列5,采用这种阵列结构可以一次完成对给定MVX的16个相邻MVY的搜索。再从这16个SAD中筛选出最小值,并根据最小值的位置可推算出对应的MVY。这样,就可完成对指定的MVX,一组相关的MVY的计算。
图2是本发明ME核心模块实现ME算法的系统框图。虚线框内的部分相对应于图1中的SAD计算阵列5,是ME算法实现的重点部分,包括:数据调度模块U1、调度记录模块U2、ME计算模块U3。虚线框下面2部分 是ME核心模块,它们在上面的章节中已经描述过,相对应于图1中的参考帧缓冲区(I-BUF)2、当前帧缓冲区(P-BUF)3和线扫描/残差计算控制器5。
运动估计需要对1帧或连续多帧图像进行。目前,片内的数据缓冲区不可能缓存全部数据,因此需要数据调度模块U1将数据从外置存储器调度到片内。为提高系统的运行效率,数据调度模块U1和ME计算模块U3(1个宏块的ME)是独立的并行工作的2个模块。它们通过采用FIFO(先进先出存储器)的调度记录U2来通讯,调度记录U2中保存的是已经调度完成的宏块号。
CPU内核负责启动数据调动模块U1、ME计算模块U3的工作,提供相关的参数,并监控它们的工作过程。
数据调度模块U1完成以下功能:
对于灰度图像,CPU启动一次,将自主完成将1帧参考帧(I帧)和1帧当前帧(P帧)的数据从外置存储器传到片内缓冲区(I-BUP,P-BUF);
对于彩色图像(如RGB格式),CPU启动一次,将自主完成将1帧参考帧(I帧)和1帧当前帧(P帧)中的1个彩色分量的数据从外置存储器传到片内缓冲区(I-BUP,P-BUF);
数据调度模块U2由同步FIFO构成,用来保存已经调度好的宏块的坐标;数据宽度为16位,D[15:8]=n(Y坐标,宏块的行号);D[7:0]=m(X坐标,宏块的列号);全‘1’是结束标志。由于P-BUF只能保存8个宏块,所以FIFO的深度设为8。输出空标志表示尚无调度好的数据; 输出满标志表示P-BUF已满,暂停数据调度。以图像宏块为单位进行。数据帧中的宏块占用片内缓冲区的规则:参考帧的I(n,m)占用I-BUF(nmod 4,m mod 8);当前帧的P(n,m)占用P-BUF(m mod 8);以当前帧为中心进行数据调度。即先把1个宏块P(n,m)调度到P-BUF,然后将P(n,m)对应的搜索窗口调度到I-BUF,完成后将宏块的坐标(n,m)写入调度记录FIFO(U2)中。写入全‘1’表示1次传输结束;在数据调度的过程中,输出XFER_BUSY信号,表示正在传输数据;当调度记录模块U2数据填满时;当要占用的P-BUF或I-BUF中的存储块正在被ME计算模块U3使用时,数据传输暂停。
宏块的ME计算模块U3,自主控制1帧中所有宏块的ME计算,它的工作过程如下:
a.当收到START-ME-CAL信号为‘1’后,启动计算。并将BUSY信号置‘1’表示处在计算状态;
b.读调度记录FIFO(U2)。当其为空时,暂停计算;否则,读出数据,该数据表示宏块的坐标;
c.使用ME算法,利用ME核心模块对该宏块进行运动估计,计算SAD,搜索MV、计算残差;
重复b、c操作,直到START-ME-CAL信号为‘0’同时U2为空;或者读到的宏块坐标为全‘1’,则停止计算,并将BUSY信号置‘0’表示处在待命状态。
图3是上述数据调度模块U1的结构框图,该模块用虚线框表示,它包括:
调度控制器U1-1,接收来自上层的控制、握手信号,同时,按调度算法,将来自数据源中的数据按宏块调度到I-BUF、P-BUF。将调度好的参考帧(I)的块号写到I-BUF使用记录模块U1-2中;将当前帧(P)的块号写到调度记录U2的FIFO中。
I-BUF使用记录模块U1-2采用DPRAM存储器,用来记录I-BUF中存放的I帧数据的宏块号;指定BUF块状态模块U1-3,用于指示当前的I帧宏块是否已经在I-BUF中,当前的I-BUF块是否可用;
指定BUF块状态模块U1-3用于指示由调度控制器U1-1要求的I-BUF块的状态。根据I-BUF使用记录模块U1-2中的内容,指示是否当前I-BUF块中已经有了需要的数据;根据外部输入的当前正在计算的宏块号,指示是否当前I-BUF块正在参与计算,不可用于写入数据,调度控制器U1-1要暂停数据调度。
综上所述,本发明的ME算法与传统的ME算法相比,更适应用当今的FPGA芯片来实现,其最大的优点是计算速度快。
本发明根据当今FPGA芯片中有较多的片内存储块的特点,设计了“行列结构”的片内数据缓冲区。这种缓冲区的优点是:可以同时进行数据的输入和输出,使得运算单元和数据调度单元能同时并行工作,为这两部分都用硬件实现奠定了基础;可以同时访问多个存储单元,使得片内的数据 总线的宽度极高,能同时为多个运算单元同时提供需要的数据,为运算阵列的实现奠定了基础。
本发明在“行列结构”的片内数据缓冲区的基础上,构建了运算器阵列,进行并行运算。这样的好处是:针对某个MV的计算,使用了多个计算单元并行运算。一般,可以在20个时钟周期内完成计算。而现有技术采用单核CPU或DSP用软件来计算,要进行256次计算。
本发明针对多个MV,排成计算单元阵列,同时进行并行运算;而采用CPU或DSP用软件来计算时,由于受到数据总线的宽度的限制和计算资源的限制,每次只能对1个MV进行计算,因此,传统的ME算法都是对MV进行逐个计算的,属于“点式搜索”。
而本发明由于采用上述结构,从“点式搜索”的方式转换为“线式扫描”方式,使得在1次搜索中可以完成对多个MV的搜索。这样,不但搜索的速度快,而且与传统的算法相比,在相同的搜索次数中,搜索的样本多,得到最匹配的MV的机会就高。同时,由硬件构成的ME内核可以与系统中的其他模块并行工作,提高了工作的效率。
本发明“线扫描搜索方式”的全搜索(FS)过程如下:
a)给定一个SAD的参考值。
b)设i=xp0;
c)从片内缓冲器中读出{Pi,.}和{Ii+MVX,.},送入SAD阵列计算。
d)当所有的SAD运算单元得到的结果都大于等于SAD的参考值,
则停止计算,并输出信号表明没有搜索到小于SAD的参考值的MV。
e)i=i+1;重复c)、d),直到i>=xp0+16;
f)当尚未完成图像宏块P(n,m)的搜索匹配时,则令SAD的参考值等于得到的SAD最小值,以便下一次扫描。通过得到的SAD最小值的位置可以计算出对应的MVY。
Claims (7)
1.一种视频系统的运动估计内核装置,其特征在于,该运动估计内核装置设置于一个现场可编程门阵列FPGA芯片中,将FPGA芯片内的小容量存储器块排成行列结构,为多个运算单元同时提供数据缓冲区,进行并行工作,由此加快了运算速度,该运动估计内核装置包括:
数据输入控制器,用于从图像帧存储器中读取当前帧需要进行运动估计ME处理的宏块,以及读取在参考帧中与当前帧对应宏块的搜索窗口,根据ME搜索算法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD计算,进行块匹配计算,并根据SAD计算的结果确定是否已经找到最佳匹配块,从而得到运动矢量MV;
ME处理单元,包括:参考帧缓冲区I-BUF、当前帧缓冲区P-BUF、线扫描/残差计算控制器、SAD计算阵列和残差计算单元;ME处理单元由FPGA内的小容量存储器块组成多个运算单元同时提供数据缓冲区并行工作;
所述参考帧缓冲区I-BUF,用于存储参考帧的数据,参考帧缓冲区I-BUF的设置大于1个搜索窗口,行数设为64行,可容纳4行宏块;列数采用整数块小存储块;当片内存储器资源丰富时,其列数不小于图像的列数;当片内存储器资源紧缺时,其列数等于2n个图像宏块的列数;
所述当前帧缓冲区P-BUF,用于存储当前帧的数据,当前帧缓冲区P-BUF的设置大于1个宏块,其行数设为16行,列数设为16n列,即可以容纳n个宏块;列数的设置采用整数块小存储块;
所述线扫描/残差计算控制器,用于对多个MV的搜索,控制残差计算单元的工作状态;
所述SAD计算阵列,从外部调入以前MV的计算结果,确定计算的起点,并根据参考帧缓冲区I-BUF、当前帧缓冲区P-BUF的状态,实现多至9个宏块的SAD计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器;
所述残差计算单元,包括残差运算器及其缓冲器,根据MV指示的P(n,m)的匹配块P*(n,m),残差计算单元计算残差图像P(n,m)-P*(n,m);并根据参考帧缓冲区I-BUF、当前帧缓冲区P-BUF的状态,一次完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算;
数据输出控制器,用于将运动估计计算得到的MV和残差图像存到FPGA外围电路MV存储器及残差图像存储器中对应的单元;
CPU核,内嵌于上述FPGA芯片中,用于控制数据输入控制器、数据输出控制器和线扫描/残差计算控制器的工作。
2.根据权利要求1所述的视频系统的运动估计内核装置,其特征在于:所述FPGA内的小容量存储器块配置成双端口DPRAM存储器,有一个写入口和一个读出口,读写口可以分别对不同的地址同时操作;读写口的数据总线的宽度配置成不同的宽度;小存储块排成行列结构M*N,其排列可以采用以下结构的任意一种:
1)各存储块合用读出口的地址总线和读信号,当给定读地址i时,可同时得到M个存储块中地址i的数据;
2)各存储块合用读出口的地址总线和数据总线,使用各自的读信号,则通过数据选择器可以读到指定存储块的指定地址单元上的数据;
3)各存储块合用写入口的地址总线和写信号,使用各自的数据总线,当给出写地址i时,可同时向M个存储块中地址i写数据;
4)各存储块合用写入口的地址总线和数据总线,使用各自的写信号,则可以向指定存储块的指定地址单元写数据。
3.根据权利要求1所述的视频系统的运动估计内核装置,其特征在于:所述的参考帧缓冲区的设置大于1个搜索窗口,行数设为64行,可容纳4行宏块;列数采用整数块小存储块;当片内存储器资源丰富时,其列数不小于图像的列数;当片内存储器资源紧缺时,其列数等于2n个图像宏块的列数。
4.根据权利要求1所述的视频系统的运动估计内核装置,其特征在于:所述的当前帧缓冲区大于1个宏块,其行数设为16行,列数设为16n列,即可以容纳n个宏块;列数的设置采用整数块小存储块。
5.根据权利要求1所述的视频系统的运动估计内核装置,其特征在于:所述的SAD计算阵列具有16个SAD运算器,采用阵列结构,一次完成对给定X轴运动矢量MVX的16个相邻Y轴运动矢量MVY的搜索,再从这16个SAD中筛选出最小值,并根据最小值的位置推算出对应的MVY。
6.根据权利要求1或5所述的视频系统的运动估计内核装置,其特征在于,所述的ME处理单元包括:数据调度模块和ME计算模块2个独立、并行工作的模块,它们通过调度记录模块通讯;调度记录模块采用FIFO存储器,用于保存已经调度完成的宏块号;数据调度模块采用同步FIFO存储器,FIFO的深度设为8,它用于将数据从外置存储器调度到片内,保存已经调度好的宏块的坐标;数据宽度为16位,D[15:8]=n,D[7:0]=m,其中,n是Y坐标,表示宏块的行号;m是X坐标,表示宏块的列号;所述的ME计算模块用于自主控制1帧中所有宏块的ME计算。
7.根据权利要求6所述的视频系统的运动估计内核装置,其特征在于:所述的数据调度模块还包括:
调度控制器,用于接收来自上层的控制、握手信号,按调度算法,将来自数据源中的数据按宏块调度到I-BUF、P-BUF;将调度好的参考帧I的块号写到I-BUF使用记录模块U1-2中;将当前帧P的块号写到调度记录U2的FIFO中;
I-BUF使用记录模块,采用DPRAM存储器,用来记录参考帧缓冲区中存放的参考帧I数据的宏块号;将当前帧P的块号写到所述调度记录模块的FIFO存储器中;
指定BUF块状态模块,用于指示当前的I帧宏块是否已经在I-BUF中,当前的I-BUF块是否可用;根据I-BUF使用记录模块中的内容,指示是否当前I-BUF块中已经有了需要的数据;根据外部输入的当前正在计算的宏块号,指示是否当前I-BUF块正在参与计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610116071 CN101146222B (zh) | 2006-09-15 | 2006-09-15 | 视频系统的运动估计内核装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610116071 CN101146222B (zh) | 2006-09-15 | 2006-09-15 | 视频系统的运动估计内核装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101146222A CN101146222A (zh) | 2008-03-19 |
CN101146222B true CN101146222B (zh) | 2012-05-23 |
Family
ID=39208471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610116071 Expired - Fee Related CN101146222B (zh) | 2006-09-15 | 2006-09-15 | 视频系统的运动估计内核装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101146222B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576894B (zh) * | 2008-05-09 | 2012-05-30 | 中国科学院半导体研究所 | 实时图像内容检索系统及图像特征提取方法 |
CN101800893B (zh) * | 2009-02-06 | 2013-01-16 | 宏碁股份有限公司 | 执行运动估计的低功率高性能视频编码方法 |
US20110216829A1 (en) * | 2010-03-02 | 2011-09-08 | Qualcomm Incorporated | Enabling delta compression and modification of motion estimation and metadata for rendering images to a remote display |
CN102496165A (zh) * | 2011-12-07 | 2012-06-13 | 四川九洲电器集团有限责任公司 | 一种基于运动检测与特征提取的综合性视频处理方法 |
CN102497494A (zh) * | 2011-12-09 | 2012-06-13 | 首都师范大学 | 基于fpga的高速稳像系统中的运动估计模块 |
CN104333674B (zh) * | 2014-11-24 | 2019-01-22 | 广东中星电子有限公司 | 一种视频稳像方法和装置 |
CN111510683A (zh) * | 2020-04-26 | 2020-08-07 | 西安工业大学 | 一种图像传输装置及其图像数据处理方法 |
CN116074533B (zh) * | 2023-04-06 | 2023-08-22 | 湖南国科微电子股份有限公司 | 运动矢量预测方法、系统、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289212A (zh) * | 2000-10-27 | 2001-03-28 | 清华大学 | 用于运动估计算法的分层可编程并行视频信号处理器结构 |
CN1347223A (zh) * | 2001-10-22 | 2002-05-01 | 信息产业部电信传输研究所 | 慢速径搜索和多窗口快速信道估计的多径信号处理方法 |
CN1568014A (zh) * | 2003-06-30 | 2005-01-19 | 杭州高特信息技术有限公司 | 快速运动预测方法及其结构 |
-
2006
- 2006-09-15 CN CN 200610116071 patent/CN101146222B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289212A (zh) * | 2000-10-27 | 2001-03-28 | 清华大学 | 用于运动估计算法的分层可编程并行视频信号处理器结构 |
CN1347223A (zh) * | 2001-10-22 | 2002-05-01 | 信息产业部电信传输研究所 | 慢速径搜索和多窗口快速信道估计的多径信号处理方法 |
CN1568014A (zh) * | 2003-06-30 | 2005-01-19 | 杭州高特信息技术有限公司 | 快速运动预测方法及其结构 |
Non-Patent Citations (1)
Title |
---|
JP平6-46383A 1994.02.18 |
Also Published As
Publication number | Publication date |
---|---|
CN101146222A (zh) | 2008-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101146222B (zh) | 视频系统的运动估计内核装置 | |
CN101754013B (zh) | 由图形处理单元支持的视频解码方法 | |
CN101123723B (zh) | 基于图形处理器的数字视频解码方法 | |
CN101610413B (zh) | 一种视频的编码/解码方法及装置 | |
CN101527849B (zh) | 集成视频解码器的存储系统 | |
CN101729893B (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
CN101330617B (zh) | 基于模式映射的多标准帧内预测器的硬件实现方法及装置 | |
CN102857756B (zh) | 适于hevc标准的变换编码器 | |
Catthoor et al. | System-level transformations for low power data transfer and storage | |
Andri et al. | Hyperdrive: A multi-chip systolically scalable binary-weight CNN inference engine | |
CN1703094B (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
CN101873490B (zh) | 图像处理方法和使用该方法的图像信息编码设备 | |
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
CN103778086A (zh) | 一种基于粗粒度动态可重构系统的多模式数据访问装置及办法 | |
CN101383968B (zh) | 视频解码器、视频解码方法和移动多媒体终端芯片 | |
CN102088610A (zh) | 视频编解码器及运动估计方法 | |
Wang et al. | Zero waiting-cycle hierarchical block matching algorithm and its array architectures | |
CN1272931A (zh) | 图像处理装置 | |
CN101330614B (zh) | 使用数字信号处理器进行分数像素精度运动估计的方法 | |
CN101426139B (zh) | 图像压缩装置 | |
CN100370835C (zh) | 用于视频数据压缩的系统和方法 | |
CN102340660A (zh) | 一种基于avs编码器的运动矢量预测装置 | |
Jiang et al. | Highly paralleled low-cost embedded HEVC video encoder on TI KeyStone multicore DSP | |
CN101443808A (zh) | 用于图像和视频处理的存储器组织方案和控制器结构 | |
CN102420989B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20150915 |
|
EXPY | Termination of patent right or utility model |