專利名稱:全搜索擴展可變塊運動估計電路的制作方法
技術領域:
本發明涉及的是一種數字視頻處理技術領域的裝置,具體是一種全搜索擴展可變 塊運動估計電路。
背景技術:
數字視頻傳輸的圖像數據中往往存在著大量的冗余數據,如果可以將那些冗余數 據除去,從而可以大大減少數據的傳輸量。運動估計(Motion Estimation,簡稱ME)通過消 除運動圖像中時間域的相關性,計算兩幀之間的參考塊的絕對差值(the Sum of Absolute Difference,簡稱SAD),由于兩幀之間的差可以用比幀內編碼少得多的比特數來編碼,從而 達到壓縮圖像的目的。運動補償(Motion Compensation,簡稱MC)利用先前圖像和運動估 計的結果來預測、補償當前的圖像。由于視頻圖像是位于時間軸區間內的一組連續畫面,因此相鄰幀間的變化量一般 很小,僅是運動物體的空間位置略有移動。因此運動估計和運動補償技術是去除大量冗余 的有效方法。運動估計作為視頻編碼器的核心部件,也是視頻壓縮中的最復雜的部分,對視頻 圖像的編碼壓縮質量起到決定性的作用。在運動估計的算法研究中,人們針對不同應用提 出了多種不同的算法;在這些算法中,最為經典且具有實用性的為全搜索塊匹配算法(Full Search BlockMatching Algorithm,簡稱 FSBM 算法)。全搜索塊匹配算法(FullSearch Block Matching Algorithm,簡稱 FSBM 算法) 是指,將圖像中的一幀的搜索區域劃分成許多互不重疊的16X16像素宏塊(Macro-Block, 簡稱MB)之后,每一宏塊與相鄰幀搜索區域的所有塊的像素值進行比較匹配來得到最佳匹 配塊,即具有與當前塊比較匹配后擁有最小SAD值的塊。所得的匹配塊與當前塊的相對位 移稱為運動矢量(Motion Vector,簡稱MV)。視頻壓縮編碼時,僅對運動矢量編碼即可。基于宏塊的全搜索塊匹配算法結構簡單,易于硬件實現,硬件電路結構整齊,并且 可重復性高,易于擴展,并能夠得到全局最優的運動矢量,因此被廣泛應用于各種視頻編碼 標準中。該算法的最大缺點是運算量較大。在基于宏塊的運動估計的基礎上,人們又引入的基于可變塊的運動估計算法。與 基于宏塊的運動估計算法不同,在可變塊運動估計算法中,進行運動估計的塊除了包括 16X16像素的宏塊外,還包括4X4、4X8、8X4、8X8、8X16、16X8等不同大小的塊。在當前正在制定的High Performance Coding標準中,人們提出了擴展可變塊運 動估計算法,進行運動估計的塊包括4X 4、4X 8、8 X 4、8 X 8、8 X 16、16 X 8、16 X 16、16 X 32、 32X16、32X32、32X64、64X32、64X64像素這些大小不同的塊。通過檢索,并未發現針對擴展可變塊運動估計算法的電路結構。且如果套用現有 的算法和已有的結構則需要64X64個運算處理單元(簡稱PE),造成硬件開銷過大;如果 將其分解為16X16的小塊進行計算,則會需要較大的輸入端口和較大的存儲空間。
發明內容
本發明針對現有技術存在的上述不足,提供一種全搜索擴展可變塊運動估計電 路,利用PE上下左右側的緩存陣列以及控制信號對數據流的控制來實現用64X4的運動估 計PE陣列來完成64X64大小宏塊的擴展可變塊運動估計。本發明是通過以下技術方案實現的,本發明包括四個緩存陣列、一個PE陣列,其 中第一緩存陣列的數據雙向輸入輸出端口分別與PE陣列的第一數據輸入輸出端、第三緩 存陣列的上側三行數據輸入輸出端、第四緩存陣列的上側三行數據輸入輸出端相連接并傳 輸搜索區域數據信息,第二緩存陣列的數據雙向輸入輸出端口分別與PE陣列的第二數據 輸入輸出端、第三緩存陣列的下側三行數據輸入輸出端、第四緩存陣列的下側三行數據輸 入輸出端相連接并傳輸搜索區域數據信息,第三緩存陣列的數據雙向輸入輸出端口與PE 陣列的第三數據輸入輸出端、第一緩存陣列的左側數據輸入輸出端、第二緩存陣列的左側 數據輸入輸出端相連接并傳輸搜索區域數據信息,第四緩存陣列的數據雙向輸入輸出端口 與PE陣列的第四數據輸入輸出端、第一緩存陣列的右側數據輸入輸出端、第二緩存陣列的 右側數據輸入輸出端連接并傳輸搜索區域數據信息,PE陣列的數據輸入端接收搜索區域數 據流及其控制信號、參考塊數據流及其控制信號,第一至第四緩存陣列的數據輸入端接收 搜索區域數據流及其控制信號。所述的PE陣列由16個4X4的雙向縱向級聯的基本宏塊PE陣列構成,該基本宏 塊PE陣列處理的數據包括搜索區域數據部分和參考塊數據部分,其中搜索區域數據部 分在基本宏塊PE陣列內進行橫向雙向傳遞及縱向雙向傳遞并在基本宏塊PE陣列之間縱向 雙向傳遞;參考塊數據部分在基本宏塊PE陣列內進行依次單向傳遞。所述的第一緩存陣列為3X4個緩存組成,其中緩存陣列中的每一個緩存均與其 左右相鄰的緩存橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。所述的第二緩存陣列為3X4個緩存組成,其中緩存陣列中的每一個緩存均與其 左右相鄰的緩存橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。所述的第三緩存陣列為70X3個緩存組成;其中緩存陣列中的每一個緩存均與 其左右相鄰的緩存橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。所述的第四緩存陣列為70X3個緩存組成;其中緩存陣列中的每一個緩存均與 其左右相鄰的緩存橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。所述的PE陣列與緩存陣列之間連接關系為PE陣列與第一、第二緩存陣列的互聯 為縱向雙向級聯,進行搜索區域數據的雙向傳播;PE陣列與第三、第四緩存陣列的互聯為 橫向雙向級聯,進行搜索區域的數據的雙向傳播;PE陣列上下兩側的第一、第二緩存陣列 與左右兩側的第三、第四緩存陣列的互聯為橫向雙向級聯,進行搜索區域的數據的雙向傳 播。本發明電路通過以下方式進行工作本發明結構主要由PE陣列及其上、下、左、右側的第一、第二、第三、第四緩存陣列 構成。PE陣列負責SAD值的計算及搜索區域和參考塊數據的傳遞,緩存陣列負責搜索區域 數據的暫存及傳遞。PE陣列由16個4X 4的基本宏塊PE陣列構成,每個基本宏塊PE陣列由16個PE 相互連接構成,第一行PE依次為?、(1,?、1沖、2卞£(1.3,第二行?£依次為PEi^PEi^PEu,PE1^,第三行 PE 依次為 PE2,。,PE2a, PE2j2, PE2.3,第四行 PE 依次為 PE3,。,PE3il,PE3,2,PE3.3。基 本宏塊陣列中的每一個PE都與其左右相鄰的PE之間橫向雙向輸入輸出連接,與其上下相 鄰的PE之間縱向雙向輸入輸出連接,且橫向和縱向的雙向連接傳輸的數據為搜索區域數 據。此夕卜,PE0,ο,PEli0' PE2,ο' PE3,0,PE0,ι,PEiaj PE2,” PE3,” PE0,2,PEli2, PE2,2,PE3,2,PE0,3,PE1, 3,PE2,3, PE3,3之間依次順次連接,連接所傳輸的數據為參考塊的數據,參考塊數據從PEu輸 入,依次傳輸至PE3,3為止。如圖3所示。每個PE內部結構主要包括搜索區域數據的暫存及傳輸,參考塊數據的選擇、暫存 和傳輸,SAD值的計算及暫存。每個時鐘周期,搜索區域數據在控制信號的控制下上、下、 左、右輸入和輸出PE并暫存Reg_s,并將需要進行計算的搜索區域數據輸入SAD計算模塊
x_y I,參考塊的數據在Rfr_pxl_Ctrl信號的控制下選擇進入Regl向外輸出或進入Reg2 并輸入到SAD計算模塊I x-y I,SAD計算模塊I x-y |進行SAD值計算后結果進入暫存Reg并 輸出。如圖4所示。數據流在控制信號的控制下,PE陣列每個時鐘周期都進行一個64X4的基本塊條 帶SAD值的計算,并輸出;則16個時鐘周期輸出16個基本塊條帶的SAD值,256個時鐘周期 則可以得到16個64X64的宏塊的SAD值。從而達到對擴展可變塊進行運動估計的目標。再將輸出的SAD值利用加法樹結構來疊加,則由64X4的基本塊條帶SAD值可得 到64X64的宏塊的SAD值。本發明提出了一種全新的針對擴展可變塊的運動估計電路,使得其運算陣列所占 用的硬件開銷與傳統的可變塊運動估計電路相當,而在內部緩存和輸入端口有很好的折 中,使得其在HDTV和更大圖像的編碼中有很好的應用前景。
圖1為本發明結構示意圖。圖2為SAD值的加法樹結構示意圖。圖3為BBPEA的電路結構示意圖。圖4為PE內部電路結構示意圖。圖5為第一緩存陣列的電路結構示意圖。圖6為第二緩存陣列的電路結構示意圖。圖7為第三緩存陣列的電路結構示意圖。圖8為第四緩存陣列的電路結構示意圖。
具體實施例方式下面對本發明的實施例作詳細說明,本實施例在以本發明技術方案為前提下進行 實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護范圍不限于下述的實施 例。如圖1所示,本實施例包括第一緩存陣列1、第二緩存陣列2、第三緩存陣列3、第 四緩存陣列4和PE陣列5,其中第一緩存陣列1的數據雙向輸入輸出端口分別與PE陣列 5的第一數據輸入輸出端、第三緩存陣列3的上側三行數據輸入輸出端、第四緩存陣列4的 上側三行數據輸入輸出端相連接并傳輸搜索區域數據信息,第二緩存陣列2的數據雙向輸入輸出端口分別與PE陣列5的第二數據輸入輸出端、第三緩存陣列3的下側三行數據輸入 輸出端、第四緩存陣列4的下側三行數據輸入輸出端相連接并傳輸搜索區域數據信息,第 三緩存陣列3的數據雙向輸入輸出端口與PE陣列5的第三數據輸入輸出端、第一緩存陣列 1的左側數據輸入輸出端、第二緩存陣列2的左側數據輸入輸出端相連接并傳輸搜索區域 數據信息,第四緩存陣列4的數據雙向輸入輸出端口與PE陣列5的第四數據輸入輸出端、 第一緩存陣列1的右側數據輸入輸出端、第二緩存陣列2的右側數據輸入輸出端連接并傳 輸搜索區域數據信息,PE陣列5的數據輸入端接收搜索區域數據流及其控制信號、參考塊 數據流及其控制信號,第一至第四緩存陣列4的數據輸入端接收搜索區域數據流及其控制 信號。所述的PE陣列5由16個4X4的雙向縱向級聯的基本宏塊PE陣列6、7、…、22 組成,該基本宏塊PE陣列處理的數據包括搜索區域數據部分23和參考塊數據部分24,其 中搜索區域數據部分23在基本宏塊PE陣列內進行橫向雙向傳遞及縱向雙向傳遞并在基 本宏塊PE陣列之間縱向雙向傳遞;參考塊數據部分24在基本宏塊PE陣列內進行依次單向 傳遞。如圖5所示,所述的第一緩存陣列1為3X4個緩存組成,頂端一行的緩存依次為 R0,0' R0,!' Ro,2' Ru,每一個緩存都有左、右、下側三個方向的數據雙向輸入及輸出;第二行的 緩存依次為Ru,Ria, Rlj2, R1j3'第三行的緩存依次為R2,。,R2jl'R2,2' R2,3,第二行和第三行的每 一個緩存均有左、右、上、下側四個方向的數據雙向輸入及輸出。最左側的緩存Ru,Ru,R2, O與第一緩存陣列外左側橫向輸入輸出雙向連接,最右側的緩存Ru,Ru,R2,3與第一緩存陣 列外右側橫向輸入輸出雙向連接,最下側的緩存R2,ο,R2,!' R2,2' R2,3與第一緩存陣列外下側 縱向輸入輸出雙向連接。如圖6所示,所述的第二緩存陣列2為3X4個緩存組成,底端一行的緩存依次為 R2,0,R2,!' R2,2' R2,3,每一個緩存都有左、右、上側三個方向的數據雙向輸入及輸出;第二行的 緩存依次為禮,。,Ria, Rlj2, R1j3'第一行的緩存依次為Rtl,。,R0,i'R0,2' R。,3,第一行和第二行的每 一個緩存均有左、右、上、下側四個方向的數據雙向輸入及輸出,最左側的緩存Ru,R1,ο' R2,ο 與第二緩存陣列外左側橫向輸入輸出雙向連接,最右側的緩存R0,3,Ru,R2,3與第二緩存陣 列外右側橫向輸入輸出雙向連接,最上側的緩存Ru,Ro,i' R0,2'禮,3與第二緩存陣列外上側 縱向輸入輸出雙向連接。如圖7所示,所述的第三緩存陣列3為70X3個緩存組成,最左側一列的緩存依次 為禮,。,禮,。……R69,C1,其中對于R1^R2itl……R68,ο,每一個緩存都有右、上、下側三個方向的數 據雙向輸入及輸出,及左側數據的輸入;而Ru僅有右、下側方向的數據雙向輸入及輸出, 左側的數據輸入;R69itl僅有右、上側方向的數據雙向輸入及輸出,左側的數據輸入。中間一 列緩存依次為Rcm, Ria……R69il,最右側一列緩存依次為Rtl,2,Rli2……R69,2,這兩列緩存中, Rlll,R2jl……!^〃及禮』,R2,2……R68,2的每一個緩存均有左、右、上、下側四個方向的數據雙 向輸入及輸出;而Rtl,pR。』僅有左、右、下側方向的數據雙向輸入及輸出A69ll,R69,2僅有左、 右、上側方向的數據雙向輸入及輸出,最左側的緩存Ru,R1^……R69,ο與第三緩存陣列外左 側橫向輸入連接,最右側的緩存Rtl,2,禮,2……R69,2與第三緩存陣列外右側橫向輸入輸出雙向 連接,最上側的緩存Rtl,。,R0jl' R0,2' R0,3沒有上側的輸入輸出連接,R69j0' R69,I' R69,2,R69,3沒有 下側的輸入輸出連接。
如圖8所示,所述的第四緩存陣列4為70X3個緩存組成,最右側一列的緩存依次 為禮,2,禮,2……R69,2,其中對于R1^R2i2……R68,2,每一個緩存都有左、上、下側三個方向的數 據雙向輸入及輸出,及右側數據的輸入;而Rc^2僅有左、下側方向的數據雙向輸入及輸出, 右側的數據輸入;R69,2僅有左、上側方向的數據雙向輸入及輸出,右側的數據輸入。中間一 列緩存依次為Rcm, Ria……R69il,最左側一列緩存依次為Rtl,。,Ru……R69,。,這兩列緩存中, Rlll,R2jl……!^〃及禮,。,R2,Q……R68,。的每一個緩存均有左、右、上、下側四個方向的數據雙 向輸入及輸出;而Rtl,”禮,。僅有左、右、下側方向的數據雙向輸入及輸出A69ll,R69,。僅有左、 右、上側方向的數據雙向輸入及輸出,最左側的緩存Ru,R1^……R69,。與第四緩存陣列外左 側橫向輸入輸出雙向連接,最右側的緩存Rtl,2,禮,2……R69,2與第三緩存陣列外右側橫向輸入 連接,最上側的緩存Rtl,。,R0jl' R0,2' R0,3沒有上側的輸入輸出連接,R69j0' R69,I' R69,2,R69,3沒有 下側的輸入輸出連接。所述的PE陣列5與緩存陣列之間連接關系為PE陣列5與第一緩存陣列1、第二 緩存陣列2的互聯為縱向雙向級聯,進行搜索區域數據的雙向傳播;PE陣列5與第三緩存 陣列3、第四緩存陣列4的互聯為橫向雙向級聯,進行搜索區域的數據的雙向傳播;PE陣列 5上下兩側的第一緩存陣列1、第二緩存陣列2與左右兩側的第三緩存陣列3、第四緩存陣列 4的互聯為橫向雙向級聯,進行搜索區域的數據的雙向傳播。PE陣列5左右兩側的第三緩存陣列3、第四緩存陣列4的搜索區域的數據輸入可 以由整體電路的外部輸入端輸入其左側或右側,也有從運算單元陣列和第一緩存陣列1、第 二緩存陣列2中輸入其右側或左側,既有數據內部的互聯,又有外部的數據輸入;而PE陣列 5上下側的第一緩存陣列1、第二緩存陣列2的搜索區域數據均由與其相鄰的第三緩存陣列 3、第四緩存陣列4從左右側輸入,或由PE陣列5中數據從上下側輸入,僅為內部數據的互 聯,沒有外部數據輸入。第三緩存陣列3、第四緩存陣列4的搜索區域的數據輸入以四分之一列為單位輸 入,經過4個時鐘周期完成一列搜索區域數據傳送值左或右側緩存陣列的最外側。由于PE 陣列5的搜索區域數據由緩存陣列中直接互聯傳輸,因此數據控制信號shift[l:0]控制為 左右移動數據時,每個時鐘周期均可移動一列數據,即一個時鐘周期就可完成數據左右傳 送至PE陣列或第一緩存陣列1、第二緩存陣列2。參考塊的數據位寬共為16X8bit = 128bit,分別輸入至16個4X4的基本宏塊 PE陣列6、7、…、22的輸入中,且16個基本宏塊PE陣列6、7、…、22的參考塊數據輸入是 并行同步的。一共需要16個時鐘周期能夠完成一次64X4像素的參考塊數據到達各個目 的PE中。從而每個基本宏塊PE陣列6、7、…、22每個時鐘周期均可輸出一組16個SAD值, 每16個時鐘周期可輸出16組每組16個SAD值;64X4的PE陣列每個時鐘周期均可輸出 256個SAD值,每16個時鐘周期可輸出16組每組256個SAD值。PE陣列每16個時鐘周期 輸出的16組SAD值恰為對應搜索窗中一個4X4小塊內的各點對應的16個64X4像素的 基本塊條帶與參考塊中的一個基本塊條帶之間計算64X4像素的SAD值所需的各點的SAD 值。4X 4塊的SAD值疊加模塊由于上節所描述PE陣列5和第一緩存陣列1、第二緩存陣列2、第三緩存陣列3、第四緩存陣列4電路結構得到的輸出為單個像素點的SAD值,并且希望能夠得到4X4像素 的基本宏塊的SAD值,因此SAD值的疊加首先將各個基本宏塊PE陣列6、7、…、22得到16 個SAD值相加得到4X4像素的基本宏塊的SAD值,通過加法樹得到4X4的基本宏塊的SAD 值。由16個單獨的SAD相加得到一個4X4像素的SAD值的加法樹如圖2所示。然后類似 的,再將這些值相加得到64X4像素的基本塊條帶的SAD值。然后每隔16個時鐘周期,將各個相應的64X4像素的基本塊條帶的SAD值輸入相 應的累加器,經過256個時鐘周期的15次疊加得到最終64X64的宏塊的SAD值。共有16 個64X4像素的SAD值累加至64X64像素的SAD值的累加器。每16個時鐘周期輸出的各個基本塊條帶的SAD值的輸出順序都不同,因此需要有 控制信號對每個時鐘周期輸出的基本塊條帶的64X4像素的SAD值的連接進行選擇。以狀 態機的形式,將掃描順序劃分為不同模式,每一種掃描模式在16個時鐘周期內的16個SAD 值分別屬于不同的累加器。基本宏塊PE陣列結構6、7、…、22如圖3所示,將64行X 4列的PE陣列5劃分為16個4X 4的基本宏塊PE陣列 (BBPEA)6,7,…、22,不僅有利于控制參考塊的數據傳輸,而且陣列整齊,方便產生4X4的 基本宏塊的SAD值,且具有可重復性。由圖3中的基本宏塊PE陣列6、7、…、22可以看到,虛線線條代表參考塊的像素 數據流,位寬為1像素的8bit ;實線線條代表搜索區域的當前塊的像素數據流,位寬同樣為 1像素的8bit。可以看到,參考塊的數據又左上角的第一個PE開始,依次進入該基本宏塊 陣列6、7、…、22的各個PE中,只需將輸入的參考塊數據倒序依次進入,并控制數據用于運 算的時序,即可完成參考塊數據的傳輸。搜索區域的當前塊的數據的內部傳輸,采用廣播式 的上下左右互聯,與外部的上下左右互聯也類似,內部數據流和內外數據流的上、下、左、右 的控制由控制信號shift[l:0]統一控制。一個基本宏塊陣列(6、7、…、22)的輸入主要有時鐘信號clk,復位信號rst_n,搜 索區域數據流的控制信號shift[l:0],上、下、左、右的搜索區域的當前塊的像素點的數據 輸入,參考塊的像素數據輸入及控制信號;輸出16個SAD值。一個PE內部電路結構如圖4所示,虛線線條代表參考塊的像素數據流,位寬為1像素的Sbit ;實線線條 代表搜索區域的當前塊的像素數據流,位寬同樣為1像素的8bit ;紫紅色線條代表輸出一 個參考塊像素點和一個搜索區域的當前塊的點的SAD值輸出。一個PE的主要功能為求出參考塊的一個像素和搜索區域的當前塊的一個像素之 間的差的絕對值,并完成參考塊的一個像素點的數據和搜索區域的一個像素點的數據的傳 輸。其中,參考塊的數據由相鄰的PE傳入并傳送至下一個相鄰的PE中,搜索區域的像素分 別向上、下、左、右四個方向傳送。參考塊的數據的傳送采用乒乓模式,Regl和Reg2交替工作以保證參考塊數據的 傳輸和應用。非本PE所需的參考塊的像素值放入Regl中,然后將此數據不斷向下傳輸,以 保證參考塊數據的傳輸的流水型;根據算法的設計,本PE計算所需的參考塊數據將在每16 個時鐘周期的最后一個周期進入,則將該數據送至Reg2。每十六個時鐘周期為一個循環,在 上一次16個時鐘周期的完成16個基本塊條帶的SAD計算時,恰好完成下一次的16個時鐘周期的16個基本塊條帶的SAD計算所需的參考塊的數據。—個PE的輸入主要有時鐘信號clk,復位信號rst_n,搜索區域數據流的控制信號 shift[l:0],上、下、左、右的搜索區域的當前塊的像素點的數據輸入,參考塊的像素數據輸 入及控制信號;輸出1個像素的SAD值。第一緩存陣列1、第二緩存陣列2結構搜索區域的數據以列為單位進入,第一緩存陣列1、第二緩存陣列2中的搜索區域 的數據由上下的PE陣列和第三緩存陣列3、第四緩存陣列4傳送進入,并非由外界直接進 入。第一緩存陣列1、第二緩存陣列2的列數設置為與PE陣列一致,為4列。根據搜索區域的數據流的分析,第一緩存陣列1、第二緩存陣列2僅需設計為分別 可存儲3行像素的數據的大小即可。以第一緩存陣列1為例,如圖5所示。第一緩存陣列1中,除了最上面一排的寄存器沒有上端數據輸入外,每個數據寄 存器均有橫向和縱向的4個方向數據的雙向連接輸入和輸出。同理,PE陣列5下側的第二 緩存陣列2中,除了最下面一排的寄存器沒有下端數據輸入外,每個數據寄存器均有橫向 和縱向的4個方向數據的雙向連接輸入和輸出。第二緩存陣列2與上側對稱,如圖6所示。PE陣列5上下側的第一緩存陣列1和第二緩存陣列2的輸入輸出信號主要有時鐘 信號clk,復位信號rst_n,搜索區域數據流的控制信號shift[l:0],上、下、左、右的搜索區 域的當前塊的像素點的數據輸入,參考塊的像素數據輸入及控制信號;輸出為上、下、左、右 的搜索區域的當前塊的像素點的數據。第三緩存陣列3、第四緩存陣列4結構設計為搜索區域的數據以列為單位進入,綜合考慮第一緩存陣列1、第二緩存陣列 2與PE陣列5結構及搜索區域數據流,設置第三緩存陣列3、第四緩存陣列4的行數應為 64+3+3 = 70 行。搜索區域的數據流的分析,以列為單位數據進入,將第三緩存陣列3、第四緩存陣 列4設計為分別可存儲3列像素的數據即可。即第三緩存陣列3、第四緩存陣列4均為70X3 列。以PE左側的第三緩存陣列3為例,如圖7所示。第三緩存陣列3中,除了最左面一列的寄存器的左端僅有數據輸入僅有輸出外, 每個數據寄存器均有橫向和縱向的4個方向數據的雙向連接輸入和輸出。同理,第四緩存 陣列4中,除了最右側一列的寄存器的右端僅有數據輸入沒有輸出外,每個數據寄存器均 有橫向和縱向的4個方向數據的雙向連接輸入和輸出。第四緩存陣列4與左側對稱,如圖8所示。第三緩存陣列3、第四緩存陣列4的輸入輸出信號主要有時鐘信號clk,復位信號 rst_n,搜索區域數據流的控制信號shift[l:0],上、下、左、右的搜索區域的當前塊的像素 點的數據輸入,參考塊的像素數據輸入及控制信號;輸出為上、下、左、右的搜索區域的當前 塊的像素點的數據。由于全搜索可變塊運動估計算法的計算量較大,所以一般采用ASIC的方式進行 芯片實現。根據視頻應用的不同,可變塊運動估計的電路結構可分為一維陣列結構和二維陣列結構兩類。對于較小的視頻圖像,一般采用一維的陣列結構完成全搜索可變塊運動估 計算法的計算任務。而對于較大圖像的視頻壓縮,例如HDTV或者更大圖像的視頻編碼,一 般采用二維陣列結構來實現可變塊運動估計算法,且陣列的規模一般要大于或者等于算法 中最大塊中像素的個數。對于擴展塊的運動估計算法,其最大的塊為64X64像素。如果套用當前的可變塊 運動估計VLSI結構,則電路中將包括64 X 64個運算處理單元,差不多是傳統結構硬件開銷 的16倍。同時,如果將64X64像素宏塊SAD值計算順序分解為依次算出組成64X64像素 宏塊的16個小塊的SAD值,然后將這些小SAD相加得到宏塊的SAD值,則會導致缺少數據復 用,因此需要較多的輸入端口 ;另一方面,如果宏塊SAD值計算順序為計算出所有16X16MB 與參考塊的搜索范圍的所有SAD值后,將其寄存在buffer中,再將各SAD值進行相加得到 大的宏塊的SAD值,而這樣的策略會導致需要大量的buffer,需較大的存儲空間。在提出的擴展可變塊運動估計電路結構中,得到了一種全新的電路結構,其陣列 的大小與傳統的可變塊運動估計電路的陣列規模相似,僅需要64X4個運算處理單元(遠 少于64 X 64個);且在輸入端口和內部緩存上進行了較好的折中,使得其在HDTV及其更大 圖像的編碼中具有較好的應用前景。
權利要求
一種全搜索擴展可變塊運動估計電路,其特征在于,包括四個緩存陣列、一個PE陣列,其中第一緩存陣列的數據雙向輸入輸出端口分別與PE陣列的第一數據輸入輸出端、第三緩存陣列的上側三行數據輸入輸出端、第四緩存陣列的上側三行數據輸入輸出端相連接并傳輸搜索區域數據信息,第二緩存陣列的數據雙向輸入輸出端口分別與PE陣列的第二數據輸入輸出端、第三緩存陣列的下側三行數據輸入輸出端、第四緩存陣列的下側三行數據輸入輸出端相連接并傳輸搜索區域數據信息,第三緩存陣列的數據雙向輸入輸出端口與PE陣列的第三數據輸入輸出端、第一緩存陣列的左側數據輸入輸出端、第二緩存陣列的左側數據輸入輸出端相連接并傳輸搜索區域數據信息,第四緩存陣列的數據雙向輸入輸出端口與PE陣列的第四數據輸入輸出端、第一緩存陣列的右側數據輸入輸出端、第二緩存陣列的右側數據輸入輸出端連接并傳輸搜索區域數據信息,PE陣列的數據輸入端接收搜索區域數據流及其控制信號、參考塊數據流及其控制信號,第一至第四緩存陣列的數據輸入端接收搜索區域數據流及其控制信號。
2.根據權利要求1所述的全搜索擴展可變塊運動估計電路,其特征是,所述的PE陣列 由16個4X4的雙向縱向級聯的基本宏塊PE陣列構成,該基本宏塊PE陣列處理的數據包 括搜索區域數據部分和參考塊數據部分,其中搜索區域數據部分在基本宏塊PE陣列內 進行橫向雙向傳遞及縱向雙向傳遞并在基本宏塊PE陣列之間縱向雙向傳遞;參考塊數據 部分在基本宏塊PE陣列內進行依次單向傳遞。
3.根據權利要求1所述的全搜索擴展可變塊運動估計電路,其特征是,所述的第一緩 存陣列和第二緩存陣列均為3X4個緩存組成,其中的每一個緩存均與其左右相鄰的緩存 橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。
4.根據權利要求1所述的全搜索擴展可變塊運動估計電路,其特征是,所述的第三緩 存陣列和第四緩存陣列均為70X3個緩存組成;其中的每一個緩存均與其左右相鄰的緩存 橫向雙向連接,與其上下相鄰的緩存縱向雙向連接。
5.根據權利要求1所述的全搜索擴展可變塊運動估計電路,其特征是,所述的PE陣列 與緩存陣列之間連接關系為PE陣列與第一、第二緩存陣列的互聯為縱向雙向級聯,進行 搜索區域數據的雙向傳播;PE陣列與第三、第四緩存陣列的互聯為橫向雙向級聯,進行搜 索區域的數據的雙向傳播;PE陣列上下兩側的第一、第二緩存陣列與左右兩側的第三、第 四緩存陣列的互聯為橫向雙向級聯,進行搜索區域的數據的雙向傳播。
全文摘要
一種數字視頻處理技術領域的全搜索擴展可變塊運動估計電路,包括四個緩存陣列、一個PE陣列,第一緩存陣列的輸出端口與PE陣列的第一數據輸入端相連接并傳輸搜索區域數據信息,第二緩存陣列的輸出端口與PE陣列的第二數據輸入端相連接并傳輸搜索區域數據信息,第三緩存陣列的輸出端口與PE陣列的第三數據輸入端相連接并傳輸搜索區域數據信息,第四緩存陣列的輸出端口與PE陣列的第四數據輸入端相連接并傳輸搜索區域數據信息,PE陣列的輸入端接收搜索區域數據流及其控制信號、參考塊數據流及其控制信號,第一至第四緩存陣列的參考數據輸入端接收搜索區域數據流及其控制信號。本發明實現用64×4的運動估計PE陣列來完成64×64大小宏塊的擴展可變塊運動估計。
文檔編號H04N7/26GK101945289SQ20101051685
公開日2011年1月12日 申請日期2010年10月22日 優先權日2010年10月22日
發明者何衛鋒, 毛志剛, 陳偉偉 申請人:上海交通大學