亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

自適應的多維信號序列編碼/解碼方法和裝置的制作方法

文檔序號:7606737閱讀:216來源:國知局
專利名稱:自適應的多維信號序列編碼/解碼方法和裝置的制作方法
技術領域
一個實施例一般地涉及數(shù)據(jù)編碼、存儲、分配和解碼,更特別地(但不是專門地)是涉及利用n維塊匹配方法的n維信號序列編碼、存儲、分配和解碼。
背景技術
視頻信號通常具有大量的信息。因而,視頻信號通常是在被傳輸或存儲之前被壓縮編碼。為了以高效率對視頻信號進行編碼,單位為幀的圖像被分成單位為預定數(shù)目像素的多個塊。對每個塊進行正交變換,把圖像的空間頻率分成多個頻率分量。每個頻率分量作為變換系數(shù)被獲得和被編碼。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,處理信號序列的一個系統(tǒng)包括一個接收信號序列的區(qū)分器或差示器(differentiator),所述信號序列包括一個n維當前幀,所述n維當前幀包括多個當前幀塊和多個n維參考幀,所述多個n維參考幀中的每一幀包括多個參考幀塊;一個存儲所述多個n維參考幀的幀緩沖器;一個塊匹配預測器,其為所述多個當前幀塊中的每一塊識別所述多個參考幀塊中的一個預測塊,并為所述多個當前幀塊中每一塊的相應預測塊確定一個參考位移索引和一個塊預測差值,其中所述參考位移索引用以識別所述參考幀塊內(nèi)的一個點;一個塊編碼器,其對所述多個當前幀塊中每一塊的相應塊預測差值和相應參考位移索引進行編碼,并藉此創(chuàng)建多個編碼塊;和一個序列編碼器,其根據(jù)預定格式把所述多個編碼塊打包在一起。
根據(jù)另一個方面,一個存儲系統(tǒng)包括n維存儲器。該n維存儲器包括一個或多個存儲切片或存儲器分割區(qū)(memory slice),以允許在一個時鐘周期中在每個切片中存儲或取出一個數(shù)據(jù)項;組織一個n維幀內(nèi)的n維數(shù)據(jù)以允許一個既定立方體(cube)內(nèi)的所有數(shù)據(jù)在多個周期中被訪問的裝置,所述立方體可位于該n維幀中的任何地方,其中周期的數(shù)量被確定為該立方體內(nèi)的全部點數(shù)除以存儲切片的數(shù)量;一個尋址轉(zhuǎn)換模塊,其基于n維地址輸入從所述一個或多個存儲切片中訪問數(shù)據(jù);以及一個數(shù)據(jù)多路復用器/多路分離器,以將來自所述一個或多個切片的數(shù)據(jù)流橋接到利用n維數(shù)據(jù)的一個或多個外部處理模塊。
根據(jù)另外一個方面,一種系統(tǒng)包括一個處理陣列,該處理陣列包括一個或多個信號處理單元,以處理n維數(shù)據(jù)輸入;一個或多個數(shù)據(jù)寄存器,其為所述信號處理單元存儲數(shù)據(jù);以及控制所述處理陣列的裝置,其允許一個數(shù)據(jù)元素由所述陣列中一個以上的處理器使用。
根據(jù)另外的一個方面,一種方法包括接收一個n維幀序列,該n維幀序列包含一個原始n維幀;并且以保存所述原始n維幀內(nèi)塊的相鄰關系的順序,來掃描所述n維幀序列,使其成為一個一維的塊序列。
參考附圖和下文的詳細描述,本發(fā)明的其它特征將是明顯的。


