CN1131881A - 选择运动矢量的方法及实现该方法的图象处理装置 - Google Patents

选择运动矢量的方法及实现该方法的图象处理装置 Download PDF

Info

Publication number
CN1131881A
CN1131881A CN95120803A CN95120803A CN1131881A CN 1131881 A CN1131881 A CN 1131881A CN 95120803 A CN95120803 A CN 95120803A CN 95120803 A CN95120803 A CN 95120803A CN 1131881 A CN1131881 A CN 1131881A
Authority
CN
China
Prior art keywords
vector
value
function
coordinate
mould
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
Application number
CN95120803A
Other languages
English (en)
Other versions
CN1110187C (zh
Inventor
阿兰·皮尔逊
迪迪尔·夏洛特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor SA
Original Assignee
Thomson Consumer Electronics SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thomson Consumer Electronics SA filed Critical Thomson Consumer Electronics SA
Publication of CN1131881A publication Critical patent/CN1131881A/zh
Application granted granted Critical
Publication of CN1110187C publication Critical patent/CN1110187C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/231Analysis of motion using block-matching using full search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

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)
  • Color Television Systems (AREA)

Abstract

本发明涉及一种在具有一运动估计器的***中选择运动矢量的方法,所述运动估计器计算估价函数值,其每一值对应于与一当前象素块相应的参考窗的一象素块,而所述各块的相对位置由一运动矢量描述。所述方法包括下列步骤:确定估价函数最小值;比较与最小值估价函数值相关的各矢量的模;从所述相关矢量中选择具有最小模的运动矢量。以及实现该方法的装置。本发明尤其适用于图象压缩。

Description

