《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 視頻編碼中自適應(yīng)的初始量化參數(shù)預(yù)測算法
視頻編碼中自適應(yīng)的初始量化參數(shù)預(yù)測算法
2014年微型機(jī)與應(yīng)用第13期
方權(quán)亮
武警西藏總隊(duì) 信息化處,西藏 拉薩
摘要: 通過分析在H.264/AVC中預(yù)測初始量化參數(shù)的方法過于簡單,導(dǎo)致視頻序列整體編碼量化參數(shù)和重建圖像PSNR的波動,甚至PSNR急劇下降的問題,利用基于Cauchy分布的R-Q模型,結(jié)合I幀圖像復(fù)雜度建立R-C-Q模型,提出了自適應(yīng)的初始量化參數(shù)預(yù)測算法。該算法能夠根據(jù)不同視頻序列的特性,準(zhǔn)確地預(yù)測I幀的初始量化參數(shù),有效地抑制視頻序列的整體量化參數(shù)及PSNR的波動,從而提高碼率控制精度和重建圖像質(zhì)量。
Abstract:
Key words :

  摘  要: 通過分析在H.264/AVC中預(yù)測初始量化參數(shù)的方法過于簡單,導(dǎo)致視頻序列整體編碼量化參數(shù)和重建圖像PSNR的波動,甚至PSNR急劇下降的問題,利用基于Cauchy分布的R-Q模型,結(jié)合I幀圖像復(fù)雜度建立R-C-Q模型,提出了自適應(yīng)的初始量化參數(shù)預(yù)測算法。該算法能夠根據(jù)不同視頻序列的特性,準(zhǔn)確地預(yù)測I幀的初始量化參數(shù),有效地抑制視頻序列的整體量化參數(shù)及PSNR的波動,從而提高碼率控制精度和重建圖像質(zhì)量。

  關(guān)鍵詞: H.264/AVC;碼率控制;初始量化參數(shù)

  隨著數(shù)字視頻技術(shù)的快速發(fā)展,在人們?nèi)粘9ぷ魃钪谐霈F(xiàn)了形式多樣的視頻應(yīng)用,這些視頻業(yè)務(wù)給現(xiàn)有的存儲資源和通信系統(tǒng)帶來了巨大的挑戰(zhàn)。H.264/AVC是目前使用最廣泛的視頻編碼標(biāo)準(zhǔn),因在碼率控制和率失真優(yōu)化過程之間存在編碼參數(shù)的依賴關(guān)系,使其碼率控制技術(shù)也更加復(fù)雜,如何提高碼率控制精度,更好地平衡編碼效率和圖像質(zhì)量之間的關(guān)系,成為碼率控制領(lǐng)域的研究熱點(diǎn)。

  1 初始量化參數(shù)分析

  初始量化參數(shù)(QP0)是指編碼視頻序列的I幀所使用量化參數(shù),在H.264/AVC的JVT-G012碼率控制算法提案中,初始量化參數(shù)QP0采用兩種方法進(jìn)行預(yù)測:(1)預(yù)先定義的方法,QP0取值范圍為0~51;(2)在沒有預(yù)先定義的情況下,在參考軟件JM10.1中,QP0根據(jù)每像素的比特?cái)?shù)bpp(bits per pixel)將信道分成4個(gè)級別,不同的級別采用不同的初始量化參數(shù),通過式(1)計(jì)算,bpp由式(2)確定。

  12.png

  其中,Rtarget為當(dāng)前可用的信道帶寬,即目標(biāo)比特?cái)?shù);f為編碼時(shí)的幀率;Npixel為每幀圖像的像素個(gè)數(shù)。l1、l2、l3為經(jīng)驗(yàn)常數(shù),對于QCIF視頻格式,取l1=0.1,l2=0.3,l3=0.6;CIF視頻格式,取l1=0.2,l2=0.6,l3=1.2;其他比CIF大的視頻格式,取l1=0.6,l2=1.4,l3=2.4。由式(1)、(2)可知,對于相同視頻格式不同圖像內(nèi)容的視頻序列,在信道帶寬、幀率相同的情況下,將使用相同的初始量化參數(shù)。

  在編碼前預(yù)定義QP0,如果取值過小,編碼I幀將占用過多的目標(biāo)比特?cái)?shù),為了避免編碼緩沖區(qū)上溢,在編碼GOP中后續(xù)的圖像時(shí),就會持續(xù)增加量化參數(shù),以減少后續(xù)圖像編碼碼率,導(dǎo)致圖像質(zhì)量急劇下降。另一方面,如果取值過大,就會浪費(fèi)信道帶寬,甚至出現(xiàn)緩沖區(qū)下溢造成解碼端延遲,同時(shí)增加I幀的圖像失真,由于I幀是后續(xù)幀的參考幀,這些后續(xù)幀的重建圖像質(zhì)量也會相應(yīng)下降。顯然,在視頻編碼之前預(yù)先設(shè)定QP0,不能充分考慮視頻序列的特征,要設(shè)定合適的QP0是比較困難的。

  在不預(yù)先設(shè)定QP0的情況下,分別選取Akiyo和Foreman兩個(gè)標(biāo)準(zhǔn)視頻序列,實(shí)驗(yàn)參數(shù)設(shè)置為信道帶寬64 Kb/s,幀率30 f/s,視頻格式QCIF,序列結(jié)構(gòu)Ippp,編碼幀數(shù)100。實(shí)驗(yàn)結(jié)果如圖1和圖2所示。

