王朋,倪翠,張廣淵,李克峰
山東交通學(xué)院信息科學(xué)與電氣工程學(xué)院,濟(jì)南250357
基于URQ模型的I幀碼率控制
王朋,倪翠,張廣淵,李克峰
山東交通學(xué)院信息科學(xué)與電氣工程學(xué)院,濟(jì)南250357
當(dāng)目標(biāo)碼率較低時,在編碼視頻序列中周期性地插入I幀,會導(dǎo)致重建視頻播放時出現(xiàn)“閃爍”現(xiàn)象.為提高I幀重建質(zhì)量,抑制“閃爍”,提出了一種基于URQ模型的I幀碼率控制算法.首先根據(jù)圖像的運動趨勢和復(fù)雜度將I幀劃分為運動區(qū)域、圖像復(fù)雜區(qū)域和平坦區(qū)域;然后依據(jù)人眼視覺系統(tǒng)對不同區(qū)域“閃爍”的敏感性,為視覺敏感區(qū)域分配更多的碼率,其他區(qū)域分配較少碼率;最后,利用URQ模型計算編碼所需的量化參數(shù)值,實現(xiàn)對I幀的碼率控制.實驗結(jié)果表明,所提算法能夠在保證碼率控制精度的前提下,有效抑制由于周期性插入I幀導(dǎo)致的視頻“閃爍”現(xiàn)象,提高重建視頻的整體主客觀質(zhì)量.
URQ模型;“閃爍”抑制;I幀;碼率控制
隨著數(shù)字視頻技術(shù)的發(fā)展,H.264/AVC標(biāo)準(zhǔn)越來越無法滿足人們對視頻編碼的需求.2010年1月,ITU-T視頻編碼專家組(video coding experts group,VCEG)和運動圖像專家組(moving picture experts group,MPEG)開始發(fā)起新的視頻壓縮技術(shù)的正式提案.2013年1月,新的高性能視頻編碼(high efficiency video coding,HEVC)[1]標(biāo)準(zhǔn)發(fā)布最終版本.與H.264/AVC標(biāo)準(zhǔn)相比,HEVC通過采用更加靈活的四叉樹編碼塊劃分、基于方向的幀內(nèi)預(yù)測與預(yù)測類型和自適應(yīng)運動矢量預(yù)測選擇機(jī)制等新技術(shù),使得編碼效率大大提升,但編碼復(fù)雜度也隨之提高[2].由于HEVC仍然采用和H.264/AVC類似的編碼結(jié)構(gòu),I幀就成為影響編碼效率的關(guān)鍵因素之一.在視頻編碼過程中,為了容錯、場景切換和隨機(jī)存取等需要,通常在編碼視頻序列中周期性地插入I幀.由于I幀的編碼效率大大低于P幀和B幀,當(dāng)目標(biāo)碼率較低時,在編碼過程中如果不對I幀加以控制,則會導(dǎo)致重建后的I幀質(zhì)量低于P幀和B幀.此時如果在視頻序列中周期性地插入I幀,就會出現(xiàn)視頻“閃爍”現(xiàn)象.
碼率控制根據(jù)給定的目標(biāo)碼率計算QP值,使得編碼器的輸出碼率和目標(biāo)碼率相匹配,在視頻編碼中起著重要作用.在HEVC的參考代碼HM10.0[3]中,共有兩種碼率控制模型,一是基于像素的統(tǒng)一的碼率量化(unified rate-quantization,URQ)參數(shù)模型[4],二是R-Lambda模型[5].URQ模型能夠?qū)EVC中尺寸多變的編碼塊起到較好的控制效果,但在碼率分配階段并沒有對I幀加以區(qū)分,因此周期性插入I幀導(dǎo)致的“閃爍”現(xiàn)象難以消除.R-Lambda模型可能考慮了各類型幀的編碼效率不同,根據(jù)I幀bpp(bits per pixel)值的范圍調(diào)整I幀所分配的碼率,但這種調(diào)整較為固定,并不能靈活地隨著視頻內(nèi)容的變化而變化.雖然調(diào)整后I幀的重建視頻質(zhì)量得到了保證,但其實際編碼輸出的碼率過大,容易造成其后的P幀/B幀目標(biāo)碼率不足,重建視頻質(zhì)量下降.
針對I幀的碼率控制研究一直是視頻編碼領(lǐng)域的熱點,抑制周期性插入I幀導(dǎo)致的視頻“閃爍”現(xiàn)象正是其中的一個研究方向[6-7].許多“閃爍”抑制算法相繼提出,這些算法通??梢苑譃?類:1)在編碼前后采用濾波技術(shù)消除“閃爍”[8-9];2)通過修改編碼標(biāo)準(zhǔn)中的幀內(nèi)編碼模式消除“閃爍”[10-11];3)通過多次編碼選擇合適的編碼參數(shù)消除“閃爍”[12].這些算法在一定程度上或在某種特定的應(yīng)用環(huán)境下能夠抑制“閃爍”現(xiàn)象,如文獻(xiàn)[12]提出的兩次(2-pass)編碼算法.編碼I幀時,首先采用幀間編碼方式編碼該幀,此時解碼后重建幀的“閃爍”現(xiàn)象不明顯.然后以該重建幀為參考,采用較小的量化參數(shù)(QP)以幀內(nèi)編碼方式再次編碼該幀.兩次編碼算法對I幀引起的“閃爍”現(xiàn)象能起到一定的抑制作用,但從根本上說,引起視頻“閃爍”現(xiàn)象的原因如下:各重建幀的質(zhì)量不連續(xù),特別是重建的I幀質(zhì)量遠(yuǎn)低于其相鄰幀,而重建幀的質(zhì)量在很大程度上依賴于碼率控制階段計算出的QP值.
本文從碼率控制角度出發(fā),重點研究P幀和I幀切換時出現(xiàn)的視頻“閃爍”現(xiàn)象,提出一種基于URQ模型的I幀碼率控制算法,以抑制“閃爍”.首先,將I幀劃分為3個區(qū)域,即運動區(qū)域、圖像復(fù)雜區(qū)域和平坦區(qū)域.然后,在為編碼樹單元(coding tree unit,CTU)分配目標(biāo)碼率時,如果CTU的目標(biāo)碼率小于0,則根據(jù)該CTU所屬區(qū)域調(diào)整目標(biāo)碼率.最后,根據(jù)調(diào)整后的目標(biāo)碼率,利用URQ模型計算CTU的QP值,提高I幀的重建質(zhì)量,保證重建后I幀和P幀質(zhì)量的連續(xù)性,抑制“閃爍”現(xiàn)象.
一般來說,視頻序列如果不存在場景切換,則連續(xù)兩幀圖像的內(nèi)容不會有很大的差異.因此,如果連續(xù)兩幀圖像都以相同的QP值進(jìn)行編碼,即使分別采用幀間編碼和幀內(nèi)編碼方式,解碼重建后的質(zhì)量也不會出現(xiàn)較大差異,“閃爍”現(xiàn)象并不明顯.圖1(a)顯示了container序列中連續(xù)3幀的重建圖像,采用HM10.0進(jìn)行編碼,編碼圖像組(GOP)大小為12,I幀插入間隔為24,CTU大小為64×64,采用固定的QP值32,不進(jìn)行碼率控制.其中,第95幀和第97幀為P幀,第96幀為I幀.由圖1(a)可以看出,這3幀圖像的質(zhì)量沒有明顯變化,在播放時的“閃爍”現(xiàn)象也較輕微.
圖1 Container序列解碼重建后的第95~97幀質(zhì)量比較Figure 1 Quality comparison of reconstructed frames from 95th to 97th of container
在HM10.0中,URQ碼率控制模型在幀級碼率分配時,只是根據(jù)GOP的剩余碼率和緩沖區(qū)狀態(tài)為當(dāng)前幀分配目標(biāo)碼率,然后進(jìn)行CTU級碼率控制,但并沒有考慮不同類型幀之間的差異.I幀的編碼效率較低,每個CTU實際編碼輸出的碼率較大,從而導(dǎo)致在編碼完若干個CTU之后,I幀的目標(biāo)碼率就已經(jīng)用盡.本文將container序列進(jìn)行編碼,采用碼率控制,目標(biāo)碼率為240 kbit/s,其他配置和圖1(a)編碼時的配置相同,則第48幀、96幀和144幀都為I幀.圖2顯示了在編碼過程中這3幀內(nèi)每個CTU的目標(biāo)碼率.從圖2中可以看出,在編碼完若干個CTU之后,其他CTU的目標(biāo)碼率都小于0,這說明當(dāng)前I幀的目標(biāo)碼率已經(jīng)用盡.在這種情況下,URQ模型采用式(1)計算每個CTU的QP
式中,Qi(j)表示第i幀中第j個CTU的QP值.
圖2 I幀中各CTU的目標(biāo)碼率Figure 2 Target bitrates of each CTU in I frames
隨著QP的增大,CTU重建后的質(zhì)量不斷下降.圖1(b)顯示了這種情況下重建后圖像的質(zhì)量.從圖中可以看出,I幀(第96幀)的質(zhì)量下降明顯,如圖中橢圓內(nèi)的白色波紋就已幾乎消失.在播放時,就會因為I幀的質(zhì)量和相鄰幀不連續(xù)出現(xiàn)“閃爍”現(xiàn)象.另外,圖像中非運動區(qū)域的“閃爍”比運動區(qū)域的“閃爍”更容易被人眼覺察[13],特別是在非運動區(qū)域內(nèi)的平坦區(qū)域,“閃爍”現(xiàn)象最明顯.從圖1中也可以看出,平靜的水面出現(xiàn)的“閃爍”現(xiàn)象更易被覺察,而運動且紋理復(fù)雜的貨輪上出現(xiàn)的“閃爍”現(xiàn)象幾乎不可覺察.因此,進(jìn)行I幀碼率控制時,就要考慮人眼視覺系統(tǒng)對不同區(qū)域“閃爍”的敏感性,合理調(diào)整不同區(qū)域的目標(biāo)碼率.
在基于URQ模型的I幀碼率控制算法中,將I幀劃分為運動區(qū)域、圖像復(fù)雜區(qū)域和平坦區(qū)域三部分,然后根據(jù)CTU的所屬區(qū)域調(diào)整為其分配的目標(biāo)碼率,以提高I幀的重建質(zhì)量,達(dá)到抑制“閃爍”的目的.
首先,根據(jù)相鄰幀中對應(yīng)位置處CTU的幀間亮度差的均值劃分運動區(qū)域和非運動區(qū)域
式中,Dk(m)表示第k幀中第m個CTU的幀間亮度差的均值,Np表示一個CTU中所包含的像素數(shù)目,Ik(i,j)表示第k幀中(i,j)位置的像素亮度值.得到Dk(m)后,根據(jù)式(3)將I幀劃分為運動區(qū)域和非運動區(qū)域
式中,NC表示一幀中所包含的CTU數(shù)目.在一般情況下,視頻中相鄰幀之間的差異很小,為了降低計算復(fù)雜度,采用前一幀CTU的平均亮度差作為當(dāng)前幀CTU的平均亮度差.因此,在式(3)中用Dk-1(i)來計算CTU的平均亮度差.當(dāng)Mk(m)等于1時,表示當(dāng)前CTU屬于運動區(qū)域;反之,則屬于非運動區(qū)域.圖3顯示了本文運動區(qū)域提取結(jié)果,從圖中可以看出,所采用的運動區(qū)域提取算法能夠較準(zhǔn)確地提取出I幀中的運動區(qū)域.
圖3 運動區(qū)域提取結(jié)果示意圖Figure 3 Motion region extraction result
運動區(qū)域提取出之后,根據(jù)CTU的平均絕對誤差(mean absolute difference,MAD)值和整幀圖像的MAD值區(qū)分圖像復(fù)雜區(qū)域和平坦區(qū)域.如果一個CTU的MAD值小于整幀圖像的MAD值,則屬于平坦區(qū)域,否則屬于圖像復(fù)雜區(qū)域.這里的MAD值是通過線性預(yù)測的方式,根據(jù)前一幀對應(yīng)位置處的MAD計算得到的,和URQ模型中采用的方法相同.
其次,根據(jù)CTU的所屬區(qū)域,調(diào)整其目標(biāo)碼率.如果第i幀中第j個CTU的目標(biāo)碼率Ti(j)滿足Ti(j)>0,則直接利用URQ模型計算該CTU的QP值.如果Ti(j)≤0,則按照式(4)對Ti(j)進(jìn)行調(diào)整
式中,Ti,o(m)表示第i幀中第m個CTU編碼后的實際輸出碼率.
如果該CTU屬于“閃爍”現(xiàn)象不明顯的運動區(qū)域或圖像復(fù)雜區(qū)域,則根據(jù)式(4)計算出的Ti(j),利用URQ模型計算該CTU的QP值.如果該CTU屬于“閃爍”明顯的平坦區(qū)域,則再次調(diào)整Ti(j),如式(5)所示:
式中,T′i(j)表示調(diào)整后的目標(biāo)碼率,Ap,i(j)表示根據(jù)前一幀對應(yīng)位置處CTU的MAD值預(yù)測得到的當(dāng)前CTU的MAD值,表示第i幀中前j個CTU的MAD的均值,其計算公式為
為了避免由于I幀的實際編碼碼率過大,導(dǎo)致后續(xù)P幀因為目標(biāo)碼率不足而造成質(zhì)量嚴(yán)重下降,這里將進(jìn)行限制,如式(7)所示:
本文算法能夠提高I幀的整體重建質(zhì)量,保證了I幀和相鄰幀之間的質(zhì)量連續(xù)性,特別是對平坦區(qū)域的CTU來說,其QP值更小,重建質(zhì)量更高,從而抑制了“閃爍”現(xiàn)象.另外,由于對I幀內(nèi)CTU的目標(biāo)碼率進(jìn)行了調(diào)整,I幀的實際輸出碼率高于原算法,但由于I幀質(zhì)量提高,其后續(xù)P幀的編碼碼率會降低,從而使整體的碼率控制精度和客觀質(zhì)量均得到了保證.
本節(jié)測試本文算法的有效性,實驗基于HEVC的參考軟件HM10.0[3]進(jìn)行,HM10.0采用URQ模型進(jìn)行碼率控制.分別測試重建視頻的主觀質(zhì)量、客觀質(zhì)量(Y-PSNR)、“閃爍”程度F.文獻(xiàn)[12]提出的兩次編碼算法和本文算法都在HM10.0中實現(xiàn).實驗選用的測試序列為國際標(biāo)準(zhǔn)測試序列container、tempete、football和foreman,幀率為25幀每秒,編碼總幀數(shù)為200幀,目標(biāo)碼率分別為120 kbit/s、180 kbit/s、240 kbit/s,編碼結(jié)構(gòu)為IPPP,開啟率失真優(yōu)化選項,I幀插入間隔為24幀,GOP大小為12,初始QP值為32.
圖4和5分別比較了container序列和foreman序列的重建圖像質(zhì)量.其中,第95幀和第97幀為P幀,第96幀為I幀.從圖4(a)和5(a)中可以看出,HM10.0編碼I幀時,I幀的重建質(zhì)量明顯低于其相鄰的P幀,如圖中橢圓所標(biāo)識區(qū)域.本文算法中I幀的重建質(zhì)量與相鄰幀相比并無明顯變化.因此,當(dāng)周期性插入I幀時,HM10.0編碼后的視頻序列在播放時就會出現(xiàn)視頻“閃爍”現(xiàn)象,而本文算法則有效抑制了這一點.
圖4 Container序列重建圖像主觀質(zhì)量比較Figure 4 Subjective quality comparisons of reconstructed frames of container
圖5 Foreman序列重建圖像主觀質(zhì)量比較Figure 5 Subjective quality comparisons of reconstructed frames of foreman
表1比較了在不同目標(biāo)碼率下HM10.0、兩次編碼算法和本文算法的重建圖像客觀質(zhì)量,這3種算法的實際輸出碼率和目標(biāo)碼率都比較接近.采用Y-PSNR評價圖像的客觀質(zhì)量,PSNR值(主要是Y分量,又稱為Y-PSNR)是當(dāng)前最通用的視頻客觀質(zhì)量評價標(biāo)準(zhǔn),YPSNR值越高,說明視頻質(zhì)量越高.從表1中可以看出,與HM10.0相比,兩次編碼算法平均提升0.23 dB,而本文算法平均提升0.39 dB.
為了客觀度量視頻“閃爍”程度,本文采用文獻(xiàn)[15]提出的視頻“閃爍”評價方法,如式(9)所示:
表1 重建圖像客觀質(zhì)量比較Table 1 Objective quality comparisons of reconstructed frames
表2中,F(xiàn)表示“閃爍”程度,越大表示“閃爍”越明顯.V表示均值,S表示差的平方和,Oi(j)表示第i幀中第j個CTU的原始像素的亮度值,Ri(j)表示第i幀中第j個重建CTU的像素的亮度值.本文考慮由I幀引起的視頻“閃爍”現(xiàn)象,統(tǒng)計時僅計算I幀和其相鄰幀之間的F值.重建視頻“閃爍”程度客觀度量比較如表2所示.Δ increment表示與HM10.0相比,“閃爍”程度降低的百分比.從表中可以看出,與HM10.0相比,兩次編碼算法的重建視頻“閃爍”程度能夠降低37.47%,而本文算法的重建視頻“閃爍”程度能夠降低50.54%.
圖6比較了目標(biāo)碼率為240 kbit/s時,container序列和foreman序列中單幀圖像的“閃爍”程度.本文算法和兩次編碼算法的單幀“閃爍”抑制效果均優(yōu)于HM10.0,但本文算法對I幀中不同CTU的目標(biāo)碼率進(jìn)行重新計算,有效避免了目標(biāo)碼率不足導(dǎo)致的I幀質(zhì)量下降,“閃爍”抑制效果最優(yōu).
本文提出一種基于URQ模型的I幀碼率控制算法,重點在于解決由于I幀編碼效率低導(dǎo)致的重建視頻“閃爍”現(xiàn)象.通過對I幀進(jìn)行區(qū)域劃分、對CTU的目標(biāo)碼率進(jìn)行調(diào)整等方法,提高了I幀的重建質(zhì)量,保證了I幀和相鄰幀間的質(zhì)量連續(xù)性.實驗結(jié)果表明,本文算法能在保證碼率控制精度的前提下有效抑制I幀引起的視頻“閃爍”現(xiàn)象,且重建視頻的整體客觀質(zhì)量也有所提升.
表2 重建圖像“閃爍”度量Table 2 Flicker measurement of reconstructed frames
圖6 單幀重建圖像“閃爍”程度比較Figure 6 Flicker comparisons of single reconstructed frames
[1]Bross B,Han W,Ohm J.WD4:working draft 4 of high-efficiency video coding[S].JCTVCF803,JCTVC of ISO/IEC and ITU-T,Torino,Italy,2011.
[2]Park S,Park J,Jeon B.Report on the evaluation of HM versus JM[S].JCTVC-D181,JCTVC of ISO/IEC and ITU-T,Daegu,Korea,2011.
[3]McCann K,Bross B,Han W.High efficiency video coding(HEVC)test model 10(HM 10)encoder description[S].JCTVC-L1002,JCTVC of ISO/IEC and ITU-T,Geneva,CH,2013.
[4]Choi H,Nam J,Yoo J.Improvement of the rate control based on pixel-based URQ model for HEVC[S].JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-I0094,Geneva,CH,2012.
[5]Li B,Li H,Li L.Rate control by R-lambda model for HEVC[S].JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-K0103,Shanghai,2012.
[6]LeonTaris A,Tonomura Y,Nakachi T.Flicker suppression in JPEG2000 using segmentationbased adjustment of block truncation lengths[C]//IEEE International Conference on Acoustics,Speech,and Signal Processing(ICASSP),2006,2:1117-1120.
[7]Chono K,Senda Y,MiyamoTo Y.Detented quantization to suppress flicker artifacts in periodically inserted Intra-coded pictures in H.264 video coding[C]//IEEE International conference on Image Processing(ICIP),2006:1713-1716.
[8]Yang J,Wu H.Robust fltering technique for reduction of temporal fluctuation in H.264 video sequences[J].IEEE Transactions on Circuits and Systems for Video Technology,2010,20(3):458-462.
[9]Nguyen T,Yea S,VeTro A.Adaptive fuzzy fltering for artifact reduction in compressed images and videos[J].IEEE Transactions on Image Processing,2009,18:1166-1178.
[10]Chun S,Kim J,Sull S.Intra prediction mode selection for flicker reduction in H.264/AVC[J]. IEEE Transactions on Consumer Electronics,2006,52:1303-1310.
[11]Chun S,Kim J,Sull S.Flicker reduction in Intra coded frames of H.264/AVC[C]//IEEE International Conference on Image Processing(ICIP),2006:2025-2028.
[12]Yang H,Boyce J,STein A.Efective flicker removal from periodic Intra frames and accurate flicker measurement[C]//IEEE International Conference on Image Processing(ICIP),2008:2868-2871.
[13]Becker A,Chan W,Poulouin D.Flicker reduction in intra frame codecs[C]//IEEE Data Compression Conference(DCC 2004),North Ryde,NSW,Australia,2004:251-261.
[14]Ren G,Li P,Wang G.A novel hybrid coarse-to-fne digital image stabilization algorithm[J]. Information Technology Journal,2010,9(7):1390-1396.
[15]Fan X,Gao W,Lu Y.Flicking reduction in all intra-frame coding[S].ISO/IEC JTC1/SC29/ WG11 and ITU-T SG16Q.6,JVT 5th Meeting,2002.
(編輯:管玉娟)
Rate Control of I-Frames Based on URQ Model
WANG Peng,NI Cui,ZHANG Guang-yuan,LI Ke-feng
School of Information Science and Electric Engineering,Shandong Jiaotong University,Ji'nan 250357,China
In high efficiency video coding,the coding efficiency of I-frames is lower than P-frames and B-frames,causing flicker artifacts,especially in low bitrates applications. We propose a rate control algorithm for I-frames based on URQ model to improve the reconstruction quality of I-frames to suppress flicker artifacts.An I-frame is classifed into three regions according to their motion vectors and complexity,termed motion region,texture-rich region and smooth region.According to diferent sensitivities of human visual system to diferent regions,visually sensitive regions are allocated more target bits.The URQ model is used to calculate QPs.Experimental results demonstrate that the proposed algorithm can efficiently suppress flicker artifacts and improve subjective and objective quality of the video.
URQ model,flicker suppression,I-frames,rate control
TN919.8
0255-8297(2015)01-0070-09
10.3969/j.issn.0255-8297.2015.01.008
2014-09-26;
2014-11-25
山東省優(yōu)秀中青年科學(xué)家科研獎勵基金(No.BS2013DX033);山東省科技發(fā)展計劃基金(No.2014GGB01513)資助
王朋,博士,研究方向:視頻編碼、數(shù)字圖像處理,E-mail:knightwp@126.com