选择运动矢量的方法及实现 该方法的图象处理装置
本发明涉及一种选择运动矢量的方法和实现该方法的装置。依据本发明的该方法和装置特别适用于采用运动补偿方法的电视图象编码器。
很多图象压缩方法基于对成块的象素的处理。在MPEG2(代表“运动图象专家组”)的情况下,图象分成8×8的象素的块,4个象素块组成一个16×16象素的宏块。各块或宏块经各种处理操作,以消除图象间及图象内的冗余。采用的这些处理操作之一是运动估计。该方法包括估计当前图象相对过去的图象及将来的图象的位移。这样,就确定了定义这种位移的一个或多个运动矢量。这些运动矢量使得可由过去的和将来的图象获得当前图象的预测。由此可确定该预测与当前图象的差,并且这个差将用于后续的压缩。目前,运动矢量用于所谓的“帧间”和“双向”图象,然而也可同样用于“帧内”图象的以减小任何传输错误的影响。
运动估计一般是对每个宏块进行的。不用过去的图象,也可使用存在于编码器中的参考图象,该参考图象对应于由解码器解码的图象(也就是说考虑了由于压缩而产生的信息损失的图象)。
一种确定参考图象中“最佳”宏块的方法包括将当前宏块与参考图象中的每个宏块进行比较。作为比较的标准,对当前宏块的在参考图象中的每个可能位置,定义和计算一个误差函数Err。给出函数Err最小值的位置将确定该位移矢量。位移矢理可为各种精度,这依赖于可用的计算能力和用于编码运动矢量而保留的通带。由象素间插值可实现的分数象素的精度。如果运动矢量的长度受限制,则可在当前宏块定义的位置周围设置一个合适尺寸的搜索窗。
运动矢量的计算需要巨大的计算能力,而对这种能力的要求随所需精度、图象分辨率和矢量和运动矢量的频率等的增加而增大。
一个通常用的误差函数如下: Err ( m , n ) = Σ i Σ j D ( a ( j , j ) , b ( i + m , j + n ) )
其中i、j表示一宏块内的位置,m、n代表运动矢量的坐标,而a、b分别代表当前宏块的象素的亮度值和该搜索窗或图象的位移宏块的象素的亮度值。
函数D可以是例如D(x,y)=|x-y|这样的形式。
然而,多个运动矢量可能对应于误差函数的同一最小值。特别是在美国专利US 5 327 232(1994年7月5日),提及到了这一问题,但其提出的解决方案很复杂。
本发明的目的在于提出一种在一包含有一运动估计器的***中选择运动矢量的方法,所述运动估计器计算一估计价函数的值,每个值对应于一个与当前象素块相关的参考窗的象素块,而所述块的相对位置由一运动矢量来描述,所述方法的特征在于,其包括如下步骤:
确定所述估价函数的最小值,
比较与所述最小值相关的各矢量的模(norm),
从所述的相关矢量中选择具有最小的模的矢量。
依据一特定的实施例,所述矢量的模按下式计算:
‖(x,y)‖=max{|X|,|Y|}.......(2)
这里的X和Y代表矢量的坐标。
依据一特定实施例,尤其是所述矢量的坐标为二进制补码编码时,该坐标之一的修正绝对值,在所述该坐标为负时,通过将该坐标的位求反来得到。
依据一特定实施例,该参考窗按使运动矢量坐标为增函数的方式来扫描,并且当多个矢量对应于所述估价函数最小值时,选择扫描顺序中最后一矢量。
依据一特定实施例,估价函数形式为 Err ( m , n ) = Σ i Σ j D ( a ( j , j ) , b ( i + m , j + n ) )
其中D(x,y)=|x,y|,或者
本发明的另一目的是提供的一种图象处理装置,其包括一运动估计器,所述运动估计器计算一估价函数的值,每个值对应于一个与一当前象素块相关的参考窗的象素块,所述各块的相对位置由一运动矢量来描述,所述装置特征在于,它包括:
用于计算运动矢量的模的装置;
用于比较对应于每个矢量的估价函数的值的装置;
用于至少比较对应于所述估价函数最优值的各矢量的模的装置;
用于存贮具有最小模的矢量之一的装置,
依据一特定实施例,所述估价函数是一衡量当前块与参考窗的块之间存在的变形的函数。
依据一特定实施例,用于计算一矢量的模的装置,包括有在该矢量的每一分量和其符号位之间进行异或运算的逻辑门。
依据一特定实施例,计算装置还包括一比较器和一多路选择器(multiplexer),其功能为确定来自异或门输出的各分量的最小值。
关于符合MPEG标准的图象压缩中的运动矢量的应用的进一步资料,可参见:
“信息技术,运动图象及相关音频的通用编码,ISO/IEC13818-2视频)1993年11月委员会草案的H.262建议”
本发明的其余特征和优点将通过结合附图对特定实施例的描述而给出,但不只限于该实施例。
图1代表运动估计处理器的功能方块图。
图2a和2b代表所采用的比较方法的示意性例子。
图3代表用于计算运动矢量的脉动阵列(systolic array)的功能方块图。
图4表示图3中脉动阵列的称作“S”阵元的功能方块图。
图5表示用来描述以不交替模式操作的简化脉动阵列的功能方块图。
图6表示用来描述以交替模式操作的简化脉动阵列的功能方块图。
图7表示根据一第一变型的协处理器的功能方块图。
图8表示根据一第二变型的协处理器的功能方块图。
图9a为依据本发明的一实施例的当前块与搜索窗中的块的比较方式的略图。
图9b示出依据该实施例的运动矢量的坐标变换所采用的规则。
图10是依据本发明的实施例的运动矢量选择单元的功能方块图。
图11表示依据本实施例的用于计算该绝对值的装置的逻辑布局。
首先将描述实现本发明的运动估计处理器的例子。重点放在协处理器的描述上,该协处理器是计算与每个运动矢量相关的误差的单元。这种协处理器和其脉动阵列形成了以汤姆逊消费者电子公司的名义于1994年8月19日提交的法国专利申请94 10158的主题。
该运动估计处理器使依据MPEG2标准所需的计算各种运动矢量类型的计算成为可能:如帧间或图象间矢量,由过去图象至当前图象的矢量或者从将来图象至当前图象的矢量(分别为“前向矢量”和“后向矢量”),等等。以下,为说明清楚起见,将采用前向矢量。当然,本发明将不限于给出的实施例。
图1就其功能示出了一运动估计处理器101。该处理器101包括一RISC控制器102(RISC表示“精减指令***计算机”);一脉动阵列协处理器103;三个独立输入端口,104、105、106用于加载图象;一输出端口107用于提供运动矢量;以及一局部RAM和一局部ROM(分别记为108和109)。
具有几个独立的端口使其可作为多个独立视频源工作。依据一变型实施例,每个输入口配有二次采样电路以实现层次化运动估计。
上述各种子组件经一数据总线111通讯,而该数据总线还被连接至一外部DRAM存贮器110。一存贮管理单元112处理局部存贮器间的数据流动。对应于图象(参考或当前图象)的数据传输给动态存贮器110。然后在适当时刻再读出送给协处理器103。经由一缓冲存贮器MV BUFF 114,由协处理器103计算的运动矢量送回至动态存贮器110。适当的时刻,这些矢量再被读出经输出口107传输。
处理器101还装有一微处理器接口115,以通过远程加载代码和计算参数来编程和配置RISC控制器102,存在于动态存贮器110中的运动矢量也可经接口115访问。
MAX-AVR单元113对每一图象计算平均运动矢量和最大运动矢量。
依据本实施例,RISC控制器102是一包括62个寄存器和一个64字数据存贮器的19位长的处理器。控制器102的作用是管理处理器101的各单元的请求,并在适当时刻激活它们。
协处理器103包括与编码程的配置有关的以并行或串行方式工作的几个脉动阵列。以下,将描述一单一脉动阵列的操作。这将有助于理解依据本实施例的由8个这些阵列组成的协处理器103的操作。
图2a解释了脉动阵列中的信息流动。该阵列的基本功能是将一当前象素块与参考窗中的内容进行比较。当前块存贮于脉动阵列201中,参考窗按条带(strip)转换成矩阵。对每个可能的位置计算其误差函数Err。
一单元202基于对同一当前块但由搜寻窗所提取的块不同的误差函数的不同值来确定最合适的矢量。下面将更详细描述这一单元。
图2b示出了用于确定提供给该脉动阵列的条带的处理。每一条带具有对应于阵列中的行数(本例为4行)的象素行数目。第一条带中含有参考窗中的头4行。当第一条带被处理完了后,继续对下一条带进行该处理,该下一条带包括第一条带的后三行,和紧接其后的一行。就是说,每一条带相对于前一条带移动一行。
每个条带被逐列地提供给脉动阵列。因此,与每一条带具有相同行数的当前块与每个条带的所有同样大小块进行比较。最后,当前块将与参考窗口中全部的相同大小的块比较完毕。同样数量的误差函数也将被计算并送给单元202。
注意相继的两个条带只差一行象素。这种余量将被进一步利用以限制从存贮器10的数据装入量。
图3给出一具有4行5列的脉动阵列。该阵列中包括称为“S”的单元,缓冲器“B”、加法器“A”、旁路单元301和最终旁路单元302。
“S”单元进行计算|a-b|,其中a、b分别代表当前块的一象素和参考窗的一象素。同行每一S单元的输出由一缓冲器B连至下一S单元的输入。在一行的第一S单元之前也有一缓冲器B。在每一周期在同一行上,各象素值b从一缓冲器传至下一缓冲器。缓冲器保持值b而s单元进行其计算。
每个S单元还具有一输出C,该输出C提供|a-b|操作的结果。输出端C也与缓冲器B相连。同列的所有缓冲器B连至同一加法器。因而有与列的个数一样多的加法器。
加法器的输出经串联的三个缓冲器B连至下一加法器的输入。依赖于所选择的操作模式,这些三个缓冲器的最后一个可由旁路单元301短接或者不短接。
最终旁路单元或者在正常非交替(non-interlaced)操作期间在每个周期提供该误差函数的一个值,或者在交替(interlaced,交错)模式时,在每个第二周期提供该误差函数的一个值。在后一情形,集成于该最终旁路单元302中的加法器把两个相续的误差函数值加在一起。
依据一变型实施例,所述加法器Add是用三输入的进位存储加法器(carry save adder)来实现的。
图4详细示出了单元S的功能。单元S包括一输入401;与一输入401直接相连的输出402;具有两输入的一计算单元403,其中的一个输入端与输入401相连,而另一输入端接到一多路选择器404的输出,该多路选择器404允许经选择线405选择缓冲器406的内容或缓冲器407的内容。缓冲器406和407的输入也联入该单元的输入。
这两个缓冲器的每一个都包含有一当前块的一象素值。在适当时刻,经其输入端401装入这些值。缓冲器控制电路是常规的,因而这里不再进一步解释。设置两个并行的缓冲器,可使得其中同时在一个脉动阵列中存放两个当前块,因而将使得在参考窗的一个和同一位置进行两次比较成为可能。从而,在动态存贮器10和协处理器3之间传送的数据量将减少。
在每个单元S中有两个缓冲器,还允许进行称做交替式的操作,这种操作允许当前块的行数为脉动阵列的行数的两倍。对该操作将作进一步阐述。
计算单元提供在其输入端出现的两个值的差的绝对值。
在该例的上下文中可以看出,参考窗口的象素值b存贮在两个单元S之间的缓冲器B中,而当前块的各象素值或块则存贮于单元S的缓冲器中。
还可看出,由单元S产生的中间结果的累加功能,完全由每个单元S列的最下面的加法器来完成。
脉动阵列的正常(非交替)操作借助于图5的方案予以解释。该方案代表一个只包括一行和八列的脉动阵列。更多行数的阵列的操作完全类似,由每个单元S(输出S)输出的结果同时被送给加法器。在正常操作情况下,在每个列末加法器间只需要两个缓冲器B。为使该方案清楚起见,第三个缓冲器和旁路单元没有示出。
象素值a已存贮于阵列中。一值b在每一周期送给阵列的输入端。表1给出经过一些周期后,输出C的过去的情况。
 Cyc  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|
                        表1
