專利名稱:雙斜柵掃描實現對角線匹配運動估計匹配電路結構和方法
雙斜柵掃描實現對角線匹配運動估計匹配電路結構和方法
技術領域:
本發明涉及視頻編碼技術領域,尤其涉及一種雙斜柵掃描實現對角線匹配運動估 計匹配方法和電路結構。背景技術:
運動估計的基本思想是將圖像序列的每一幀分成許多互不重疊的宏塊,并認為宏 塊內所有像素的位移量都相同,然后對每個宏塊到參考幀某一給定特定搜索范圍內根據一 定的匹配準則找出與當前塊最相似的塊,即匹配塊,匹配塊與當前塊的相對位移即為運動 矢量。視頻壓縮的時候,只需保存運動矢量和殘差數據就可以完全恢復出當前塊。
運動估計主要用于消除視頻序列之間的時間冗余,是視頻編碼中的一項關鍵技 術。運動估計所采用的主要算法通常為塊匹配算法,而塊匹配算法大致可分為兩類全搜索 算法(full search block matching algorithm, FSBMA)和快速搜索算法,而后者又包括 了如三步法(Three Step Search, TSS),菱形搜索法(Diamond Search, DS),四步法(Four Step Search, FSS)等。運動估計在搜索過程中需要找到與當前幀數據最為匹配的參考數 據來,這就存在一個比較準則的選取問題。衡量最佳匹配的準則有很多,如均方差(Mean SquareError, MSE),絕對平均差(Mean Absolute Difference, MAD)和絕對差和(Sumof Absolute Difference, SAD)等。但是,這些匹配準則都有一個明顯的缺點,就是計算量太 大,從而使得硬件實現的難度大大增加。在最常用的SAD的計算過程中,都是對參考塊和當 前塊中所有的像素進行匹配計算。為了減少匹配像素的個數,尋找了幾種不用全像素匹配 而所選擇的像素最能代表宏塊特征的四種匹配方式全匹配如圖1A,對角線匹配如圖1B, 框架匹配(circular match)如圖1C,十字匹配(cross match)如圖1D,圖中深色點為匹配 計算像素點。為了確定這四種匹配方式的效果,做了以下實驗在搜索策略為全搜索且搜 索塊大小為8X8時,分別使用全匹配,對角線匹配,十字匹配和框架匹配對視頻測試序列 tennis, salesman, garden和susie進行運動估計。與全搜索SAD計算的效果相比,三種匹 配的效果和全搜索都相差不是很大,雖然其中框架匹配準則最好,對角線匹配次之,十字匹 配最差,但是框架匹配和對角線匹配平均只相差0. ^dB,而且匹配塊大小為NXN時,對角 線匹配比框架匹配少計算(N-2) X2個像素點,計算量減少42. 86%,所以綜合考慮計算量, 性能和硬件實現,對角線匹配是最佳快速匹配準則方案。因此,如果能找到一種能大幅減少 匹配計算量并且同時能保持運動估計的準確性的匹配準則是十分有意義的。
發明內容
本發明要解決的技術問題之一,在于提供一種雙斜柵掃描實現對角線匹配運動估 計的匹配方法,克服了背景技術中匹配準則的計算量大,從而使得硬件實現的難度大大增 加的問題。
本發明上述技術問題是這樣實現的雙斜柵掃描實現對角線匹配運動估計的匹配 方法,包括如下步驟
步驟10、將每個要傳輸的圖像幀作為當前幀,已傳輸的用于參照的圖像幀作為參 考幀,每幀圖像劃分為自然數NXN的宏塊,在時序控制模塊的控制下,根據交叉寄存器所 需的雙斜柵順序分別讀取所述當前幀的NXN的宏塊和所述參考幀中給定對應搜索區域的 所有宏塊到當前塊存儲單元和參考塊存儲單元中;所述當前塊存儲單元和參考塊存儲單元 是交叉寄存器組結構;
步驟20、時序控制模塊控制當前塊存儲單元和參考塊存儲單元的交叉寄存器組將 各對應宏塊所需圖像像素送入陣列處理單元進行對角線匹配計算;所述對角線匹配計算即 由陣列處理單元計算當前塊存儲單元的一宏塊和參考塊存儲單元的一宏塊之間的所有圖 像像素點的差值并累加出最終的SAD值;
步驟30、當所有當前塊存儲單元和參考塊存儲單元對應的各宏塊進行對角線匹配 計算得到的對應SAD值后,由編碼模塊根據其各個宏塊的SAD值得出最終的位移矢量。
本發明要解決的技術問題之二,在于提供一種雙斜柵掃描實現對角線匹配運動估 計的匹配電路結構。
該技術問題之二是這樣實現的雙斜柵掃描實現對角線匹配運動估計的匹配電路 結構,包括編碼模塊,時序控制模塊,陣列處理單元、當前塊存儲單元以及參考塊存儲單元, 所述時序控制模塊連接有陣列處理單元和編碼模塊;所述當前塊存儲單元和參考塊存儲單 元均與所述陣列處理單元連接;所述陣列處理單元與編碼模塊連接。
其中所述陣列處理單元具體包括PE1陣列單元、PE2陣列單元、用于保存操作數 和運算結果信息的第一寄存器、加法器、累加器;所述PEl陣列單元和PE2陣列單元均與所 述第一寄存器相連,所述第一寄存器依次連接加法器和累加器,所述累加器將其運算結果 傳送給所述編碼模塊;所述PEl陣列單元和PE2陣列單元內部結構相同,具體為用于保存 操作數和運算結果信息的第二寄存器、減法器,所述第二寄存器與減法器相連接。
本發明具有如下優點1.使用對角線匹配算法可以相較于其他常見算法在大量 減少計算量的同時保持運動估計的效果;2.使用可復用資料的交叉寄存器組結構配合一 種雙斜柵掃描方式,可以充分復用交疊的數據,高效的實現對角線匹配算法。
圖IA為背景技術中當前塊和參考塊所有的像素進行全匹配的結構示意圖。
圖IB為背景技術中當前塊和參考塊所有的像素進行對角線匹配的結構示意圖。
圖IC為背景技術中當前塊和參考塊所有的像素進行框架匹配的結構示意圖。
圖ID為背景技術中當前塊和參考塊所有的像素進行十字匹配的結構示意圖。
圖2為本發明實現對角線匹配運動估計的匹配電路結構示意圖。
圖3為本發明實現對角線匹配運動估計的匹配電路結構中陣列處理單元的具體 結構示意圖。
圖4為本發明陣列處理單元中PEl陣列單元和PE2陣列單元的具體結構示意圖。
圖5為本發明雙斜柵掃描實現對角線匹配運動估計的匹配方法流程示意圖。
圖6本發明雙斜光柵對搜索區域的各候選塊進行掃描原理。
圖7本發明交叉寄存器的結構示意圖。
具體實施方式
參照圖2,雙斜柵掃描實現對角線匹配運動估計的匹配電路結構,包括當前塊存儲 單元10、參考塊存儲單元20、陣列處理單元30、編碼模塊40、時序控制模塊50,所述時序控 制模塊50連接有陣列處理單元30和編碼模塊40 ;所述當前塊存儲單元10和參考塊存儲 單元20均與所述陣列處理單元連接30 ;所述陣列處理單元30與編碼模塊40連接。
其中如圖3所示,所述陣列處理單元具體包括PE1陣列單元31、PE2陣列單元32、 用于保存操作數和運算結果信息的第一寄存器33、加法器34、累加器35 ;所述PEl陣列單 元31和PE2陣列單元32均與所述第一寄存器33相連,所述第一寄存器33依次連接加法 器34和累加器35,所述累加器35將其運算結果傳送給所述編碼模塊40。如圖4所示,所 述PEl陣列單元31和PE2陣列單元32具體包括用于保存操作數和運算結果信息的第二 寄存器311、減法器312,所述第二寄存器311與減法器312相連接。
其中當前塊存儲單元用于讀取圖像當前幀的NXN的宏塊。
參考塊存儲單元用于讀取圖像參考幀中給定對應搜索區域的所有宏塊。
時序控制模塊用于控制當前塊存儲單元和參考塊存儲單元的交叉寄存器組將各 對應宏塊所需圖像像素送入陣列處理單元中。
陣列處理單元用于進行對角線匹配的計算。
編碼模塊將根據其各個宏塊的SAD值得出最終的位移矢量。
加法器是用于將一候選塊圖像像素點的SAD值相加并輸出到累加器。
累加器負責在所有候選塊的圖像像素點的SAD值計算完畢后累加得出最后的 SAD,該模塊由中心控制器來控制,并在計算完每個候選塊后復位清零。
見圖5所示,雙斜柵掃描實現對角線匹配運動估計的匹配方法,包括如下步驟
步驟10、將每個要傳輸的圖像幀作為當前幀,已傳輸的用于參照的圖像幀作為參 考幀,每幀圖像劃分為自然數NXN的宏塊,在時序控制模塊的控制下,根據交叉寄存器所 需的雙斜柵順序分別讀取所述當前幀的NXN的宏塊和所述參考幀中給定對應搜索區域的 所有宏塊到當前塊存儲單元和參考塊存儲單元中;所述當前塊存儲單元和參考塊存儲單元 是交叉寄存器組結構;
步驟20、時序控制模塊控制當前塊存儲單元和參考塊存儲單元的交叉寄存器組將 各對應宏塊所需圖像像素送入陣列處理單元進行對角線匹配計算;所述對角線匹配計算即 由陣列處理單元計算當前塊存儲單元的一宏塊和參考塊存儲單元的一宏塊之間的所有圖 像像素點的差值并累加出最終的SAD值;
步驟30、當所有當前塊存儲單元和參考塊存儲單元對應的各宏塊進行對角線匹配 計算得到的對應SAD值后,由編碼模塊根據其各個宏塊的SAD值得出最終的位移矢量。
其中所述根據雙斜柵順序讀取所述參考幀中給定對應搜索區域的所有宏塊具體 為
對于NXN的宏塊,假設搜索區間為[_p,p]時,通過雙斜光柵對搜索區域的各候選 塊進行掃描搜索,所述各候選塊為所述參考幀中給定對應搜索區域的各宏塊,雖然有4*p_2 個最邊沿的候選塊沒有掃描,但是由于這些候選塊都處于估計成功概率最小的邊沿而且數 量小,所以對搜索效果造成影響很小。當采用這種近似全搜索方式,在搜索的過程中,如圖 6所示,斜光柵在搜索斜對角線的奇數行時,以從左下向右上的順序對各候選塊進行移動搜索;斜光柵在搜索斜對角線的偶數行時,以從右上向左下的順序對各候選塊進行移動搜索; 當斜光柵每搜索到每行的末尾時,需向右下移動一行像素,接著按相應順序繼續搜索。搜索 過程中,整個搜索區域共有2N個像素。在斜對角行中從第i塊移到第i+Ι塊、從上一行最 后的第j塊到下一行開始的第j+Ι塊或者在偶數行中從第k塊移到第k+Ι塊的過程中,斜 對角行的相鄰候選塊之間總有N-I個像素相同,因此僅需改變此斜對角行的一個像素和另 一對角行的全部像素。對于運算結構的設計,也充分利用上述的數據交疊,保留重復的數 據。當進行下一候選計算時,僅調入新像素的數據,而重復的數據僅在結構內部作相應的移 位操作即可。這樣,不僅可以降低對搜索區域存儲器的訪問次數而且還可以降低運算陣列 同存儲器之間的帶寬。
如圖7所示,為本發明交叉寄存器的結構示意圖。圖中Rl R16均代表一個Sbit 寄存器,所有箭頭都代表數據流向,圓圈中的A、B、C代表不同的開關;其交叉寄存器組結構 配合所述雙斜柵掃描方式來完成當前塊存儲單元和參考塊存儲單元對圖像數據的讀取。
雙斜柵掃描時,各候選塊的移動有三種左上到右下,右上到左下,左下到右上。在 針對雙斜光柵掃描方式的數據流特點,使用以下三種不同狀態的交替來完成相應的移位操 作
(1)第一狀態開關A通,B和C都斷開,實現斜光柵在搜索斜對角線的奇數行時, 從左下向右上的順序對各候選塊進行移動搜索。
(2)第二狀態開關B通,A和C都斷開,實現斜光柵在搜索斜對角線的偶數行時, 從右上向左下的順序對各候選塊進行移動搜索。
(3)第三狀態開關C通,A和B都斷開,實現奇數和偶數行之間轉換時,從左上到 右下的順序對各候選塊進行移動搜索。
在掃描過程中,上述三種狀態需要交替變換,順序是:A- > C- > B- > C- > A......這樣一直循環到掃描結束,從而實現了參考塊交疊數據的重用。
如圖3所示,所述的陣列處理單元包括PEl陣列單元、PE2陣列單元、用于保存操 作數和運算結果信息的第二寄存器、加法器、累加器;為了充分提高PEl陣列單元、PE2陣列 單元利用率和充分利用輸入帶寬,PEl陣列單元、PE2陣列單元具體工作流程如下
假設Rx為交叉寄存器,當交叉寄存器組讀入第一個候選塊(各候選塊中的一候選 塊)時,讀入順序為從Rl R16 (交叉寄存器組是由Rl R16組成)。當Rl R8寫滿后, 數據開始寫入R9的同時PEl和PE2陣列單元開始計算Rl、R2與對應當前候選塊中圖像像 素點的SAD值;其中像素點的SAD值的計算公式為
權利要求
1.一種雙斜柵掃描實現對角線匹配運動估計的匹配電路結構,其特征在于包括編碼 模塊、時序控制模塊、陣列處理單元、當前塊存儲單元以及參考塊存儲單元,所述時序控制 模塊連接有陣列處理單元和編碼模塊;所述當前塊存儲單元和參考塊存儲單元均與所述陣 列處理單元連接;所述陣列處理單元與編碼模塊連接。
2.根據權利要求1所述的雙斜柵掃描實現對角線匹配運動估計的匹配電路結構,其特 征在于所述陣列處理單元具體包括PE1陣列單元、PE2陣列單元、用于保存操作數和運算 結果信息的第一寄存器、加法器、累加器;所述PEl陣列單元和PE2陣列單元均與所述第一 寄存器相連,所述第一寄存器依次連接加法器和累加器,所述累加器將其運算結果傳送給 所述編碼模塊。
3.據權利要求2所述的雙斜柵掃描實現對角線匹配運動估計的匹配電路結構,其特征 在于所述PEl陣列單元和PE2陣列單元內部結構相同,具體為用于保存操作數和運算結 果信息的第二寄存器、減法器,所述第二寄存器與減法器相連接。
4.一種雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征在于包括如下步驟步驟10、將每個要傳輸的圖像幀作為當前幀,已傳輸的用于參照的圖像幀作為參考幀, 每幀圖像劃分為自然數NXN的宏塊,在時序控制模塊的控制下,根據交叉寄存器所需的雙 斜柵順序分別讀取所述當前幀的NXN的宏塊和所述參考幀中給定對應搜索區域的所有宏 塊到當前塊存儲單元和參考塊存儲單元中;所述當前塊存儲單元和參考塊存儲單元是交叉 寄存器組結構;步驟20、時序控制模塊控制當前塊存儲單元和參考塊存儲單元的交叉寄存器組將各對 應宏塊所需圖像像素送入陣列處理單元進行對角線匹配計算;所述對角線匹配計算即由陣 列處理單元計算當前塊存儲單元的一宏塊和參考塊存儲單元的一宏塊之間的所有圖像像 素點的差值并累加出最終的SAD值;步驟30、當所有當前塊存儲單元和參考塊存儲單元對應的各宏塊進行對角線匹配計算 得到的對應SAD值后,由編碼模塊根據其各個宏塊的SAD值得出最終的位移矢量。
5.根據權利要求4所述的雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征在 于所述步驟10中的根據雙斜柵順序讀取所述參考幀中給定對應搜索區域的所有宏塊具 體為通過雙斜光柵對搜索區域的各候選塊進行掃描搜索,所述各候選塊為所述參考幀中給 定對應搜索區域的各宏塊,在搜索的過程中,斜光柵在搜索斜對角線的奇數行時,以從左下 向右上的順序對各候選塊進行移動搜索;斜光柵在搜索斜對角線的偶數行時,以從右上向 左下的順序對各候選塊進行移動搜索;當斜光柵每搜索到每行的末尾時,需向右下移動一 行像素,接著按相應順序繼續搜索。
6.根據權利要求5所述的雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征 在于所述雙斜光柵對搜索區域的各候選塊進行掃描時,通過所述交叉寄存器陣列結構的 三個開關來完成不同的三種狀態的交替,來完成對搜索區域的各候選塊進行掃描的位移操 作。
7.根據權利要求6所述的雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征在 于所述三種狀態為第一狀態所述三個開關中的第一開關導通,第二開關和第三開關都斷開,實現斜光柵 在搜索斜對角線的奇數行時,從左下向右上的順序對各候選塊進行移動搜索;第二狀態所述三個開關中的第二開關導通,第一開關和第三開關都斷開,實現斜光柵 在搜索斜對角線的偶數行時,從右上向左下的順序對各候選塊進行移動搜索;第三狀態所述三個開關中的第三開關導通,第一開關和第二開關都斷開,實現奇數和 偶數行之間轉換時,從左上到右下的順序對各候選塊進行移動搜索。
8.根據權利要求4所述的雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征 在于所述的陣列處理單元包括PEl陣列單元、PE2陣列單元、用于保存操作數和運算結果 信息的第一寄存器、加法器、累加器;所述的陣列處理單元進行對角線匹配計算具體步驟如 下當交叉寄存器組讀入所述各候選塊中的第一候選塊時,讀入順序從第一交叉寄存器到 第十六交叉寄存器;所述的交叉寄存器組由第一交叉寄存器到第十六交叉寄存器組成;當 第一交叉寄存器到第八交叉寄存器寫滿后,圖像數據開始寫入第九交叉寄存器的同時,PEl 和PE2陣列單元開始計算第一交叉寄存器、第二交叉寄存器與對應當前候選塊中圖像像素 點的SAD值;然后當數據開始寫入第十交叉寄存器的同時,PEl陣列和PE2陣列單元計算第 三交叉寄存器、第四交叉寄存器與對應當前候選塊中圖像像素點的SAD值;如此,數據每往 前寫一個圖像像素點,PEl陣列和PE2陣列單元就往前計算兩個圖像像素點,當PEl陣列和 PE2陣列單元計算第十五交叉寄存器、第十六交叉寄存器兩點的同時,第一候選塊的計算結 束,如此循環,一直到所有候選塊的SAD值計算完畢。
9.根據權利要求8所述的雙斜柵掃描實現對角線匹配運動估計的匹配方法,其特征在 于所述各圖像像素點的SAD值的計算公式為
全文摘要
本發明提供一種雙斜柵掃描實現對角線匹配運動估計的匹配方法,將要傳輸的幀作為當前幀,已傳輸的作為參考的圖像幀稱為參考幀,將每幀圖像劃分成N×N的宏塊,當前幀的每一個宏塊與參考幀中給定對應搜索區域的所有宏塊對角線匹配計算,找出最佳匹配宏塊,將計算得到的對應各宏塊的SAD,由編碼模塊得出最終的位移矢量。本發明還提供了一種雙斜柵掃描實現對角線匹配運動估計的匹配電路結構,使用對角線匹配算法可以相較于其他常見算法大量減少計算量的同時保持運動估計的效果;且使用可復用資料的交叉寄存器組結構配合一種雙斜柵掃描方式,可以充分復用交疊的數據,高效的實現對角線匹配算法,實現了對角線匹配運動估計。
文檔編號H04N7/26GK102045568SQ201010614629
公開日2011年5月4日 申請日期2010年12月30日 優先權日2010年12月30日
發明者廖裕民 申請人:福州瑞芯微電子有限公司