專利名稱:用于h.264幀內(nèi)預(yù)測(cè)編碼的基于dvs的快速模式選擇方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字視頻處理相關(guān)技術(shù),尤其是涉及一種用于H. 264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法。
背景技術(shù):
數(shù)字視頻傳輸?shù)膱D像數(shù)據(jù)中往往存在著大量的冗余數(shù)據(jù),如果可以將那些冗余數(shù)據(jù)除去,就可以大大減少數(shù)據(jù)的傳輸量。幀內(nèi)預(yù)測(cè)編碼(Intra Prediction Coding)是 H. 264視頻編碼標(biāo)準(zhǔn)引入的新的編碼技術(shù)。幀內(nèi)預(yù)測(cè)編碼技術(shù)使用相鄰已編碼塊的像素點(diǎn)按照某種模式預(yù)測(cè)當(dāng)前像素點(diǎn)的值。編碼傳輸時(shí)只傳輸預(yù)測(cè)值和實(shí)際值之間的差值,由于圖像像素在空間域具有相關(guān)性,因此預(yù)測(cè)值和實(shí)際值之間的差值很小,只傳輸差值可以減少傳輸圖像所需的數(shù)據(jù),達(dá)到了視頻壓縮編碼的目的。在解碼端,解碼器根據(jù)編碼塊所用的預(yù)測(cè)模式和先前已經(jīng)解碼完成的相鄰塊恢復(fù)出預(yù)測(cè)值。預(yù)測(cè)值與差值相加即可恢復(fù)出當(dāng)前塊的數(shù)據(jù)。由于視頻圖像的同一幀像素之間具有極強(qiáng)的空間相關(guān)性,因此幀內(nèi)預(yù)測(cè)編碼技術(shù)是去除空間冗余的有效方法。在進(jìn)行H. 264幀內(nèi)預(yù)測(cè)編碼時(shí),首先將一幀圖像劃分成許多互不重疊的16X16像素宏塊(Macro Block,簡稱MB)。幀內(nèi)預(yù)測(cè)按照光柵掃描順序以宏塊為單位進(jìn)行。對(duì)于每一個(gè)宏塊,其上相鄰宏塊、左相鄰宏塊、上左相鄰宏塊和上右相鄰宏塊在光柵掃描順序下必然是已編碼的宏塊。這四個(gè)相鄰宏塊經(jīng)編碼器端恢復(fù)重建后的像素作為預(yù)測(cè)當(dāng)前待編碼宏塊的相鄰像素。對(duì)每一個(gè)待編碼宏塊,有兩種幀內(nèi)預(yù)測(cè)編碼類型。一種是對(duì)每個(gè)4X4子塊都進(jìn)行幀內(nèi)預(yù)測(cè)編碼,每個(gè)4X4子塊有九種預(yù)測(cè)模式可以選擇。幀內(nèi)預(yù)測(cè)編碼為每個(gè)4X4 子塊選擇一個(gè)預(yù)測(cè)模式進(jìn)行編碼。一個(gè)16X16宏塊可以分為16個(gè)4X4子塊,幀內(nèi)預(yù)測(cè)編碼時(shí)16個(gè)4X4子塊也按照光柵掃描順序進(jìn)行處理,已編碼子塊可作為后續(xù)待編碼子塊的相鄰塊。按照這種類型進(jìn)行編碼的宏塊稱為幀內(nèi)4X4編碼宏塊(Intra_4X4)。另一種幀內(nèi)編碼類型是對(duì)整個(gè)16X16宏塊進(jìn)行幀內(nèi)預(yù)測(cè)編碼,每個(gè)16X16宏塊有四種預(yù)測(cè)模式可以選擇。幀內(nèi)預(yù)測(cè)編碼為整個(gè)16X16宏塊選擇一種預(yù)測(cè)模式進(jìn)行編碼。按照這種類型進(jìn)行編碼的宏塊稱為幀內(nèi)16X16編碼宏塊antra_16X16)。幀內(nèi)4X4編碼因?yàn)槭窃谳^小的 4X4子塊上進(jìn)行,所以適合編碼圖像細(xì)節(jié)豐富的部分;幀內(nèi)16X16編碼則非常適合編碼圖像變化緩慢的部分。在H.沈4幀內(nèi)預(yù)測(cè)編碼中,為了提高編碼質(zhì)量,采用了率失真優(yōu)化技術(shù) (Rate-Distortion Optimization Technique,簡稱 RDO 技術(shù))來決定為當(dāng)前待編碼 4X4 子塊(或16X16宏塊)選擇何種預(yù)測(cè)模式。率失真優(yōu)化技術(shù)使用拉格朗日(Lagrange)函數(shù)計(jì)算每種預(yù)測(cè)模式的幀內(nèi)編碼代價(jià),選取編碼代價(jià)最小的預(yù)測(cè)模式作為當(dāng)前待編碼4X4 子塊或(16X16宏塊)的最終編碼模式。對(duì)于幀內(nèi)4X4編碼類型,整個(gè)宏塊的編碼代價(jià)是 16個(gè)4X4子塊的編碼代價(jià)總和。對(duì)于幀內(nèi)16X16編碼類型,編碼代價(jià)是單個(gè)16X16宏塊的編碼代價(jià)。編碼代價(jià)最小的編碼類型作為當(dāng)前待編碼宏塊的最終編碼類型。
幀內(nèi)預(yù)測(cè)作為H. 264視頻編碼器的核心部分之一,是視頻壓縮中比較復(fù)雜的部分,對(duì)視頻圖像的編碼壓縮質(zhì)量起到?jīng)Q定性作用。在目前的H. 264視頻編解碼參考模型中, 幀內(nèi)預(yù)測(cè)模式選擇采用的是全搜索算法(Full Search Algorithm)。全搜索算法是對(duì)兩種幀內(nèi)預(yù)測(cè)編碼類型都進(jìn)行考察。對(duì)幀內(nèi)4X4編碼類型,編碼每一個(gè)4X4子塊需要率失真優(yōu)化技術(shù)計(jì)算全部九種預(yù)測(cè)模式的編碼代價(jià);對(duì)幀內(nèi)16X16 編碼類型,編碼一個(gè)16X16宏塊需要率失真優(yōu)化技術(shù)計(jì)算全部四種預(yù)測(cè)模式的編碼代價(jià)。 全搜索模式選擇算法實(shí)現(xiàn)簡單,可以為每個(gè)待編碼塊找到最優(yōu)的幀內(nèi)預(yù)測(cè)編碼模式,編碼性能最佳。但是,全搜索算法計(jì)算量巨大,編碼消耗時(shí)間長,非常不利于實(shí)時(shí)編碼的實(shí)現(xiàn)。為了節(jié)約幀內(nèi)預(yù)測(cè)編碼時(shí)間,人們又發(fā)明了許多基于邊界檢測(cè)(Edge Detection) 的幀內(nèi)預(yù)測(cè)快速模式選擇方法。與全搜索算法相比,基于邊界檢測(cè)的幀內(nèi)預(yù)測(cè)快速模式選擇方法能有效減少率失真優(yōu)化技術(shù)所要計(jì)算編碼代價(jià)的預(yù)測(cè)模式數(shù)量?;谶吔鐧z測(cè)的幀內(nèi)預(yù)測(cè)快速模式選擇方法有效的利用了當(dāng)前待編碼4X4子塊(或16X16宏塊)內(nèi)部像素之間的空間相關(guān)性,通過一些簡單的運(yùn)算檢測(cè)出子塊(或宏塊)內(nèi)的邊界方向類型。這些邊界方向類型可以用來在率失真優(yōu)化技術(shù)計(jì)算編碼代價(jià)前,有效的排除掉出現(xiàn)概率較小的預(yù)測(cè)模式,減少率失真優(yōu)化技術(shù)需要計(jì)算編碼代價(jià)的預(yù)測(cè)模式數(shù)量。經(jīng)過對(duì)現(xiàn)有文獻(xiàn)進(jìn)行檢索發(fā)現(xiàn),F(xiàn). Pan等人于2005年在IEEE期刊Circuits And Systems For Video Technology (視頻技術(shù)電路與系統(tǒng))第7期,第15卷,813-822頁上發(fā)表的"Fast mode decision algorithm for intra-prediction in H. 264/AVC video coding"(面向H. 264/AVC視頻編碼幀內(nèi)預(yù)測(cè)的快速模式選擇算法)一文中提出了一種基于邊界方向直方圖的快速模式選擇方法。該方法通過索貝爾(Sobel)算子為整幅圖像建立邊界圖,再利用邊界圖為每個(gè)待編碼塊建立邊界方向直方圖。最后通過邊界方向直方圖減少需要率失真優(yōu)化技術(shù)計(jì)算編碼代價(jià)的預(yù)測(cè)模式數(shù)量。該方法能夠平均節(jié)約幀內(nèi)預(yù)測(cè)編碼時(shí)間60%,但是在編碼性能方面,平均峰值信噪比損失超過0. 2dB,平均編碼速率增加接近3.6%。另外,該方法計(jì)算過程比較復(fù)雜且沒有提出提前判斷宏塊編碼類型的方法。 J. C. Wang等人于2007年在同一個(gè)期刊的第10期,第17卷,1414-1422頁上發(fā)表的“A fast mode decision algorithm and its VLSI design for H. 264/AVC intra-prediction,,(面向H. 264/AVC幀內(nèi)預(yù)測(cè)的一種快速模式選擇算法和它的VLSI設(shè)計(jì))一文中提出了一種基于顯著邊界強(qiáng)度的方法。該方法通過塊內(nèi)濾波技術(shù)檢測(cè)待編碼塊的顯著邊界強(qiáng)度,繼而通過顯著邊界減少率失真優(yōu)化技術(shù)需要計(jì)算編碼代價(jià)的預(yù)測(cè)模式數(shù)量。該方法能夠平均節(jié)約幀內(nèi)預(yù)測(cè)編碼時(shí)間58%,但是在編碼性能方面,平均峰值信噪比損失接近0. 3dB,平均編碼速率增加接近4.4%。另外,該方法依然沒有提出提前判斷待編碼宏塊編碼類型的方法。 A. C. Tsai等人于2008年在相同期刊的第7期,第18卷,975-982頁上發(fā)表的“Effective Subblock-Based and Pixel-Based Fast Direction Detections for H. 264 Intra Prediction"(面向H. 264幀內(nèi)預(yù)測(cè)的基于子塊和基于像素的有效快速方向檢測(cè))一文中提出了基于子塊方向檢測(cè)的快速模式選擇算法和基于像素方向檢測(cè)的快速模式選擇算法。 該方法通過在當(dāng)前待編碼塊內(nèi)進(jìn)行基于子塊或基于像素的簡單運(yùn)算檢測(cè)出塊內(nèi)可能存在的邊界方向類型。繼而利用邊界方向類型減少率失真優(yōu)化技術(shù)需要計(jì)算編碼代價(jià)的預(yù)測(cè)模式數(shù)量。該方法能夠平均節(jié)約幀內(nèi)預(yù)測(cè)編碼時(shí)間60% 63%,但是在編碼性能方面,平均峰值信噪比損失也超過0.2dB,平均編碼速率增加超過3%。另外,該方法同樣沒有提出提前確定待編碼宏塊編碼類型的方法。還有一些方案提出了一些提前判斷待編碼宏塊編碼類型的方法,但是這些方法不僅計(jì)算復(fù)雜,而且還必須結(jié)合其它快速算法進(jìn)行塊內(nèi)邊界檢測(cè)。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種用于H. 264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種用于H. 264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,包括以下步驟1)計(jì)算16 X 16宏塊的行像素均值和列像素均值;2)將步驟1)得到的所有行像素均值和列像素均值計(jì)算16X 16宏塊的沿垂直方向的方向變化強(qiáng)度值DVS_VER_I16和沿水平方向的方向變化強(qiáng)度值DVS_H0R_I16 ;3)將步驟2、得到的沿垂直方向變化強(qiáng)度值、沿水平方向變化強(qiáng)度值分別與所設(shè)閾值進(jìn)行比較,根據(jù)比較結(jié)果確定當(dāng)前待編碼宏塊的編碼類型;4)根據(jù)步驟幻得到的結(jié)果進(jìn)行分類處理,如果宏塊編碼類型是幀內(nèi)16X16預(yù)測(cè)編碼類型,則執(zhí)行步驟7)直接進(jìn)行塊內(nèi)邊界信息檢測(cè);如果宏塊編碼類型是幀內(nèi)4X4預(yù)測(cè)編碼類型,則執(zhí)行步驟幻考察每個(gè)4X4子塊;如果宏塊編碼類型無法通過閾值比較直接確定,則執(zhí)行步驟幻考察每個(gè)4X4子塊;5)計(jì)算每個(gè)4X4子塊的行像素平均值和列像素平均值;6)計(jì)算每個(gè)4X4子塊的方向變化強(qiáng)度值,該方向變化強(qiáng)度值包括沿垂直方向的方向變化強(qiáng)度值DVS_VER_I4,沿水平方向的方向變化強(qiáng)度值DVS_H0R_I4,沿左對(duì)角線方向的方向變化強(qiáng)度值DVS_45° _14和沿右對(duì)角線方向的方向變化強(qiáng)度值DVS_135° _14,得到每個(gè)4X4子塊的方向變化強(qiáng)度值后執(zhí)行步驟7);7)利用得到的方向變化強(qiáng)度值進(jìn)行塊內(nèi)邊界信息檢測(cè),確定最可能預(yù)測(cè)模式;8)擴(kuò)展預(yù)測(cè)模式選擇。所述的步驟1)中的16X 16宏塊的行像素均值和列像素均值分別為所述的行像素平均值是指宏塊每一行16個(gè)像素的算術(shù)平均值,即一個(gè)宏塊有16 行,共計(jì)算16個(gè)行像素平均值,分別記為Rtl,…,R15 ;所述的列像素平均值是指宏塊每一列16個(gè)像素的算術(shù)平均值,即一個(gè)宏塊有16 列,共計(jì)算16個(gè)列像素平均值,分別記為Ctl,…,C150所述的沿垂直方向的方向變化強(qiáng)度值DVS_VER_I16是指行像素之間沿垂直方向的變化度量,由式⑴得到
權(quán)利要求
1.一種用于H. 264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,包括以下步驟1)計(jì)算16X 16宏塊的行像素均值和列像素均值;2)將步驟1)得到的所有行像素均值和列像素均值計(jì)算16X16宏塊的沿垂直方向的方向變化強(qiáng)度值DVS_VER_I16和沿水平方向的方向變化強(qiáng)度值DVS_H0R_I16 ;3)將步驟幻得到的沿垂直方向變化強(qiáng)度值、沿水平方向變化強(qiáng)度值分別與所設(shè)閾值進(jìn)行比較,根據(jù)比較結(jié)果確定當(dāng)前待編碼宏塊的編碼類型;4)根據(jù)步驟幻得到的結(jié)果進(jìn)行分類處理,如果宏塊編碼類型是幀內(nèi)16X16預(yù)測(cè)編碼類型,則執(zhí)行步驟7)直接進(jìn)行塊內(nèi)邊界信息檢測(cè);如果宏塊編碼類型是幀內(nèi)4X4預(yù)測(cè)編碼類型,則執(zhí)行步驟幻考察每個(gè)4X4子塊;如果宏塊編碼類型無法通過閾值比較直接確定, 則執(zhí)行步驟幻考察每個(gè)4X4子塊;5)計(jì)算每個(gè)4X4子塊的行像素平均值和列像素平均值;6)計(jì)算每個(gè)4X4子塊的方向變化強(qiáng)度值,該方向變化強(qiáng)度值包括沿垂直方向的方向變化強(qiáng)度值DVS_VER_I4,沿水平方向的方向變化強(qiáng)度值DVS_H0R_I4,沿左對(duì)角線方向的方向變化強(qiáng)度值DVS_45° _14和沿右對(duì)角線方向的方向變化強(qiáng)度值DVS_135° _14,得到每個(gè) 4X4子塊的方向變化強(qiáng)度值后執(zhí)行步驟7);7)利用得到的方向變化強(qiáng)度值進(jìn)行塊內(nèi)邊界信息檢測(cè),確定最可能預(yù)測(cè)模式;8)擴(kuò)展預(yù)測(cè)模式選擇。
2.根據(jù)權(quán)利要求1所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的步驟1)中的16X16宏塊的行像素均值和列像素均值分別為所述的行像素平均值是指宏塊每一行16個(gè)像素的算術(shù)平均值,即一個(gè)宏塊有16行, 共計(jì)算16個(gè)行像素平均值,分別記為R0,…,R15 ;所述的列像素平均值是指宏塊每一列16個(gè)像素的算術(shù)平均值,即一個(gè)宏塊有16列, 共計(jì)算16個(gè)列像素平均值,分別記為Ctl,…,C150
3.根據(jù)權(quán)利要求2所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的沿垂直方向的方向變化強(qiáng)度值DVS_VER_I16是指行像素之間沿垂直方向的變化度量,由式(1)得到DVS_VER Jie = ^Rij 一及4,+2| + | +1 - +3|)(1)7=0所述的沿水平方向的方向變化強(qiáng)度值(DVS_HOR_I16)是指列像素之間沿水平方向的變化度量,由式⑵得到DVS_HOR_I\6 ^jjf AJ -C4)+2| + |c4)+1 -C4y+3|)(2)y=o
4.根據(jù)權(quán)利要求1所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的步驟幻將沿垂直方向變化強(qiáng)度值、沿水平方向變化強(qiáng)度值分別與所設(shè)閾值進(jìn)行比較,根據(jù)比較結(jié)果確定當(dāng)前待編碼宏塊的編碼類型具體步驟如下(1)如果兩個(gè)方向變化強(qiáng)度值都小于較小的閾值,判定當(dāng)前待編碼宏塊所表示的圖像內(nèi)容變化平坦,即待編碼宏塊的編碼類型為幀內(nèi)16X 16預(yù)測(cè)編碼類型;(2)如果兩個(gè)方向變化強(qiáng)度值都大于較大的閾值,判定當(dāng)前待編碼宏塊所表示的圖像內(nèi)容富含細(xì)節(jié),即待編碼宏塊的編碼類型為幀內(nèi)4X4預(yù)測(cè)編碼類型;(3)如果兩個(gè)方向變化強(qiáng)度值中有一個(gè)或者兩個(gè)全部位于較小閾值和較大閾值之間, 無法提前判斷當(dāng)前待編碼宏塊所表示的圖像內(nèi)容是較為平坦還是細(xì)節(jié)豐富,即待編碼宏塊的編碼類型無法直接確定。
5.根據(jù)權(quán)利要求1所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的步驟幻中的每個(gè)4 X 4子塊的行像素平均值和列像素平均值分別為所述的行像素平均值是指4X4子塊每一行4個(gè)像素的算術(shù)平均值,即一個(gè)4X4子塊有4行,共計(jì)算4個(gè)行像素平均值,分別記為r。,ri; r2和r3 ;所述的行像素平均值是指4X4子塊每一列4個(gè)像素的算術(shù)平均值,即一個(gè)4X4子塊有4列,共計(jì)算4個(gè)列像素平均值,分別記為Ctl,C1, C2和c3。
6.根據(jù)權(quán)利要求5所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的計(jì)算每個(gè)4X4子塊的方向變化強(qiáng)度值具體為所述的沿垂直方向的方向變化強(qiáng)度值DVS_VER_I4是指行像素之間沿垂直方向的變化度量,由式⑶得到DVS_VER_I4 = ro-rj + lr^(3)所述的沿水平方向的方向變化強(qiáng)度值DVS_H0R_I4是指列像素之間沿水平方向的變化度量,由式⑷得到DVS_H0R_I4 = I C0-C21 +1 C1-C31(4)所述的沿左對(duì)角線方向的方向變化強(qiáng)度值DVS_45° _14是指像素之間沿左對(duì)角或副對(duì)角方向的變化度量,由式(5)得到DVS_45° _I4= c2-r21+ |c3-r3(5)所述的沿右對(duì)角線方向的方向變化強(qiáng)度值DVS_135° _14是指像素之間沿右對(duì)角或主對(duì)角方向的變化度量,由式(6)得到DVS_135° _I4= |Co-r3| + |C「r2|(6)
7.根據(jù)權(quán)利要求6所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的步驟7)利用得到的方向變化強(qiáng)度值進(jìn)行塊內(nèi)邊界信息檢測(cè),確定最可能預(yù)測(cè)模式具體為對(duì)于幀內(nèi)16X16編碼類型還是幀內(nèi)4X4編碼類型,具有最小方向變化強(qiáng)度值的方向所指引的預(yù)測(cè)模式被選為當(dāng)前待編碼塊的最可能預(yù)測(cè)模式。
8.根據(jù)權(quán)利要求6所述的一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,其特征在于,所述的步驟8)擴(kuò)展預(yù)測(cè)模式選擇的具體為對(duì)于幀內(nèi)16 X 16類型編碼塊,除最可能預(yù)測(cè)模式之外,還需要選擇不沿任何方向進(jìn)行預(yù)測(cè)的DC預(yù)測(cè)模式作為率優(yōu)化失真技術(shù)需要計(jì)算編碼代價(jià)的備選模式;對(duì)于幀內(nèi)4X4類型編碼塊,最可能預(yù)測(cè)模式的兩個(gè)相鄰模式、垂直預(yù)測(cè)模式、水平預(yù)測(cè)模式和DC預(yù)測(cè)模式做為率失真優(yōu)化技術(shù)需要計(jì)算編碼代價(jià)的備選模式。
全文摘要
本發(fā)明涉及一種用于H.264幀內(nèi)預(yù)測(cè)編碼的基于DVS的快速模式選擇方法,包括以下步驟1)計(jì)算16×16宏塊的行像素均值和列像素均值;2)計(jì)算16×16宏塊的沿垂直方向的方向變化強(qiáng)度值和沿水平方向的方向變化強(qiáng)度值;3)將沿垂直方向變化強(qiáng)度值、沿水平方向變化強(qiáng)度值分別與所設(shè)閾值進(jìn)行比較,根據(jù)比較結(jié)果確定當(dāng)前待編碼宏塊的編碼類型;4)根據(jù)步驟3)得到的結(jié)果進(jìn)行分類處理;5)計(jì)算每個(gè)4×4子塊的行像素平均值和列像素平均值;6)計(jì)算每個(gè)4×4子塊的方向變化強(qiáng)度值;7)利用得到的方向變化強(qiáng)度值進(jìn)行塊內(nèi)邊界信息檢測(cè),確定最可能預(yù)測(cè)模式;8)擴(kuò)展預(yù)測(cè)模式選擇。與現(xiàn)有技術(shù)相比,本發(fā)明具有減少幀內(nèi)預(yù)測(cè)編碼時(shí)間等優(yōu)點(diǎn)。
文檔編號(hào)H04N7/26GK102438148SQ20111044041
公開日2012年5月2日 申請(qǐng)日期2011年12月23日 優(yōu)先權(quán)日2011年12月23日
發(fā)明者何衛(wèi)鋒, 毛志剛, 繩偉光, 陳政 申請(qǐng)人:上海交通大學(xué)