專(zhuān)利名稱:分層結(jié)構(gòu)預(yù)判的快速視頻編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻壓縮編碼領(lǐng)域,設(shè)計(jì)和實(shí)現(xiàn)了一種分層結(jié)構(gòu)預(yù)判的快速視頻編碼方法。
背景技術(shù):
視頻序列中主要包括三種冗余信息空間冗余,時(shí)間冗余,統(tǒng)計(jì)冗余。通常利用視頻信息自身相關(guān)性,能夠去除視頻數(shù)據(jù)中的冗余信息,達(dá)到視頻壓縮的目的。在視頻壓縮中主要采用I幀和P(B)幀編碼技術(shù);I幀是幀內(nèi)編碼方法,即對(duì)視頻中的某一幀單獨(dú)編碼,用來(lái)消除空間冗余;P(B)幀是幀間編碼方法,利用相鄰幀的相關(guān)性消除時(shí)間冗余;再利用熵編碼方法消除統(tǒng)計(jì)冗余。
H. 264/AVC(以下簡(jiǎn)稱H. 264)作為最新視頻編碼標(biāo)準(zhǔn),引入了眾多先進(jìn)的編碼技術(shù),如多方向的幀內(nèi)預(yù)測(cè)編碼、可變塊的幀間預(yù)測(cè)編碼、1/4象素精度的運(yùn)動(dòng)估計(jì)、多參考幀編碼等,使其具有比以往標(biāo)準(zhǔn)更出色的編碼性能,受到了業(yè)界人士廣泛的重視和歡迎。
然而H. 264更高編碼性能的獲得是以巨大編碼復(fù)雜度為代價(jià)的。在相同信噪比條件下,H. 264碼率較H. 263節(jié)省50%左右;但H. 264編碼計(jì)算復(fù)雜度約為H. 263的4 5 倍,約為MPEG-4的3倍,編碼實(shí)時(shí)性較差。因此,如何降低H. 264編解碼器的計(jì)算復(fù)雜度就成為H. 264能否盡快進(jìn)入大規(guī)模實(shí)際商用,取得成功的關(guān)鍵因素之一。
研究表明,H. 264編碼計(jì)算復(fù)雜度的80%主要來(lái)自運(yùn)動(dòng)估計(jì)和模式選擇。尤其是幀間模式選擇技術(shù),對(duì)當(dāng)前編碼宏塊以全搜索的方式遍歷計(jì)算幀間和幀內(nèi)下的所有預(yù)測(cè)模式,計(jì)算極為復(fù)雜,如
圖1。
為了獲得最佳編碼效率,減小以往視頻編碼標(biāo)準(zhǔn)采用單一宏塊劃分模式而帶來(lái)的編碼誤差,在幀間編碼中,H. 264采用可變尺寸塊的編碼模式,每個(gè)當(dāng)前編碼宏塊可劃分為 16X16,16X8,8X16和8X8,其中8X8又稱為亞分割模式,還可以繼續(xù)劃分為8X8,8X4, 4X8和4X4,如圖2。同時(shí)支持Skip模式,即直接拷貝前一參考幀中對(duì)應(yīng)宏塊的編碼模式。H. 264中的運(yùn)動(dòng)搜索是以子塊為單位的,所以16X16宏塊中的每個(gè)子塊都有一個(gè)獨(dú)立的運(yùn)動(dòng)矢量。顯然,宏塊中的子塊劃分得愈細(xì),對(duì)殘差值進(jìn)行編碼所需的位數(shù)就愈小,但因此而帶來(lái)的問(wèn)題是有更多的運(yùn)動(dòng)矢量需要進(jìn)行編碼,這會(huì)導(dǎo)致整個(gè)宏塊編碼所需的比特?cái)?shù)增加。因此,在具體編碼時(shí)需要根據(jù)運(yùn)動(dòng)估計(jì)后的殘差值大小和需要的運(yùn)動(dòng)矢量編碼代價(jià)來(lái)優(yōu)化選擇宏塊的編碼模式。
在幀內(nèi)預(yù)測(cè)中,H. 264充分利用相鄰像素的空間相關(guān)性,支持Intra4 X 4和 Intral6X16兩種幀內(nèi)預(yù)測(cè)編碼。對(duì)于當(dāng)前編碼宏塊的亮度分量而言,^itra4X4包含9 種預(yù)測(cè)方向(垂直預(yù)測(cè),水平預(yù)測(cè),平均預(yù)測(cè),左對(duì)角預(yù)測(cè),右對(duì)角預(yù)測(cè),垂直右對(duì)角預(yù)測(cè), 水平向下預(yù)測(cè),垂直左對(duì)角預(yù)測(cè),水平向上預(yù)測(cè));Intral6X16包含4種預(yù)測(cè)方向(水平預(yù)測(cè)、垂直預(yù)測(cè)、DC預(yù)測(cè)和平面預(yù)測(cè))。對(duì)于當(dāng)前編碼宏塊的色度分量而言,幀內(nèi)預(yù)測(cè)類(lèi)似于亮度分量的IntraieX 16,也包含4種預(yù)測(cè)方向。因此,當(dāng)前編碼宏塊的幀內(nèi)預(yù)測(cè)可達(dá) [4+(16X9)]X4 = 592次,計(jì)算量相當(dāng)可觀。
H. 264基于率失真代價(jià)準(zhǔn)則,通過(guò)拉格朗日率失真優(yōu)化函數(shù)(Rate-Distortion Optimization, RD0),計(jì)算每種預(yù)測(cè)模式的率失真代價(jià)值(RD-cost),選擇具有最小 RD-cost的預(yù)測(cè)模式為最優(yōu)的幀間預(yù)測(cè)模式(見(jiàn)圖幻。這種方法雖然能夠選擇出具有最優(yōu)率失真意義的幀間預(yù)測(cè)模式,但計(jì)算量顯著增加,導(dǎo)致H. 264編碼速度下降,成為限制其在實(shí)時(shí)視頻領(lǐng)域應(yīng)用的瓶頸之一。
發(fā)明內(nèi)容
本發(fā)明的提出主要基于以下技術(shù)思路 視頻圖像基本可以分為背景紋理平坦區(qū)域、背景紋理細(xì)致區(qū)域和運(yùn)動(dòng)區(qū)域三大類(lèi)通常背景紋理平坦區(qū)域或者運(yùn)動(dòng)平緩區(qū)域在視頻內(nèi)容中占有很大比重,大多采取 Skip(HiodeO)或宏塊級(jí)預(yù)測(cè)(model 3);僅在紋理復(fù)雜或者運(yùn)動(dòng)劇烈的區(qū)域使用亞分割預(yù)測(cè)(mode4 7);只有在視頻圖像的邊緣部分才選擇幀內(nèi)預(yù)測(cè)(見(jiàn)表1)。
表1不同類(lèi)型視頻序列中各種幀間預(yù)測(cè)編碼模式利用率%
權(quán)利要求
1.分層結(jié)構(gòu)預(yù)判的快速視頻編碼方法,是根據(jù)對(duì)當(dāng)前編碼宏塊特征提前篩選出最優(yōu)幀間預(yù)測(cè)編碼模式,采用分層預(yù)判,首先根據(jù)宏塊時(shí)/空相關(guān)性提前判斷宏塊應(yīng)該采用幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè);若選擇幀間預(yù)測(cè),再根據(jù)宏塊的平坦度特征有針對(duì)性的選擇出現(xiàn)概率較大的幀間預(yù)測(cè)模式集合,舍棄出現(xiàn)概率較小的幀間預(yù)測(cè)模式集合,從而取代H. ^4/AVC原標(biāo)準(zhǔn)幀間預(yù)測(cè)算法中窮舉式的遍歷搜索方法,提前確定最優(yōu)幀間預(yù)測(cè)模式,實(shí)現(xiàn)快速幀間壓縮編碼;其特征在于包括下述步驟步驟一從視頻幀中提取當(dāng)前編碼宏塊的亮度分量值;步驟二 利用宏塊空間、時(shí)間相關(guān)性提前篩選宏塊預(yù)測(cè)模式,用原始信號(hào)與重建信號(hào)間的平方差值和SSD (s,c I QP)代表宏塊相關(guān)性
式中,16為宏塊的水平像素?cái)?shù)和垂直像素?cái)?shù),QP是編碼量化步長(zhǎng),s為原始視頻亮度信號(hào),c為采用預(yù)測(cè)模式編碼后的重建視頻亮度信號(hào),sY[x,y|QP],cY[x,y|QP]分別表示量化步長(zhǎng)為QP時(shí),原始和重建視頻亮度信號(hào)的取值,x,y是宏塊在視頻幀中的位置,具體包括以下步驟1)SSDint ra代表宏塊空間相關(guān)性,SSDint er代表宏塊時(shí)間相關(guān)性;SSDint ra的計(jì)算公式為
式中,SSDint M是用編碼宏塊的周?chē)噜徬袼刈鳛轭A(yù)測(cè)像素,經(jīng)過(guò)垂直和水平方向預(yù)測(cè)的平方差值和,sY[x+m,y+n]是視頻幀中當(dāng)前編碼宏塊的像素亮度值,cY[x+m-l, y+n], cY[x+m,y+n-l]是與當(dāng)前編碼宏塊在垂直和水平方向相鄰宏塊的像素亮度值,x,y是宏塊在視頻幀中的位置,m, η代表宏塊中像素的位置;SSDint er的計(jì)算公式為 16,16
式中,SSDint 為編碼宏塊與前幀宏塊的預(yù)測(cè)平方差值和,sY[x+m,y+n]表示當(dāng)前編碼宏塊的像素亮度值,cY[x+m, y+n]表示前幀中對(duì)應(yīng)位置宏塊的像素亮度值,x, y代表宏塊在視頻幀中的位置,m, η代表宏塊中像素的位置;2)比較SSDintra和SSDint er的大小,篩選當(dāng)前編碼宏塊應(yīng)采用的預(yù)測(cè)模式類(lèi)型,引入調(diào)整因子α和β ;判別公式為
上式中,α,β均為取值在W,l]間的實(shí)數(shù),若Th1大于零,說(shuō)明幀內(nèi)預(yù)測(cè)模式的平方差值和大于幀間預(yù)測(cè)模式的平方差值和,證明宏塊的幀間相關(guān)性大于幀內(nèi)相關(guān)性,則直接舍棄幀內(nèi)預(yù)測(cè)模式,宏塊采用幀間預(yù)測(cè)模式,須對(duì)宏塊做運(yùn)動(dòng)估計(jì),進(jìn)入步驟三;否則,判斷 Th2是否小于零,若Tti2小于零,說(shuō)明幀間預(yù)測(cè)模式的平方差值和大于幀內(nèi)預(yù)測(cè)模式的平方差值和,證明宏塊的幀內(nèi)相關(guān)性大于幀間相關(guān)性,則直接舍棄幀間預(yù)測(cè)模式,宏塊采用幀內(nèi)預(yù)測(cè)模式,進(jìn)入步驟四;否則,說(shuō)明當(dāng)前編碼宏塊時(shí)/空相關(guān)性特征不顯著,不能舍棄幀間/ 幀內(nèi)中的任何一種預(yù)測(cè)模式,先執(zhí)行幀內(nèi)預(yù)測(cè)模式,再進(jìn)入步驟三;步驟三確定最佳幀間編碼模式,采用拉格朗日率失真優(yōu)化準(zhǔn)則,作為運(yùn)動(dòng)估計(jì)和模式選擇的判決依據(jù),選擇率失真意義上的最優(yōu)幀間編碼模式;率失真代價(jià)值,即RD cost,可按照下面的公式計(jì)算Jmode (s,c,MODE I Xmode) = SSD(s, c|QP) + AmodeXR(s, c,M0DE|QP)(5)式中,MODE表示當(dāng)前編碼宏塊采用的幀間預(yù)測(cè)模式;s為原始視頻信號(hào);c為采用MODE 預(yù)測(cè)模式編碼后的重建視頻信號(hào) ’ Xmo“為拉格朗日乘子;Jm。d e(s, c, MODE Amoode)表示 MODE模式下的率失真代價(jià)值RD cost ;R(s, c,M0DE | QP)是與預(yù)測(cè)模式和量化參數(shù)有關(guān)的包含宏塊頭信息、運(yùn)動(dòng)矢量和所有DCT塊信息的總的二進(jìn)制位數(shù);QP是編碼量化步長(zhǎng);SSD(s, c I QP)為原始信號(hào)與重構(gòu)信號(hào)間的平方差值和;根據(jù)宏塊平坦度特征,將宏塊分類(lèi),進(jìn)而優(yōu)先選擇可能的幀間預(yù)測(cè)編碼模式集合,實(shí)現(xiàn)幀間預(yù)測(cè)模式的快速判決;具體包括以下步驟1)表征宏塊平坦度統(tǒng)計(jì)宏塊亮度分量包含各灰度級(jí)的像素?cái)?shù),得到宏塊灰度直方圖,其形狀恰好反映了宏塊圖像細(xì)節(jié)的豐富程度,可用于評(píng)價(jià)宏塊的平坦度;在宏塊灰度直方圖中,必然存在一個(gè)縱坐標(biāo)最大的灰度級(jí),將屬于這個(gè)灰度級(jí)的像素點(diǎn)總數(shù)定義為宏塊的最大像素?cái)?shù),記為 MaxValue ;2)判斷宏塊類(lèi)型為降低對(duì)特征不明顯的宏塊做出誤判,采用動(dòng)態(tài)雙閾值判斷宏塊類(lèi)型及其可能采用的幀間預(yù)測(cè)模式集合,具體過(guò)程如下(1)計(jì)算宏塊灰度直方圖,記錄其最大像素?cái)?shù)MaxValue ;(2)設(shè)定上限閾值Thhigh和下限閾值ThlOT,Thhigh和Thlw均為
間的整數(shù);(3)若MaxValue > Thhigh,認(rèn)為宏塊平坦,則直接進(jìn)行大尺寸幀間預(yù)測(cè),確定最優(yōu)幀間預(yù)測(cè)模式,進(jìn)入步驟四;(4)若MaxVaIueSThlw,認(rèn)為宏塊紋理豐富,則直接進(jìn)行小尺寸幀間預(yù)測(cè),確定最優(yōu)幀間預(yù)測(cè)模式,進(jìn)入步驟四;(5)若Thlw< Max Value < Thhigh,認(rèn)為宏塊平坦度特征不顯著,執(zhí)行全部幀間預(yù)測(cè)模式;為使閾值隨宏塊平坦度的變化而自適應(yīng)改變,采用以下策略(1)若當(dāng)前編碼宏塊的MaxValue大于當(dāng)前上限閾值Thhigh,則更新上限閾值
以此平均值作為新的上限閾值Thhigh ;(2)若當(dāng)前編碼宏塊的MaxValue小于當(dāng)前下限閾值ThlOT,則更新下限閾值 Thlow_new = Τ、+M^xValue,以此平均值作為新的下限閾值II1iot ;(3)若當(dāng)前編碼宏塊的MaxValue介于上限閾值Thhigh和下限閾值Thlw之間,則保持原上、下限閾值數(shù)值不變。步驟四根據(jù)率失真準(zhǔn)則,對(duì)具有最小率失真代價(jià)的預(yù)測(cè)編碼模式下的殘差進(jìn)行變化、量化、熵編碼;步驟五輸出最終的壓縮視頻碼流,保存編碼信息。
全文摘要
本發(fā)明公開(kāi)了一種分層結(jié)構(gòu)預(yù)判的快速視頻編碼方法,涉及視頻壓縮編碼領(lǐng)域。其從原始視頻數(shù)據(jù)中提取當(dāng)前編碼宏塊的亮度信息;定義、計(jì)算并比較當(dāng)前編碼宏塊的時(shí)/空相關(guān)性特征,率先預(yù)判出宏塊應(yīng)采用幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè);若選擇幀間預(yù)測(cè),定義、計(jì)算宏塊的平坦度特征,并根據(jù)該特征將當(dāng)前編碼宏塊分為平坦宏塊、紋理豐富宏塊和特征不顯著宏塊三個(gè)類(lèi)型,有針對(duì)性的預(yù)判出應(yīng)采用的幀間預(yù)測(cè)模式集合,提前確定最優(yōu)幀間預(yù)測(cè)模式,實(shí)現(xiàn)快速幀間壓縮編碼。本發(fā)明方法在視頻質(zhì)量無(wú)損失,壓縮碼率不增加,保持輸出碼流結(jié)構(gòu)的前提下,大幅度降低幀間編碼復(fù)雜度和編碼時(shí)間,繼承了原標(biāo)準(zhǔn)算法高壓縮比的優(yōu)越性能。
文檔編號(hào)H04N7/26GK102186070SQ201110098369
公開(kāi)日2011年9月14日 申請(qǐng)日期2011年4月20日 優(yōu)先權(quán)日2011年4月20日
發(fā)明者劉鵬宇, 賈克斌 申請(qǐng)人:北京工業(yè)大學(xué)