田 波, 楊宜民, 蔡述庭
(1. 銅仁學(xué)院數(shù)學(xué)與信息工程系,貴州 銅仁 554300;2. 廣東工業(yè)大學(xué)自動化學(xué)院,廣東 廣州 510090)
一種基于視覺感知的H.264碼率控制算法
田 波1,2, 楊宜民2, 蔡述庭2
(1. 銅仁學(xué)院數(shù)學(xué)與信息工程系,貴州 銅仁 554300;2. 廣東工業(yè)大學(xué)自動化學(xué)院,廣東 廣州 510090)
針對目前視頻編碼標(biāo)準(zhǔn)H.264的碼率控制算法未考慮人眼視覺感知、易導(dǎo)致編碼后視頻圖像質(zhì)量波動的不足,提出了一種基于視覺感知的H.264碼率控制算法。首先,設(shè)計了像素域的恰可察覺失真模型。在此基礎(chǔ)上,根據(jù)各幀的恰可察覺失真的大小進(jìn)行幀層比特分配。其次,建立了基于結(jié)構(gòu)相似度的率失真模型,并采用此模型設(shè)計了基本單元層(basic unit, BU)的比特分配方案。最后結(jié)合二次速率-量化模型得到量化參數(shù)。實驗結(jié)果表明,該算法與目前H.264中典型的碼率控制算法相比,錯誤率降低了0.2%。
碼率控制;恰可察覺失真;比特分配;結(jié)構(gòu)相似度
碼率控制是在給定的網(wǎng)絡(luò)傳輸環(huán)境下,通過合理設(shè)置編碼參數(shù)來控制編碼器輸出的碼率,對編碼器輸出高質(zhì)量的平穩(wěn)視頻數(shù)據(jù)流發(fā)揮了關(guān)鍵作用。目前,H.264的碼率控制算法(如 JVT-W042,JVT-GO12等),綜合考慮了率失真模型和緩沖區(qū)充盈度,并采用幀的平均絕對誤差(mean absolute difference,MAD)的線性預(yù)測模型與二次速率–量化模型進(jìn)行比特分配,不僅忽略了各幀內(nèi)容的不同,而且沒有考慮到人眼的視覺特性。對此,已有較多的研究文獻(xiàn)對其進(jìn)行改進(jìn)。文獻(xiàn)[1]提出一種基于H.264的碼率控制算法,根據(jù)各幀的局部運動區(qū)域的強度來分配目標(biāo)碼率,提高了視頻播放的主觀質(zhì)量,但僅僅考慮到了運動和紋理特征。文獻(xiàn)[2]根據(jù)每個宏塊的率失真性能,設(shè)計了線性速率-量化步長和失真-量化步長模型,并將每一幀劃分成多個不同的區(qū)域,提出了一種基于感興趣區(qū)域的碼率控制算法。雖然提高了主觀和客觀質(zhì)量,但區(qū)域劃分算法較為復(fù)雜,實時性較低。文獻(xiàn)[3]在碼率控制中引入PID控制器以最小化目標(biāo)緩沖區(qū)大小與當(dāng)前緩沖區(qū)充盈度的誤差,有效提高了比特分配的合理性。文獻(xiàn)[4]通過對大量實驗結(jié)果的分析,得到了更準(zhǔn)確的量化參數(shù)與碼率的關(guān)系,綜合考慮目標(biāo)帶寬、幀的空間復(fù)雜度及流體模型,提出了一種復(fù)雜度較低的幀層碼率控制算法。文獻(xiàn)[5]改進(jìn)了H.264中的圖像組(group of picture, GOP)層比特分配算法,提出新的率失真模型,雖然提高了視頻輸出的質(zhì)量,但算法的復(fù)雜度較高,且沒有考慮幀層與基本單元層(basic unit,BU)的比特分配問題。
可以看出,當(dāng)前針對H.264的碼率控制算法的研究工作存在以下不足:①雖然在碼率控制中考慮到了人眼的視覺感知特征,但只局限于在幀層比特分配中考慮到不同運動特征宏塊的人眼關(guān)注度,沒有同時優(yōu)化幀層與宏塊層的比特分配;②率失真模型建立在客觀視頻質(zhì)量評價方法的基礎(chǔ)上,難以有效消除視頻圖像中的視覺冗余。針對這些不足,本文提出了一種基于視覺感知的碼率控制算法(visual perception based rate control algorithm,VP-RCA)。通過綜合考慮各幀的時域和空域恰可察覺失真(just noticeable distortion, JND),建立了像素域的JND模型。在此基礎(chǔ)上,設(shè)計了新的幀層比特分配方案。為獲得最優(yōu)的目標(biāo)比特數(shù),將BU層的比特分配轉(zhuǎn)換為優(yōu)化問題以提高計算精度。由于充分地考慮了人眼的視頻感知,VP-RCA算法的碼率控制更精確、率失真優(yōu)化效果更好。
1.1 恰可察覺失真模型
接收端解碼后的視頻質(zhì)量最終是由人眼來感知的。換言之,碼率控制過程中應(yīng)更多地考慮到人眼視覺感知的特征。視頻圖像的失真只有在超過某個閾值時,才會引起人類視覺系統(tǒng)的感知。這個閾值稱為 JND,代表了視頻圖像中的視覺冗余的大小。因此,本文算法首先計算視頻幀的JND,然后根據(jù)JND的值完成幀層比特分配??紤]到計算復(fù)雜度及建模的準(zhǔn)確性,本文對各幀建立了像素域的JND模型,相應(yīng)的第i幀的JND為
其中η為第i幀亮度均值,由下式計算:
M,N表示第i幀水平與垂直方向的像素個數(shù), Ls,t為像素(s,t)亮度值, α1, α2,ω為常數(shù)。JNDs(x,y,i)為空域JND,其計算方法為[6]:
其中 Tt(x,y,i)為紋理掩蔽值, Cl,t表示掩蔽中的疊加效果, Tl(x,y,i)為亮度自適應(yīng)掩蔽值。分別表示為:其中ξ為參數(shù),為第i幀中像素(x,y)的梯度的加權(quán)平均的最大值,為第i幀中像素(x,y)通過濾波和邊緣檢測獲取的權(quán)重值, θ1~θ4為常數(shù),由實驗中取得[7]。 (,)Ixy為平均背景亮度。
其中 (,,)xyiΔ 為第i幀與前一幀的平均幀間亮度,τ為參數(shù)。
從式(1)所示的 JND模型可以看出,由于采用兩個相鄰幀的亮度的方差來計算時域JND,其精度會有所提高。此外,由于結(jié)合了像素域的時域與空域JND,相比變換域的JND模型,該模型具有計算復(fù)雜度低、精度較高的特點。
最后,各幀JND的計算方法如下:
(1) 對GOP中的第1幀,即I幀直接按式(1)計算JND。
(2) 對B幀和P幀的JND按下式計算:
θ為閾值,采用文獻(xiàn)[6]的方法求得,本文將5θ的值取為1.7。
1.2 幀層的比特分配
類似于JVT-G042,幀層的比特分配考慮到了緩沖區(qū)充盈度與剩余比特數(shù),目標(biāo)比特由下式?jīng)Q定[8]:
其中GT為當(dāng)前 GOP中剩余的比特數(shù),pN為當(dāng)前GOP中未編碼幀數(shù)。1C、2C及σ為常數(shù)。從式(11)可知,在比特分配時考慮到各幀具有不同的 JND值,在保證視頻序列播放質(zhì)量的同時,有效地提高了編碼效率,這在本文中的實驗中也得到了驗證。
2.1 基于SSIM的率失真模型
基于PSNR的視頻客觀質(zhì)量雖然計算簡單,但與視頻的主觀質(zhì)量并不匹配。事實上,視頻實驗早已證明,人眼對視頻圖像中的結(jié)構(gòu)信息更加敏感?;诖?,文獻(xiàn)[9]設(shè)計了基于結(jié)構(gòu)相似的視頻質(zhì)量評價方法,其評價結(jié)果與MOS等主觀視頻質(zhì)量評價方法高度一致,得到廣泛的應(yīng)用。SSIM包含了視頻圖像的對比度、亮度及結(jié)構(gòu)度等幾方面的信息,定義如下:
其中 ,xy分別為參考圖像與噪聲圖像對應(yīng)位置的塊;(,)lxy、 (,)cxy、 (,)sxy為亮度函數(shù)、對比度函數(shù)與結(jié)構(gòu)函數(shù)。從式(12)可以看出,SSIM能提取視場中的結(jié)構(gòu)信息,其與視頻的主觀質(zhì)量具有高度的一致性,并能反映出亮度自適應(yīng)與紋理掩蔽。為充分利用 SSIM 與人眼視覺系統(tǒng)一致性較強的優(yōu)點,本文建立了基于SSIM的率失真模型,并將其用于BU層的碼率控制。
對第i幀的SSIM采用下式進(jìn)行計算:
其中 ,λβ為參數(shù),其值由實驗中得到。
2.2 BU層比特分配
BU層目標(biāo)比特分配可轉(zhuǎn)化為下列優(yōu)化問題:
其中1sT?為當(dāng)前幀中第 1s?個BU編碼后剩余的比特,sr為由式(15)求出的第s個 BU最優(yōu)的比特數(shù)量。
顯然,對BU的比特分配并不是進(jìn)行簡單的平均,而是基于SSIM的率失真模型進(jìn)行分配,以保留更多的結(jié)構(gòu)信息,使之更符合人眼視覺感知的特點。
對于式(14)所示的R-D模型,其參數(shù)更新需在每一個幀中BU的比特分配完成后進(jìn)行。因此,在當(dāng)前幀完成 BU級比特分配后,采用文獻(xiàn)[11]的方法,將參數(shù)更新過程轉(zhuǎn)化為下列求極值問題:其中Ω為前一幀中R與D數(shù)據(jù)集合,相應(yīng)的R-D數(shù)據(jù)點數(shù)量為w,和分別為集合Ω中的數(shù)據(jù)點對應(yīng)的速率與失真,對式(17)求梯度即可得到參數(shù) ,λβ更新后的值,詳細(xì)推導(dǎo)過程可參考文獻(xiàn)[12]。
為降低算法的時間復(fù)雜度,采用JVT-W042算法中的二次速率?量化參數(shù)模型計算幀及 BU的量化步長:
其中 Qstep為量化步長, b1,b2及 a1,a2為模型中的參數(shù)。MAD為視頻圖像編碼復(fù)雜度,根據(jù)前一幀的MADpb來預(yù)測當(dāng)前幀的 MADcb。此外,式(18)中的參數(shù) b1,b2和 a1,a2的更新分別采用與JVT-W042相同的方法,在此不予另加說明。
VP-RCA算法的實現(xiàn)步驟如下:
步驟1.采用JVT-W042中的GOP層碼率控制算法完成對 GOP的比特分配和初始量化參數(shù)的計算。
步驟2.根據(jù)式(1)及式(7)對當(dāng)前幀的JND值進(jìn)行計算,并根據(jù)式(11)完成幀層的比特分配,再采用式(18)計算當(dāng)前幀的量化步長并編碼,最后更新剩余比特數(shù)及緩沖區(qū)狀態(tài)等參數(shù)。
步驟3.根據(jù)式(14)得到當(dāng)前幀的基于SSIM的率失真模型,并根據(jù)式(16)完成BU級的比特分配,并采用式(18)計算量化步長并完成編碼。
步驟 4.根據(jù)式(17)完成率失真模型的參數(shù)更新,并采用與JVT-W042相同的方法完成式(18)中的二次模型的參數(shù)更新。如當(dāng)前GOP所有幀編碼完畢,轉(zhuǎn)向步驟5,否則轉(zhuǎn)向步驟2。
步驟 5.如當(dāng)前視頻序列編碼完畢,則結(jié)束。否則轉(zhuǎn)向步驟1,開始編碼下一個GOP。
為驗證本文的碼率控制算法的有效性,在相同的編碼參數(shù)設(shè)置環(huán)境下,在JM10中對比了VP-RCA算法與JVT-W042算法及文獻(xiàn)[1]中的基于視覺注意度的碼率控制算法(RC-CVA)的性能。視頻測試序列為5個CIF格式的文件,包含了各類典型場景,其分辨率為352288× 。編碼參數(shù)為:GOP結(jié)構(gòu)為“IPPP···”,GOP長度為8,幀率為20幀/秒,搜索區(qū)域為32,參考幀的數(shù)量為1,初始量化參數(shù)為28,熵編碼采用CABAC,幀的數(shù)量為300。常數(shù)1α,2α,ω的值分別為4.65,2.45,3.92,1C和2C的值分別為0.67和0.33,σ的值為12.4。為衡量碼率控制的精度,定義碼率誤差(rate error,RE)為其中分別為實際和目標(biāo)碼率, ()abs為取絕對值函數(shù)。
表 1顯示了三種算法的實驗結(jié)果??梢钥吹絍P-RCA算法的RE值顯著小于其他兩種算法,目標(biāo)碼率與實際碼率非常接近,碼率波動也更小。這說明該算法的碼率控制更準(zhǔn)確,對動態(tài)變化的傳輸信道的適應(yīng)能力更好。當(dāng)傳輸?shù)囊曨l序列為Foreman與Mobile這類場景切換較頻繁、紋理較為復(fù)雜的序列時,VP-RCA算法的RE值降低了0.2%,平均PSNR在不同的目標(biāo)碼率下提高了0.3 dB左右。表明VP-RCA算法由于在碼率控制中采用JND和SSIM,能夠更好地編碼視頻圖像中的結(jié)構(gòu)信息,在視覺冗余的消除方面效率更高。
圖1顯示了三種算法對應(yīng)兩種典型場景的視頻序列時各幀PSNR對比圖。可見,無論是對于運動矢量較小、場景切換較少的視頻序列,還是運動矢量較大、場景切換較多的序列,VP-RCA算法可獲得更高的客觀質(zhì)量,且視頻圖像的質(zhì)量波動也比較小。特別是傳輸對象為Mobile序列時,VP-RCA算法對應(yīng)的PSNR變化更平穩(wěn),這表明該算法由于在幀層和BU層碼率控制中考慮了JND和SSIM,在復(fù)雜紋理及場景變化頻繁的情況下很好地優(yōu)化了幀層的比特分配。
表1 不同碼率控制算法的性能對比
圖1 PSNR性能比較 (64 kbps, 20 frame/s)
圖2給出了視頻序列Foreman、Mobile的碼率與SSIM值的對比。不難看出,VP-RCA算法的各幀SSIM值較其他兩種算法有明顯提高,說明本文算法由于綜合考慮了幀活動度、場景切換等因素,在采用基于SSIM的率失真模型的基礎(chǔ)上,獲得了最優(yōu)的BU層比特分配,顯著地提高了視頻序列的客觀質(zhì)量。
圖2 SSIM性能比較(64 kbps, 20 frame/s)
圖3比較了Foreman的主觀質(zhì)量。Foreman主要為運動平滑的場景,視頻圖像中細(xì)節(jié)、結(jié)構(gòu)等信息較多,其平坦區(qū)域包含了較多的視覺冗余。從圖中可以看出,與其他兩種算法相比,VP-RCA算法很好地保留了視頻圖像中的結(jié)構(gòu)信息,對細(xì)節(jié)區(qū)域的比特分配也更加合理,因而獲得了更好的主觀質(zhì)量。
圖3 Foreman序列的主觀質(zhì)量比較(128 kbps)
碼率控制對提高編碼器輸出碼率的質(zhì)量與穩(wěn)定性有著非常重要的作用。針對當(dāng)前H.264的碼率控制算法未考慮人眼視覺感知及輸出的碼流質(zhì)量起伏較大的不足,提出了一種基于人眼視覺感知的碼率控制算法。首先設(shè)計了求取各幀JND的方法,并在此基礎(chǔ)上完成幀層的比特分配;其次在BU層比特分配過程中采用了基于結(jié)構(gòu)相似的率失真模型,有效降低了視覺冗余。實驗結(jié)果表明本文提出的算法有效地減少了編碼器輸出碼流的波動,提高了視頻圖像的主觀和客觀質(zhì)量。下一步的工作是將在本文研究的基礎(chǔ)上,研究三維立體視頻編碼中的碼率控制問題。
[1] Shen Liquan, Liu Zhi, Zhang Zhaoyang. A novel H.264 rate control algorithm with consideration of visual attention [J]. Multimedia Tools and Applications, 2013, 63(3): 709-727.
[2] Hu Haimiao, Li Bo, Lin Weiyao, Li Wei, Sun Mingting. Region-based rate control for H.264/AVC for low bit-rate applications [J]. IEEE Transactions on Circuits and Systems for Video Technology, 2012, 22(11): 1564-1575.
[3] Zhou Yimin, Sun Yu, Feng Zhidan, Sun Shixin. PID-based bit allocation strategy for H.264/AVC rate control [J]. IEEE Transactions on Circuits and Systems, 2011, 58(3): 184-188.
[4] Kim M J, Hong M C. Fast rate control algorith m in frame-layer for H.264/AVC video coding [J]. IEEE Transaction on Consumer Electronics, 2012, 58(3): 872-879.
[5] Tan Y H, Yeo C, Li Zhengguo. Single-pass rate control with texture and non-texture rate- distortion models [J]. IEEE Transactions on Circuits and Systems for Video Technology. 2012, 22(8): 1236- 1244.
[6] 張冠軍, 朱亞培, 郁 梅. 基于區(qū)域劃分的JND快速求取算法[C]//2012年互聯(lián)網(wǎng)技術(shù)與應(yīng)用國際學(xué)術(shù)會議論文集, 西安, 2012: 393-397.
[7] 王 曉. 基于JND的H.264編碼模式選擇算法[J]. 電子科技大學(xué)學(xué)報, 2013, 42(1): 122-124.
[8] 吳 煒, 陳 健, 宋 彬. H.264/AVC碼率控制現(xiàn)狀與發(fā)展[J]. 系統(tǒng)工程與電子技術(shù), 2013, 35(5): 1091-1097.
[9] Zhou Wang, Bovik A C, Sheikh H R, Simoncelli E P. Image quality assessment: from error visibility to structural similarity [J]. IEEE Transactions on Image Processing, 2004, 13(4): 600-612.
[10] 方志軍, 高永彬, 舒 雷, 袁非牛, 楊 勇. 場景切換視頻自適應(yīng)幀間碼率控制[J]. 中國圖象圖形學(xué)報, 2013, 18(6): 693-699.
[11] Ou Taosheng, Huang Y H, Chen H H. SSIM-based perceptual rate control for video coding [J]. IEEE Transactions on Circuits and System for Video Technology, 2011, 21(5): 682-691.
[12] Xu Long, Zhao Debin, Ji Xiangyang, Deng Lei, kwong S, Gao Wen. Window-level rate control for smooth picture quality and smooth buffer occupancy [J]. IEEE Transactions on Image Processing, 2011, 20(3): 723-734.
Visual Perception Based Rate Control Algorithm for H.264
Tian Bo1,2, Yang Yimin2, Cai Shuting2
(1. Mathematics and Information Engineering Department, College of Tongren, Tongren Guizhou 554300, China; 2. School of Automation, Guangdong University of Technology, Guangzhou Guangdong 510090, China)
Due to that the conventional rate control algorithm for the latest video coding standard H.264 does not take into account the human visual perception and many result in video quality fluctuation, a visual perception based rate control algorithm (VP-RCA) for H.264 is proposed in this paper. First, bit allocation to frame is related to the Just Noticeable Distortion of frame and the rate control is performed by adaptive rate-distortion optimal. Second, the structural similarity index as the quality metric for rate-distortion modeling and the optimum bit allocation is performed in basic unit (BU) layer. And the value of quantization parameter (QP) is computed by exploring quadratic rate–quantization (R-Q) model. Experimental results show that the proposed rate control algorithm can reduces the bit-rate error by up to 0.2% comparisons with the typical rate control algorithms.
rate control; just noticeable distortion; bit allocation; structural similarity
TN 919.85
A
2095-302X(2014)05-0762-06
2014-04-03;定稿日期:2014-05-14
國家自然科學(xué)基金青年科學(xué)基金資助項目(61201392);銅仁學(xué)院科研啟動基金資助項目(TS10014)
田 波(1978–),男,湖南懷化人,講師,在讀博士生。主要研究方向為視頻編碼及傳輸、機器人遙操作。E-mail:tianbomail@163.com