孟雷雷,夏哲雷
(中國計量學院信息工程學院,浙江杭州310018)
X264視頻編碼器關鍵編碼參數的選擇和優化
孟雷雷,夏哲雷
X264編碼器采用一系列允許用戶選擇取值的編碼參數,如何為可定制編碼參數選擇合適取值,是最大限度發揮X264編碼器性能的關鍵。選定對編碼性能影響顯著的編碼參數,根據性能變化靈敏度建立顯性編碼參數離散化候選取值列表;基于編碼參數候選取值之間單位復雜度的率-失真性能變化,提出了性能提升效率最大化的參數取值選擇方法。實驗結果表明,該方法配置的X264編碼器能獲得比默認配置更高的率-失真-復雜度性能。
編碼參數;復雜度;率-失真性能;性能提升效率
(中國計量學院信息工程學院,浙江杭州310018)
【本文獻信息】孟雷雷,夏哲雷.X264視頻編碼器關鍵編碼參數的選擇和優化[J].電視技術,2015,39(10).
H.264/AVC視頻編碼標準采用了許多不同于以往標準的先進技術,在編碼效率和性能大幅度提高的同時,增加了編碼復雜度。如何權衡率-失真-復雜度(R-D-C)的約束,滿足不同應用需求,成為視頻編碼技術研究的一個重要方向[1]。Li等人提出將R-D-C映射到三維空間,通過計算曲面距離度量R-D-C性能[2]。已有的一些視頻編碼優化研究主要針對視頻編碼算法,并未考慮編碼器自身特性。
X264是目前工業界廣泛使用的H.264/AVC編碼器,它采用大量編碼參數,這些參數取值組合達幾百萬之多。不同取值組合影響編碼器R-D-C性能,使得視頻編碼具有很大優化空間。如何在兼顧靈敏度和區分度前提下,為關鍵編碼參數選擇合適的離散化候選取值;基于候選取值,如何在R-D-C約束下,為關鍵編碼參數選擇合適的取值,將是視頻編碼優化過程亟待解決的難題。針對以上問題,本文給出關鍵編碼參數候選取值設定與取值選擇的方法,同時提供了實驗結果,實驗數據顯示了本文方法的有效性。
1.1顯性編碼參數選定
在H.264/AVC視頻編碼標準中,根據涉及的編碼技術在編碼流程中的作用,可以將未規定具體實現方案,允許用戶根據應用需求進行定制的模塊歸納為:視頻預處理、運動估計、碼率控制、模式選擇4個典型模塊,這些模塊中主要編碼參數包括:bframes參數設定最大并行B幀數;ref參數控制參考幀數目[3];keyint參數設定輸出文件最大關鍵幀間隔;me參數設定全像素運動估計方法;merange參數設定運動搜尋最大范圍;subme參數設定子像素運動估計方法;aq-mode參數設定自適應量化模式;mbtree參數控制宏塊樹開關;lookahead參數設定mbtree碼率控制使用幀數;partitions參數控制宏塊分割模式等等。針對重要編碼參數,定量測試獲取不同取值率失真(R-D)曲線,圖1給出了部分編碼參數實驗結果,圖中不同曲線代表編碼參數不同取值。

圖1 編碼參數不同取值PSNR曲線
一定編碼碼率(R)對應的峰值信噪比(PSNR)體現了編碼參數不同取值R-D性能[4]。圖1中subme與keyint參數不同取值PSNR相差4 dB以上,ref、bframes參數不同取值PSNR相差達0.5 dB左右。通常情況下,當PSNR改變小于0.1 dB,R-D性能變化并不顯著。本文將不同取值PSNR相差0.1 dB以上的參數設定為顯性編碼參數。基于測試結果得出,subme,bframes,ref,me,keyint,merange參數不同取值PSNR相差均大于0.1 dB,作為本文關注的顯性編碼參數。
1.2離散化候選取值
根據取值方式不同,本文將編碼參數分為兩類:離散取值參數和連續取值參數。一些編碼參數規定有限取值,它們可供選取的模式特定如subme、aq-mode參數,這類參數定義為離散取值參數。由參數不同取值R-D性能分析可知,subme參數0~9取值、me參數dia、hex、umh、esa、tesa取值、bframes參數0~3取值、ref參數1~4取值均對編碼性能產生一定影響,建立離散取值參數的候選取值如表1所示。一些編碼參數沒有限定選項,它們的取值在一定范圍內由編碼器自行設置如keyint、merange參數,這類參數定義為連續取值參數。考慮性能變化的靈敏度和區分度,本文引用非線性取值方法為連續取值參數設定候選取值。
1)獲取參數不同取值失真曲線,進行區域分割如圖2所示,Num表示參數取值。

表1 顯性編碼參數候選取值

圖2 keyint參數失真曲線區域分割
2)在性能變化突出區域(實線箭頭)進行集中式等間隔取值,keyint參數取40、70、100,merange參數取4、8、16;在性能變化平緩區域(虛線箭頭)進行疏散遞增式間隔取值,keyint參數取150、250,merange參數取24、40、64。表1中列出顯性編碼參數候選取值,表中括號內為參數取值對應索引值,文中將使用索引值表示參數取值。
2.1率-失真-復雜度表示方法
率-失真-復雜度性能評價對于視頻編碼算法優化極為重要[6],影響率-失真因素有:失真度和編碼碼率。本文選用視頻信號均方誤差MSE度量失真,定義失真度為式中:a表示固定值,一般8 bit彩色視頻圖像信號峰密度值為256,本文采用二分之一此值表示a;b為與D的線性關系系數,基于不同視頻序列測試得出b=11.19。
本文采用離線測試方式,即并不要求編碼過程中實時獲取率-失真性能,在編碼結束后進行R-D曲線積分,采用積分面積表示率-失真性能

