專(zhuān)利名稱(chēng):一種基于avs的運(yùn)動(dòng)估計(jì)裝置及搜索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻編碼技術(shù),尤其涉及一種基于AVS的運(yùn)動(dòng)估計(jì)裝置及 搜索方法。
背景技術(shù):
現(xiàn)有數(shù)字視頻編碼通常采用運(yùn)動(dòng)估計(jì)來(lái)實(shí)現(xiàn)幀間壓縮,運(yùn)動(dòng)估計(jì)的方法是 先將當(dāng)前編碼幀劃分為固定大小的塊,然后針對(duì)每個(gè)要被編碼的塊,在參考幀 的一定搜索范圍內(nèi)找出與它匹配誤差最小的塊,計(jì)算匹配誤差所依據(jù)的準(zhǔn)則是 累計(jì)絕對(duì)值差(SAD)。兩者間的空間偏移就是當(dāng)前塊的運(yùn)動(dòng)向量,其中每個(gè)可能 的運(yùn)動(dòng)向量被稱(chēng)為候選向量。確定運(yùn)動(dòng)向量之后,對(duì)每個(gè)塊只需編碼它與參考 幀中匹配塊的插圖像即可,這樣可以大大減少編碼的比特?cái)?shù)。在AVS編碼標(biāo)準(zhǔn) 中,有4種不同尺寸形狀的像素塊被用于運(yùn)動(dòng)估計(jì),包括8x8、 16x8、 8x16、 16x16, AVS的編碼器要在這些樹(shù)狀分割模式中選擇一種模式進(jìn)行編碼,要確定 這個(gè)最優(yōu)模式就要對(duì)其中9個(gè)不同像素子塊分別進(jìn)行運(yùn)動(dòng)估計(jì),求出它們各自 的運(yùn)動(dòng)向量,即可變尺寸塊的運(yùn)動(dòng)估計(jì)方法。此外,AVS標(biāo)準(zhǔn)中運(yùn)動(dòng)向量計(jì)算 的準(zhǔn)則改為使被編碼像素塊的率失真代價(jià)最小, 一個(gè)子塊的率失真代價(jià)包括兩 部分, 一個(gè)是子塊的SAD,這與以往的編碼標(biāo)準(zhǔn)中是一致的,還有一部分是與 運(yùn)動(dòng)向量有關(guān)的運(yùn)動(dòng)向量編碼代價(jià)。實(shí)現(xiàn)運(yùn)動(dòng)估計(jì)的方法很多,常用的有菱形法、三步法、四步法、六邊形法 等等。這幾種方法雖然加速了運(yùn)動(dòng)估計(jì),但它們的數(shù)據(jù)流不規(guī)則,每次估計(jì)運(yùn) 算的時(shí)間不確定,所以硬件實(shí)現(xiàn)中通常使用全搜索算法。但在大多數(shù)情況下, 全搜索算法不能有效的減少運(yùn)動(dòng)估計(jì)所需的計(jì)算量,不能滿(mǎn)足實(shí)時(shí)編碼的要求。全搜索算法結(jié)合陣處理器結(jié)構(gòu)可以實(shí)現(xiàn)8x8像素塊的SAD計(jì)算,其他模式 (如8xl6、 16x8、 16x16)的SAD利用加法樹(shù)(Add Tree)得到。搜索前,預(yù) 先將當(dāng)前宏塊像素裝載到4個(gè)8x8處理單元(PE)陣列中,每個(gè)PE陣列的結(jié)構(gòu)如圖1所示;然后在:t叟索窗口中,按照如圖2所示的先下移再右移的順序, 以每個(gè)搜索點(diǎn)為起始點(diǎn),依次讀入一行(16個(gè))參考像素。這種方法因?yàn)镻E 陣列在結(jié)構(gòu)上的規(guī)則性、控制上的脈動(dòng)性,負(fù)載均勻,易于模塊化和硬件實(shí)現(xiàn)。 但是該方法的缺點(diǎn)是重復(fù)讀取了大量的參考像素,數(shù)據(jù)的重用性差,且需要的 時(shí)鐘周期較長(zhǎng)。發(fā)明內(nèi)容本發(fā)明解決的技術(shù)問(wèn)題是提供一種基于AVS的運(yùn)動(dòng)估計(jì)裝置及搜索方法, 可以大大提高數(shù)據(jù)的重用性,使得當(dāng)前宏塊象素和參考窗口中象素均只需讀入 一次,從而節(jié)省時(shí)鐘周期。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用了如下技術(shù)手段 一種基于AVS的運(yùn)動(dòng) 估計(jì)裝置,包含整像素運(yùn)動(dòng)估計(jì)總控制器、加法樹(shù)、模式選擇控制器、率失真 計(jì)算模塊和模式比較模塊,所述運(yùn)動(dòng)估計(jì)裝置還包含一個(gè)計(jì)算及數(shù)據(jù)保存陣列和陣列控制器,所述整像素運(yùn)動(dòng)估計(jì)總控制器分別連接至陣列控制器、加法樹(shù) 及模式選擇控制器,陣列控制器的輸出端分別連接至計(jì)算及數(shù)據(jù)保存陣列和加 法樹(shù),加法樹(shù)的輸出端連接至模式選擇控制器,模式選擇控制器的輸出端分別 連接至率失真計(jì)算模塊和模式比較模塊,率失真計(jì)算模塊的輸出端連接至模式 比較模塊,所述計(jì)算及數(shù)據(jù)保存陣列用于讀取當(dāng)前宏塊像素和參考像素。所述的計(jì)算及數(shù)據(jù)保存陣列由左右兩部分組成,左邊為計(jì)算單元陣列,右邊 為寄存器陣列。所述的計(jì)算單元陣列由16x16個(gè)計(jì)算單元組成,所述的寄存器陣列由16x2ph 個(gè)寄存器組成,其中2ph為運(yùn)動(dòng)估計(jì)的搜索窗口的邊長(zhǎng)。所述的計(jì)算單元由一個(gè)當(dāng)前宏塊像素寄存器、 一個(gè)參考像素寄存器及求兩者 差絕對(duì)值的計(jì)算器組成。本發(fā)明的另一方案是提供一種采用上述運(yùn)動(dòng)估計(jì)裝置的運(yùn)動(dòng)估計(jì)搜索方法, 其包含以下步驟步驟l、在第一個(gè)時(shí)鐘,讀入當(dāng)前宏塊的第一行像素,并存放在16個(gè)計(jì)算 單元的當(dāng)前宏塊像素寄存器中,同時(shí)讀入第一行參考像素,存放在16個(gè)計(jì)算單 元的參考像素寄存器和第一行2ph個(gè)寄存器中;然后對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算;步驟2、在下一個(gè)時(shí)鐘,將上一時(shí)鐘保存的當(dāng)前宏塊像素和參考像素向下移 入第二行相應(yīng)的寄存器中,讀入當(dāng)前宏塊的第二行像素和第二行參考像素,并 對(duì)計(jì)算單元中的像素進(jìn);f亍差絕對(duì)值計(jì)算;步驟3、重復(fù)步驟1~2,直至16個(gè)時(shí)鐘結(jié)束,當(dāng)前宏塊的全部像素和16 x(2ph+16)個(gè)參考像素都被讀入寄存器并計(jì)算相應(yīng)的差絕對(duì)值;步驟4、將每列寄存器的參考像素向左移一列,將第一列寄存器的參考像素 移至最后一列寄存器中;并對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算,即開(kāi)始進(jìn)行 搜索窗口的第一行第二個(gè)搜索點(diǎn)的累計(jì)絕對(duì)值差SAD計(jì)算;步驟5、重復(fù)步驟4,經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的首行像素搜索和SAD 計(jì)算;步驟6、讀入新一行參考像素,并左移后存于第一行,同時(shí)將每行寄存器的 參考像素下移一行,將第一行參考像素?cái)D出寄存器陣列;步驟7、計(jì)算當(dāng)前宏塊像素與參考像素差的絕對(duì)值,求得搜索窗中第二行參 考像素中最后一個(gè)搜索點(diǎn)的SAD值;步驟8、將每列寄存器中的參考像素右移到后一列寄存器中,最后一列中的 參考像素移入第一列中,即計(jì)算搜索窗口第二行倒數(shù)第二個(gè)搜索點(diǎn)的SAD;步驟9、重復(fù)步驟8,再經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的第二行像素搜索 和SAD計(jì)算;步驟IO、重復(fù)步驟6-9,直到搜索窗口中所有點(diǎn)都搜索完成。由于采用了以上的基于AVS的運(yùn)動(dòng)估計(jì)裝置及搜索方法,與現(xiàn)有技術(shù)相比由于提高了數(shù)據(jù)的重用性,節(jié)省了時(shí)鐘周期,可以更好的滿(mǎn)足編碼的實(shí)時(shí)性要求。
本發(fā)明的基于AVS的運(yùn)動(dòng)估計(jì)裝置及搜索方法由以下的實(shí)施例及附圖詳細(xì)払4>圖1為現(xiàn)有技術(shù)的處理單元陣列結(jié)構(gòu)示意圖; 圖2為現(xiàn)有技術(shù)的搜索順序示意圖;圖3為本發(fā)明運(yùn)動(dòng)估計(jì)裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明的計(jì)算與數(shù)據(jù)保存陣列結(jié)構(gòu)示意圖;圖5為本發(fā)明的計(jì)算單元結(jié)構(gòu)示意圖;圖6為本發(fā)明的搜索順序示意圖。
具體實(shí)施方式
以下將對(duì)本發(fā)明的運(yùn)動(dòng)估計(jì)裝置及搜索方法作進(jìn)一步的詳細(xì)描述。 如圖3所示,本實(shí)施例提供的一種基于AVS的運(yùn)動(dòng)估計(jì)裝置,包含整像素 運(yùn)動(dòng)估計(jì)總控制器、加法樹(shù)、模式選擇控制器、率失真計(jì)算模塊和模式比較模 塊,所述運(yùn)動(dòng)估計(jì)裝置還包含一個(gè)計(jì)算及數(shù)據(jù)保存陣列和陣列控制器。其中, 整像素運(yùn)動(dòng)估計(jì)總控制器分別連接至陣列控制器、加法樹(shù)及模式選擇控制器的 輸入端,陣列控制器的輸出端分別連接至計(jì)算及數(shù)據(jù)保存陣列和加法樹(shù),加法 樹(shù)的輸出端連接至模式選擇控制器,模式選擇控制器的輸出端分別連接至率失 真計(jì)算模塊和模式比較模塊,率失真計(jì)算模塊的輸出端連接至模式比較模塊,所述計(jì)算及數(shù)據(jù)保存陣列用于讀取當(dāng)前宏塊像素和參考像素。如圖4所示,所述的計(jì)算及數(shù)據(jù)保存陣列由左右兩部分組成,左邊為計(jì)算 單元陣列,右邊為寄存器陣列。所述的計(jì)算單元陣列由16x16個(gè)計(jì)算單元組成, 所述的寄存器陣列由16x2ph個(gè)寄存器組成,其中2ph為運(yùn)動(dòng)估計(jì)的搜索窗口的 邊長(zhǎng)。如圖5所示,計(jì)算單元陣列中的每個(gè)計(jì)算單元由一個(gè)當(dāng)前宏塊像素寄存器、一個(gè)參考像素寄存器及求兩者差絕對(duì)值的計(jì)算器組成。采用上述運(yùn)動(dòng)估計(jì)裝置的運(yùn)動(dòng)估計(jì)搜索方法包含以下步驟步驟l、在第一個(gè)時(shí)鐘,讀入當(dāng)前宏塊的第一行像素,并存放在16個(gè)計(jì)算單元的當(dāng)前宏塊像素寄存器中,同時(shí)讀入第一行參考像素,存放在16個(gè)計(jì)算單元的參考像素寄存器和第一行2ph個(gè)寄存器中;然后對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算;步驟2、在下一個(gè)時(shí)鐘,將上一時(shí)鐘保存的當(dāng)前宏塊像素和參考像素向下移 入第二行相應(yīng)的寄存器中,讀入當(dāng)前宏塊的第二行像素和第二行參考像素,并 對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算;步驟3、重復(fù)步驟1~2,直至16個(gè)時(shí)鐘結(jié)束,當(dāng)前宏塊的全部像素和16 x(2ph+16)個(gè)參考像素都被讀入寄存器并計(jì)算相應(yīng)的差絕對(duì)值;步驟4、將每列寄存器的參考像素向左移一列,將第一列寄存器的參考像素 移至最后一列寄存器中;并對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算,即開(kāi)始進(jìn)行 搜索窗口的第一行第二個(gè)搜索點(diǎn)的SAD計(jì)算;步驟5、重復(fù)步驟4,經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的首行像素搜索和SAD 計(jì)算;步驟6、讀入新一行參考像素,并左移后存于第一行,同時(shí)將每行寄存器的 參考像素下移 一行,將第 一行參考像素?cái)D出寄存器陣列;步驟7、計(jì)算當(dāng)前宏塊像素與參考像素差的絕對(duì)值,求得搜索窗中第二行參 考像素中最后一個(gè)搜索點(diǎn)的SAD值;步驟8、將每列寄存器中的參考像素右移到后一列寄存器中,最后一列中的 參考像素移入第一列中,即計(jì)算搜索窗口第二行倒數(shù)第二個(gè)搜索點(diǎn)的SAD;步驟9、重復(fù)步驟8,再經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的第二行像素搜索 和SAD計(jì)算;步驟IO、重復(fù)步驟6~9,直到搜索窗口中所有點(diǎn)都搜索完成。 在步驟2和步驟3之間,加法樹(shù)在整像素模塊總控制器的控制下,對(duì)計(jì)算 單元陣列中計(jì)算得到的像素差的絕對(duì)值進(jìn)行組合,分別得到8x8、 16x8、 8x16 和16x16四種模式下的SAD值;將得到的SAD值送入模式選擇控制器,在模 式選擇控制器的控制下,率失真計(jì)算模塊完成各種4莫式下的率失真代價(jià),并與 之前的SAD值求和后送入模式比較模塊中,與之前已保存的SAD與率失真代 價(jià)之和最小的模式進(jìn)行比較,選出較小者保存,即可得到匹配誤差最小的參考 像素。
權(quán)利要求
1、一種基于AVS的運(yùn)動(dòng)估計(jì)裝置,包含整像素運(yùn)動(dòng)估計(jì)總控制器、加法樹(shù)、模式選擇控制器、率失真計(jì)算模塊和模式比較模塊,其特征在于,所述運(yùn)動(dòng)估計(jì)裝置還包含一個(gè)計(jì)算及數(shù)據(jù)保存陣列和陣列控制器,所述整像素運(yùn)動(dòng)估計(jì)總控制器分別連接至陣列控制器、加法樹(shù)及模式選擇控制器,陣列控制器的輸出端分別連接至計(jì)算及數(shù)據(jù)保存陣列和加法樹(shù),加法樹(shù)的輸出端連接至模式選擇控制器,模式選擇控制器的輸出端分別連接至率失真計(jì)算模塊和模式比較模塊,率失真計(jì)算模塊的輸出端連接至模式比較模塊,所述計(jì)算及數(shù)據(jù)保存陣列用于讀取當(dāng)前宏塊像素和參考像素。
2、 如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)裝置,其特征在于,所述的計(jì)算及數(shù)據(jù)保 存陣列由左右兩部分組成,左邊為計(jì)算單元陣列,右邊為寄存器陣列。
3、 如權(quán)利要求2所述的運(yùn)動(dòng)估計(jì)裝置,其特征在于,所述的計(jì)算單元陣列 由16x16個(gè)計(jì)算單元組成,所述的寄存器陣列由16x2ph個(gè)寄存器組成,其中2ph 為運(yùn)動(dòng)估計(jì)的搜索窗口的邊長(zhǎng)。
4、 如權(quán)利要求3所述的運(yùn)動(dòng)估計(jì)裝置,其特征在于,所述的計(jì)算單元由一 個(gè)當(dāng)前宏塊像素寄存器、 一個(gè)參考像素寄存器及求兩者差絕對(duì)值的計(jì)算器組成。
5、 采用如權(quán)利要求1所述的運(yùn)動(dòng)估計(jì)裝置的運(yùn)動(dòng)估計(jì)搜索方法,其特征在 于,所述方法包含以下步驟步驟1、在第一個(gè)時(shí)鐘,讀入當(dāng)前宏塊的第一行像素,并存放在16個(gè)計(jì)算 單元的當(dāng)前宏塊像素寄存器中,同時(shí)讀入第一行參考像素,存放在16個(gè)計(jì)算單 元的參考像素寄存器和第一行2ph個(gè)寄存器中;然后對(duì)計(jì)算單元中的像素進(jìn)行 差絕對(duì)值計(jì)算;步驟2、在下一個(gè)時(shí)鐘,將上一時(shí)鐘保存的當(dāng)前宏塊像素和參考像素向下移 入第二行相應(yīng)的寄存器中,讀入當(dāng)前宏塊的第二行像素和第二行參考像素,并 對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算;步驟3、重復(fù)步驟1~2,直至16個(gè)時(shí)鐘結(jié)束,當(dāng)前宏塊的全部像素和16 x(2ph+16)個(gè)參考像素都被讀入寄存器并計(jì)算相應(yīng)的差絕對(duì)值;步驟4、將每列寄存器的參考像素向左移一列,將第一列寄存器的參考像素移至最后一列寄存器中;并對(duì)計(jì)算單元中的像素進(jìn)行差絕對(duì)值計(jì)算,即開(kāi)始進(jìn)行 搜索窗口的第一行第二個(gè)搜索點(diǎn)的累計(jì)絕對(duì)值差SAD計(jì)算;步驟5、重復(fù)步驟4,經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的首行像素搜索和SAD 計(jì)算;步驟6、讀入新一行參考像素,并左移后存于第一行,同時(shí)將每行寄存器的 參考像素下移 一行,將第 一行參考像素?cái)D出寄存器陣列;步驟7、計(jì)算當(dāng)前宏塊像素與參考像素差的絕對(duì)值,求得搜索窗中第二行參 考像素中最后一個(gè)搜索點(diǎn)的SAD值;步驟8、將每列寄存器中的參考像素右移到后一列寄存器中,最后一列中的 參考像素移入第一列中,即計(jì)算搜索窗口第二行倒數(shù)第二個(gè)搜索點(diǎn)的SAD;步驟9、重復(fù)步驟8,再經(jīng)過(guò)2ph個(gè)時(shí)鐘,完成參考窗口的第二行像素搜索 和SAD計(jì)算;步驟IO、重復(fù)步驟6~9,直到搜索窗口中所有點(diǎn)都搜索完成。
全文摘要
本發(fā)明提供了一種基于AVS的運(yùn)動(dòng)估計(jì)裝置及搜索方法,所述裝置包含的計(jì)算及數(shù)據(jù)保存陣列由計(jì)算單元陣列和寄存器陣列組成。所述搜索方法將當(dāng)前宏塊像素和參考像素平行逐行讀入計(jì)算單元陣列和寄存器陣列,然后對(duì)第一行的各個(gè)像素搜索點(diǎn)進(jìn)行SAD計(jì)算,當(dāng)完成第一行后,通過(guò)像素的陣列變換,開(kāi)始對(duì)第二行從最后一個(gè)像素搜索點(diǎn)開(kāi)始進(jìn)行SAD計(jì)算,直至該行像素完成,同樣完成所有參考像素的計(jì)算。所述方法可以減少像素的重復(fù)讀入,提高像素的重用率,從而提高編碼效率。
文檔編號(hào)H04N7/26GK101227611SQ200810033359
公開(kāi)日2008年7月23日 申請(qǐng)日期2008年1月31日 優(yōu)先權(quán)日2008年1月31日
發(fā)明者劉錦陽(yáng), 王蕾睿, 霞 范 申請(qǐng)人:上海廣電(集團(tuán))有限公司中央研究院