在周期0,值b0存贮在该阵列输入处的第一缓冲器B(记为501)中。仅在周期1,由第一单元S提供的结果存贮于位于输出C0处的缓存器502中。在周期1中,值b0也被存贮于第二缓存器B 503。
当阵列在操作中,在一给定时刻,对应于该参考窗中的当前块中的一给定位置(本例中为8个象素的一行),需要在最后一个加法器的输出处提取所有这些差的绝对值的和。对参考窗的第一行在加法器级将相加的结果在该表中由黑体字来表示。
这一累加功能制约在加法器间由缓冲器504引入的延时。可以看到需要引入两个周期的延时以便使在加法器级的结果的传送能正常进行。这就是在每个加法器间有两个缓存器的原因。每个缓冲器引入一个周期的延时。换言之,在前两个加法器间的两个缓冲器504和505抵消了由缓冲器501和502引入的时延。
在第15个周期末尾,对当前块的第一个可能位置的Err函数的值的在该阵列的输出端506处给出。
可以看到在该操作中,仅使用存贮于每个单元S中的两个a值在的一个。根据一变型实施例,在每个单元S中使用一单一缓存器用于存贮当前块的象素值。
图6和表2给出以所谓交替模式的脉动阵列的操作。这种模式使得确定其具有的行数为该脉动阵列行数的两倍的当前块的误差函数成为可能。这种模式只简单地通过在每个单元S中添设一个额外的缓冲器以及在每个加法器间添加一额外的缓存器来完成。
除了在每对加法器间***一额外的缓冲器之外,图6与图5类似。并且,在每个单元S中包括如图4所示的两个内部缓存器。在偶周期,每一单元S中的第一缓存器的内容被多路选择到对应的计算单元中,而在奇数周期使用该第二缓存器的内容。
两倍大小的当前块分成两子块a和a′,在垂直方向一块处于另一块之上。第一子块存在于每个单元S中的第一缓存器中,第二子块存在于每个单元S中的第二缓存器中。
以相同的方式,参考窗口的条带具有两倍的行数。其中包括一上子条带b和一下子条带b′。在偶数周期,子条带b的一列送至脉动阵列的输入,而在奇数周期,子条带b′送至脉动阵列的输入。
表2给出在每一周期后输出C的状态。与上文相同,用黑体字符表示其中间结果,这些中间结果需要被加起来以形成一个对应于一个子块的误差函数。
在两子块的和两子条带之间的交替,与非交替模式相比,它在对应于一给定位置的累加误差的加法器的输出处的给出和在下一加法器的输入处的相应中间结果的给出之间,引入了一个周期的额外滞后。因此,在每个两个加法器之间,***一第三缓存器。
图6的阵列的最后一加法器不仅连至加法602器的第一输入,而且连至一缓存器603,而缓存器603的输出连至加法器602的第二输出。
在每个周期对应于一子块的误差函数被提供给加法器601的输出端(一旦阵列已被正确初始化)。
表2给出滞后于相应子块a的误差函数值一个周期的相应子块a′的误差函数值。这两个值必须加在一起以获得对应于完整块a+a′的误差函数值。在第一周期,对应于a的值被存贮于缓存器603中。在下一周期,对应于块a′的值在加法器601的输出端给出。加法器602执行求和。因此,每个第二周期有效结果在加法器602的输出端给出。
这种称为交替方式的操作有很大优点,这是由于它使传输象素条带至协处理器的数据总线大小可以减小。
依据一变型实施例,所述脉动阵列被设计成处理其行数等于该阵列行数的N倍的当前块,这里N是大于2的整数。
Cyc  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|
                    表2
