CN1774071A - 使用二维处理元件阵列的移动估计装置及其方法 - Google Patents

使用二维处理元件阵列的移动估计装置及其方法 Download PDF

Info

Publication number
CN1774071A
CN1774071A CNA2005101204384A CN200510120438A CN1774071A CN 1774071 A CN1774071 A CN 1774071A CN A2005101204384 A CNA2005101204384 A CN A2005101204384A CN 200510120438 A CN200510120438 A CN 200510120438A CN 1774071 A CN1774071 A CN 1774071A
Authority
CN
China
Prior art keywords
size
those
pixel
input
delay unit
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.)
Pending
Application number
CNA2005101204384A
Other languages
English (en)
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN1774071A publication Critical patent/CN1774071A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/238Analysis of motion using block-matching using non-full search, e.g. three-step 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
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

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)
  • Image Analysis (AREA)

Abstract

本发明揭露一种移动估计装置及其方法。移动估计装置包括处理元件(PE)阵列单元,且PE阵列单元包括延迟单元以及PE阵列。于N步搜寻算法的一步中,延迟单元阵列输出多个通过目前数据所产生且对应到多个检查点的数据流,而有规则的参考数据流是馈入至PE阵列。在以规律且顺序地扫描像素的方式读取搜寻区域像素数据的同时即可进行N步搜寻算法的一搜寻步。当完全读取搜寻区域时,即完成此搜寻步。因此,PE阵列单元可完成N步搜寻算法。此外,PE阵列单元可用于根据全点搜寻所找到的最佳点执行半点移动估计。

Description

使用二维处理元件阵列的移动估计装置及其方法
技术领域
本发明是有关于一种移动估计(Motion Estimation)装置及其方法,且特别是有关于一种使用二维处理元件(Processing Element,PE)阵列的移动估计装置及其方法。
背景技术
图像压缩或图像编码是电子元件中各种多媒体应用的重要一环。而移动估计在图像压缩当中则占很重要的角色。例如,MPEG-4为主流图像压缩标准之一且所应用的范围很广,从高清晰度电视(HDTV)或数字多功能DVD光驱等高位率(high-bit-rate)、高质量图像元件到可获取图像的手机或数字个人助理(PDA)等低位率移动处理装置。在MPEG-4图像编码过程中,移动估计花费相当多的计算时间以及大部分的系统资源。对MPEG-4图像编码而言,60%到80%的计算时间是用在移动估计上。就计算负载及资源使用方面,在处理元件中且特别是在一般具有限的功率容量、有限的存储资源及有限的处理功率等的移动处理装置中,移动估计是执行MPEG-4编码器的重要因子。
执行图像压缩的编码器中移动估计为最复杂的部分。移动估计使用图像系列中邻近画面的短暂冗余,以找出移动因子,使目前结构的目前区块可以由参考坐标的参考区块来预测。与目前区块相较,参考区块具有最小的误差计量(Error Measure)。许多移动估计的区块比对算法(Block MatchingAlgorithm,BMA)已发展用以增加效能及/或降低硬件复杂度。在区块比对算法中,例如是三步搜寻(TTS)或四步搜寻(4SS)的步搜寻算法(Step SearchAlgorithm)是发展用以降低计算冗余(Computation Redundancy)以及提升效能。然而,这些搜寻算法所使用的数据流通常不稳定以致于算法的硬件操作很复杂。此外,有鉴于处理装置所提供的有限资源,处理装置在执行步搜寻算法的整体效能并无法达到算法的理论效能,就移动处理装置而言更是如此。
在文献上可找到许多操作BMA的结构式解决方法。例如Costa等人于1995年五月在消费电子学IEEE会刊第41卷第2部第248页至第257页所刊载的「阶层式移动估计的超大规模集成电路(Very Large Scale IntegratedCircuits,VLSI)结构」以及Kim等人于1997年2月在消费电子学IEEE会刊第43卷第1部第24页至第33页提出基于TSS算法的硬件结构并着重于PE阵列的数据流。然而,这些硬件结构所使用的PE阵列数据流很复杂并专门用于TSS,导致PE阵列外部存在一些问题。
首先,PE阵列中复杂的数据流导致PE阵列控制电路的操作更复杂。其次,在移动估计中PE阵列复杂的数据流本身易导致不断地重复进行像素数据存储器读取的操作。在一般的编码器中,连接移动估计结构及画面存储器的存储器总线,以及编码器的其它单元会因忙于进行这些重复的读取操作而降低整体的效能。虽然这个问题可通过提供额外像素数据存储器区块以缓冲来自画面存储器的像素数据,并于TSS算法的每一搜寻步前,将所需的像素数据加载存储区块而直接解决。然移动估计的整体效能仍然降低,且需要更高的存储器成本。另外,专用于TSS算法的数据流需精密设计,较难适用于其它步搜寻算法,例如FSS算法的结构。就有限的资源环境来说,例如是移动处理装置,上述PE阵列外部的问题对于硬件操作上非常重要,必须好好改进以提升装置效能并可提供终端使用者加以使用。
因此,有必要提供一种移动估计结构以解决上述问题并提供电路设计的扩充性及弹性。
发明内容
有鉴于此,本发明的目的就是在提供一种具有二维处理元件(2D PE)阵列的移动估计装置及其方法。根据本发明,提供一种用于PE阵列的数据流结构,以降低2D PE阵列控制硬件的复杂度。使用此数据流结构,可以降低好几倍存储存取量,因而达到降低计算时间以及功率损耗的目的。2D PE阵列也可以由其结构及数据流结构受益,并可达到降低移动估计系统电路面积的目的。使用2D PE阵列单元的移动估计系统也因而更适用于具有有限电源供应的移动处理装置,例如手机或PDA。
根据本发明的目的,提出一种移动估计装置,包括PE阵列。PE阵列单元包括延迟单元阵列以及PE阵列。延迟单元阵列包括多个水平延迟单元(HDU)以及多个垂直延迟单元(VDU)。共有三列HDU,各列HDU具有第一HDU以及第二HDU。每个HDU包括输入端以及输出端。在各列HDU中,第一HDU的输出端是连接第二HDU的输入端。延迟阵列单元包括第一VDU以及第二VDU。各VDU具有输入端以及输出端。第一VDU的输入端是连接于第一列中第一HDU的输入端,第一VDU的输出端是连接第二列中第一HDU的输入端以及第二VDU的输入端,第二VDU的输出端是连接第三列中第一HDU的输入端。PE阵列包括三列PE,各列PE包括第一PE、第二PE以及第三PE。各个PE包括第一输入端、第二输出端、误差计量输出端以及控制端。在每一列PE中,第一PE的第二输入端是连接第一HDU的输入端。第二PE的第二输入端是连接第一HDU的输出端。第三PE的第二输入端是连接第二HDU的输出端。各个PE是于控制端为致能状态时累计第一输入端的参考数据与第二输入端的像素数据之间的误差计量。
于一实施例中,PE阵列单元是用以执行移动估计N步搜寻算法的搜寻步,而搜寻区域中像素的像素数据是以规律且顺序地扫描像素的方式来读取。搜寻区域的多个区块是与目前区块平行地作比较。当完全读取搜寻区域时,完成此搜寻步动作,并决定出最小误差计量。
于本发明的第二实施例中,执行全点移动估计的2D PE阵列单元是用以执行移动估计的FSS算法。
根据本发明的目的,提出一种执行全点移动估计的方法。在规律且顺序地扫描像素的方式读取搜寻区域像素数据的同时,即可进行N步搜寻算法的一搜寻步。搜寻区域的多个区块是与目前区块平行地作比较。
于其它的实施例中,提供用以执行移动估计的移动估计系统结构,并整合于一电路中。
基于此移动估计方法,来自目前存储器以及参考存储器的规则数据流是一行一行依序地读取,且控制PE阵列单元的控制电路是以简化方式执行。
根据本发明的另一目的,2D PE阵列单元在设计上具备扩充性以及弹性,且可用以找到具有部分像素(Fractional Pixel)准确度的移动向量(MotionVector),例如是半点或四分之一点移动估计。
为了实现本发明的上述目的,根据本发明的一个方面,提供了一种移动估计装置,用于图像处理,包含:多个处理元件,每一处理元件具有第一输入端、第二输入端、控制端及误差计量输出端,该些处理元件所对应的该些第一输入端接收参考数据;多个延迟单元,针对像素数据,产生具有特定延迟时间的多个数据流送至该些处理元件的该些第二输入端;以及控制电路,提供多个控制信号至该些处理元件的该些控制端,当该些处理元件收到该些控制信号时,计算该第一输入端与该第二输入端的误差计量。
根据本发明的另一个方面,还提供了一种移动估计装置,包括:处理元件阵列单元,包括:延迟单元阵列,包括:多个水平延迟单元,包括三列水平延迟单元,各列水平延迟单元具有第一水平延迟单元以及第二水平延迟单元,各该些水平延迟单元包括输入端以及输出端,其中在各列水平延迟单元中,该第一水平延迟单元的该输出端是连接该第二水平延迟单元的该输入端;以及多个垂直延迟单元,包括第一垂直延迟单元以及第二垂直延迟单元,各该些垂直延迟单元具有输入端以及输出端,其中该第一垂直延迟单元的该输入端是连接于该第一列中该第一水平垂直延迟单元的该输入端,该第一垂直延迟单元的该输出端是连接该第二列中该第一水平延迟单元的该输入端以及该第二垂直延迟单元的该输入端,该第二垂直延迟单元的该输出端是连接该第三列中该第一水平延迟单元的该输入端;以及处理元件阵列,包括三列处理元件,各列处理元件包括第一处理元件、第二处理元件以及第三处理元件,各该些处理元件包括第一输入端、第二输出端、误差计量输出端以及控制端,其中在每一列处理元件中,该第一处理元件的该第二输入端是连接该第一水平延迟单元的该输入端,该第二处理元件的该第二输入端是连接该第一水平延迟单元的该输出端,该第三处理元件的该第二输入端是连接该第二水平延迟单元的该输出端,其中各该些处理元件是于该控制端为一致能状态时累计该第一输入端的参考数据与该第二输入端的像素数据之间的误差计量。
根据本发明的另一个方面,还提供了一种执行全点移动估计的方法,包括:(a)定义一区块,包括P×Q个像素并具有起始点C(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点R(0,0),其中L=2×STEP_SIZE+P,J=2×STEP_SIZE+Q;(b)自该起始点R(0,0)至该起始点R(L-1,J-1)一行一行依序地输出对应该搜寻区域的像素R(i,j)的参考数据DR(i,j),并自该起始点C(0,0)至该起始点C(P-1,Q-1)一行一行依序地输出对应该区块的像素C(p,q)的像素数据DC(p,q);(c)当该步骤(b)在执行时,决定与该些检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE)相对应的多个误差计量,该步骤(c)包括:若i<P且j<Q,根据该些像素数据DC(p,q)以及该些参考数据DR(i,j)累计对应该检查点(0,0)的误差计量;若i≥STEP_SIZE,i≤(L+STEP_SIZE),且j<Q,根据经过对应STEP_SIZE的延迟时间的该些像素数据DC(x1,y1)以及该些参考数据DR(i,j),累计对应该检查点(STEP_SIZE,0)的误差计量,其中x1=i-STEP_SIZE且y1=j;若i≥2×STEP_SIZE,i≤(L+2×STEP_SIZE),且j<Q,根据经过对应2×STEP_SIZE的延迟时间的该些像素数据DC(x2,y2)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,0)的误差计量,其中x2=i-2×STEP_SIZE,且y2=j;若i<P,j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过对应P×STEP_SIZE的延迟时间的该些像素数据DC(x3,y3)以及该些参考数据R(i,j),累计对应该检查点(0,STEP_SIZE)的一误差计量,其中x3=i,且y3=j-P ×STEP_SIZE;若i≥STEP_SIZE,i<(L+STEP_SIZE),j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过(1+P)×STEP_SIZE的延迟时间延迟的该些像素数据DC(x4,y4)以及该些参考数据R(i,j),累计对应该检查点(STEP_SIZE,STEP_SIZE)的误差计量,其中x4=i-STEP_SIZE,且y4=j-P×STEP_SIZE;若i≥2×STEP_SIZE,i<(L+2×STEP_SIZE),j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过对应(2+P)×STEP_SIZE的延迟时间的该些像素数据DC(x5,y5)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,STEP_SIZE)的误差计量,其中x5=i-2×STEP_SIZE,且y5=j-P×STEP_SIZE;若i<P,j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应2×P×STEP_SIZE的延迟时间的该些像素数据DC(x6,y6)以及该些参考数据R(i,j),累计对应该检查点(0,2×STEP_SIZE)的误差计量,其中x6=i,且y6=j-2×P×STEP_SIZE;若i≥STEP_SIZE,i<(L+STEP_SIZE),j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应(1+2×P)×STEP_SIZE的延迟时间的该些像素数据DC(x7,y7)以及该些参考数据R(i,j),累计对应该检查点(STEP_SIZE,2×STEP_SIZE)的误差计量,其中x7=i-STEP_SIZE,且y7=j-2×P×STEP_SIZE;以及若i≥2×STEP_SIZE,i<(L+2×STEP_SIZE),j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应(2+2×P)×STEP_SIZE的延迟时间的该些像素数据DC(x8,y8)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,2×STEP_SIZE)的误差计量,其中x8=i-2×STEP_SIZE,且y8=j-2×P×STEP_SIZE;其中当完成该步骤(b)时,由该步骤(c)所决定,与该些检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE)对应的该些误差计量亦得以完成。
根据本发明的另一个方面,还提供了一种全点移动估计的方法,包括:(a)定义一区块,包括M×N个像素并具有起始点MB(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点SA(0,0),其中L>P,且J>Q;(b)定义该搜寻区域包括对应多个检查点的多个具有M×N个像素的子区域,各该些检查点是定义为各该些子区域对应的起始点;(c)自该起始点SA(0,0)至该起始点SA(L-1,J-1)一行一行依序地输出对应该搜寻区域像素的像素数据,并自该起始点MB(0,0)至该起始点MB(M-1,N-1)一行一行依序地输出对应该区块像素的像素数据;(d)当该步骤(c)在执行时,对于由该步骤(c)所输出并对应该区块中一像素的像素数据,送至延迟单元阵列,用以输出分别对应该些检查点的多个串输出数据流,其中对于该些检查点其中之一,C(x,y),该延迟单元阵列是输出对应的输出数据流,且该输出数据流是延迟(x+y×M)个时间单位的像素数据;(e)当该步骤(c)在执行时,根据该步骤(c)所读取且与该搜寻区域的像素SA(p,q)相对应的该像素数据,执行下列步骤:判断所有子区域中包括SA(p,q)的子区域;以及对于各个包括SA(p,q)的子区域,累计该子区域对应的该检查点C(f,g)所对应的误差计量,该误差计量系根据来自与该检查点C(f,g)相关的输出数据流的像素数据以及对应该搜寻区域的像素SA(p,q)的该些像素数据而得,其中来自与该检查点C(f,g)相关的输出数据流是对应至该区块的像素MB(r,s),p=r+f且q=s+g;其中当该步骤(c)完成时,该步骤(e)中与所有的该些检查点相对应的该些误差计量亦得以完成。
根据本发明的另一个方面,还提供了一种半点移动估计装置,其中定义一区块,包括P×Q个像素,并具有起始点C(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点R(0,0),其中L=2+P,J=2+Q,该装置包括:半点值产生单元,响应由该搜寻区域依续读取的多个全点值,用以一组一组地产生复阵列半点值,各组分别包含四个半点值A、B、C及D;处理元件阵列单元,包括:延迟单元阵列,包括:多个水平延迟单元,包括三列水平延迟单元,每一列水平延迟单元具有第一水平延迟单元以及第二水平延迟单元,各该些水平延迟单元包括输入端以及输出端,其中在每一列水平延迟单元中,该第一水平延迟单元的该输出端是连接该第二水平延迟单元的该输入端;以及多个垂直延迟单元,包括第一垂直延迟单元以及第二垂直延迟单元,各该些垂直延迟单元具有输入端以及输出端,其中该第一垂直延迟单元的该输入端是连接于该第一列中该第一水平延迟单元的该输入端,该第一垂直延迟单元的该输出端是连接该第二列中该第一水平延迟单元的该输入端以及该第二垂直延迟单元的该输入端,该第二垂直延迟单元的该输出端是连接该第三列中该第一水平延迟单元的该输入端;以及处理元件阵列,包括三列处理元件,各列处理元件包括第一处理元件、第二处理元件以及第三处理元件,各该些处理元件包括第一输入端、第二输出端、误差计量输出端以及控制端,其中在每一列处理元件中,该第一处理元件的该第二输入端是连接该第一水平延迟单元的该输入端,该第二处理元件的该第二输入端是连接该第一水平延迟单元的该输出端,该第三处理元件的该第二输入端是连接该第二水平延迟单元的该输出端,其中各该些处理元件是于该控制端为致能状态时累计该第一输入端的参考数据与该第二输入端的像素数据之间的误差计量;其中每一组四个半点值中,该半点值A是馈入至该处理元件阵列中该第一列及该第三列的该第一处理元件及该第三处理元件的该些第一输入端;该半点值B是馈入至该处理元件阵列中该第一列及该第三列的该第二处理元件的该些第一输入端;该半点值C是馈入至该处理元件阵列中该第二列的该第一处理元件及该第三处理元件的该些第一输入端;且该半点值D是馈入至该处理元件阵列中该第二列的该第二处理元件的该第一输入端。
为让本发明的上述目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。
附图说明
第1图绘示根据本发明第一实施例用于移动估计的2D PE阵列单元结构图。
第2图绘示在第一输入端A与第二输入端B的数据间进行SAD的PE结构图。
第3图绘示根据本发明一实施例2D PE阵列中水平延迟单元(HDU)的结构方块图。
第4图绘示根据本发明一实施例2D PE阵列中垂直延迟单元(VDU)的结构方块图。
第5图绘示依照本发明第二实施例执行全点移动估计的2D PE阵列单元配置图。
第6A图绘示目前画面的区块以及前一个画面(参考画面)的搜寻区域。
第6B图绘示执行全点移动估计时四步搜寻中每一步的九个搜寻位置。
第7图绘示依照本发明第二实施例搜寻区域的像素扫描顺序示意图。
第8图绘示根据本发明第二实施例对应搜寻区域的子区域的PE致能周期。
第9图绘示依照本发明第三实施例移动估计系统的结构方块图。
第10图绘示于全点搜寻中找到的最佳点执行半点搜寻动作示意图。
第11A图绘示用以平行输出四个全点值的准备延迟单元结构图。
第11B图绘示用以将四个全点值转换成四个半点值的半点产生电路结构图。
第12图绘示依照本发明第四实施例利用第1图的2D PE阵列单元执行半点移动估计的结构配置图。
第13A图与第13B图绘示根据本发明第四实施例对应搜寻区域的子区域的PE致能周期示意图。
第14图绘示根据本发明第五实施例使用2D PE阵列单元执行全点及半点移动估计的移动估计系统结构方块图。
[主要元件标号说明]
10:存储器总线
100:二维处理元件阵列单元
140、142、160、162、180、182、300:水平延迟单元
150、170、400:垂直延迟单元
110:PE0
112:PE1
114:PE2
120:PE3
122:PE4
124:PE5
130:PE6
132:PE7
134:PE8
200:PE
210:绝对差值元件
250:累加器
310、320:正反器
350、450:多工器
360、2250:与逻辑门
401~416、421~436:正反器
460:逻辑门
610:搜寻区域
650:区块
810:PE0致能周期
818:PE8致能周期
1000:移动估计系统
1100、2100:移动估计单元
1150:多工器
1160:寄存器单元
1170:最小SAD判断单元
1301~1304:子区域
1500:存储器读取单元
1600:控制单元
1700:地址产生单元
1750:PE致能逻辑电路
1770:MV产生逻辑电路
2200:准备延迟单元
2201~2219:正反器
2300:半点产生电路
具体实施方式
本发明的第一实施例提供一种二维处理元件(2D PE)阵列单元。这个阵列单元是配置以进行移动估计N步搜寻算法的一搜寻步,而在搜寻区域中像素数据是以规律且顺序地扫描像素的方式来读取。搜寻区域的多个区块是与目前区块平行地作比较。第二实施例则提供进行全点(Full-pel)移动估计的2DPE阵列单元配置,以进行移动估计的FSS算法。特别是,在搜寻区域的九个区块是用以与目前区块平行地作比较。且搜寻区域中像素数据是以根据本发明的像素扫描顺序来读取。基于此配置可设计来自目前存储器及参考存储器的规则数据流,且控制PE阵列单元的控制电路可以更简化方式来操作。在本发明的第三实施例中,显示一种移动估计系统结构,以执行移动估计并整合于一电路中。2D PE阵列单元可设计得更具扩充性及弹性。在其它实施例中,还使用2D PE阵列来进行半点(Half-pel)移动估计。
二维处理元件(2D PE)阵列单元
请参考第1图,其绘示根据本发明第一实施例用于移动估计的二维处理元件(2D PE)阵列单元100结构图。处理元件(PE)阵列单元100包括延迟单元阵列(Delay Unit Array)以及PE阵列。PE阵列具有三列PE,且每列具有第一PE、第二PE以及第三PE。特别是每个PE具有第一输入端、第二输入端,误差计量输出端,以及控制端。例如,PE0包括第一输入端A0、第二输入端B0、误差计量输出端sad0(例如误差计量为绝对差值(SAD)的总和)、以及控制端PE0en。延迟单元阵列包括多个水平延迟单元(HDU)以及多个垂直延迟单元(VDU)。PE阵列的第二输入端B0至B8系分别连接至延迟单元阵列以形成2D PE阵列单元。
于第1图中有三列HDU,且每一列具有第一HDU以及第二HDU。每一个HDU具有输入端以及输出端,且在同一列中第一HDU的输出端连接第二HDU的输入端。例如,第一列具有HDU 140以及HDU 142,且HDU 140的输出端连接HDU 142的输入端。第二列具有HDU 160以及HDU 162,且HDU 160的输出端连接HDU 162的输入端。第三列则具有HDU 180及HDU 182,且HDU 180的输出端连接HDU 182的输入端。此外,垂直延迟单元(VDU)包括第一VDU 150以及第二VDU 170,且每个VDU具有输入端以及输出端。第一VDU 150的输入端连接至第一列中第一HDU 140的输入端。第一VDU 150的输出端连接至第二列中第一HDU 160的输入端以及第二VDU 170的输入端。而且第二VDU 170的输出端连接至第三列中第一HDU 180的输入端。
第1图是绘示根据本发明第一实施例PE阵列以及延迟单元阵列之间连接关系。在PE阵列的每一列中,第一PE的第二输入端连接至第一HDU的输入端,第二PE的第二输入端连接至第一HDU的输出端,且第三PE的第二输入端连接至第二HDU的输出端。在PE阵列的第一列中,第一PE 110(PE0)的第二输入端B0连接至第一HDU 140的输入端,第二PE 112(PE1)的第二输入端B1连接至第一HDU 140的输出端,且第三PE 114(PE2)的第二输入端B2连接至第二HDU 142的输出端。在PE阵列的第二列中,第一PE 120(PE3)的第二输入端B3连接至第一HDU 160的输入端,第二PE 122(PE4)的第二输入端B4连接至第一HDU 160的输出端,且第三PE 124(PE5)的第二输入端B5连接至第二HDU 162的输出端。在PE阵列的第三列中,第一PE 130(PE6)的第二输入端B6连接至第一HDU 180的输入端,第二PE 132(PE7)的第二输入端B7连接至第一HDU 180的输出端,且第三PE 134(PE8)的第二输入端B8连接至第二HDU 182的输出端。每一个PE是于控制端致能时用以累计PE第一输入端的参考数据(Reference Data)与PE第二输入端的像素数据(PixelData)之间特定形态的误差计量。
第1图所示的2D PE阵列单元是配置用以执行全点移动估计。2D PE阵列单元使用移动估计N步搜寻算法的其中一搜寻步,并于以规律且顺序地扫描像素的方式读取搜寻区域的像素数据时进行。当搜寻区域扫描完成,且对应的像素数据完全馈入2D PE阵列单元时,以平行方式进行(对应特定检查点)搜寻区域的多个区块与目前区块(Current Macro-block)的比较以产生对应检查点的误差计量(Error Measure)。再根据所得到的误差计量决定具有最小误差计量的检查点。也就是说,可于扫描搜寻区域过程中使用2D PE阵列单元进行移动估计N步搜寻算法的一搜寻步。因此,可使用2D PE阵列单元进行任何的移动估计N步搜寻算法。
在实际的应用中,在操作2D PE阵列单元时会选择进行一特定的误差计量。2D PE阵列单元可使用任何的误差计量,例如是绝对差值(SAD)的和、方均误差(MSE)、或绝对平均误差(MAE),也可以选择使用一种或结合多种误差计量结构。为了说明方便,接下来的实施例是使用SAD为例。请参考第2图,其绘示在第一输入端A与第二输入端B的数据间进行SAD的处理元件(PE)200的结构图。PE 200包括绝对差值元件(Absolute Difference Device)210以及累加器(Accumulator)250。以同步对应方式将参考区块(ReferenceMacro-block)及目前区块的像素值依序应用于绝对差值元件210,可根据底下的公式(以16点×16点的目前区块为例)利用累加器250决定SAD值。
SAD = Σ x = 0 ~ 15 , y = 0 ~ 15 | Ref _ Dat a x , y Curr _ Dat a x , y |
执行全点移动估计的2D PE阵列单元配置
请参考第5图,是绘示依照本发明第二实施例执行全点移动估计的2D PE阵列单元配置图。由图可知,所有PE的第一输入端是连接在一起,使得送至2D PE阵列单元的参考数据可同步地送至所有PE的第一输入端。同时,当目前数据送至第一列中第一HDU 140的输入端以及第一PE 110(PE0)的第二输入端B0时,延迟单元阵列产生具有特定延迟时间的八种不同数据流送至PE的个别第二输入端。在第二实施例中是依序读取参考数据并同步送至每一个PE的第一输入端,并依序读取区块的目前数据送至每一个PE的第二端,使得每一个PE可正确执行搜寻区域的特定参考区块与目前区块的误差计量,例如SAD。为了符合需求,必须视2D PE阵列单元所使用的移动估计步搜寻算法来设定像素扫描顺序、延迟单元阵列以及控制PE阵列。
四步搜寻算法
在此实施例中,如第5图所示,2D PE阵列单元将执行移动估计四步搜寻(FSS)算法。FSS算法可参考1996年六月由Po等人刊登在视频科技电路及系统IEEE会刊第6卷第3部第313页至第317页。根据此文献,FSS算法使用如第6B图所示于第一步5×5窗口中具有九个检查点的中央趋势(Center-biased)搜寻样式。在搜寻样式的相邻两个检查点间的步幅(StepSize)STEP_SIZE为2。搜寻窗口中央接着平移至具有最小区块变形计量(BDM)的检查点。下两步的搜寻窗口大小视最小BDM检查点而定。假如最小BDM检查点出现在搜寻视阶层窗的中央,进行具有3×3搜寻窗口的最后一步(第四步)搜寻。否则,搜寻窗口大小维持在第二步或第三步的5×5大小。在最后一步中,搜寻窗口缩小为3×3并搜寻到此小窗口为止,步幅降低为1。
在FSS算法中,一步是表示搜寻在搜寻区域中的最小BDM检查点。在实际应用中,需使用目前存储器储存待编码的画面像素数据,且需使用参考存储器储存由解码先前画面得到的新建构画面像素数据。新建构画面用为解码编码过后的目前画面的存储器。在参考存储器中,像素数据称为参考数据Ref_Data,是对应至新建构画面的像素,并为八位的亮度像素值。在目前存储器中,像素数据称为目前数据Curr_Data,对应目前画面的像素,并为八位的亮度像素值。在一步中,如第6A图所示的搜寻区域610为需要读取的参考存储器数据区,其中MPEG-4中区块650为16点×16点,搜寻区域610=x_range·y_range,x_range=16+STEP_SIZE×2,且y_range=16+STEP_SIZE×2。在第6B图中,于第一步中显示5×5窗口的九个检查点,且对应每个检查点的一数值表示搜寻位置的顺序。第6B图的点0定义为起始点,同时显示于每一搜寻步的第6A图中。接着,点1表示用以计算误差计量(对应一参考区块)的下一个检查点。点8为最后一个检查点。
像素扫描顺序
请参考第7图,其绘示依照本发明第二实施例搜寻区域的像素扫描顺序示意图。一步的搜寻区域的参考数据是一行一行地由标示R(0,0)的起始点依序读取直到标示为R(x_range-1,y_range-1)的搜寻区域终点。
同样地,目前区块的像素扫描顺序或目前区块像素值的读取也是依序式地,一个像素接一个像素,一行接着一行。当PE0被致能时,亦即当输入PE0控制端PE0en的致能信号为「致能」状态时,目前区块的像素值是以像素扫描顺序来读取。在一个实施例中,当PE0被致能时,在读取一笔参考数据之前立即先读取一笔目前数据。在第5图中,于FSS算法一步中,由PE决定对应第6B图检查点的误差计量,例如是本实施例的SAD。例如,PE0用以使用误差计量来比较目前区块与检查点(0,0)的参考区块,其中检查点位于参考区块左上角。例如于第6B图中,PE4是用以比较目前区块与检查点(STEP_SIZE,STEP_SIZE),例如是(2,2)的参考区块。就PE的此项功能而言,Ref_Data以及Curr_Data必须正确,例如是同步送至PE阵列,使每一个PE可以决定检查点的误差计量,亦即SAD。以PE0为例,当搜寻区域的像素(0,0)像素值及区块的像素(0,0)像素值分别同步送到第一输入端A0以及第二输入端B0时,可正确地获得绝对差值。其它的PE可藉由延迟单元阵列正确地输入像素值。就PE0而言,当读取一列目前区块中最后像素的像素值Curr_Data并送至第二输入端B0之后,PE0便被非致能。此时,持续进行搜寻区域的扫描,但暂停扫描目前区块直到扫描到下一列搜寻区域的第一个像素。当扫描到下一列搜寻区域的第一个像素时,PE0再次被致能并继续扫描目前区块。因此,下一列目前区块的像素值以及下一列搜寻区域的像素值可以正确地,例如是同步地送至PE0。以上述方式进行目前区块的扫描使得其它PE可以接收到正确的像素值以决定对应的误差计量。
延迟单元阵列
搜寻区域以及目前区块的扫描皆以依序方式,一个像素接着一个像素,一行接着一行的方式进行。在第二实施例中,当搜寻区域扫描完成时,将决定出九个检查点的九个误差计量以及此步的MBDM。利用上述的目前区块像素扫描顺序,延迟单元阵列提供具有特定延迟时间的八个不同数据流至PE的个别第二输入端,以便搜寻区域的像素值以及延迟单元阵列的输出端像素值可以正确地馈入至PE中。
在FSS算法中,第一步、第二步及第三步的步幅为2,而最后一步的步幅则改为1。每一个HDU的延迟时间为STEP_SIZE个时间单位,而每一个VDU的延迟时间为STEP_SIZE×P,其中P为区块的宽度(像素个数),且本实施例中P值为16。请参考第3图,其绘示可选择于一个或二个时间单元之后输出八位Curr_Data的HDU 300的结构图。HDU 300包括二个正反器(Flip-flop)310及320、一个多工器(Multiplexer)350以及一与逻辑门(AND LogicGate)360。正反器310为时钟栅极单元(Clock Gating Cell)。HDU 300可利用多工器350的选择输入端(MODE)选择于一个或二个时间单位后输出八位Curr_Data。请参考第4图,其绘示用以选择于16×1或16×2个时间单位后输出八位Curr_Data的VDU 400结构图。VDU 400包括32个正反器,即正反器401到正反器416、正反器421到正反器436,以及与逻辑门460,其中所有正反器为时钟栅极单元(Clock Gating Cell)。VDU 400可利用多工器450的选择输入端(MODE)选择于16×1或16×2个时间单位(周期)后输出八位Curr_Data。因此,藉由输入控制信号至延迟单元阵列的HDU及VDU中多工器的选择输入端,延迟单元阵列可提供具特定延迟时间的八个不同数据流至PE的个别第二输入端,因而,搜寻区域的像素值及目前区块的像素值可同步馈入至PE中。当步搜寻算法中下一步的步幅改变时,藉由输出一致能信号至MODE端,延迟单元可以适当地具有个别延迟时间。
例如,在FSS算法的第一步中,步幅为2。以PE1为例,PE1负责决定搜寻区域中目前区块与起始点为(2,0)的区块之间的误差计量。因此,当搜寻区域中对应(2,0)至(17,0)的Ref_Data依序地馈入至PE1的第一输入端A1时,PE1即致能。同时,对应目前区块的(0,0)至(15,0)也必须依序地馈入PE1的第二输入端B1。请参考第5图,HDU 140系以延迟时间STEP_SIZE(即两个时间单元)将Curr_Data馈入至PE1的第二输入端B1完成这个需求。因此,当延迟二个周期时间将Ref_Data及Curr_Data正确且同步地馈入至PE0时,Ref_Data是正确且同步地馈入PE1。对其它的PE而言,例如是PE3以及PE8,操作方式相似,不同在于PE于不同周期致能且馈入至PE第二输入端的Curr_data是延迟不同周期大小。
另外,HDU及VDU也称为延迟线并可以其它逻辑线路来操作。假如由2D PE阵列单元执行的步搜寻算法在不同的搜寻步当中具有不同的步幅,正反器,例如是HDU及VDU的数目可根据步搜寻算法的需求而调整。
PE阵列的控制
PE阵列的每一个PE具有控制端PEZen,其中Z代表0至8的数字。请参考第7图,扫描搜寻区域使得Ref_Data以规则方式馈入至每一个PE的第一输入端。Curr_Data是馈入PE0,且以特定延迟时间由延迟阵列单元输出的Curr_Data是馈入其余的PE,即PE1至PE8。以PE4为例,在搜寻区域扫描过程中,对应某些像素例如是搜寻区域的(0,0)至(1,15)的Ref_Data并不影响检查点(2,2)的误差计量决定。因此,致能信号是控制PE4不处理落在参考区块范围外的Ref_Data。根据本发明的第二实施例,可提供致能周期使得PE阵列单元正常操作。
请参考第8图,PE致能周期可直观地将搜寻区域再细分为9个子区域来加以定义。搜寻区域划分为具有与目前区块相同大小的子区域子集,分别关连一系列检查点(0,0),(STEP_SIZE,0),(2×STEP_SIZE,0),(0,STEP_SIZE),(STEP_SIZE,STEP_SIZE),(2×STEP_SIZE,STEP_SIZE),(0,2×STEP_SIZE),(STEP_SIZE,2×STEP_SIZE),(2×STEP_SIZE,2×STEP_SIZE)。各检查点是定义为每一个子区域所对应的起始点。在第8图中,PE0_enable_cycle,PE4_enable_cycle,PE8_enable_cycle是分别以方格810、814、818来表示并分别关系至检查点(0,0),(2,2),(4,4)。利用致能周期的定义,PE阵列的控制可方便且操作更简化。例如,可使用控制逻辑电路来判断那一个子区域包括对应搜寻区域中Ref_Data的像素R(i,j)。对每一个判断为包括像素R(i,j)的子区域,会致能对应的一个致能信号并送至对应检查点的PE控制端。
例如,当对应(2,2)的Ref_Data被读取时,控制逻辑电路是判定PE0_enable_cycle、PE1_enable_cycle、PE3_enable_cycle及PE4_enable_cycle(四个子区域)包括像素(2,2)。对应判定为包括像素(2,2)的四个子区域的致能信号,即PE0_Enable、PE1_Enable、PE3_Enable、PE4_Enable被致能且输出至对应检查点(0,0)、(2,0)、(0,2)、(2,2)的PE控制端PE0en、PE1en、PE3en、PE4en。
对应执行FSS算法的第二实施例,表一列出9种PE的致能状态。表一具体列出当子区域中包含有对应搜寻区域像素(X,Y)的Ref_Data时将标示为PEZ_Enable(Z=0~8)致能信号致能的状态。值得注意的是,表一中第二栏的状态系定义全点移动估计之前n-1步的子区域,而第三栏的状态则定义全点移动估计最后一步的子区域。此外,在第二实施例中,致能信号PEZ_Enable(Z=0~8)是分别馈入至PE0至PE8的控制端PEZen(Z=0~8)。
                                       表一
                            致能状态
  全点第1步至第n-1步   全点第n步(最后一步)
  PE0_Enable   X=0~15Y=0~15   X=0~15Y=0~15
  PE1_Enable   X=step_size~(15+step_size)Y =0~15   X=1~16Y=0~15
  PE2_Enable   X=2×step_size~(15+2×step_size)Y=0~15   X=2~17Y=0~15
  PE3_Enable   X=0~15Y=step_size~(15+step_size)   X=0~15Y=1~16
  PE4_Enable   X=step_size~(15+step_size)Y=step_size~(15+step_size)   X=1~16Y=1~16
  PE5_Enable   X=2×step_size~(15+2×step_size)Y=step_size~(15+step_size)   X=2~17Y=1~16
  PE6_Enable   X=0~15Y=2×step_size~(15+2×step_size)   X=0~15Y=2~17
  PE7_Enable   X=step_size~(15+step_size)Y=2×step_size~(15+2×step_size)   X=1~16Y=2~17
  PE8_Enable   X=2×step_size~(15+2×step_size)Y=2×step_size~(15+2×step_size)   X=2~17Y=2~17
移动估计系统的结构
请参考第9图,其绘示依照本发明第三实施例移动估计系统(MotionEstimation System)1000的结构方块图。移动估计系统1000包括移动估计单元1100、存储器读取单元(Memory Reading Unit)1500、控制单元1600以及地址产生单元(Address Generation Unit)1700。第9图绘示的系统是可输出例如是FSS算法的步搜寻算法的移动向量(Motion Vector)。移动估计系统1000更可配置以执行任何的移动估计N步搜寻算法,例如三步搜寻算法。
移动估计单元1100包括2D PE阵列单元100、多工器(Multiplexer)1150、寄存器单元(Register Unit)1160以及最小SAD判断单元(DeterminationUnit)1170。
存储器读取单元1500为一种提供移动估计系统1000的存储器读取接口,其中存储器读取接口可搭配连接移动估计系统1000的存储器总线10所使用的至少一通讯协议。存储器总线10例如是连接至参考存储器以及目前存储器。因此,移动估计系统1000可通过存储器读取单元1500由目前存储器以及参考存储器读取目前数据以及参考数据。
控制单元1600用以进行步搜寻计数。控制单元1600可以是有限状态机(Finite State Machine),例如包括二个计数电路(Counter Circuit),即X计数器以及Y计数器,用以进行步搜寻计数。X计数器用以计算一列搜寻区域读取像素值的像素数目。Y计数器则用以计算搜寻区域中读取像素值的像素字段数。当读取对应搜寻区域像素的一笔Ref_Data数据时,X计数器的计数值累加1。而当X计数器计数值达到一默认值X_max_count时,Y计数器计数值累加1。然后,X计数器计数值重置为0。当Y计数器的计数值达到y_range时,结束此步搜寻算法。X_max_count为搜寻区域的宽度(像素数目),即X_max_count=x_range。在全点移动估计的第一步至第(n-1)步中,X_max_count=x_range=macroblock_size+STEP_SIZE×2。例如,在FSS算法中,X_max_count=16+2×2=20,其中除了最后一步之外,其它步的步幅STEP_SIZE=2。而全点移动估计的最后一步中,X_max_count=x_range,而STEP_SIZE值可以是较小值。在FFS算法的最后一步中,X_max_count=16+1×2=18,其中STEP_SIZE=1。存储器读取单元1500产生存储器读取信号Ref_ready并送至控制单元1600。存储器读取信号是用以通知X及Y计数器更新其计数值。例如,当对应一笔搜寻区域的一笔Ref_Data数据由例如是参考存储器读取时,Ref_ready设定为致能状态,例如是高电平。PE致能周期系根据X以及Y计数器提供的目前计数值X及Y来决定。
地址产生单元1700包括PE致能逻辑电路1750以及移动向量(MV)产生逻辑电路1770。PE致能逻辑电路1750由计数器单元1600的X及Y计数器接收目前计数值X及Y,再根据目前计数值X及Y以及表一产生致能信号,然后将致能信号输出至移动估计单元1100的2D PE阵列单元100。如上所述,扫描搜寻区域之后,可获得九个误差计量,例如是第二实施例中对应九个检查点的九个SAD。而最小SAD判断单元1170可判定最小误差计量并加以输出。地址产生单元1700接收由最小SAD判断单元1170输出的最小误差计量。MV产生逻辑电路1770产生搜寻算法最后一步的移动向量。此外,地址产生单元1700产生存储器地址并提供给存储器读取单元1500,因而可由存储器读取单元1500读取目前数据并馈入至移动估计单元1100。
移动估计系统1000用以执行移动估计N步搜寻算法。假设移动估计系统1000以时钟信号CLK进行操作。首先,2D PE阵列单元配置如第5图所示,用以进行全点移动估计。接着,由起始点(0,0)开始读取搜寻区域610中像素的Ref_Data数据,如第6A图所示。并根据第7图的像素扫描顺序将读取的Ref_Data数据馈入至移动估计单元1100。当读取对应像素的Ref_Data数据时,如上所述,控制单元1600的X及Y计数器开始计数,且PE致能逻辑电路1750产生致能信号PEZ_enable(Z=0~8)并输出至PE阵列单元100。当读取搜寻区域的Ref_Data数据并馈入至移动估计单元1100时,目前区块的Curr_Data数据也以目前区块的像素扫描顺序来读取并馈入至移动估计单元1100。2D PE阵列单元100的每一个PE判断是否要根据致能信号PEZ_enable处理目前周期中馈入PE的数据并于PEZ_enable信号致能PE时计算正确的误差计量。当搜寻区域扫描完成且对应的像素数据完全馈入2D PE阵列单元时,搜寻区域九个参考区块(对应特定检查点)与目前区块的比较以平行方式进行,以产生对应的误差计量,亦即第6B图实施例中对应检查点的SAD。因此,可根据最小SAD判断单元1170提供的误差计量来决定具有最小误差计量的检查点。也就是说,在扫描搜寻区域中,可由2D PE阵列单元100进行移动估计N步搜寻算法的一搜寻步。根据搜寻步产生的结果,移动估计系统1000可以根据N步搜寻算法执行依序步搜寻直到获得一最佳点,亦即最后一步的最小区块变形计量,而移动向量即由此决定。因此,通过2D PE阵列单元100,移动估计系统1000可执行移动估计的任何N步搜寻算法。
特别是在2D PE阵列单元100的配置上,2D PE阵列单元100的HDU以及VDU根据步搜寻算法中目前搜寻步的步幅来配置。例如,当全点移动估计FSS算法的第一步中STEP_SIZE值设定为2时,如第3图所示,HDU藉由将选择信号馈入选择输入端(MODE)使得多工器350可选择正反器310输出的方式来设定。因此,每一个HDU具有二个时间单元(周期)的延迟时间。同样地也设定每个VDU并具有32个时间单元(周期)的延迟时间(周期)。当2D PE阵列单元100执行FSS算法的最后一步时,每一个HDU是设定为具有一个时间单元的延迟时间,且每一个VDU系设定为具有16个时间单元的延迟时间。在其中一个实施例中,可使用2D PE阵列单元100,在依序搜寻步中步幅可由4改变为2,或由2改变为1,以执行三步搜寻。在这种情况下,可根据第3图所示的HDU 300来调整2D PE阵列单元100中HDU的结构以具有四个时间单元的更长延迟时间,并可选择具有一个、二个或四个时间单位的延迟时间。同样地,2D PE阵列单元100的VDU结构也可以加以调整至具有16×4个时间单位的更长延迟时间,并可选择具有16、32或64个时间单位的延迟时间。
在全点移动估计中,系一行一行依序地读取搜寻区域的Ref_Data数据。这此实施例中,当信号PE0_Enable为致能状态时,在读取对应搜寻区域像素的一笔参考数据之前会先读取对应目前区块的一笔目前数据。
在一个实施例中,可于2D PE阵列单元100的HDU以及VDU中使用栅极时钟技术(Gated Clock Technique)来控制移位寄存器以达到有效降低功率耗损的目的。由存储器读取单元1500产生的存储器读取信号Ref_ready用以控制2D PE阵列单元100的延迟单元阵列。例如,在全点移动估计中,HDU致能信号是设定为对应存储器读取信号Ref_ready的逻辑状态,且VDU致能信号是设定为相当于逻辑运算结果(Ref_ready&(X_count<16))的逻辑状态,其中当由参考存储器读取搜寻区域像素的Ref_Data数据时,Ref_ready是设定为高电平状态。如第3图所示,HDU致能信号是馈入HDU的HEN端,而VDU致能信号则如第4图所示馈入至VDU的VEN端。时钟信号CLK是馈入至CLK端。效能
在MPEG-4的环境下,区块大小例如是16×16个像素。假设对应搜寻区域像素的一笔参考数据Ref_Data,以字节方式排列于一个周期中读取,且对应区块中四个依序像素的四块目前数据,以字符方式排式于一个周期中读取。于一个实施例中,第9图绘示移动估计单元1100的润饰图。寄存器单元1160用以储存对块目前数据(32位),且多工器1150用以由寄存器1160中选择一笔目前数据(8位),并输出所选定的目前数据至2D PE阵列单元100。全点移动估计FSS算法的第一步需要读取(16+2×2)×(16+2×2)=400块参考数据以及读取16×16=256块目前数据,且其步幅为2。由于储存于参考存储器的参考数据以字节方式排列,而非字符方式排列,参考数据是以一字节接着一字节方式来读取及存取。那是假设在最佳状况下,存储器读取单元可于一个周期内回复一笔参考数据。然而,储存在目前存储器的目前数据是字符排列方式且目前数据是一字符接着一字符方式存取及读取。在32位的存储器总线系统中,假设在最佳状况下,四块目前数据皆可在一个周期内由存储器读取单元回复。因此,在此假设下,全点移动估计的第一步需要400+64=464个周期才能完成。在最后一步中,必须读取(16+1×2)×(16+1×2)=324笔参考数据。也就是说,全点移动估计的最后一步系以324+64=384个周期来完成。因此,在最差的情况下,对一个目前区块的四步搜寻需要大约464×3+324=1716个周期来完成。
另外,早期结束是四步搜寻算法的特色之一,平均来说,移动向量可于大约2.5步中来决定,平均的计算时间约为1716×2.5/4=1072.5周期。优点
上述实施例中2D PE阵列单元以平行操作的九个PE来建构,且以简单顺序来提供数据流,并进行对应的控制。
如第7图所示,由于像素扫描的顺序为顺序性的,控制2D PE阵列单元的硬件操作以及地址产生方式也具规则性且单纯化。因此,可降低移动估计系统所需的电路面积。
在移动估计的计算过程中,馈入2D PE阵列单元的参考数据及目前数据可适当地再重复使用。2D PE阵列单元的计算速度是比已知仅使用一个PE的2D PE阵列单元要快九倍。
此外,2D PE阵列单元存储器存取的次数是比使用一个PE的2D PE阵列单元要少九倍。由于功率损耗正比于存储器存取次数,既能降低存储器存取的时间,便能有效节省2D PE阵列单元的功率消耗。因此,使用2D PE阵列单元的移动估计系统可适用于有限电源供应的移动处理装置,例如是移动电话或PDA。
此外,根据本发明的移动估计系统,可降低对存储器总线的存取次数,因而提高存储器总线的利用性。
由于不需要如一些已知步骤中暂存参考数据的额外大存储器区块,因此也可节省存储器资源。根据本发明的实施例,当参考数据馈入至2D PE阵列单元时执行移动估计的计算。
再者,2D PE阵列单元为一种弹性结构,可以适用于不同的移动估计算法,且可扩充其利用性。特别是如本发明上述的实施例所述,2D PE阵列单元可用以执行移动估计N步搜寻算法。2D PE阵列单元可使用于支持特定形式算法的移动估计系统。除了FSS算法之外,任何N步搜寻算法,例如是用于移动估计的三步搜寻或3-3-3-1搜寻算法皆可通过2D PE阵列单元来执行,其3-3-3-1搜寻算法的第一步到第四步的步幅分别为3、3、3及1。具有2D PE阵列单元的移动估计系统也可以选择性地支持各种算法,例如FSS以及TSS算法。
虽然第5图所示的2D PE阵列单元原本是用以执行全点移动估计,然只要在馈入2D PE阵列单元前准备好所有的子像素数据,2D PE阵列单元也可以执行子像素移动估计,例如半点或四分之一点移动估计。然而,这种方法额外需要将整体的像素数据转换成子像素数据的转换过程以及需要暂存由转换程序产生的所有子像素数据的存储器区块。此外,2D PE阵列单元仅在转换程序结束时才开始半点移动估计。而且,在转换程序中于此外加缓冲器中进行存储器读写操作的次数将增加整体计算时间。
接下来的描述中,第1图的2D PE阵列单元可不需要储存所有子像素数据的存储器区块而用以执行半点移动估计,并可由本发明第1图的2D PE阵列单元配置存在的平行性及导线配置特性得到最佳的效益。
为了由第1图中2D PE阵列单元配置存在的平行性及导线配置特性得到最佳的效益,提供半点值产生单元,而2D PE阵列单元系用以利用半点值产生单元执行半点移动估计。
执行半点移动估计的2D PE阵列单元配置
请参考第12图,其绘示依照本发明第四实施例利用第1图的2D PE阵列单元执行半点移动估计的结构配置图。当于第一阶段顺利找到全点移动估计的最佳点时,在第二阶段,可根据此最佳点,由半点移动估计的「半点」准确度再找出全点移动估计的最佳点。根据本发明的第四实施例,当对搜寻区域中对应全点的像素数据进行扫描时,起始点为全点最佳点的目前区块,设为C(0,0),是与全点最佳点以及平行的八个相邻半点检查点有关的九个参考区块相比较。前一个画面的搜寻区域R(i,j)(i=-1~16,j=-1~16)在宽度及长度上比目前区块大二个像素,且目前区块是定义为C(x,y)(x=0~15,y=0~15)。当由点R(-1,1)到点R(16,16)依序一行一行地读取搜寻区域的全点移动估计的像素数据,或称为全点值DR(i,j)时,平行产生的好几组四半点值系一组一组地馈入至第12图的2D PD阵列单元。当各组四个半点值馈入至第12图的2D PE阵列单元时,PE平行地计算其对应的误差计量。当搜寻区域的扫描完成时,决定出九个误差计量并获得具半点准确度的移动向量。
在第12图中,输入数据A馈入至PE0、PE2、PE6及PE8的第一输入端。输入数据B馈入至PE1、PE7的第一输入端。输入数据C是馈入至PE3、PE5的第一输入端。而输入数据D是馈入至PE4的第一输入端。A、B、C及D分别代表对应标示字母A、B、C及D钻石图案的像素值。由第10图可知,半像素R(-0.5,-0.5)、R(0,-0.5)、R(-0.5,0)及R(0,0)的像素数据A、B、C及D可由整数像素R(-1,-1)、R(0,-1)、R(-1,0)及R(0,0)的像素数据a、b、c及d推导而得。
半点值(Half-pel Value)的产生
为了在读取全点值时提供一组四个半点值,第12图所示的第四实施例中2D PE阵列单元使用具有二个额外电路的半点值产生单元(Half-pel ValueGeneration Unit)。半点值产生单元包括准备延迟单元(Preparation DelayUnit)以及半点产生单元(Half-pel Generation Circuit)。请参考第11A图,准备延迟单元2200于一特定时间(周期)后平行地提供四个全点值a、b、c、d。在第11A图中,10个正反器FF 2201至FF 2219相互串联并由与逻辑门2250输出的控制信号加以控制。由搜寻区域产生的全点值送至输入端Ref_In。经过一段准备时间后,即所谓预备(Prefetch)周期,19个正反器皆馈入数据,四个全点值a、b、c、d可同步输出。请参考第11B图,半点产生电路2300用以通过底下的逻辑表达式将像素数据a、b、c、d对应地转换为像素数据A、B、C、D。
A=(a+b+c+d+2-rounding)>>2,
B=(b+d+1-rounding)>>1,
C=(c+d+1-rounding)>>1,
D=d,
其中A,B,C,D为半点值,且a,b,c,d为全点值。
搜寻区域以及检查点
在半点移动估计中,搜寻区域的定义不同于全点移动估计。搜寻区域=x_range·y_range,x_range=16+STEP_SIZE×2=18,y_range=16+STEP_SIZE×2=18,且STEP_SIZE=1。特别是半点搜寻的检查点是定义于全点搜寻中找到的最佳点R(0,0)附近。请参考第10图,所有圆圈为全点而具有斜线的圆圈代表全点最佳点。另外,九个钻石图案代表九个检查点。藉由找寻R(0,0)与其它八个相邻点R(-0.5,-0.5)、R(0,-0.5)、R(0.5,-0.5)、R(-0.5,0)R(0.5,0)、R(-0.5,0.5)、R(0,0.5)及R(0.5,0.5)的最佳吻合度来找出准确的半点移动向量。九个检查点对应于分别具有起始点为R(-0.5,-0.5)、R(0,-0.5)、R(0.5,-0.5)、R(-0.5,0)、R(0,0)、R(0.5,0)、R(-0.5,0.5)、R(0,0.5)及R(0.5,0.5)的九个区块。在水平及垂直方向相邻两点的步幅为1,由16×16半点组成的每一个区块可以附近的全点由内插方式获得。搜寻区域的全点值DR(i,j)是用以产生搜寻区域的半点值DR(i+0.5,j+0.5),其中i=-1~16,且j=-1~16。而全点移动估计的步幅为1。
半点移动估计操作
半点移动估计的操作如下:
首先,如第12图所示,2D PE阵列单元用以执行半点移动估计,而VDU及HDU是设定具有特定的延迟时间。
接着,开始预备周期以产生第一组四个半点值。在预备周期中,对应搜寻区域中像素DR(-1,-1)到DR(16,16)的全点值Ref_Data是以依序方式读取并馈入至半点值产生单元。于此实施例中,搜寻区域的一全点值馈入至准备延迟单元2200的输入端Ref_In。当来自搜寻区域的第20个全点值DR(0,0)输入至延迟单元2200时,全点值a、b、c、d可同时输出并送至半点产生电路2300。四个半点值A、B、C、D同时由半点产生电路2300产生并馈入至第12图的2D PE阵列单元。
再者,第12图的2D PE阵列单元系于各组半点值A、B、C、D一组一组地馈入至第12图的2D PE阵列单元时累计误差计量。当第一组半点值馈入时,第12图的2D PE阵列单元先执行对应检查点R(-1-1)、R(0,-1)、R(-1,-0)及R(0,0)的误差计量。当一行一行地依序读取搜寻区域的全点值DR(i,j)时,九个检查点R(-0.5,-0.5)、R(0,-0.5)、R(0.5,-0.5)、R(-0.5,0)、R(0,0)、R(0.5,0)、R(-0.5,0.5)、R(0,0.5)及R(0.5,0.5)的误差计量可以累计方式计算。致能信号输入至第12图的2D PE阵列单元以致能对应的PE并处理馈入PE的数据。当搜寻区域完成扫描时,可决定出九个误差计量。因此,可决定具有最小误差计量的检查点,以获得具半点准确度的移动向量。
为了达到上述的目的,必须根据第12图中2D PE阵列单元所执行半点移动估计设定像素扫描顺序、延迟单元并控制PE阵列。
半点移动估计的像素扫描顺序(Pixel Scan Order)
半点移动估计中搜寻区域的像素扫描顺序类似于本发明第四实施例中第7图所示的全点移动估计。搜寻区域的参考数据系由起始点R(-1,-1)至结束点R(-1+x_range-1,-1+y_range-1)=R(16,16)一行一行地依序读取。其中x_range=18,且y_range=18。
同样地,目前区块的像素值由起始点C(0,0)至结束点C(15,15)一行一行地依序读取。然而,上述的预备周期系位于目前区块扫描开始之前,第一组四个半点值,即第10图所示的A、B、C、D系于预备周期之后提供。在预备周期中,全点值DR(-1,-1)到DR(-1,0),全部19个全点值由左至右一行一行地依序馈入至准备延迟单元2200。当PE0(或PE1)被致能时,即当送至PE0控制端PE0en的致能信号PE0_Enable为致能状态时,目前区块DC(0,0)到(15,15)的像素值以上述目前区域的像素扫描顺序来读取。在一个实施例,当PE0(或PE1)为致能状态时,在读取参考数据之前立即先读取一笔目前数据。
第12图中,PE决定对应第10图半点移动估计检查点的误差计量,例如是本实施例的SAD。例如,PE0系用以使用SAD对目前区块与对应检查点R(-0.5,-0.5)的参考区块作比较,其中检查点系第10图中钻石图案代表的左上半点。此外,PE1~PE8用以使用SAD对目前区块与分别对应检查点R(0,-0.5)、R(0.5,-0.5)、R(-0.5,0)、R(0,0)、R(0.5,0)、R(-0.5,0.5)、R(0,0.5)及R(0.5,0.5)的参考区块作比较。
为了使第12图中每一个PE皆可正确地决定对应检查点的误差计量,即SAD。来自半点产生电路2300的半点值A、B、C、D以及目前数据需要正确地,例如是同步地送至PE阵列。例如,当半点值DR(-0.5,-0.5)即第10图的A与全点值DC(0,0),即第10图的d同步送至第一输入端A0以及第二输入端B0时,PE0可准确地计算绝对差值。同样地,当半点值DR(0,-0.5)、DR(-5,0)以及DR(0,0),即第10图的B、C及D系与输入PE1、PE3及PE4第二输入端的全点值DC(0,0)同步分别馈入至PE1、PE3及PE4的第一输入端时,PE1、PE3以及PE4可正确地决定个别的绝对差值。因此,每次提供的半点值A、B、C及D与全点值DC(i,j)同步馈入至PE0、PE1、PE3、PE4,使得PE0、PE1、PE3、PE4可对应地决定误差计量。
就PE0来说,PE0是于读取一列目前区块的最后一个像素并送至第二输入端B0之后被非致能。此时,搜寻区域的扫描动作仍持续进行中。另外,目前区块的扫描动作暂停直到扫描到下一列搜寻区域的第一个像素。当扫描下一列搜寻区域的第一个像素时,PE0再次致能并继续扫描目前区块。因此,下一列目前区块的半点值以及下一列搜寻区域的半点值可以正确地,例如是同步地送至PE0。以上述方式来扫描目前区块可使得其它PE可以对应地接收到正确的像素值以决定误差计量。通过延迟单元阵列,其它的PE可以正确地输出像素值。
用作半点移动估计的延迟单元
利用对搜寻区域以及目前区块的像素扫描顺序,延迟单元必须具有个别的延迟时间,以便重复使用目前的数据,即来自目前区块的全点值。如上所述,某一时间提供的半点值A、B、C、D例如是与全点值DC(i,j)同步地馈入PE0、PE1、PE3及PE4中,使得PE0、PE1、PE3及PE4可以对应地决定误差计量。因此,在本实施例中,HDU 140、160以及150系设定为没有延迟时间。而其它的PE设定则视下述目前数据的再使用状况而定。
请参照第10图以及第12图,当PE0被致能时,读取全点值DC(0,0)并馈入至阵列单元。在此实施例中,于全点值DC(0,0)以及第一组四个半点值,即A、B、C及D产生并分别馈入至PE0、PE1、PE 3及PE4之后,立即读取全点值DR(0,0)。由于第一组四个半点值并不包含于对应PE检查点的区块中,因此PE2、PE5、PE6、PE7及PE8等其它PE为非致能状态。然而,当PE2、PE5、PE6、PE7及PE8被致能时,必须重复使用全点值DC(0,0)。如第10图所示,当全点值DC(1,0)被读取时,在下一个周期中产生包括DR(0.5,-0.5)及DR(0.5,0)的下一组四个半点值。如第12图所示,当产生半点值DR(0.5,-0.5)及DR(0.5,0)时,PE2及PE5被致能且此两个半点值系馈入至第一输入端A2及A5,而前一个周期读取的全点值DC(0,0)系由HDU 142及162输出至第二输入端B2及B5。因此,假设当PE0为致能状态于每一个周期读取目前区块的一全点值时,HDU 142及162各具有一个时间单元(周期)的延迟时间。
请参照第10图,当读取全点值DC(0,1)时,在接下来周期中产生包括DR(-0.5,0.5)及DR(0.5,0)的一组四个半点值。如第12图所示,当产生半点值DR(-0.5,0.5)及DR(0.5,0)时,PE6及PE7被致能且此两个半点值馈入至第一输入端A6及A7,而前一个周期读取的全点值DC(0,0)分别由VDU 170及HDU 180输出至第二输入端B6及B7。因此,VDU 170系设定为具有16个时间单元的延迟时间,且HDU 180设定为延迟时间为0。因此,当读取全点值DC(0,1)时,在下一个周期中产生包括DR(0.5,0.5)的下一组四个半点值。再如第12图所示,当产生半点值DR(0.5,0.5)时,PE8被致能且此半点值馈入至第一输入端A8,而在上一个周期由HDU 180读取的全点值DC(0,0)系输出至第二输入端B8。因此,EDU 180设定为具有一个时间单位的延迟时间。
用作半点移动估计的PE阵列控制
与上述的讨论相似,根据本发明的第四实施例,第12图所示的九个PE具有四个PE致能周期,用以使PE阵列单元正常操作。特别是这些致能周期彼此互相重迭使得某些PE功能在扫描参考数据过程的某些时刻是相互平行。PE0、PE1、PE3及PE4的致能周期PE0_enable_cycle是相等。PE2及PE5的致能周期PE2_enable_cycle为相同。PE6及PE7也具有相同的致能周期PE6_enable_cycle。PE8具有个别的致能周期PE8_enable_cycle。这些PE致能周期可通过将搜寻区域划分为如目前区块一般具有相同大小的子区域子集来直观地加以定义。请参照第13A图及第13B图,对应起始点R(0,0)、R(1,0)、R(0,1)及R(1,1)的四个子区域1301~1304分别用以定义对应PE0、PE2、PE6及PE8的四个致能周期。
通过致能周期的定义,可更方便控制PE阵列并降低操作的复杂度。例如,PE致能逻辑电路可用以决定当读取全点值DR(i,j)时那一个子区域包括像素R(i,j)。对每一个决定为具有像素R(i,j)的子区域而言,是致能其中对应的一致能信号并送至对应子区域(或致能周期)的控制PE阵列的PE控制端。
例如,当读取DR(1,0)时,PE致能逻辑电路判定PE0_enable_cycle及PE2_enable_cycle(两个子区域)具有像素R(1,0)。对判定为具有像素R(1,0)的两个子区域而言,PE0_Enable、PE1_Enable、PE3_Enable、PE4_Enable及PE2_Enable等致能信号被致能并送至对应的控制端,即对应致能周期PE0_enable_cycle及PE2_enable_cycle中PE的PE0en、PE1en、PE3eh、PE4en、PE2en及PE5en。
与执行半点移动估计的第四实施例相同,表二列出如第12图所示的九个PE的致能状态。搜寻区域的起始点定义为(-1,-1)。表二显示当对应搜寻区域中全点值R(X,Y)的像素值DR(X,Y)位于子区域中时致能信号PEZ_Enable(Z=0~8)被致能的状态。另外,在第二实施例中,致能信号是分别馈入至PE0~PE8的控制端PEZen(Z=0~8)。
                          表二
  致能状态   致能周期
  半点
  PE0_Enable   X=0~15,Y=0~15   PE0_enable_cycle
  PE1_Enable   X=0~15,Y=0~15   PE0_enable_cycle
  PE2_Enable   X=1~16,Y=0~15   PE2_enable_cycle
  PE3_Enable   X=0~15,Y=0~15   PE0_enable_cycle
  PE4_Enable   X=0~15,Y=0~15   PE0_enable_cycle
  PE5_Enable   X=1~16,Y=0~15   PE2_enable_cycle
  PE6_Enable   X=0~15,Y=1~16   PE6_enable_cycle
  PE7_Enable   X=0~15,Y=1~16   PE6_enable_cycle
  PE8_Enable   X=1~16,Y=1~16   PE8_enable_cycle
注:搜寻区域的起始点定义为(-1,-1)。
执行全点及半点移动估计的移动估计系统结构
请参照第14图,其绘示依照本发明第五实施例的移动估计系统结构图。移动估计系统2000包括移动估计单元2100、存储器读取单元1500、控制单元1600以及地址产生单元1700。第14图所绘示的系统是可于第一阶段中利用步搜寻算法,例如是FSS算法来执行全点移动估计,并于第二阶段中可选择性地根据全点移动估计找出的最佳点执行半点移动估计以获得具半点准确度的移动向量。移动估计系统2000还可以如同第九图显示的系统1000,用以执行任意的N步搜寻算法,例如三步搜寻算法,以进行全点移动估计。然而,值得注意的是,移动估计系统2000系可选择性地执行半点移动估计,以使得由全点移动估计获得的移动向量具有半点准确度。为了简洁起见,下列叙述中将不再重复关于第一阶段中全点移动估计的操作状况。关于移动估计系统2000所执行的全点移动估计,可参考上述全点移动估计的描述及图式。
移动估计单元2100包括2D PE阵列单元100、多工器1150、寄存器单元1160以及最小SAD判断单元1170。此外,移动估计单元2100包括半点值产生单元,用以输出平行于2D PE阵列单元100的一组半点值。半点值产生单元包括准备延迟单元(Preparation Delay Unit)2200以及半点产生电路(Half-pel Generation Circuit)2300,如第11A图以及第11B图所示。
存储器读取单元1500为移动估计系统2000的存储器读取接口,且此存储器读取接口可利用连接移动估计系统2000的存储器总线10所使用的至少一种通讯协议来执行。
控制单元1600用以对步搜寻进行计数。控制单元1600可以是一种有限状态机器,例如是包括X计数器与Y计数器的两个计数电路。X计数器计算一列搜寻区域中所读取的像素值数目。Y计数器计算搜寻区域中读取像素值的像素栏数。当读取对应搜寻区域像素的一笔Ref_Data数据时,X计数器的计数值累加1。而当X计数器计数值达到默认值X_max_count时,Y计数器计数值累加1。然后,X计数器计数值重置为0。当Y计数器的计数值达到y_range时,结束此步搜寻算法。由于移动估计系统2000分别于不同二阶段来执行全点移动估计以及半点移动估计,X及Y计数器于全点移动估计及半点移动估计需达到不同的默认值。
在执行全点移动估计的第一阶段中,X_max_count为搜寻区域的宽度(像素数目),即X_max_count=x_range。在全点移动估计的第一步至第(n-1)步中,X_max_count=x_range=macroblock_size+STEP_SIZE×2。例如,在FSS算法中,X_max_count=16+2×2=20,其中除了最后一步之外,其它步的步幅STEP_SIZE=2。而全点移动估计或半点估计的最后一步中,X_max_count=x_range,而STEP_SIZE值可以是较小值。在半点估计中,X_max_count=16+1×2=18,其中STEP_SIZE=1。存储器读取单元1500产生存储器读取信号Ref_ready并送至控制单元1600。存储器读取信号是用以通知X及Y计数器更新其计数值。例如,当对应一笔搜寻区域的一笔Ref_Data数据由例如是参考存储器读取时,Ref_ready设定为致能状态,例如是高电平。PE致能周期根据X以及Y计数器提供的目前计数值X及Y以及表一所示全点移动估计的致能状态与表二所示半点移动估计的致能状态来决定。
地址产生单元1700包括PE致能逻辑电路1750以及移动向量(MV)产生逻辑电路1770。PE致能逻辑电路1750由计数器单元1600的X及Y计数器接收目前计数值X及Y,再根据目前计数值X及Y以及表一的全点移动估计或表二的半点移动估计产生致能信号,然后将致能信号输出至移动估计单元2100的2D PE阵列单元100。如上所述,扫描搜寻区域之后,可获得九个误差计量,例如是第二实施例中对应九个检查点的九个SAD。而最小SAD判断单元1170可判定最小误差计量并加以输出。地址产生单元1700接收由最小SAD判断单元1170输出的最小误差计量。在第一阶段中,MV产生逻辑电路1770产生搜寻算法最后一步的移动向量。当第二阶段欲执行半点移动估计时,于第一阶段获得的移动向量即可用作决定是否具有半点准确度的根据。此外,地址产生单元1700产生存储器地址并提供给存储器读取单元1500,因而可由存储器读取单元1500读取目前数据并馈入至移动估计单元1100。
半点移动估计过程的移动估计系统操作
移动估计系统2000用以执行半点移动估计。假设移动估计系统2000以时钟信号CLK进行操作,并于第一阶段的全点移动估计中找到一最佳点。首先,2D PE阵列单元100是配置如第12图所示,用以进行半点移动估计。接着,开始预备周期以自搜寻区域起始点R(-1,-1)到R(-1,0)读取搜寻区域的全点值Ref_Data,并馈入至移动估计单元2100的准备延迟单元2200,使得半点产生电路2330得以输出一组四个半点值至2D PE阵列单元100。接着,致能PE0_enable并读取DR(0,0)。如上所述,控制单元1600的X及Y计数器开始计数,且PE致能逻辑电路1750根据表二产生致能信号PEZ_enable(Z=0~8)并输出至PE阵列单元100。当以搜寻区域的像素扫描顺序读取搜寻区域的全点值并馈入至移动估计单元2100时,目前区块的Curr_Data数据也以目前区块的像素扫描顺序,例如是上述的「半点移动估计像素扫描顺序」来读取并馈入至移动估计单元2100。2D PE阵列单元100的每一个PE判断是否要根据致能信号PEZ_enable处理目前周期中馈入PE的数据,并于PEZ_enable信号致能PE时准确地计算出误差计量。当搜寻区域扫描完成且对应的像素数据完全馈入2D PE阵列单元时,搜寻区域九个参考区块(对应特定检查点)与目前区块的比较以平行方式进行,以产生对应的误差计量,亦即第10图实施例中对应半点检查点的SAD。也就是说,在扫描搜寻区域中,可由2D PE阵列单元100进行半点移动估计。因此,可根据最小SAD判断单元1170所获得的误差计量决定具有最小误差计量的一个全点检查点,并据以决定出具半点准确度的移动向量。所以,通过2D PE阵列单元100,移动估计系统1000可执行移动估计的任何N步搜寻算法。
特别是在2D PE阵列单元100的配置上,2D PE阵列单元100的HDU以及VDU的配置如上述的「半点移动估计延迟单元」。
在全点移动估计中,一行一行依序地读取搜寻区域的Ref_Data数据。在此实施例中,当信号PE0_Enalbe为致能状态时,在读取对应搜寻区域像素的一笔参考数据之前会先读取对应目前区块的一笔目前数据。
在一个实施例中,可于2D PE阵列单元100的HDU以及VDU中使用栅极时钟技术(gated clock technique)来控制移位寄存器以达到有效降低功率耗损的目的。在半点移动估计中,由存储器读取单元1500产生的存储器读取信号Ref_ready用以控制2D PE阵列单元100的延迟单元阵列。例如,在半点移动估计中,HDU致能信号HEN_CS设定为吻合PE1_Enable时序的一逻辑状态:HEN_CS=Ref_ready&(X_count>0)&(Y_count>0)。VDU致能信号设定为逻辑状态:VEN_CS=HEN_CS&(X_count<17)。准备延迟单元2200的致能信号SEN_CS设定为SEN_CS=Ref_ready。当由参考存储器读取搜寻区域像素的Ref_Data数据时,Ref_ready设定为高电平状态。如第3图所示,HDU致能信号馈入HDU的HEN端,而VDU致能信号则如第4图所示馈入至VDU的VEN端。准备延迟单元2200的致能信号SEN_CS馈入至其SEN端,如第11A图所示。而所有延迟单元的CLK端馈入时钟信号CLK。
半点移动估计的效能
使用如上述的全点移动估计「效能」的假设。如上述的实施例,半点移动估计需要读取(16+1×2)×(16+1×2)=324块参考数据以及读取16×16=256块目前数据。因此,在此假设下,目前区块的半点移动估计需要324+256/4=388周期才能完成。
优点
在本发明的第四及第五实施例中,揭露了执行半点移动估计的2D PE阵列单元配置以及执行全点及半点移动估计的移动估计系统结构。根据此些实施例,具有准备延迟单元及半点产生电路的半点值产生单元搭配2D PE阵列单元的配置来执行半点移动估计。2D PE阵列单元如第1图所示,可选择用以执行全点以及半点移动估计。
根据本发明,可由第1图所示2D PE阵列单元配置存在的平行性及导线配置特性得到最佳的效益。在扫描搜寻区域过程中,不论是半点或全点搜寻,2D PE阵列单元可以平行方式比较目前区块与搜寻区域的一组参考区块。当完成搜寻区域的扫描时,完成半点搜寻的步搜寻动作。
搜寻区域以及区块的像素扫描顺序系具有规则性及简化性,使得控制逻辑及致能信号可以在不使用复杂硬件的情况下来操作。2D PE阵列的电路设计系可扩充性并具有弹性。除了半点移动估计之外,2D PE阵列单元也可以适用于任何其它的子像素移动估计,例如是四分之一点移动估计或八分之一点移动估计等。
综上所述,虽然本发明已以一较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。

Claims (16)

1.一种移动估计装置,用于图像处理,包含:
多个处理元件,每一处理元件具有第一输入端、第二输入端、控制端及误差计量输出端,该些处理元件所对应的该些第一输入端接收参考数据;
多个延迟单元,针对像素数据,产生具有特定延迟时间的多个数据流送至该些处理元件的该些第二输入端;以及
控制电路,提供多个控制信号至该些处理元件的该些控制端,当该些处理元件收到该些控制信号时,计算该第一输入端与该第二输入端的误差计量。
2.根据权利要求1所述的移动估计装置,其中该像素数据是针对目前画面以特定扫描方式依序选出。
3.根据权利要求1所述的移动估计装置,其中该参考数据是针对搜寻区域以特定扫描方式依序选出。
4.根据权利要求1所述的移动估计装置,还包含半点值产生单元,使该参考数据为半点数据值。
5.根据权利要求1所述的移动估计装置,其中该些处理元件是排列成二维阵列,而该些延迟单元则包含多个水平延迟单元与多个垂直延迟单元,以在适当时间输入所需数据至该些处理元件的该些第二输入端。
6.一种移动估计装置,包括:
处理元件阵列单元,包括:
延迟单元阵列,包括:
多个水平延迟单元,包括三列水平延迟单元,各列水平延迟单元具有第一水平延迟单元以及第二水平延迟单元,各该些水平延迟单元包括输入端以及输出端,其中在各列水平延迟单元中,该第一水平延迟单元的该输出端是连接该第二水平延迟单元的该输入端;以及
多个垂直延迟单元,包括第一垂直延迟单元以及第二垂直延迟单元,各该些垂直延迟单元具有输入端以及输出端,其中该第一垂直延迟单元的该输入端是连接于该第一列中该第一水平垂直延迟单元的该输入端,该第一垂直延迟单元的该输出端是连接该第二列中该第一水平延迟单元的该输入端以及该第二垂直延迟单元的该输入端,该第二垂直延迟单元的该输出端是连接该第三列中该第一水平延迟单元的该输入端;以及
处理元件阵列,包括三列处理元件,各列处理元件包括第一处理元件、第二处理元件以及第三处理元件,各该些处理元件包括第一输入端、第二输出端、误差计量输出端以及控制端,其中在每一列处理元件中,该第一处理元件的该第二输入端是连接该第一水平延迟单元的该输入端,该第二处理元件的该第二输入端是连接该第一水平延迟单元的该输出端,该第三处理元件的该第二输入端是连接该第二水平延迟单元的该输出端,其中各该些处理元件是于该控制端为一致能状态时累计该第一输入端的参考数据与该第二输入端的像素数据之间的误差计量。
7.根据权利要求6所述的移动估计装置,其中定义有一区块包括P×Q个像素并具有起始点C(0,0),一搜寻区域包括L×J个像素,并具有起始点R(0,0),L=2×STEP_SIZE+P,J=2×STEP_SIZE+Q,且该移动估计装置还包括:
存储器读取单元,用以自该起始点R(0,0)至R(L-1,J-1)一行一行依序地读取与该搜寻区域中像素R(i,j)对应的参考数据DR(i,j),并自该起始点C(0,0)至C(P-1,Q-1)一行一行依序地输出与该区块中像素C(p,q)对应的像素数据DC(p,q);
其中由该存储器读取单元读取的该些像素数据DC(p,q)是送至该第一列中该水平延迟单元的该输入端,且由该存储器读取单元读取的该参考数据DR(i,j)是送至该处理元件阵列中每一处理元件的该第一输入端。
8.根据权利要求7所述的移动估计装置,其中该搜寻区域是划分为具有P×Q个像素的多个子区域分别对应至检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE),各该些检查点是定义为各该些子区域相对应的一起始点;
各该些水平延迟单元具有STEP_SIZE个时间单位的延迟时间;
各该些垂直延迟单元具有STEP_SIZE×P个时间单位的延迟时间;以及
该处理元件阵列是用以累计对应该些检查点的该些误差计量;
其中该移动估计装置还包括:
处理元件致能电路,用以产生多个致能信号,以控制该处理元件阵列计算对应的该些误差计量,其中当该存储器读取单元读取该些参考数据DR(i,j)时,该处理元件致能电路决定包括像素R(i,j)的子区域;对于每一个包括该像素R(i,j)的子区域,该些致能信号其中之一是被致能并送至对应该检查点的该处理元件的该控制端;
其中当该存储器读取单元完成读取该搜寻区域的该些参考数据以及该区块的该些像素数据时,便获得对应该些检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE)的该些误差计量。
9.一种执行全点移动估计的方法,包括:
(a)定义一区块,包括P×Q个像素并具有起始点C(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点R(0,0),其中L=2×STEP_S IZE+P,J=2×STEP_SIZE+Q;
(b)自该起始点R(0,0)至该起始点R(L-1,J-1)一行一行依序地输出对应该搜寻区域的像素R(i,j)的参考数据DR(i,j),并自该起始点C(0,0)至该起始点C(P-1,Q-1)一行一行依序地输出对应该区块的像素C(p,q)的像素数据DC(p,q);
(c)当该步骤(b)在执行时,决定与该些检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE)相对应的多个误差计量,该步骤(c)包括:
若i<P且j<Q,根据该些像素数据DC(p,q)以及该些参考数据DR(i,j)累计对应该检查点(0,0)的误差计量;
若i≥STEP_SIZE,i≤(L+STEP_SIZE),且j<Q,根据经过对应STEP_SIZE的延迟时间的该些像素数据DC(x1,y1)以及该些参考数据DR(i,j),累计对应该检查点(STEP_SIZE,0)的误差计量,其中x1=i-STEP_SIZE且y1=j;
若i≥2×STEP_SIZE,i≤(L+2×STEP_SIZE),且j<Q,根据经过对应2×STEP_SIZE的延迟时间的该些像素数据DC(x2,y2)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,0)的误差计量,其中x2=I-2×STEP_SIZE,且y2=j;
若i<P,j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过对应P×STEP_SIZE的延迟时间的该些像素数据DC(x3,y3)以及该些参考数据R(i,j),累计对应该检查点(0,STEP_SIZE)的一误差计量,其中x3=i,且y3=j-P×STEP_SIZE;
若i≥STEP_SIZE,i<(L+STEP_SIZE),j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过(1+P)×STEP_SIZE的延迟时间延迟的该些像素数据DC(x4,y4)以及该些参考数据R(i,j),累计对应该检查点(STEP_SIZE,STEP_SIZE)的误差计量,其中x4=i-STEP_SIZE,且y4=j-P×STEP_SIZE;
若i≥2×STEP_SIZE,i<(L+2×STEP_SIZE),j≥STEP_SIZE,且j<(L+STEP_SIZE),根据经过对应(2+P)×STEP_SIZE的延迟时间的该些像素数据DC(x5,y5)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,STEP_SIZE)的误差计量,其中x5=i-2×STEP_SIZE,且y5=j-P×STEP_SIZE;
若i<P,j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应2×P×STEP_SIZE的延迟时间的该些像素数据DC(x6,y6)以及该些参考数据R(i,j),累计对应该检查点(0,2×STEP_SIZE)的误差计量,其中x6=i,且y6=j-2×P×STEP_SIZE;
若i≥STEP_SIZE,i<(L+STEP_SIZE),j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应(1+2×P)×STEP_SIZE的延迟时间的该些像素数据DC(x7,y7)以及该些参考数据R(i,j),累计对应该检查点(STEP_SIZE,2×STEP_SIZE)的误差计量,其中x7=i-STEP_SIZE,且y7=j-2×P×STEP_SIZE;以及
若i≥2×STEP_SIZE,i<(L+2×STEP_SIZE),j≥2×STEP_SIZE,且j<(L+2×STEP_SIZE),根据经过对应(2+2×P)×STEP_SIZE的延迟时间的该些像素数据DC(x8,y8)以及该些参考数据R(i,j),累计对应该检查点(2×STEP_SIZE,2×STEP_SIZE)的误差计量,其中x8=i-2×STEP_SIZE,且y8=j-2×P×STEP_SIZE;
其中当完成该步骤(b)时,由该步骤(c)所决定,与该些检查点(0,0)、(STEP_SIZE,0)、(2×STEP_SIZE,0)、(0,STEP_SIZE)、(STEP_SIZE,STEP_SIZE)、(2×STEP_SIZE,STEP_SIZE)、(0,2×STEP_SIZE)、(STEP_SIZE,2×STEP_SIZE)以及(2×STEP_SIZE,2×STEP_SIZE)对应的该些误差计量亦得以完成。
10.根据权利要求9所述的全点移动估计方法,其中可根据对应该些检查点的该些误差计量决定四步搜寻算法中一搜寻步的最小区块变形计量点,且四步搜寻算法的第一步、第二步、第三步以及第四步的步幅STEP_SIZE分别为2、2、2及1。
11.根据权利要求9所述的全点移动估计方法,其中可根据对应该些检查点的该些误差计量决定3-3-3-1算法中一搜寻步的最小区块变形计量点,且3-3-3-1搜寻算法的第一步、第二步、第三步以及第四步的步幅STEP_SIZE分别为3、3、3及1。
12.根据权利要求9所述的全点移动估计方法,其中可根据对应该些检查点的该些误差计量决定三步搜寻算法中一搜寻步的最小区块变形计量点,且三步搜寻算法的第一步、第二步以及第三步的步幅STEP_SIZE分别为4、2及1。
13.一种全点移动估计的方法,包括:
(a)定义一区块,包括M×N个像素并具有起始点MB(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点SA(0,0),其中L>P,且J>Q;
(b)定义该搜寻区域包括对应多个检查点的多个具有M×N个像素的子区域,各该些检查点是定义为各该些子区域对应的起始点;
(c)自该起始点SA(0,0)至该起始点SA(L-1,1-1)一行一行依序地输出对应该搜寻区域像素的像素数据,并自该起始点MB(0,0)至该起始点MB(M-1,N-1)一行一行依序地输出对应该区块像素的像素数据;
(d)当该步骤(c)在执行时,对于由该步骤(c)所输出并对应该区块中一像素的像素数据,送至延迟单元阵列,用以输出分别对应该些检查点的多个串输出数据流,其中对于该些检查点其中之一,C(x,y),该延迟单元阵列是输出对应的输出数据流,且该输出数据流是延迟(x+y×M)个时间单位的像素数据;
(e)当该步骤(c)在执行时,根据该步骤(c)所读取且与该搜寻区域的像素SA(p,q)相对应的该像素数据,执行下列步骤:
判断所有子区域中包括SA(p,q)的子区域;以及
对于各个包括SA(p,q)的子区域,累计该子区域对应的该检查点C(f,g)所对应的误差计量,该误差计量系根据来自与该检查点C(f,g)相关的输出数据流的像素数据以及对应该搜寻区域的像素SA(p,q)的该些像素数据而得,其中来自与该检查点C(f,g)相关的输出数据流是对应至该区块的像素MB(r,s),p=r+f且q=s+g;
其中当该步骤(c)完成时,该步骤(e)中与所有的该些检查点相对应的该些误差计量亦得以完成。
14.一种半点移动估计装置,其中定义一区块,包括P×Q个像素,并具有起始点C(0,0),并且定义搜寻区域,包括L×J个像素并具有起始点R(0,0),其中L=2+P,J=2+Q,该装置包括:
半点值产生单元,响应由该搜寻区域依续读取的多个全点值,用以一组一组地产生复阵列半点值,各组分别包含四个半点值A、B、C及D;
处理元件阵列单元,包括:
延迟单元阵列,包括:
多个水平延迟单元,包括三列水平延迟单元,每一列水平延迟单元具有第一水平延迟单元以及第二水平延迟单元,各该些水平延迟单元包括输入端以及输出端,其中在每一列水平延迟单元中,该第一水平延迟单元的该输出端是连接该第二水平延迟单元的该输入端;以及
多个垂直延迟单元,包括第一垂直延迟单元以及第二垂直延迟单元,各该些垂直延迟单元具有输入端以及输出端,其中该第一垂直延迟单元的该输入端是连接于该第一列中该第一水平延迟单元的该输入端,该第一垂直延迟单元的该输出端是连接该第二列中该第一水平延迟单元的该输入端以及该第二垂直延迟单元的该输入端,该第二垂直延迟单元的该输出端是连接该第三列中该第一水平延迟单元的该输入端;以及
处理元件阵列,包括三列处理元件,各列处理元件包括第一处理元件、第二处理元件以及第三处理元件,各该些处理元件包括第一输入端、第二输出端、误差计量输出端以及控制端,其中在每一列处理元件中,该第一处理元件的该第二输入端是连接该第一水平延迟单元的该输入端,该第二处理元件的该第二输入端是连接该第一水平延迟单元的该输出端,该第三处理元件的该第二输入端是连接该第二水平延迟单元的该输出端,其中各该些处理元件是于该控制端为致能状态时累计该第一输入端的参考数据与该第二输入端的像素数据之间的误差计量;
其中每一组四个半点值中,该半点值A是馈入至该处理元件阵列中该第一列及该第三列的该第一处理元件及该第三处理元件的该些第一输入端;该半点值B是馈入至该处理元件阵列中该第一列及该第三列的该第二处理元件的该些第一输入端;该半点值C是馈入至该处理元件阵列中该第二列的该第一处理元件及该第三处理元件的该些第一输入端;且该半点值D是馈入至该处理元件阵列中该第二列的该第二处理元件的该第一输入端。
15.根据权利要求14所述的半点移动估计装置,其中该半点值产生单元包括:
准备延迟单元,用以于依序接收该些全点值时平行地提供该些组四个全点值;以及
半点产生电路,用以一组一组地将该些组四个全点值转换成该些组四个半点值。
16.根据权利要求14所述的半点移动估计装置,其中该装置还包括:
存储器读取单元,用以自该起始点R(0,0)至该起始点R(L-1,J-1)一行一行依序地读取对应该搜寻区域中像素R(i,j)的参考数据DR(i,j),并自该起始点C(0,0)至该起始点C(P-1,Q-1)一行一行依序地输出对应该区块中像素C(p,q)的像素数据DC(p,q);
其中该存储器读取单元所读取的该些像素数据DC(p,q)是送至该第一列中该水平延迟单元的该输入端,且该存储器读取单元读取的该些参考数据DR(i,j)是送至该半点值产生单元。
CNA2005101204384A 2004-11-10 2005-11-10 使用二维处理元件阵列的移动估计装置及其方法 Pending CN1774071A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/984,935 2004-11-10
US10/984,935 US20060098735A1 (en) 2004-11-10 2004-11-10 Apparatus for motion estimation using a two-dimensional processing element array and method therefor

Publications (1)

Publication Number Publication Date
CN1774071A true CN1774071A (zh) 2006-05-17

Family

ID=36316305

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005101204384A Pending CN1774071A (zh) 2004-11-10 2005-11-10 使用二维处理元件阵列的移动估计装置及其方法

Country Status (3)

Country Link
US (1) US20060098735A1 (zh)
CN (1) CN1774071A (zh)
TW (1) TWI283132B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100573026B1 (ko) * 2004-09-13 2006-04-24 한국기계연구원 전자식 무단자동변속기의 제어방법
US20060188039A1 (en) * 2005-02-18 2006-08-24 Wahl Mark A Method and apparatus for performing an n-dimensional gradient search
US8072874B2 (en) * 2007-09-11 2011-12-06 The Directv Group, Inc. Method and system for switching to an engineering signal processing system from a production signal processing system
US8296662B2 (en) * 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
US20080225948A1 (en) * 2007-03-13 2008-09-18 National Tsing Hua University Method of Data Reuse for Motion Estimation
US8488676B2 (en) * 2007-05-14 2013-07-16 Himax Technologies Limited Motion estimation method
US9313457B2 (en) 2007-09-11 2016-04-12 The Directv Group, Inc. Method and system for monitoring a receiving circuit module and controlling switching to a back-up receiving circuit module at a local collection facility from a remote facility
US9300412B2 (en) * 2007-09-11 2016-03-29 The Directv Group, Inc. Method and system for operating a receiving circuit for multiple types of input channel signals
US8356321B2 (en) 2007-09-11 2013-01-15 The Directv Group, Inc. Method and system for monitoring and controlling receiving circuit modules at a local collection facility from a remote facility
US8184696B1 (en) * 2007-09-11 2012-05-22 Xilinx, Inc. Method and apparatus for an adaptive systolic array structure
US8170069B2 (en) * 2007-09-11 2012-05-01 The Directv Group, Inc. Method and system for processing signals from a local collection facility at a signal processing facility
US9756290B2 (en) * 2007-09-11 2017-09-05 The Directv Group, Inc. Method and system for communicating between a local collection facility and a remote facility
US8973058B2 (en) 2007-09-11 2015-03-03 The Directv Group, Inc. Method and system for monitoring and simultaneously displaying a plurality of signal channels in a communication system
US8988986B2 (en) * 2007-09-12 2015-03-24 The Directv Group, Inc. Method and system for controlling a back-up multiplexer in a local collection facility from a remote facility
US7861270B2 (en) 2007-09-12 2010-12-28 The Directv Group, Inc. Method and system for controlling a back-up receiver and encoder in a local collection facility from a remote facility
US8724635B2 (en) * 2007-09-12 2014-05-13 The Directv Group, Inc. Method and system for controlling a back-up network adapter in a local collection facility from a remote facility
US8479234B2 (en) 2007-09-12 2013-07-02 The Directv Group, Inc. Method and system for monitoring and controlling a local collection facility from a remote facility using an asynchronous transfer mode (ATM) network
US9037074B2 (en) * 2007-10-30 2015-05-19 The Directv Group, Inc. Method and system for monitoring and controlling a local collection facility from a remote facility through an IP network
US9049354B2 (en) * 2007-10-30 2015-06-02 The Directv Group, Inc. Method and system for monitoring and controlling a back-up receiver in local collection facility from a remote facility using an IP network
US8077706B2 (en) * 2007-10-31 2011-12-13 The Directv Group, Inc. Method and system for controlling redundancy of individual components of a remote facility system
US9049037B2 (en) 2007-10-31 2015-06-02 The Directv Group, Inc. Method and system for monitoring and encoding signals in a local facility and communicating the signals between a local collection facility and a remote facility using an IP network
US9762973B2 (en) 2008-11-04 2017-09-12 The Directv Group, Inc. Method and system for operating a receiving circuit module to encode a channel signal into multiple encoding formats
CN101836454B (zh) * 2008-12-03 2012-08-22 联发科技股份有限公司 对有序熵切片执行平行cabac码处理的方法及装置
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
TWI564843B (zh) * 2009-07-01 2017-01-01 晨星半導體股份有限公司 移動估測方法及移動估測裝置
US9831971B1 (en) 2011-04-05 2017-11-28 The Directv Group, Inc. Method and system for operating a communication system encoded into multiple independently communicated encoding formats
EP3794880A1 (en) * 2018-06-20 2021-03-24 Sony Corporation Infrastructure equipment, communications device and methods
CN115004703A (zh) * 2020-02-13 2022-09-02 谷歌有限责任公司 图像和视频压缩的帧内预测

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987178A (en) * 1996-02-22 1999-11-16 Lucent Technologies, Inc. Apparatus and method for a programmable video motion estimator
TW376659B (en) * 1998-05-21 1999-12-11 Nat Science Council Motion estimator using 3-step hierarchical search block-matching algorithm
KR20010045766A (ko) * 1999-11-08 2001-06-05 오길록 상태천이도를 이용하여 제어부를 구현한 움직임 추정 장치

Also Published As

Publication number Publication date
US20060098735A1 (en) 2006-05-11
TWI283132B (en) 2007-06-21
TW200616462A (en) 2006-05-16

Similar Documents

Publication Publication Date Title
CN1774071A (zh) 使用二维处理元件阵列的移动估计装置及其方法
CN100394799C (zh) 降低位精度的用于子像素运动估计的方法和设备
CN1149496C (zh) 自适应视频信号运算处理装置
CN1178464C (zh) 运动矢量高速测算装置和运动矢量测算方法
CN1238798C (zh) 在运动估计或补偿期间使用近似双立方过滤器的方法和系统
CN1671209A (zh) 运动图像编码装置
CN1806447A (zh) 图像编码装置、图像解码装置、图像编码方法、图像解码方法、图像编码程序、图像解码程序、记录图像编码程序的记录媒体、记录图像解码程序的记录媒体
CN1662068A (zh) 动态图像编码装置及动态图像处理装置
US8879636B2 (en) Adaptive video encoding apparatus and methods
CN1685369A (zh) 视频编码的低复杂性和统一标准的变换
CN1191513C (zh) 显示驱动器,备有这种显示驱动器的显示装置及电子设备
CN1109243A (zh) 运动矢量检测装置和方法
CN1922888A (zh) 图像编码方法、图像解码方法、图像编码装置、图像解码装置、图像编码程序和图像解码程序
CN1520188A (zh) 帧间预测编码、译码装置
CN1455349A (zh) 在运动估计与补偿中的次像素插值
CN1700299A (zh) 图像合成输出装置、方法、程序和记录媒体及其显示装置和移动通信器械
CN1197082C (zh) 使用存储器的方法、两维数据存取存储器以及操作处理设备
Wang et al. A fast algorithm and its VLSI architecture for fractional motion estimation for H. 264/MPEG-4 AVC video coding
CN1256849C (zh) 1/4像素精度插值的方法和装置
CN1240225C (zh) 图像编码装置以及图像编码方法
CN1506971A (zh) 半导体器件、图像数据处理装置和方法
CN1929027A (zh) 半导体存储器设备及其控制方法和半导体集成电路系统
CN1495603A (zh) 用操作指令编码的计算机可读介质
CN1021004C (zh) 在剩余数系统中用于编码和译码数据的方法和装置
CN1551635A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication