專(zhuān)利名稱(chēng):可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號(hào)處理中的圖像和視頻編碼技術(shù)領(lǐng)域,特別涉及在編碼過(guò)程中可變塊尺寸 運(yùn)動(dòng)預(yù)測(cè)技術(shù)。
背景技術(shù):
在視頻壓縮中,為了更好的去除視頻信息的冗余,達(dá)到在保持視頻質(zhì)量的同時(shí)盡可能提 高壓縮比的目的,廣泛采用預(yù)測(cè)編碼和變換編碼結(jié)合的基于塊的混合編碼方法,通過(guò)變換編 碼將空域圖像映射到頻域系數(shù),有效地去除像素間的空間相關(guān)性,而基于運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ) 償?shù)念A(yù)測(cè)編碼則充分利用了相鄰幀間的時(shí)間相關(guān)性,從而獲得較好的壓縮性能。
由于塊匹配具有較低的硬件復(fù)雜度,對(duì)于實(shí)際運(yùn)動(dòng)來(lái)說(shuō)被認(rèn)為是最通用的方法之一,因 此在VLSI中廣泛采用,幾乎所有的H. 261/H. 263和MPEG1, 2/4的編解碼電路的物理組合都把塊 匹配用于運(yùn)動(dòng)估計(jì)。
為了得到最小的預(yù)測(cè)誤差,在比264〃乂(:中進(jìn)行幀間預(yù)測(cè)時(shí)不再采用固定塊尺寸模式,而 是采用可變塊尺寸模式對(duì)每個(gè)劃分的子塊進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,以得到最佳的匹配塊, 從而提高壓縮效率。H.264/AVC的多模式運(yùn)動(dòng)估計(jì)中, 一個(gè)16X16的宏塊(Macroblock, MB) 可以進(jìn)一步劃分成若干個(gè)子塊進(jìn)行補(bǔ)償。如圖1所示宏塊分割模式包括16X16, 16X8, 8X16, 8X8;對(duì)于8X8子塊,可以進(jìn)一步劃分成8X4, 4X8, 4X4塊模式,具體應(yīng)用如圖2所示,圖 2的當(dāng)前宏塊在參考幀的搜索區(qū)域內(nèi)搜索出的最優(yōu)預(yù)測(cè)模式為左上方的8X8子塊最優(yōu)模式為 兩個(gè)8X4子塊,對(duì)應(yīng)得運(yùn)動(dòng)矢量為MvO和Mvl,其余三個(gè)8X8子塊的最優(yōu)預(yù)測(cè)模式是8X8塊, 對(duì)應(yīng)得運(yùn)動(dòng)矢量分別是Mv2、 Mv3和Mv4。宏塊分割模式大大提高了各宏塊之間及宏塊內(nèi)部子塊 的關(guān)聯(lián)性。比264〃¥(:對(duì)編碼的宏塊進(jìn)行運(yùn)動(dòng)預(yù)測(cè)時(shí)要遍歷所有的預(yù)測(cè)模式,即對(duì)每一種尺寸 的子塊都要執(zhí)行一次搜索動(dòng)作,因此幀間預(yù)測(cè)就能針對(duì)圖像中不同大小物體的各種移動(dòng),利用 最適合的子塊尺寸進(jìn)行組合,以提高搜索的正確性,而不會(huì)因?yàn)橛霉潭ǔ叽绲膲K去搜索不同 大小的物體而導(dǎo)致在移動(dòng)時(shí)產(chǎn)生的誤差。圖3所示為H. 264/AVC中的可變塊尺寸塊匹配運(yùn)動(dòng)搜 索示例,在該示例中,經(jīng)過(guò)多模式運(yùn)動(dòng)估計(jì),當(dāng)前宏塊分割成五個(gè)子塊,各子塊對(duì)應(yīng)不同方 向的運(yùn)動(dòng)矢量。
確定宏塊分割模式(塊的尺寸)后,需要對(duì)每一個(gè)子塊編碼,計(jì)算每一個(gè)待編碼的子塊 對(duì)應(yīng)的運(yùn)動(dòng)矢量,然后編碼傳輸每個(gè)運(yùn)動(dòng)矢量和宏塊分割模式。因此當(dāng)選定一個(gè)比較大的塊 尺寸時(shí),則需要較少的碼字對(duì)分塊信息和運(yùn)動(dòng)矢量進(jìn)行編碼傳送,但是難于達(dá)到精確的匹配,也就是說(shuō)在圖像的殘差部分可能包含著比較多的信息;而選定一個(gè)較小的塊尺寸,可以顯著 降低殘差部分的信息,但是產(chǎn)生比較高的碼率來(lái)表示運(yùn)動(dòng)矢量和對(duì)應(yīng)的分塊策略。因此在不 同的條件下需要選擇合適塊分塊策略,塊劃分策略的好壞直接影響著編碼系統(tǒng)的效率和壓縮 效果。
目前有兩種普遍的運(yùn)動(dòng)預(yù)測(cè)的方法, 一種方法是對(duì)各種宏塊分割模式逐一迸行固定塊尺 寸的運(yùn)動(dòng)預(yù)測(cè),這種方法由于對(duì)每一中宏塊分割模式都需要遍歷搜索窗區(qū)域,所需的存儲(chǔ)器 操作帶寬巨大,同時(shí)所需的計(jì)算時(shí)間長(zhǎng),無(wú)法實(shí)現(xiàn)實(shí)時(shí)處理。另外一種方法基于具有最小的 宏塊分割尺寸的子塊進(jìn)行處理,計(jì)算出這些最小子塊的SAD殘差值后,通過(guò)若干最小子塊的 組合得到較大子塊的SAD殘差值,這種方法需存儲(chǔ)較多的中間計(jì)算結(jié)果,所需的暫存資源較 多。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服已有技術(shù)的不足,提出了一種實(shí)時(shí)處理H.264/AVC中可變塊尺寸 運(yùn)動(dòng)預(yù)測(cè)方法,該方法可以降低硬件開(kāi)銷(xiāo),所需存儲(chǔ)器操作帶寬小,計(jì)算時(shí)間短,所需暫存 資源少。
本發(fā)明同時(shí)提出了一種可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置。 可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法,包括如下步驟
(1) 從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素 及其對(duì)應(yīng)的參考宏塊像素,分別存儲(chǔ)在當(dāng)前宏塊像素存儲(chǔ)器和搜索窗像素存儲(chǔ)器, 直到遍歷搜索窗中的所有候選運(yùn)動(dòng)矢量;
(2) 從當(dāng)前宏塊像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素,并對(duì)當(dāng)前宏塊像 素進(jìn)行降采樣和像素截位處理;
(3) 進(jìn)行步驟(2)的同時(shí),從搜索窗像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的參考宏塊像 素,并對(duì)取出的參考宏塊像素進(jìn)行降采樣和像素截位處理;
(4) 將步驟(2)和步驟(3)處理后的像素送到SAD計(jì)算單元進(jìn)行運(yùn)算,計(jì)算該候選運(yùn) 動(dòng)矢量對(duì)應(yīng)的參考宏塊在各種宏塊分割模式下的SAD值;
(5) 各種宏塊分割模式下的SAD值與前一個(gè)候選運(yùn)動(dòng)矢量運(yùn)算得到的各種宏塊分割模 式下的SAD值進(jìn)行比較,選取各種宏塊分割模式下最小SAD值和對(duì)應(yīng)的運(yùn)動(dòng)矢量。
本發(fā)明還可以將所述步驟(2)和(3)處理的結(jié)果分別緩存在當(dāng)前宏塊像素寄存器陣列 和參考宏塊像素寄存器陣列,所述當(dāng)前宏塊像素寄存器陣列,將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元,所述參考宏塊像素寄存器陣列,將整個(gè)宏塊的像素在同一周期內(nèi) 提供給所述SAD計(jì)算單元。
為了便于水平和垂直方向相鄰的兩個(gè)侯選運(yùn)動(dòng)矢量之間預(yù)測(cè)處理的連續(xù)性,所述參考像 素寄存器陣列在一個(gè)計(jì)算周期內(nèi)在垂直方向向上和向下移動(dòng)若干行像素,在水平方向向左移 動(dòng)若干列像素。
可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置,包括當(dāng)前宏塊像素存儲(chǔ)器,搜索窗像素存儲(chǔ)器,宏塊像素
降采樣處理單元一、宏塊像素降采樣處理單元二,像素截位處理單元一、像素截位處理單元
二,當(dāng)前宏塊像素寄存器陣列,參考宏塊像素寄存器陣列,SAD計(jì)算單元,SAD比較單元,運(yùn) 動(dòng)預(yù)測(cè)流程控制單元,其中
所述當(dāng)前宏塊像素存儲(chǔ)器從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn)動(dòng)矢 量的當(dāng)前宏塊像素;
所述搜索窗像素存儲(chǔ)器從外部存儲(chǔ)器中持續(xù)取出當(dāng)前宏塊像素對(duì)應(yīng)的參考宏塊像素。 宏塊像素降采樣處理單元一、宏塊像素降采樣處理單元二分別獨(dú)立地從當(dāng)前宏塊像素存
儲(chǔ)器和搜索窗像素存儲(chǔ)器取出當(dāng)前宏塊像素和參考宏塊像素進(jìn)行降采樣處理,其在不影響所
述SAD計(jì)算精度的前提下減少當(dāng)前宏塊像素寄存器陣列和參考宏塊像素寄存器陣列的大小,同
時(shí)降低SAD計(jì)算單元的硬件資源消耗;
像素截位處理單元一、像素截位處理單元二分別獨(dú)立地對(duì)所述降釆樣處理后的當(dāng)前宏塊
像素和參考宏塊像素進(jìn)行像素截位處理,其在不影響所述SAD計(jì)算精度的前提下降低SAD計(jì)算
單元的硬件資源消耗;
當(dāng)前宏塊像素寄存器陣列暫存經(jīng)所述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素,寄 存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元;
參考宏塊像素寄存器陣列暫存經(jīng)所述宏塊像素降采樣和像素截位處理后的參考宏塊像 素,寄存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元;
為了便于水平和垂直方向相鄰的兩個(gè)侯選運(yùn)動(dòng)矢量之間的預(yù)測(cè)處理的連續(xù)性,參考像素 寄存器陣列在一個(gè)計(jì)算周期內(nèi)可在垂直方向向上和向下移位移行像素,在水平方向向左移動(dòng) 若干列像素的結(jié)構(gòu);
SAD計(jì)算單元計(jì)算當(dāng)前宏塊像素與候選運(yùn)動(dòng)矢量對(duì)應(yīng)的參考像素宏塊之間的相似度,將所 述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素與參考宏塊像素對(duì)應(yīng)位置上的差值的絕對(duì)值 的累加;
SAD比較單元選取各種宏塊分割模式下的最小SAD值所對(duì)應(yīng)的塊模式及運(yùn)動(dòng)矢量作為當(dāng)前
6宏塊位置的預(yù)測(cè)模式和運(yùn)動(dòng)矢量;
運(yùn)動(dòng)預(yù)測(cè)流程控制單元控制當(dāng)前宏塊像素存儲(chǔ)器、搜索窗像素存儲(chǔ)器、兩個(gè)宏塊像素降 采樣處理單元、兩個(gè)像素截位處理單元、當(dāng)前宏塊像素寄存器陣列單元、參考宏塊像素寄存 器陣列單元、宏塊SAD計(jì)算單元、SAD比較單元的啟動(dòng)。
本發(fā)明的有益效果主要體現(xiàn)在 一方面本方法采用全流水結(jié)構(gòu),整個(gè)運(yùn)動(dòng)估計(jì)運(yùn)算執(zhí)行 周期短,所需存儲(chǔ)器操作帶寬小,所需暫存資源少,可以實(shí)現(xiàn)在編碼器性能、功耗、面積之 間進(jìn)行權(quán)衡,采用降采樣和截位處理可以在不損編碼性能的情況下占用更少的硬件資源,對(duì) 編碼器的壓縮效率影響很小;另一方面由于本方法基于塊模式編碼,因此在多種視頻標(biāo)準(zhǔn)實(shí) 現(xiàn)都可以采用,具有很強(qiáng)的通用性。根據(jù)不同視頻編碼標(biāo)準(zhǔn),只需要針對(duì)多種該標(biāo)準(zhǔn)中宏塊 分割大小調(diào)整SAD累加和模式判決單元或模式選擇單元即可。
圖l為運(yùn)動(dòng)估計(jì)中使用的各種宏塊分割模式
圖2為運(yùn)動(dòng)估計(jì)中使用的各種宏塊分割模式的應(yīng)用示例
圖3為H. 264/AVC中的可變塊尺寸塊匹配運(yùn)動(dòng)搜索示例
圖4為搜索窗區(qū)域與搜索范圍的關(guān)系示例。
圖5為本發(fā)明采用的l/2降采樣模板。
圖6為本發(fā)明8x8宏塊分割的SAD計(jì)算和組合的過(guò)程
圖7為本發(fā)明可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法流程圖和可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置結(jié)構(gòu)圖 圖8為本發(fā)明實(shí)施例所實(shí)現(xiàn)的不同位數(shù)像素截位處理結(jié)果同JM8.4參考代碼的比較圖 圖9為本發(fā)明實(shí)施例所實(shí)現(xiàn)的H. 264/AVC編碼器RD曲線同JM8. 4參考代碼的比較圖
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明內(nèi)容進(jìn)一步說(shuō)明。
可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法,包括如下步驟,如圖7所示
(1) 從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素 及其對(duì)應(yīng)的參考宏塊像素,分別存儲(chǔ)在當(dāng)前宏塊像素存儲(chǔ)器和搜索窗像素存儲(chǔ)器, 直到遍歷搜索窗中的所有候選運(yùn)動(dòng)矢量;
(2) 從當(dāng)前宏塊像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素,并對(duì)當(dāng)前宏塊像 素進(jìn)行降采樣和像素截位處理;(3) 進(jìn)行步驟(2)的同時(shí),從搜索窗像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的參考宏塊像 素,并對(duì)取出的參考宏塊像素進(jìn)行降采樣和像素截位處理;
(4) 將步驟(2)和步驟(3)處理后的像素送到SAD計(jì)算單元進(jìn)行運(yùn)算,計(jì)算該候選運(yùn) 動(dòng)矢量對(duì)應(yīng)的參考宏塊在各種宏塊分割模式下的SAD值;
(5) 各種宏塊分割模式下的SAD值與前一個(gè)候選運(yùn)動(dòng)矢量運(yùn)算得到的各種宏塊分割模 式下的SAD值進(jìn)行比較,選取各種宏塊分割模式下最小SAD值和對(duì)應(yīng)的運(yùn)動(dòng)矢量。
本發(fā)明還可以將所述步驟(2)和(3)處理的結(jié)果分別緩存在當(dāng)前宏塊像素寄存器陣列 和參考宏塊像素寄存器陣列,所述當(dāng)前宏塊像素寄存器陣列,將整個(gè)宏塊的像素在同一周期 內(nèi)提供給所述SAD計(jì)算單元,所述參考宏塊像素寄存器陣列,將整個(gè)宏塊的像素在同一周期內(nèi) 提供給所述SAD計(jì)算單元。
為了便于水平和垂直方向相鄰的兩個(gè)侯選運(yùn)動(dòng)矢量之間預(yù)測(cè)處理的連續(xù)性,所述參考像 素寄存器陣列在一個(gè)計(jì)算周期內(nèi)在垂直方向向上和向下移動(dòng)若干行像素,在水平方向向左移 動(dòng)若干列像素。
可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置,如圖7所示,包括當(dāng)前宏塊像素存儲(chǔ)器(1),搜索窗像素存 儲(chǔ)器(2),宏塊像素降釆樣處理單元一 (3)、宏塊像素降采樣處理單元二 (4)、像素截位處 理單元一 (5)、像素截位處理單元二 (6),當(dāng)前宏塊像素寄存器陣列(7),參考宏塊像素寄 存器陣列(8), SAD計(jì)算單元(9), SAD比較單元(10),運(yùn)動(dòng)預(yù)測(cè)流程控制單元(11),其中
所述當(dāng)前宏塊像素存儲(chǔ)器(1)從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中預(yù)測(cè)某一候選運(yùn)動(dòng)矢 量的當(dāng)前宏塊像素;
所述搜索窗像素存儲(chǔ)器(2)從外部存儲(chǔ)器中持續(xù)取出當(dāng)前宏塊像素對(duì)應(yīng)的參考宏塊像素, 搜索窗內(nèi)所存儲(chǔ)的參考像素宏塊的個(gè)數(shù)取決于所采用的搜索范圍,例如,對(duì)于水平方向 [-16,15],垂直方向[-16,15]的搜索范圍,所需裝載的參考像素宏塊個(gè)數(shù)為3x3-9個(gè);對(duì)于水 平方向[-32,31],垂直方向[-32,31]的搜索范圍,所需裝載的參考像素宏塊個(gè)數(shù)為5^=25個(gè), 圖4所示為搜索窗中宏塊的個(gè)數(shù)與搜索范圍關(guān)系;
宏塊像素降采樣處理單元一 (3)、宏塊像素降采樣處理單元二 (4)分別獨(dú)立地從當(dāng)前宏 塊像素存儲(chǔ)器和搜索窗像素存儲(chǔ)器取出當(dāng)前宏塊像素和參考宏塊像素進(jìn)行降采樣處理,其在 不影響所述SAD計(jì)算精度的前提下減少當(dāng)前宏塊像素寄存器陣列和參考宏塊像素寄存器陣列 的大小,同時(shí)降低SAD計(jì)算單元的硬件資源消耗,圖5所示為一種降采樣模式的示例;
像素截位處理單元一 (5)、像素截位處理單元二 (6)分別獨(dú)立地對(duì)所述降采樣處理后的 當(dāng)前宏塊像素和參考宏塊像素進(jìn)行像素截位處理,其在不影響所述SAD計(jì)算精度的前提下降低
8SAD計(jì)算單元的硬件資源消耗。
像素截位處理的具體實(shí)現(xiàn)是對(duì)像素進(jìn)行右移的處理,保留移位后的高位數(shù)據(jù),如對(duì)8位像 素進(jìn)行保留5位的截位處理,只需右移3位即可。如圖8所示本發(fā)明實(shí)現(xiàn)的不同位數(shù)像素截位處 理的結(jié)果比較,比較的基準(zhǔn)是JM8.4參考代碼,像素截位處理從高到低分別取保留7位數(shù)據(jù)、 保留6位數(shù)據(jù)、保留5位數(shù)據(jù)和保留4位數(shù)據(jù)四種情況。結(jié)果表明,像素?cái)?shù)據(jù)保留5位時(shí),編碼 器的整體性能有略微的下降,信噪比降低O. ldB左右;而像素?cái)?shù)據(jù)保留4位時(shí),編碼器的整體 性能下降較多,信噪比降低0.3dB左右。
當(dāng)前宏塊像素寄存器陣列(7)暫存經(jīng)所述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素, 寄存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元。
參考宏塊像素寄存器陣列(8)暫存經(jīng)所述宏塊像素降采樣和像素截位處理后的參考宏塊 像素,寄存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元。
為了便于水平和垂直方向相鄰的兩個(gè)侯選運(yùn)動(dòng)矢量之間的預(yù)測(cè)處理的連續(xù)性,參考像素 寄存器陣列(8)在一個(gè)計(jì)算周期內(nèi)可在垂直方向向上和向下移位移行像素,在水平方向向左 移動(dòng)若干列像素的結(jié)構(gòu)。
SAD計(jì)算單元(9)計(jì)算當(dāng)前宏塊像素與候選運(yùn)動(dòng)矢量對(duì)應(yīng)的參考像素宏塊之間的相似度, 將所述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素與參考宏塊像素對(duì)應(yīng)位置上的差值的絕 對(duì)值的累加。 一種由最小宏塊分割的SAD得到較大宏塊分割的SAD的計(jì)算和組合的過(guò)程如圖6 所示,該圖所示為一個(gè)8x8宏塊分割的SAD計(jì)算和組合的過(guò)程,其他宏塊分割的SAD計(jì)算與組合 過(guò)程與此類(lèi)似。
SAD比較單元(10)包括SAD比較單元一和SAD比較單元二,
其中,SAD比較單元一,選定某一宏塊分割模式,比較不同的候選運(yùn)動(dòng)矢量在該宏塊分割 下的SAD值,從而選擇一個(gè)具有最小SAD值的運(yùn)動(dòng)矢量。
其中,SAD比較單元二,在SAD比較單元一提供的結(jié)果中,比較各種宏塊分割所對(duì)應(yīng)的最 小的SAD值,選其中最小者所對(duì)應(yīng)的宏塊分割模式及運(yùn)動(dòng)矢量作為當(dāng)前宏塊位置的預(yù)測(cè)模式和 運(yùn)動(dòng)矢量。
SAD比較單元的另外一種實(shí)現(xiàn)是包括SAD比較單元三和SAD比較單元四,
其中,SAD比較單元三,比較同一候選運(yùn)動(dòng)矢量在各種宏塊分割下的SAD值,從而選擇一
個(gè)具有最小SAD值的子塊模式。
其中,SAD比較單元四,在SAD比較單元三提供的結(jié)果中,比較各個(gè)候選運(yùn)動(dòng)矢量對(duì)應(yīng)的
最小的SAD值,選其中最小者所對(duì)應(yīng)的塊模式及運(yùn)動(dòng)矢量作為當(dāng)前宏塊位置的預(yù)測(cè)模式和運(yùn)動(dòng)運(yùn)動(dòng)預(yù)測(cè)流程控制單元(11)控制當(dāng)前宏塊像素存儲(chǔ)器、搜索窗像素存儲(chǔ)器、兩個(gè)宏塊 像素降采樣處理單元、兩個(gè)像素截位處理單元、當(dāng)前宏塊像素寄存器陣列單元、參考宏塊像 素寄存器陣列單元、宏塊SAD計(jì)算單元、SAD比較單元的啟動(dòng)。
如圖9所示為本發(fā)明實(shí)現(xiàn)的H.264/AVC編碼器RD曲線比較,比較基準(zhǔn)是JM8. 4參考代碼。結(jié) 果表明,本發(fā)明所實(shí)現(xiàn)的化264/八¥(:編碼器在相同的碼率下,相比于JM8.4參考代碼,信噪比 降低O. ldB左右。
應(yīng)該理解到的是,上述實(shí)施例只是對(duì)本發(fā)明的說(shuō)明,而不是對(duì)本發(fā)明的限制,任何不超 出本發(fā)明實(shí)質(zhì)精神范圍內(nèi)的發(fā)明創(chuàng)造,均落入本發(fā)明保護(hù)范圍之內(nèi)。
權(quán)利要求
1.可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法,其特征在于包括如下步驟(1)從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素及其對(duì)應(yīng)的參考宏塊像素,分別存儲(chǔ)在當(dāng)前宏塊像素存儲(chǔ)器和搜索窗像素存儲(chǔ)器,直到遍歷搜索窗中的所有候選運(yùn)動(dòng)矢量;(2)從當(dāng)前宏塊像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素,并對(duì)當(dāng)前宏塊像素進(jìn)行降采樣和像素截位處理;(3)進(jìn)行步驟(2)的同時(shí),從搜索窗像素存儲(chǔ)器取出一個(gè)候選運(yùn)動(dòng)矢量的參考宏塊像素,并對(duì)取出的參考宏塊像素進(jìn)行降采樣和像素截位處理;(4)將步驟(2)和步驟(3)處理后的像素送到SAD計(jì)算單元進(jìn)行運(yùn)算,計(jì)算該候選運(yùn)動(dòng)矢量對(duì)應(yīng)的參考宏塊在各種宏塊分割模式下的SAD值;(5)各種宏塊分割模式下的SAD值與前一個(gè)候選運(yùn)動(dòng)矢量運(yùn)算得到的各種宏塊分割模式下的SAD值進(jìn)行比較,選取各種宏塊分割模式下最小SAD值和對(duì)應(yīng)的運(yùn)動(dòng)矢量。
2. 如權(quán)利要求1所述可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法,其特征在于將所述步驟(2)和(3)處理 的結(jié)果分別緩存在當(dāng)前宏塊像素寄存器陣列和參考宏塊像素寄存器陣列,所述當(dāng)前宏塊 像素寄存器陣列,將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元,所述參考 宏塊像素寄存器陣列,將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元。
3. 如權(quán)利要求1所述可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法,其特征在于所述參考像素寄存器陣列為在 一個(gè)計(jì)算周期內(nèi)在垂直方向向上和向下移動(dòng)若干行像素,在水平方向向左移動(dòng)若干列像素。
4. 可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置,其特征在于包括當(dāng)前宏塊像素存儲(chǔ)器,搜索窗像素存儲(chǔ)器, 宏塊像素降采樣處理單元一、宏塊像素降采樣處理單元二,像素截位處理單元一、像素 截位處理單元二,當(dāng)前宏塊像素寄存器陣列,參考宏塊像素寄存器陣列,SAD計(jì)算單元, SAD比較單元,運(yùn)動(dòng)預(yù)測(cè)流程控制單元,其中-所述當(dāng)前宏塊像素存儲(chǔ)器從外部存儲(chǔ)器中持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn) 動(dòng)矢量的當(dāng)前宏塊像素;所述搜索窗像素存儲(chǔ)器從外部存儲(chǔ)器中持續(xù)取出當(dāng)前宏塊像素對(duì)應(yīng)的參考宏塊像素。宏塊像素降采樣處理單元一、宏塊像素降采樣處理單元二分別獨(dú)立地從當(dāng)前宏塊像素 存儲(chǔ)器和搜索窗像素存儲(chǔ)器取出當(dāng)前宏塊像素和參考宏塊像素進(jìn)行降采樣處理;像素截位處理單元一、像素截位處理單元二分別獨(dú)立地對(duì)所述降釆樣處理后的當(dāng)前宏 塊像素和參考宏塊像素進(jìn)行像素截位處理;當(dāng)前宏塊像素寄存器陣列暫存經(jīng)所述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素, 寄存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元;參考宏塊像素寄存器陣列暫存經(jīng)所述宏塊像素降釆樣和像素截位處理后的參考宏塊 像素,寄存器陣列將整個(gè)宏塊的像素在同一周期內(nèi)提供給所述SAD計(jì)算單元;SAD計(jì)算單元計(jì)算當(dāng)前宏塊像素與候選運(yùn)動(dòng)矢量對(duì)應(yīng)的參考像素宏塊之間的相似度, 將所述宏塊像素降采樣和截位處理后的當(dāng)前宏塊像素與參考宏塊像素對(duì)應(yīng)位置上的差值 的絕對(duì)值的累加;SAD比較單元選取各種宏塊分割模式下的最小SAD值所對(duì)應(yīng)的塊模式及運(yùn)動(dòng)矢量作 為當(dāng)前宏塊位置的預(yù)測(cè)模式和運(yùn)動(dòng)矢量;運(yùn)動(dòng)預(yù)測(cè)流程控制單元控制當(dāng)前宏塊像素存儲(chǔ)器、搜索窗像素存儲(chǔ)器、兩個(gè)宏塊像 素降采樣處理單元、兩個(gè)像素截位處理單元、當(dāng)前宏塊像素寄存器陣列單元、參考宏塊像素寄存器陣列單元、宏塊SAD計(jì)算單元、SAD比較單元的啟動(dòng)。
5.如權(quán)利要求4所述可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)裝置,其特征在于所述的參考像素寄存器陣列在 一個(gè)計(jì)算周期內(nèi)可在垂直方向向上和向下移位一行像素,在水平方向向左移動(dòng)若干列像素的結(jié)構(gòu)。
全文摘要
本發(fā)明提供了可變塊尺寸運(yùn)動(dòng)預(yù)測(cè)方法持續(xù)取出待預(yù)測(cè)幀中用于預(yù)測(cè)某一候選運(yùn)動(dòng)矢量的當(dāng)前宏塊像素及其對(duì)應(yīng)的參考宏塊像素,分別存儲(chǔ)在當(dāng)前宏塊像素存儲(chǔ)器和搜索窗像素存儲(chǔ)器,直到遍歷搜索窗中的所有候選運(yùn)動(dòng)矢量;取出當(dāng)前宏塊像素進(jìn)行降采樣和像素截位處理;同時(shí)取出參考宏塊像素進(jìn)行降采樣和像素截位處理;將處理后的候選運(yùn)動(dòng)矢量對(duì)應(yīng)的參考宏塊在各種宏塊分割模式下的SAD值;選取各種宏塊分割模式下最小SAD值和對(duì)應(yīng)的運(yùn)動(dòng)矢量。本發(fā)明采用全流水結(jié)構(gòu),整個(gè)運(yùn)動(dòng)估計(jì)運(yùn)算執(zhí)行周期短,可以實(shí)時(shí)處理,實(shí)現(xiàn)在編碼器性能、功耗、面積之間進(jìn)行權(quán)衡,具有很強(qiáng)的通用性。
文檔編號(hào)H04N7/26GK101605262SQ20091010053
公開(kāi)日2009年12月16日 申請(qǐng)日期2009年7月9日 優(yōu)先權(quán)日2009年7月9日
發(fā)明者胡紅旗, 陳劍軍 申請(qǐng)人:杭州士蘭微電子股份有限公司