孟雷雷,夏哲雷
(中國計(jì)量學(xué)院信息工程學(xué)院,浙江杭州310018)
X264視頻編碼器關(guān)鍵編碼參數(shù)的選擇和優(yōu)化
孟雷雷,夏哲雷
X264編碼器采用一系列允許用戶選擇取值的編碼參數(shù),如何為可定制編碼參數(shù)選擇合適取值,是最大限度發(fā)揮X264編碼器性能的關(guān)鍵。選定對編碼性能影響顯著的編碼參數(shù),根據(jù)性能變化靈敏度建立顯性編碼參數(shù)離散化候選取值列表;基于編碼參數(shù)候選取值之間單位復(fù)雜度的率-失真性能變化,提出了性能提升效率最大化的參數(shù)取值選擇方法。實(shí)驗(yàn)結(jié)果表明,該方法配置的X264編碼器能獲得比默認(rèn)配置更高的率-失真-復(fù)雜度性能。
編碼參數(shù);復(fù)雜度;率-失真性能;性能提升效率
(中國計(jì)量學(xué)院信息工程學(xué)院,浙江杭州310018)
【本文獻(xiàn)信息】孟雷雷,夏哲雷.X264視頻編碼器關(guān)鍵編碼參數(shù)的選擇和優(yōu)化[J].電視技術(shù),2015,39(10).
H.264/AVC視頻編碼標(biāo)準(zhǔn)采用了許多不同于以往標(biāo)準(zhǔn)的先進(jìn)技術(shù),在編碼效率和性能大幅度提高的同時(shí),增加了編碼復(fù)雜度。如何權(quán)衡率-失真-復(fù)雜度(R-D-C)的約束,滿足不同應(yīng)用需求,成為視頻編碼技術(shù)研究的一個(gè)重要方向[1]。Li等人提出將R-D-C映射到三維空間,通過計(jì)算曲面距離度量R-D-C性能[2]。已有的一些視頻編碼優(yōu)化研究主要針對視頻編碼算法,并未考慮編碼器自身特性。
X264是目前工業(yè)界廣泛使用的H.264/AVC編碼器,它采用大量編碼參數(shù),這些參數(shù)取值組合達(dá)幾百萬之多。不同取值組合影響編碼器R-D-C性能,使得視頻編碼具有很大優(yōu)化空間。如何在兼顧靈敏度和區(qū)分度前提下,為關(guān)鍵編碼參數(shù)選擇合適的離散化候選取值;基于候選取值,如何在R-D-C約束下,為關(guān)鍵編碼參數(shù)選擇合適的取值,將是視頻編碼優(yōu)化過程亟待解決的難題。針對以上問題,本文給出關(guān)鍵編碼參數(shù)候選取值設(shè)定與取值選擇的方法,同時(shí)提供了實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)數(shù)據(jù)顯示了本文方法的有效性。
1.1顯性編碼參數(shù)選定
在H.264/AVC視頻編碼標(biāo)準(zhǔn)中,根據(jù)涉及的編碼技術(shù)在編碼流程中的作用,可以將未規(guī)定具體實(shí)現(xiàn)方案,允許用戶根據(jù)應(yīng)用需求進(jìn)行定制的模塊歸納為:視頻預(yù)處理、運(yùn)動估計(jì)、碼率控制、模式選擇4個(gè)典型模塊,這些模塊中主要編碼參數(shù)包括:bframes參數(shù)設(shè)定最大并行B幀數(shù);ref參數(shù)控制參考幀數(shù)目[3];keyint參數(shù)設(shè)定輸出文件最大關(guān)鍵幀間隔;me參數(shù)設(shè)定全像素運(yùn)動估計(jì)方法;merange參數(shù)設(shè)定運(yùn)動搜尋最大范圍;subme參數(shù)設(shè)定子像素運(yùn)動估計(jì)方法;aq-mode參數(shù)設(shè)定自適應(yīng)量化模式;mbtree參數(shù)控制宏塊樹開關(guān);lookahead參數(shù)設(shè)定mbtree碼率控制使用幀數(shù);partitions參數(shù)控制宏塊分割模式等等。針對重要編碼參數(shù),定量測試獲取不同取值率失真(R-D)曲線,圖1給出了部分編碼參數(shù)實(shí)驗(yàn)結(jié)果,圖中不同曲線代表編碼參數(shù)不同取值。
圖1 編碼參數(shù)不同取值PSNR曲線
一定編碼碼率(R)對應(yīng)的峰值信噪比(PSNR)體現(xiàn)了編碼參數(shù)不同取值R-D性能[4]。圖1中subme與keyint參數(shù)不同取值PSNR相差4 dB以上,ref、bframes參數(shù)不同取值PSNR相差達(dá)0.5 dB左右。通常情況下,當(dāng)PSNR改變小于0.1 dB,R-D性能變化并不顯著。本文將不同取值PSNR相差0.1 dB以上的參數(shù)設(shè)定為顯性編碼參數(shù)?;跍y試結(jié)果得出,subme,bframes,ref,me,keyint,merange參數(shù)不同取值PSNR相差均大于0.1 dB,作為本文關(guān)注的顯性編碼參數(shù)。
1.2離散化候選取值
根據(jù)取值方式不同,本文將編碼參數(shù)分為兩類:離散取值參數(shù)和連續(xù)取值參數(shù)。一些編碼參數(shù)規(guī)定有限取值,它們可供選取的模式特定如subme、aq-mode參數(shù),這類參數(shù)定義為離散取值參數(shù)。由參數(shù)不同取值R-D性能分析可知,subme參數(shù)0~9取值、me參數(shù)dia、hex、umh、esa、tesa取值、bframes參數(shù)0~3取值、ref參數(shù)1~4取值均對編碼性能產(chǎn)生一定影響,建立離散取值參數(shù)的候選取值如表1所示。一些編碼參數(shù)沒有限定選項(xiàng),它們的取值在一定范圍內(nèi)由編碼器自行設(shè)置如keyint、merange參數(shù),這類參數(shù)定義為連續(xù)取值參數(shù)。考慮性能變化的靈敏度和區(qū)分度,本文引用非線性取值方法為連續(xù)取值參數(shù)設(shè)定候選取值。
1)獲取參數(shù)不同取值失真曲線,進(jìn)行區(qū)域分割如圖2所示,Num表示參數(shù)取值。
表1 顯性編碼參數(shù)候選取值
圖2 keyint參數(shù)失真曲線區(qū)域分割
2)在性能變化突出區(qū)域(實(shí)線箭頭)進(jìn)行集中式等間隔取值,keyint參數(shù)取40、70、100,merange參數(shù)取4、8、16;在性能變化平緩區(qū)域(虛線箭頭)進(jìn)行疏散遞增式間隔取值,keyint參數(shù)取150、250,merange參數(shù)取24、40、64。表1中列出顯性編碼參數(shù)候選取值,表中括號內(nèi)為參數(shù)取值對應(yīng)索引值,文中將使用索引值表示參數(shù)取值。
2.1率-失真-復(fù)雜度表示方法
率-失真-復(fù)雜度性能評價(jià)對于視頻編碼算法優(yōu)化極為重要[6],影響率-失真因素有:失真度和編碼碼率。本文選用視頻信號均方誤差MSE度量失真,定義失真度為式中:a表示固定值,一般8 bit彩色視頻圖像信號峰密度值為256,本文采用二分之一此值表示a;b為與D的線性關(guān)系系數(shù),基于不同視頻序列測試得出b=11.19。
本文采用離線測試方式,即并不要求編碼過程中實(shí)時(shí)獲取率-失真性能,在編碼結(jié)束后進(jìn)行R-D曲線積分,采用積分面積表示率-失真性能
式中:R為平均每個(gè)像素點(diǎn)的碼率;R1、R2為目標(biāo)碼率邊界條件;D(R)為R-D關(guān)系曲線。
復(fù)雜度分為空間復(fù)雜度和時(shí)間復(fù)雜度,空間復(fù)雜度是指程序運(yùn)行所占用的內(nèi)存空間;時(shí)間復(fù)雜度是程序運(yùn)行整個(gè)過程需要的時(shí)間。視頻編碼復(fù)雜度(C)主要指時(shí)間復(fù)雜度。本文采用Intel并行開發(fā)程序運(yùn)行組件Intel Vtune Amplifier XE 2011獲取編碼復(fù)雜度,單位為秒(s)。
2.2參數(shù)取值選擇依據(jù)
顯性編碼參數(shù)取值改變時(shí),變化的取值不同,導(dǎo)致相應(yīng)單位復(fù)雜度的率-失真性能(J/C)不同。根據(jù)此特性本文采用性能提升效率,即編碼參數(shù)相鄰取值之間,單位復(fù)雜度的率-失真性能變化(ΔJ/ΔC)表示編碼參數(shù)取值變化對J-C性能的影響程度,ΔJ/ΔC的計(jì)算公式為
式中:{J1,J2,J3,…,Ji}與{C1,C2,C3,…,Ci}分別為相應(yīng)候選取值的率-失真性能和復(fù)雜度,Ji-Ji-1為相鄰取值的率-失真性能差,Ci-Ci-1為相鄰取值的時(shí)間差。ΔJ/ΔC越大,編碼器性能提升效率越高,以ΔJ/ΔC作為參數(shù)取值選擇依據(jù),進(jìn)行參數(shù)優(yōu)化配置。
2.3參數(shù)取值選擇方法
在一定C或J約束條件內(nèi),顯性編碼參數(shù)可以有多種取值組合。本文在顯性編碼參數(shù)候選取值J-C性能測試基礎(chǔ)上,提出性能提升效率最大化參數(shù)取值選擇方法,實(shí)現(xiàn)步驟如下:
步驟1,基于不同視頻測試序列實(shí)驗(yàn),獲取顯性編碼參數(shù)全部候選取值J、C、ΔJ/ΔC數(shù)據(jù);
步驟2,確立C或J約束條件;
步驟3,參考步驟1中候選取值J、C數(shù)據(jù),根據(jù)步驟2中約束條件選定符合要求的顯性編碼參數(shù)有效取值;
步驟4,以ΔJ/ΔC為依據(jù),為subme、bframes、ref、me、keyint參數(shù)選定性能提升效率最高的取值;
步驟5,考慮參數(shù)之間相關(guān)性,在me參數(shù)選取結(jié)果基礎(chǔ)上,以ΔJ/ΔC為依據(jù)選擇merange參數(shù)取值,完成顯性編碼參數(shù)優(yōu)化配置。
本文采用離線測試建模方法,此方法對測試序列樣本要求較高。采用相同分辨率、不同內(nèi)容的序列接連成新序列樣本進(jìn)行測試,分辨率為352×288;R分別取100,200,300,400,500,單位為kbit/s;幀率為25 f/s(幀/秒)。圖3給出顯性編碼參數(shù)候選取值J-C數(shù)據(jù),圖中標(biāo)記為參數(shù)不同取值。顯性編碼參數(shù)并非均獨(dú)立地對視頻編碼產(chǎn)生作用,參數(shù)me與merange具有一定相關(guān)性。針對me參數(shù)不同取值,merange參數(shù)候選取值J-C數(shù)據(jù)已在圖3中給出。結(jié)果顯示編碼參數(shù)取值改變時(shí),變化取值不同,J與C變化程度不同。
顯性編碼參數(shù)相鄰取值之間ΔJ/ΔC數(shù)據(jù)如表2所示,表中“→”表示編碼參數(shù)取值變化過程,“-”表示參數(shù)無相應(yīng)取值,表中括號內(nèi)為不同me參數(shù)取值。
圖3 顯性編碼參數(shù)候選取值J-C性能結(jié)果圖
表2 顯性編碼參數(shù)相鄰取值之間ΔJ/ΔC
為了驗(yàn)證本文提出的參數(shù)取值選擇方法的有效性,對比默認(rèn)配置(default)與采用本文方法(new)配置的X264編碼器,兩種不同配置的J、C以及單位復(fù)雜度的率-失真性能數(shù)據(jù)如表3所示,表中Δ=新參數(shù)配置-默認(rèn)配置,括號內(nèi)為相應(yīng)百分比。default配置中顯性編碼參數(shù)取值為:subme=7,ref=3,bframes=3,me=hex,keyint=250,merange=16。
表3 新參數(shù)配置與默認(rèn)配置J-C數(shù)據(jù)對比
由表3中數(shù)據(jù)得出,采用本文方法選擇的參數(shù)取值組合與默認(rèn)配置相比,在率-失真性能損失較小情況下,降低了編碼復(fù)雜度,單位復(fù)雜度的率-失真性能提升達(dá)8%。由此說明本文參數(shù)取值選擇方法在一定程度上提高了J-C性能。
本文對大量編碼參數(shù)進(jìn)行研究,選取對性能影響顯著的編碼參數(shù)。引用非線性取值方法,設(shè)定顯性編碼參數(shù)離散化候選取值,以確保候選取值的靈敏度和區(qū)分度?;诖罅侩x線測試,分析顯性編碼參數(shù)候選取值J-C特性,建立ΔJ/ΔC數(shù)據(jù)列表,提出了以ΔJ/ΔC為依據(jù)進(jìn)行參數(shù)取值選擇的方法。該方法能夠從參數(shù)候選取值中配置出性能提升效率最高的參數(shù)取值組合,達(dá)到了視頻編碼優(yōu)化目的。
[1]LI Xiang,WIEN M,OHM J R.Rate-complexity-distortion optimization for hybrid video coding[J].IEEE Trans.Circuits Systems for Video Technology,2011,7(21):957-90.
[2]LI Xiang,WIEN M,OHM J R.Rate-complexity-distortion evaluation for hybrid video coding[C]//Proc.2010 IEEE International Conference on Multimedia and Expo.Suntec City:IEEE Press,2010:685-690.
[3]VANAM R,RISKIN E A,LADNER R E.H.264/MPEG-4 AVC encoder parameter selection algorithms for complexity distortion tradeoff[C]//Proc.Data Compression Conference.[S.l.]:IEEE Press,2009:372-381.
[4]祝建英,夏哲雷,殷海兵.基于神經(jīng)網(wǎng)絡(luò)的視頻編碼量化參數(shù)選擇算法[J].電視技術(shù),2012,36(19):40-43.
[5]LI Su,YAN Lu,F(xiàn)ENG Wu,et al.Complexity-constrained H.264 video encoding[J].IEEE Trans.Circuits Syst.Video Technol,2009,4(19):1-15.
[6]VANNE J,VIITANEN M.Comparative rate-distortion-complexity analysis of HEVC and AVC video codecs[J].IEEE Circuits and Systems Society,2012,22(12):1885-1898.
Selection and Optimization of Dominant Encoding Parameters in X264
MENG Leilei,XIA Zhelei
(College of Information Engineering,China Jiliang University,Hangzhou 310018,China)
X264 encoder contains a series of encoding parameters,which are allowed user to choose value for them. ThekeytomaximizeX264encoderperformanceishowtoselectappropriatevalueforcustomizablecoding parameters.The encoding parameters affect performance significantly are designated in this paper.According to the sensitivity of performance changes,the candidate values list of dominant encoding parameters is established.Based on the rate-distortion performance variation of unit complexity,the selection method of parameter value to maximize performance boost efficiency is proposed.The experiment results show that configure the X264 encoder with this method can obtain higher rate-distortion-complexity than the default preset.
encoding parameters;complexity;rate-distortion performance;performance boost efficiency
TN919.8
A
10.16280/j.videoe.2015.10.006
孟雷雷(1990—),女,碩士生,主要研究方向?yàn)镠.264編碼參數(shù)算法優(yōu)化;
時(shí)雯
2014-08-05
浙江省自然科學(xué)基金項(xiàng)目(LY12F01011)
夏哲雷(1957—),碩士生導(dǎo)師,主要研究方向?yàn)閿?shù)字圖像處理、電子測量技術(shù)、無線移動通信技術(shù)。