图7示出了依据第一变型实施例的协处理器。依据这一变型,该协处理器包括十个先进先出堆栈(FIFO堆栈)701至710,并与数据总线11并行相连。每个FIFO的数据字的数目决定搜索窗中的象素列的个数。堆栈701至710的输出接到一开关电路712,该开关电路712具有10个输入和8个输出714至721。
电路712允许10个FIFOs的任意输出连至8个电路的输出的任何一个。每个FIFO包括搜索窗完整一行。在一给定时刻,8个FIFO连至与正被处理的搜索窗条带的各行相对应的输出。
没有连接的两个额外的FIFO通过数据总线被装入存贮于存贮器110的数据,该装入数据对应于与正被处理的条带不同的该搜索窗内的行。
假定一搜索窗的8行L1至L8的第一条带放在FIFO 701至708中。在处理这8行时,行L9被装到FIFO 9。当第一条带的处理完成后,存于FIFO 701的行L1成为多余的。而第二条带实际包含行L2至L9。因而对该第二条带的处理可立刻开始,因为整条带已存在于这些FIFO中。纵横制(crossbar)开关电路802将负责在将其送入脉动阵列722至725之前把所存贮的行重建成正确的次序。
在条带具有8行的情况,9个FIFO就足以进行所述的操作。第10个FIFO是在例如并行处理两个四行的条带的时候使用的。
根据本变型,其每个有4行16列的4个脉动阵列722至725连至开关电路的各输出。为方便起见,下文用输出714来代表一8行的条带的最上一行,而输出721来代表其最下一行。第一和第三陈列(分别为722和724)联至上边的4个输出714和717,这里第二和第四阵列(分别为723和725)连至下面的4个输出718至721。
上面的结构使得不同大小的当前块可以灵活的方式来被处理。实际上可以考虑以下4个不同形式的阵列:
8个4×8单元的阵列,其每个4×16单元的阵列处理两个4×8单元的当前块;
4个8×8单元的阵列;
两个8×16单元阵列;
两个16×16单元阵列;
在后一情形,阵列工作在交替模式,只有8个输出可用而不是16个。8个输出将交替地提供该参考窗的上条带的8个象素的列和下条带的8个象素的列。
当然可以想见使用16个FIFO而不是8个(不考虑用于装入一行所需的FIFO)。
如前所述,FIFO的深度决定参考窗的宽度。在以4×8单元的阵列工作的情况,可以把FIFO组成两个一组,以将相当于两倍长度的象素的行存在每一对FIFO中。
图7进一步以箭头形式依操作模式给出在每个4×16单元阵列输出处将计算结果分组的方式。
图8示出了该实施例的一第二变型。9个FIFO(合在一起用801表示)馈送一开关电802。依据本实施例,该协处理器包括4×8单元的8个脉动阵列803至810。事实上,图8的两个级联的4×8阵列等价于图7的一个4×16阵列。图8给出当8个4×8的当前块以并行方式处理时,每个阵列的计算结果的排布(routing)的更好的表示。以上边两阵列803和804为例,在阵列803输出处的最终结果(即误差函数值)直接传送给阵列804。取决于是用8个4×8当前阵列工作还是用4个8×8当前阵列,在阵列803的输出处的结果对后续处理是必需的抑或是不必需的。在用8个4×8象素的当前块工作的情形,该结果对确定由该阵列803处理当前块的运动矢量是必需的。
依据本变型实施例,一单元M与每个4×8单元相关联。每个单元M从与一块相关的所有误差值中来确定由这些阵列之一输出的误差函数的最小值,并将相应运动矢量的坐标保持在存储器中。这些结果经一特殊数据总线811来传送。
阵列803、804、807和808的输出连至一两输入多路选择器的输入,该多路选择器的输出连至相应单元M。相同阵列的每一个的输出还连至一两输入加法器的输入,该加法器的另一端入接收来自其下紧相邻的阵列的输出。对阵列803、804、807和808,这些输出分别来自阵列805、806、809和810。
当处理器工作于每个4×8象素的8个当前块时,每个阵列的输出直接连至与之相关的单元M。然后每个单元M独立地(stand-alone)确定所述最小误差函数值和该运动矢量。这产生8个不同的矢量。由阵列803、805、807和809输出的误差函数值不向其后串连的阵列传输。进行或不进行这种传输的多路选择器在该图中没有示出。
当处理器工作于4个8×8象素的块上时,多路选择器切换,以使得与正工作于同一块的两个相叠的阵列的相关的单元M中的一个来接收由这些双阵列所计算的误差函数值的和。例如,与阵列803相关的单元M将基于与在阵列803和805中处理的8×8象素块相应的误差函数值来进行这种计算。由此可得一单一矢量。在上一段落中的情况中,由阵列第一列产生误差函数值不传给第二列。
当处理器工作于两个8×16象素块上时,只使用与阵列804和808相关的各单元M。4×8阵列对803和804,805和806,807和808以及809和810被看做每一对形成一个连续的4×16象素的陈列。例如,对应于阵列804的加法器将阵列804和806的误差输出相加。由阵列803和805计算的误差函数值包含在由阵列804和806计算的误差函数值中,并且通过阵列803和804之间、阵列805和806之间的连接分别传输给804和806的值。
在交替方式的情况下,原理一样。只是该单元或者多个单元M将两个运动矢量保持在存贮器中,对两个块每块各一个。
作为选择的操作方式的函数,多路选择的切换由图1的控制器2控制。
每个单元M包含依据当前实施例的该装置。这一装置由图10所示。
该装置包括两计数器1001和1002,其中含有对应于正被检查的参考窗的块的运动矢量的坐标X和Y。计数器1001包含矢量的横坐标X,计数器1002包含纵坐标Y。
每次开始把该搜索窗的一新条带导入该阵列中时,也就是说,每次访问该行时,计数器1001被初始化成值X0。对引入到该阵列的每一象素或者每个象素列,该计数器计数递增。
当改变搜索窗时,计数器1002被初始化为值Y0,并且对引入该阵列的每一新条带,其计数递增。
值X0和Y0对应于该搜索窗中的该块相对于此窗中的当前块位置的相对坐标。这种关系如图9b所示。图9a示出了比较的方法。与当前块相比较的该参考窗的第一块是该窗在左上角的块。所述比较从左向右对在同一条带的其它块继续进行。每一条带从最左端的块开始。
因此,X和Y在该参考窗口的扫描期间不断增加。
单元M还包含两个寄存器Xmin 1003和Ymin 1004,分别与计数器1001和1002相连。每一寄存器如接收到来自该单元另一部分产生的装入信号,就能够装入相连的计数器的内容。在任何时刻,寄存器Xmin和Ymin都含有与在一给定搜索时刻的选择基准最接近地对应的运动矢量的坐标。
每一计数器输出连至模计算电路1005的两输入之一。电路1005从在一给定时刻所检查的矢量的坐标X和Y来计算模。
由电路1005实现的函数可以是各种模函数,例如经典函数: ( X 2 + Y 2 ) - - - ( 1 )
在下文中,实现的模函数为:
‖(x,y)‖=max{|X|,|Y|}                  (2)
这一函数(2)本质上的优点,尤其是与二进制补码结合的优点,可在对电路1005的描述中进一步阐明。
函数(2)的实现代价比函数(1)小。而且,当矢量为几乎水平或垂直时,由函数(2)获得的结果与由函数(1)获得的结果是等同的。当矢量的相对水平或垂直方向倾斜45°时这种近似性会变差。然而,所获结果完全满足要求。
电路1005的输出连至寄存器1006和一个两输入比较器1007的输入之一。寄存器1006的装入由与装入寄存器1003和1004的相同信号来控制。存于寄存器1006的模提供给比较器1007的第二输入。当所存贮的模大于或等于由电路1005的模输出时,比较器1007提供一个表示逻辑“1”的信号。
对应于其坐标由两个计数器给出的矢量的误差函数的值被提供给第4寄存器1008和比较器1009的一个输入,寄存器1008还受“装入”信号控制。所存储的值提供给比较器1009的第二输入,该比较器当存于寄存器1008中的值小于该比较器的另一输入时,提供一代表逻辑“1”的第一信号,而这些值相等时,提供代表逻辑“1”的第二信号。
由比较器1007来的输出和比较器1009中对应于其输入处的各信号的相等性质的输出送至逻辑“与”门1010的输入。并且,对应于严格小于的比较器1009的输出送至两输入逻辑“或”门1011的输入端之一,该逻辑或门的另一输入端由逻辑与门1010的输出馈送。来自逻辑“或”门的输出对应于“装入”信号。
该单元的操作如下:误差函数值以计算的速度到达该单元的输入外。这些值与存于寄存器1008的最小值进行比较,该寄存器被设置成对一给定宏块在一给定参考窗的每次搜索的最大值。
如果该单元的输入处出现的值严格小于存贮的中间最小值,“装入”信号由或门1011激活。相应运动矢量的坐标被存于寄存器1003和1004中,而相应的模被存于寄存器1006。
如果该单元的输入处出现的误差函数值严格大于所存储的值,则存贮的运动矢量不改变。
如果单元的输入处出现的误差函数等于所存的值,需要额外的条件以判断是否用对应新值的矢量代替原来存贮的矢量:新的矢量的模必须小于旧矢量的模。这一比较由比较器1007进行。这一额外条件使得对于不同运动矢量有相同误差函数值的情况时,可以更好地进行运动矢量的选择。
图11详细给出了模计算电路1005的内容,其中该计算基于函数(2)来进行。
随计数器1001和1002使用编码的不同,电路1005的内容会变化,以便进行为获得该绝对值不同的计算。这里是三个例子:
(a)、符号二进制数:
|a|=a如果a>=0
   =-a如果a<0
