胡乾乾,沈禮權,2,趙振軍
(1.上海大學 通信與信息工程學院,上海200072;2.新型顯示技術及應用集成教育部重點實驗室,上海200072)
基于場景切換的HEVC碼率控制算法
胡乾乾1,沈禮權1,2,趙振軍1
(1.上海大學 通信與信息工程學院,上海200072;2.新型顯示技術及應用集成教育部重點實驗室,上海200072)
HEVC(High Efficiency Video Coding)采用的基于R-λ模型的碼率控制算法在控制輸出碼率的精確和提高編碼效率上都取得了良好的效果。然而該算法沒有考慮到實際視頻編碼中場景切換的影響。提出一種新的針對場景切換的碼率控制算法。結合幀間的亮度差及其變換趨勢判斷是否發生場景切換,在場景切換發生時對碼率控制的參數以及編碼結構都做出及時調整。實驗表明,與HEVC自帶的碼率控制相比,所提出的碼率控制算法能夠有效應對視頻序列中的場景切換,提高了編碼質量,降低了編碼復雜度,并且保持精確的輸出碼率。
碼率控制;場景切換;HEVC編碼
隨著視頻服務多樣化的發展以及高清甚至超高清視頻的普及,原有的視頻編碼標準如H.264/MPEG-4 AVC以及越來越力不從心,因此,人們迫切需要一種新的更加高效的視頻編碼標準。HEVC(High Efficiency Video Coding)是ISO-IEC/MPEG和ITU-T/VCEG兩大國際標準化組織聯合制定的新一代視頻編碼標準,它沿用了傳統視頻編碼標準的混合視頻編碼基本框架,但在各個編碼模塊上都進行了改進和革新。與H.264/AVC相比,在同等應用條件和視頻質量下,釆用HEVC進行編碼的碼率要降低將近一半[1]。
在視頻編碼的過程中,輸出視頻質量與使用的碼率是密切相關的,編碼視頻的質量越好,消耗的碼率資源也會越多。但是在實際的應用過程中,因為存儲空間和傳輸帶寬有限,需要將編碼視頻的輸出碼率控制在一定范圍內,同時又要盡可能地提高視頻質量,這時就應該采取碼率控制。碼率控制雖然不是視頻編碼中必須的內容,但卻是視頻編碼非常重要的組成部分。目前HEVC參考軟件HM中采用的是Bin Li等人提出的基于R-λ模型的碼率控制算法[1-2]。其中λ是RDO(Rate Distortion Optimization)過程中的一個重要參數。R-λ模型如下
λ=α×Rβ
(1)
式中:α和β是和編碼視頻有關的參數,可以隨著編碼過程不斷更新;R是當前編碼幀或編碼單元的目標比特。在計算得到λ之后,通過計算量化參數QP(Quantization Parameter)
QP=4.200 5×lnλ+13.712 2
(2)
雖然該碼率控制算法相比于傳統的碼率控制可以取得更高的編碼效率,卻并未考慮到實際應用中場景切換對視頻編碼和碼率控制的影響。場景切換會切斷相鄰幀之間的時間相關性,若編碼器不能及時進行調整,將會導致編碼資源浪費,壓縮效率降低,同時預測模型參數的有效性也會降低,影響碼率控制的準確性。目前,針對場景切換提出了很多碼率控制算法。文獻[3]提出一種低比特率情況下的實時檢測場景切換以及進行QP調整的碼率控制算法;文獻[4]中提出了一種自適應碼率控制算法,通過YUV三個分量的變化來檢測場景變換,同時GoP(Group of Pictures)長度也進行自適應改變;文獻[5]分析了場景切換對編碼質量的影響,并利用人眼的時域掩蓋特性提出了相應的目標比特數計算方法。
上述算法都是應用于H.264平臺。本文提出一種應用于HEVC平臺的基于場景切換的碼率控制算法。首先通過計算相鄰幀的亮度差變換趨勢探測場景切換幀,在確定當前幀是場景切換幀后,對編碼參數進行及時調整,保持視頻平滑性并提高編碼質量,同時保持輸出碼率的準確性。實驗表明,該碼率控制算法可以有效提高有場景切換視頻的編碼效率。
場景切換處都伴隨著相鄰兩幀亮度分量的大幅度變化。因此本文使用當前幀與前一幀的亮度差作為場景切換檢測的基礎,亮度差的計算如下
(3)
式中:D(n)為當前幀(即第幀)與前一幀亮度的差值。Yn(i,j)是第n幀(i,j)位置的亮度分量值。M和N是幀的寬度和高度。D(n)不能單獨作為場景切換的判斷依據,因為沒有發生切換的場景中運動的快慢變化也會影響到D(n)的大小。為了消除這種影響,應該將當前幀的亮度變化與前面已編碼幀的亮度變化相比較,若與前面已編碼序列的亮度變化相比,當前幀的亮度變化出現了突變,則可以認為當前幀處出現了場景切換。
V(n)=p×D(n)+(1-p)×V(n-1)
(4)
式(4)表明V(n)與前面各幀的亮度差值都有關,并且離當前幀越近的幀的亮度差值對V(n)的影響越大。式(4)是一個計算所有幀的D(n)的加權和的過程,p是權重因子,表明的是與當前幀的距離遠近對V(n)的影響,p越大則距離近的幀的亮度差影響越大,實驗中設置為0.5。V(n)的計算至少需要3幀,所以設序列的第二幀以及場景切換后一幀的V(n)都等于D(n)。V(n)的計算中不包括上一個場景切換幀及其之前的幀。判斷當前幀是否為場景切換幀的依據K(n)的計算為
(5)
設序列的第一幀、第二幀的K為1。場景切換發生后的幾幀內一般不會再發生場景變換,但是此時亮度變換趨勢也并不穩定,為防止此時發生誤判,設場景變換后的4幀的K都等于1。截取了6個分辨率為832×480的測試序列,分別是35幀Keiba,38幀Flowervase,40幀PartyScene,41幀BQMall,37幀BasketballDrill,33幀RaceHorse合成了1個有5處場景切換的序列。圖1給出這個序列各幀K值的變化曲線。
從圖1中可以看出在場景切換處K值都發生了劇烈的變化。因此若當前幀的K(n)滿足以下條件,判定該幀為場景切換幀

