一種基于R-lambda碼率控制模型的HEVC重建視頻閃爍抑制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于多媒體編碼領(lǐng)域,具體涉及一種基于R-lambda碼率控制模型的HEVC 重建視頻閃爍抑制方法。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)處理能力不斷提高,人們對現(xiàn)有視頻編碼標(biāo)準(zhǔn)提出了新的 要求,希望能夠提供高清、超高清分辨率視頻壓縮,以滿足新的家庭影院、遠(yuǎn)程監(jiān)控、數(shù)字廣 播、移動(dòng)流媒體、便攜攝像和醫(yī)學(xué)成像等領(lǐng)域的應(yīng)用。為此,JCT-VC(Joint Collaborative Team on Video Coding)于2013年1月正式發(fā)布了新一代視頻編碼標(biāo)準(zhǔn)HEVC(High Efficiency Video Coding)〇
[0003] HEVC的目標(biāo)是在H. 264/AVC high profile的基礎(chǔ)上,通過采用更加靈活的四叉 樹編碼塊劃分、基于方向的幀內(nèi)預(yù)測與預(yù)測類型、自適應(yīng)運(yùn)動(dòng)矢量預(yù)測選擇機(jī)制等新技術(shù), 在保證相同視頻圖像質(zhì)量的前提下,視頻流的碼率減少50%,即壓縮效率提高一倍。然而, HEVC仍然采用和H. 264/AVC類似的編碼結(jié)構(gòu),幀內(nèi)編碼幀(I幀)就成為影響重建視頻質(zhì)量 的關(guān)鍵因素之一。在視頻編碼過程中,為了容錯(cuò)、場景切換和隨機(jī)存取等需要,通常在編碼 視頻序列中周期性的插入I幀。但由于I幀的編碼效率遠(yuǎn)低于幀間編碼幀(P幀、B幀),當(dāng) 目標(biāo)碼率不足時(shí),在編碼過程中如果不對I幀加以控制,就會(huì)導(dǎo)致重建后的I幀質(zhì)量低于相 鄰的P幀或B幀,在重建視頻播放過程中就會(huì)出現(xiàn)視頻"閃爍"現(xiàn)象,如圖1所示。圖1為 標(biāo)準(zhǔn)視頻測試序列Container編碼后的重建圖像,其中,第96幀和第98幀為P幀,第97幀 為I幀,由于I幀的編碼效率低,重建質(zhì)量差,導(dǎo)致和相鄰幀之間出現(xiàn)視頻主觀質(zhì)量不平滑, 在人們觀看時(shí)會(huì)感覺視頻不斷"閃爍",嚴(yán)重影響視頻觀看質(zhì)量。
[0004] 視頻編碼中的碼率控制模塊根據(jù)給定的目標(biāo)碼率來計(jì)算QP值,而QP值直接影響 到視頻的重建質(zhì)量,在視頻編碼中起著重要作用。在HEVC的參考代碼HM10. 0中,共提供了 兩種碼率控制參考模型,一種是基于像素的URQ (Unified Rate-Quantization)模型,一種 是R-lambda模型。URQ模型能夠?qū)EVC中尺寸多變的編碼塊起到較好的控制效果,但是 在碼率分配階段,URQ模型并沒有對I幀加以區(qū)分,沒有考慮改善I幀的重建質(zhì)量。因此, 采用URQ模型編碼時(shí),周期性插入I幀導(dǎo)致的視頻"閃爍"現(xiàn)象較為嚴(yán)重,該模型已逐漸被 R-lambda模型取代。R-lambda模型考慮了各類型幀不同的編碼效率,在為I幀分配目標(biāo)碼 率時(shí),會(huì)根據(jù)I幀的bpp (bits per pixel)值進(jìn)行調(diào)整,為I幀分配較多目標(biāo)碼率。調(diào)整方 式如表1所示,其中,TtoPl。表示為I幀分配的目標(biāo)碼率。
[0005] 表1 R-lambda碼率控制模型中I幀目標(biāo)碼率調(diào)整方法
[0007] 但是,這種調(diào)整不夠靈活,不能隨著視頻內(nèi)容的變化而變化。經(jīng)過調(diào)整,雖然I幀 的重建視頻質(zhì)量得到了改善,但是由于I幀消耗的目標(biāo)碼率過多,容易造成其后的P幀/B 幀目標(biāo)碼率不足,影響其重建質(zhì)量。尤其是一個(gè)視頻序列的最后若干幀,重建質(zhì)量下降嚴(yán) 重,如圖2所示。圖2(a)和圖2(b)分別顯示了在HM10. 0中,采用R-lambda碼率控制模型編 碼標(biāo)準(zhǔn)測試序列Container (352X288)和Boat (704X576)后的重建視頻客觀質(zhì)量(PSNR), 兩個(gè)序列最后若干幀的重建質(zhì)量都出現(xiàn)了較大下降。但是,如果給I幀分配的目標(biāo)碼率不 足,由于I幀的編碼效率較低,在編碼完若干個(gè)CTU之后,目標(biāo)碼率就會(huì)消耗殆盡,如圖3所 示。后續(xù)CTU由于無法得到足夠的目標(biāo)碼率進(jìn)行編碼,其QP值會(huì)逐漸增大,造成CTU的重 建質(zhì)量嚴(yán)重下滑,影響對I幀的整體重建質(zhì)量。本發(fā)明從碼率控制的角度,通過優(yōu)化分配目 標(biāo)碼率,達(dá)到利用較少碼率平滑I幀和相鄰幀之間的主觀質(zhì)量,抑制視頻"閃爍"的目的,同 時(shí),提高重建視頻的整體客觀質(zhì)量,避免出現(xiàn)視頻序列最后若干幀重建質(zhì)量下降的情況。
【發(fā)明內(nèi)容】
:
[0008] 本發(fā)明要解決的技術(shù)問題是提供一種基于R-lambda碼率控制模型的HEVC重建視 頻閃爍抑制方法,明顯抑制重建視頻"閃爍"現(xiàn)象,改善重建視頻觀看效果。
[0009] 本發(fā)明采用如下技術(shù)方案實(shí)現(xiàn)發(fā)明目的:
[0010] 一種基于R-lambda碼率控制模型的HEVC重建視頻閃爍抑制方法,其特征在于,該 方法的步驟如下:
[0011] (1)、針對幀內(nèi)編碼幀,即I幀,預(yù)測當(dāng)前待編碼的編碼樹單元CTU的運(yùn)動(dòng)信息和復(fù) 雜度信息,以及當(dāng)前I幀的整幀復(fù)雜度信息;
[0012] (2)、根據(jù)CTU的運(yùn)動(dòng)信息,提取I幀的全局運(yùn)動(dòng)信息,并判斷當(dāng)前CTU是否是運(yùn)動(dòng) CTU ;
[0013] (3)、針對非運(yùn)動(dòng)CTU,根據(jù)當(dāng)前CTU的復(fù)雜度信息和當(dāng)前I幀的復(fù)雜度信息,判斷 當(dāng)前CTU是紋理復(fù)雜CTU,還是紋理平坦CTU ;
[0014] (4)、根據(jù)不同的CTU類型,為CTU優(yōu)化分配目標(biāo)碼率,并采用R-lambda模型計(jì)算 CTU的準(zhǔn)峰值,即QP值。
[0015] 作為對本技術(shù)方案的進(jìn)一步限定,所述步驟(1)具體包括如下步驟:
[0016] (11)、獲得當(dāng)前待編碼CTU在前一幀對應(yīng)位置處的CTU,提取其運(yùn)動(dòng)信息;
[0017] (12)、采用線性預(yù)測方法,預(yù)測當(dāng)前CTU的運(yùn)動(dòng)信息;
[0018] (13)、獲得I幀之前一幀的整幀復(fù)雜度信息,以及當(dāng)前待編碼CTU在前一幀對應(yīng)位 置處CTU的復(fù)雜度信息;
[0019] (14)、采用線性預(yù)測方法,預(yù)測當(dāng)前I幀的整幀復(fù)雜度信息和當(dāng)前CTU的復(fù)雜度信 息。
[0020] 作為對本技術(shù)方案的進(jìn)一步限定,所述步驟(2)具體包括如下步驟:
[0021] (21)、將I幀的各CTU的運(yùn)動(dòng)向量分解為水平運(yùn)動(dòng)向量MVJP垂直運(yùn)動(dòng)向量MV y;
[0022] (22)、分別統(tǒng)計(jì)各CTU的MVjPMVy,計(jì)算出現(xiàn)概率最大的MVjPMV y,將其作為I幀 的水平方向和垂直方向的全局運(yùn)動(dòng)向量MV&和MV ^
[0023] (23)、將各CTU的^和MV $ MV &和MV Sy進(jìn)行比較,判斷當(dāng)前CTU是否是運(yùn)動(dòng) CTU〇
[0024] 作為對本技術(shù)方案的進(jìn)一步限定,所述步驟(4)具體包括如下步驟:
[0025] (41)、計(jì)算當(dāng)前I幀的剩余目標(biāo)碼率;
[0026] (42)、當(dāng)剩余目標(biāo)碼率大于0時(shí),根據(jù)CTU的運(yùn)動(dòng)向量值和I幀的運(yùn)動(dòng)向量值為運(yùn) 動(dòng)CTU分配目標(biāo)碼率,根據(jù)CTU的復(fù)雜度信息和I幀的復(fù)雜度信息,為非運(yùn)動(dòng)CTU分配目標(biāo) 碼率;
[0027] (43)、當(dāng)剩余碼率小于等于0時(shí),計(jì)算當(dāng)前已編碼CTU的實(shí)際編碼碼率均值,根據(jù) 該均值為當(dāng)前CTU分配目標(biāo)碼率。
[0028] 作為對本技術(shù)方案的進(jìn)一步限定,所述步驟(42)中,為運(yùn)動(dòng)CTU分配目標(biāo)碼率的 具體方法為:
[0030] 為紋理復(fù)雜CTU和紋理平坦CTU分配目標(biāo)碼率的具體方法為:
[0032] 其中,MV&為當(dāng)前I幀的全局運(yùn)動(dòng)向量在水平方向(X軸方向)的分量,MV X為當(dāng)前 CTU的運(yùn)動(dòng)向量在水平方向(X軸方向)的分量,?\為第i個(gè)I幀所分配的目標(biāo)碼率,T radedCTU為當(dāng)前I幀中已編碼CTU的實(shí)際編碼碼率之和,Nlrft:第i個(gè)I幀中未編碼CTU的個(gè)數(shù),MV y為當(dāng)前CTU的運(yùn)動(dòng)向量在垂直方向(y軸方向)的分量,MVq為當(dāng)前I幀的全局運(yùn)動(dòng)向量在 垂直方向(y軸方向)的分量,MADintl^_為當(dāng)前I幀的整幀圖像復(fù)雜度,MAD_CTU為當(dāng)前CTU 的復(fù)雜度。
[0033] 作為對本技術(shù)方案的進(jìn)一步限定,所述步驟(43)中,為運(yùn)動(dòng)CTU和紋理復(fù)雜CTU 分配目標(biāo)碼率的具體方法為:
[0035] 為紋理平坦CTU分配目標(biāo)碼率的具體方法為:
[0037] 其中,Tjj)為第i個(gè)I幀中第j個(gè)CTU的目標(biāo)碼率,i和j均為正整數(shù),TradedCTU為當(dāng)前I幀中已編碼CTU的實(shí)際編碼碼率之和,MADin&aFranre為當(dāng)前I幀的整幀圖像復(fù)雜度, MAlultTU為當(dāng)前CTU的復(fù)雜度。
[0038] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明提出一種基于R-lambda碼 率控制模型的HEVC重建視頻閃爍抑制方法,該方法首先將CTU的運(yùn)動(dòng)信息和復(fù)雜度信息與 當(dāng)前I幀的全局運(yùn)動(dòng)信息和復(fù)雜度信息進(jìn)行對比,判斷當(dāng)前CTU的類型(運(yùn)動(dòng)CTU、紋理復(fù) 雜CTU或紋理平坦CTU),然后根據(jù)CTU的類型和I幀剩余目標(biāo)碼率為該CTU優(yōu)化分配目標(biāo) 碼率,利用R-lambda模型計(jì)算該CTU的QP值,在碼率控制的角度實(shí)現(xiàn)視頻"閃爍"抑制。本 發(fā)明能夠在保證視頻編碼質(zhì)量的前提下,明顯抑制重建視頻"閃爍"現(xiàn)象,改善重建視頻觀 看效果。
【附圖說明】
[0039] 圖1為HEVC重建視頻"閃爍"示意圖。
[0040] 圖2為Container序列和Boat序列采用R-lambda模型編解碼后的重建視頻客觀 質(zhì)量示意圖。
[0041 ] 圖3為I幀目標(biāo)碼率不足時(shí)每個(gè)CTU所分配的目標(biāo)碼率。
[0042] 圖4為基于R-lambda碼率控制模型的HEVC重建視頻閃爍抑制方法流程圖。
【具體實(shí)施方式】:
[0043] 下面結(jié)合實(shí)施例,進(jìn)一步說明本發(fā)明。
[0044] 為了抑制HEVC重建視頻"閃爍"現(xiàn)象,改善重建視頻主觀視覺質(zhì)量,本發(fā)明提出一 種基于R-lambda碼率控制模型的HEVC重建視頻閃爍抑制方法。該方法首先根據(jù)I幀中不 同區(qū)域產(chǎn)生"閃爍"現(xiàn)象的差異程度,對I幀的CTU進(jìn)行分類(運(yùn)動(dòng)CTU,紋理復(fù)雜CTU,紋 理平坦CTU),然后對不同類型CTU采用不同的碼率優(yōu)化分配方法,利用R-lambda碼率控制 模型計(jì)算CTU的QP值,平滑I幀和相鄰幀之間的主觀視覺質(zhì)量差異,在抑制"閃爍"現(xiàn)象的 同時(shí),提高重建視頻的整體主客觀質(zhì)量。
[0045] 新一代視頻編碼標(biāo)準(zhǔn)HEVC雖然引入了更加靈活的四叉樹編碼塊劃分、基于方向 的幀內(nèi)預(yù)測與預(yù)測類型等利于幀內(nèi)編碼的新技術(shù),但仍然采用和H. 264/AVC類似的編碼結(jié) 構(gòu),I幀的編碼效率仍大大低于P幀和B幀,對于需要周期性插入I幀的視頻應(yīng)用來說,I幀 的重建質(zhì)量是影響視頻整體主客觀