專利名稱:用于圖像相關性最小失真計算的自適應盡快退出技術的制作方法
背 景圖像壓縮技術能夠減少在視頻應用中需要傳輸的數據量。圖像壓縮經常是通過確定需要保持相同的圖像部分來進行的?!斑\動估計”技術常用于各種視頻編碼的方法。
運動估計試圖找到在屬于相同幀N的源塊和搜索區(qū)域之間的最佳匹配。搜索區(qū)域可以是相同的幀N中,或者可以是臨時置換幀N-k中的搜索區(qū)域。
這些技術在計算上是嚴密的。
附圖簡述現在將結合附圖詳細地描述本發(fā)明的各個方面,附圖包括
圖1顯示了相互比較的源塊和搜索塊;圖2顯示了用于測量失真的基本累加單元;圖3a和3b顯示了在多級SAD單元之間計算的不同劃分方法;圖4顯示了在盡快退出策略計算和實際總計算之間的折衷權衡;圖5顯示了盡快退出策略的流程圖;圖6a顯示了利用盡快退出標志的盡快退出;圖6b顯示了使用硬件狀態(tài)寄存器的盡快退出;圖7顯示了自適應盡快退出策略操作的流程圖。
詳細描述經常是通過計算絕對差值和或“SAD”來進行運動估計的。運動估計可以在許多不同應用中使用,它可以包括但不局限于,使用視頻的蜂窩電話,視頻攝像機,視頻加速器,或其它這類器件。這類器件能夠產生視頻信號作為輸出。SAD是常用于識別在源塊和搜索區(qū)域搜索塊中多個塊之間最小失真的計算方法。因此是這些塊之間的最佳匹配。一種表示方法是SAD=Σi=0N-1Σj=0n-1|a(i,j)-b(i,j)|,N=2,4,8,16,32,64]]>
從概念上說,該方法是將第一幀或源塊(N)劃分成M*N源塊100的分量部分。這些分量部分與第二幀(N-K)102比較。這些幀能夠被臨時置換,在這種情況下,K≠0。每個N-K幀102是(M+2m1)*(N+2n1)的區(qū)域。在圖1中的區(qū)域中心顯示了源塊100。能匹配的圖像部分可以通過用失真測量對每一圖像幀的各個部分與其它圖像幀進行相關來檢測。壓縮方案可使用這種檢測方法來壓縮數據,從而可以發(fā)送較少的關于圖像的信息。
這種器件也可以是通用DSP的一部分。預期這類器件可以用于視頻便攜式攝像機,電話會議,PC視頻卡,和HDTV。此外,也預期通用DSP也可在與其它采用數字信號處理(例如,用于移動電話的語音處理,語音識別,和其它應用)的技術結合一起使用。
整體失真檢測處理的速度能夠提高。一種方法是使用允許每個SAD器件在一個周期中進行更多操作的硬件。然而,這需要較昂貴的硬件。
另一種方法是通過增加另外的SAD器件來提高有效像素的吞吐量。然而,這也增加了成本,因為這需要更多的SAD器件。
更快的搜索算法試圖更有效地使用現有的硬件。
塊SAD進行了源組和“搜索組”的比較。源組和搜索組在整個圖像中移動,使得SAD操作能計算兩組之間的重疊。在源組中的每個塊將與每個搜索區(qū)域中的多個塊相比較。
典型性的SAD單元是遠行在兩個16×16的單元上,使得那些單元能相互覆蓋。該覆蓋過程計算了16*16=256個差值。然后將這些差值累加,表示出總的失真。
SAD需要一些基本運算。必須計算出源Xij和搜索Yij之間的差值。計算出絕對值|Xij-Yij|。最后,累加這些數值,SAD=Σi=0N-1Σj=0n-1|Xij-Yij|]]>。
基本累加結構如圖2所示。算術邏輯單元200接收來自與其相連接的數據總線198,199的Xij和Yij,并計算Xij-Yij。輸出201被反相器202反相。反相的輸出和原始的輸出都輸入多路復用器204,它根據符號位來選擇一個數值。第二算術邏輯單元206組合這些數值,以產生絕對值。最終的值存儲于累加寄存器208。這樣有效地形成了減法,絕對值,累加的系統,正如圖2所示。
圖2顯示了單個SAD計算單元。正如以上所指出的,多級計算單元能夠用于提高吞吐量。如果增加計算單元的數量,在理論上說,也就增加每個周期的像素吞吐量。
然而,本發(fā)明者注意到,像素吞吐量的增加不一定與單元的數量有著線性的關系。事實上,幾乎每一幀都與它相鄰的一幀有關。此外,任何圖像的不同部分都經常與該圖像的其它部分有關。壓縮的效率可以根據圖像的特性。本申請允許以不同模式使用多級SAD器件,這取決于壓縮的效率。
本申請采用圖3A和3B所示的結構。在圖3A和3B中都使用了相同的連接,但是計算可以不同方法來劃分。
圖3A顯示了每個SAD器件300和302,這是按照完整的SAD而配置。各個SAD接收不同的塊,并提供N塊的SAD的計算。因此,單元301能有效地一個像素一個像素地計算16*16參考和16*16源之間的關系。單元2,302計算16*16源和16*16搜索之間像素與像素的最終差值。圖3B顯示了另一種方法。在該方法中,把每個單個的SAD300,302配置成執(zhí)行部分單個塊SAD的計算。N個計算單元中的每一個提供了1/N的輸出。這“部分SAD”操作是指8位減法絕對累加單元中的每個已經計算了配置給該單元的全部SAD計算的1/N。
應該如同這里所討論的根據前面的結果來確定整個系統是全部的還是部分的。這樣的輪換就能減少所需進行計算的數量。
用于確定是全部還是部分的一種方法是假定臨時封閉的圖像具有相關性的特征。第一周期可以使用完整的SAD模式來計算,而第二周期可以使用部分的SAD模式來計算。選擇工作較快的周期,并設置該SAD的模式??梢悦块g隔X個周期重復這樣的計算,在X個周期后就不再假設有局部臨時相關性。這可以邏輯單元來完成,它執(zhí)行圖7所示的流程,正如以下所討論的。
吞吐量也可以采用以下討論的“盡快退出”技術來增加。16*16元素的完整SAD計算可以寫成為|p1r-p1s|+|p2r-p2s|+...|p256r-p256s|......(1)。如果這些計算全都實際進行的話,則計算可能就用了256/N周期,其中N是SAD單元的數量。因而,希望能盡可能快地停止計算。測試計算的中間結果。這些中間結果可用于確定是否已經確定有足夠的信息去發(fā)現最小失真。然而,測試的行為可以消耗周期。
本發(fā)明討論了在這種周期消耗和最小失真確定之間的平衡。圖4說明了利用4個SAD器件對16*16計算的折衷。在圖4中的線400表示在沒有盡快退出時的周期計數。該線是水平的,表示在沒有盡快退出的條件下的周期計數始終是256/4=64。對于盡快退出策略的周期計數如斜線402,404,406和408所示。線404表示每隔16個像素一個測試,線406表示每隔32個像素一個測試(1/8),以及線408表示每隔64個像素一個測試(1/16)。應該注意,當線402-408處于線400的上方時,盡快退出的嘗試已經事實上增加了整個失真的計算時間。線402表示周期的消耗,這時退出測試不需要系統開銷。即,當完成測試時,退出始終是成功的。線402是所要求的目標。為了能達到該目標,所以揭示了自適應盡快退出的方案。
塊I被首先處理,它采用了在現有技術中已知的任何正常策略來發(fā)現最小失真。這可以采用測試模型來完成。以發(fā)現失真,該測試模型可以是真實圖像的一部分。這樣的最小失真可作為基線,并且假定塊I+n具有相同的最小失真,其中n是小的??梢允褂脙蓚€基本參數。
Kexit(N)表示在獲得盡快退出之前對搜索區(qū)域已經預先處理的像素數目。
Aexit(N)表示在對搜索區(qū)域的最后一個盡快退出時間上部分累加器符號位的狀態(tài)。
對于這些塊I+n來說,當失真超過了閾值時,SAD的計算就中斷。這就形成了利用原先已知的有關搜索區(qū)域信息的因果系統。
常規(guī)系統是基于搜索區(qū)域內的圖像特征有可能始終保持共同特征。在各幀之間的時間在1/15秒和1/30秒之間,就可測量系統特性而言,這通常對在那些時間內在某些噪聲底限之上產生最小變化是足夠快的。同樣,也經常存在著能隨著時間而保持類似的臨時特征的圖像區(qū)域。
根據本申請,每個SAD的累加單元可以用值(-最小/n)來裝載,其中“最小”表示在對區(qū)域的塊運動搜索中測量到的最小失真。對每個搜索區(qū)域都可以計算出許多SAD的數值。對區(qū)域計算的第一SAD可指定為“最小”的指定值。未來的SAD與該數值比較,并了解新的“最小”的數值是否已經建立。當累加器改變符號時,就已經達到了最小失真。此外,僅僅使用了現存的SAD的結構對此指明,沒有另外的計算,也因此沒有另外的用于測試的周期。
圖像特性的測試可以用于確定在建立盡快退出之前需要多少累加器作切換。例如,如果源和目標區(qū)域是完全相同的,則所有累加器應該同時或多或少地變化符號位。當發(fā)生這事時,任何一個超過了先前最小測量的運行SAD計算都可以用于指示盡快退出是適合的。
然而,這是假定所有的圖像都是完全相同的。這種假定往往是不能滿足的。在許多情況下,不同SAD單元的多個累加器不是以相同的速率增加的。但是,在累加器之間的不同增加速率可以直接與源和目標塊之間差異本身的空間頻率特性有關,以及也與采樣數據的方法有關。這就需要根據SAD單元所發(fā)生的內容來考慮如何確定盡快退出的更復雜的方法。
一種操作方法是根據與各個分離SAD狀態(tài)相關的概率,這時不是所有的SAD單元都處于相同的狀態(tài)。這種在累加器之間增加速率上的差異與在源和目標塊之間的差異的空間頻率特性有關。由于在臨時相類似幀中這些空間頻率特性也具有相關性,所以來自一幀的信息也可以用于分析后續(xù)的幀。
這可以參考變量對此進行解釋,其中,A1,A2,A3...An可定義為與各分離SAD計算有關的事件。
該事件可以作如下定義事件Ai=SADi≥0,其中,SAD<0,(i≠j)。
這在概念上是指事件Ai可定義為當SAD單元i為正而其它所有SAD單元都為負時所發(fā)生的事件。例如,當累加器以不同的速率增加時就會發(fā)生這樣的事件。這也可以定義為組合的事件,特別是事件Bi,j=Ai∪Aj=SADi≥0 (條件SADj≥0,以及SADk<0,k≠i,j)。
這是指事件Bi,j定義為當Ai存在且Aj為真時為“真”,而所有其它Ak都為假。以事件來定義操作的概念可以擴展到包括所有可能的i,j,和k的組合。對4個SAD單元而言,這就可以產生總共16種組合。對于較大數量的SAD單元而言,就會引起其它數量的組合,以及可能使用更多的量,例如,i,j,k和m或其它等等。
以口頭的方式來描述這種情況,每個事件“B”都定義成大于0的指定累加器的和。每個這樣的組合都定義成概率。對于4個SAD單元而言,就存在著有總共16種可能的累加器狀態(tài)。這些都可以根據它們的受控情況來分組。
第一個無效的概率是P(B|A1∩A2∩A3∩A4)=0這意味著所有累加器都不超過0的情況下,累加器之和大于0的概率為0。
相反的概率也是真的。
P(B|A1∩A2∩A3∩A4)=1這意味著所有累加器都沒有被設置的情況下,所有累加器的和被設置的概率也為1。
除了這些無效的特性之外,存在著14個有效的組合。第一組包括了4種情況,其中1個累加器設置了而其余3個累加器沒有設置P(B|A1∪(A2∩A3∩A4)P(B|A2∪(A1∩A3∩A4)P(B|A3∪(A1∩A2∩A4)P(B|A4∪(A1∩A2∩A3)另一組表示了其中2個累加器設置了而另外2個累加器沒有設置的情況。這些組合可以寫成P(B|A1∩A2)∪(A3∩A4)P(B|A1∩A3)∪(A2∩A4)P(B|A1∩A4)∪(A2∩A3)P(B|A2∩A3)∪(A1∩A4)P(B|A2∩A4)∪(A1∩A3)P(B|A3∩A4)∪(A1∩A2)最后一組表示3個累加器設置了而1個累加器沒有設置的情況。
P(B|A1∩A2∩A3)∪A4)P(B|A2∩A3∩A4)∪A1)P(B|A1∩A3∩A4)∪A2)P(B|A1∩A2∩A4)∪A3)本實施例認可這些組中的每一個,事實上是這些情況中的每一種都表示了圖像中的不同條件。每個組或每種情況都可以采用不同的處理。
本系統采用上述以及參照圖5的流程圖討論的方法進行操作。最終的目的是完成計算,且因此而盡快退出。這如圖5所示,首先在550中確定兩幅圖像,即源圖像和搜索圖像的匹配特性。在沒有任何盡快退出的條件下計算匹配的特性。在555中計算出最小失真,以及在560中找到存在最小失真時的條件。
在560中的條件可以包括在最小失真時存在的分組類型,或在14種可能性中的特定情況。
在570中測試后續(xù)圖像部分。這后續(xù)部分是與測試部分相關的任何部分。由于臨時相關的圖像被假定為相關的圖像,所以這就可以延伸至任何臨時相關的部分。
源圖像和搜索圖像都要測試,且在575中確定最小失真時所發(fā)生的特定分組。隨后,在580中建立盡快退出。
盡快退出,一旦被確定之后,就可以多種不同的方法來執(zhí)行。
圖6a顯示了利用盡快退出或“EE”標志執(zhí)行盡快退出的系統。顯示了N個SAD單元,在本實施例中,N為4。每個SAD單元都包括上述所討論的結構,以及特殊的算術邏輯運算單元,反相器和累加器。
每個累加器的輸出都與安排輸出的組合邏輯單元600相耦合。這適用于執(zhí)行上述提到的組的確認。組合邏輯單元是采用離散邏輯門構成的,例如,以硬件描述語言所定義的。根據所選擇的組用選項來編程該邏輯門。不同的圖像和部分可根據不同的選項來處理。
對于每一個選項,進行狀態(tài)組合的編碼,如,上述討論的組。組合邏輯監(jiān)視著所有SAD單元的累加器。每一個狀態(tài)都輸出到復用器。
當這些累加器達到屬于選擇編碼內的狀態(tài)時,就可產生盡快退出的標志。盡快退出的標志意味著硬件已經確認了適當的“匹配”。這就引起退出的操作。
圖6B顯示了另一種系統,在該系統中,累加器的狀態(tài)由硬件狀態(tài)寄存器600來檢測。狀態(tài)寄存器根據累加器的情況設置成一個特定的狀態(tài)。狀態(tài)寄存器存儲著表示盡快退出的特定條件。當滿足該特定條件時,就建立了盡快退出。
參照圖7全面地討論了自適應盡快退出的使用方法。在700中,視頻幀開始。705表示對幀M和幀M+1作緩沖。710確認塊的歷史模型是否需要更新。這可以采用諸如監(jiān)測自從上一幀更新以來的時間的方法來確定。例如,可以設置x秒作為需要新的更新之前的時間。
如果模型需要更新,則在715中處理過程隨后用0xFF01裝入累加器且設置局部變量N=1。在720中,系統獲得SAD搜索區(qū)域N并使用周期性的退出測試Texit=1/16...,在步驟725中進行退出測試。如果成功的話,就再恢復局部變量Kexit(N)和Aexit(N),其中,Kexit(N)是退出之前的像素,而Aexit(N)是退出之前的累加器1至4的累加。局部變量n也在步驟730中增1。這就建立了局部參數,并繼續(xù)處理過程。
在后續(xù)的周期中,在步驟710中不需要再進行塊歷史的更新,因此控制就轉入步驟735。在該步驟中,讀出原先存儲的Kexit和AEexit。這用作步驟740的新的計數,以設置目標塊的標志。
在步驟745中,建立了對塊N的搜索,在步驟750中,更新了退出和Kexit。N增1。在步驟755中,產生N是否等于397的確認。397是緩沖器中幀的數目,因為在352*288圖像中有16*16個塊,就等于396。然而,這可以根據應用的不同尺寸作調整。
另外,圖像大部分的臨時變量是幾乎不變的。因此,當部分累加器有特定符號位時,它們的狀態(tài)就產生顯著的優(yōu)點。此外,在幀之間的時間通常是1/15秒至1/30秒的數量級。最后,在圖像中的區(qū)域保持著它們的局部特征,因此它們的空間頻率可以具有相關性。
雖然已經揭示了少量的實施例,但是其它修改也是可能的。
權利要求
1.一種方法,其特征在于,包括確定兩個區(qū)域間的最小失真;將關于所述最小失真的值加載到累加元件;將后續(xù)圖像失真的計算結果累加到所述累加元件;以及當所述累加元件達到預定值時,對所述后續(xù)計算退出建立所述最小失真。
2.如權利要求1所述的方法,其特征在于,有多個所述累加元件,且所述加載包括把所述值加載到每個所述累加元件。
3.如權利要求2所述的方法,其特征在于,當所述多個累加元件中的特定累加元件達到所述預定值時,發(fā)生所述建立。
4.如權利要求2所述的方法,其特征在于,當所有的所述多個累加元件達到所述預定值時,發(fā)生所述建立。
5.如權利要求2所述的方法,其特征在于,當單個累加元件達到所述預定值時,發(fā)生所述建立。
6.如權利要求2所述的方法,其特征在于,所述關于所述最小失真的值是失真量,它被多個所述累加元件劃分。
7.如權利要求2所述的方法,其特征在于,進一步包括確定區(qū)域的特征,以及從所述特征確定累加元件的個數,以要求在所述建立之前達到所述預定值。
8.如權利要求7所述的方法,其特征在于,圖像的所述特征指出了相同的圖像,且所述建立所述最小失真取決于來自單個累加器的結果。
9.如權利要求7所述的方法,其特征在于,所述建立包括根據來自多個累加器的結果建立所述盡快退出。
10.如權利要求9所述的方法,其特征在于,所述盡快退出包括確定每個累計器建立某些狀態(tài)的概率,且所述建立取決于所述累加器建立所述某些狀態(tài)。
11.如權利要求6所述的方法,其特征在于,所述預定值是0。
12.一種方法,其特征在于,包括確定兩個圖像區(qū)域間的失真;以及在不為盡快退出方案使用額外的計算周期的情況下,執(zhí)行盡快退出方案。
13.如權利要求12所述的方法,其特征在于,所述盡快退出是通過把值加載到累加器元件并根據所述確定改變所述值而計算的。
14.如權利要求13所述的方法,其特征在于,有多個所述累加器元件,且所述加載包括把所述值加載到每個所述累加器元件。
15.如權利要求14所述的方法,其特征在于,當所述多個累加器元件中的特定累加元件達到預定值時,發(fā)生所述建立。
16.如權利要求14所述的方法,其特征在于,當所有的所述多個累加元件達到所述預定值時,發(fā)生所述建立。
17.如權利要求12所述的方法,其特征在于,所述值和先前的計算中的最小失真有關。
18.如權利要求13所述的方法,其特征在于,進一步包括確定區(qū)域的特征,以及從所述特征確定多個累加元件,以要求在所述建立之前達到所述預定值。
19.如權利要求18所述的方法,其特征在于,圖像的所述特征指出了相同的圖像,且所述建立所述最小失真取決于來自單個累加器的結果。
20.如權利要求15所述的方法,其特征在于,所述值是0。
21.一種確定圖像塊之間的失真的方法,其特征在于,包括確定第一圖像部分和第二圖像部分之間的第一失真,并獲得對盡快退出的計算計數以及某個計算在盡快退出時的狀態(tài);以及在后續(xù)計算中,根據所述計數和所述狀態(tài)這兩者中斷計算。
22.如權利要求21所述的方法,其特征在于,所述失真是通過把值加載到累加器并在所述累加器達到特定值時建立盡快退出而計算的。
23.如權利要求22所述的方法,其特征在于,所述特定值是0。
24.一種處理圖像部分的方法,其特征在于,包括獲得關于第一圖像部分的圖像失真信息;以及通過把有關所述圖像失真信息的值加載到計算元件并在所述值達到預定量時中斷所述計算元件進行的計算,從而用所述圖像失真信息處理第二部分。
25.如權利要求24所述的方法,其特征在于,所述圖像失真信息包括在塊運動搜索中測量的最小失真。
26.如權利要求24所述的方法,其特征在于,所述圖像失真被用于在絕對差值和器件中用累加器計算失真。
27.如權利要求26所述的方法,其特征在于,所述值被載入累加器。
28.如權利要求18所述的方法,其特征在于,所述值包括(-最小/n),其中最小是在先前的周期中獲得的值,n是累加器的個數。
29.如權利要求28所述的方法,其特征在于,所述預定量是0。
30.如權利要求18所述的方法,其特征在于,把所述值(-最小/n)載入所述累加器,其中最小是預期的盡快值,n是累加器的個數,且在累加器達到0時建立盡快退出。
31.如權利要求22所述的方法,其特征在于,所述值代表累加器的符號位。
32.一種方法,其特征在于,包括獲得多個圖像處理器件,它們根據兩幅圖像間的關系實現特定的狀態(tài);根據所述關系累加結果,以及確定是否根據累加的狀態(tài)完成計算。
33.如權利要求32所述的方法,其特征在于,所述圖像處理器件是視頻攝像機的一部分。
34.一種設備,其特征在于,包括計算器件,包括累加元件,它計算和兩個區(qū)域間的最小失真有關的值;緩沖器,存儲和所述最小失真有關的值,并把所述失真載入所述累加器;以及邏輯單元,根據所述累加器件中的值建立最小失真。
35.如權利要求34所述的設備,其特征在于,有多個所述計算器件,所述失真被載入每個所述累加元件。
36.一種設備,其特征在于,包括視頻捕獲器件;多個計算器件,每個包括一個累加元件,它們計算和所述視頻捕獲器件所捕獲到的兩個視頻部分間的最小失真有關的值;緩沖器,存儲和所述最小失真有關的值,并把所述失真載入所述累加器;以及邏輯單元,根據所述累加器件中的值建立最小失真。
37.如權利要求36所述的設備,其特征在于,所述邏輯單元監(jiān)視所述累加元件的符號位。
38.如權利要求36所述的設備,其特征在于,所述邏輯單元監(jiān)視所述累加元件中的值。
39.如權利要求36所述的設備,其特征在于,所述視頻捕獲器件是視頻攝像機。
40.如權利要求38所述的設備,其特征在于,所述邏輯單元監(jiān)視所有所述多個累加元件中的值是否達到所述預定值。
41.如權利要求36所述的設備,其特征在于,把值(-最小/n)載入所述累加器,其中最小是預期的盡快值,n是累加器的個數,且在累加器達到0時建立盡快退出。
全文摘要
一種計算和兩個圖像部分間的失真相關的值的圖像處理器。在先前的計算中檢測該值。這些值隨后在下一個計算周期中被用于檢測盡快退出。該值(被稱為“最小”)被累加器的個數劃分,并且把它的相反數載入累加器中。當累加器達到0時,建立盡快退出。
文檔編號H04N7/26GK1436425SQ01810929
公開日2003年8月13日 申請日期2001年6月6日 優(yōu)先權日2000年6月7日
發(fā)明者B·C·埃爾德瑞琪, J·福瑞德曼 申請人:英特爾公司, 模擬設備股份有限公司