雖然本發(fā)明是通過示例來描述的,但其并不限于所附的附圖。附圖中相同的參考標記表示類似的元件。
圖1根據(jù)本發(fā)明的一個實施例示出了一個自適應多維信號序列編碼系統(tǒng)。
圖2根據(jù)本發(fā)明的一個實施例示出了利用線性模型和分段線性模型來擬合R_AC與AC_NORM。
圖3根據(jù)本發(fā)明的一個實施例示出了自適應的速率(rate)查詢表/求值器的結構。
圖4根據(jù)本發(fā)明的一個實施例示出了一個快速ME(運動估計)搜索過程。
圖5根據(jù)本發(fā)明的一個實施例示出了在二維視頻序列情況中鄰居開拓集(neighbor exploit set)的一個示例。
圖6根據(jù)本發(fā)明的一個實施例示出了為確定詳細搜索起點而被求值的點。
圖7根據(jù)本發(fā)明的一個實施例示出了詳細搜索的一個實施例。
圖8根據(jù)本發(fā)明的一個實施例示出了全局搜索的一個實施例。
圖9根據(jù)本發(fā)明的一個實施例示出了利用碎片網(wǎng)格點(fractionalgrid points)上的塊匹配進行編碼的一個實施例圖10根據(jù)本發(fā)明的一個實施例示出了ME搜索過程中利用平均濾波器來計算子像素值。
圖11根據(jù)本發(fā)明的一個實施例示出了一個自適應ME控制結構。
圖12根據(jù)本發(fā)明的一個實施例示出了可調(diào)節(jié)的ME搜索范圍的一個示例。
圖13根據(jù)本發(fā)明的一個實施例示出了MEPU周期調(diào)度器的一個實施例。
圖14根據(jù)本發(fā)明的一個實施例示出了在螺旋搜索情況中的提前終止(early-termination)。
圖15示出了具有用于幀中的塊的固定網(wǎng)格的二維幀以及需要在任意位置的塊存取模式的示例。
圖16示出了N維存儲器結構的一個實施例。
圖17示出了二維存儲器中切片ID的分配,以允許在一個周期中在任何位置存取一個二維塊。
圖18示出了二維存儲器中切片ID分配,以允許在2個周期的猝發(fā)(burst)中在任何位置存取一個二維塊。
圖19示出了多級N維存儲器的一個實施例,其利用SDRAM作為第二級外部記憶裝置(memory storage)。
圖20示出了第二級外部SDRAM中二維幀數(shù)據(jù)的分配,以優(yōu)化二維塊的訪問性能。
圖21示出了一個線性第二級外部存儲器中的一個二維塊的數(shù)據(jù)分配序列。
圖22示出了ME搜索的PSP陣列處理器的一個實施例。
圖23示出了ME搜索算法中通常使用的單處理器螺旋搜索模式。
圖24示出了利用一個3×3陣列的平行螺旋搜索模式的示例。
圖25示出了假定使用的是傳統(tǒng)的線性存儲器,在該3×3陣列中的數(shù)據(jù)存取共享。
圖26示出了假定使用的是二維存儲器,在該3×3陣列中的數(shù)據(jù)存取共享。
圖27根據(jù)本發(fā)明的一個實施例示出了N維信號序列的示例。
圖28根據(jù)本發(fā)明的一個實施例示出了相鄰保留(neighborpreserving)的一種掃描方法。
圖29根據(jù)本發(fā)明的一個實施例示出了二維幀中的一個塊。
圖30根據(jù)本發(fā)明的一個實施例示出了應用到CCD或CMOS圖像傳感器的相鄰保留掃描。
具體實施例方式
在本文的描述中,提供了大量的具體細節(jié),如系統(tǒng)組件和方法的描述,以提供對本發(fā)明的實施例的透徹理解。然而,相關技術領域的技術人員將認識到,如果缺少一個或多個這樣的具體細節(jié),或者利用了其它的系統(tǒng)、方法、組件、材料、部件等等,仍然可以實現(xiàn)本發(fā)明。此外,公知的結構、材料或操作未被詳細地顯示或描述,以免混淆本發(fā)明的特征。
在整個說明書中所提到的“一個實施例”或“實施例”表示結合該實施例描述的一個特定特征、結構或特性將被包括在本發(fā)明的至少一個實施例中。因此,整個說明書中各處出現(xiàn)的短語“在一個實施例中”或“在實施例中”,并不必表示同一個實施例。此外,特定的特征、結構或特性可以任何適當?shù)姆绞奖话谝粋€或多個實施例中。
概述在一個實施例中,描述了一種有效地壓縮多維信號序列的方法和裝置,以在一定的失真限制下降低比特速率。該方法可被用于對一個N維信號序列進行編碼,圖27示出了一些示例。該方法的一個示例性應用是在以傳輸和存儲為目的的視頻編碼中。需注意的是,盡管在下文的多數(shù)描述中,僅將二維視頻信號序列壓縮作為說明性示例而詳細描述,但是本文給出的方法和裝置可擴展到壓縮一個普通的n維信號序列。
N維塊匹配信號序列的編碼圖1示出了一個自適應多維信號序列編碼系統(tǒng)100的一個示例性實施例的方框圖。該系統(tǒng)可被用于壓縮n維信號序列中的一個序列。圖27中的項2704、2705和2706是n維序列的一些示例。該系統(tǒng)的輸入可以是一個n維信號幀(如圖27中的項2701、2702和2703)。一個幀可由n維塊組成。圖29表示二維幀2901中的塊2902的一個示例。如圖1所示,系統(tǒng)100在幀緩沖器102中保存一組解碼幀。目標塊是一個塊或參考幀中多個塊的某種組合。輸入幀101中的每個塊可根據(jù)預定標準與幀緩沖器內(nèi)參考幀中的多個目標塊匹配。
為改進對幀間信號變化的跟蹤,塊尺寸可以是可變的。在一個實施例中,不同的塊尺寸和塊形狀可被用于匹配參考幀中的塊。較大的塊可被用于跟蹤較大對象的移動,而較小的塊可被用于跟蹤較小對象的移動。該塊匹配的操作可在二維視頻編碼情況中的運動估計的一個示例形式中被執(zhí)行。在發(fā)現(xiàn)最佳目標塊之后,當前塊與目標塊之間的差別通過n維系數(shù)去相關轉(zhuǎn)換T104被轉(zhuǎn)換,該轉(zhuǎn)換系數(shù)通過一個可選的量化操作Q105被量化,然后與運動矢量信息一起被編碼。如果要求無損編碼,量化操作Q可被跳過。在無損編碼的情況下,編碼過程是可逆的,即,原始信號序列可由解碼器以準確度100%的進行恢復。由于人眼具有一定的精確度限制,因此在不影響人類感覺的情況下可允許進行一定程度的量化。量化的配置方式應使量化誤差不會被人眼明顯感知。
在一個典型的視頻壓縮系統(tǒng)中,轉(zhuǎn)換T是一個二維離散余弦變換(DCT)(參考文獻[1])。在一些情況下,DCT可產(chǎn)生接近于最優(yōu)的系數(shù)去相關結果。但是,由于計算的復雜性,DCT通常只能處理小的固定塊(MPEG4標準中為8×8,和H.264標準中為4×4)。為了具有較大的塊尺寸和節(jié)省計算時間,在一個實施例中,離散哈達馬變換(DHT)可被用作系數(shù)去相關轉(zhuǎn)換。根據(jù)去相關系數(shù)(參考文獻[2]),與DCT不同的是,DHT可能不是最優(yōu)的。但是,由于DHT只要求加法和減法操作,因此其處理非常大的塊尺寸是可能的,而且與DCT相比復雜性較低。在一個示例性實施例中,系統(tǒng)100允許轉(zhuǎn)換可選的可變塊尺寸,而且可選地,允許為不同的塊尺寸利用不同的轉(zhuǎn)換。例如,DCT可被用于轉(zhuǎn)換較小的塊,而DHT可被用于轉(zhuǎn)換較大的塊。利用可變塊尺寸轉(zhuǎn)換,轉(zhuǎn)換的塊尺寸可與塊匹配大小相同,從而產(chǎn)生比小固定塊尺寸的轉(zhuǎn)換更好的系數(shù)去相關效果。
被編碼的視頻的質(zhì)量是由量化控制的,量化是基于特定的量化參數(shù)(QP)把轉(zhuǎn)換系數(shù)量化為離散級別。QP越大,級別的數(shù)量就越少,因此表示系數(shù)的比特的數(shù)量越少,但這是以降低質(zhì)量為代價的。認真調(diào)節(jié)QP,可對速率-失真進行平衡折衷。在量化操作之后,轉(zhuǎn)換塊中的許多系數(shù)變?yōu)?。為了降低比特速率,通過折線掃描方法(從低頻分量到高頻分量掃描這些系數(shù),或以相反的方向掃描)來掃描量化的轉(zhuǎn)換系數(shù)。該操作把N維系數(shù)轉(zhuǎn)換為一維序列。然后被掃描的一維序列通過游程長度(run-length)編碼106被編碼,其對多個前導零(游程)、非零系數(shù)(級別)值對(pairs)的示例表單中的信息進行編碼。然后該(游程,級別)對可利用熵編碼操作107(如霍夫曼(Huffman)或算術編碼)被編碼,以進一步降低速率。
運動估計(ME)成本函數(shù)在一個示例性實施例中,一個運動估計(ME)模塊103是圖1所示的系統(tǒng)中的一個計算強度模塊。ME塊匹配可以基于對參考幀中當前塊與目標塊之間誤差測量的最小化來進行。誤差測量可以根據(jù)差值能量測量而被指定(例如,這兩塊像素之間的平方誤差之和(SSE)或絕對誤差(SAE)之和,SAE作為ME搜索的最廣泛使用的測量,以節(jié)省計算時間(參考文獻[1]))。利用如SAE或SSE的差值能量測量并不一定產(chǎn)生最小的比特速率。在一個實施例中,一個墑測量可被用作成本函數(shù),引導ME搜索來發(fā)現(xiàn)最佳目標塊。該墑測量可以測量在給定了參考幀的情況下,對當前塊進行編碼所需的信息量。在一個示例性實施例中,可以利用一種引導ME搜索以便為目標塊發(fā)現(xiàn)最小墑的方法。在一個實施例中,該ME成本函數(shù)可表示為J=Rate_T(T(FPD)|QP)+Rate_MV(MV)(1)其中Rate_*()是信號通過它的每個編碼方法如Rate_T、Rate_MV等等的比特數(shù)量;T(FPD)是幀預測差值FPD的變換式;QP是量化參數(shù)。
由于確定Rate_MV()很容易,因此成本函數(shù)J可以通過確定ME搜索過程中的Rate_T(T(FPD)|QP)的近似值而被求值。在一個實施例中,Rate_T()可以表示為Rate_T(T(FPD)|QP)=Rate_T_DC(T_DC{FPD)|QP_dc)+Rate_T_AC(T_AC(FPD)|QP_ac)~=Rate_T_DC(DC{FPD)|QP_dc)+Rate_T_AC(AC_NORM(FPD)|QP_ac)(2)其中T_DC(FPD)是T{FPD)的DC分量;T_AC(FPD)是T(FPD)的AC矩陣;DC(FPD)是FPD塊的DC值;AC_Norm(FPD)是FPD塊的AC矩陣的Norm(范數(shù))值AC_NORM(FPD)=∑ijABS(FPDij-DC(FPD)) (3)墑測量的一種簡單近似值可被表示為J=R_DC(DC(FPD)|QP_dc)+R_AC(AC_NORM(FPD)|QP_ac)+R_MV(MV) (4)其中R_DC()和R_MV()可通過簡單的表查詢而被準確地求值;R_AC()可通過一個預先擬合的表而被近似求值。
R_AC與AC_NORM之間的關系可取決于所用的編碼方法,并且在一個實施例中,可通過線性或分段線性模型進行擬合,如圖2所示。在一個實施例中,利用MPEG4標準,R_AC()的下列近似值可被利用R_AC(AC_NORM|QP_ac)=AC_NORM/(2*QP_ac)(5)
在另一個實施例中,下列線性模型可被利用R_AC(AC_NORM(FPD)|QP_ac)=K*AC_NORM/QP_ac (6)一般地,K可基于FPD的局部統(tǒng)計而變化。為發(fā)現(xiàn)R_AC與AC_NORM之間的局部統(tǒng)計關系,可使用一種自適應方法,以動態(tài)地調(diào)節(jié)上文指定的因子K。
圖3表示自適應速率查詢表/求值器結構的一個實施例。在ME搜索過程中,墑(表示為比特速率)可通過將一組表輸入?yún)?shù)301輸入到速率查詢表/求值器302而被估計。對于每個塊來說,來自墑編碼107的實際的編碼速率303可與估計的速率304比較,誤差305可被反饋到自適應速率查詢表,以調(diào)節(jié)某些表參數(shù),從而降低速率誤差??傊?,速率查詢表包括一個準確速率部分和一個估計速率部分,如下所示J~=R_Accurate+R_Estimation (7)R_Accurate是速率的一部分,其在給定某些輸入?yún)?shù)的情況下,可被準確地確定。在一個具體實施例中,R_Accurate包括R_DC和R_MV,即R_Accurate=R_DC(DC/QP_dc)+R_MV(MV) (8)R_Estimation是塊的估計部分,一般取決于到查詢表的一組輸入?yún)?shù)。在一個實施例中,R_Estimation是作為特定輸入?yún)?shù)的一個線性組合,即R_Estimation=∑iKi*(Xi-Θi) (9)其中{Xi}是輸入?yún)?shù),{Θi}是輸入?yún)?shù)的閾值,而{Ki}是加權因子。這里我們采用了最小均方(LMS)算法(參考文獻[3])來訓練(train)加權因子{Ki},使閾值{Θi}預先固定或動態(tài)可調(diào)。在上述方法的一個具體實施例中,我們可準確地查詢R_DC()、R_MV_X()和R_MV_Y()(以及在H.264中使用的多個幀參考情況下的R_MV_F()),利用線性模型自適應地調(diào)節(jié)R_AC()的因子K。在該情況下,成本函數(shù)可表示如下
J=R_DC(DC|QP_dc)+R_MV(MV)+K*(AC_NORM-AC_THRESHOLD)/QP_ac (10)將R設為墑編碼之后的塊的速率(包括DCT和MV的速率),并將J設為塊的速率的估計值,則K可以是通過下面的過程被調(diào)節(jié)ΔK=μ*(R-J)*(AC_NORM-AC_THRESHOLD)/QP_ac(11)其中ΔK是因子K的平差,(R-J)是速率誤差;μ是學習因子,通常以平衡收斂速度與穩(wěn)定性的方式來設定;AC_THRESHOLD是在AC速率保持非零時表征最小AC_NORM值的閾值。AC_THRESHOLD可被預先固定為特定值或者可被動態(tài)地調(diào)節(jié)。在一個實施例中,AC_THRESHOLD可根據(jù)下列示例性處理被調(diào)節(jié)(以類似C語言的偽碼來表示)Zero_Point=Th0;for each block {//塊處理的循環(huán)……If{Actual AC Rate==0}{Zero_Point=α*AC_NORM+(1-α)*Zero_Point;AC_THRESHOLD=m*Zero_Point;}}其中Zero_Point是跟蹤零速率AC_NORM位置的一個變量;Zero_Point在程序開始時被初始化為Th0;α是平均窗口控制因子,它是一個大于0的小的正數(shù);m是一個比例因子,基于平均的Zero_Point值控制AC_THRESHOLD的位置。
在一個實施例中,在(11)中調(diào)節(jié)K的方法可以使速率函數(shù)的均方誤差最小化min E{(R-J)2} (12)一般地,多個參數(shù)可被用于確定R_Estimation,如(9)中所指定的,其中可對因子K使用下面所示的自適應方法
對于每個i,ΔKi=μ*(R-J)*(Xi-Θi) (13)在一個實施例中,與基于成本函數(shù)的差值能量測量相比,基于墑的成本函數(shù)(4)可產(chǎn)生較低的比特速率和較好的圖像質(zhì)量。
ME搜索方法為了識別產(chǎn)生最低成本函數(shù)值的最佳點,需要進行大區(qū)域搜索。為了支持實時應用,應該避免計算成本過高。在一個示例性實施例中,使用一種方法,以執(zhí)行大區(qū)域ME搜索,以小于與完全搜索相比的計算時間的1%來產(chǎn)生接近于完全搜索的結果。該方法是基于這樣一種現(xiàn)象,即真實世界的N維幀序列中的多數(shù)幀內(nèi)(如在典型的視頻實例中),只有少量的運動矢量串,運動矢量域從每個串內(nèi)的塊到塊連續(xù)地變化?;谶@一觀察,來自相鄰塊的運動矢量可提供有關ME搜索的起點的一個好的建議。
圖4表示快速ME搜索過程的一個實施例,在操作401中,一組點基于相鄰塊的參考位移索引(如運動矢量(MVs))而被求值,(和可能的是,MVs指定的圍繞那些點的直接鄰近的點,如圖6所示),以確定詳細搜索的起點(圖4中的操作402)。鄰近的塊可以是空間域和/或時域中的鄰居,可被稱為鄰居開拓集。圖5表示把該方法應用于二維視頻序列情況的一個示例,其中來自三個相鄰塊的MVs左501,上502,上右503,以及原點被用于確定當前塊500的ME搜索的起點。四個塊一起構成該當前塊的鄰居開拓集504。產(chǎn)生最低成本值的點被選擇作為詳細ME搜索的一個起點。
在鄰居開拓操作401之后,執(zhí)行詳細搜索操作402。詳細搜索可被利用,以執(zhí)行圍繞搜索起點的點的徹底的求值,這可基于鄰居開拓集中的點的求值而被選擇。
圖7表示該操作的一個具體實施例。這里,在圍繞搜索起點701的一個小區(qū)域內(nèi)執(zhí)行兩個級別的搜索。在級別1,對于所有其它的點,執(zhí)行ME搜索。在確定了級別1上的最佳點703之后,其在級別0上的直接鄰近點704被求值,以確定出最佳點。將迄今發(fā)現(xiàn)的最佳成本函數(shù)值設置為J-Best。
在詳細搜索之后,在圖4的操作403執(zhí)行大區(qū)域的分層搜索。操作403可被稱為全局搜索操作,該操作的目的是在大的搜索窗口中的點進行取樣,以發(fā)現(xiàn)在詳細搜索區(qū)域之外的運動矢量,萬一相鄰塊不提供準確的初始起點。圖8表示該操作的一個實施例。這里N個級別的分層搜索被執(zhí)行。在每個級別上,圍繞來自上個級別的最佳點的8個點被求值。對于搜索窗口=+-128的情況,表示如下級別6(64,0),(-64,0),(0,64),(0,-64),(64,64),(64,-64),(-64,64),(-64,64)級別5來自級別6中的最佳點(+-32,0),(0,+-32),(+-32,+-32)級別4來自級別5中的最佳點(+-16,0),(0,+-16),(+-16,+-16)級別3來自級別4中的最佳點(+-8,0),(0,+-8),(+-8,+-8)級別2來自級別3中的最佳點(+-4,0),(0,+-4),(+-4,+-4)級別1來自級別2中的最佳點(+-2,0),(0,+-2),(+-2,+-2)級別0來自級別1中的最佳點(+-1,0),(0,+-1),(+-1,+-1)為節(jié)省計算時間,可以不必一直搜索到級別0。在級別3停止(操作尺寸8)即可產(chǎn)生可接受的結果。該過程可繼續(xù),直到達到最終級別。在N級分層搜索的過程中具有最小成本值的點隨后可與來自詳細搜索的最佳點比較,產(chǎn)生較小的成本值的點被選擇作為最佳ME搜索匹配點。
圖4中表示的ME搜索操作不同于通常使用的快速搜索方法。圖4的操作401、402、493的獨特組合和順序可產(chǎn)生接近于完全搜索的結果。這里,操作401可被用來從相鄰塊識別發(fā)現(xiàn)的MV,以設定詳細搜索起點。操作402可被用來對操作401中發(fā)現(xiàn)的最佳起點周圍的點徹底求值。該操作也可設定下一個操作的成本函數(shù)值閾值。如果詳細搜索不能發(fā)現(xiàn)產(chǎn)生足夠低成本值的點,操作403可超出小的詳細搜索區(qū)域,以覆蓋全部的搜索空間,盡量達到良好的點的鄰近。來自先前求值的塊的這些搜索結果可被轉(zhuǎn)移到鄰近的塊。這種中繼效果可傳播好的結果,并且可以產(chǎn)生塊間的一個局部的組合作,以實現(xiàn)全局最優(yōu)化,這類似于在蜂窩自動機(參考文獻[4])或神經(jīng)網(wǎng)絡系統(tǒng)(參考文獻[5])中觀察到的系統(tǒng)動態(tài)特性。
碎片網(wǎng)格點搜索方法在一個實施例中,為了進一步降低速率,在通過執(zhí)行上述ME搜索過程發(fā)現(xiàn)了最佳的完整網(wǎng)格點之后,可以執(zhí)行碎片網(wǎng)格點搜索。在MPEG4和H.264標準中,使用多分支插值函數(shù)以創(chuàng)建q-pel模式的h-pel像素。如果在ME搜索內(nèi)部循環(huán)(loop)中執(zhí)行,這可以是高強度的計算。為了說明該問題,可以采用一種利用簡化插值在碎片點上執(zhí)行ME搜索的方法。在一個示例性實施例中,可以在一個視頻編碼應用中采用一個簡單的濾波器來為ME搜索產(chǎn)生子像素值。在發(fā)現(xiàn)了最佳的sub-pel點之后,可以利用更復雜的多分支濾波器來進行運動補償計算。其結果可接近于利用真正多分支濾波器的ME搜索。通過選擇自適應運動補償濾波器可以增強這些結果。圖9示出了該原理的一個示例性實施例。利用一個簡單的平均濾波器來執(zhí)行ME搜索,然后選擇一個在運動補償(MC)過程中產(chǎn)生較低速率的濾波器。圖10示出了如何使用平均濾波器來計算ME搜索過程中的子像素值。僅僅在完整像素(1001,1001a等)處才可以得到這些像素值,而子像素位置只能被插值。在一個實施例中,使用了雙線性插值來為ME搜索參考幀計算子像素值。圖10中示例的說明如下半像素在1002的像素值=(在1001處的像素值+在1001a的像素值)/21/4像素在1003的像素值=(在1001的像素值+在1002的像素值)/2
1/8像素在1004的像素值=(在1001的像素值+在1003的像素值)/2在一個實施例中,該方法可被擴展到對1/(2n)像素進行求值,并且可以被進一步擴展來處理N維信號序列。
自適應編碼器控制器這些輸入幀中各個塊的特性在一個幀內(nèi)以及在幀和幀之間是變化的。可以基于編碼器輸出的反饋,以及可選地基于在整個編碼過程中測量的某些塊特性值的反饋,利用一個結構來改善編碼器的質(zhì)量和性能。例如,跨越塊和幀的MV距離分布可以是不均勻的。由于較大的MV意味著需要更多的ME搜索周期,因此跨越塊和幀可能需要不均勻的ME搜索周期。在一個實施例中,為了更好地利用硬件處理周期,利用了一種可以在幀和塊中進行周期共享的方法。圖11表示一種自適應ME控制結構。ME處理單元(MEPU)1101是一個執(zhí)行ME搜索的引擎。ME控制單元(MECU)1102是用于控制MEPU的單元。MECU將某些ME監(jiān)測參數(shù)1104、編碼器反饋參數(shù)1106和存儲在參數(shù)存儲器1103中的某些可調(diào)參數(shù)作為輸入,創(chuàng)建一組ME控制參數(shù)1105,自適應地控制MEPU,以便更好地利用MEPU周期來實現(xiàn)最佳的ME搜索目標。圖3所示的自適應速率查詢表和前面所述的學習方法可被認為是圖11中ME控制函數(shù)1107的一個具體實施例。
在ME控制函數(shù)的另一個示例性實施例中,基于來自先前幀的MV值,可為當前幀調(diào)節(jié)ME搜索范圍??梢员O(jiān)測先前的X、Y(以及H.264情況下的幀)運動矢量值,從而可以擴大或縮小當前幀上每個維度(X、Y或F)的ME搜索范圍。該自適應ME搜索窗口調(diào)節(jié)方法可有效地降低表示運動矢量需要的比特速率,并降低ME搜索的周期數(shù)。
圖12示出了ME搜索范圍的一個示例。
調(diào)節(jié)方法。對于既定的當前ME搜索范圍D1201,ME搜索范圍可根據(jù)下面的標準被調(diào)節(jié)1.如果范圍大于擴大的范圍閾值1204(在該例中設定為3D/4)的MVs的數(shù)量大于某個預先設定的閾值數(shù)量,則將ME搜索范圍擴大到2D。
2.如果范圍大于縮小的范圍閾值1205(在該例中設定為3D/8)的MVs的數(shù)量小于某個預先設定的閾值數(shù)量,則將ME搜索范圍縮小到D/2。
圖12所示的方法可被用來調(diào)節(jié)每個獨立ME搜索維度(對于H.264多幀情況而言,是X、Y和可能的F)上的ME搜索范圍。
除了上述自適應ME搜索范圍方法之外,當滿足一定條件時,系統(tǒng)100也可提前終止每個塊的ME搜索,以節(jié)省處理周期。提前終止所節(jié)省的處理周期可被添加到可用周期池中。MECU將基于該池中的可用周期來分配和調(diào)度MEPU將要使用的周期。這種方案可以允許充分利用可用處理周期來實現(xiàn)最佳的ME搜索結果。
圖13表示MEPU周期調(diào)度器1301的一個實施例。MEPU周期調(diào)度器基于周期池中可用周期來調(diào)節(jié)用于MEPU 1302中各個模塊的ME控制參數(shù)。
3種示例性的提前終止情況如下所示1.跳過情形根據(jù)參考幀中相同位置的塊來檢查當前塊。如果兩個塊相同,則可跳過ME處理。在這種情況下,我們跳過了視頻編碼循環(huán)的主要部分(包括ME、DCT等),節(jié)省了許多周期。用于跳過的類似條件的一個實施例是a.計算當前塊與參考幀的相同位置的塊之間的塊差值(BD)。
b.計算DC[BD]和AC[BD]c.如果DC[BD]/QP_dc<SKIP_DC_TH且AC[BD]/QP_ac<SKIP_AC_TH,則跳過。SKIP_DC_TH和SKIP_AC_TH是確定SKIP條件的一些閾值。SKIP_DC_TH和SKIP_AC_TH可被固定或根據(jù)來自編碼器的特定反饋動態(tài)地調(diào)節(jié)。例如,在一個實施例中,SKIP_AC_TH被設定為上述的動態(tài)調(diào)節(jié)的AC_THRESHOLD值。
2.良好匹配終止在ME搜索特定塊的過程中的任何時刻,當成本函數(shù)值低于特定閾值J_Early_Terminate_TH時,我們可終止ME搜索。當發(fā)現(xiàn)了非常好的塊匹配時,這種情況就會發(fā)生,從而形成低成本函數(shù)值。J_Early_Terminate_TH可以是預先固定的值或基于編碼器的特定特性值可動態(tài)地調(diào)節(jié)。例如,在本發(fā)明的一個實施例中,J_Early_Terminate_TH=f*J_B_est_Mean其中f是小于1的正數(shù),用于控制J_Early_Terminate_TH;J_Best_Mean是通過特定移動取樣窗口的J_Best的移動平均值。在本發(fā)明的一個實施例中,J_Best_Mean可通過下面公式被簡單計算J_Best_Mean=α*J_Best+(1-α)*J_Best_Mean其中α是小于1的小數(shù)值,用于控制移動平均窗口的寬度。
3.ME搜索放棄終止如果進一步的ME搜索不可能產(chǎn)生比迄今發(fā)現(xiàn)的最佳成本值J_Best更好的結果,這將發(fā)生。當這一情況發(fā)生時,我們不需要浪費周期來搜索該特定塊的更多的點。這可由將來搜索點的一些較低的界限估計來求值。如果將來搜索點的較低界限大于迄今發(fā)現(xiàn)的最佳成本,那么可終止搜索,不用犧牲任何東西。該想法可被認為是應用經(jīng)常用于策略樹搜索的A*搜索算法(參考文獻[6])到ME搜索。下面的實施例是由該想法派生的一些實施例a.在完成1MV搜索之后,和4MV搜索之前,如果從1MV發(fā)現(xiàn)的最佳成本小于運動矢量速率,我們終止4MV搜索,即,J_Best(1MV)<=R_MV(4MV)這是因為R_MV(4MV)<J(4MV)=R_DC(4MV)+R_AC(4MV)+R_MV(4MV)b.在MPEG4中,如果我們執(zhí)行遵循來自ME預測點的螺旋模式的ME搜索,則R_MV(MV)將從運動矢量的速率的增加順序中的搜索起點中被分類。在該情況下,如果運動矢量的速率大于迄今發(fā)現(xiàn)的最佳成本,我們可終止ME搜索過程。該想法被表示在圖14中。如圖14所示,ME搜索從某種預測點1401開始。如圖14所示,ME搜索遵循某種螺旋波擴展模式。在MPEG4中,MV被編碼為自預測點的差值R_MV=R_MV_X(Delta_X)+R_MV_Y(Delta_Y)。R_MV_X()和R_MV_Y()遵循相同VLC表R_MV(Delta),二者隨Delta單調(diào)增長。在圖14中,如果R_MV(D)>=J_Best(迄今發(fā)現(xiàn)的最佳成本值),當ME搜索波擴展到達波陣面1402時,可終止該搜索,因為所有將來的R_MV()將大于R_MV(D)。
在另一個實施例中,A*搜索方法可被用來以刪節(jié)搜索過程中被求值的點的數(shù)量。一般地,如果在任何既定點p的成本函數(shù)J(p)大于特定的界限B(p),并且如果B(p)>J_Best,迄今發(fā)現(xiàn)的最佳成本函數(shù)值,則點p可被跳過,而不犧牲任何質(zhì)量。注意,B(p)可以是某種變量,在點p的求值全部過程中增加,同時有關點p的更多信息被處理。在任何給定的時刻,如果滿足B(p)>J_Best,點p的計算可被停止。
相鄰保留掃描方法為了從前面的塊處理結果中獲得最佳的自適應學習效果,如果按照一定的序列來掃描和處理這些塊,以保留空間和時間距離的順序關系,那么所學習的信息可能會更加有用。圖28示出了在二維視頻序列處理中實施一種相鄰保留掃描方法的示例。這里,塊2803根據(jù)2804所示的順序被掃描和處理。該方法的說明如下(a)掃描n塊組(由n個塊構成的組)的一行,正整數(shù)n從前一行結束的位置開始n塊組下一行。
(b)掃描完一幀之后,從前一幀結束的位置處開始下一幀的掃描,而且掃描這些行的順序與前一幀的相反。對每幀重復(a)和(b)。所示的掃描過程可以保留掃描序列中的相鄰關系,即掃描之后一維序列中的相鄰塊在原始的N維序列中也是空間或時間上相鄰的。一般地,相鄰保留掃描使下列條件的匹配最大化(a)掃描后一維序列中的相鄰塊在原始N維序列中也是鄰居。
(b)如果塊是同一幀中的相鄰塊(空間鄰居),或位于鄰近幀中相同位置(時間鄰居),兩個塊被認為是鄰居。
這個示例性的掃描方法可被分層使用。
在一個實施例中,也可通過相同的方法在每個N維塊內(nèi)掃描N維塊本身。一般地,可允許該掃描方法具有多級層次結構。一種示例性相鄰保留掃描方法也可被用于外圍圖像掃描設備,例如電荷耦合裝置(CCD)傳感器和CMOS傳感器,以準備好與信號處理順序相匹配的輸入信號。這樣,從輸入傳感設備中移除幀緩沖器就成為可能。圖30表示我們的掃描方法應用于CNOS或CCD圖像掃描的一個實施例。這里,在每個像素3001感知的光信號以保留相鄰關系的順序3002而被掃描出。
N維記憶裝置ME算法的實施在訪問參考緩沖存儲器時通常具有瓶頸。利用典型地以視頻算法在2維或3維目標中組織的視頻流,基于存儲器的一維線性尋址不提供有效率的結果。為解決這個問題,在傳統(tǒng)的基于一維尋址的存儲器的基礎上開發(fā)了一種特殊的存儲器結構,即N維記憶裝置,以優(yōu)化ME算法幀緩沖器存取的存儲器訪問效率和存取模式的靈活性。當然,該結構的使用并不僅限于ME算法。任何N維數(shù)據(jù)處理均可利用該機制來實現(xiàn)靈活性和效率優(yōu)勢。
圖15說明該存儲器訪問問題。一個2維的例子在該圖表中被用作示例,如在ME算法中。在視頻應用程序中,視頻數(shù)據(jù)通常是以2維幀來組織,表示出在電視屏幕上任何情況的一個圖像。(圖15中的1501)在一個幀內(nèi)部,數(shù)據(jù)通常是以小于2維的塊被組織。這些塊通常尺寸是16×16或8×8。這些塊被形成為具有每個幀上的固定網(wǎng)格模式(圖15中的1502)。
在視頻算法中,必須以高效方式來訪問這些塊,如在1個單周期或單個猝發(fā)中得到所有像素。在視頻算法中,一個2維塊必須在不對齊固定網(wǎng)格的任何隨機位置被訪問,如圖15中1503所示。
電子存儲器(如SDRAM、SRAM等)是按照基于一維的尋址機制而被組織的,最多是以線性方式來對像素進行同時訪問/猝發(fā),即訪問一行像素。利用存儲器中像素數(shù)據(jù)分配的某些預先安排,在一個與該幀中的固定網(wǎng)格模式對齊的塊進行猝發(fā)是可能的。但是,不可能在一個周期/一個猝發(fā)中訪問一個隨機位置的塊。
存儲器結構方案的一個實施例的方框圖表示在圖16中。在該方框圖中,n維目標存儲器被分成L個切片。每個存儲器切片是一個傳統(tǒng)的一維存儲器(如在SRAM中)。每個切片的數(shù)據(jù)寬度是該目標的最小單元尺寸。在視頻中,該尺寸是(例如8比特的)一個像素。在其它應用中,存儲器切片的總線寬度可以是任何尺寸。L切片組織的目的是允許在一個周期中(如果數(shù)據(jù)塊具有L個元素),或每個具有L個元素的多個訪問周期的一個猝發(fā)中訪問一個N維塊。實現(xiàn)該目的的問題在于如何將N維塊數(shù)據(jù)分配成L個切片。我們?yōu)榉峙涞矫總€切片的數(shù)據(jù)設定了2個條件(1)屬于同一塊的數(shù)據(jù)元素應該被平均分配成L個切片,以使該塊中的L個數(shù)據(jù)元素能夠被無沖突地同時訪問。
(2)如果切片的數(shù)量L小于一個塊中數(shù)據(jù)元素的數(shù)量,例如如果B=L*M,其中B是一個塊中數(shù)據(jù)元素的數(shù)量,那么一個塊中的多個元素(M)會存在于同一個切片上。M個數(shù)據(jù)元素應該被放置在一個切片的連續(xù)區(qū)域內(nèi),從而實現(xiàn)單個猝發(fā)的塊訪問。
基于一種示例性方法的數(shù)據(jù)分配示例被示于圖17中。在該圖中,示出了一個L=12的3×4的2維塊的示例。可見,在一個單周期中可以訪問該幀中任意的3×4塊。L=6、M=2的另一個示例被表示在圖18中。在該例中,所有3×4的塊均由具有相同切片存儲器ID的2個元素組成。也就是說,該3×4的塊可在2個時鐘周期中被訪問。另外,如圖17和18所示,對一行中L個像素的任意訪問也可在一個時鐘周期中完成,因為在行像素集中不存在切片存儲器重疊。
一旦根據(jù)示例性方法完成了數(shù)據(jù)分配,就可設計地址轉(zhuǎn)換和數(shù)據(jù)多路控制,以反映圖16所示的分配模式。
在一個示例性實施例中,可以用參數(shù)來表示維度數(shù)目n、每個維度上塊尺寸的大小、以及存儲器切片的數(shù)目L,以適應特定應用所需要的任何可能的情況。
多級N維記憶裝置視頻ME算法具有下列一組獨特的要求,這將其與非實時CPU系統(tǒng)區(qū)別開來。
1.大容量2.大帶寬3.2維數(shù)據(jù)元素的隨機訪問
4.低成本在這些要求中,第二和第三項要求可通過先前所述的存儲機制解決。但是,如果僅使用N維存儲裝置,也許并不能滿足大容量和低成本方面的要求。另外,較大的切片數(shù)量L將提供較大的訪問帶寬,但同時也會增加成本。
可將傳統(tǒng)的多級高速緩沖存儲器結構用于所述的N維存儲器中。n維記憶裝置的高速度和成本使之最適于用作最接近于處理引擎的最核心層次的存儲器。
用于該n維記憶裝置的一個示例性二級存儲器實施例被表示在圖19中。在這種機制中,對數(shù)據(jù)進行組織,以便首先從第二級存儲器(例如一個SDRAM)中讀取數(shù)據(jù),并將其存儲在片上(on-chip)n維記憶裝置中。一旦數(shù)據(jù)存儲在n維記憶裝置中,那么數(shù)據(jù)就可被靈活地訪問,并被多次重復使用。這樣,就降低了對外部SDRAM帶寬和訪問模式靈活性的要求。
如果將SDRAM用作二級n維記憶裝置中的第二級存儲器時,在SDRAM使用中需要精心設置某些細節(jié)來支持n維數(shù)據(jù)結構,并克服SDRAM架構的限制。由于SDRAM設計架構方面的原因,存在與SDRAM訪問有關的開銷。典型的是,SDRAM訪問包括下列操作,每個操作所具有的各種延遲都會在猝發(fā)之間產(chǎn)生開銷(1)先前訪問的存儲體(memory bank)的預先充電(2)發(fā)送RAS命令(3)發(fā)送CAS命令沒有像素數(shù)據(jù)的適當安排,猝發(fā)訪問之間的開銷可能是非常高的。另一方面,SDRAM提供了多存儲體的存儲結構,允許獨立地發(fā)出命令和預先充電。利用幀的像素數(shù)據(jù)的適當組織,SDRAM訪問開銷可被最小化。為做到這點,我們?nèi)缭趫D20中固定SDRAM中的幀緩沖器數(shù)據(jù)分配模式。一個幀緩沖器首先被預先分成固定尺寸的塊(16×16、8×8或其它固定尺寸),每個塊被分配到一個SDRAM存儲器的存儲體中。圖20中的示例表示8×8的塊。這些塊被對齊到固定網(wǎng)格模式,如圖15的1502所示。這些塊被有順序地排列成有順序的存儲體ID,如圖20所示。在一個塊內(nèi),像素數(shù)據(jù)以圖21所示的順序被排列。
藉此,下面列出的對SDRAM的訪問模式是以零開銷方式完成的(1)塊猝發(fā)整個塊被連續(xù)地排列在一個存儲體中。因此,只需利用一個單個猝發(fā)即可完成整個塊的訪問。
(2)有順序的塊猝發(fā)光柵掃描順序中的多個塊猝發(fā)(如圖20所示)是利用多個猝發(fā)實現(xiàn)的。由于每個塊是被分配到不同的存儲體中,所以這些猝發(fā)命令是由管道傳送的,不存在開銷問題。
(3)行訪問可利用多個猝發(fā)來訪問相同線上的一行像素。此外,多個猝發(fā)屬于不同的存儲體,因此進行跨猝發(fā)的管道傳送是可能的。是否存在零開銷取決于塊內(nèi)的猝發(fā)長度,以及SDRAM的CAS和RAS延遲。
盡管對外部SDRAM的訪問可以具有非常有限的訪問模式,但是對于將SDRAM作為第二或更高級別存儲器的多級N維記憶裝置而言,一旦將數(shù)據(jù)從SDRAM讀到N維記憶裝置中,數(shù)據(jù)訪問就會非常靈活。
ME搜索的平行螺旋模式(PSP)陣列處理器在一個實施例中提出了一種結構,以降低利用平行螺旋搜索模式和陣列處理器的ME算法中對參考帶寬的需求。該方案可允許多個處理器共享來自參考緩沖器的相同數(shù)據(jù)輸出,如圖22所示。
在一個實施例中,可以利用ME算法中的固定搜索/訪問模式的特點。共享二級存儲器輸出的方法是預先規(guī)定ME算法中搜索模式,以使多個搜索點被平行或并行地處理。傳統(tǒng)上,ME算法利用各種算法。一種實施方式利用了螺旋搜索,其遵循預先規(guī)定的搜索路線,直到最終發(fā)現(xiàn)最佳搜索點。圖23示出了一個操作尺寸為4像素的螺旋搜索。為允許具有固定訪問存儲器的訪問模式的平行搜索,本發(fā)明利用一種搜索模式,即“平行螺旋搜索”。
圖24示出了平行螺旋模式的一個示例,該平行螺旋模式具有平行的P個搜索點,在該例中P=9。利用固定的3×3網(wǎng)格模式中平行處理的P搜索點,輸入數(shù)據(jù)可被進一步分析,以增強共享和降低存儲器帶寬使用。
該概念的一個示例被表示在圖25中。圖中的每個搜索點規(guī)定了成本函數(shù)將被執(zhí)行的位置。在該例中,可以假定成本函數(shù)是基于一個尺寸為16×16的塊。搜索點1、2和3共享每行中24個像素中的16個像素。這樣,當從參考緩沖器讀取第一行時,其被全部3個搜索點1、2和3共享。從第5行開始,數(shù)據(jù)被搜索點1、2、3、4、5和6共享。從第9行開始,被全部9個搜索點共享。由于9個搜索點是以固定的3×3網(wǎng)格排列,參考緩沖器的訪問模式是固定的,并容易設計為重新使用數(shù)據(jù),當數(shù)據(jù)被從緩沖器讀取時。
注意,在基于平行螺旋搜索模式的該陣列處理結構中,搜索模式操作尺寸,X、Y方向上的陣列尺寸是可被設定為任何值的所有參數(shù)。
用于ME搜索具有N維存儲器的PSP陣列處理器可替代地,PSP陣列處理器也可參加一列數(shù)據(jù),或一個數(shù)據(jù)塊(如4×4),如果一個N維存儲器與平行螺旋陣列處理器一起被使用。該組合的一個實施例表示在圖26中。
使用具有N維記憶裝置的平行螺旋陣列處理器可以獲得更好的性能。在沒有N維記憶裝置的情況下,該陣列處理器僅能讀取和共享一行或一列的數(shù)據(jù)。假定參考緩沖器的數(shù)據(jù)寬度為16像素,即提供輸入數(shù)據(jù)時是一次提供16像素??紤]圖25中的情況。如果沒有可用的N維記憶裝置,每次就只能讀取一行或一列的16個像素。為了訪問全部24行、每行24個像素,9個處理器就需要和共享48個周期。這樣,每個處理器的周期數(shù)量就是48/9=5.33。
如果N維記憶裝置可用,從而允許在一個周期中訪問一個4×4塊(如圖26所示),那么總共需要36個周期。在這種情況下,每個處理器的周期數(shù)量為36/9=4。注意,在不存在PSP和陣列處理器的情況下,周期數(shù)量為每個處理器16個周期。該性能對單獨PSP處理器從16改進到5.33,對具有N維存儲的PSP改進到4。總之,這種陣列處理器架構可被單獨使用,或者如此處所述,可以與N維存儲器一起使用。與傳統(tǒng)的單螺旋點搜索模式相比,利用帶二級存儲器的陣列處理器的平行螺旋模式可使ME算法的執(zhí)行效率更高,以搜索更多的點,從而獲得更高的壓縮性能。
還要注意的是,本文描述的實施例不僅可以實施在物理電路(例如半導體芯片)中,而且也可以實施在機器可讀介質(zhì)中。例如,上面所討論的電路和設計可以存儲在和/或嵌入在與用于設計半導體器件的設計工具有關的機器可讀介質(zhì)中。具體示例包括以“VHSIC硬件描述語言”(VHDL)語言、Verilog語言或SPICE語言表現(xiàn)的網(wǎng)表(netlist)。部分網(wǎng)表示例包括行為層網(wǎng)表、寄存器傳送層(RTL)網(wǎng)表、柵層網(wǎng)表、以及晶體管層網(wǎng)表。機器可讀介質(zhì)也包括具有布局信息例如GDS-II文件的介質(zhì)。此外,用于半導體芯片設計的網(wǎng)表文件或其它機器可讀介質(zhì)可使用在仿真環(huán)境中,以執(zhí)行本文所述原理的各種方法。
因此,也應理解的是,本發(fā)明的實施例可被用作或支持在某種形式的處理核(例如計算機的CPU)上執(zhí)行的軟件程序,或在機器可讀介質(zhì)上或其中實施或?qū)崿F(xiàn)的軟件程序。機器可讀介質(zhì)包括存儲或傳輸機器(如計算機)可讀形式信息的任何裝置或機制。例如,機器可讀介質(zhì)包括只讀存儲器(ROM),隨機訪問存儲器(RAM),磁盤存儲介質(zhì),光存儲器,閃存裝置,電子、光學、聲學或其它形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)等等。
至此,本文已描述了自適應多維信號序列編碼和解碼的方法和系統(tǒng)。盡管本發(fā)明的描述參考了具體的示例性實施例,但是顯然,在不脫離本發(fā)明的更廣泛的精神和范圍的情況下,可對這些實施例做出各種修改和變化。因此,應該以一種說明性的而非限制性的角度來看待本發(fā)明的說明書和附圖。
參考文獻[1]Iaiain E.G.Richardson,Video Codec Design,John Willey&Sons,Ltd.,2002,1983[2]Douglas F.Elliott and K.Ramamohan Rao,F(xiàn)ast TransformsAlgorithms,Analyses,APPlications,Academic Press,1983[3]Bernard Widrow and Samuel D.Steams,Adaptive SignalProcessing,Prentice-Hall,Inc.,1985[4]John von Neumann,″Theory of Self-Reproducing Automata″,edited and completed by Arthur W.Burks,University of Illinois Press,Urbana and London,1966[5]Tsu-Chang Lee,Structure Level Adaptation for Artifcial N6uralN6tworks,Kluwer Academic Publishers,1991[6]Nils J.Nilsson,Principles of Artificial Intelligence,MorganKaufmann,198權利要求
1.一種處理信號序列的系統(tǒng),該系統(tǒng)包括一個接收信號序列的區(qū)分器,所述信號序列包括一個n維當前幀,所述n維當前幀包括多個當前幀塊和多個n維參考幀,所述多個n維參考幀中的每一幀包括多個參考幀塊;一個存儲所述多個n維參考幀的幀緩沖器;一個塊匹配預測器,其為所述多個當前幀塊中的每一塊識別所述多個參考幀塊中的一個預測塊,并為所述多個當前幀塊中每一塊的相應預測塊確定一個參考位移索引和一個塊預測差值,其中所述參考位移索引用以識別所述參考幀塊內(nèi)的一個點;一個塊編碼器,其對所述多個當前幀塊中每一塊的相應塊預測差值和相應參考位移索引進行編碼,并藉此創(chuàng)建多個編碼塊;和一個序列編碼器,其根據(jù)預定格式把所述多個編碼塊打包在一起。
2.根據(jù)權利要求1所述的系統(tǒng),包括一個序列解碼器,其根據(jù)所述預定格式對所述多個編碼塊進行解包;和一個塊解碼器,其利用相應的塊預測差值和相應的參考位移索引對所述多個編碼塊中的每一塊進行解碼。
3.根據(jù)權利要求1所述的系統(tǒng),其中所述預測塊被識別,從而使利用所述多個參考幀塊對一個當前幀塊進行編碼所需的信息量減至最小。
4.根據(jù)權利要求1所述的系統(tǒng),其包括一個成本估計組件,以確定識別所述預測塊的計算強度,所述成本估計組件利用了一個成本函數(shù)。
5.根據(jù)權利要求4所述的系統(tǒng),其中所述成本估計組件是利用基于一個或多個參數(shù)的一個估計,所述參數(shù)選自包括所述塊預測差值的一個或多個特性值和所述塊匹配預測器的一個或多個狀態(tài)的的線性組合的組中。
6.根據(jù)權利要求4所述的系統(tǒng),其中所述成本函數(shù)是基于至少一個表查詢,所述表查詢具有所述塊預測差值的特性值和所述塊匹配預測器的一個或多個狀態(tài)指定的表條目。
7.根據(jù)權利要求3所述的系統(tǒng),其中利用所述多個參考幀塊對所述當前幀塊進行編碼所需的信息量是由相應塊預測差值的比特速率與相應參考位移索引的比特速率之和確定的。
8.根據(jù)權利要求1所述的系統(tǒng),其包括一個系數(shù)去相關轉(zhuǎn)換組件,以在對轉(zhuǎn)換的N維系數(shù)進行編碼之前,利用N維系數(shù)去相關轉(zhuǎn)換T來轉(zhuǎn)換所述塊預測差值。
9.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器能夠處理各種形狀和尺寸的塊。
10.根據(jù)權利要求8所述的系統(tǒng),其中所述系數(shù)去相關轉(zhuǎn)換組件能夠處理各種形狀和尺寸的塊。
11.根據(jù)權利要求8所述的系統(tǒng),其中所述系數(shù)去相關轉(zhuǎn)換組件將利用具有有關形狀和尺寸的塊,所述有關形狀和尺寸是由所述塊匹配預測器選擇的。
12.根據(jù)權利要求8所述的系統(tǒng),其中所述系數(shù)去相關轉(zhuǎn)換組件是根據(jù)一個或多個系統(tǒng)性能要求來利用一種轉(zhuǎn)換方法。
13.根據(jù)權利要求8所述的系統(tǒng),其中所述塊編碼器是利用N維折線掃描和游程長度編碼對轉(zhuǎn)換的N維系數(shù)進行編碼。
14.根據(jù)權利要求8所述的系統(tǒng),其中所述轉(zhuǎn)換T是一個N維離散余弦變換DCT。
15.根據(jù)權利要求8所述的系統(tǒng),其中所述轉(zhuǎn)換T是N維離散哈達馬變換DHT。
16.根據(jù)權利要求4所述的系統(tǒng),其中所述成本函數(shù)J的形式如下J=Rdc(DC)+Rac(AC)+Rri(參考索引)其中Rdc(DC)是所述塊預測差值的DC系數(shù)的速率;Rac(AC)是所述塊預測差值的AC系數(shù)的速率;而Rri(參考索引)是所述參考索引的速率。
17.根據(jù)權利要求16所述的系統(tǒng),其中Rac(AC)可被估計為AC_NORM(Rac(AC_NORM)),其中AC_NORM是所述塊預測差值的AC部件的NORM。
18.根據(jù)權利要求17所述的系統(tǒng),其中Rac(AC_NORM)是AC_NORM的線性函數(shù)或者是AC_NORM的分段線性函數(shù)。
19.根據(jù)權利要求18所述的系統(tǒng),其中Rac(AC_NORM)的形式如下Rac(AC_NORM)=K*(AC_NORM-AC_THRESHOLD)/QP_ac其中AC_THRESHOLD能夠可選地從所述估計中移除。
20.根據(jù)權利要求19所述的系統(tǒng),其中所述K能夠通過基于實際速率的最小均方LMS算法調(diào)節(jié),以致ΔK=μ*Error*(AC_NORM-AC_THRESHOLD)/QP_ac其中Error是所述速率估計誤差,所述μ是一個學習因子,并且Error=Actual_AC_Rate-Rac(AC_NORM)。
21.根據(jù)權利要求19所述的系統(tǒng),其中利用實際的AC速率和AC_NORM可調(diào)節(jié)所述AC_THRESHOLD。
22.根據(jù)權利要求17所述的系統(tǒng),其中所述AC_NORM是L1NORM,所述L1 NORM是所述塊預測差值中每個分量的絕對值之和。
23.根據(jù)權利要求17所述的系統(tǒng),其中所述AC_NORM是L2NORM,所述L2 NORM是所述塊預測差值中每個分量的平方之和。
24.根據(jù)權利要求1所述的系統(tǒng),其中所述系統(tǒng)適合用于對二維視頻序列進行編碼。
25.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器對所述多個參考幀中一個或多個參考幀內(nèi)的一個或多個點進行求值。
26.根據(jù)權利要求25所述的系統(tǒng),其中所述多個參考幀中一個或多個參考幀內(nèi)的一個或多個點的求值包括了一種鄰居開拓操作,所述鄰居開拓操作包括利用響應一個相鄰塊而獲得的結果對所述目標參考塊求值。
27.根據(jù)權利要求26所述的系統(tǒng),其中所述塊匹配預測器是利用與所述相鄰塊有關的參考位移索引對所述目標參考塊求值。
28.根據(jù)權利要求27所述的系統(tǒng),其中所述鄰居開拓操作是利用與所述相鄰塊有關的參考位移索引對所述目標參考塊的目標系統(tǒng)對象進行求值,以確定所述目標參考塊是否是所述預測塊。
29.根據(jù)權利要求28所述的系統(tǒng),其包括識別由所述參考位移索引所指示的一個目標點;和對鄰近點進行求值,所述鄰近點是直接與所述目標點相鄰。
30.根據(jù)權利要求29所述的系統(tǒng),其中所述塊匹配預測器執(zhí)行詳細搜索操作,所述詳細搜索操作對所述目標點周圍的區(qū)域進行求值。
31.根據(jù)權利要求30所述的系統(tǒng),其中所述詳細搜索操作包括在每個維度上以步長2來識別所述目標點周圍的一個最佳點;和對直接鄰近所述目標點的一個或多個點進行求值。
32.根據(jù)權利要求25所述的系統(tǒng),其中所述塊匹配預測器執(zhí)行全局搜索操作,所述全局搜索操是響應用于多個點求值的一個閾值的建立而被執(zhí)行的。
33.根據(jù)權利要求32所述的系統(tǒng),其中所述全局搜索操作包括一個N級分層搜索。
34.根據(jù)權利要求33所述的系統(tǒng),其中所述N級分層搜索可在級別K>0時停止。
35.根據(jù)權利要求32所述的系統(tǒng),其中所述閾值是通過所述鄰居開拓操作的最佳結果來建立的。
36.根據(jù)權利要求32所述的系統(tǒng),其中所述閾值是通過所述詳細搜索操作的最佳結果來建立的。
37.根據(jù)權利要求1所述的系統(tǒng),其中所述方法適合用于對二維視頻序列進行編碼。
38.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器包括一個碎片點預測器;和所述參考幀包括多個網(wǎng)格點和多個碎片點。
39.根據(jù)權利要求38所述的系統(tǒng),其中來自所述多個碎片點的一個碎片點上的信號是根據(jù)一個或多個完整網(wǎng)格點或者根據(jù)一個或多個先前插值的網(wǎng)格點而被插值的。
40.根據(jù)權利要求39所述的系統(tǒng),其中所述碎片點是利用雙線性插值而被插值的。
41.根據(jù)權利要求39所述的系統(tǒng),其中所述碎片點是利用多分支插值而被插值的。
42.根據(jù)權利要求39所述的系統(tǒng),其中所述塊匹配預測器是利用第一插值機制對來自所述多個碎片點的一個或多個碎片點進行求值,以選擇最佳點,并且利用第二插值機制來計算所述塊預測差值。
43.根據(jù)權利要求42所述的系統(tǒng),其中所述第一插值機制是基于雙線性插值,而所述第二插值機制是基于多分支插值。
44.根據(jù)權利要求39所述的系統(tǒng),其中所述第二插值機制能夠被自適應地從一組插值中選擇,以對目標系統(tǒng)對象進行優(yōu)化。
45.根據(jù)權利要求1所述的系統(tǒng),其包括一個編碼反饋控制單元,以動態(tài)地調(diào)節(jié)一個或多個編碼參數(shù),其中所述一個或多個編碼參數(shù)是根據(jù)一個或多個條件而被調(diào)節(jié)的,所述一個或多個條件選自包括從所述塊編碼器獲得的一個或多個反饋參數(shù)和一組編碼器監(jiān)測參數(shù)的組中。
46.根據(jù)權利要求45所述的系統(tǒng),其中所述編碼反饋控制單元包括一個自適應塊匹配控制單元,以根據(jù)從所選擇的一個或多個條件動態(tài)地調(diào)節(jié)一個或多個預測處理參數(shù),所述一個或多個條件選自包括從所述塊編碼器獲得的一個或多個反饋參數(shù)和一組編碼器監(jiān)測參數(shù)的組中。
47.根據(jù)權利要求46所述的系統(tǒng),其中所述塊匹配控制單元是基于來自先前編碼幀的一個或多個搜索特征,為所述當前幀在每個維度上調(diào)節(jié)一個搜索范圍。
48.根據(jù)權利要求47所述的系統(tǒng),其中所述當前幀的每個維度上的所述搜索范圍是基于來自先前編碼幀的運動矢量分布的函數(shù)而被調(diào)節(jié)的。
49.根據(jù)權利要求46所述的系統(tǒng),其中所述塊匹配控制單元根據(jù)來自所述塊編碼器的反饋,來調(diào)節(jié)由所述成本估計組件所利用的一個成本函數(shù)。
50.根據(jù)權利要求49所述的系統(tǒng),其中所述塊匹配控制單元根據(jù)所述塊編碼器創(chuàng)建的一個實際成本函數(shù)值與一個估計的成本值之間的誤差,來調(diào)節(jié)所述成本函數(shù)的參數(shù),所述估計成本值是利用所述參數(shù)表示的成本函數(shù)來計算的。
51.根據(jù)權利要求49所述的系統(tǒng),其中所述成本函數(shù)利用最小均方LMS算法被組織和調(diào)節(jié)。
52.根據(jù)權利要求46所述的系統(tǒng),其中所述塊匹配預測器控制單元動態(tài)地調(diào)節(jié)一個或多個處理參數(shù),從而為塊預測處理分配和調(diào)度處理周期。
53.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器根據(jù)一個提前終止條件來終止處理。
54.根據(jù)權利要求53所述的系統(tǒng),其中所述提前終止條件包括一個跳過條件,所述跳過條件指示根據(jù)一個跳過閾值,所述當前塊可由先前的塊表示。
55.根據(jù)權利要求54所述的系統(tǒng),其中所述跳過閾值根據(jù)來自所述塊編碼器的反饋是動態(tài)可調(diào)的。
56.根據(jù)權利要求53所述的系統(tǒng),其中所述提前終止條件包括一個良好匹配條件,所述良好匹配條件指示一個成本函數(shù)值小于一個預先確定的良好匹配閾值。
57.根據(jù)權利要求56所述的系統(tǒng),其中所述良好匹配閾值能夠根據(jù)先前求值塊的特性值的移動窗口平均值的函數(shù)被動態(tài)地調(diào)節(jié)。
58.根據(jù)權利要求57所述的系統(tǒng),其中所述特性值是先前求值塊的最佳成本函數(shù)值。
59.根據(jù)權利要求53所述的系統(tǒng),其中所述提前終止條件包括一個放棄條件,所述放棄條件是響應這樣一個決定,即進一步搜索產(chǎn)生的成本函數(shù)值將不會低于迄今發(fā)現(xiàn)的最佳成本值,而被觸發(fā)的。
60.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器基于A*算法跳過搜索點。
61.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器利用平行螺旋搜索過程對參考幀進行求值。
62.根據(jù)權利要求1所述的系統(tǒng),其中所述塊匹配預測器利用一個處理器陣列對所述參考幀中多個點上的系統(tǒng)對象求值,所述處理器陣列包括一個或多個信號處理單元,以處理N維數(shù)據(jù)輸入。
63.一種存儲系統(tǒng),其包括n維存儲器,所述n維存儲器包括一個或多個存儲切片,以允許在一個時鐘周期中在每個切片中存儲或取出一個數(shù)據(jù)項;組織一個n維幀內(nèi)的n維數(shù)據(jù)以允許一個既定立方體內(nèi)的所有數(shù)據(jù)在多個周期中被訪問的裝置,所述立方體可位于該n維幀中的任何地方,其中周期的數(shù)量被確定為該立方體內(nèi)的全部點數(shù)除以存儲切片的數(shù)量;一個尋址轉(zhuǎn)換模塊,其基于n維地址輸入從所述一個或多個存儲切片中訪問數(shù)據(jù);以及一個數(shù)據(jù)多路復用器/多路分離器,以將來自所述一個或多個切片的數(shù)據(jù)流橋接到利用n維數(shù)據(jù)的一個或多個外部處理模塊。
64.根據(jù)權利要求53所述的系統(tǒng),其包括至少一個級別的塊存儲器,從而以塊的形式存儲數(shù)據(jù),所述塊存儲器被連接到所述n維存儲器;一個尋址轉(zhuǎn)換模塊,以訪問所述塊存儲器和所述n維存儲器中的數(shù)據(jù);以及一個數(shù)據(jù)多路復用器/多路分離器,以將來自所述n維存儲器的數(shù)據(jù)流橋接到所述塊存儲器。
65.根據(jù)權利要求64所述的系統(tǒng),其中所述塊存儲器是SDRAM。
66.根據(jù)權利要求63所述的系統(tǒng),其中所述存儲系統(tǒng)適于存儲二維圖像。
67.一種系統(tǒng),其包括一個處理陣列,該處理陣列包括一個或多個信號處理單元,以處理n維數(shù)據(jù)輸入;一個或多個數(shù)據(jù)寄存器,其為所述信號處理單元存儲數(shù)據(jù);以及控制所述處理陣列的裝置,其允許一個數(shù)據(jù)元素由所述陣列中一個以上的處理器使用。
68.根據(jù)權利要求67所述的系統(tǒng),其中所述處理陣列處理來自一個n維存儲器的數(shù)據(jù),其中所述n維存儲器包括一個或多個存儲切片,以允許在一個時鐘周期中在每個切片中存儲或取出一個數(shù)據(jù)項;組織一個n維幀內(nèi)的n維數(shù)據(jù)以允許一個既定立方體內(nèi)的所有數(shù)據(jù)在多個周期中被訪問的裝置,所述立方體可位于該n維幀中的任何地方,其中周期的數(shù)量被確定為該立方體內(nèi)的全部點數(shù)除以存儲切片的數(shù)量;一個尋址轉(zhuǎn)換模塊,其基于n維地址輸入從所述一個或多個存儲切片中訪問數(shù)據(jù);以及一個數(shù)據(jù)多路復用器/多路分離器,以將來自所述一個或多個切片的數(shù)據(jù)流橋接到利用n維數(shù)據(jù)的一個或多個外部處理模塊。
69.根據(jù)權利要求67所述的系統(tǒng),其中所述處理陣列處理來自多級n維存儲器的數(shù)據(jù),其中所述多級n維存儲器包括至少一個級別的塊存儲器,從而以塊的形式存儲數(shù)據(jù),所述塊存儲器被連接到所述n維存儲器;一個尋址轉(zhuǎn)換模塊,以訪問所述塊存儲器和所述n維存儲器中的數(shù)據(jù);以及一個數(shù)據(jù)多路復用器/多路分離器,以將來自所述n維存儲器的數(shù)據(jù)流橋接到所述塊存儲器。
70.根據(jù)權利要求67所述的系統(tǒng),其中所述系統(tǒng)適于對二維視頻序列進行編碼。
71.一種方法,其包括接收一個n維幀序列,該n維幀序列包含一個原始n維幀;并且以保存所述原始n維幀內(nèi)塊的相鄰關系的順序,來掃描所述n維幀序列,使其成為一個一維的塊序列。
72.根據(jù)權利要求71所述的方法,其中如果兩個塊是空間上或時間上的鄰居,那么它們就被認為是鄰居。
73.根據(jù)權利要求71所述的方法,其中所述方法適于對二維視頻序列進行編碼。
74.根據(jù)權利要求73所述的方法,其中所述的掃描所述n維幀序列使其成為一個一維的塊序列的步驟包括掃描來自所述n維幀序列的一組塊中第一行的點;識別這組塊中第二行的點,識別所述第二行的點的開端位于所述第一行結束的位置處。
75.根據(jù)權利要求74所述的方法,其包括對完成所述n維幀序列的第一幀的掃描做出響應;對所述n維幀序列的第二幀進行掃描,識別所述第一幀結束處的所述第二幀的開端;并且掃描所述第二幀中各行的點,掃描順序與掃描所述第一幀時的順序相反。
76.一種處理信號序列的方法,其包括接收一個信號序列,所述信號序列包括一個n維當前幀,所述n維當前幀包括多個當前幀塊和多個n維參考幀,所述多個n維參考幀中的每一幀包括多個參考幀塊;存儲所述多個n維參考幀;為所述多個當前幀塊中的每一塊識別所述多個參考幀塊中的一個預測塊;為所述多個當前幀塊中每一塊的相應預測塊確定一個參考位移索引和一個塊預測差值,其中所述參考位移索引用于識別參考幀塊內(nèi)的一個點;為所述多個當前幀塊中的每一塊,對其相應的塊預測差值和相應的參考位移索引進行編碼,并藉此創(chuàng)建多個編碼塊;并且根據(jù)預定格式把所述多個編碼塊打包在一起。
77.一種處理信號序列的系統(tǒng),其包括用于接收一個信號序列的裝置,所述信號序列包括一個n維當前幀,所述n維當前幀包括多個當前幀塊和多個n維參考幀,所述多個n維參考幀中的每一幀包括多個參考幀塊;存儲所述多個n維參考幀的裝置;為所述多個當前幀塊中的每一塊識別所述多個參考幀塊中一個預測塊的裝置;為所述多個當前幀塊中每一塊的相應預測塊確定一個參考位移索引和一個塊預測差值的裝置,其中所述參考位移索引用于識別參考幀塊內(nèi)的一個點;為所述多個當前幀塊中的每一塊、對其相應塊預測差值和相應參考位移索引進行編碼的裝置,并藉此創(chuàng)建多個編碼塊;以及根據(jù)預定格式把所述多個編碼塊打包在一起的裝置。
78.一種存有電路描述的機器可讀介質(zhì),所述電路包括一個用于接收信號序列的區(qū)分器,所述信號序列包括一個n維當前幀,所述n維當前幀包括多個當前幀塊和多個n維參考幀,所述多個n維參考幀中的每一幀包括多個參考幀塊;一個存儲所述多個n維參考幀的幀緩沖器;一個塊匹配預測器,其為所述多個當前幀塊中的每一塊識別所述多個參考幀塊中的一個預測塊,并為所述多個當前幀塊中每一塊的相應預測塊確定一個參考位移索引和一個塊預測差值,其中所述參考位移索引用于識別所述參考幀塊內(nèi)的一個點;一個塊編碼器,其為所述多個當前幀塊中的每一塊,對其相應的塊預測差值和相應的參考位移索引進行編碼,并藉此創(chuàng)建多個編碼塊;以及一個序列編碼器,其根據(jù)預定格式把所述多個編碼塊打包在一起。
全文摘要
本發(fā)明描述了一種處理信號序列的系統(tǒng)和方法。公開了一個混合型的基于塊匹配和轉(zhuǎn)換的N維信號序列編碼器和解碼器。該編碼器包括編碼器側的塊匹配預測器,其包括基于墑的成本函數(shù),該成本函數(shù)可根據(jù)塊匹配差值的特定能量監(jiān)測而被估計;一種快速塊匹配搜索方法,它學習來自相鄰塊的結果,并且僅僅通過訪問少量的點來執(zhí)行大范圍的搜索。而且公開了一種方法,其基于編碼器的輸出,來動態(tài)地調(diào)節(jié)成本函數(shù)參數(shù)和其他的編碼控制參數(shù),并對編碼器的質(zhì)量和性能進行優(yōu)化。
文檔編號H04N7/12GK1809839SQ200480017625
公開日2006年7月26日 申請日期2004年6月23日 優(yōu)先權日2003年6月23日
發(fā)明者T-C·李, W-L·陳, Y·黃, L-H·姚, H-S·陳 申請人:維切普公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1