圖1 合成序列中各幀K值的變換曲線
K(n)>th
(6)
式中:th為設置的閾值。通過大量的實驗經驗將th取值為2.5,實驗沒有出現漏檢和誤檢的情況。
本文的算法在編碼每一幀前都會先使用上述場景切換檢測算法判斷當前幀是否是場景切換幀。如果沒有發生場景切換,碼率控制采用參考文獻[2]中的方法。如果檢測到當前幀是場景切換幀,那么碼率控制策略將發生如下改變:
1)將碼率控制模型中使用的參數α和β置換成初始值。場景切換發生時,前后幀之間的時間相關性被切斷。因為碼率控制中的模型參數是從前面已編碼幀預測得來,而此時圖像的屬性已發生突變,模型參數失去有效性從而導致碼率控制的不準確,同時因為參數更新是一個緩變的過程,如不及時調整還會影響到后續多幀的碼率控制準確性。
2)由于前后幀已不具備時間相關性,如果后續幀依然將切換前的幀作為參考幀,就會浪費大量的編碼資源。所以在本文算法中,當前GoP提前結束,并將當前場景切換幀設置為I幀,后面的幀不以場景變換以前的幀作為參考幀。
3)為了保持視頻質量的平滑,當前幀的λ和QP應該盡量與前面已編碼幀的λ和QP保持一致。考慮到當前幀可能產生大量比特造成緩沖區上溢,λ和QP應該適當上調,但是場景切換幀作為關鍵參考幀,它的編碼質量將嚴重影響后續編碼幀的質量,λ和QP又不能過大。綜合上述因素,本文提出以下方法確定場景切換幀的λ
λcur=λpre×R
(7)
式中:λcur是編碼當前場景切換幀要使用的λ值;λpre表示實際編碼上一個GoP中最后一幀所使用的λ;R是一個調節因子。設QPpre為實際編碼上一個GoP中最后一幀所使用的QP,當QPpre小于32時,R的值為2,防止發生緩沖區上溢;當QPpre大于32,R的值為0.5,保證參考幀編碼質量。之后按照式(2)計算場景切換幀的QP。
4)場景切換幀之后將開始一個新的GoP編碼。GoP的目標比特TGoP的設置參考文獻[2]中的方法,即
(8)
式中:NGop表示GoP的大小;RPicAvg是目標碼率;Ncoded是已編碼幀數;SW是平滑窗大小;Rcoded是已編碼幀消耗的比特數。需要將提前終止的GoP剩余的比特數以及編碼場景切換幀消耗的比特數都計算在內。
為了驗證本文算法的有效性,在HM10.0測試平臺[6]上進行實驗。測試序列編碼采用low delay P幀的編碼結構,GoP的長度設為4。此處對兩個測試序列的結果進行分析,序列1是用35幀Keiba、38幀Flowervase、40幀PartyScene、41幀BQMall、37幀BasketballDrill、33幀RaceHorse合成的序列,總共編碼224幀,共有5處場景切換,分辨率為832×480,幀率是30 f/s(幀/秒);序列2是用35幀BQTerrace、41幀BasketballDrive、36幀Kimono、38幀Cactus、43幀ParkScene合成的序列,總共編碼193幀,共有4處場景切換,分辨率為1 920×1 080,幀率是50 f/s。
表1顯示了測試序列1使用HM10.0自帶的碼率控制算法[2]以及本文的碼率控制算法編碼的結果。從表1中可以看出使用本文提出的碼率控制算法在不同的目標碼率下都能準確地控制碼率,同時顯著地提高了PSNR,PSNR平均提高2.11 dB。由于本文算法將場景變換幀設為幀內編碼,又減少了后續幀的參考幀,省去了一些不必要的運動搜索過程,降低了復雜度,所以平均編碼時間減少了9.6%。圖2顯示了目標碼率為1 000 kbit/s時使用HM10.0自帶的碼率控制與本文碼率控制的編碼序列1各幀PSNR的變化曲線。