(b)二进制补码数:
|a|=a如果a>=0
   =NOT(a)+1如果a<0
(c)二进制反码数
|a|=a如果a>0
   =NOT(a)如果a<0
在使用对应于二进制反码和补码数的绝对值时,可由上面的例(b)和(c)看出当a是严格的负数时,最低一位有一误差。而在a为正数时,没有这种误差。基于这种“修正”的绝对值的模来比较这些模,只会在不同模的绝对值差为1的有限的情况下引入不正确的判断。例如矢量(-2,0)和(1,0)将具有相同的模。由于这种误差小,其仅为最低一位的值,在这个范围内不会构成问题。
矢量(-1,0)和(0,0)也具有相同的模。这种缺陷可由使用非严格比较器1007来使之减至最小。在这种情况下,在全部具有相同的模(并且对应于最小误差函数值)的矢量中,总是其中最后一个矢量入选。如果矢量(-3,0)、(-2,0)、(-1,0)、(0,0)、(1,0)、(2,0)对应这个最小值,矢量(0,0)将会是最终选择的矢量。
通常,当允许在具有一正分量的矢量和具有一负分量的矢量之间作选择时,具有正分量的矢量将被选择。由此,具有一个象素的误差的矢量的个数被减至最少。
即使有此误差,也可由随后用一更精确运动估计器来纠正(例如在半象素级上)。
当对应于二进制反码的绝对值应用于由计数器输出的二进制补码数上时,取绝对值相当于在补码数的符号位与该数的其它位之间进行异或操作,如图11所示。对应于两坐标的两个异或门的结果被比较以确定两绝对值中的大者。然后按比较的结果,多路选择器将数值中的较大者作多路选择并送至电路1005的输出。
当然可以将二进制补码的绝对值用于模的计算,然而这需要使用一另外的加法器。
图10所示的并与本实施例一起描述的该单元适合于那些在一给定时刻仅计算对应于单一运动矢量的脉动阵列协处理器的模式。如上所述,也可以在脉动阵列中存放两个不同块,并在每个第二周期提供一结果,这样来进行操作。本领域技术人员可以容易地对这种操作使用上述运动矢量选择单元,特别是提供另外的寄存器以存贮对应于两块的运动矢量的分量。