式中:R為平均每個像素點的碼率;R1、R2為目標碼率邊界條件;D(R)為R-D關系曲線。
復雜度分為空間復雜度和時間復雜度,空間復雜度是指程序運行所占用的內存空間;時間復雜度是程序運行整個過程需要的時間。視頻編碼復雜度(C)主要指時間復雜度。本文采用Intel并行開發程序運行組件Intel Vtune Amplifier XE 2011獲取編碼復雜度,單位為秒(s)。
2.2參數取值選擇依據
顯性編碼參數取值改變時,變化的取值不同,導致相應單位復雜度的率-失真性能(J/C)不同。根據此特性本文采用性能提升效率,即編碼參數相鄰取值之間,單位復雜度的率-失真性能變化(ΔJ/ΔC)表示編碼參數取值變化對J-C性能的影響程度,ΔJ/ΔC的計算公式為

式中:{J1,J2,J3,…,Ji}與{C1,C2,C3,…,Ci}分別為相應候選取值的率-失真性能和復雜度,Ji-Ji-1為相鄰取值的率-失真性能差,Ci-Ci-1為相鄰取值的時間差。ΔJ/ΔC越大,編碼器性能提升效率越高,以ΔJ/ΔC作為參數取值選擇依據,進行參數優化配置。
2.3參數取值選擇方法
在一定C或J約束條件內,顯性編碼參數可以有多種取值組合。本文在顯性編碼參數候選取值J-C性能測試基礎上,提出性能提升效率最大化參數取值選擇方法,實現步驟如下:
步驟1,基于不同視頻測試序列實驗,獲取顯性編碼參數全部候選取值J、C、ΔJ/ΔC數據;
步驟2,確立C或J約束條件;
步驟3,參考步驟1中候選取值J、C數據,根據步驟2中約束條件選定符合要求的顯性編碼參數有效取值;
步驟4,以ΔJ/ΔC為依據,為subme、bframes、ref、me、keyint參數選定性能提升效率最高的取值;
步驟5,考慮參數之間相關性,在me參數選取結果基礎上,以ΔJ/ΔC為依據選擇merange參數取值,完成顯性編碼參數優化配置。
本文采用離線測試建模方法,此方法對測試序列樣本要求較高。采用相同分辨率、不同內容的序列接連成新序列樣本進行測試,分辨率為352×288;R分別取100,200,300,400,500,單位為kbit/s;幀率為25 f/s(幀/秒)。圖3給出顯性編碼參數候選取值J-C數據,圖中標記為參數不同取值。顯性編碼參數并非均獨立地對視頻編碼產生作用,參數me與merange具有一定相關性。針對me參數不同取值,merange參數候選取值J-C數據已在圖3中給出。結果顯示編碼參數取值改變時,變化取值不同,J與C變化程度不同。
顯性編碼參數相鄰取值之間ΔJ/ΔC數據如表2所示,表中“→”表示編碼參數取值變化過程,“-”表示參數無相應取值,表中括號內為不同me參數取值。

圖3 顯性編碼參數候選取值J-C性能結果圖

表2 顯性編碼參數相鄰取值之間ΔJ/ΔC
為了驗證本文提出的參數取值選擇方法的有效性,對比默認配置(default)與采用本文方法(new)配置的X264編碼器,兩種不同配置的J、C以及單位復雜度的率-失真性能數據如表3所示,表中Δ=新參數配置-默認配置,括號內為相應百分比。default配置中顯性編碼參數取值為:subme=7,ref=3,bframes=3,me=hex,keyint=250,merange=16。

表3 新參數配置與默認配置J-C數據對比
由表3中數據得出,采用本文方法選擇的參數取值組合與默認配置相比,在率-失真性能損失較小情況下,降低了編碼復雜度,單位復雜度的率-失真性能提升達8%。由此說明本文參數取值選擇方法在一定程度上提高了J-C性能。
本文對大量編碼參數進行研究,選取對性能影響顯著的編碼參數。引用非線性取值方法,設定顯性編碼參數離散化候選取值,以確保候選取值的靈敏度和區分度。基于大量離線測試,分析顯性編碼參數候選取值J-C特性,建立ΔJ/ΔC數據列表,提出了以ΔJ/ΔC為依據進行參數取值選擇的方法。該方法能夠從參數候選取值中配置出性能提升效率最高的參數取值組合,達到了視頻編碼優化目的。
[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].電視技術,2012,36(19):40-43.
[5]LI Su,YAN Lu,FENG 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—),女,碩士生,主要研究方向為H.264編碼參數算法優化;
時雯
2014-08-05
浙江省自然科學基金項目(LY12F01011)
夏哲雷(1957—),碩士生導師,主要研究方向為數字圖像處理、電子測量技術、無線移動通信技術。