001.jpg

  如圖1所示,兩個(gè)序列都采用了相同的QP0(QP0=35)。對于Foreman序列,QP0接近序列的平均量化參數(shù)(QPave=36),整個(gè)序列的量化參數(shù)和PSNR波動不大,如圖2所示。而Akiyo序列的平均量化參數(shù)為25,QP0與QPave之間的差為10,導(dǎo)致整個(gè)序列的PSNR和QP的劇烈波動。

  由于視頻序列中I幀的圖像復(fù)雜度不同,采用相同的方式確定初始量化參數(shù),勢必會影響碼率控制的精度,造成重建圖像質(zhì)量的波動甚至下降。

  2 I幀的R-C-Q模型

  視頻序列中I幀沒有參考幀,使用幀內(nèi)預(yù)測方式編碼,因此應(yīng)考慮不同圖像的特性來預(yù)測QP0。通常在給定相同的信道帶寬時(shí),對于空間紋理復(fù)雜或運(yùn)動劇烈的視頻序列,需要較大的QP0,反之則對于空間內(nèi)容簡單或運(yùn)動緩慢的視頻序列,則選擇較小的QP0。

  參考文獻(xiàn)[1]中提出Cauchy分布比Laplace分布更接近殘差圖像DCT變換系數(shù)的實(shí)際分布情況,尤其是幀內(nèi)編碼的圖像,使用基于Cauchy分布的熵函數(shù)能使碼率估計(jì)的準(zhǔn)確度得到很大提高,Cauchy熵函數(shù)可通過R-Q模型近似得到。

  基于Cauchy分布的R-Q模型為:

  3.png

  其中,Rtotal為目標(biāo)比特?cái)?shù),包括頭比特?cái)?shù)和紋理比特?cái)?shù);Qstep為量化步長;C為模型參數(shù),與編碼圖像的內(nèi)容相關(guān),本文將其表示為圖像復(fù)雜度;?茁(?茁<0)為與DCT系數(shù)分布相關(guān)的常數(shù),當(dāng)編碼I幀時(shí),取值為{-0.75,-0.8,-0.85}。

  假設(shè)在時(shí)間間隔ΔT內(nèi)編碼幀數(shù)為N,信道帶寬為B,C?琢表示N個(gè)幀的平均復(fù)雜度,則有:

  4567.jpg

  為了驗(yàn)證式(7)中QPave的有效性,選擇QCIF(Akiyo、Foreman、Mobile)及CIF(News、Waterfall、Bus)格式的標(biāo)準(zhǔn)測試序列,這些序列包含從簡單到復(fù)雜的紋理細(xì)節(jié)和從低到高的運(yùn)動強(qiáng)度。在不同的信道帶寬下,對每個(gè)序列(QCIF:60~800 kb/s,CIF:80~1 600 kb/s)進(jìn)行測試。圖3所示為序列實(shí)際編碼的QPave和信道帶寬B的線性擬合結(jié)果。圖中圓點(diǎn)代表序列在不同帶寬下編碼的QPave;相關(guān)系數(shù)R2表示線性擬合的準(zhǔn)確度,其值越接近1說明樣本值越接近線性關(guān)系。從實(shí)驗(yàn)結(jié)果可以看到在不同序列的和信道帶寬之間接近線性關(guān)系,說明最佳QP0可以通過式(6)得到。

  3 I幀圖像復(fù)雜度

  為了得到最佳QP0,在編碼視頻序列前首先要確定I幀的圖像復(fù)雜度。目前有多種圖像復(fù)雜度測量方法,在參考文獻(xiàn)[3]中將這些方法分為4類:基于方差的方法、DCT系數(shù)的方法、邊緣強(qiáng)度的方法和梯度的方法,這些方法在編碼前都不需要進(jìn)行預(yù)處理,對4種方法的計(jì)算復(fù)雜度和性能進(jìn)行比較,結(jié)果顯示基于梯度的方法最有效。通常圖像的梯度用于測量圖像局部的變化,圖像的亮度和色度直方圖則反映了圖像全局的變化,參考文獻(xiàn)[4]中用實(shí)驗(yàn)驗(yàn)證了通過結(jié)合圖像局部和全局的變化信息,其結(jié)果能更好地表示編碼圖像的復(fù)雜度。因此,本文借簽參考文獻(xiàn)[4]中方法,結(jié)合梯度和直方圖計(jì)算I幀的圖像復(fù)雜度。

  8910.jpg

  11.png