Claims (9)

1、一种用于在一具有运动估计器的***中选择运动矢量的方法,所述运动估计器计算一估价函数的值,其每个值对应于一参考窗的一象素块与当前象素块的差异,所述各块的相对位置由一运动矢量描述,所述方法的特征在于,其中包括如下步骤:
确定所述估价函数的最小值;
比较与所述最小值对应的各矢量的模;
从所述对应矢量中选择具有最小模的矢量。
2、根据权利要求1所述的方法,其特征在于,所述矢量的模依据函数
‖(X,Y)‖=max {|X|,|Y|}(2)来计算,
这里X和Y代表一矢量的坐标。
3、依据权利要求2所述的方法,其特征在于,尤其是对二进制补码编码的矢量的坐标,该坐标之一的修正绝对值在所述该坐标为负时,通过求反坐标值来获得。
4、依据权利要求1至3之一所述的方法,其特征在于,该参考窗的扫描以这种方式来进行,即,运动矢量坐标为增函数,并且当有多个矢量对应于所述估价函数的最小值时,选择扫描顺序中最后一矢量。
5、依据权利要求1至4之一所述的方法,其特征在于,该估价函数的形式为: Err ( m , n ) = Σ i Σ j D ( a ( j , j ) , b ( i + m , j + n ) ) 其中D(x,y)=|x,y|,或者
6、一种包含一运动估计器的图象处理装置,所述的运动估计器计算一估价函数的值,其每一值对应于一个与一当前象素块相应的参考窗的象素块,所述各块的相对位置由一运动矢量描述,其特征在于,所述装置包括:
用于计算运动矢量的模的装置(1005);
用于比较对应于每个矢量的估价函数值的装置(1008);
用于至少比较对应于所述估价函数最优值的各矢量的模的装置(1006,1007);
用于存贮具有最小模的矢量的之一的装置(1003,1004)。
7、依据权利要求6所述的装置,其特征在于,所述估价函数是当前块与参考窗的一块之间存在的变形的函数。
8、依据权利要求6或7所述的装置,其特征在于,用于计算矢量模的装置(1005)包括有在该矢量的每一分量(X,Y)与其符号位之间进行异或(XOR)运算的逻辑门。
9、依据权利要求8所述的器件,其特征在于,所述计算装置(1005)还包括一比较器和一多路选择器,其功能为确定来自异或门输出的分量的最小值。
CN95120803A 1994-12-13 1995-12-13 选择运动矢量的方法及实现该方法的图象处理装置 Expired - Fee Related CN1110187C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9415010A FR2728091B1 (fr) 1994-12-13 1994-12-13 Procede de selection de vecteurs mouvement et dispositif de traitement d'images mettant en oeuvre ledit procede
FR9415010 1994-12-13

