專利名稱:一種塊運動自適應(yīng)的亞像素快速搜索方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻編碼中的運動估計技術(shù)領(lǐng)域,特別涉及一種對塊運動程度自適應(yīng)
的亞像素快速搜索方法。
背景技術(shù):
原始運動視頻序列含有大量的數(shù)據(jù)信息,如果不對這些數(shù)據(jù)進行編碼壓縮,很難 進行存儲和傳輸。對于視頻序列,相鄰幀之間具有很高的時間冗余,基于塊匹配的運動估計 正是減少視頻序列幀間冗余的一種有效的方法?,F(xiàn)代視頻壓縮編碼標(biāo)準(zhǔn)中已經(jīng)廣泛應(yīng)用了 簡單有效的塊匹配式的運動估計算法。國際標(biāo)準(zhǔn)化261采用的是整像素的運動估計。然而 實際物體的位移很少是整數(shù)像素的,若使用整像素作為單位進行運動估計,將產(chǎn)生較大誤 差;若使用1/2像素進行描述將能降低很大一部分的運動補償誤差。所以H. 263、 MPEG-1、 MPEG-2等國際標(biāo)準(zhǔn)中相繼采用半像素精度的運動估計。同時又因為精確的運動描述可以得 到更小的預(yù)測誤差,獲得更好的視覺效果,所以H. 264、AVS中引入了 1/4像素精度的運動估 計技術(shù)來提高運動補償?shù)木?,進一步減少預(yù)測誤差,提高壓縮率。 運動估計是視頻編碼壓縮的核心技術(shù)之一,它有效地降低了連續(xù)視頻幀之間的時 間冗余。但同時它也是視頻編碼中計算量最大、耗時最多的部分。實驗證明,運動估計已占 整個編碼時間的80%左右,因此對運動估計方法進行改進優(yōu)化成為提高編碼速度的關(guān)鍵。
對于整數(shù)像素運動估計,已經(jīng)有大量的快速搜索算法被提出,如三步搜索法 (TSS)、二維對數(shù)搜索法(TDL)、四步搜索法(FSS)、鉆石搜索法(DS)等。相對全搜索而言,這 些算法都使整數(shù)像素的平均搜索點數(shù)有了大幅度的降低,提高了整數(shù)像素的搜索速度。此 外,"非對稱十字形多層次六邊形格點搜索"(UMHexagonS,Unsymmetrical-crossMulti-Hex agon-grid Search)采用了多種運動矢量預(yù)測及不同形狀的搜索模式,能降低90%的整數(shù) 像素運動搜索復(fù)雜度,而平均峰值信噪比(PSNR)的下降小于0.05db,是目前最好的快速整 數(shù)像素運動估計算法,已被H. 264、 AVS標(biāo)準(zhǔn)所采納。 隨著上述快速整數(shù)像素運動估計算法的大量提出,整數(shù)像素運動估計的速度有了 顯著的改善,這也導(dǎo)致分?jǐn)?shù)像素運動估計的計算量占整個運動估計計算量的比重越來越 大,因此如何減少分?jǐn)?shù)像素運動估計的計算量就成了提高視頻編碼速度的另一途徑。
目前廣泛采用的亞像素搜索法有全搜索和鉆石搜索等。在全搜索中,首先將整數(shù) 像素搜索得到的最優(yōu)點作為搜索的中心起點,全搜索其周圍的八個1/2像素點,進行差值 和匹配,得到最優(yōu)1/2像素點和1/2像素精度的運動矢量;然后將最優(yōu)1/2像素點作為搜索 的中心起點,搜索其周圍的八個1/4像素點,得到最優(yōu)1/4像素點和運動矢量。全搜索能夠 獲得最精確的1/4像素點,但計算復(fù)雜度高,而且每次均需搜索16個像素點,搜索速度慢。 鉆石搜索法針對全搜索中搜索點數(shù)較多的缺點進行了改善,是一種快速搜索法。它以整數(shù) 像素搜索得到的最優(yōu)點為中心,以步長為1的小棱形為模板搜索其周圍的4個1/4像素點, 若最優(yōu)點仍在中心則結(jié)束搜索,否則以新的最優(yōu)點為中心重復(fù)小棱形搜索,直到最優(yōu)點在 中心或搜索到亞像素的邊界。這樣其每次搜索的像素點數(shù)就不固定,最少為搜索4個亞像素點,最多為搜索到亞像素邊界時需要搜索28個亞像素點.統(tǒng)計顯示,運動不劇烈的視頻 序列,其最優(yōu)亞像素點緊鄰著最優(yōu)整數(shù)像素點的概率高達(dá)90% ;但是隨著視頻序列運動越 復(fù)雜、越劇烈,其最優(yōu)亞像素點就越向外圍擴散,緊挨著最優(yōu)整數(shù)像素點的概率只有30%左 右。因此對于運動緩慢的視頻序列,鉆石搜索能顯著提高搜索速率,只需要搜索4個或8個 亞像素點就可以找到最優(yōu)匹配點。但是對于運動復(fù)雜、劇烈的視頻序列,鉆石搜索的平均搜 索點數(shù)就會明顯增多,而且容易陷入局部最優(yōu),使得搜索的速度和圖像質(zhì)量都會變差?!辞?華大學(xué)學(xué)報〉(自然科學(xué)版),2007,Vo 1.47,No. 1 :25-27, 31、作者為張婷婷、王熹微所寫的 文章"分?jǐn)?shù)像素精確運動搜索快速算法"中既是采用的這類方法。 綜上,設(shè)計一種快速亞像素搜索方法,使其對與不同運動程度的視頻序列都能獲 得更好的搜索速度、更優(yōu)的搜索結(jié)果,成為改善亞像素搜索和運動估計的關(guān)鍵。
發(fā)明內(nèi)容
為了克服現(xiàn)有的亞像素搜索方法的缺陷和不足,本發(fā)明提出了一種塊運動自適應(yīng) 的亞像素快速搜索方法。 本發(fā)明的技術(shù)方案是采用以下方式來實現(xiàn)的。 —種塊運動自適應(yīng)的亞像素快速搜索方法,步驟如下 1)開始 2)運動矢量預(yù)測 在對當(dāng)前塊進行運動搜索之前,首先進行運動矢量預(yù)測,得到預(yù)測運動矢量pred_ MV,和預(yù)測運動矢量所指向點的運動補償代價值pred_mcost ;
3)整數(shù)像素搜索 以運動矢量預(yù)測得到的最佳預(yù)測起點作為整數(shù)像素搜索的起點,對當(dāng)前塊進行整 數(shù)像素搜索,得到整數(shù)像素最優(yōu)點的位置和運動補償代價mincost ;
4)開始亞像素搜索 將整數(shù)像素最優(yōu)點作為亞像素搜索的起點;
5)1/2和1/4像素插值
插值得到1/2像素點和1/4像素點;
6)判斷當(dāng)前宏塊(塊)的運動劇烈程度 對當(dāng)前塊運動劇烈程度的判斷采用運動補償代價值之間求差值的方法,S卩比較 mincost禾口 pred—mcost的大小,若mincost-pred—mcost < P pred—mcost,說明整數(shù)像素搜
索的代價結(jié)果接近于預(yù)測值,宏塊(塊)運動緩慢,轉(zhuǎn)入步驟8);否則,說明整數(shù)像素搜索 結(jié)果與預(yù)測值之間差別較大,宏塊(塊)的運動劇烈,轉(zhuǎn)入步驟7)中; 7)進行大菱形搜索 當(dāng)前塊的運動較劇烈,最優(yōu)亞像素點的分布發(fā)散,采用搜索步長大的大棱形進行 1/2像素精度的搜索定位,防止落入局部最優(yōu)該步驟中以最優(yōu)整數(shù)像素點為搜索中心,以 步長為2的大菱形為模板,搜索與最優(yōu)整數(shù)像素點鄰近的水平、垂直方向上的4個1/2像素 點,計算該4個1/2像素點處塊匹配的代價值mcost,比較mcost與中心整數(shù)像素最優(yōu)點的 mincost的大小,若有mcost小于mincost,則將具有最小mcost的1/2像素點作為下一步 搜索的起始點,并將此mcost作為新的mincost ;否則,仍將最優(yōu)整數(shù)像素點作為下一步搜索的起始點,并保持mincost不變,轉(zhuǎn)入下一步;
8)進行第一級小菱形搜索 當(dāng)前塊的運動緩慢,或者已經(jīng)經(jīng)過大棱形搜索的定位,采用步長小的小棱形搜索 進行l(wèi)/4像素精度的細(xì)化該步驟以整數(shù)像素最優(yōu)點或步驟7)中得到的新的最優(yōu)點作為小 棱形搜索的起點,以步長為1的小棱形為模板,搜索起點周圍的4個l/4像素點,計算塊匹 配的代價值mcost,得到mcost最小的點;
9)判斷最優(yōu)點是否在小菱形的中心 第一級小棱形搜索后,若中心點的代價值仍為最小,則該點即為亞像素搜索的最 優(yōu)點,轉(zhuǎn)入步驟ll);否則,將具有最小mcost的1/4像素點作為新的搜索中心,進入步驟 10); 10)進行第二級小菱形搜索 以第一級小棱形搜索得到的最優(yōu)點為中心,步長為1的小棱形為模板,再進行一 次小棱形搜索,將此次搜索中具有最小mcost的點(包括中心)作為亞像素搜索的最優(yōu)點, 轉(zhuǎn)入下一步; 11)亞像素搜索結(jié)束 將第一級小棱形搜索的中心點(若在第一級小棱形搜索時中心最優(yōu)),或者第二 級小棱形搜索得到的最優(yōu)點作為亞像素搜索的最優(yōu)點,結(jié)束亞像素搜索;
12)返回亞像素搜索最優(yōu)點位置的MV、運動代價,宏塊(塊)運動估計結(jié)束。
步驟2)中運動矢量預(yù)測可以采用中值預(yù)測、原點預(yù)測、uplayer預(yù)測、前幀對應(yīng)塊 預(yù)測、相鄰參考幀預(yù)測等各種預(yù)測形式。類似運動矢量,相應(yīng)的運動補償代價mcost也具有 很強的相關(guān)性。因此將各預(yù)測運動矢量所指向點的運動補償代價值分別作為precLmcost, 作為整數(shù)像素搜索后mincost是否足滿足準(zhǔn)確的標(biāo)尺,使用步驟6)中的閾值判斷公式,判 斷整數(shù)像素搜索的滿意度和宏塊(塊)的運動程度。 步驟3)中的整數(shù)像素搜索可以采用已有的成熟的UMhexagonS算法。 步驟6)中對宏塊(塊)運動程度的判斷采用比較mincost-precLmcost與P pred_
mcost之間求差值的方法。其中, P = 7-;-一 "[6/ocA/^pe]
(_preaf _ 7 cos〖) Bsize為塊的尺寸,blocktype為塊的類型,a為常數(shù)。 根據(jù)步驟6)對當(dāng)前塊運動類型的判斷,若當(dāng)前塊運動緩慢,則只進行1或2級的 小棱形搜索,只需搜索4或8個點就可以迅速找到最佳亞像素點;若當(dāng)前塊運動劇烈,則先 進行1級大棱形搜索定位,防止陷入局部最優(yōu),再以大棱形搜索的最優(yōu)點為中心進行1或2 級小棱形搜索,這樣即能提高搜索精度又可以有效減少搜索點數(shù)。 大量實驗統(tǒng)計表明,宏塊運動越緩慢其最優(yōu)亞像素點越收斂于最優(yōu)整數(shù)像素點附 近,反之越發(fā)散;同時,在水平、垂直方向上的亞像素點為最優(yōu)的概率遠(yuǎn)遠(yuǎn)高于其他的亞像 素點。本發(fā)明方法充分利用了宏塊運動劇烈程度與最優(yōu)亞像素點分布特性之間的關(guān)系,并 結(jié)合運動矢量預(yù)測和運動補償代價預(yù)測,依據(jù)當(dāng)前塊的運動程度自適應(yīng)的采用不同的搜索 模板,彌補了原有方法的不足,使得對不同運動程度的宏塊都能以最少的搜索點數(shù)找到四 分之一像素精度的最優(yōu)點。該方法可以應(yīng)用在AVS、H. 264等視頻編碼標(biāo)準(zhǔn)中以改善編碼器的性能。 本發(fā)明方法適用于AVS、 H. 264或其它采用1/4像素精度運動估計的視頻編碼領(lǐng)域,是一種新的對宏塊(塊)運動程度自適應(yīng)的亞像素搜索方法,對于不同運動程度的塊都能以最少的搜索點數(shù)迅速的找到最優(yōu)亞像素點,在保證視頻壓縮質(zhì)量基本不變的情況下,有效地減少了視頻編碼的時間和計算的復(fù)雜度。實驗結(jié)果表明,對不同運動程度的視頻序列,該發(fā)明都具有很好的搜索速率和搜索精度。將本發(fā)明方法應(yīng)用于AVS參考模型,編碼各禾中視步員序列,如foreman—qcif. yuv, akiyo—qcif. yuv, container—qcif. yuv, mobile—qcif.yuv, bus—cif.yuv,分別統(tǒng)計其編碼時間、峰值信噪比(PSNR)和比特率,結(jié)果表明,編碼時間普遍比原來縮短了 20% -30%,峰值信噪比(PSNR)僅僅下降了 0. 01-0. 03db,比特率也基本保持不變。該發(fā)明可以使AVS、 H. 264應(yīng)用到很多的硬件平臺,顯著降低編碼器的計算復(fù)雜度,縮短編碼時間,提高性能。
圖1為本發(fā)明方法的流程框圖。其中1-12為該方法中的每一個步驟。 圖2為最優(yōu)整數(shù)像素點周圍由插值得到的的1/2像素點、1/4像素點的分布情況。 圖3a為經(jīng)過判斷,當(dāng)前塊為運動劇烈的塊,首先采用的大棱形搜索模板,圖中黑
色即為待搜索的像素點。圖3b、圖3c所示為經(jīng)過大棱形搜索后,以得到的最優(yōu)1/2像素點
為中心(假設(shè)頂端的1/2像素點為最優(yōu))進行的1級、2級小棱形搜索情況。 圖4a所示為經(jīng)過判斷,當(dāng)前塊為運動緩慢的塊,直接進行的1級小棱形搜索。圖
4b所示為1級小棱形搜索后,最優(yōu)點不在中心(假設(shè)在右端),進行的2級小棱形搜索。 具體實施方法 下面結(jié)合附圖和實施例對本發(fā)明做進一步說明,但不限于此。
實施例 本發(fā)明實施例如圖1所示, 一種塊運動自適應(yīng)的亞像素快速搜索方法,步驟如下 1)開始 2)運動矢量預(yù)測 在對當(dāng)前塊進行運動搜索之前,首先進行運動矢量預(yù)測,得到預(yù)測運動矢量pred_MV,和預(yù)測運動矢量所指向點的運動補償代價值pred_mcost ;
3)整數(shù)像素搜索 以運動矢量預(yù)測得到的最佳預(yù)測起點作為整數(shù)像素搜索的起點,對當(dāng)前塊進行整數(shù)像素搜索,得到整數(shù)像素最優(yōu)點的位置和運動補償代價mincost ;
4)開始亞像素搜索 將整數(shù)像素最優(yōu)點作為亞像素搜索的起點;
5) 1/2和1/4像素插值
插值得到1/2像素點和1/4像素點;
6)判斷當(dāng)前宏塊(塊)的運動劇烈程度 對當(dāng)前塊運動劇烈程度的判斷采用運動補償代價值之間求差值的方法,S卩比較mincost禾口 pred—mcost的大小,若mincost-pred—mcost < P pred—mcost,說明整數(shù)像素搜
索的代價結(jié)果接近于預(yù)測值,宏塊(塊)運動緩慢,轉(zhuǎn)入步驟8);否則,說明整數(shù)像素搜索結(jié)果與預(yù)測值之間差別較大,宏塊(塊)的運動劇烈,轉(zhuǎn)入步驟7)中; 7)進行大菱形搜索 當(dāng)前塊的運動較劇烈,最優(yōu)亞像素點的分布發(fā)散,采用搜索步長大的大棱形進行1/2像素精度的搜索定位,防止落入局部最優(yōu)該步驟中以最優(yōu)整數(shù)像素點為搜索中心,以步長為2的大菱形為模板,搜索與最優(yōu)整數(shù)像素點鄰近的水平、垂直方向上的4個1/2像素點,計算該4個1/2像素點處塊匹配的代價值mcost,比較mcost與中心整數(shù)像素最優(yōu)點的mincost的大小,若有mcost小于mincost,則將具有最小mcost的1/2像素點作為下一步搜索的起始點,并將此mcost作為新的mincost ;否則,仍將最優(yōu)整數(shù)像素點作為下一步搜索的起始點,并保持mincost不變,轉(zhuǎn)入下一步;
8)進行第一級小菱形搜索 當(dāng)前塊的運動緩慢,或者已經(jīng)經(jīng)過大棱形搜索的定位,采用步長小的小棱形搜索進行l(wèi)/4像素精度的細(xì)化該步驟以整數(shù)像素最優(yōu)點或步驟7)中得到的新的最優(yōu)點作為小棱形搜索的起點,以步長為1的小棱形為模板,搜索起點周圍的4個l/4像素點,計算塊匹配的代價值mcost,得到mcost最小的點;
9)判斷最優(yōu)點是否在小菱形的中心 第一級小棱形搜索后,若中心點的代價值仍為最小,則該點即為亞像素搜索的最優(yōu)點,轉(zhuǎn)入步驟ll);否則,將具有最小mcost的1/4像素點作為新的搜索中心,進入步驟10); 10)進行第二級小菱形搜索 以第一級小棱形搜索得到的最優(yōu)點為中心,步長為1的小棱形為模板,再進行一次小棱形搜索,將此次搜索中具有最小mcost的點(包括中心)作為亞像素搜索的最優(yōu)點,轉(zhuǎn)入下一步; 11)亞像素搜索結(jié)束 將第一級小棱形搜索的中心點(若在第一級小棱形搜索時中心最優(yōu)),或者第二
級小棱形搜索得到的最優(yōu)點作為亞像素搜索的最優(yōu)點,結(jié)束亞像素搜索; 12)返回亞像素搜索最優(yōu)點位置的MV、運動代價,宏塊(塊)運動估計結(jié)束。
權(quán)利要求
一種塊運動自適應(yīng)的亞像素快速搜索方法,步驟如下1)開始2)運動矢量預(yù)測在對當(dāng)前塊進行運動搜索之前,首先進行運動矢量預(yù)測,得到預(yù)測運動矢量pred_MV,和預(yù)測運動矢量所指向點的運動補償代價值pred_mcost;3)整數(shù)像素搜索以運動矢量預(yù)測得到的最佳預(yù)測起點作為整數(shù)像素搜索的起點,對當(dāng)前塊進行整數(shù)像素搜索,得到整數(shù)像素最優(yōu)點的位置和運動補償代價mincost;4)開始亞像素搜索將整數(shù)像素最優(yōu)點作為亞像素搜索的起點;5)1/2和1/4像素插值插值得到1/2像素點和1/4像素點;6)判斷當(dāng)前宏塊的運動劇烈程度對當(dāng)前塊運動劇烈程度的判斷采用運動補償代價值之間求差值的方法,即比較mincost和pred_mcost的大小,若mincost-pred_mcost<βpred_mcost,說明整數(shù)像素搜索的代價結(jié)果接近于預(yù)測值,宏塊運動緩慢,轉(zhuǎn)入步驟8);否則,說明整數(shù)像素搜索結(jié)果與預(yù)測值之間差別較大,宏塊的運動劇烈,轉(zhuǎn)入步驟7)中;7)進行大菱形搜索當(dāng)前塊的運動較劇烈,最優(yōu)亞像素點的分布發(fā)散,采用搜索步長大的大棱形進行1/2像素精度的搜索定位,防止落入局部最優(yōu)該步驟中以最優(yōu)整數(shù)像素點為搜索中心,以步長為2的大菱形為模板,搜索與最優(yōu)整數(shù)像素點鄰近的水平、垂直方向上的4個1/2像素點,計算該4個1/2像素點處塊匹配的代價值mcost,比較mcost與中心整數(shù)像素最優(yōu)點的mincost的大小,若有mcost小于mincost,則將具有最小mcost的1/2像素點作為下一步搜索的起始點,并將此mcost作為新的mincost;否則,仍將最優(yōu)整數(shù)像素點作為下一步搜索的起始點,并保持mincost不變,轉(zhuǎn)入下一步;8)進行第一級小菱形搜索當(dāng)前塊的運動緩慢或者已經(jīng)經(jīng)過大棱形搜索的定位采用步長小的小棱形搜索進行1/4像素精度的細(xì)化該步驟以整數(shù)像素最優(yōu)點或步驟7)中得到的新的最優(yōu)點作為小棱形搜索的起點,以步長為1的小棱形為模板,搜索起點周圍的4個1/4像素點,計算塊匹配的代價值mcost,得到mcost最小的點;9)判斷最優(yōu)點是否在小菱形的中心第一級小棱形搜索后,若中心點的代價值仍為最小,則該點即為亞像素搜索的最優(yōu)點,轉(zhuǎn)入步驟11);否則,將具有最小mcost的1/4像素點作為新的搜索中心,進入步驟10);10)進行第二級小菱形搜索以第一級小棱形搜索得到的最優(yōu)點為中心,步長為1的小棱形為模板,再進行一次小棱形搜索,將此次搜索中具有最小mcost的點作為亞像素搜索的最優(yōu)點,轉(zhuǎn)入下一步;11)亞像素搜索結(jié)束將第一級小棱形搜索的中心點或者第二級小棱形搜索得到的最優(yōu)點作為亞像素搜索的最優(yōu)點,結(jié)束亞像素搜索;12)返回亞像素搜索最優(yōu)點位置的MV、運動代價,宏塊運動估計結(jié)束。
全文摘要
一種塊運動自適應(yīng)的亞像素快速搜索方法,屬視頻編碼中的運動估計技術(shù)領(lǐng)域,本發(fā)明步驟為1)開始;2)運動矢量預(yù)測;3)整數(shù)像素搜索;4)開始亞像素搜索;5)1/2和1/4像素插值;6)判斷當(dāng)前宏塊的運動劇烈程度;7)進行大菱形搜索;8)進行第一級小菱形搜索;9)判斷最優(yōu)點是否在小菱形的中心;10)進行第二級小菱形搜索;11)亞像素搜索結(jié)束;12)返回亞像素搜索最優(yōu)點位置的MV、運動代價,宏塊(塊)運動估計結(jié)束。該發(fā)明可以使AVS、H.264應(yīng)用到很多的硬件平臺,顯著降低編碼器的計算復(fù)雜度,縮短編碼時間,提高性能。
文檔編號H04N7/26GK101699865SQ200910229608
公開日2010年4月28日 申請日期2009年10月28日 優(yōu)先權(quán)日2009年10月28日
發(fā)明者張衛(wèi)寧, 邵娟, 陳棟, 魏磊 申請人:山東大學(xué)