專利名稱:采用自適應(yīng)搜索策略的快速多幀運(yùn)動(dòng)估計(jì)的制作方法
背景技術(shù):
運(yùn)動(dòng)補(bǔ)償經(jīng)常與圖像數(shù)據(jù)壓縮編碼結(jié)合使用。采用運(yùn)動(dòng)補(bǔ)償?shù)膱D像數(shù)據(jù)壓縮編碼技術(shù)的一個(gè)實(shí)例是已經(jīng)提出的H.264標(biāo)準(zhǔn)(更正式地稱為高級(jí)視頻編碼(AVC)標(biāo)準(zhǔn),由國(guó)際標(biāo)準(zhǔn)化組織(ISO)的運(yùn)動(dòng)圖像專家組和國(guó)際電信聯(lián)盟的電信標(biāo)準(zhǔn)化部門(mén)(ITU-T)的視頻編碼專家組(VCEG)聯(lián)合形成的聯(lián)合視頻小組(JVT)開(kāi)發(fā))。在H.264編碼中,將矩形塊的像素?cái)?shù)據(jù)從先前幀的參考?jí)K中減去,并且對(duì)得到的差值信息進(jìn)行變換以得到系數(shù)數(shù)據(jù)。量化該系數(shù)數(shù)據(jù),然后對(duì)得到的信息重新排序并進(jìn)行熵編碼,以用于傳輸和/或記錄。
為了利用視頻信號(hào)中的時(shí)間冗余性,即使是在圖像中存在運(yùn)動(dòng)和/或相機(jī)移動(dòng)時(shí),參考?jí)K也可以在圖像幀中從當(dāng)前正在編碼的塊處進(jìn)行位移。參考?jí)K的位移稱為“運(yùn)動(dòng)補(bǔ)償”?!斑\(yùn)動(dòng)估計(jì)”過(guò)程確定在先前幀中(在搜索窗中)哪個(gè)像素塊與當(dāng)前正在編碼的塊最佳匹配。在當(dāng)前編碼的塊和先前幀中最佳匹配塊之間的位移用“運(yùn)動(dòng)矢量”表示,其是運(yùn)動(dòng)估計(jì)過(guò)程得到的結(jié)果。運(yùn)動(dòng)矢量包含在“邊信息”中,“邊信息”與當(dāng)前塊的經(jīng)過(guò)變換、量化、重新排序、熵編碼的差值信息一起發(fā)送。運(yùn)動(dòng)補(bǔ)償使得在當(dāng)前像素塊與參考?jí)K之間的差值最小化,從而能夠使得需要發(fā)送/記錄的數(shù)據(jù)量最小化。
運(yùn)動(dòng)補(bǔ)償視頻壓縮編碼的一個(gè)問(wèn)題是編碼所需的處理量。運(yùn)動(dòng)估計(jì)可以包括處理負(fù)荷的相當(dāng)大的一部分,特別是采用所謂的“全搜索”算法時(shí)。還提出了所謂的“快速搜索”算法,其中采用了縮小的搜索圖形(pattern),輕微降低了圖像質(zhì)量。
圖1是根據(jù)一些實(shí)施例的圖像數(shù)據(jù)處理系統(tǒng)的高級(jí)別方框圖;圖2是圖1中系統(tǒng)的圖像數(shù)據(jù)壓縮編碼部分的方框圖;
圖3采用功能塊的形式示出了圖2的壓縮編碼部分的操作;圖4A-4C共同形成流程圖,示出了圖2的壓縮編碼部分根據(jù)一些實(shí)施例所執(zhí)行的運(yùn)動(dòng)估計(jì)過(guò)程;圖5示意性地示出了圖4A-4C的運(yùn)動(dòng)估計(jì)過(guò)程中,在一些情況中使用的六角形搜索圖形;以及圖6示意性地示出圖4A-4C的運(yùn)動(dòng)估計(jì)過(guò)程中,在另一些情況中使用的十字(cross)搜索圖形。
具體實(shí)施例方式
圖1是根據(jù)一些實(shí)施例的圖像數(shù)據(jù)處理系統(tǒng)100的方框圖。圖像數(shù)據(jù)處理系統(tǒng)100包括壓縮編碼部分102,其是根據(jù)一些實(shí)施例提供的。系統(tǒng)110還包括圖像數(shù)據(jù)幀源104。圖像數(shù)據(jù)幀源耦合到壓縮編碼部分,用來(lái)為壓縮編碼部分提供圖像數(shù)據(jù)幀序列。圖像數(shù)據(jù)幀源可以是,例如攝像機(jī)、電視電影、數(shù)字視頻磁帶再生設(shè)備等。
系統(tǒng)100還包括傳輸信道106。壓縮編碼部分耦合到傳輸信道,用來(lái)提供經(jīng)過(guò)壓縮編碼的圖像數(shù)據(jù)。傳輸信道還可以用于將經(jīng)過(guò)壓縮編碼的圖像數(shù)據(jù)發(fā)送到另一位置和/或者將經(jīng)過(guò)壓縮編碼的圖像數(shù)據(jù)存儲(chǔ)到記錄介質(zhì)(未單獨(dú)示出)上。
圖2是圖像數(shù)據(jù)壓縮編碼部分102的實(shí)施例的方框圖。壓縮編碼部分102可以包括處理器202。處理器202可以是例如通用處理器,諸如常規(guī)微處理器,以及/或者數(shù)字信號(hào)處理器(DSP)。壓縮編碼部分102還可以包括存儲(chǔ)設(shè)備204,其耦合到處理器。存儲(chǔ)設(shè)備204可以存儲(chǔ)程序指令,所述程序指令控制處理器,使得處理器根據(jù)如下所述的一些實(shí)施例執(zhí)行圖像數(shù)據(jù)壓縮編碼。
壓縮編碼部分還可以包括工作存儲(chǔ)器206(即,RAM-隨機(jī)存取存儲(chǔ)器),其耦合到處理器202。
在另一實(shí)施例中,壓縮編碼部分102可以實(shí)現(xiàn)為特定用途集成電路(ASIC),其配置為根據(jù)如下所述的一些實(shí)施例執(zhí)行圖像數(shù)據(jù)壓縮編碼。
圖3采用功能塊的形式示出了壓縮編碼部分102的操作。
在圖3中,當(dāng)前正在壓縮編碼的輸入圖像數(shù)據(jù)幀用302表示。根據(jù)H.264標(biāo)準(zhǔn),可以分別處理每個(gè)“宏塊”(16×16的像素塊)。此外,如果有利的話,每個(gè)宏塊可以再分為8×16、16×8或者8×8的塊。如果還有利的話,每個(gè)8×8的塊還可以再分為8×4、4×8或者4×4的塊。
無(wú)論是否進(jìn)行了再分,每個(gè)宏塊都可以采用“幀內(nèi)”模式或者“幀間”模式(即,幀內(nèi)預(yù)測(cè)或者幀間預(yù)測(cè))進(jìn)行編碼。304表示對(duì)特定塊選擇了幀內(nèi)模式。用開(kāi)關(guān)306表示在幀間預(yù)測(cè)的參考?jí)K和幀內(nèi)的預(yù)測(cè)參考?jí)K之間進(jìn)行選擇。開(kāi)關(guān)306的輸出是預(yù)測(cè)的參考?jí)K。預(yù)測(cè)的參考?jí)K是從重建的幀中取出的,該重建的幀在幀內(nèi)預(yù)測(cè)308的情況中是當(dāng)前處理的幀(未濾波),或者是已經(jīng)在312處進(jìn)行了濾波并存儲(chǔ)在314中的先前幀310,其也可能是與一個(gè)或多個(gè)其他先前幀一起存儲(chǔ)在314中。
在一些實(shí)施例中,可以從中選擇最大到5個(gè)的先前幀,來(lái)在幀間模式中提供預(yù)測(cè)的參考?jí)K。這5個(gè)先前幀可以按照與時(shí)間相反的順序稱為“Ref0”、“Ref1”、“Ref2”、“Ref3”和“Ref4”。Ref0可以是在輸入的圖像數(shù)據(jù)幀序列中在當(dāng)前正在壓縮編碼的幀之前最緊鄰的幀;Ref1可以是在該圖像數(shù)據(jù)幀序列中在Ref0之前最緊鄰的幀;Ref2可以是在該圖像數(shù)據(jù)幀序列中在Ref1之前最緊鄰的幀;Ref3可以是在該圖像數(shù)據(jù)幀序列中在Ref2之前最緊鄰的幀;以及Ref4可以是在該圖像數(shù)據(jù)幀序列中在Ref3之前最緊鄰的幀。
如316所示,可以對(duì)參考幀運(yùn)用運(yùn)動(dòng)估計(jì)算法,為在當(dāng)前幀中的當(dāng)前塊或者子塊尋找在參考幀中的最佳匹配塊或者子塊。以下闡述了根據(jù)一些實(shí)施例提供的運(yùn)動(dòng)估計(jì)算法的細(xì)節(jié)。除了以下所述的運(yùn)動(dòng)估計(jì)算法之外,圖3中所示的全部壓縮編碼過(guò)程整體上可以根據(jù)常規(guī)原理,例如在H.264標(biāo)準(zhǔn)中所闡述的原理來(lái)執(zhí)行。
采用由運(yùn)動(dòng)估計(jì)過(guò)程316所產(chǎn)生的運(yùn)動(dòng)矢量,可以對(duì)參考幀進(jìn)行運(yùn)動(dòng)補(bǔ)償318,來(lái)選擇參考?jí)K。通過(guò)開(kāi)關(guān)功能306,可以將參考?jí)K施加到差值功能320,差值功能320從當(dāng)前正在壓縮編碼的塊中減去參考?jí)K。(注意,在幀內(nèi)模式中,是采用來(lái)自當(dāng)前幀的參考?jí)K。)采用塊變換(如322所示)對(duì)通過(guò)從當(dāng)前編碼的塊中減去參考?jí)K而生成的差值數(shù)據(jù)塊進(jìn)行變換,并量化所得到的變換系數(shù),如324所示。然后對(duì)量化的變換系數(shù)重新排序(塊326)以提高編碼效率,然后對(duì)其進(jìn)行熵編碼(塊328)。在該點(diǎn)處,已經(jīng)得到了壓縮比特流,其包括經(jīng)過(guò)量化、重新排序、熵編碼的變換系數(shù),以及標(biāo)識(shí)例如預(yù)測(cè)模式、量化步長(zhǎng)、塊大小、運(yùn)動(dòng)矢量等等的邊信息。然后將該比特流傳送到網(wǎng)絡(luò)提取層(NAL),用于傳輸或存儲(chǔ)。
重建分支過(guò)程330得到量化的變換系數(shù),并進(jìn)行逆量化(塊332),然后對(duì)解量化的數(shù)據(jù)進(jìn)行逆變換(塊334),生成差值數(shù)據(jù)。在求和功能336處,將差值數(shù)據(jù)與參考?jí)K相加,生成重建的塊。所得到的重建的塊可以用于在308處的幀內(nèi)預(yù)測(cè),或者與其他塊合并來(lái)形成重建的幀,在312對(duì)重建的幀進(jìn)行濾波,并在314將其存儲(chǔ)為用于幀間預(yù)測(cè)的參考幀。
圖4A-4C共同形成示出圖3的運(yùn)動(dòng)估計(jì)算法316的流程圖,如根據(jù)一些實(shí)施例所提供的。
在圖4A中,塊402表示對(duì)于當(dāng)前正在壓縮編碼的圖像數(shù)據(jù)幀的一個(gè)宏塊開(kāi)始運(yùn)動(dòng)估計(jì)算法。塊404表示將運(yùn)動(dòng)估計(jì)算法運(yùn)用到每個(gè)可能的不同塊或子塊大小或形狀,以允許從使得差值數(shù)據(jù)量最小化的角度來(lái)選擇最優(yōu)塊大小/形狀。在一些實(shí)施例中,塊大小選擇循環(huán)404考慮16×16、8×16、16×8、8×8、4×8、8×4和4×4的塊大小/形狀中的每一個(gè)??紤]不同塊大小的順序可以遵循從16×16到4×4的大小下降的順序,以便可以利用上層的運(yùn)動(dòng)矢量信息。
在塊大小選擇循環(huán)404中嵌套了參考幀循環(huán)406,參考幀循環(huán)406使得對(duì)于當(dāng)前塊/子塊考慮完整的參考幀組或者截短的參考幀組。在一些實(shí)施例中,完整的參考幀組包括Ref0、Ref1、Ref2、Ref3和Ref4,截短的參考幀組包括Ref0、Ref1和Ref2。根據(jù)一些實(shí)施例,根據(jù)以下描述的準(zhǔn)則來(lái)在完整的參考幀組和截短的參考幀組之間進(jìn)行選擇。從另一個(gè)角度看,可以考慮Ref0、Ref1和Ref2形成第一參考幀組,在一些實(shí)施例中在所有情況下都要對(duì)其進(jìn)行檢查,而可以考慮Ref3和Ref4形成第二(實(shí)際中是更早的)參考幀組,在這些實(shí)施例中,有時(shí)不對(duì)其進(jìn)行檢查。Ref0可以稱為是第一參考幀組中的幀中的“最后一個(gè)”;Ref1可以稱為是第一參考幀組中的幀中的“中間一個(gè)”;Ref2可以稱為是第一參考幀組中的幀中的“最早一個(gè)”;Ref3可以稱為是第二參考幀組中的“后一個(gè)”;Ref4可以稱為是第二參考幀組中的“前一個(gè)”。考慮參考幀的順序可以如在本段中第二句中所述(即,首先考慮最近的)。
如在此所用的和附帶的權(quán)利要求中所用的,“參考幀組”不是必須要包含一個(gè)以上的幀。
因此,對(duì)于當(dāng)前正在壓縮編碼的宏塊而言,對(duì)于正在考慮的整個(gè)宏塊或者子宏塊,以及對(duì)于當(dāng)前正在考慮的參考幀,要進(jìn)行以下過(guò)程。首先,在塊408,對(duì)于在將運(yùn)動(dòng)估計(jì)算法運(yùn)用到當(dāng)前正在考慮的參考幀時(shí)所生成的運(yùn)動(dòng)矢量,執(zhí)行統(tǒng)計(jì)分析??梢灶A(yù)期運(yùn)動(dòng)矢量大致服從對(duì)稱指數(shù)分布??梢约僭O(shè)運(yùn)動(dòng)矢量在X方向和Y方向上獨(dú)立,從而使得組合概率分布可以定義為PMV(x,y)=PX(x)PY(y) (1)在此,Px(x)和PY(y)分別是運(yùn)動(dòng)矢量在X方向和Y方向上的概率分布。Px(x)和PY(y)可以服從如下定義的指數(shù)分布P(n)=λ,n=0時(shí) (2a)P(n)=(1/2)λβ|n|,n不等于0時(shí)(2b)從概率分布的物理意義的角度看,等式(2)應(yīng)該滿足在搜索窗口中的概率總和為1的限制。換而言之,如果搜索窗口大小為W,則對(duì)于在范圍-W到W中的n,P(n)的總和等于1。
運(yùn)動(dòng)矢量的均值絕對(duì)值MVmean可以定義為對(duì)于在范圍-W到W中的n的P(n)(|n|+1)的總和。
從上述中,可以獲得以下λ=1/MVmean(3a)β=1-(1/MVmean) (3b)當(dāng)前正在考慮的參考幀中的運(yùn)動(dòng)矢量的概率分布模型可以從MVmean導(dǎo)出。(如本領(lǐng)域技術(shù)人員所熟知的,變量的“概率分布模型”也可以稱為“概率模型”或者“分布模型”,其是可變的且相關(guān)的概率的范圍。)由于在通常的幀序列中,MVmean變化的相當(dāng)慢,因此MVmean可以用作預(yù)測(cè)未來(lái)幀(例如當(dāng)前正在編碼的幀)的特征的參數(shù)。運(yùn)動(dòng)矢量很可能分布在菱形區(qū)域中。因此,可以找到至少99%的運(yùn)動(dòng)矢量所在的最小菱形區(qū)域。即,可以得到值M,其是使得對(duì)于在范圍-M到M中的n的P(n)的總和不小于0.99的最小值。該條件還可以表示為λ(1+β+β2+...+βM)>=0.99 (4)要注意的是,表達(dá)式λ(1+β+β2+...+βM)可以根據(jù)MVmean的值計(jì)算,因?yàn)棣撕挺露际怯肕Vmean項(xiàng)來(lái)表達(dá)的(等式(3))。
該過(guò)程所得到M的值還可以稱為“ADL”(自適應(yīng)菱形長(zhǎng)度)。根據(jù)上述結(jié)果計(jì)算出的對(duì)當(dāng)前正在考慮的參考幀的ADL是塊408的統(tǒng)計(jì)分析的輸出。
在塊410,聚集一組候選運(yùn)動(dòng)矢量。在一些實(shí)施例中,該運(yùn)動(dòng)矢量組包括以下所有(A)從當(dāng)前正在壓縮編碼的幀的每一個(gè)以下所述的塊而來(lái)的相應(yīng)運(yùn)動(dòng)矢量(總計(jì)3個(gè))當(dāng)前考慮的塊上方的塊、當(dāng)前考慮的塊右上方的塊和當(dāng)前考慮的塊左側(cè)的塊;要知道的是,這三個(gè)塊都與當(dāng)前考慮的塊相鄰;(B)作為當(dāng)前編碼的塊的超集的每個(gè)塊的相應(yīng)運(yùn)動(dòng)矢量(如果當(dāng)前考慮的塊是宏塊自身,則不存在作為其超集的塊;但是例如,如果當(dāng)前考慮塊是8×16的塊,則當(dāng)前編碼的幀的16×16的宏塊是當(dāng)前考慮的塊的超集;類似的,如果當(dāng)前考慮的塊是8×8的塊,則當(dāng)前考慮的塊的超集是16×16、8×16和16×6的塊);(C)在Ref0中的在大小上和圖像幀中的位置上與當(dāng)前考慮的像素塊相對(duì)應(yīng)的像素塊的運(yùn)動(dòng)矢量;以及(D)若干候選運(yùn)動(dòng)矢量的超集,其中,每個(gè)候選運(yùn)動(dòng)矢量都是通過(guò)將定標(biāo)(scaling)系數(shù)施加給在Ref1、Ref2、Ref3和Ref4中每一個(gè)中的在大小上和圖像幀中的位置上與當(dāng)前考慮的像素塊相對(duì)應(yīng)的像素塊的相應(yīng)運(yùn)動(dòng)矢量。在每種情況中的定標(biāo)系數(shù)可以與參考幀與當(dāng)前幀之間的時(shí)間上的距離成比例。
在判斷塊412,確定彼此相等的候選運(yùn)動(dòng)矢量的最大數(shù)量,并且確定該運(yùn)動(dòng)矢量數(shù)量是否超過(guò)閾值。如果是,則如414所示,認(rèn)為該一般性的運(yùn)動(dòng)矢量是當(dāng)前考慮的塊的運(yùn)動(dòng)矢量。反之,則當(dāng)前正在考慮的塊的運(yùn)動(dòng)估計(jì)繼續(xù)到判斷塊416(圖4B)。在判斷塊416,確定當(dāng)前考慮的像素塊是否是零塊(所有的像素?cái)?shù)據(jù)都等于0)。如果是,則認(rèn)為零運(yùn)動(dòng)矢量是當(dāng)前考慮的像素塊的運(yùn)動(dòng)矢量,如418所示。反之,則檢查其中一個(gè)候選運(yùn)動(dòng)矢量的所指示的每個(gè)參考像素塊,確定當(dāng)前考慮的像素塊與當(dāng)前檢查的參考像素塊之間的差值。暫時(shí)將與最小差值相對(duì)應(yīng)的候選運(yùn)動(dòng)矢量選擇作為(如420所示)當(dāng)前考慮的像素塊或者當(dāng)前幀的運(yùn)動(dòng)矢量,并如下所述對(duì)其進(jìn)行進(jìn)一步搜索,以找到最佳匹配的參考像素塊。
接下來(lái),在判斷塊422確定在420臨時(shí)選擇的候選運(yùn)動(dòng)矢量是否是零運(yùn)動(dòng)矢量。如果是,則如424所示,使用如下所述的十字搜索圖形在當(dāng)前考慮的參考幀中進(jìn)行塊匹配搜索,以找到最佳匹配的參考像素塊。反之,則根據(jù)塊408的統(tǒng)計(jì)分析(圖4A)并且可能基于其他因素來(lái)確定是否希望小搜索區(qū)域(判斷425)。例如,作為初步測(cè)試,獲得對(duì)于在當(dāng)前編碼的幀中的每一個(gè)以下所列的相鄰像素塊的相應(yīng)運(yùn)動(dòng)矢量的平均值當(dāng)前考慮的像素塊上方的塊、當(dāng)前考慮的像素塊右上方的塊和當(dāng)前考慮的像素塊左側(cè)的塊。如果該平均值假設(shè)至少等于4,則采用如下所述的六角形搜索圖形進(jìn)行進(jìn)一步的塊匹配搜索。反之,則將在408所計(jì)算的ADL與一個(gè)閾值(即,4)進(jìn)行比較,如果ADL至少等于該閾值,則采用六角形搜索圖形(如圖4B的426所示)。反之(即,如果ADL<該閾值),則采用十字搜索圖形,如428所示。
圖5示意性地示出了六角形搜索圖形的一個(gè)實(shí)例。在IEEETransactions on Circuits and Systems for Video Technology,Vol.12,no5,2002年5月,349-355頁(yè),Ce Zhu等人的“Hexagon-Based SearchPattern for Fast Block Motion Estimation”中也描述了六角形搜索圖形的一個(gè)實(shí)例。
在圖5中,網(wǎng)格的每個(gè)交叉點(diǎn)都對(duì)應(yīng)于在當(dāng)前考慮的參考幀中的一個(gè)像素位置。在初始六角形搜索圖形中心處的搜索開(kāi)始點(diǎn)502對(duì)應(yīng)于在420(圖4B)暫時(shí)選擇的候選運(yùn)動(dòng)矢量所指示的像素位置。繼續(xù)參考圖5,其他6個(gè)像素點(diǎn)504、506、508、510、512、514中的每一個(gè)構(gòu)成了初始六角形搜索圖形的平衡,這6個(gè)像素中的每一個(gè)或者是橫向距離搜索開(kāi)始點(diǎn)502兩個(gè)像素,或者是距離搜索開(kāi)始點(diǎn)502向上或向下兩個(gè)像素且橫向距離一個(gè)像素。將與這七個(gè)初始搜索點(diǎn)相對(duì)應(yīng)的各個(gè)(候選)參考像素塊分別和當(dāng)前正在考慮進(jìn)行編碼的像素塊進(jìn)行比較,然后,與和當(dāng)前正在考慮進(jìn)行編碼的像素塊最佳匹配的候選參考像素塊相對(duì)應(yīng)的搜索點(diǎn)確定為“獲勝者”。對(duì)于本實(shí)例,假設(shè)點(diǎn)506是獲勝者。然后在獲勝者的方向上進(jìn)行六角形搜索圖形的擴(kuò)展,在該情況下得到附加的搜索點(diǎn)516、518和520。然后確定在這三個(gè)新點(diǎn)和先前獲勝者506之中的獲勝者。還是對(duì)于本實(shí)例,假設(shè)點(diǎn)520是新的獲勝者。再次在該新獲勝者的方向上擴(kuò)展搜索圖形,在該情況下得到新的搜索點(diǎn)522、524、526。再次將這些新的搜索點(diǎn)和最新的獲勝者進(jìn)行比較?,F(xiàn)在假設(shè)在這新的一輪中,點(diǎn)520仍然是獲勝者。從而,將緊接著獲勝者520上方、下方、兩側(cè)的小圖形中的4個(gè)點(diǎn)528、530、532和534相互比較,并且與520進(jìn)行比較,將在這5個(gè)點(diǎn)中的獲勝者選擇作為當(dāng)前正在考慮進(jìn)行編碼的像素塊的運(yùn)動(dòng)矢量。
以上所述的六角形搜索圖形在需要遍歷相對(duì)大的區(qū)域時(shí)能夠提供有效的搜索。作為六角形搜索圖形的另一實(shí)例,由502、504、506、508、510、512和514形成的圖形可以圍繞點(diǎn)502旋轉(zhuǎn)90度,以提供替換的初始六角形搜索圖形。
在圖6中示意性地示出了十字搜索圖形的實(shí)例。
在圖5中,網(wǎng)格的交叉點(diǎn)每個(gè)都對(duì)應(yīng)于在當(dāng)前考慮的參考幀中的一個(gè)像素位置。搜索開(kāi)始點(diǎn)602對(duì)應(yīng)于在420(圖4B)暫時(shí)選擇的候選運(yùn)動(dòng)矢量所指示的像素位置。繼續(xù)參考圖6,初始十字搜索(即十字形狀)形狀的平衡包括4個(gè)點(diǎn)604、606、608和610,這4個(gè)點(diǎn)在緊接著開(kāi)始點(diǎn)602的上方、下方和兩側(cè)。將與這5個(gè)初始搜索點(diǎn)相對(duì)應(yīng)的各個(gè)(候選)參考像素塊分別與當(dāng)前正在考慮進(jìn)行編碼的像素塊進(jìn)行比較,然后與和當(dāng)前正在考慮進(jìn)行編碼的像素塊最佳匹配的候選參考像素塊相對(duì)應(yīng)的搜索點(diǎn)確定為獲勝者。對(duì)于本實(shí)例,假設(shè)點(diǎn)604是獲勝者。然后在獲勝者的方向上進(jìn)行十字搜索圖形的擴(kuò)展,在該情況下得到額外的搜索點(diǎn)612、614和616。然后,確定在這3個(gè)新搜索點(diǎn)和先前獲勝者604中的獲勝者。再次對(duì)于本實(shí)例,假設(shè)點(diǎn)612是新獲勝者。再次在獲勝者的方向上擴(kuò)展搜索圖形,得到新的搜索點(diǎn)618、620。(如果614是獲勝者,則將會(huì)有3個(gè)新搜索點(diǎn))。接下來(lái)假設(shè)在考慮點(diǎn)618和620時(shí)612還是優(yōu)勝者,從而搜索結(jié)束,并將612選擇作為當(dāng)前正在考慮進(jìn)行編碼的像素塊的運(yùn)動(dòng)矢量。
以上所述的十字搜索圖形在需要遍歷相對(duì)小的區(qū)域時(shí)能夠提供有效的搜索。在一些實(shí)施例中,至少部分地根據(jù)在當(dāng)前正在編碼的幀之前的參考幀中的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布,可以自適應(yīng)地在六角形圖形和十字圖形中選擇很可能更好的搜索圖形。這可以利用在較早幀中的運(yùn)動(dòng)矢量分布的時(shí)間預(yù)測(cè)值來(lái)預(yù)測(cè)在當(dāng)前幀中的可能分布。可替換地,可以使用4之外的閾值。
一旦已經(jīng)對(duì)正在處理的當(dāng)前幀中的像素塊和當(dāng)前正在考慮的參考幀確定了運(yùn)動(dòng)矢量,接下來(lái)就確定(判斷塊430,圖4C)是否完成了參考幀循環(huán)。這可以包括確定是否應(yīng)該通過(guò)例如從考慮中省略Ref3和Ref4來(lái)縮短參考幀循環(huán)。當(dāng)已經(jīng)完成了對(duì)Ref2的考慮時(shí),就可以進(jìn)行上述后者的確定步驟,在該時(shí)刻,已經(jīng)為當(dāng)前幀的當(dāng)前像素塊,對(duì)于Ref0、Ref1和Ref2確定了各個(gè)運(yùn)動(dòng)矢量。
在一些實(shí)施例中,如果滿足以下條件就可以跳過(guò)Ref3和Ref4的考慮(A)|(2×MVref0)-MVRef1|<TMV;(B)|(3×MVref0)-MVRef2|<TMV;(C)CostRef0<CostRef1;以及(D)CostRef0<CostRef2;在上面一組條件中,MVref0是為當(dāng)前編碼的像素塊確定的相對(duì)于Ref0的運(yùn)動(dòng)矢量;MVref1是為當(dāng)前編碼的像素塊確定的相對(duì)于Ref1的運(yùn)動(dòng)矢量;MVref2是為當(dāng)前編碼的像素塊確定的相對(duì)于Ref2的運(yùn)動(dòng)矢量;TMV是用于參考幀循環(huán)縮短判斷的閾值(在一些實(shí)施例中,TMV可以等于4)。另外,“Cost”是代價(jià)函數(shù),其測(cè)量對(duì)當(dāng)前編碼的像素塊進(jìn)行編碼的代價(jià),其是當(dāng)前編碼的像素塊相對(duì)于為該幀所確定的運(yùn)動(dòng)矢量所指向的在各個(gè)參考幀中的參考像素塊的差值。換而言之,“Cost”函數(shù)表示了在當(dāng)前編碼的像素塊與各個(gè)參考幀中所提議的參考像素塊之間的塊匹配程度。還應(yīng)該理解的是,對(duì)于上述4個(gè)條件是否滿足的確定構(gòu)成了對(duì)于參考Ref0、Ref1和Ref2對(duì)于當(dāng)前幀(更具體的,當(dāng)前幀的當(dāng)前像素塊)所執(zhí)行的運(yùn)動(dòng)估計(jì)的結(jié)果的評(píng)估。在其他實(shí)施例中,這種運(yùn)動(dòng)估計(jì)的評(píng)估可以采用其他方式執(zhí)行。
如果所有4個(gè)條件都滿足,則可以得出結(jié)論Ref1和Ref2的考慮不會(huì)得到比Ref0更好的塊匹配,并且Ref3和Ref4的考慮幾乎不可能得到更好的塊匹配。因此確定應(yīng)該通過(guò)跳過(guò)Ref3和Ref4的考慮來(lái)縮短參考幀循環(huán),以便節(jié)省處理資源并加快運(yùn)動(dòng)估計(jì)的完成。
因此,在判斷塊430,如果剛剛考慮的參考幀是Ref4,或者如果剛剛考慮的參考幀是Ref2且滿足對(duì)于縮短參考幀循環(huán)的條件,則參考幀循環(huán)結(jié)束。如果參考幀循環(huán)沒(méi)有結(jié)束,則圖4A-4C的過(guò)程返回到圖4A中的408,然后考慮下一個(gè)(即下一個(gè)更早的)參考幀。如果參考幀循環(huán)結(jié)束,則過(guò)程從判斷塊430(圖4C)進(jìn)入判斷塊432。
應(yīng)該理解的是,在一些實(shí)施例中,潛在考慮的參考幀的總數(shù)可以是5以外的值,和/或者當(dāng)根據(jù)考慮較晚的參考幀的結(jié)果確??梢蕴^(guò)參考幀時(shí)所跳過(guò)的參考幀數(shù)量可以是2以外的值。
在判斷塊432,考慮是否已經(jīng)為當(dāng)前編碼的像素宏塊考慮了所有不同的塊大小/形狀。如果沒(méi)有,則圖4A-4C的過(guò)程返回406,并考慮下一個(gè)塊大小/形狀。反之(即,如果已經(jīng)考慮了所有的塊大小/形狀),則過(guò)程進(jìn)入圖4C中的塊434。
在塊434,為編碼當(dāng)前像素宏塊選擇最佳的塊大小/形狀(得到最佳匹配的塊大小/形狀)。在一些實(shí)施例中,這可以根據(jù)常規(guī)實(shí)現(xiàn)來(lái)完成。還應(yīng)該理解的是,從所考慮的各種參考幀的各個(gè)參考?jí)K中為塊的每個(gè)大小/形狀選擇最佳匹配參考?jí)K。這也可以根據(jù)常規(guī)實(shí)現(xiàn)來(lái)完成。因此現(xiàn)在完成了當(dāng)前宏塊的運(yùn)動(dòng)估計(jì),并且現(xiàn)在可以將圖4A-4C的過(guò)程應(yīng)用到當(dāng)前幀的下一個(gè)宏塊上。
采用參考圖4A-4C所述的過(guò)程,運(yùn)動(dòng)估計(jì)可以比其他“快速”運(yùn)動(dòng)估計(jì)算法執(zhí)行的更加迅速,并且在圖像質(zhì)量方面可以得到可比擬的結(jié)果。
該運(yùn)動(dòng)估計(jì)算法的各種部分的執(zhí)行順序可以從圖4A-4C中的順序中進(jìn)行改變。
在塊424(圖4B)中的塊匹配搜索圖形的選擇并不局限于在2個(gè)搜索圖形中選擇,可以在六角形搜索圖形和十字搜索圖形之外的其他搜索圖形中進(jìn)行選擇。
在此所述的幾個(gè)實(shí)施例僅僅是為了說(shuō)明的目的。在此所述的各種特征不需要一起使用,這些特征中的任何一個(gè)或多個(gè)可以結(jié)合到單個(gè)實(shí)施例中。因此,本領(lǐng)域技術(shù)人員應(yīng)該從本說(shuō)明書(shū)中認(rèn)識(shí)到可以實(shí)現(xiàn)具有各種更改和變化的其他實(shí)施例。
權(quán)利要求
1.一種方法,包括檢查在第一圖像數(shù)據(jù)幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布,所述檢查步驟用于生成在所述第一幀中所述運(yùn)動(dòng)矢量的分布模型;以及至少部分地根據(jù)所述分布模型,選擇對(duì)于第二圖像數(shù)據(jù)幀所使用的塊匹配搜索圖形,所述第二幀在圖像數(shù)據(jù)幀序列中是在所述第一幀之后。
2.如權(quán)利要求1所述的方法,其中,所述選擇步驟包括在六角形搜索圖形和十字搜索圖形之間進(jìn)行選擇。
3.如權(quán)利要求1所述的方法,其中,所述檢查步驟包括計(jì)算在所述第一幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的平均值。
4.如權(quán)利要求1所述的方法,其中,所述檢查步驟包括計(jì)算包含在所述第一幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的至少99%的菱形區(qū)域的大小。
5.如權(quán)利要求1所述的方法,還包括確定對(duì)于所述第二幀的像素?cái)?shù)據(jù)塊所使用的運(yùn)動(dòng)矢量,所述確定步驟采用所選擇的塊匹配搜索圖形執(zhí)行。
6.如權(quán)利要求5所述的方法,還包括對(duì)所述第二幀的所述像素?cái)?shù)據(jù)塊執(zhí)行運(yùn)動(dòng)補(bǔ)償壓縮編碼,所述運(yùn)動(dòng)補(bǔ)償壓縮編碼利用了所述的對(duì)于所述第二幀的像素?cái)?shù)據(jù)塊所使用的運(yùn)動(dòng)矢量。
7.一種方法,包括確定第一圖像數(shù)據(jù)幀的特征;以及根據(jù)所確定的特征,在對(duì)于第二圖像數(shù)據(jù)幀所使用的第一塊匹配搜索圖形和對(duì)于所述第二圖像數(shù)據(jù)幀所使用的第二塊匹配搜索圖形之間進(jìn)行選擇,所述第二幀在圖像數(shù)據(jù)幀序列中緊鄰著所述第一幀之后。
8.如權(quán)利要求7所述的方法,其中,所述確定步驟包括分析所述第一幀的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布。
9.如權(quán)利要求7所述的方法,其中,所述選擇步驟包括在六角形搜索圖形和十字搜索圖形之間進(jìn)行選擇。
10.如權(quán)利要求7所述的方法,還包括,確定對(duì)于所述第二幀的像素?cái)?shù)據(jù)塊所使用的運(yùn)動(dòng)矢量,所述確定步驟采用所選擇的塊匹配搜索圖形執(zhí)行。
11.如權(quán)利要求10所述的方法,還包括,對(duì)所述第二幀的所述像素?cái)?shù)據(jù)塊執(zhí)行運(yùn)動(dòng)補(bǔ)償壓縮編碼,所述運(yùn)動(dòng)補(bǔ)償壓縮編碼利用了所述的對(duì)于所述第二幀的像素?cái)?shù)據(jù)塊所使用的運(yùn)動(dòng)矢量。
12.一種方法,包括執(zhí)行對(duì)于圖像數(shù)據(jù)幀序列中當(dāng)前幀的第一運(yùn)動(dòng)估計(jì),所述第一運(yùn)動(dòng)估計(jì)參考第一參考幀組執(zhí)行,所述第一參考幀組在所述圖像數(shù)據(jù)幀序列中是在所述當(dāng)前幀之前;評(píng)估所述第一運(yùn)動(dòng)估計(jì)的結(jié)果;以及根據(jù)所述評(píng)估結(jié)果,確定是否執(zhí)行對(duì)于所述當(dāng)前幀的第二運(yùn)動(dòng)估計(jì),所述第二運(yùn)動(dòng)估計(jì)參考不同于所述第一參考幀組的第二參考幀組執(zhí)行,所述第二參考幀組在所述圖像數(shù)據(jù)幀序列中是在所述第一參考幀組之前。
13.如權(quán)利要求12所述的方法,其中所述第一參考幀組包括在所述圖像數(shù)據(jù)幀序列中緊鄰著所述當(dāng)前幀之前的3個(gè)參考幀;以及所述第二參考幀組包括在所述圖像數(shù)據(jù)幀序列中緊鄰著所述第一參考幀組之前的2個(gè)參考幀。
14.如權(quán)利要求13所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的中間一個(gè)幀所獲得的第一運(yùn)動(dòng)矢量與參考所述第一參考幀組中最晚的一個(gè)幀所獲得的第二運(yùn)動(dòng)矢量的倍數(shù)之間的差值和一個(gè)閾值進(jìn)行比較。
15.如權(quán)利要求13所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的最早的一個(gè)幀所獲得的第一運(yùn)動(dòng)矢量與參考所述第一參考幀組中最晚的一個(gè)幀所獲得的第二運(yùn)動(dòng)矢量的倍數(shù)之間的差值和一個(gè)閾值進(jìn)行比較。
16.如權(quán)利要求13所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的中間一個(gè)幀所獲得的塊匹配程度與參考所述第一參考幀組中的最晚的一個(gè)幀所獲得的塊匹配程度進(jìn)行比較。
17.如權(quán)利要求13所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的最早的一個(gè)幀所獲得的塊匹配程度與參考所述第一參考幀組中的最晚的一個(gè)幀所獲得的塊匹配程度進(jìn)行比較。
18.如權(quán)利要求13所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的最晚的一個(gè)幀所獲得的第一運(yùn)動(dòng)矢量的2倍與參考所述第一參考幀組中的中間一個(gè)幀所獲得的第二運(yùn)動(dòng)矢量之間的差值和一個(gè)閾值進(jìn)行比較;將所述第一運(yùn)動(dòng)矢量的3倍與參考所述第一參考幀組中的最早的一個(gè)幀所獲得的第三運(yùn)動(dòng)矢量之間的差值和所述閾值進(jìn)行比較;將參考所述第一參考幀組中的中間一個(gè)幀所獲得的塊匹配程度與參考所述第一參考幀組中的最晚的一個(gè)幀所獲得的塊匹配程度進(jìn)行比較;以及將參考所述第一參考幀組中的最早的一個(gè)幀所獲得的塊匹配程度與參考所述第一參考幀組中的最晚的一個(gè)幀所獲得的塊匹配程度進(jìn)行比較。
19.如權(quán)利要求12所述的方法,其中,所述第一參考幀組至少包括兩個(gè)幀。
20.如權(quán)利要求19所述的方法,其中,所述評(píng)估步驟包括將參考所述第一參考幀組中的較早的一個(gè)幀所獲得的塊匹配程度與參考所述第一參考幀組中的較晚的一個(gè)幀所獲得的塊匹配程度進(jìn)行比較。
21.如權(quán)利要求19所述的方法,其中,所述評(píng)估步驟包括計(jì)算通過(guò)從參考所述幀中較早的一個(gè)幀所獲得的第二運(yùn)動(dòng)矢量的倍數(shù)中減去參考所述幀中較晚的一個(gè)幀所獲得的第一運(yùn)動(dòng)矢量所得到的差值。
22.如權(quán)利要求21所述的方法,其中,所述評(píng)估步驟還包括將所述差值與一個(gè)閾值比較。
23.一種設(shè)備,包括存儲(chǔ)介質(zhì),具有存儲(chǔ)在其上的指令,當(dāng)機(jī)器執(zhí)行所述指令時(shí),實(shí)現(xiàn)以下步驟檢查在第一圖像數(shù)據(jù)幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布,所述檢查步驟用于生成在所述第一幀中所述運(yùn)動(dòng)矢量的分布模型;以及至少部分地根據(jù)所述分布模型,選擇對(duì)于第二圖像數(shù)據(jù)幀所使用的塊匹配搜索圖形,所述第二幀在圖像數(shù)據(jù)幀序列中是在所述第一幀之后。
24.如權(quán)利要求23所述的設(shè)備,其中,所述選擇步驟包括在六角形搜索圖形和十字搜索圖形之間進(jìn)行選擇。
25.如權(quán)利要求23所述的設(shè)備,其中,所述檢查步驟包括計(jì)算包含在所述第一幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的至少99%的菱形區(qū)域的大小。
26.一種方法,包括對(duì)圖像數(shù)據(jù)幀序列中的當(dāng)前幀中的第一像素塊確定多個(gè)候選運(yùn)動(dòng)矢量,所述候選運(yùn)動(dòng)矢量包括以下中的至少兩個(gè)(a)與所述第一像素塊相鄰的像素塊的運(yùn)動(dòng)矢量;(b)作為所述第一像素塊的超集的像素塊的運(yùn)動(dòng)矢量;(c)第二像素塊的運(yùn)動(dòng)矢量,所述第二像素塊是在所述圖像數(shù)據(jù)幀序列中緊鄰著所述當(dāng)前幀之前的第一參考圖像數(shù)據(jù)幀的一部分,所述第二像素塊在所述第一參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置;以及(d)第三像素塊的定標(biāo)的運(yùn)動(dòng)矢量,所述第三像素塊是第二參考幀的一部分,所述第二參考幀在所述圖像數(shù)據(jù)幀序列中在所述第一參考幀之前,所述第三像素塊在所述第二參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置;確定所述多個(gè)候選運(yùn)動(dòng)矢量中相同運(yùn)動(dòng)矢量的數(shù)量;以及將所述數(shù)量與一個(gè)閾值比較。
27.如權(quán)利要求26所述的方法,還包括如果所述數(shù)量超過(guò)所述閾值,則設(shè)定所述第一像素塊的運(yùn)動(dòng)矢量的值,所述值等于所述相同的候選運(yùn)動(dòng)矢量的值。
28.如權(quán)利要求26所述的方法,其中,所述候選運(yùn)動(dòng)矢量包括以下每個(gè)(a)與所述第一像素塊相鄰的3個(gè)像素塊中每一個(gè)的各自的運(yùn)動(dòng)矢量;(b)作為所述第一像素塊的超集的像素塊的運(yùn)動(dòng)矢量;(c)第二像素塊的運(yùn)動(dòng)矢量,所述第二像素塊是在所述圖像數(shù)據(jù)幀序列中緊鄰著所述當(dāng)前幀之前的第一參考圖像數(shù)據(jù)幀的一部分,所述第二像素塊在所述第一參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置;以及(d)第三像素塊的定標(biāo)的運(yùn)動(dòng)矢量,所述第三像素塊是第二參考幀的一部分,所述第二參考幀在所述圖像數(shù)據(jù)幀序列中在所述第一參考幀之前,所述第三像素塊在所述第二參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置。
29.一種方法,包括執(zhí)行對(duì)于圖像數(shù)據(jù)幀序列中當(dāng)前幀的第一運(yùn)動(dòng)估計(jì),所述第一運(yùn)動(dòng)估計(jì)參考第一參考幀組執(zhí)行,所述第一參考幀組在所述圖像數(shù)據(jù)幀序列中是在所述當(dāng)前幀之前;評(píng)估所述第一運(yùn)動(dòng)估計(jì)的結(jié)果;以及根據(jù)所述評(píng)估結(jié)果,確定是否執(zhí)行對(duì)于所述當(dāng)前幀的第二運(yùn)動(dòng)估計(jì),所述第二運(yùn)動(dòng)估計(jì)參考不同于所述第一參考幀組的第二參考幀組執(zhí)行,所述第二參考幀組在所述圖像數(shù)據(jù)幀序列中是在所述第一參考幀組之前;其中,所述第一運(yùn)動(dòng)估計(jì)包括對(duì)所述當(dāng)前幀中的第一像素塊確定多個(gè)候選運(yùn)動(dòng)矢量,所述候選運(yùn)動(dòng)矢量包括以下中的至少兩個(gè)(a)與所述第一像素塊相鄰的像素塊的運(yùn)動(dòng)矢量;(b)作為所述第一像素塊的超集的像素塊的運(yùn)動(dòng)矢量;(c)第二像素塊的運(yùn)動(dòng)矢量,所述第二像素塊是作為在所述第一參考幀組中最晚的幀的參考幀的一部分,所述第二像素塊在所述參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置;以及(d)第三像素塊的定標(biāo)的運(yùn)動(dòng)矢量,所述第三像素塊是另一參考幀的一部分,所述另一參考幀是在所述第一參考幀組中的所述最晚的幀之前,所述第三像素塊在所述另一參考幀中具有與在所述當(dāng)前幀中的所述第一像素塊的位置相對(duì)應(yīng)的位置;確定所述多個(gè)候選運(yùn)動(dòng)矢量中相同運(yùn)動(dòng)矢量的數(shù)量;將所述數(shù)量與一個(gè)閾值比較;并且其中,所述第一運(yùn)動(dòng)估計(jì)還包括確定在所述幀序列中在所述當(dāng)前幀之前的一個(gè)圖像數(shù)據(jù)幀的特征;以及根據(jù)所確定的特征,選擇對(duì)于所述當(dāng)前幀所使用的塊匹配搜索圖形,所述先前幀在所述幀序列中在緊鄰著所述當(dāng)前幀之前。
30.如權(quán)利要求29所述的方法,其中,所述確定所述先前幀的特征的步驟包括分析所述先前幀的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布。
31.如權(quán)利要求30所述的方法,其中,所述選擇步驟包括在六角形搜索圖形和十字搜索圖形之間進(jìn)行選擇。
32.如權(quán)利要求31所述的方法,其中,所述第一參考幀組包括在所述圖像數(shù)據(jù)幀序列中緊鄰著所述當(dāng)前幀之前的3個(gè)參考幀;所述第二參考幀組包括在所述圖像數(shù)據(jù)幀序列中緊鄰著所述第一參考幀組之前的2個(gè)參考幀;
全文摘要
一種方法,包括檢查在第一圖像數(shù)據(jù)幀中的運(yùn)動(dòng)補(bǔ)償所采用的運(yùn)動(dòng)矢量的統(tǒng)計(jì)分布。所述檢查用于生成在所述第一幀中所述運(yùn)動(dòng)矢量的分布模型。該方法還包括至少部分地根據(jù)所述分布模型,選擇對(duì)于第二圖像數(shù)據(jù)幀所使用的塊匹配搜索圖形。所述第二幀是在圖像數(shù)據(jù)幀序列中在所述第一幀之后。
文檔編號(hào)H04N7/26GK101061722SQ200480044126
公開(kāi)日2007年10月24日 申請(qǐng)日期2004年10月14日 優(yōu)先權(quán)日2004年10月14日
發(fā)明者埃里克·李 申請(qǐng)人:英特爾公司