CN1119815A - 用于预测运动的设备 - Google Patents
用于预测运动的设备 Download PDFInfo
- Publication number
- CN1119815A CN1119815A CN95115290A CN95115290A CN1119815A CN 1119815 A CN1119815 A CN 1119815A CN 95115290 A CN95115290 A CN 95115290A CN 95115290 A CN95115290 A CN 95115290A CN 1119815 A CN1119815 A CN 1119815A
- Authority
- CN
- China
- Prior art keywords
- equipment according
- buffer
- network
- error function
- value
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/231—Analysis of motion using block-matching using full search
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种预测运动的设备,其是用于根据多个信息组并通过信息组匹配来预测一个图像压缩系统中的运动包括:一个用于在两个值之间进行误差函数计算的N列×M行计算装置、一个用于存贮表示所述运动预测的信息组的值的N×M存贮装置、一个用于存贮表示基准窗口信息组的值的N×M存贮装置、所述两个存贮装置被分别连接到所述计算装置上、一个加法器,用于将与N个计算元件一个列相关的误差函数的值累加起来。本发明可用于图像压缩。
Description
本发明涉及一种根据像素信息组对一个图像压缩系统中的运动进行预测并确定其运动矢量的设备。依据本发明的设备特别地被用于电视图像的压缩以及基于MPEG(运动图像专家组)的当前或未来压缩标准的系统之中。
有许多对图像信息组进行处理的图像压缩系统。在MPEG的情况下,所述的图像被分成8×8个像素的信息组,四个信息组又被组合成16×16个像素的宏信息组。所述信息组或宏信息组必须经过各种处理,以减少图像之间和每个图像之内的冗余。这些处理之一就是对运动进行预测。这个过程在于要预测一部分当前图像相对于在先或在后图像的移动。确定用于定义所述移动的一个或多个运动矢量,这些运动矢量能够依据在前或在后图像对当前图像作出推算。然后,可以确定在这个推算和所述当前图像之间存在的差别,并利用这个差别确定在后图像的压缩。今天,运动矢量除了能够应用于所谓“交互”(inter)图像以外,还可以应用于所谓的“内部”(“int-ra”)和“双向”图像,从而达到了减少可能影响发送误差的目的。
所述对运动的预测通常是针对每个宏信息组加以进行的。在本说明书的其余部分中,为便于解释起见,将对每一个宏信息组设定一个单一的运动矢量。这个由在前图像而正在被确定的矢量用于所述当前图像的一个宏信息组,并且还能使用一个存贮于所述编码器之中的基准图像来取代一个在前图像,这个图像对应于由一个译码器所译码的所述图像(即考虑到由于压缩所引起信息损失的一幅图像)。
在基准图像中用于确定“最佳”宏信息组的技术是将当前的宏信息组和所述基准图像中具有相似规模的信息组进行比较。作为一个比较标准,在此规定了一个误差函数Err,以在基准图像中对所述宏信息组的每一可能的位置进行计算。所述Err函数给出的最低值的位置将确定移动矢量,由于这个矢量取决于可能的计算容量和对编码该运动矢量预定的通带,所以它的精度是可变的。像素部分的精度是通过内部像素插入法来实现的。假如所述运动矢量在长度上被限制,那么一个适当规模的搜索窗口将被放置在由当前宏信息组所定义的一个位置的周围。
所述运动矢量的计算需要强有力的计算资源,该资源随着所需精度、图像分辨率以及它的频率等而增加。
通常使用的误差函数是: 其中,i和j指定一个宏信息组中的位置,m和n是一个运动矢量的坐标,a和b分别是当前宏信息组和所述窗口或搜索图像的位移的宏信息组的像素亮度。
函数D可以例如是D(x.y)=|x-y|。
在符合MPEG标准的图像压缩中关于运动矢量可使用的更多的信息,请参阅199 3年11月的H.262 ISO/IEC 13818-2(Video)Committ-ee Draft推荐的“信息技术,电影图像和相关音频的一般编码”。
本发明的目的是提供一种具有特殊优点体系结构的“信息组匹配处理器”。
本发明的目的还在于提供一种在图像压缩系统中,利用依据信息组的信息组匹配来预测运动的设备。该设备包括:
用于在两个值之间进行误差函数(Err)计算的N列×M行的装置;
用于存贮表示预测运动的所述信息组的值的N×M装置;
用于存贮表示一个基准窗口的信息组的值的N×M装置,所述的两个存贮装置被分别连接到所述的计算装置上;
用于把计算N个元素的列的误差函数的值同时加起来的M个加法装置。
在一个特定的实施例中,所述设备包括一个串联连接的M缓冲器(B)的N行网络,在这个网络中,基准窗口的区域是逐列分布的。
在一个特定的实施例中,每一个缓冲器的输出被连接到误差函数计算装置的输入端上。
在一个特定的实施例中,所述的计算装置由所述缓冲器输出的值和表示预测运动的所述信息组的值来计算一个误差函数。
在一个特定的实施例中,每个计算装置的计算结果都被存贮在一个缓冲器中。
在一个特定的实施例中,在一个确定列的缓冲器中所存贮的所有结果利用加法器将其累加起来。
在一个特定实施例中,由于考虑到在所述网络中基准窗口信息组的分布,所以将一个列的相加结果延时提供给下一列的加法器。
在一个特定的实施例中,所述的延时是利用串联于多个加法器之间多个缓冲器执行的。
在一个特定的实施例中,用于存贮表示预测运动的信息组的值的装置存贮两个像素值,两值中的一个被多路转换到计算所述误差函数的装置。
在一个特定的实施例中,所述两个像素值表示一个给定信息组的上和下子信息组,在所述网络输入端所提供的值是表示所述基准窗口上子区域和下子区域的交替值,这种操作是公知的“隔行扫描”操作。
在一个特定的实施例中,所述设备包括加法装置,用于将相应于这两个子信息组的误差函数值累加起来。
在一个特定的实施例中,在隔行扫描模式下,在多个加法器之间引入一个计算周期的辅助延时。
在一个特定的实施例中,所述误差函数是一个距离函数。
在一个特定的实施例中,缓冲器的每一行是利用存贮的所述基准窗口的一行来提供的。
在一个特定的实施例中,所述的存贮装置是多个FIFO(先进先出)堆栈。
在一个特定的实施例中,至少有N+1个行存贮装置,并且当所述N个装置被提供给N行缓冲器时,所述的辅助存贮装置被装载有相应于所述行的值,其在所述N个行存贮装置内存贮的基准窗口区域和被立即连续处理的区域之间,是不相同的。
在一个特定的实施例中,一个转换电路被包括在所述行存贮装置和缓冲器网络之间。所述的转换装置将所述的行存贮装置连接到缓冲器适当的行上。
本发明的另一个目的是提供一种设备,其用于在具有上述设备的一个图像压缩系统中计算运动矢量。所述设备包括:
输入装置;
输出装置;
用于与存贮器相结合的控制装置;
用于存贮当前图像和基准图像部分的装置;
用于对所述存贮装置寻址的装置;
用于计算部分当前图像和部分基准图像间误差函数的装置;以及
用于与所述控制装置接口的装置。
在一个特定的实施例中,所述的输入装置是一个用于通过数据总线将表示图像的数据装入所述存贮装置的输入端口。
在一个特定的实施例中,所述的数据被重新读出,并提供给所述的误差函数计算装置。
在一个特定的实施例中,包括有一个用于给所述控制装置编程的装置。
在一个特定的实施例中,所述的误差函数计算装置包括一个N×M单元的心动式网络。
在一个特定实施例中,所述数据通过至少N个存贮器的存储体提供给所述的心动式网络。
最后,本发明的另一个目的是提供一种包括至少一种在前所述设备的完整的图像压缩系统。
通过参照附图对仅作为非限定举例的特定实施例的下述说明,可以更好地理解本发明的目的、优点和特性。
附图简要说明:
图1示出了根据本发明的一个运动预测处理器的方框图;
图2a和2b简要地示意了用在该实施例中的压缩策略;
图3示出了根据该实施例的所述一个心动式网络的方框图;
图4示出了图3所示的心动式网络的称谓“S”单元的方框图;
图5示出了根据本发明的简化了的心动式网络的方框图,用于展示非隔行扫描模式操作;
图6示出了根据本发明的简化了的心动式网络的方框图,用于展示隔行扫描模式操作;
图7示出了在所述实施例的第一种变型中的协同处理器的方框图;
图8示出了所述实施例的第二种变型的方框图;
依据本发明的设备在考虑到MPEG标准要求的情况下:可以对不同类型的运动矢量进行计算即在多帧或多幅图像的矢量、朝向当前图像的在前图像和朝向当前图像的在后图像的矢量(分别称作正向矢量和反相矢量)的情况下均可对其进行计算。在本说明的其余部分,为清楚起见,将采用所述的正向矢量为例,但很明显,本发明并不受当前实施例的限制。
图1示出了一个运动预测处理器101的结构。所述处理器101包括一个RISC控制器102(RISC=“简化指令集计算机”),一个心动式网络协同处理器103、三个用于装载图像的独立的输入端口104、105和106、一个用于提供所述运动矢量的输出端口107、和一个本机的RAM108及RAM109。
所存在的几个独立的输入端口使得能够处理相同数量的独立的视频源。在一个变型中,每一个输入端口都装备有一个二次采样电路用于执行所述运动分级预测。
除了别的组件之外,上述这些不同的组件通过被连接到一外部DRAM存贮器110的一数据总线111进行通信。一个存贮器管理单元112控制在所述本机存贮器之间数据的移动。对应于图像(基准或当前)的数据被传送给动态存贮器110。然后,它们被再次读出并在适当的时间点提供给协同处理器103。由所述协同处理器103所计算的运动矢量通过缓冲存储器MV BUFF114传送给动态存贮器110。在所述适当的时间点,这些矢量被再次读出并通过所述传送端口107传送出去。
所述处理器101还具有一个微处理机接口115,用于通过下装(down-loading)代码和计算参数为所述RISC控制器102提供编程和配置。通过接口115也可以对存贮在所述动态存贮器110内的运动矢量进行存取。
单元MAX-AVR113为每幅图像计算平均运动矢量和最大运动矢量。
在本例中的所述RISC控制器102是一个具有62个寄存器和64个数据字存贮器的19位处理器。所述控制器102的作用在于处理来自处理器101各个单元的请求并在适当的时刻启动它们。
所述的RISC控制器102被连接到本机RAM108和本机ROM109,后者包括有常规被使用的程序。
在本描述的余下部分中,我们将首先叙述一个单一的心动式网络的操作。这将使得能够对结合8个这种网络的所述协同处理器103的操作作出更好的理解。
图2a示出了在所述心动式网络中信息的循环。该网络的基本功能就是把所述当前像素信息组和基准窗口的内容相比较。所述当前像素信息组被存贮在所述心动式网络201之内。利用多个区域将所述基准窗口传送给所述网络。对每个可能的位置计算所述的误差函数Err。元件202确定所述误差函数的最小值及其对应的运动矢量。
图2b示出了一种用于确定被传送到所述心动式网络的区域的方法。每个区域具有与所述网络行数相对应的像素行数量(在本例中该数量为4)。所述第一区域包括有所述基准窗口的前四行。当所述的第一区域被全部处理完毕时,继续对下一个区域进行处理,所述下一区域包含有所述第一区域的后三行和紧跟在该第一区域之后的一行,换句话说,每个区域相对于在前的区域被移位一行。
每个区域被逐列地提供给所述的心动式网络然后将每个区域具有相同行数的当前信息组与每个区域相同规模的全部信息组加以比较。最后,将当前信息组与所述基准窗口相同规模的全部信息组进行比较。
在此,注意到两个区域仅相差一个像素行。这个冗余将在以后被用于限制存贮器10的数据装载。
图3示出了一个包括有四行和五列的心动式网络,该网络包括称谓“S”的单元,缓冲器“B”、加法器“Add”旁通电路单元301和最后面的旁通电路单元302。
所述“S”单元执行|a-b|的计算,其中,a和b分别表示当前信息组的像素值和所述基准窗口的像素值。每个给定行S单元的输出通过一缓冲器B接到下一个S单元的输入端上。缓冲器B还位于一行的每个第一S单元的前面。每个周期期间内在一确定行上,b个像素的值从一个缓冲器移往随后的缓冲器。所述的缓冲器用于保持所述的b值,而S单元则执行对它们的计算。
每个S单元还具有一个输出端C,用于提供|a-b|的计算结果。所述的输出端C还被连接到另一个缓冲器B上(注意:在图3中,尽管不是所有的缓冲器都具有相同的功能,但所有的缓冲器都被标注为B)。一个确定列的所有这种缓冲器都被连接到同一个加法器Add上。因此,具有与列数相同数量的加法器。
一个加法器的输出端通过三个相互串接的缓冲器B连接到下一个加法器的输入端上。在已选定的操作方法中,可以利用所述的旁通电路单元301使这三个缓冲器中的最后一个被短路或不被短路。
所述的最后面的旁通电路单元302或是在一般的非隔行扫描操作情况下于每个周期提供误差函数值,或是在隔行扫描模式情况下于每两个周期提供误差函数值。在后一种情况下,在该最后面的旁通电路单元302内集成的加法器将所述误差函数的两个连续值相加起来。
在一种变型中,所述的加法器Add是一个“三输入端进位保留加法器”。
图4详细地示出了一个S单元的功能。所述的S单元包括一个输入端401、一个直接与所述输入端401相联接的输出端402、一个具有两个输入端的计算单元403,所述两个输入端中的一个连接到输入端401,而另一个则连接到多路转换器404的输出端,所述多路转换器404用于通过一个选择线405来选择缓冲器406和缓冲器407中之一的内容。所述缓冲器406和407的输入端也连接到所述S单元的输入端401上。
两个缓冲器中的每一个都包含有一个当前信息组的像素值。这些值在适当时刻通过所述输入端401被装载。所述缓冲器的控制电路是一个传统电路,这里不再详述。两个相互并联的缓冲器能够使得两个当前信息组被同时存贮在一个单一的心动式网络中。利用这种方式,可以在所述基准窗口内执行确定位置的两个比较,从而减少了在所述动态存贮器10和协同处理器3之间传送数据的数量。
在每个S单元中的两个缓冲器还能进行所谓的“隔行扫描”操作,其使当前信息组的行数成为心动式网络行数的两倍。
所述计算单元还提供在其输入端上的两个值差的绝对值。
在这个例子中注意到,所述基准窗口像素的b值被存贮在所述S单元之间的缓冲器B中,而一个(或多个)当前信息组的像素的a值被存贮在所述S单元的缓冲器中。
在此,还注意到将所述S单元所产生的中间结果总和起来的功能全部是由处于所述S单元每一列底层处的加法器来执行的。
下面参考图5来说明所述心动式网络一般的(非隔行扫描)操作。所述图5示出了一个具有1行和8列的心动式网络。具有多行的网络的操作是非常相似的。在每个S单元的输出端(输出端S)处的结果都同时出现并传送给加法器。在一般的操作中,在该列末端每个加法器之间仅需要两个缓冲器B。为清楚起见,在图中未示出所述的第三缓冲器和旁通电路单元。
所述像素值a已经存贮在所述网络中。按每个周期将b值提供给所述网络的输入端。表一示出了一定数量周期内输出信号C的变化:
表一
Cycle | C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 |
0 | — | — | — | — | — | — | — | — |
1 | |b0-a0| | — | — | — | — | — | — | — |
2 | |b1-a0| | |b0-a1| | — | — | — | — | — | — |
3 | |b2-a0| | |b1-a1| | |b0-a2| | — | — | — | — | — |
4 | |b3-a0| | |b2-a1| | |b1-a2| | |b0-a3| | — | — | — | — |
5 | |b4-a0| | |b3-a1| | |b2-a2| | |b1-a3| | |b0-a4| | — | — | — |
6 | |b5-a0| | |b4-a1| | |b3-a2| | |b2-a3| | |b1-a4| | |b0-a5| | — | — |
7 | |b6-a0| | |b5-a1| | |b4-a2| | |b3-a3| | |b2-a4| | |b1-a5| | |b0-a6| | — |
8 | |b7-a0| | |b6-a1| | |b5-a2| | |b4-a3| | |b3-a4| | |b2-a5| | |b1-a6| | |b0-a7| |
9 | |b8-a0| | |b7-a1| | |b6-a2| | |b5-a3| | |b4-a4| | |b3-a5| | |b2-a6| | |b1-a7| |
10 | |b9-a0| | |b8-a1| | |b7-a2| | |b6-a3| | |b5-a4| | |b4-a5| | |b3-a6| | |b2-a7| |
11 | |b10-a0| | |b9-a1| | |b8-a2| | |b7-a3| | |b6-a4| | |b5-a5| | |b4-a6| | |b3-a7| |
12 | |b11-a0| | |b10-a1| | |b9-a2| | |b8-a3| | |b7-a4| | |b6-a5| | |b5-a6| | |b4-a7| |
13 | |b12-a0| | |b11-a1| | |b10-a2| | |b9-a3| | |b8-a4| | |b7-a5| | |b6-a6| | |b5-a7| |
14 | |b13-a0| | |b12-a1| | |b11-a2| | |b10-a3| | |b9-a4| | |b8-a5| | |b7-a6| | |b6-a7| |
15 | |b14-a0| | |b13-a1| | |b12-a2| | |b11-a3| | |b10-a4| | |b9-a5| | |b8-a6| | |b7-a7| |
在周期0期间,b0值被存贮在通往所述网络的输入端处的第一缓中器B501中。只有在周期1期间有结果其是从存贮在缓冲器502中的第一S单元在输出端C0处提供的。在周期1期间,所述值b0也被存贮在所述第二缓冲器B503中。
在所述网络运行的某一时刻,在最后一个加法器的输出端我们将发现,所有差值绝对值的和,按照基准窗口其对应于当前信息组(一个8像素行)的确定位置。在所述表中以粗体字符示出了用于所述基准窗口第一行的必须在加法器中被相加的结果。
这个总计功能影响到由所述加法器之间的缓充器504所引入的延时。可以很容易地看出,必须引入两个周期的延时,以便正确地传送所述结果到所述加法器。这就说明了为什么在每个加法器之间具有两个缓冲器。每个缓冲器引入了一个周期的延时。换言之,在两个在前的加法器之间的两个缓冲器504和505抵削了由缓冲器501和502引入的延时。
在第十五周期结束处,当前信息组第一可能位置的函数Err的值被传送给所述网络的输出端506。
在此,注意到,在这个操作过程中,只将存贮到每一S单元中的两个值中的一个使用。在一个变型中,在每个S单元中,使用了单独存贮当前信息组像素值的缓冲器。
图6和图7示出了一个心动式网络的所谓“隔行扫描”操作。这种方法能确定包括多个行数在内的当前信息组的误差函数其等于所述心动式网络行数的两倍。这是由在每个S单元中加一个附加缓冲器和在每个加法器中间加一个附加缓冲而简单地实现的。
除了在每对加法器之间插入了一个附加缓冲器之外,图6类似于图5。特别是如图4所示,每个S单元都包括有两个内部缓冲器。在偶数周期期间内,每个S单元第一缓冲器的内容被多路转换到相应的计算单元,而在奇数周期期间内,使用第二缓冲器的内容。
两倍于当前信息组规模的信息组被分离成相互垂直叠加的两个子信息组a和a′,第一子信息组a被存贮在每个S单元的第一缓冲器中,而第二子信息组a′被存贮在每个S单元的第二缓冲器中。
在相同方式下,所述基准窗口的区域具有双倍数量的行数,它包括一个上子区域b和一个下子区域b′。在一个偶数周期期间,所述子区域b的一个列被送往所述心动式网络的所述输入端,而在所述的奇数周期则传送b′的一个列。
表2给出了在每个周期之后,所述输出端C的状态。如前所述,所述粗体字符表示中间结果其必须被相加以构成与一个子信息组相对应的误差函数。
与非隔行扫描操作相比较,在所述两个子信息组和两个子区域之间的这种交替在与确定位置相对应的累积误差的加法器输出端处和在对应于下一个加法器输入端的中间结果之间引入了一个周期的补充延时。由于这个原因,在每一对加法器之间插入了第三缓冲器。
图6所示网络中的最后一个加法器器601被连接到加法器602和缓冲器603的第一输入端上,而缓冲器603的输出端被连接到所述加法器602的第二输入端上。
在所述加法器601的输出端按每个周期提供对应于一个子信息组的误差函数(一旦所述网络被正确地启动)。表2示出了对应于所述子信息组a′的误差函数,其在对应于所述信息组a的误差函数值后滞后一个周期。所述的两个值必须相加以获得与整个信息组a+a′相对应的误差函数值,于在前一个周期期间内,与a相对应的值被存入缓冲器603中。在下一个周期内,与信息组a′相对应的值出现在所述加法器601的输出端。加法器602计算所述的和。因此,每两个周期在所述加法器602的输出端上出现正确的结果。
这种“隔行扫描”操作模式是非常有意思的,利用这种方式,可以减少所述网络的行数以及本机存贮器的数量(参见下面)。
在一种变型中,设计所述的心动式网络以使处理其行数等于N倍网络行数的当前信息组,其中,N是一个大于2的整数。
表二
Cycle | C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 |
0 | — | — | — | — | — | — | — | — |
1 | |b0-a0| | — | — | — | — | — | — | — |
2 | |b0′-a0′| | |b0-a1| | — | — | — | — | — | — |
3 | |b1-a0| | |b0′-a1′| | |b0-a2| | — | — | — | — | — |
4 | |b1′-a0′| | |b1-a1| | |b0′-a2′| | |b0-a3| | — | — | — | — |
5 | |b2-a0| | |b1′-a1′| | |b1-a2| | |b0′-a3′| | |b0-a4| | — | — | — |
6 | |b2′-a0′| | |b2-a1| | |b1′-a2′| | |b1-a3| | |b0′-a4′| | |b0-a5| | — | — |
7 | |b3-a0| | |b2′-a1′| | |b2-a2| | |b1′-a3′| | |b1-a4| | |b0′-a5′| | |b0-a6| | — |
8 | |b3′-a0′| | |b3-a1| | |b2′-a2′| | |b2-a3| | |b1′-a4′| | |b1-a5| | |b0′-a6′| | |b0-a7| |
9 | |b4-a0| | |b3′-a1′| | |b3-a2| | |b2′-a3′| | |b2-a4| | |b1′-a5′| | |b1-a6| | |b0′-a7′| |
10 | |b4′-a0′| | |b4-a1| | |b3′-a2′| | |b3-a3| | |b2′-a4′| | |b2-a5| | |b1′-a6′| | |b1-a7| |
11 | |b5-a0| | |b4′-a1′| | |b4-a2| | |b3′-a3′| | |b3-a4| | |b2′-a5′| | |b2-a6| | |b1′-a7′| |
12 | |b5′-a0′| | |b5-a1| | |b4′-a2′| | |b4-a3| | |b3′-a4′| | |b3-a5| | |b2′-a6′| | |b2-a7| |
13 | |b6-a0| | |b5′-a1′| | |b5-a2| | |b4′-a3′| | |b4-a4| | |b3′-a5′| | |b3-a6| | |b2′-a7′| |
14 | |b6′-a0′| | |b6-a1| | |b5′-a2′| | |b5-a3| | |b4′-a4′| | |b4-a5| | |b3′-a6′| | |b3-a7| |
15 | |b7-a0| | |b6′-a1′| | |b6-a2| | |b5′-a3′| | |b5-a4| | |b4′-a5′| | |b4-a6| | |b3′-a7′| |
16 | |b7′-a0′| | |b7-a1| | |b6′-a2′| | |b6-a3| | |b5′-a4′| | |b5-a5| | |b4′-a6′| | |b4-a7| |
图7简要示出了在所述实施例第一种变型中的所述协同处理器。在这种变型中,所述协同处理器包括10个FIFO堆栈701-710,它们以并联形式连接到所述数据总线11。每个堆栈数据字的数量决定了搜索窗口像素列的数量。所述堆栈701-710的输出端被连接到具有10个输入端、8个输出端714-721的开关电路712上。
所述电路712能够使得10个FIFO堆栈(此后称之为多个堆栈)中任一个的输出端连接到所述电路8个输出端中的任何一个上。每个FIFO都包含所述搜索窗口的一个完整行。在确定时间点连接到一个输出端的8个FIFO与处理后的搜索窗口区域的所述行相对应。
两个未被连接的辅助FIFO通过所述的数据总线由存贮在缓冲器10中的数据加载。被装载的数据对应于搜索窗口的行数,其不同于当前正在被处理的区域。
作为例子,假定一个搜索窗口的8行L1到L8的第一区域包含在多个FIFO701-708中。在处理这8行的期间内,行L9被装入FIFO709。当完成所述第一区域的处理时,存贮于FIFO701中的行L1变得没用了。所述第二区域包含有行L2-L9。由于整个区域存在于所述多个FIFO之中,因而所述第二区域的处理可以马上开始而没有任何空闲时间。然后,所述的转换电路必须重新建立成已存贮的行的正确顺序,其在向所述心动式网络722-725提供之前建立。
在所述区域具有8行的情况下,9个FIFO足以执行所述操作。例如当以并联方式处理两个4行区域时,使用了第10个FIFO。
在这个变型中,4个具有4行和16列的心动式网络722-725中的每一个都被连接到所述转换电路的输出端上。按照惯例,可以说所述输出端714表示一8行区域的最上行,而输出端721表示所述的最下行。第一和第三网络(分别是722和724)被连接到四个上面的输出端714-717,而第二和第四网络(分别是723和725)被连接到四个下面的输出端718-721上。
上述的配置可以使不同规格的当前信息组被灵活地加以处理。事实上,可以用不同的方式来考虑这四个网络:
8个4×6网络,每一个4×16网络处理两个4×8像素的当前信息组:
4个8×8网络;
2个8×16网络;
2个16×16网络。
在后一种情况下,所述网络以隔行扫描模式操作,其只能获得8个而不是16个输出端。所述8个输出端轮流提供基准窗口的上区域和下区域的8个像素列。
当然也可以使用16个而不是8个FIFO(为了下一行加载而排除所需的FIFO)。
如前所述,所述FIFO堆栈的容量决定了所述窗口的宽度。在使用4×8的网络进行工作的情况下,可以将多个FIFO分为两组,并在每一对FIFO中存贮与两倍长的像素行相等的行。
图7以箭头的形式指出了一种方式,在这种方式下,根据所述的运行方法,在第一个4×16网络的输出端处将所述的计算结果分组。
图8示出了所述实施例的第二种改型。9个FIFO(在标号801下进行分组的)被提供给转换电路802。在这个例子中的协同处理器包括8个4×8心动式网络803-810。事实上,图8所示两个4×8级联的网络与图7所示之一个4×16网络等效。图8更清楚地示出了当8个当前4×8信息组被并行进行处理时,所述网络中每一个计算结果的路径选择。现以两个上面的网络80 3和804为例。在所述网络803输出端处的最后结果(即所述误差函数值)被直接传送给所述网络804。在所述网络803输出端处的这个结果对于后续处理而言是可以或是不可以被利用要取决于是以8个4×8像素的当前信息组或是以4个8×8像素的当前信息组进行工作的事实,在使用8个4×8像素当前信息组的情况下。这个结果对于确定由网络803处理的当前信息组的运动矢量将是必不可少的。
在这种改型之中,单元M与每个4×8网络有关。每一个单元M确定多个网络中每一个的输出端处的误差函数的最小值,并存贮相应运动矢量的坐标。所述结果通过规定的数据总线811加以传送。
所述网络803、804、807和808输出端中的每一个被连接到多路转换器的所述输入端上。所述多路转换器的输出端被连接到相关的M单元的输入端上。这些相同网络中每一个的输出端也被连接到一个两输入端加法器的一个输入端上,该加法器的另一输入端接收紧跟在其后的一个网络的输出。对于网络803、804、807和808而言,它们分别具有所述网络805、806、809和810的输出端。
当所述处理器在8个当前信息组的基础上进行工作时,每个网络的输出被直接连接到相关的单元M上。然后,每个单元M根据它自己的情况确定误差函数和运动矢量的最小值。这就产生了8个不同的矢量。
当所述的处理器在4个8×8像素信息组的基础上进行工作时,所述的多路转换器进行转换,以便使与在同一信息组基础上进行工作的两个辅助网络相关的所述多个单元M中的一个接收由这两个网络计算的误差函数值的和。以后只有由接收这个和的所述单元所确定的矢量被加以考虑。
所述多路转换器的这种转换是由图1所示的控制器2加以控制的。
Claims (24)
1、一种预测运动的设备,其在图像压缩系统中利用了以信息组为基础的信息组匹配,其特征在于,所述设备包括:
用于对两个值之间的误差函数进行计算的N列XM行的计算装置;
用于存贮表示预测运动的所述信息组的值的N×M存贮装置;
用于存贮表示一个基准窗口信息组的值的N×M存贮装置,所述的两个存贮装置分别被连接到所述计算装置上;
M个加法装置,用于把N个元素的列的所述误差函数的值同时相加起来。
2、根据权利要求1所述的设备,其特征在于:还包括有一个串联连接的具有M个缓冲器的N个行的网络,在该网络中,所述基准窗口的区域是逐列分布的。
3、根据权利要求2所述的设备,其特征在于,每个缓冲器的输出端被连接到所述误差函数计算装置的输入端上。
4、根据权利要求3所述的设备,其特征在于,所述的计算装置根据所述缓冲器输出端上的值以及表示预测运动的所述信息组的值计算所述的误差函数。
5、根据权利要求4所述的设备,其特征在于,每个计算装置的计算结果被存贮在一个缓冲器中。
6、根据权利要求5所述的设备,其特征在于,利用加法装置将存贮在给定列缓冲器中的所有结果相加起来。
7、根据权利要求6所述的设备,其特征在于:考虑到所述网络中基准窗口信息组的分布,将与一个列相关的相加结果延时提供给下一列的加法器。
8、根据权利要求7所述的设备,其特征在于:所述的延时是由串联于两个加法器之间的多个缓冲器产生的。
9、根据权利要求1所述的设备,其特征在于,用于存贮表示预测运动的所述信息组的值的存贮装置存贮两个像素值,两个值中的一个被多路转换给所述的误差函数计算装置。
10、根据权利要求9所述的设备,其特征在于,所述的两个像素值表示一个给定信息组的较低和较高两个子信息组,作为交替值而在所述网络输入端处提供的值表示所述基准窗口的较高子区域和较低子区域,这种操作是“隔行扫描”模式。
11、根据权利要求10所述的设备,其特征在于,所述的设备包括一个加法装置,用于把与这两个子信息组相对应的误差函数值相加起来。
12、根据权利要求10所述的设备,其特征在于,在隔行扫描模式下,在所述两个加法器之间引入一个计算周期的辅助延时。
13、根据权利要求1所述的设备,其特征在于,所述的误差函数是一个距离函数。
14、根据权利要求13所述的设备,其特征在于,所述每一行缓冲器是通过存贮所述基准窗口的一个行的装置提供的。
15、根据权利要求14所述的设备,其特征在于,所述的存贮装置具有多个先进先出堆栈。
16、根据权利要求14所述的设备,其特征在于,至少有N+1个行存贮装置,且当所述装置的N行被提供所述缓冲器的N行时,利用与所述行相对应的值对所述辅助存贮装置加载,在存贮于所述N个行存贮装置的基准窗口和被直接连续处理的区域之间,所述这些行是不相同的。
17、根据权利要求16所述的设备,其特征在于,包括一个位于所述行存贮装置及缓冲器网络之间的转换电路,所述的转换装置将所述的行存贮装置连接到所述缓冲器适当的行上。
18、一种实现上述权利要求之一所述的设备的一个图像压缩系统中用于计算运动矢量的设备,其特征在于,包括一个输入装置、一个输出装置、一个与存贮器相关的控制装置、一个用于存贮部分当前图像和基准图像部分的装置、一个用于对所述存贮装置寻址的装置、一个用于对当前图像部分和基准图像部分间的误差函数进行计算的装置和一个与所述控制装置接口的装置。
19、根据权利要求18所述的设备,其特征在于,所述的输入装置是一个用于通过数据总线把表示所述图像的数据装入所述存贮装置的端口。
20、根据权利要求18所述的设备,其特征在于,所述的数据被再次读出,然后提供给所述误差函数计算装置。
21、根据权利要求20所述的设备,其特征在于,包括一个编程所述控制装置的装置。
22、根据权利要求21所述的设备,其特征在于,所述的误差函数计算装置包括一个N×M单元的心动式网络。
23、根据权利要求22所述的设备,其特征在于,通过至少N个存贮器的存储体向所述的心动式网络提供数据。
24、一种包括前述任一项权利要求中所述的设备的图像压缩系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9410158A FR2723796B1 (fr) | 1994-08-19 | 1994-08-19 | Dispositif d'estimation de mouvement |
FR9410158 | 1994-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1119815A true CN1119815A (zh) | 1996-04-03 |
CN1110209C CN1110209C (zh) | 2003-05-28 |
Family
ID=9466402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95115290A Expired - Fee Related CN1110209C (zh) | 1994-08-19 | 1995-08-17 | 用于预测运动的设备及其相应的图像压缩系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5745605A (zh) |
EP (1) | EP0702327B1 (zh) |
JP (1) | JPH0879761A (zh) |
KR (1) | KR100437177B1 (zh) |
CN (1) | CN1110209C (zh) |
BR (1) | BR9503709A (zh) |
DE (1) | DE69534380D1 (zh) |
FR (1) | FR2723796B1 (zh) |
MY (1) | MY122561A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100356780C (zh) * | 2005-02-03 | 2007-12-19 | 清华大学 | 用于压缩视频信号解码的图像存储方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2742248B1 (fr) * | 1995-12-06 | 1998-01-23 | Thomson Multimedia Sa | Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement |
US5953458A (en) * | 1995-12-06 | 1999-09-14 | Thomson Multimedia S.A. | Method and device for motion estimation |
US6115837A (en) * | 1998-07-29 | 2000-09-05 | Neomagic Corp. | Dual-column syndrome generation for DVD error correction using an embedded DRAM |
US20070150697A1 (en) * | 2005-05-10 | 2007-06-28 | Telairity Semiconductor, Inc. | Vector processor with multi-pipe vector block matching |
US20060259737A1 (en) * | 2005-05-10 | 2006-11-16 | Telairity Semiconductor, Inc. | Vector processor with special purpose registers and high speed memory access |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3721074A1 (de) * | 1986-12-24 | 1988-07-07 | Licentia Gmbh | Schaltungsanordnung zur verschiebungsvektorsuche in der digitalen bildanalyse |
US4897720A (en) * | 1988-03-14 | 1990-01-30 | Bell Communications Research, Inc. | Circuit implementation of block matching algorithm |
FR2638924B1 (fr) * | 1988-11-09 | 1991-01-25 | Artieri Alain | Procede et circuit de traitement par bloc de signal bidimensionnel d'images animees |
US4902849A (en) * | 1989-02-06 | 1990-02-20 | Phillips Petroleum Company | Dehydrogenation process |
GB8909498D0 (en) * | 1989-04-26 | 1989-06-14 | British Telecomm | Motion estimator |
JPH0385884A (ja) * | 1989-08-29 | 1991-04-11 | Sony Corp | 画像の動き検出回路 |
US4937666A (en) * | 1989-12-04 | 1990-06-26 | Bell Communications Research, Inc. | Circuit implementation of block matching algorithm with fractional precision |
KR0160618B1 (ko) * | 1992-10-27 | 1999-01-15 | 윤종용 | 실시간 움직임 추정장치 및 그 방법 |
DE69327040T2 (de) * | 1993-02-22 | 2000-04-13 | Industrial Technology Research Institute, Chutung | Blockübereinstimmungsarchitektur mit mehreren Modulen |
-
1994
- 1994-08-19 FR FR9410158A patent/FR2723796B1/fr not_active Expired - Fee Related
-
1995
- 1995-08-04 US US08/511,483 patent/US5745605A/en not_active Expired - Fee Related
- 1995-08-17 CN CN95115290A patent/CN1110209C/zh not_active Expired - Fee Related
- 1995-08-18 DE DE69534380T patent/DE69534380D1/de not_active Expired - Lifetime
- 1995-08-18 EP EP95401910A patent/EP0702327B1/fr not_active Expired - Lifetime
- 1995-08-18 JP JP7210855A patent/JPH0879761A/ja active Pending
- 1995-08-18 MY MYPI95002439A patent/MY122561A/en unknown
- 1995-08-18 BR BR9503709A patent/BR9503709A/pt not_active IP Right Cessation
- 1995-08-18 KR KR1019950025805A patent/KR100437177B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100356780C (zh) * | 2005-02-03 | 2007-12-19 | 清华大学 | 用于压缩视频信号解码的图像存储方法 |
Also Published As
Publication number | Publication date |
---|---|
MY122561A (en) | 2006-04-29 |
CN1110209C (zh) | 2003-05-28 |
BR9503709A (pt) | 1996-05-28 |
DE69534380D1 (de) | 2005-09-22 |
FR2723796A1 (fr) | 1996-02-23 |
FR2723796B1 (fr) | 1996-11-29 |
EP0702327B1 (fr) | 2005-08-17 |
KR100437177B1 (ko) | 2004-10-20 |
EP0702327A1 (fr) | 1996-03-20 |
US5745605A (en) | 1998-04-28 |
KR960009753A (ko) | 1996-03-22 |
JPH0879761A (ja) | 1996-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100342401C (zh) | 基于段的运动估计 | |
CN1157956C (zh) | 运动估计器 | |
US7916787B2 (en) | Method of processing a current field macroblock | |
JP2008536429A (ja) | 領域の動的なアスペクト比を用いた領域ベース3drs動き推定 | |
CN1252998C (zh) | 信息信号处理装置、图像信息转换装置和图像显示装置 | |
CN1157060C (zh) | 图像内插系统和图像内插方法 | |
CN1680978A (zh) | 确定对应于图像影像范围的运动矢量的方法和装置 | |
EP2127394A1 (en) | Methods and apparatus to decode and encode video information | |
JP2008538433A (ja) | 領域ベース複数パス動き推定及び時間的動きベクトル候補の更新を用いたビデオ処理 | |
JP3791922B2 (ja) | 動画像復号化装置及び方法 | |
CN1115880C (zh) | 在运动估算系统中以矩阵阵列处理数据的方法 | |
JPH08251602A (ja) | 動きベクトルの選択方法と、動きベクトルの選択方法を実施する画像処理装置 | |
CN1110209C (zh) | 用于预测运动的设备及其相应的图像压缩系统 | |
US20050265456A1 (en) | Apparatus and method of determining motion vectors assigned to image regions | |
CN1552160A (zh) | 图像处理器和配有这种图像处理器的图像显示设备 | |
US6710844B2 (en) | Method and apparatus for estimating camera motion | |
KR20060010776A (ko) | 비디오 데이터 처리 방법 및 데이터 프레임의 제 1 블럭에대한 움직임 벡터 생성 방법 | |
US5982910A (en) | Method and circuit arrangement for undersampling in the case of movement estimation | |
CN1637719A (zh) | 数据存储设备、数据存储控制设备、方法以及程序 | |
CN100339976C (zh) | 多模多尺度运动估计的超大规模集成电路体系结构及方法 | |
US20030091113A1 (en) | Motion search apparatus for determining motion vector in accordance with motion vector of macro block neighboring object macro block | |
WO2010118989A1 (en) | Image region interpolation | |
JP2002165099A (ja) | 画像符号化方法及び画像エンコーダ | |
CN100340118C (zh) | 运动估计的超大规模集成电路体系结构及数据缓存的方法 | |
JP2004229150A (ja) | 動きベクトル探索方法および装置 |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |