胡乾乾,沈禮權(quán),2,趙振軍
(1.上海大學(xué) 通信與信息工程學(xué)院,上海200072;2.新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海200072)
基于場(chǎng)景切換的HEVC碼率控制算法
胡乾乾1,沈禮權(quán)1,2,趙振軍1
(1.上海大學(xué) 通信與信息工程學(xué)院,上海200072;2.新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海200072)
HEVC(High Efficiency Video Coding)采用的基于R-λ模型的碼率控制算法在控制輸出碼率的精確和提高編碼效率上都取得了良好的效果。然而該算法沒有考慮到實(shí)際視頻編碼中場(chǎng)景切換的影響。提出一種新的針對(duì)場(chǎng)景切換的碼率控制算法。結(jié)合幀間的亮度差及其變換趨勢(shì)判斷是否發(fā)生場(chǎng)景切換,在場(chǎng)景切換發(fā)生時(shí)對(duì)碼率控制的參數(shù)以及編碼結(jié)構(gòu)都做出及時(shí)調(diào)整。實(shí)驗(yàn)表明,與HEVC自帶的碼率控制相比,所提出的碼率控制算法能夠有效應(yīng)對(duì)視頻序列中的場(chǎng)景切換,提高了編碼質(zhì)量,降低了編碼復(fù)雜度,并且保持精確的輸出碼率。
碼率控制;場(chǎng)景切換;HEVC編碼
隨著視頻服務(wù)多樣化的發(fā)展以及高清甚至超高清視頻的普及,原有的視頻編碼標(biāo)準(zhǔn)如H.264/MPEG-4 AVC以及越來(lái)越力不從心,因此,人們迫切需要一種新的更加高效的視頻編碼標(biāo)準(zhǔn)。HEVC(High Efficiency Video Coding)是ISO-IEC/MPEG和ITU-T/VCEG兩大國(guó)際標(biāo)準(zhǔn)化組織聯(lián)合制定的新一代視頻編碼標(biāo)準(zhǔn),它沿用了傳統(tǒng)視頻編碼標(biāo)準(zhǔn)的混合視頻編碼基本框架,但在各個(gè)編碼模塊上都進(jìn)行了改進(jìn)和革新。與H.264/AVC相比,在同等應(yīng)用條件和視頻質(zhì)量下,釆用HEVC進(jìn)行編碼的碼率要降低將近一半[1]。
在視頻編碼的過(guò)程中,輸出視頻質(zhì)量與使用的碼率是密切相關(guān)的,編碼視頻的質(zhì)量越好,消耗的碼率資源也會(huì)越多。但是在實(shí)際的應(yīng)用過(guò)程中,因?yàn)榇鎯?chǔ)空間和傳輸帶寬有限,需要將編碼視頻的輸出碼率控制在一定范圍內(nèi),同時(shí)又要盡可能地提高視頻質(zhì)量,這時(shí)就應(yīng)該采取碼率控制。碼率控制雖然不是視頻編碼中必須的內(nèi)容,但卻是視頻編碼非常重要的組成部分。目前HEVC參考軟件HM中采用的是Bin Li等人提出的基于R-λ模型的碼率控制算法[1-2]。其中λ是RDO(Rate Distortion Optimization)過(guò)程中的一個(gè)重要參數(shù)。R-λ模型如下
λ=α×Rβ
(1)
式中:α和β是和編碼視頻有關(guān)的參數(shù),可以隨著編碼過(guò)程不斷更新;R是當(dāng)前編碼幀或編碼單元的目標(biāo)比特。在計(jì)算得到λ之后,通過(guò)計(jì)算量化參數(shù)QP(Quantization Parameter)
QP=4.200 5×lnλ+13.712 2
(2)
雖然該碼率控制算法相比于傳統(tǒng)的碼率控制可以取得更高的編碼效率,卻并未考慮到實(shí)際應(yīng)用中場(chǎng)景切換對(duì)視頻編碼和碼率控制的影響。場(chǎng)景切換會(huì)切斷相鄰幀之間的時(shí)間相關(guān)性,若編碼器不能及時(shí)進(jìn)行調(diào)整,將會(huì)導(dǎo)致編碼資源浪費(fèi),壓縮效率降低,同時(shí)預(yù)測(cè)模型參數(shù)的有效性也會(huì)降低,影響碼率控制的準(zhǔn)確性。目前,針對(duì)場(chǎng)景切換提出了很多碼率控制算法。文獻(xiàn)[3]提出一種低比特率情況下的實(shí)時(shí)檢測(cè)場(chǎng)景切換以及進(jìn)行QP調(diào)整的碼率控制算法;文獻(xiàn)[4]中提出了一種自適應(yīng)碼率控制算法,通過(guò)YUV三個(gè)分量的變化來(lái)檢測(cè)場(chǎng)景變換,同時(shí)GoP(Group of Pictures)長(zhǎng)度也進(jìn)行自適應(yīng)改變;文獻(xiàn)[5]分析了場(chǎng)景切換對(duì)編碼質(zhì)量的影響,并利用人眼的時(shí)域掩蓋特性提出了相應(yīng)的目標(biāo)比特?cái)?shù)計(jì)算方法。
上述算法都是應(yīng)用于H.264平臺(tái)。本文提出一種應(yīng)用于HEVC平臺(tái)的基于場(chǎng)景切換的碼率控制算法。首先通過(guò)計(jì)算相鄰幀的亮度差變換趨勢(shì)探測(cè)場(chǎng)景切換幀,在確定當(dāng)前幀是場(chǎng)景切換幀后,對(duì)編碼參數(shù)進(jìn)行及時(shí)調(diào)整,保持視頻平滑性并提高編碼質(zhì)量,同時(shí)保持輸出碼率的準(zhǔn)確性。實(shí)驗(yàn)表明,該碼率控制算法可以有效提高有場(chǎng)景切換視頻的編碼效率。
場(chǎng)景切換處都伴隨著相鄰兩幀亮度分量的大幅度變化。因此本文使用當(dāng)前幀與前一幀的亮度差作為場(chǎng)景切換檢測(cè)的基礎(chǔ),亮度差的計(jì)算如下
(3)
式中:D(n)為當(dāng)前幀(即第幀)與前一幀亮度的差值。Yn(i,j)是第n幀(i,j)位置的亮度分量值。M和N是幀的寬度和高度。D(n)不能單獨(dú)作為場(chǎng)景切換的判斷依據(jù),因?yàn)闆]有發(fā)生切換的場(chǎng)景中運(yùn)動(dòng)的快慢變化也會(huì)影響到D(n)的大小。為了消除這種影響,應(yīng)該將當(dāng)前幀的亮度變化與前面已編碼幀的亮度變化相比較,若與前面已編碼序列的亮度變化相比,當(dāng)前幀的亮度變化出現(xiàn)了突變,則可以認(rèn)為當(dāng)前幀處出現(xiàn)了場(chǎng)景切換。
V(n)=p×D(n)+(1-p)×V(n-1)
(4)
式(4)表明V(n)與前面各幀的亮度差值都有關(guān),并且離當(dāng)前幀越近的幀的亮度差值對(duì)V(n)的影響越大。式(4)是一個(gè)計(jì)算所有幀的D(n)的加權(quán)和的過(guò)程,p是權(quán)重因子,表明的是與當(dāng)前幀的距離遠(yuǎn)近對(duì)V(n)的影響,p越大則距離近的幀的亮度差影響越大,實(shí)驗(yàn)中設(shè)置為0.5。V(n)的計(jì)算至少需要3幀,所以設(shè)序列的第二幀以及場(chǎng)景切換后一幀的V(n)都等于D(n)。V(n)的計(jì)算中不包括上一個(gè)場(chǎng)景切換幀及其之前的幀。判斷當(dāng)前幀是否為場(chǎng)景切換幀的依據(jù)K(n)的計(jì)算為
(5)
設(shè)序列的第一幀、第二幀的K為1。場(chǎng)景切換發(fā)生后的幾幀內(nèi)一般不會(huì)再發(fā)生場(chǎng)景變換,但是此時(shí)亮度變換趨勢(shì)也并不穩(wěn)定,為防止此時(shí)發(fā)生誤判,設(shè)場(chǎng)景變換后的4幀的K都等于1。截取了6個(gè)分辨率為832×480的測(cè)試序列,分別是35幀Keiba,38幀F(xiàn)lowervase,40幀PartyScene,41幀BQMall,37幀BasketballDrill,33幀RaceHorse合成了1個(gè)有5處場(chǎng)景切換的序列。圖1給出這個(gè)序列各幀K值的變化曲線。
從圖1中可以看出在場(chǎng)景切換處K值都發(fā)生了劇烈的變化。因此若當(dāng)前幀的K(n)滿足以下條件,判定該幀為場(chǎng)景切換幀
圖1 合成序列中各幀K值的變換曲線
K(n)>th
(6)
式中:th為設(shè)置的閾值。通過(guò)大量的實(shí)驗(yàn)經(jīng)驗(yàn)將th取值為2.5,實(shí)驗(yàn)沒有出現(xiàn)漏檢和誤檢的情況。
本文的算法在編碼每一幀前都會(huì)先使用上述場(chǎng)景切換檢測(cè)算法判斷當(dāng)前幀是否是場(chǎng)景切換幀。如果沒有發(fā)生場(chǎng)景切換,碼率控制采用參考文獻(xiàn)[2]中的方法。如果檢測(cè)到當(dāng)前幀是場(chǎng)景切換幀,那么碼率控制策略將發(fā)生如下改變:
1)將碼率控制模型中使用的參數(shù)α和β置換成初始值。場(chǎng)景切換發(fā)生時(shí),前后幀之間的時(shí)間相關(guān)性被切斷。因?yàn)榇a率控制中的模型參數(shù)是從前面已編碼幀預(yù)測(cè)得來(lái),而此時(shí)圖像的屬性已發(fā)生突變,模型參數(shù)失去有效性從而導(dǎo)致碼率控制的不準(zhǔn)確,同時(shí)因?yàn)閰?shù)更新是一個(gè)緩變的過(guò)程,如不及時(shí)調(diào)整還會(huì)影響到后續(xù)多幀的碼率控制準(zhǔn)確性。
2)由于前后幀已不具備時(shí)間相關(guān)性,如果后續(xù)幀依然將切換前的幀作為參考幀,就會(huì)浪費(fèi)大量的編碼資源。所以在本文算法中,當(dāng)前GoP提前結(jié)束,并將當(dāng)前場(chǎng)景切換幀設(shè)置為I幀,后面的幀不以場(chǎng)景變換以前的幀作為參考幀。
3)為了保持視頻質(zhì)量的平滑,當(dāng)前幀的λ和QP應(yīng)該盡量與前面已編碼幀的λ和QP保持一致??紤]到當(dāng)前幀可能產(chǎn)生大量比特造成緩沖區(qū)上溢,λ和QP應(yīng)該適當(dāng)上調(diào),但是場(chǎng)景切換幀作為關(guān)鍵參考幀,它的編碼質(zhì)量將嚴(yán)重影響后續(xù)編碼幀的質(zhì)量,λ和QP又不能過(guò)大。綜合上述因素,本文提出以下方法確定場(chǎng)景切換幀的λ
λcur=λpre×R
(7)
式中:λcur是編碼當(dāng)前場(chǎng)景切換幀要使用的λ值;λpre表示實(shí)際編碼上一個(gè)GoP中最后一幀所使用的λ;R是一個(gè)調(diào)節(jié)因子。設(shè)QPpre為實(shí)際編碼上一個(gè)GoP中最后一幀所使用的QP,當(dāng)QPpre小于32時(shí),R的值為2,防止發(fā)生緩沖區(qū)上溢;當(dāng)QPpre大于32,R的值為0.5,保證參考幀編碼質(zhì)量。之后按照式(2)計(jì)算場(chǎng)景切換幀的QP。
4)場(chǎng)景切換幀之后將開始一個(gè)新的GoP編碼。GoP的目標(biāo)比特TGoP的設(shè)置參考文獻(xiàn)[2]中的方法,即
(8)
式中:NGop表示GoP的大?。籖PicAvg是目標(biāo)碼率;Ncoded是已編碼幀數(shù);SW是平滑窗大??;Rcoded是已編碼幀消耗的比特?cái)?shù)。需要將提前終止的GoP剩余的比特?cái)?shù)以及編碼場(chǎng)景切換幀消耗的比特?cái)?shù)都計(jì)算在內(nèi)。
為了驗(yàn)證本文算法的有效性,在HM10.0測(cè)試平臺(tái)[6]上進(jìn)行實(shí)驗(yàn)。測(cè)試序列編碼采用low delay P幀的編碼結(jié)構(gòu),GoP的長(zhǎng)度設(shè)為4。此處對(duì)兩個(gè)測(cè)試序列的結(jié)果進(jìn)行分析,序列1是用35幀Keiba、38幀F(xiàn)lowervase、40幀PartyScene、41幀BQMall、37幀BasketballDrill、33幀RaceHorse合成的序列,總共編碼224幀,共有5處場(chǎng)景切換,分辨率為832×480,幀率是30 f/s(幀/秒);序列2是用35幀BQTerrace、41幀BasketballDrive、36幀Kimono、38幀Cactus、43幀ParkScene合成的序列,總共編碼193幀,共有4處場(chǎng)景切換,分辨率為1 920×1 080,幀率是50 f/s。
表1顯示了測(cè)試序列1使用HM10.0自帶的碼率控制算法[2]以及本文的碼率控制算法編碼的結(jié)果。從表1中可以看出使用本文提出的碼率控制算法在不同的目標(biāo)碼率下都能準(zhǔn)確地控制碼率,同時(shí)顯著地提高了PSNR,PSNR平均提高2.11 dB。由于本文算法將場(chǎng)景變換幀設(shè)為幀內(nèi)編碼,又減少了后續(xù)幀的參考幀,省去了一些不必要的運(yùn)動(dòng)搜索過(guò)程,降低了復(fù)雜度,所以平均編碼時(shí)間減少了9.6%。圖2顯示了目標(biāo)碼率為1 000 kbit/s時(shí)使用HM10.0自帶的碼率控制與本文碼率控制的編碼序列1各幀PSNR的變化曲線。
表1 測(cè)試序列1使用HM10.0碼率控制算法與本文提出的碼率控制算法編碼結(jié)果比較
表2顯示了測(cè)試序列1使用HM10.0自帶的碼率控制算法以及本文的碼率控制算法編碼的結(jié)果。從表2中可以看出使用本文提出的碼率控制算法的平均PSNR提高不如序列1顯著,平均只提高了0.26 dB,原因是序列2中場(chǎng)景切換處編碼復(fù)雜度的變化并不大,所以原碼率控制算法也能取得較好的效果。由于減少了運(yùn)動(dòng)搜索,平均編碼時(shí)間減少了17.7%,同時(shí)實(shí)際輸出碼率也比較符合目標(biāo)碼率。圖3顯示了目標(biāo)碼率為1 500 kbit/s時(shí)使用HM10.0自帶的碼率控制與本文碼率控制的編碼序列2各幀PSNR的變化曲線。
圖2 測(cè)試序列1中各幀PSNR的變換曲線
目標(biāo)碼率/(kbit·s-1)HM10.0碼率控制本文提出的碼率控制PSNR/dB編碼時(shí)間/s實(shí)際碼率/(kbit·s-1)PSNR/dB編碼時(shí)間/sPSNR提高/dB編碼時(shí)間減少/%100030.615008.3993.9830.894171.680.2816.7150032.025540.061491.8732.314537.050.2918.1200033.015990.931989.4333.314896.290.3018.3300034.356402.882977.8034.535266.340.1817.8平均值—0.2617.7
圖3 測(cè)試序列2中各幀PSNR的變換曲線
本文提出了一種快速場(chǎng)景切換檢測(cè)的方法,并在場(chǎng)景切換對(duì)視頻編碼所造成影響充分分析的基礎(chǔ)上,通過(guò)自適應(yīng)調(diào)整參數(shù),改變編碼結(jié)構(gòu),使碼率控制可以很好地處理場(chǎng)景變換的情況。實(shí)驗(yàn)結(jié)果表明,本文的算法可以更合理地分配碼率資源,提高視頻質(zhì)量的同時(shí)又降低了編碼復(fù)雜度,從而有效地提高了編碼效率。
[1]SULLIVAN G J,OHM J,HAN W J,et al. Overview of the high efficiency video coding(HEVC) standard[J].IEEE Trans.Circuits andSystems for Video Technology,2012,22(12):1649-1668.
[2]LIB.Rate control by R-lambda model for HEVC[S].2012.
[3]LEE C,LEE S,OH Y,et al,Real-time H.264 rate control for scene change video at low bit rate[C]//Proc.ICCE 2007.[S.l.]:IEEE Press,2007:1-2.
[4]余成偉,陸建華,鄭君里.基于場(chǎng)景切換的H.264碼率控制技術(shù)[J].清華大學(xué)學(xué)報(bào),2008,47(7):1133-1136.
[5]范曉東,余松煜,孫軍.基于場(chǎng)景切換檢測(cè)的碼率控制策略[J].上海交通大學(xué)學(xué)報(bào),2000(6):756-760.
[6]HM-10.0 reference software[EB/OL].[2014-10-10].https://hevc.hhi.fraunhofer.de/svn/svn HEVCSoftware/branches/HM-10.0.
責(zé)任編輯:時(shí) 雯
Rate Control Algorithm for HEVC Based on Scene Change
HU Qianqian1,SHEN Liquan1,2,ZHAO Zhenjun1
(1.CollegeofCommunicationandInformationSystem,ShanghaiUniversity,Shanghai200072,China; 2.KeyLaboratoryofAdvancedDisplayandSystemApplication,MinistryofEducation,Shanghai200072,China)
The rate control algorithm based on R-λ model adopted by HEVC (High Efficiency Video Coding) has achieved great performance on both maintaining the accuracy of controlling output bitrate and improving coding efficiency.But it does not consider the influence brought by scene change in practical video coding.A new rate control algorithm based on scene change is proposed in this paper.Scene changesare detected by the difference of luma between frames and the variation tendency of the difference.When scene change occurs, the parameters in rate control and coding structure will be adjusted instantly and adaptively.Experiment result shows that compared with the rate control in HEVC,the proposed method can handle with scene changes in video sequences effectively.The quality is raised and coding complexity is decreased while still maintaining the accuracy of output bitrate.
rate control;scene change;HEVC
國(guó)家自然科學(xué)基金項(xiàng)目(61171084)
TN391.41
A
10.16280/j.videoe.2015.05.001
胡乾乾(1990— ),碩士生,研究方向?yàn)镠EVC碼率控制算法;
沈禮權(quán)(1978— ),副研究員,碩士生導(dǎo)師,主要研究方向3D視頻處理、超高清、超高分辨率視頻處理與編碼、基于人眼視覺特性視頻處理等;
趙振軍(1988— ),碩士生,研究方向?yàn)?D視頻碼率控制算法。
2014-11-08
【本文獻(xiàn)信息】胡乾乾,沈禮權(quán),趙振軍.基于場(chǎng)景切換的HEVC碼率控制算法[J].電視技術(shù),2015,39(5).