毛永芹,王向文
(上海電力大學(xué),上海 201306)
在視頻編碼的過程中,編碼壓縮后的碼流信息通常會在帶寬有限且不恒定的信道中傳輸[1],為了使編碼后的視頻流更好地在信道中傳輸,避免發(fā)生接收端因為傳輸?shù)乃矔r碼率過大導(dǎo)致接收端的碼流緩沖溢出,或者是傳輸?shù)拇a率過小而導(dǎo)致接收端視頻的播放質(zhì)量不清晰或者模糊等現(xiàn)象。因此,一個準(zhǔn)確的碼率估計模型對于視頻編碼算法的優(yōu)化是至關(guān)重要的。
碼率控制技術(shù)一直是眾多學(xué)者的研究熱點,為此國內(nèi)外研究者也提出了較多碼率估計模型。準(zhǔn)確的碼率估計模型對碼率控制中的碼率分配起到?jīng)Q定性作用。在視頻編碼中,常見的碼率估計模型主要有R-Q 模型[2]、R-ρ 模型[3]以及R-λ 模型[4]。碼率R由一組編碼參數(shù)共同決定,R-Q 模型和R-ρ 模型都把Q當(dāng)作可以控制R的重要因素,認(rèn)為可以通過調(diào)節(jié)量化參數(shù)Q達到目標(biāo)碼率R。但是隨著編碼參數(shù)的增加,R和Q之間并不是一一對應(yīng)的關(guān)系,所以用R-Q 模型和R-ρ 模型來估計碼率R并不準(zhǔn)確。R-λ 模型是通過建立率失真優(yōu)化模型來得到拉格朗日乘子λ,利用拉格朗日乘子控制目標(biāo)碼率R。該模型相對于R-Q 模型和Q-ρ 模型在編碼性能和編碼精度上都有所提升。文獻[4]算法中R-λ 模型的參數(shù)α和β是利用已經(jīng)編碼的圖像預(yù)測更新的,并沒有考慮到編碼圖像本身的內(nèi)容特征。當(dāng)視頻序列中存在大量的運動時,運動特征對視頻的預(yù)測誤差有很大的影響[5]。而在靜態(tài)或運動較小的區(qū)域,紋理特征對預(yù)測誤差的影響會比較大。算法的原有模型參數(shù)α和β并不能表示當(dāng)前編碼圖片的參數(shù)特征,若傳輸一段具有劇烈運動或具有復(fù)雜場景變化的視頻,將導(dǎo)致碼率估計不準(zhǔn)確。文獻[6]通過預(yù)編碼確定模型的參數(shù)α和β,使得碼率估計模型的精度以及視頻的編碼質(zhì)量提升,但是該算法大大提高了編碼復(fù)雜度,增加了編碼延遲。
綜上所述,為了解決因視頻序列劇烈運動或者存在復(fù)雜場景變化導(dǎo)致的模型參數(shù)α和β不準(zhǔn)確,從而導(dǎo)致R-λ 預(yù)測模型準(zhǔn)確度不夠的問題,本文提出了一種改進的λ域碼率估計模型,提高碼率估計模型的精度。將R-λ 模型根據(jù)視頻幀所在的預(yù)測層分類為不同的模型,建立模型參數(shù)α和β與圖像運動特征和紋理特征的關(guān)系,最后實驗數(shù)據(jù)驗證模型的精確度,同時將模型應(yīng)用在HM 編碼器中進行實驗。
在推導(dǎo)R-λ 模型之前,應(yīng)該先選擇合適的R-D 模型,文獻[7]中推導(dǎo)建立了適用于H.265/HEVC 視頻碼率與失真的雙曲模型關(guān)系:
式中:C和K是與編碼圖像內(nèi)容特征相關(guān)的模型參數(shù);R-D 曲線切線的斜率是拉格朗日乘子λ,因此λ可以表示為:
由式(2)得:
在實際的圖像層中,考慮到比特分配得到的目標(biāo)比特RT以及圖像的長度h和圖像的寬度w,可以計算出平均每像素的目標(biāo)比特數(shù)bpp,其值為通過bpp 可以得到當(dāng)前編碼圖像的拉格朗日乘子λ為:
與此同時,通過大量的實驗表明量化參數(shù)QP 與拉格朗日乘子λ的對數(shù)之間存在一次線性函數(shù)的關(guān)系[8]:
通過大量的數(shù)據(jù)測試,選擇a=4.200 5,b=13.712 2是相對準(zhǔn)確的。通過式(4)確定編碼單元的拉格朗日乘子λ,通過式(5)確定編碼時的量化參數(shù)QP。
為了使得碼率控制模型更加準(zhǔn)確,需要對模型參數(shù)α和β進行實時更新,本文主要研究幀級模型參數(shù)的更新。在HM13.0 中基于R-λ 模型碼率控制算法,采用式(6)、式(7)的參數(shù)更新方法。
式中:αold、βold、λreal分別為編碼單元層確定量化參數(shù)QP時所使用的α、β、λ;bppreal為編碼單元層完成編碼后得到的實際編碼的比特數(shù);δα、δβ分別設(shè)置為0.1 和0.05;αnew、βnew為更新后的模型參數(shù)。實際編碼使用的拉格朗日乘子λ計算公式如式(8)所示[9]:
式(6)、式(7)對模型參數(shù)的更新過程可以理解為是使用lnλreal-lnλcomp對模型參數(shù)進行校準(zhǔn)。模型參數(shù)α和β只與當(dāng)前編碼圖片的內(nèi)容特征有關(guān)系,盡管使用lnλreal-lnλcomp進行校準(zhǔn)也還會造成模型精度的損失,利用已編碼圖片的參數(shù)α和β并不能完全表示當(dāng)前圖片的參數(shù)特征。文獻[6]通過對編碼單元預(yù)編碼來確定R-λ 的模型參數(shù)α和β,使得碼率控制的模型精度以及編碼質(zhì)量都提升,但是將會增加編碼的復(fù)雜度,同時將會造成編碼的延遲。
綜上所述,若可以建立當(dāng)前編碼圖片的內(nèi)容特征與模型參數(shù)α和β的關(guān)系,將會使參數(shù)α和β的值更準(zhǔn)確,進而提升R-λ 模型的精度,提高視頻編碼的質(zhì)量。
圖像的內(nèi)容特征是指圖像所展現(xiàn)的物體、背景、運動等方面的特征,在視頻編碼中,它對于視頻壓縮的效果有重要影響。視頻編碼算法通過對這些內(nèi)容特征的分析和利用,最終實現(xiàn)了視頻序列的高效編碼和壓縮。
圖像特征提取是影響模型精度的重要因素,本文主要研究分層編碼結(jié)構(gòu)下的模型參數(shù)α和β的更新。由第1 節(jié)可知,R-λ 的模型參數(shù)α和β與圖片的運動特征和紋理特征有關(guān)。圖像運動特征的提取是通過比較相鄰幀的像素差異,可以得出每個像素在運動過程中的位移和方向,這樣就可以在編碼過程中只保存差異部分。圖像中的紋理信息描述了像素之間的相對關(guān)系。由于視頻運動是連續(xù)的,本文把視頻前一幀與后一幀對應(yīng)像素點之間的方差定義為運動特征,把當(dāng)前圖片像素點之間的方差定義為圖片的紋理特征,具體表達式如下:
式中:MOTIONcur為當(dāng)前圖片的運動特征;TEXTUREcur為當(dāng)前圖片的紋理特征;Vdiff等于當(dāng)前幀的像素點減去下一幀的對應(yīng)像素點的絕對值;θ是變量;Npixel表示該圖片像素點的個數(shù)。
由2.1 節(jié)的描述可知,圖像的運動特征和紋理特征對視頻壓縮具有重要的影響,對于R=α·λβ預(yù)測模型來說,模型參數(shù)α和β是影響預(yù)測誤差的系數(shù)。在R-λ模型中,運動特征和紋理特征通過α和β參數(shù)來調(diào)節(jié)預(yù)測誤差。本文考慮建立一個基于R-λ 模型參數(shù)α和β的模型,將參數(shù)α和β建模為圖像運動特征和紋理特征的函數(shù),該模型用于計算視頻編碼時R-λ 模型所需要的參數(shù),根據(jù)本文提出的參數(shù)α和β與圖像運動特征和紋理特征的模型,最終使R-λ 模型更加準(zhǔn)確,提高了視頻編碼的率失真性能。
在HEVC中,存在兩種非常典型的編碼結(jié)構(gòu),它們的引用關(guān)系非常靈活,一個定義于圖1 所示的低延遲(LD)編碼結(jié)構(gòu)[10],另一個定義于圖2 所示的隨機接入(RA)編碼結(jié)構(gòu)[11]。
圖1 HEVC 中低延遲(LD)編碼結(jié)構(gòu)
圖2 HEVC 中隨機接入(RA)編碼結(jié)構(gòu)
圖1 和圖2 顯示的LD 和RA 配置是早 于HM16.11 的HEVC 參考編碼器的默認(rèn)分層預(yù)測結(jié)構(gòu)。以LD 編碼結(jié)構(gòu)為例,LD 編碼有三種不同的層次,如圖1 所示。直觀地看,圖f4n屬于零層,圖f4n+2屬于一層,圖f4n+1和f4n+3屬于第二層。RA 編碼結(jié)構(gòu)類似,分為4 個層次,如圖2所示。在HM16.11 之后,RA 編碼結(jié)構(gòu)的GOP=16,并且分為5 個不同的層次。從這兩種編碼結(jié)構(gòu)中可以看出,同一個層次視頻序列之間的聯(lián)系相對于不同層次視頻序列之間聯(lián)系更加緊密,由此可以判斷出R-λ 模型中屬于同一層次視頻序列的參數(shù)α和β具有相似的變化規(guī)律。因此,本文根據(jù)使用的編碼結(jié)構(gòu),將視頻序列按照視頻幀所在的預(yù)測層分為不同的模型,則不同層之間的R-λ 模型為:
式中:Rk、λk、αk和βk分別為第k層的實際編碼比特R、第k層的拉格朗日乘子λ、第k層的模型參數(shù)α和β。
結(jié)合2.1 節(jié)利用公式得到每個編碼序列的運動特征和紋理特征的值。從實驗中觀察出,同一層次的模型參數(shù)α和β可以分別通過以下模型來計算:
式中:αk和βk分別表示第k層參數(shù)α和第k層參數(shù)β;γk表示第k層的α和β的模型參數(shù);MOTIONk和TEXTUREk分別表示第k層編碼序列運動特征和紋理特征的值。
將JCTVC 提供的視頻序列classD 作為測試序列。對同一個序列使用8 個不同的量化參數(shù)QP 編碼,編碼的每一幀圖片有不同的實際編碼比特R和拉格朗日乘子λ,根據(jù)R-λ 模型,使用編碼出的每一幀圖片的比特R和拉格朗日乘子λ擬合出參數(shù)α和β的準(zhǔn)確值,將準(zhǔn)確值與使用式(13)和式(14)的模型計算出的α和β對比,判斷所建關(guān)系的合理性。
使用R2表示模型的估計誤差,R2是用于測量給定模型數(shù)據(jù)變化程度的量[12],其定義為:
式中:Xi和分別為數(shù)據(jù)點的實際值和估計值為數(shù)據(jù)點的平均值,使用模型獲得估計值。對于任何合理的模型,期望式(15)右側(cè)的估計值小于1,因此R2取0~1之間的值。R2的值越接近1,模型越好。如表1 所示,所有的測試序列的R2都大約等于0.99,說明提出的模型能夠很好地表示參數(shù)α和β與圖像內(nèi)容特征的關(guān)系。α和β模型的準(zhǔn)確度如表1 所示。
表1 α和β 模型的準(zhǔn)確度(R2)
為了驗證本文所提改進的λ域碼率估計模型的準(zhǔn)確性,將改進的λ域碼率估計模型集成到HEVC 參考軟件HM-16.20 的碼率控制算法中,并與HM-16.20 本身的碼率控制算法進行對比,JCTVC-K1003 中提出的碼率估計模型已經(jīng)集成到了HEVC 參考軟件中,所以在本文的比較實驗中,共有兩種碼率估計模型。
1)JCTVC-K1003。JCTVC-K1003 中提出的碼率估計模型應(yīng)用在HM-16.20 的碼率控制算法中。
2)PicAdaRateEst。本文提出的改進λ域碼率估計模型應(yīng)用在HM-16.20 的碼率控制算法中。
實驗使用的序列來自JCTVC 提供的視頻序列[13]classD,包括 BasketballPass、BlowingBubbles、BQSquare 以及RaceHorses,并且這4 個序列的分辨率均為416×240,其中BasketballPass 和BlowingBubbles 的幀率為50 f/s,BQSquare 為60 f/s,RaceHorses 為30 f/s。基于HEVC 通用測試條件下的LD(Low Delay,低延遲)配置編碼環(huán)境。按照視頻幀所在的預(yù)測層將視頻序列分為三層。實驗中使用的目標(biāo)碼率為HEVC 通用測試條件生成Anchor 碼流的碼率,使用LD 配置下的分層編碼結(jié)構(gòu)進行測試。實驗主要從改進的R-λ模型的碼率相對誤差以及亮度峰值信噪比(PSNR)兩方面進行評估和分析。對比JCTVC-K1003中碼率估計方法和本文改進的λ域碼率估計方法的模型精確度以及編碼的性能。
使用碼率相對誤差[14]Rerr描述R-λ 模型的精確度,它的計算公式為:
式中:Rtar和Ract分別表示目標(biāo)碼率和實際編碼的碼率;Rerr越小表示碼率估計的模型越準(zhǔn)確。
使用編碼輸出的峰值信噪比[15]描述本文所提方法的編碼性能,編碼輸出的峰值信噪比客觀反映了編碼后重建視頻質(zhì)量的好壞問題,編碼輸出峰值信噪比越高,編碼后重建視頻質(zhì)量就越好。
表2列出了不同測試序列在4個目標(biāo)碼率下JCTVCK1003 和PicAdaRateEst 兩種碼率估計方法準(zhǔn)確度和性能測試的結(jié)果。從表中可以看出,JCTVC-K1003 標(biāo)準(zhǔn)的平均Y-PSNR 為34.35 dB,本文所提碼率估計方法的平均Y-PSNR 為34.50 dB,本文提出的方法相對于JCTVCK1003 標(biāo)準(zhǔn)的Y-PSNR 提高了0.15 dB。JCTVC-K1003碼率估計模型的相對誤差平均為0.718%,本文提出的方法平均為0.068%,本文提出的方法相對于JCTVCK1003 碼率估計模型的平均誤碼率下降了0.65%。
表2 兩種碼率估計方法的準(zhǔn)確度和性能比較
一個準(zhǔn)確的R-λ 模型對于視頻編碼的優(yōu)化是至關(guān)重要的,直接影響到編碼的性能以及視頻編碼的質(zhì)量。本文基于R-λ 模型,將其參數(shù)α和β建立為圖像運動特征和紋理特征的模型,避免了因編碼序列劇烈運動或發(fā)生場景變化而導(dǎo)致的模型不準(zhǔn)確的問題,使R-λ 模型具有圖像自適應(yīng)性。實驗結(jié)果表明,該方法與JCTVCK1003 標(biāo)準(zhǔn)中碼率估計的方法相比,相同條件下平均碼率誤差下降了0.65%,平均亮度峰值信噪比增益提高了0.15 dB。該改進算法能夠提高視頻傳輸?shù)馁|(zhì)量和碼率穩(wěn)定性,在實際應(yīng)用中具有一定的潛力和價值。