Publications (2)

Publication Number Publication Date
CN1131881A true CN1131881A (zh) 1996-09-25
CN1110187C CN1110187C (zh) 2003-05-28

Family

ID=9469767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95120803A Expired - Fee Related CN1110187C (zh) 1994-12-13 1995-12-13 选择运动矢量的方法及实现该方法的图象处理装置

Country Status (9)

Country Link
US (1) US5717615A (zh)
EP (1) EP0717372B1 (zh)
JP (1) JPH08251602A (zh)
KR (1) KR100416444B1 (zh)
CN (1) CN1110187C (zh)
BR (1) BR9505799A (zh)
DE (1) DE69521873T2 (zh)
FR (1) FR2728091B1 (zh)
SG (1) SG38893A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1067204C (zh) * 1998-09-18 2001-06-13 清华大学 视频编码的全局判决方法
CN1067832C (zh) * 1997-05-23 2001-06-27 清华大学 视频编码器实现的改进方法
CN1105996C (zh) * 1997-04-15 2003-04-16 三星电子株式会社 移动目标窗口的块匹配方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2757295B1 (fr) * 1996-12-13 2001-05-18 Sgs Thomson Microelectronics Procede et dispositif d'estimation de mouvement de portions d'images mobiles
US5825930A (en) * 1997-03-05 1998-10-20 Samsung Electronics Co., Ltd. Motion estimating method
KR100249223B1 (ko) * 1997-09-12 2000-03-15 구자홍 엠팩(mpeg)-4의움직임벡터코딩방법
US7298425B2 (en) * 1998-03-26 2007-11-20 Micron Technology, Inc. Method for assisting video compression in a computer system
US6987545B1 (en) 1998-03-26 2006-01-17 Micron Technology, Inc. Apparatus for assisting video compression in a computer system
KR100677082B1 (ko) * 2000-01-27 2007-02-01 삼성전자주식회사 움직임 추정기
US7800624B2 (en) * 2002-07-30 2010-09-21 Sony Corporation Memory device signal processing apparatus image signal processing apparatus and methods of the same
SG111093A1 (en) * 2002-11-18 2005-05-30 St Microelectronics Asia Motion vector selection based on a preferred point
TWI239474B (en) * 2004-07-28 2005-09-11 Novatek Microelectronics Corp Circuit for counting sum of absolute difference
EP1729518A1 (en) * 2005-05-31 2006-12-06 Novatek Microelectronics Corp. Circuit for computing sums of absolute difference
US8488676B2 (en) * 2007-05-14 2013-07-16 Himax Technologies Limited Motion estimation method
CN103839258A (zh) * 2014-02-13 2014-06-04 西安交通大学 一种二值化激光散斑图像的深度感知方法
US10838910B2 (en) * 2017-04-27 2020-11-17 Falcon Computing Systems and methods for systolic array design from a high-level program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3854171T2 (de) * 1987-06-09 1995-12-21 Sony Corp Bewertung von Bewegungsvektoren in Fernsehbildern.
CA2079434A1 (en) * 1991-09-30 1993-03-31 Derek Andrew Motion vector estimation, motion picture encoding and storage
KR950009699B1 (ko) * 1992-06-09 1995-08-26 대우전자주식회사 움직임벡터 검출방법 및 장치
DE4226128A1 (de) * 1992-08-07 1994-02-10 Philips Patentverwaltung Verfahren zur Ermittlung von Bewegungsvektoren
US5537155A (en) * 1994-04-29 1996-07-16 Motorola, Inc. Method for estimating motion in a video sequence

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1105996C (zh) * 1997-04-15 2003-04-16 三星电子株式会社 移动目标窗口的块匹配方法
CN1067832C (zh) * 1997-05-23 2001-06-27 清华大学 视频编码器实现的改进方法
CN1067204C (zh) * 1998-09-18 2001-06-13 清华大学 视频编码的全局判决方法

Also Published As

Publication number Publication date
CN1110187C (zh) 2003-05-28
EP0717372B1 (fr) 2001-07-25
BR9505799A (pt) 1998-01-06
KR960028564A (ko) 1996-07-22
EP0717372A1 (fr) 1996-06-19
FR2728091B1 (fr) 1997-01-31
DE69521873D1 (de) 2001-08-30
US5717615A (en) 1998-02-10
KR100416444B1 (ko) 2004-04-21
FR2728091A1 (fr) 1996-06-14
JPH08251602A (ja) 1996-09-27
SG38893A1 (en) 1997-04-17
DE69521873T2 (de) 2001-11-08

Similar Documents

Publication Publication Date Title
CN1110187C (zh) 选择运动矢量的方法及实现该方法的图象处理装置
CN100342401C (zh) 基于段的运动估计
CN1157956C (zh) 运动估计器
CN1170438C (zh) 数字视频信号下变换***的运动补偿处理器及上升抽样方法
CN1179574C (zh) 在编码数据流中修改数据的方法和设备
CN1933600A (zh) 用于h.264/avc编码器的运动估计方法
US20080204602A1 (en) Region-Based Motion Estimation Using Dynamic Asoect Ration Of Region
CN1495674A (zh) 运动向量补偿的内插装置和方法
CN101060629A (zh) 图像压缩/解压方法及图像编/解码器和解码电路
CN1835585A (zh) 用于快速执行子像素内插的方法和***
US20080192827A1 (en) Video Processing With Region-Based Multiple-Pass Motion Estimation And Update Of Temporal Motion Vector Candidates
CN1678024A (zh) 改进的图像边界处的运动向量估计
CN1302419A (zh) 缩放压缩的图象
CN101068364A (zh) 视频编码器与图形处理单元
JP2009509407A (ja) 動き補償のための自然形状領域
CN1115880C (zh) 在运动估算***中以矩阵阵列处理数据的方法
CN1227913C (zh) 水平滤波器
CN1295933C (zh) 数据处理方法
CN1889673A (zh) 一种用于数字视频处理的运动检测和解交错方法及其装置
CN1193621C (zh) 调整计算复杂度的方法、对离散余弦反变换进行近似计算的方法和一种解码器
CN1852442A (zh) 一种分层运动估计方法和超大规模集成电路
CN1112654C (zh) 图像处理装置
CN1529509A (zh) 视频图像亚像素插值的方法和装置
CN1110209C (zh) 用于预测运动的设备及其相应的图像压缩***
CN1547857A (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: 20030528

Termination date: 20141213

EXPY Termination of patent right or utility model