專利名稱::在運動估算系統(tǒng)中以矩陣陣列處理數(shù)據(jù)的方法
技術領域:
:本發(fā)明涉及在運動估算系統(tǒng)中以矩陣陣列處理數(shù)據(jù)的方法。本發(fā)明的方法尤其適用于使用運動補償方法的電視圖像編碼器。本申請同專利申請“運動估算的方法和設備(Methodanddeviceformotionestimation)”聯(lián)合申請。該專利申請涉及用矩陣陣列對幾個塊并行處理。很多圖像壓縮系統(tǒng)是以象素塊為基礎進行處理的。在MPEG2(“MotionPictureExpertGroup”)中,圖像被分成8×8的象素塊,4個塊組成一個16×16象素的宏塊,這些塊或宏塊進行各種處理操作,以減少圖像之間和一幅圖像內(nèi)的冗余度,所用處理操作之一是運動估算。這種方法在于根據(jù)前面圖像或將來圖像估算部分當前圖像的移動。用這種方法,確定定義移動的一個或多個運動矢量,這些運動矢量可以從前面或將來的圖像中得到當前圖像的預測。則在預測圖像和當前圖像之間的差被確定,正是該差被用在后面壓縮中。通常,運動矢量用于稱為“inter幀間”和“bidirectional雙向”圖像中,亦可用于稱為“intra幀內(nèi)”圖像中,以減少任何傳輸錯誤的影響。運動估算通常對每個宏塊實現(xiàn),為代替前面圖像,亦可以用存貯在編碼器中的參考圖像。這個圖像對應于由解碼器解碼的圖像(亦就是說一圖像要考慮由于壓縮引起的信息損失)。一種在參考圖像中確定“最佳”宏塊的技術在于把當前宏塊同參考圖像的每個宏塊比較。誤差函數(shù)Err用作比較標準,它計算在參考圖像中每個宏塊的可能位置。函數(shù)Err值最小的位置將確定移動矢量,后者能具有各種精度,這取決于可能的計算容量及為運動矢量編碼保留的通帶。部分象素的精度通過象素間插值實現(xiàn),如果運動矢量在幅度上被限制,適當尺寸的搜尋窗口,圍繞當前宏塊定義的位置而安置。運動矢量的計算需要大的計算量,這種計算量隨著要求精度、圖像分辨率及頻率等的增加而增加。傳統(tǒng)使用的誤差函數(shù)為Err=(m,n)=ΣiΣjD(a(i,j),b(i+m,j+n))]]>這里i和j表示宏塊內(nèi)位置,m,n表示運動矢量的坐標,而a和b分別表示當前宏塊和窗口圖像或搜尋圖像的移動宏塊的象素亮度值。函數(shù)D可為例如D(x,y)=|x-y|。運動估算處理器和基于串列陣列(systolicarrays)的協(xié)處理器在湯姆森消費電子有限公司(ThomsonconsumerElectronics)于1994年8月19日申請的法國專利申請9410158中敘述。串列陣列是一種電路,這種電路估算當前象素塊和過去或將來圖像搜尋窗口的同樣尺寸的塊之間象差。串列陣列具有存貯元件以存貯當前塊,這些當前塊同參考窗口中同樣尺寸的塊進行比較。參考窗口的塊以象素條帶的形式被引入串列陣列,再逐列傳送進陣列。協(xié)處理器的不同串列陣列可以以不同方式工作,尤其是能形成串連的串列陣列,以處理不同的當前塊。本發(fā)明的目的是優(yōu)化串列陣列的數(shù)據(jù)饋送。本發(fā)明的主題是在運動估算系統(tǒng)中以矩陣陣列處理數(shù)據(jù)的方法,其特點在于每個陣列對當前圖像的象素塊進行象差計算;至少串連安排2個陣列對所說當前圖像的至少2個相鄰塊進行計算;對應于所有這些塊的參考窗口以象素條帶引入到所說的第一陣列并且在所說串連陣列中從一個陣列傳送到另一個陣列;而對陣列中塊的分配和引入到陣列中的條帶的方向是使引入到陣列中條帶的最后一部分對應于分配給第一陣列的塊的部分窗口。根據(jù)一特定的實施方案,參考窗口大約位于當前塊位置的中央,因此,2個相鄰的窗口是由一個塊移位得到的。根據(jù)一特定的實施例,不同的窗口具有相同的尺寸,對陣列中塊的分配和引入到陣列中條帶的方向是使由不同陣列進行象差計算的第一個結果同時得到。根據(jù)一特定的實施例,第一塊和第二塊是水平相鄰的,它們分別通過以此次序串連排列的第一陣列和第二陣列被處理。從第一陣列開始引入象素條帶采用的方向是使同第二塊相聯(lián)系的窗口的部分條帶首先被引入。根據(jù)一特定的實施例,當對應于參考窗口部分的象素條帶末端一般不被處理給定塊的特定陣列考慮時,還是要考慮從對應于所說窗口部件的數(shù)據(jù)中得到的計算結果,以便加寬與用所說特定陣列處理的塊有關的參考窗口。本發(fā)明的其它特點及優(yōu)點將通過由附圖示出的具體但非限定性實施例進行說明,附圖中圖1表示運動估算處理器的功能圖;圖2a和圖2b簡要表示本實施例所用的比較方法;圖3表示用于運動矢量計算的串列陣列的功能圖;圖4表示了圖3的串列陣列的稱為“S”單元的功能圖;圖5示出非交錯工作方式的簡化串列陣列的功能圖;圖6示出交錯工作方式的簡化串列陣列的功能圖;圖7表示第一種變化方案的協(xié)處理器功能圖;圖8表示第二種變化方案的協(xié)處理器功能圖;圖9表示對應于兩個相鄰當前塊的2個參考窗口的排列;圖10表示按照第一例子,2個串連串列陣列的數(shù)據(jù)的饋送;圖11表示本發(fā)明第一實施例中2個串連串列陣列的數(shù)據(jù)的饋送。圖12表示本發(fā)明第二實施例中2個串連串列陣列的數(shù)據(jù)的饋送。首先說明實現(xiàn)本發(fā)明的運動估算處理器的一個例子。特別強調(diào)協(xié)處理器的描述。該協(xié)處理器是實現(xiàn)有關每個運動矢量的誤差計算的元件。關于MPEG標準的圖像壓縮中使用的運動矢量信息參考“信息技術,運動圖像和相關音頻的分類編碼,建議H.262國際標準化組織/國際電工委員會13818-2(視頻)委員會草案1993年11月”(Informationtechnology,Genericcodingofmovingpicturesandassociatedaudio,RecommendationH.262ISO/IEC13818-2(Video)CommitteeDraftofNovember1993)。運動估算處理器可以計算各種類型運動矢量,這取決于MPEG標準的要求用于一些幀或圖像的矢量、從前一幅圖像到當前圖像的矢量,或從未來的圖像到當前圖像的矢量(分別稱“前向矢量(forwardvectors)”和“后向矢量(backwardvectors)”)等。其次,為了清楚起見,取從前一幅圖像到當前圖像(前矢量)的矢量例子。當然,本發(fā)明并不限于所提供的實施方案的例子。圖1功能性地說明了運動估算處理器101。處理器101包括一個RISC控制器102(RISC為“精簡指令集計算機”),串列陣列協(xié)處理器103,3個獨立的用來裝入圖像的輸入端口104、105、106,一個用來發(fā)送運動矢量的輸出端口107以及本地RAM和本地ROM(分別參見108和109)。在有幾個獨立輸入端口的情況下,使它可能對許多獨立視頻源工作。根據(jù)不同的實施方案,每個輸入端口備有子采樣電路,以實現(xiàn)分級運動估算。所涉及到各種子組件通過數(shù)據(jù)總線111通信,其中包括連到DRAM外部存貯器110。存貯器管理單元(UGM)112操縱本地存貯器間的數(shù)據(jù)流。對應的圖像(參考圖像或當前圖像)數(shù)據(jù)被傳送到動態(tài)存貯器(DRAM)110。然后它們被讀出,以便在適當時候提供給協(xié)處理器103。由協(xié)處理器103計算的運動矢量經(jīng)過緩沖存貯器(MVBUFF)114送到動態(tài)存貯器110。在適當時候,這些矢量被讀出,并通過輸出端口107傳送。處理器101還裝備有微處理器接口115,用于利用下載碼和計算參數(shù)給RISC控制器102編程和配置。存貯在動態(tài)存貯器110中的運動矢量亦可以通過接口115訪問。單元(MAX-AVR)113為每幅圖像計算平均運動矢量和最大運動矢量。根據(jù)本例,RISC控制器102是包含62個寄存器和64字數(shù)據(jù)存貯器的19位處理器??刂破?02的角色是處理來自處理器101的各個單元的請求,并在適當時候激活它們。RISC控制器102連到本地RAM108和本地ROM109。在ROM中包含有公用子程序。協(xié)處理器103包括幾個并行或串行工作的串列陣列,這取決于編程的配置,下文,我們首先說明單個串列陣列的工作。根據(jù)本例,這將為協(xié)處理器103的操作提供更好的了解。這里協(xié)處理器對8個陣列進行混合處理。圖2a說明在串列陣列中信息流的最簡單的情況。這陣列的基本功能是把當前象素塊同參考窗口的內(nèi)容比較。當前塊存貯在串列陣列201中。參考窗口以條帶為單位傳到陣列中。對每個可能位置,計算誤差函數(shù)Err。部件202根據(jù)從搜尋的窗口中抽取不同塊中同一當前塊的誤差函數(shù)的各種值,確定最適當?shù)氖噶浚摬考⒃谝院笞鞲敿毜臄⑹?。圖2b說明用來確定傳送給串列陣列的條帶的方法,每個條帶有對應于一定數(shù)目陣列行的一些象素行(本例中的行數(shù)為4)。第一條帶包含參考窗口中起始4行。當?shù)谝粭l帶全部處理完時,繼續(xù)處理下一個條帶,下一條帶包括第一條帶的最后3行,以及緊跟著第一條帶的一行。因此,每個條帶相對于前面的條帶位移一行。每個條帶逐列被傳送到串列陣列。因此,對于與每個條帶有同樣的行數(shù)的當前塊,同同樣尺寸的每個條帶的所有塊比較。最后,當前塊完成同同樣尺寸的參考窗口的所有塊的比較。同樣多的誤差函數(shù)值將完成計算,并傳送到部件202中。應該指出,2個條帶只相差一個象素行,這種允余將在以后利用,以便限制從存貯器10中裝入數(shù)據(jù)。圖3說明了一個4行5列的串列陣列。該陣列包括稱為“S”的單元,緩沖器“B”,加法器“+”,旁通單元(bypasscells)301及最后旁通單元302。S單元執(zhí)行|a-b|計算,其中a和b分別為當前塊的象素值和參考窗口的象素值。同一行的每個S單元的輸出通過緩沖器B連到下一個S單元的輸入。每行的第一個S單元的前面也有一個緩沖器B。象素值b在每個周期的同一行中從一個緩沖器傳到下一個緩沖器。當S單位進行它們的計算時,緩沖器保持值b。每個S單元還具有輸出C,以傳送計算出的|a-b|的結果。輸出C同樣連到緩沖器B上。同一列的所有緩沖器B連到同一個加法器(+)。因此,加法器的數(shù)量同列數(shù)相同。加法器的輸出通過串連的3個緩沖器B連到下一個加法器。根據(jù)所選擇的工作方式,確定3個緩沖器中的最后一級緩沖器是否由旁通單元301短路。最后旁通單元或者以不交叉的正常工作方式在每個周期都傳送誤差函數(shù)值,或者以交叉方式每2個周期傳送誤差函數(shù)值。在后面的情況,并有最后旁通單元302的加法器把連續(xù)2個誤差函數(shù)值加起來。根據(jù)不同的實施方案,加法器Add實施為具有3個輸入的保留進位的加法器。圖4詳細表示了S單元的功能。S單元包括輸入401;直接同輸入401相連的輸出402;具有2個輸入端的計算單元403,其中一個輸入端連到輸入401,另一端連到多路器404的輸出端;多路器可以通過選擇線405選擇緩沖器406的內(nèi)容或緩沖器407的內(nèi)容;緩沖器406和407的輸入都連到單元的輸入端401。這兩個緩沖器均包含當前塊的象素值。這些值在適當?shù)臅r候經(jīng)輸入401被裝入,緩沖器的控制電路是常規(guī)電路,在此不作詳細說明。并行存在的兩個緩沖器,可以在單個串列陣列中同時存貯2個當前塊。從而在參考窗口中同一位置上可以實現(xiàn)2個比較。這樣,減少了在動態(tài)存貯器10和協(xié)處理器3之間傳送的數(shù)據(jù)量。而且,在每個S單元中存在2個緩沖器提供稱為交錯工作方式,這樣工作可根據(jù)串列陣列行數(shù)形成2倍的當前塊的行數(shù)。這種操作將在后面討論。計算單元傳送存在在它輸入端的兩個值的差的絕對值。應該指出,在本例范圍內(nèi),參考窗口的象素值b存貯在S單元之間的緩沖器B中。而當前塊或當前一些塊的象素值a存貯在S單元的緩沖器中。還應該指出,通過S單元形成的累加中間結果的功能全部由在每列S單元底部的加法器執(zhí)行。串列陣列的正常工作(非交叉),借助圖5簡圖作解釋。該簡圖表示包含一行8列的串列陣列。這種陣列的工作同具有很多行的陣列的工作完全相似。每個S單元的輸出結果(輸出S)在同一瞬間由加法器提供,在正常操作范圍內(nèi),每列端點的加法器之間僅需要2個緩沖器。在簡圖中,為了清楚起見,第3個緩沖器和旁通單元沒有說明。象素值a已經(jīng)存貯在陣列中。值b在每個周期提供到陣列的輸入端。表1表示經(jīng)過很多周期輸出C的過程。表1在周期0期間,值b0被存貯在陣列輸入端的第一個緩沖器B中(參考501)。只是在周期1上,由第一個S單元傳送的結果被存貯在輸出C0的緩沖器502中。在周期1中,值b0同樣被存貯在第一緩沖器B503。在陣列工作所給瞬間中,對應于參考窗口中所給的當前塊位置(本例中8個象素一行)的所有差的絕對值之和在最后加法器的輸出端重新得到。經(jīng)加法器級附加到參考窗口的第一行中的結果,在表中用粗黑體表示。累加函數(shù)決定在加法器之間的緩沖器504引入的延遲。顯然,為了正確地在加法器級間傳播結果,必須引入2個周期的延遲。這就是在每個加法器之間存在2個緩沖器的原因。每個緩沖器引起一個周期的延遲。另外,開始2個加法器之間的緩沖器504和505抵消了由緩沖器501和502引入的延遲。在第15周期的結尾,當前塊的第一個可能位置的函數(shù)Err的值出現(xiàn)在陣列的輸出506上。應該指出,當工作時,存貯在每個S單元中的2個值,只有一個值被使用。根據(jù)不同的實施方案,在每個S單元中使用單個存貯當前塊的象素值的緩沖器。圖6和表2描述了稱為交叉方式的串列陣列的工作。這種方式可確定包含的行數(shù)目等于串列陣列行數(shù)2倍的當前塊的誤差函數(shù)。這可簡單地通過在每個S單元中附加額外的緩沖器,以及在每個加法器之間附加額外的緩沖器來實現(xiàn)。圖6與圖5相似,所不同的是每對加法器之間插入一個附加緩沖器。而且,每個S單元包括圖4中所示的2個內(nèi)部緩沖器。在偶數(shù)周期中,每個S單元的第一緩沖器的內(nèi)容被傳輸?shù)较鄳挠嬎銌卧?,而第二個緩沖器的內(nèi)容在奇數(shù)周期中使用。雙倍尺寸的當前塊被分成2個垂直重疊的子塊a和a′,第一子塊a存貯在每個S單元的第一緩沖器中,而第二子塊a′存貯在每個S單元的第二緩沖器中。參考窗口的條帶同樣具有雙倍行數(shù)。它包括上子條帶b和下子條帶b′。在偶數(shù)周期中,子條帶b的列在串列陣列的輸入端出現(xiàn)。而子條帶b′的列在奇數(shù)周期出現(xiàn)。表2給出了在每個周期之后輸出C的狀態(tài)。正如前面所述,黑體字符表示中間結果。這些結果將相加以形成對應于子塊的誤差函數(shù)。就非交錯工作而論,在2個子塊和2個子條帶之間交替,導致了在對應所給位置上,總合誤差的加法器輸出端的狀態(tài)和對應于下一級加法器的輸入端中間結果的狀態(tài)之間,出現(xiàn)一個周期的額外延遲。因為這個原因,第三緩沖器被插入到每對加法器之間。圖6的陣列的最后一個加法器601,一方面連到加法器602的第一輸入端,而另一方面連到緩沖器603,而緩沖器的輸出連到加法器602的第二輸入端。對應于子塊的誤差函數(shù)在每個周期被傳送到加法器601的輸出(一旦陣列已經(jīng)正確初始化)。表2顯示相對子塊a′的誤差函數(shù)值比相應子塊a的誤差函數(shù)值延遲一個周期。這兩個值必須加在一起,以得到對應于完整塊a+a′的誤差函數(shù)值。在第一周期期間,對應a的值被存貯在緩沖器603中。在下個周期中,對應于塊a′的值出現(xiàn)在加法器601的輸出端。加法器602實現(xiàn)求和。因此,每2個周期,在加法器602的輸出產(chǎn)生有效的結果。這個稱為交錯工作的方式是非常有利的。因為它可以減少向協(xié)處理器傳送象素條帶的數(shù)據(jù)總線的大小。表2</tables>根據(jù)不同實施方案,串列陣列設計成可處理的當前塊所具有的行數(shù)等于N倍陣列的行數(shù),這里的N是大于2的整數(shù)。在這種情況下,需要很多緩沖器提供給每個S單元。圖7示意地表示按照實施例的第一種變化方案的協(xié)處理器。按照這種變化,這協(xié)處理器包括十個先進先出棧(FIFO棧)701到710,它們并行的聯(lián)到數(shù)據(jù)總線11。每個FIFO數(shù)據(jù)字數(shù)目確定所搜尋窗口的象素的列數(shù)。棧701到710的輸出連到具有10個輸入端和8個輸出端714到721的開關電路712。電路712可以把十個FIFO的任意一個輸出端連到電路的8個輸出端中任意一個上。每個FIFO包括搜尋窗口的所有行。8個FIFO在給定的時刻上連到對應于所處理的搜尋窗口的條帶行的輸出端。2個未被連結的附加FIFO通過數(shù)據(jù)總線將存貯器10中所存的數(shù)據(jù)裝入。所裝入的數(shù)據(jù)對應于搜索窗口的同當前所處理條帶不同的一些行。例如,假設搜尋窗口的8行L1到L8的第一條帶包括在FIFO701到708中。在這8行處理期間,行L9被裝入到FIFO709中。當?shù)谝粋€條帶的處理終止時,存貯在FIFO701中的行L1變?yōu)闊o用。子實上,第二條帶包含行L2到L9。而第二條帶的處理能在空閑時刻開始,因為全部條帶存在于FIFO中?!翱v橫(crossbar)”型開關電路802,在存貯行送到串列陣列722至725之前,重新確定它們的正確順序。在條帶具有8行的情況下,對所述的工作方式,9個FIFO是足夠的。第十個FIFO用于例如當并行處理2個4行條帶的時候。根據(jù)這一方案,每個都具有4行16列的4個串列陣列722到725連到開關電路的輸出端。按照慣例,輸出714表示8行的條帶的上面行,而輸出721表示底下行。第一和第三個陣列(分別為722和724)被連到4個上面輸出端714到717,而第2和第4個陣列(分別為723和725)被連到4個下面的輸出端718到721。上述安排允許用靈活的方式處理不同尺寸的當前塊。實際上,可以用不同方式安排4個陣列8個4×8元素陣列,每個4×16元素陣列處理2個4×8元素的當前塊;4個8×8元素陣列;2個8×16元素陣列;2個16×16元素陣列。在后面情況中,陣列以交叉方式工作,只有8個輸出而不是16個輸出可用。8個輸出端交替地傳送參考窗口的上面條帶和下面條帶的8個象素的各列。顯然,可以使用16個FIFO而不用8個FIFO(不考慮為裝入下一行所需的FIFO)。正象前面說明的那樣,F(xiàn)IFO的深度確定參考窗口的寬度。當用4×8元素陣列工作時,可以成對的組合FIFO,并且以每個FIFO對存貯等于雙倍長度的象素行。此外,圖7以箭頭形式指出根據(jù)工作方式,在每個4×16元素陣列的輸出端分組計算結果的狀態(tài)。圖8說明第二種變化方案。9個FIFO饋送到開關電路802(在參考801下分組)。按照本例的協(xié)處理器包括8個4×8元素的串列陣列803到810。實際上,圖8的2個級聯(lián)的4×8陣列同圖7的4×16陣列相同。當8個4×8的當前塊被并行處理時,圖8較好地說明由每個陣列計算結果的路徑。本例中,2個上面的陣列803和804被采用。陣列803的輸出端的最終結果(表示誤差函數(shù)的值)被直接地傳送到陣列804。根據(jù)是用8個4×8的當前塊還是用4個8×8的當前塊工作,確定在陣列803的輸出端結果是否提供給后面的處理。當用8個4×8象素的當前塊工作時,這個結果對確定由陣列803處理的當前塊的運動矢量將是需要的。根據(jù)這一方案,單元M同每個4×8個元素的陣列相聯(lián)系。每個單元M從與塊有關的所有誤差值中確定由某一陣列輸出的誤差函數(shù)的最小值,并在存貯器中保存相應的運動矢量坐標。其結果經(jīng)專門的數(shù)據(jù)總線811傳送。每個陣列803及804、807及808的輸出連到具有兩個輸入端的多路器的輸入。多路器的輸出連到相關單元M的輸入處。每個相同陣列的輸出亦連到具有2個輸入端的加法器的輸入處,該加法器的另一輸入接收緊接著下面陣列的輸出,對應陣列803、804、807和808,這些輸入分別是陣列805、806、809和810的輸出。當處理器按8個每個為4×8象素的當前塊工作時,每個陣列的輸出直接連到相關單元M。然后,每個單元M獨自確定誤差函數(shù)的最小值和運動矢量,這樣形成8個獨立矢量。通過陣列803、805、807和809輸出的誤差函數(shù)的值并不傳送給跟它們串連的隨后陣列。當處理器按4個8×8象素的塊工作時,經(jīng)過多路器切換,使與在同樣塊上工作的2個重疊的陣列相聯(lián)系的一個單元M接收由這二個陣列計算的誤差函數(shù)值的和。例如,與陣列803相聯(lián)系的單元M,根據(jù)在陣列803和805中處理的8×8塊的誤差函數(shù)值,進行它的計算。這產(chǎn)生單個矢量。正如前述的情況一樣,陣列的第一列引入的誤差函數(shù)值并不傳送給第2列。當處理器工作在2個8×16象素的塊上時,只是同陣列804和808相聯(lián)系的單元M被使用。4×8陣列對803和804、805和806、807和808和最后的809和810可以認為每對只是形成大小為4×16的連續(xù)陣列。例如,同陣列804相聯(lián)系的加法器,把來自陣列804和806的誤差加起來。由陣列803和805計算的誤差函數(shù)值包括在由陣列804和806計算的誤差函數(shù)值內(nèi),并且,通過分別在陣列803和804、805和806之間聯(lián)結,傳遞給后面的值。在交叉方式的情況下,原理是相同的。簡單的說,一單元或單元M具有2個運動矢量,每個塊一個。圖1的控制器2根據(jù)所選擇的工作方式操縱多路器的切換。圖9說明了當2個當前塊被處理時,2個參考窗口的安排。這些當前塊對應標號1和2,標符X1Min和X1Max定義對應于塊1的參考窗口的橫坐標,而X2Min和X2Max定義對應于塊2的參考窗口的橫坐標。對應于本例中的塊1和2的位置基本上在窗口的中間。顯然,2個窗口共享在橫坐標X2Min和X1Max之間的全部。串列協(xié)處理器提供一種處理,這種處理對2個塊1和2的計算,只要求位于橫坐標X1Min和X2Max之間的象素通過。正如早已說明過的那樣,串連的2個串列陣列(例如2個陣列803和804)能處理2個單獨塊。當象素數(shù)據(jù)直接從一個陣列傳到下一陣列時,由第一個陣列計算的誤差函數(shù)值并不簡單地傳送到下一個陣列。分別同第一和第二陣列相聯(lián)系的2個單元M,各自重新存貯對應于2個陣列中每一個的誤差函數(shù)值。圖10說明了把象素數(shù)據(jù)安排和引入到串連的兩個串列陣列中的第一個例子。圖中示出,上面的象素條帶位于橫坐標X1Min和X2Max之間。標符A和B表示了在2個參考窗口中同當前塊相對應的第一塊的位置,并說明數(shù)據(jù)被引入到陣列中的方式。很自然,由第一串列陣列處理塊1(例如陣列803)和用第二陣列處理塊2(例如陣列804)。因此,這種安排符合在當前圖像中塊1和2的自然安排。而且,當2個陣列對以雙倍塊1或2尺寸的塊串連工作時,這種安排是很自然的。很明顯,這樣安排對下面描述的及圖11所說明的本發(fā)明方法不利。在表1中可以看到,對8個象素長度的陣列,第一參考塊的最后一列所進行的計算只在周期15實現(xiàn)。如果考慮圖10的安排,關于塊A和塊1的計算在周期15之后完成,當整個塊B已通過第一陣列時,對應于塊2和B的計算僅在周期17開始。因此,可以看到,來自第一陣列的第一個有效結果(相當于塊A)不可能同時提供作為來自第二陣列的第一個有效結果(相當于塊B)。這個要求對來自2個陣列的每個結果交錯管理,以使系統(tǒng)變得更加復雜。而且,條帶必需進入陣列,直到圖10的塊C全部到第二陣列內(nèi)。這意味著為了處理全部條帶,需要2×(X2Max-X1Min+X2Min-X1Min)個周期。當塊C進入第二個陣列的同時,第一陣列將進行無效的計算。相反,在等待塊B象素的第一列通過第一陣列時,第二陣列將進行無效的計算。根據(jù)不同實施例,通過連續(xù)地處理一幅圖像的所有條帶,一個條帶接一個條帶插入到串列陣列不會留下空隙,使這個缺點降至最小程度。圖11說明了按照本發(fā)明的方法的一個具體例子。兩個塊1和2是以這樣方式存貯的,即它們的安排同當前圖像中的安排相反。在這種情況下,塊2存貯在第一陣列中,而塊1存貯在下一個陣列中。因此,當塊B通過第一陣列被處理的同時,塊A通過第二陣列處理。在同一時間兩個塊同一條帶的結果可以并行得到。只要塊A的象素的第一列沒有到達第二陣列,2個陣列進行的計算是無用的(至少前面條帶的計算尚未完成)。而且,因為只用第一陣列處理塊C,所以并不需要等待塊C完全通過第一陣列。因此,考慮到連續(xù)引入條帶時,或者處理每個條帶,或者處理每幅圖像,可節(jié)省對應一個完整塊的處理時間(16個周期)。根據(jù)本發(fā)明的另一實施例,通過第一陣列傳送的結果還涉及象素塊A。這引起有關塊2位置參考窗口的不對稱。就不對稱來說是不麻煩的(因為,所確定的運動矢量可以沒有相等幅度的最大負和正分量),這個改變加寬了參考場而不增加整體計算時間。這個改變正好可用在條帶的開始以及用在條帶的結尾。然而,在這種情況下,丟失了同時能得到2個塊結果的優(yōu)點。應該指出,對圖10中安排的塊1和塊2倒向等于在圖10的安排中采用反向的象素條帶。也就是說,從橫坐標X2Max象素開始,在橫坐標X1Min象素終止。在這種情況下,在每個當前塊1和2中的象素被反向。該實施方案由圖12來說明。本發(fā)明并不限于所說的串列陣列的例子。但同樣地可用于特別是在運動估算方面的其它類型陣列中,。另外,還能夠串連放置2個以上的陣列。權利要求1.一種在運動估算系統(tǒng)中以矩陣陣列處理數(shù)據(jù)的方法。其特征在于每個陣列(803,804)對當前圖像的象素塊(1,2)進行象差(Err)計算;至少串連安排2個陣列(803,804)對所說當前圖像的至少2個相鄰塊(1,2)進行計算;對應于所有這些塊的參考窗口以象素條帶引入到所說的第一陣列(803)并且在所說串連陣列中從一個陣列傳送到另一陣列;而對陣列中塊的分配和引入到陣列中的條帶的方向是使引入到陣列中條帶的最后一部分(相應A的C)對應于分配給第一陣列(803)的塊(相應1的2)的部分窗口。2.根據(jù)權利要求1的方法,其特征在于,參考窗口大約位于當前塊位置的中央,因此,2個相鄰塊的窗口是由一個塊移位得到的。3.根據(jù)權利要求2的方法,其特征在于,不同的窗口具有相同的尺寸,對陣列中塊的分配和引入到陣列中的條帶的方向是使由不同陣列進行的象差計算的第一個結果同時得到。4.根據(jù)權利要求2至3之一的方法,其特征在于第一塊(1)和第二塊(2)是水平相鄰的,它們分別通過以此次序串連排列的第一陣列(803)和第二陣列(804)被處理;從第一陣列開始引入象素條帶采用的方向是使同第二塊(2)相聯(lián)系的窗口的部分條帶首先被引入。5.根據(jù)前面的權利要求之一的方法,其特征在于,當對應于參考窗口部分的象素條帶末端一般不需處理給定塊的特定陣列考慮時,還是要考慮從對應于所說窗口部分的數(shù)據(jù)中得到的計算結果,以便加寬一般與用所說特定陣列處理的塊有關的參考窗口。全文摘要一種在運動估算系統(tǒng)中以矩陣陣列處理數(shù)據(jù)的方法,其特征是每個陣列對當前圖像的象素塊進行象差(Err)計算;至少串連安排2個陣列對所說當前圖像的至少2個相鄰塊進行計算;所有這些塊的參考窗口以象素條帶引入到第一個陣列并且在該串連陣列中傳遞;而對陣列中塊的分配和引入到陣列中的條帶的方向是使引入到陣列中條帶的最后一部分(相應A的C)相應于分配給第一個陣列的塊(相應1的2)的部分窗口。本發(fā)明適用于圖像壓縮領域。文檔編號G06T7/20GK1156384SQ96121870公開日1997年8月6日申請日期1996年12月6日優(yōu)先權日1995年12月6日發(fā)明者阿蘭·皮爾遜,莫漢邁德·道蒂申請人:湯姆森多媒體公司