表1 測試序列1使用HM10.0碼率控制算法與本文提出的碼率控制算法編碼結果比較
表2顯示了測試序列1使用HM10.0自帶的碼率控制算法以及本文的碼率控制算法編碼的結果。從表2中可以看出使用本文提出的碼率控制算法的平均PSNR提高不如序列1顯著,平均只提高了0.26 dB,原因是序列2中場景切換處編碼復雜度的變化并不大,所以原碼率控制算法也能取得較好的效果。由于減少了運動搜索,平均編碼時間減少了17.7%,同時實際輸出碼率也比較符合目標碼率。圖3顯示了目標碼率為1 500 kbit/s時使用HM10.0自帶的碼率控制與本文碼率控制的編碼序列2各幀PSNR的變化曲線。

圖2 測試序列1中各幀PSNR的變換曲線

目標碼率/(kbit·s-1)HM10.0碼率控制本文提出的碼率控制PSNR/dB編碼時間/s實際碼率/(kbit·s-1)PSNR/dB編碼時間/sPSNR提高/dB編碼時間減少/%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 測試序列2中各幀PSNR的變換曲線
本文提出了一種快速場景切換檢測的方法,并在場景切換對視頻編碼所造成影響充分分析的基礎上,通過自適應調整參數,改變編碼結構,使碼率控制可以很好地處理場景變換的情況。實驗結果表明,本文的算法可以更合理地分配碼率資源,提高視頻質量的同時又降低了編碼復雜度,從而有效地提高了編碼效率。
[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]余成偉,陸建華,鄭君里.基于場景切換的H.264碼率控制技術[J].清華大學學報,2008,47(7):1133-1136.
[5]范曉東,余松煜,孫軍.基于場景切換檢測的碼率控制策略[J].上海交通大學學報,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.
責任編輯:時 雯
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
國家自然科學基金項目(61171084)
TN391.41
A
10.16280/j.videoe.2015.05.001
胡乾乾(1990— ),碩士生,研究方向為HEVC碼率控制算法;
沈禮權(1978— ),副研究員,碩士生導師,主要研究方向3D視頻處理、超高清、超高分辨率視頻處理與編碼、基于人眼視覺特性視頻處理等;
趙振軍(1988— ),碩士生,研究方向為3D視頻碼率控制算法。
2014-11-08
【本文獻信息】胡乾乾,沈禮權,趙振軍.基于場景切換的HEVC碼率控制算法[J].電視技術,2015,39(5).