一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法
【專利摘要】本發(fā)明提供一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,包括:在編碼P幀時(shí),獲取當(dāng)前幀中當(dāng)前待編碼宏塊的相鄰宏塊以及前一幀中與當(dāng)前待編碼宏塊位于相同位置的宏塊的運(yùn)動(dòng)矢量;根據(jù)步驟一獲取的運(yùn)動(dòng)矢量確定搜索中心A和搜索范圍SP1;以前一幀的原始幀為參考幀,在搜索范圍SP1內(nèi)以A為搜索中心進(jìn)行運(yùn)動(dòng)搜索,獲得預(yù)測(cè)運(yùn)動(dòng)矢量;根據(jù)預(yù)測(cè)運(yùn)動(dòng)矢量確定搜索中心B和搜索范圍SP2;判斷是否提前結(jié)束,若是則確定最佳運(yùn)動(dòng)矢量;否則執(zhí)行下一步;以前一幀的重構(gòu)幀為參考幀,在搜索范圍SP2內(nèi)以B為搜索中心進(jìn)行運(yùn)動(dòng)搜索,確定最佳運(yùn)動(dòng)矢量。本發(fā)明能夠在符合H.264編碼協(xié)議的基礎(chǔ)上,利用原始幀的數(shù)據(jù)完整性,提高運(yùn)動(dòng)估計(jì)的準(zhǔn)確度,減少編碼錯(cuò)誤傳遞和擴(kuò)散。
【專利說明】一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息處理【技術(shù)領(lǐng)域】,涉及一種運(yùn)動(dòng)估計(jì)方法,特別是涉及一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法。
【背景技術(shù)】
[0002]H.264視頻壓縮標(biāo)準(zhǔn)是現(xiàn)有最重要數(shù)據(jù)壓縮編碼國(guó)際標(biāo)準(zhǔn)之一,目前,基于H.264視頻壓縮標(biāo)準(zhǔn)的視頻壓縮編碼技術(shù)主要是采用以運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償技術(shù)為核心的幀間預(yù)測(cè)方式來除去視頻序列相繼圖像幀之間存在的冗余信息,以達(dá)到視頻數(shù)據(jù)壓縮的目的。
[0003]在幀間預(yù)測(cè)編碼中,因?yàn)榛顒?dòng)圖像鄰近幀中的景物存在一定的相關(guān)性,所以可將活動(dòng)圖像分成若干塊或宏塊,并設(shè)法搜索出每個(gè)塊或宏塊在鄰近幀圖像中的位置,并得出兩者之間的空間位置的相對(duì)偏移量,此相對(duì)偏移量就是通常所指的運(yùn)動(dòng)矢量,得到運(yùn)動(dòng)矢量的過程被稱為運(yùn)動(dòng)估計(jì)。運(yùn)動(dòng)矢量和經(jīng)過運(yùn)動(dòng)匹配后得到的預(yù)測(cè)誤差共同發(fā)送到解碼端,在解碼端按照運(yùn)動(dòng)矢量指明的位置,從已經(jīng)解碼的鄰近參考幀圖像中找到相應(yīng)的塊或宏塊,和預(yù)測(cè)誤差相加后就得到了塊或宏塊在當(dāng)前幀中的位置。通過運(yùn)動(dòng)估計(jì)可以去除幀間冗余度,使得視頻傳輸?shù)谋忍財(cái)?shù)大為減少。
[0004]相反地,如果對(duì)每個(gè)塊的運(yùn)動(dòng)矢量進(jìn)行編碼,那么將花費(fèi)相當(dāng)數(shù)目的比特?cái)?shù),特別是如果選擇小尺寸的塊的時(shí)候。由于一個(gè)運(yùn)動(dòng)物體會(huì)覆蓋多個(gè)分塊,所以空間域相鄰塊的運(yùn)動(dòng)矢量具有很強(qiáng)的相關(guān)性,因此,每個(gè)運(yùn)動(dòng)矢量可以根據(jù)鄰近先前已編碼的塊進(jìn)行預(yù)測(cè),預(yù)測(cè)得到的運(yùn)動(dòng)矢量用MVp表示,當(dāng)前矢量和預(yù)測(cè)矢量之間的差值用MVD表示。同時(shí)由于物體運(yùn)動(dòng)的連續(xù)性,運(yùn)動(dòng)矢量在時(shí)間域也存在一定相關(guān)性,因此也可以用鄰近參考幀的運(yùn)動(dòng)矢量來預(yù)測(cè)。H.264編碼標(biāo)準(zhǔn)和以往采用的視頻壓縮標(biāo)準(zhǔn)很大的不同在于,在運(yùn)動(dòng)估計(jì)過程中可采用多參考幀預(yù)測(cè)來提高預(yù)測(cè)精度。由于H.264編碼是有損壓縮,圖像在編碼過程中會(huì)有一定的質(zhì)量損失和錯(cuò)誤,而P幀編碼時(shí)以之前已編碼幀作為當(dāng)前幀的參考幀進(jìn)行運(yùn)動(dòng)估計(jì),易導(dǎo)致圖像質(zhì)量損失和錯(cuò)誤的傳遞與擴(kuò)散。
【發(fā)明內(nèi)容】
[0005]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,用于減小現(xiàn)有估計(jì)方法中圖像質(zhì)量損失和錯(cuò)誤的傳遞與擴(kuò)散。
[0006]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法。
[0007]一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,所述基于雙參考幀的運(yùn)動(dòng)估計(jì)方法包括:
[0008]步驟一,在編碼P幀時(shí),獲取當(dāng)前幀中當(dāng)前待編碼宏塊的相鄰宏塊以及前一幀中與所述當(dāng)前待編碼宏塊位于相同位置的宏塊的運(yùn)動(dòng)矢量;
[0009]步驟二,根據(jù)步驟一獲取的運(yùn)動(dòng)矢量確定搜索中心A和搜索范圍Spi ;
[0010]步驟三,以所述前一幀的原始幀為參考幀,在所述搜索范圍Spi內(nèi)以A為搜索中心進(jìn)行運(yùn)動(dòng)搜索,獲得預(yù)測(cè)運(yùn)動(dòng)矢量;[0011]步驟四,根據(jù)所述預(yù)測(cè)運(yùn)動(dòng)矢量確定搜索中心B和搜索范圍Sp2 ;判斷是否提前結(jié)束,若是則確定最佳運(yùn)動(dòng)矢量;否則執(zhí)行步驟五;
[0012]步驟五,以所述前一幀的重構(gòu)幀為參考幀,在所述搜索范圍Sp2內(nèi)以B為搜索中心進(jìn)行運(yùn)動(dòng)搜索,確定最佳運(yùn)動(dòng)矢量。
[0013]優(yōu)選地,步驟二中,所述搜索中心A是運(yùn)用中值預(yù)測(cè)方法、運(yùn)動(dòng)矢量預(yù)測(cè)方法、或/和鄰近參考幀預(yù)測(cè)方法確定的。
[0014]優(yōu)選地,步驟二中,所述搜索范圍Spi通過運(yùn)動(dòng)矢量的平均值進(jìn)行調(diào)整。
[0015]優(yōu)選地,步驟三中,所述運(yùn)動(dòng)搜索是運(yùn)用六邊形搜索算法、全搜索算法、菱形搜索算法、或/和混合搜索算法進(jìn)行的搜索。
[0016]優(yōu)選地,步驟五中,所述運(yùn)動(dòng)搜索是運(yùn)用小菱形搜索算法、六邊形搜索算法、全搜索算法、大菱形搜索算法、或/和混合搜索算法進(jìn)行的搜索。
[0017]優(yōu)選地,所述相鄰宏塊包括當(dāng)前待編碼宏塊相鄰的左、上、右上方的宏塊;若其中某個(gè)宏塊不存在,則該不存在的宏塊的運(yùn)動(dòng)矢量賦值為O。
[0018]優(yōu)選地,如果所述相鄰宏塊中的左側(cè)的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇左側(cè)的宏塊中位置處于最上方的子塊的運(yùn)動(dòng)矢量值作為所述左側(cè)的宏塊的運(yùn)動(dòng)矢量值;如果所述相鄰宏塊中的正上方的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇最左側(cè)的子塊的運(yùn)動(dòng)矢量值作為所述正上方的宏塊的運(yùn)動(dòng)矢量值。
[0019]如上所述,本發(fā)明所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,具有以下有益效果:
[0020]本發(fā)明能夠在符合H.264編碼協(xié)議的基礎(chǔ)上,使用高效的搜索范圍確定方法,并利用原始幀的數(shù)據(jù)完整性,有效提高運(yùn)動(dòng)估計(jì)的準(zhǔn)確度,減少編碼錯(cuò)誤傳遞和擴(kuò)散,從而降低編碼圖像的質(zhì)量損失,提高視頻圖像質(zhì)量。
【專利附圖】
【附圖說明】
[0021]圖1顯示為本發(fā)明所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法的流程示意圖。
[0022]圖2顯示為尺寸相同的當(dāng)前宏塊與相鄰宏塊的位置關(guān)系示意圖。
[0023]圖3顯示為尺寸不同的當(dāng)前宏塊與相鄰宏塊的位置關(guān)系示意圖。
[0024]圖4顯示為前一幀中與所述當(dāng)前幀中當(dāng)前待編碼宏塊位置相同的宏塊的位置示意圖。
【具體實(shí)施方式】
[0025]以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0026]請(qǐng)參閱附圖。需要說明的是,本實(shí)施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0027]本發(fā)明為了解決現(xiàn)有估計(jì)方法中存在的圖像質(zhì)量損失和錯(cuò)誤的傳遞與擴(kuò)散的問題,設(shè)計(jì)并實(shí)現(xiàn)了一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,該方法以當(dāng)前幀的前一幀的原始幀和前一幀的重構(gòu)幀為參考幀,配合高效的搜索范圍確定方法進(jìn)行運(yùn)動(dòng)估計(jì),以達(dá)到有效的找到最佳匹配塊,減小錯(cuò)誤傳遞和擴(kuò)散的目的。
[0028]下面結(jié)合實(shí)施例和附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
[0029]實(shí)施例
[0030]本實(shí)施例提供一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,如圖1所示,所述基于雙參考幀的運(yùn)動(dòng)估計(jì)方法包括:
[0031]SI,在編碼P幀時(shí),獲取當(dāng)前幀中當(dāng)前待編碼宏塊的相鄰宏塊以及前一幀中與所述當(dāng)前待編碼宏塊位于相同位置的宏塊的運(yùn)動(dòng)矢量。
[0032]進(jìn)一步,所述相鄰宏塊可以選取當(dāng)前待編碼宏塊相鄰的左、上、右上方的宏塊。若其中某個(gè)宏塊不存在,則相應(yīng)的該不存在的宏塊的運(yùn)動(dòng)矢量賦值為O。
[0033]更進(jìn)一步,因?yàn)楸景l(fā)明中編碼以宏塊為單位,而一個(gè)宏塊包含I個(gè)16X16的亮度塊和2個(gè)8X8的色度塊,故可選取3個(gè)相鄰宏塊進(jìn)行運(yùn)動(dòng)矢量計(jì)算。編碼時(shí),按照從左到右,從上到下的順序一個(gè)宏塊接著一個(gè)宏塊進(jìn)行。如果所述相鄰宏塊中的左側(cè)的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇左側(cè)的宏塊中位置處于最上方的子塊的運(yùn)動(dòng)矢量值作為所述左側(cè)的宏塊的運(yùn)動(dòng)矢量值;如果所述相鄰宏塊中的正上方的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇最左側(cè)的子塊的運(yùn)動(dòng)矢量值作為所述正上方的宏塊的運(yùn)動(dòng)矢量值。例如:如圖2所示,假設(shè)E宏塊為當(dāng)前待編碼宏塊,A宏塊在E的左側(cè),B宏塊在E的上方、C宏塊在E的右上方,貝U可以選取A宏塊、B宏塊、C宏塊作為本發(fā)明所述的相鄰宏塊。如圖3所示,如果E宏塊的正左側(cè)多于一個(gè)亮度塊或色度塊這種子塊,那么選擇E宏塊的正左側(cè)位置中最上方的子塊作為A塊,在E宏塊的正上方位置中選擇最左側(cè)的子塊作為B塊。所述亮度塊或色度塊這種子塊具體是指:對(duì)于16 X 16亮度塊,其左邊出現(xiàn)16 X 8、8 X 8、8 X 4、4 X 8、4 X 4子亮度塊的情況;對(duì)于8 X 8色度塊,其左邊出現(xiàn)8 X 4、4 X 4子色度塊的情況。
[0034]所述前一幀中與所述當(dāng)前待編碼宏塊位于相同位置的宏塊可命名為D宏塊,如圖4所不,該D宏塊即是前一巾貞中與E宏塊處于相同位置的宏塊。
[0035]S2,根據(jù)步驟SI獲取的運(yùn)動(dòng)矢量確定搜索中心A和搜索范圍Spi。
[0036]進(jìn)一步,所述搜索中心A可以是運(yùn)用中值預(yù)測(cè)方法、運(yùn)動(dòng)矢量預(yù)測(cè)方法、或/和鄰近參考幀預(yù)測(cè)方法等來確定的,但不限于本實(shí)施例列舉的幾種確定方法。所述搜索范圍Spi可以通過運(yùn)動(dòng)矢量的平均值進(jìn)行調(diào)整,當(dāng)然也不限于本實(shí)施例列舉的平均值這一種調(diào)整方法。
[0037]在采用各種預(yù)測(cè)方法來確定搜索中心A的過程中需遵守以下準(zhǔn)則:
[0038]I)對(duì)于除了尺寸為16X8和8X16的塊來說,MVp是塊A、B和C的運(yùn)動(dòng)矢量的中值;即MVp= (MVa+MVb+MVc) /3,其中,MVa表示塊A的MV值,MVb表示塊B的MV值,MVc表示塊C的MV值,MV值即表示運(yùn)動(dòng)矢量值。
[0039]2)對(duì)于尺寸為16X8的塊來說,上方的16X8的塊的MVp根據(jù)B塊預(yù)測(cè)得到,下方的16X8的塊的MVp根據(jù)A塊得到;即上方的16X8的塊的MVp取B塊的MV值,下方的16X8的塊的MVp取A塊的MV值。
[0040]3)對(duì)于尺寸為8X16的塊來說,左側(cè)的8X16的塊的MVp根據(jù)A塊預(yù)測(cè)得到,右側(cè)的8 X 16的塊的MVp根據(jù)C塊預(yù)測(cè)得到;即左側(cè)的8 X 16的塊的MVp取A塊的MV值,右側(cè)的8 X 16的塊的MVp取C塊的MV值。
[0041]4)對(duì)于不用編碼的可跳過去的宏塊,16X16的塊的MVp如I)所述的情況得到。
[0042]以上方法稱為中值預(yù)測(cè),是業(yè)內(nèi)使用較為普遍的一種方法,本發(fā)明所述的MVp值的具體獲得方式不限于使用何種預(yù)測(cè)方法,但凡能得到MVp值的預(yù)測(cè)方法均包括在本發(fā)明的范圍內(nèi)。
[0043]進(jìn)一步,因?yàn)橄噜徍陦K的運(yùn)動(dòng)矢量具有一定的相關(guān)性,所以當(dāng)前待編碼宏塊的最佳搜索范圍一般小于相鄰宏塊的最佳搜索范圍。搜索范圍的定義如下:S=maX(abs(MX-M(p,X)), abs (My-M(p, y))),其中Mx和My分別是預(yù)測(cè)運(yùn)動(dòng)矢量的水平和垂直分量;M (p, x)和M (p,y)分別為中值預(yù)測(cè)運(yùn)動(dòng)矢量的水平和垂直分量;S為搜索范圍。最終得到的預(yù)測(cè)搜索范圍可以表示為:SP1=max(SA,SB,SD)+K ;其中,Sa表示由宏塊A所確定的搜索范圍,即SA=max(abs (MaX-Ma (p, X)), abs (MAy_MA(p, y)) ),MAx和MAy分別是宏塊A的預(yù)測(cè)運(yùn)動(dòng)矢量的水平和垂直分量;Ma (P,1)和吣(p,y)分別為宏塊A通過中值預(yù)測(cè)算法獲得的運(yùn)動(dòng)矢量的水平和垂直分量;同理可推知:SB表示由宏塊B所確定的搜索范圍;SD表示由宏塊D所確定的搜索范圍。K的計(jì)算式為K= (P (Ba)+p (Bb)+p(BD)),其中,BA、Bb和Bd分別表示宏塊A、宏塊B和宏塊D的編碼模式,當(dāng)B=8X8時(shí),P (B) =8 ;當(dāng)B=16X8或8X 16時(shí),p (B) =4 ;其他情況下P (B) =0 ο
[0044]S3,以所述前一幀的原始幀為參考幀,在所述搜索范圍Spi內(nèi)以A為搜索中心進(jìn)行運(yùn)動(dòng)搜索,獲得預(yù)測(cè)運(yùn)動(dòng)矢量MVp。
[0045]進(jìn)一步,所述運(yùn)動(dòng)搜索可以是運(yùn)用六邊形搜索算法、全搜索算法、菱形搜索算法、或/和混合搜索算法等進(jìn)行的搜索,但不限于本實(shí)施例列舉的幾種搜索算法。
[0046]S4,根據(jù)所述預(yù)測(cè)運(yùn)動(dòng)矢量確定搜索中心B (簡(jiǎn)稱CenterB)和搜索范圍Sp2 ;判斷是否提前結(jié)束,若是則確定所述預(yù)測(cè)運(yùn)動(dòng)矢量MVp為最佳運(yùn)動(dòng)矢量;否則執(zhí)行步驟S5。
[0047]進(jìn)一步,所述搜索范圍SP2=min(SCenterB,max(SA’,SB’,Sc’ ));其中,Scenteri3 表示在前一幀的重構(gòu)幀中由CenterB所在宏塊所確定的搜索范圍;其中S/表示在前一幀的重構(gòu)幀中由CenterB所在宏塊左邊的宏塊A所確定的搜索范圍;其中SB’表示在前一幀的重構(gòu)幀中由CenterB所在宏塊上邊的宏塊B所確定的搜索范圍;其中Sc,表示在前一幀的重構(gòu)幀中由CenterB所在宏塊右上方的宏塊C所確定的搜索范圍。若Sp2為0,則提前結(jié)束,以預(yù)測(cè)運(yùn)動(dòng)矢量MVp為最佳運(yùn)動(dòng)矢量,否則執(zhí)行步驟S5。
[0048]S5,以所述前一幀的重構(gòu)幀為參考幀,在所述搜索范圍Sp2內(nèi)以B為搜索中心進(jìn)行運(yùn)動(dòng)搜索,確定最佳運(yùn)動(dòng)矢量。本步驟中所述的運(yùn)動(dòng)搜索是運(yùn)用小菱形搜索算法、六邊形搜索算法、全搜索算法、大菱形搜索算法、或/和混合搜索算法進(jìn)行的搜索。
[0049]本發(fā)明所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法能夠在符合H.264編碼協(xié)議的基礎(chǔ)上,使用高效的搜索范圍確定方法,并利用原始幀的數(shù)據(jù)完整性,有效提高運(yùn)動(dòng)估計(jì)的準(zhǔn)確度,減少編碼錯(cuò)誤傳遞和擴(kuò)散,從而降低編碼圖像的質(zhì)量損失,提高視頻圖像質(zhì)量。
[0050]本發(fā)明采用的雙參考幀方法限定參考幀數(shù)為兩個(gè),且必須是待編碼幀前一幀的原始幀和重構(gòu)幀。這里采用原始幀作為參考幀之一,與重構(gòu)幀一起參與運(yùn)動(dòng)估計(jì)。所謂原始幀是指未經(jīng)編碼的原始圖像數(shù)據(jù),相對(duì)于根據(jù)編碼結(jié)果重構(gòu)的圖像數(shù)據(jù)(即重構(gòu)幀)。
[0051]在當(dāng)前主流的編碼算法中,一般編碼完前一幀后不保存該幀的原始圖像數(shù)據(jù),當(dāng)要使用前一幀的圖像數(shù)據(jù)時(shí),會(huì)使用前一幀的已編碼結(jié)果來還原前一幀的圖像數(shù)據(jù)(即得到重構(gòu)幀),無論是單參考幀還是多參考幀,都是使用重構(gòu)幀為參考幀;但是由于編碼過程是有損的,會(huì)造成圖像質(zhì)量的損失,也可能會(huì)產(chǎn)生一些錯(cuò)誤,而重構(gòu)的過程并不能完全修復(fù)這些問題,從而使得以重構(gòu)幀為參考幀進(jìn)行的運(yùn)動(dòng)估計(jì)和編碼容易導(dǎo)致錯(cuò)誤傳遞和擴(kuò)散。
[0052]因此本發(fā)明創(chuàng)新的采用原始幀和重構(gòu)幀同時(shí)作為參考幀的雙參考幀方式進(jìn)行運(yùn)動(dòng)估計(jì),即在編碼完前一幀后,仍然保存前一幀的原始圖像數(shù)據(jù)作為參考幀之一,和前一幀的重構(gòu)幀一起參與對(duì)當(dāng)前待編碼幀的運(yùn)動(dòng)估計(jì)。首先利用原始幀進(jìn)行第一輪運(yùn)動(dòng)估計(jì),其目的是精確預(yù)測(cè),然后再利用重構(gòu)幀進(jìn)行第二輪運(yùn)動(dòng)估計(jì),其目的是略作微調(diào)以方便重構(gòu)時(shí)快速高效的定位。
[0053]本發(fā)明與傳統(tǒng)單參考幀編碼算法的區(qū)別在于:本發(fā)明是對(duì)傳統(tǒng)單參考幀編碼算法的改進(jìn),引入原始幀作為共同參考幀作輔助運(yùn)算,以得到更佳的運(yùn)動(dòng)估計(jì)結(jié)果。
[0054]本發(fā)明與傳統(tǒng)多參考幀編碼算法的區(qū)別在于:標(biāo)準(zhǔn)的多參考幀形式為,編碼時(shí)待編碼幀A參考多個(gè)不同時(shí)間點(diǎn)的重構(gòu)幀進(jìn)行編碼運(yùn)算得到編碼結(jié)果B,解碼時(shí)待解碼數(shù)據(jù)B須參考與編碼時(shí)相應(yīng)的多個(gè)參考幀進(jìn)行解碼得到解碼幀A’。而在本發(fā)明中作為參考幀的原始幀和重構(gòu)幀都是當(dāng)前幀的前一幀,在時(shí)間點(diǎn)上是相同的,原始幀作為編碼輔助工具僅參與編碼運(yùn)算,在解碼過程中不會(huì)也無法使用到,最終的編碼結(jié)果以單參考幀的形式存在,當(dāng)對(duì)使用本方法編碼的視頻進(jìn)行解碼時(shí)僅以當(dāng)前幀的前一幀作為參考幀進(jìn)行解碼重構(gòu)。這是一種對(duì)H.264標(biāo)準(zhǔn)單參考幀編碼方法的改進(jìn),嚴(yán)格意義上不屬于多參考幀編碼算法,可算作“偽多參考幀”。
[0055]本發(fā)明可提高預(yù)測(cè)圖像的質(zhì)量,減小運(yùn)動(dòng)估計(jì)中的錯(cuò)誤傳遞和擴(kuò)散。與單參考幀的運(yùn)動(dòng)估計(jì)相比,該方法會(huì)略微增加一些運(yùn)算上的時(shí)間消耗和用于保存原始幀的內(nèi)存空間消耗,但是可以得到更好的運(yùn)動(dòng)估計(jì)效果。和其他多參考幀的運(yùn)動(dòng)估計(jì)相比,該方法在消耗相同甚至更少的前提下可獲得更好的運(yùn)動(dòng)估計(jì)效果。
[0056]綜上所述,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。
[0057]上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于,所述基于雙參考幀的運(yùn)動(dòng)估計(jì)方法包括: 步驟一,在編碼P幀時(shí),獲取當(dāng)前幀中當(dāng)前待編碼宏塊的相鄰宏塊以及前一幀中與所述當(dāng)前待編碼宏塊位于相同位置的宏塊的運(yùn)動(dòng)矢量; 步驟二,根據(jù)步驟一獲取的運(yùn)動(dòng)矢量確定搜索中心A和搜索范圍SPl ; 步驟三,以所述前一幀的原始幀為參考幀,在所述搜索范圍SPl內(nèi)以A為搜索中心進(jìn)行運(yùn)動(dòng)搜索,獲得預(yù)測(cè)運(yùn)動(dòng)矢量; 步驟四,根據(jù)所述預(yù)測(cè)運(yùn)動(dòng)矢量確定搜索中心B和搜索范圍SP2 ;判斷是否提前結(jié)束,若是則確定最佳運(yùn)動(dòng)矢量;否則執(zhí)行步驟五; 步驟五,以所述前一幀的重構(gòu)幀為參考幀,在所述搜索范圍SP2內(nèi)以B為搜索中心進(jìn)行運(yùn)動(dòng)搜索,確定最佳運(yùn)動(dòng)矢量。
2.根據(jù)權(quán)利要求1所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:步驟二中,所述搜索中心A是運(yùn)用中值預(yù)測(cè)方法、運(yùn)動(dòng)矢量預(yù)測(cè)方法、或/和鄰近參考幀預(yù)測(cè)方法確定的。
3.根據(jù)權(quán)利要求1所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:步驟二中,所述搜索范圍SPl通過運(yùn)動(dòng)矢量的平均值進(jìn)行調(diào)整。
4.根據(jù)權(quán)利要求1所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:步驟三中,所述運(yùn)動(dòng)搜索是運(yùn)用六邊形搜索算法、全搜索算法、菱形搜索算法、或/和混合搜索算法進(jìn)行的搜索。
5.根據(jù)權(quán)利要求1所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:步驟五中,所述運(yùn)動(dòng)搜索是運(yùn)用小菱形搜索算法、六邊形搜索算法、全搜索算法、大菱形搜索算法、或/和混合搜索算法進(jìn)行的搜索。
6.根據(jù)權(quán)利要求1所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:所述相鄰宏塊包括當(dāng)前待編碼宏塊相鄰的左、上、右上方的宏塊;若其中某個(gè)宏塊不存在,則該不存在的宏塊的運(yùn)動(dòng)矢量賦值為O。
7.根據(jù)權(quán)利要求6所述的基于雙參考幀的運(yùn)動(dòng)估計(jì)方法,其特征在于:如果所述相鄰宏塊中的左側(cè)的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇左側(cè)的宏塊中位置處于最上方的子塊的運(yùn)動(dòng)矢量值作為所述左側(cè)的宏塊的運(yùn)動(dòng)矢量值;如果所述相鄰宏塊中的正上方的宏塊包括多于一個(gè)亮度子塊或色度子塊,那么選擇最左側(cè)的子塊的運(yùn)動(dòng)矢量值作為所述正上方的宏塊的運(yùn)動(dòng)矢量值。
【文檔編號(hào)】H04N19/56GK103796026SQ201210431435
【公開日】2014年5月14日 申請(qǐng)日期:2012年11月1日 優(yōu)先權(quán)日:2012年11月1日
【發(fā)明者】王子希 申請(qǐng)人:華平信息技術(shù)股份有限公司