002.jpg

  如圖3所示,在相同的信道帶寬下,QCIF和CIF序列的QP0明顯不同,即使是相同格式序列的QP0也存在較大差異,QP0的差異是由I幀的圖像復(fù)雜度不同造成的。用式(11)計(jì)算所有測試序列的最佳QP0,實(shí)驗(yàn)結(jié)果如圖4所示,最佳QP0呈線性分布,這說明式(11)能夠準(zhǔn)確地反映不同內(nèi)容視頻序列I幀的特性。通過線性擬合方法得到式(11)中的參數(shù)?準(zhǔn)和?漬,分別為?準(zhǔn)=-6.532,?漬=51.44。參數(shù)?滋可根據(jù)應(yīng)用場景進(jìn)行調(diào)整,對于空間內(nèi)容簡單或運(yùn)動緩慢的場景,選擇較小值;反之,取較大值。

003.jpg

  4 實(shí)驗(yàn)結(jié)果及分析

  將本文算法寫入JVT-G012參考軟件JM10.1中,選取QCIF和CIF格式的視頻序列,參數(shù)設(shè)置如表1所示。QCIF和CIF序列的信道帶寬分別設(shè)定為60~512 kb/s及120~1 024 kb/s。實(shí)驗(yàn)結(jié)果如表2所示。

  從表2可以看出,本文算法的平均碼率誤差?駐R降低了0.438%,說明能夠更準(zhǔn)確地控制編碼輸出碼率。對于不同格式和不同圖像復(fù)雜度的序列,在不預(yù)定義QP0時(shí),本文算法得到的初始QP0非常接近JM10.1算法的平均QP,兩者最大誤差僅為3,說明本文的QP0更加準(zhǔn)確。本文算法有效提高了重建圖像質(zhì)量,PSNR的增益最高達(dá)到1.31 dB,平均PSNR增益達(dá)到0.61 dB,由于本文算法在編碼前僅需要計(jì)算視頻序列第一個(gè)I幀的圖像復(fù)雜度,計(jì)算復(fù)雜度增加有限,序列每幀的編碼時(shí)間僅比JM10.1平均增加了0.47%。

  本文分析了JVT-G012碼率控制提案中預(yù)測初始量化參數(shù)的方法過于簡單、沒有考慮不同I幀圖像特性的問題,提出了基于Cauchy分布R-Q模型的自適應(yīng)初始量化參數(shù)預(yù)測方法。實(shí)驗(yàn)結(jié)果表明,本文算法減少了視頻序列整體的量化參數(shù)和PSNR的波動,在提高碼率控制精度的同時(shí),保持了穩(wěn)定的重建圖像質(zhì)。

  參考文獻(xiàn)

  [1] KAMACI N, ALTINBASAK Y, MERSEREAU R M. Frame bit allocation for the H.264/AVC video coder via cauchy density-based rate and distortion models[J]. IEEE Transactions on Circuits and System for Video Technology, 2005,15(8):994-1006.

  [2] Ma Siwei, Gao Wen, Lu Yan. Rate-distortion analysis for H.264/AVC videocoding and its application to rate control[J]. IEEE Transactions on Circuits and System for Video Technology, 2005,15(12):1533-1544.

  [3] KIM W J, YI J W, KIM S D. A bit allocation method based on pictureactivity for still image coding[J].IEEE Transactions on Image Processing,1999,8(7):974-977.

  [4] Zhou Yimin, Sun Yu, Feng Zhidan, et al. New rate-distortion modeling and efficient rate controlfor H.264/AVC video coding[J]. Signal Processing: Image Communication,2009,24(5):345-356.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。