《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 顯示光電 > 設(shè)計應(yīng)用 > H.264高清視頻編碼器的設(shè)計與實(shí)現(xiàn)
H.264高清視頻編碼器的設(shè)計與實(shí)現(xiàn)
2015年微型機(jī)與應(yīng)用第6期
李 飛,,卿粼波,滕奇志,,何小海
(四川大學(xué) 電子信息學(xué)院,,四川 成都 610065)
摘要: 針對高清視頻龐大的數(shù)據(jù)量以及H.264編碼器復(fù)雜的編碼結(jié)構(gòu)引起的低編碼速率的問題,對影響算法編碼速率的原因進(jìn)行了深入分析,,并設(shè)計了高效的多核并行方案,,進(jìn)而充分利用TMS320C6678的多核性能,并結(jié)合TMS320C6678的運(yùn)算存儲特性,,對H.264編碼器進(jìn)行了多方面的優(yōu)化,,最終使H.264編碼器對720P高清視頻序列編碼速率從1.2 fps增加到27.2 fps,更加貼近于實(shí)際應(yīng)用,。
Abstract:
Key words :

  摘  要: 針對高清視頻龐大的數(shù)據(jù)量以及H.264編碼器復(fù)雜的編碼結(jié)構(gòu)引起的低編碼速率的問題,,對影響算法編碼速率的原因進(jìn)行了深入分析,并設(shè)計了高效的多核并行方案,,進(jìn)而充分利用TMS320C6678的多核性能,,并結(jié)合TMS320C6678的運(yùn)算存儲特性,對H.264編碼器進(jìn)行了多方面的優(yōu)化,,最終使H.264編碼器對720P高清視頻序列編碼速率從1.2 fps增加到27.2 fps,,更加貼近于實(shí)際應(yīng)用,。

  關(guān)鍵詞: H.264編碼器;TMS320C6678,;高清視頻

0 引言

  H.264標(biāo)準(zhǔn)吸取以往標(biāo)準(zhǔn)中的優(yōu)點(diǎn),,編碼效率與H.263+以及MPEG-4 SP相比最多可節(jié)省50%的碼率,存儲需求大大降低,。正是由于H.264強(qiáng)大的功能及其巨大的市場潛力,,國內(nèi)外不少公司開始對H.264的編解碼應(yīng)用進(jìn)行研究并有產(chǎn)品紛紛面世。目前國內(nèi)也紛紛對   H.264標(biāo)準(zhǔn)進(jìn)行研究,,使用專用H.264編解碼芯片推出了許多產(chǎn)品,。編碼芯片速度很快,但是性能固定,,無法根據(jù)需求進(jìn)行性能的改進(jìn),,另一方面新一代的HEVC編碼算法性能更為優(yōu)越,但是由于其技術(shù)應(yīng)用尚不成熟,,H.264仍然擁有巨大的應(yīng)用潛力,,因而在DSP上實(shí)現(xiàn)H.264編碼器具有重大意義。

1 H.264復(fù)雜度分析

  H.264標(biāo)準(zhǔn)相比于以往壓縮標(biāo)準(zhǔn)有以下主要優(yōu)點(diǎn)[1]:

 ?。?)在相同重建圖像質(zhì)量下,,H.264相比H.263+和MPEG-4節(jié)約50%的碼率;

 ?。?)H.264具有較強(qiáng)的抗誤碼能力,,可以在惡劣的無線環(huán)境中運(yùn)用;

 ?。?)H.264采用簡潔的分層模式,,具有更友好的特性。

  本文采用H.264編碼器的可靠性能測試結(jié)果如表1所示,。

004.jpg

  為了對編碼器進(jìn)行更具針對性的優(yōu)化,,本文對編碼器內(nèi)部主要算法部分進(jìn)行了時間統(tǒng)計,結(jié)果如圖1所示,。

001.jpg

2 編碼器在DSP上的實(shí)現(xiàn)

  2.1 DSP的多核并行處理方案

  為了充分發(fā)揮TMS320C6678的性能,,需要設(shè)計一個高效的多核并行處理方案[2]。核間通信(IPC)的方式一般有兩種:MessageQ消息機(jī)制和Notify中斷機(jī)制,。其中中斷機(jī)制是一種不可屏蔽的中斷通信機(jī)制,,通信快速便捷,因而本文采用Notify中斷方式進(jìn)行核間通信,。多核之間實(shí)現(xiàn)可靠通信后,,就需要為8個核的并行運(yùn)算設(shè)計一種高效的拓?fù)浣Y(jié)構(gòu),通常有Data-Flow模式和Master-Slave模式兩種常用的核間通信拓?fù)浣Y(jié)構(gòu)。

 ?。?)Data-Flow模式:通信控制邏輯簡單,,適合單向通信,多核利用率不穩(wěn)定,,取決于各個核流水工作量均衡度,,適用于能將算法分成多個獨(dú)立的相等工作量任務(wù)的情況。

 ?。?)Master-Slave模式:通信控制邏輯相對復(fù)雜,,多核利用率較高,程序開發(fā)相對簡單[3],。

  根據(jù)圖1中時間測試可知,,H.264編碼器中各任務(wù)工作時間很不均衡,因此本文采用Master-Slave模式,。

001.jpg

  2.2 多核算法流程

  在Master-Slave模式下,,核0充當(dāng)邏輯控制器及數(shù)據(jù)流收發(fā)器,其他核則專于壓縮算法處理,。當(dāng)核0接收到視頻幀時,將720P視頻幀盡可能均勻地分成7個視頻片分配到各核的接收緩沖區(qū)中,,核1~5的視頻片為106×1 280,,核6~7的視頻片為90×1 280,各核在編碼完后將數(shù)據(jù)流存放在發(fā)送緩沖區(qū)中,。為充分利用,、提高多核并行效率,本文為每個運(yùn)算核提供了兩組數(shù)據(jù)緩沖區(qū),,形成一個乒乓緩沖存儲結(jié)構(gòu),,用以節(jié)約運(yùn)算核對核0的等待時間,使各個核運(yùn)算基本保持全速運(yùn)行狀態(tài),,從而充分地利用多核并行處理能力,。

3 H.264編碼器的DSP優(yōu)化

  編碼器在DSP上的優(yōu)化依據(jù)是基于DSP硬件結(jié)構(gòu)上的特有操作,分為傳輸與運(yùn)算兩種操作,。傳輸優(yōu)化是DSP核,、EDMA控制器等主動模塊對不同存儲類型訪問性能優(yōu)化配置過程。本文采用的傳輸方面優(yōu)化有緩存優(yōu)化,、EDMA優(yōu)化,、數(shù)據(jù)存儲優(yōu)化;在運(yùn)算方面主要是針對C66x核的單指令多數(shù)據(jù)操作(SIMD)以及并行操作特性,,在編譯器,、C語言以及匯編語言層面上對編碼器進(jìn)行優(yōu)化。

  3.1 緩存(Cache)優(yōu)化

  C6678擁有兩級緩存結(jié)構(gòu),SYS/BIOS默認(rèn)將一級數(shù)據(jù)存儲(L1D)32 KB,、一級程序存儲(L1P)32 KB全部設(shè)置為緩存,,而本地二級存儲(LL2)則默認(rèn)全部為普通存儲,可用于存放一些關(guān)鍵數(shù)據(jù),。圖2是在一級緩存為32 KB大小的情況下通過測試得到二級存儲不同緩存化程度與平均編碼時間的關(guān)系圖[4],。

002.jpg

  由圖2可以看出,當(dāng)二級緩存大小超過1/8Cache程度時,,編碼時間基本保持不變,。考慮到資源寶貴,,LL2用來存放一些高速運(yùn)行的算法數(shù)據(jù)會表現(xiàn)出更好的性能,,本文將二級緩存設(shè)置為1/8Cache模式。

  3.2 數(shù)據(jù)存儲優(yōu)化

  數(shù)據(jù)存儲優(yōu)化是根據(jù)C6678對不同存儲資源訪問的不同速度而確定數(shù)據(jù)分配,,表2是DSP多核共享訪問DDR3和SL2的實(shí)驗(yàn)統(tǒng)計對比,。

005.jpg

  編碼過程中,全局變量所在的數(shù)據(jù)段為bss,,動態(tài)開辟的空間,、臨時變量以及中間保存結(jié)果所在的數(shù)據(jù)段為stack,還有全局?jǐn)?shù)組所在的段為far,,這部分訪問頻繁的數(shù)據(jù)則放在LL2上,;其他訪問較少的段,如text,、sysmem,、cio則統(tǒng)一放在DDR3上。

  3.3 EDMA優(yōu)化

  TMS320C6678共有3個EDMA管理器,,10個通道,。本文待壓縮視頻序列為720P,YUV420格式,,一幅圖像的大小為1.32 MB,,在任務(wù)分配過程中需要對圖像進(jìn)行拷貝。對于這種大數(shù)據(jù)量的復(fù)制過程,,EDMA比通過DSP核進(jìn)行復(fù)制具有相當(dāng)大的優(yōu)勢,,并且EDMA還可以完成非連續(xù)數(shù)據(jù)段的復(fù)制[5]。EDMA和DSP核的復(fù)制性能與復(fù)制數(shù)據(jù)量的關(guān)系測試對比如圖3所示,。

003.jpg

  3.4 匯編優(yōu)化

  匯編優(yōu)化是一種運(yùn)算型的優(yōu)化,,通過充分利用C66x核的SIMD特性以及運(yùn)算單元并行特性,從而減少運(yùn)算過程中所消耗的時間[6],。

  根據(jù)圖1中所示,,編碼時間主要集中在預(yù)測,、運(yùn)動估計、DCT,、量化等部分,,選擇各部分算法中的關(guān)鍵函數(shù)進(jìn)行匯編優(yōu)化[7],優(yōu)化結(jié)果如表3所示,。

006.jpg

  3.5 其他優(yōu)化

  除上述4種基于TMS320C6678特性的獨(dú)特優(yōu)化,,還可以進(jìn)行一些DSP中常用的普適優(yōu)化,這里只做簡單描述,。

 ?。?)-O優(yōu)化:-O優(yōu)化是編譯器對代碼優(yōu)化的級別,其中-O2深度優(yōu)化速度和減少代碼體積,,一般為推薦等級,,故本文選擇-O2優(yōu)化級別。

 ?。?)去雙重循環(huán)優(yōu)化:在文件級優(yōu)化的過程中,,編譯器對于單重循環(huán)可以進(jìn)行Pipeline優(yōu)化,當(dāng)遇到雙重循環(huán)時,,通過解開一層循環(huán),,優(yōu)化效率會得到很大提升[8]。

 ?。?)內(nèi)聯(lián)函數(shù)優(yōu)化:內(nèi)聯(lián)函數(shù)在調(diào)用處直接插入,,而不是調(diào)用,因而可以省略掉函數(shù)的調(diào)用開銷,,適合對頻繁調(diào)用的簡單函數(shù)如T264_sad_u_c()等進(jìn)行優(yōu)化。

4 測試結(jié)果

  4.1 測試環(huán)境

  本文編碼器測試環(huán)境如下:調(diào)試軟件環(huán)境CCS5.2.1,,測試用到的DSP硬件平臺為TMS320C6678,,編碼算法為H.264,量化參數(shù)Qp=30,,編碼結(jié)構(gòu)GOP為I幀:P幀=1:5,,測試視頻序列為官方KristenAndSara.yuv、shields_ter.yuv兩個序列,,分辨率為720P,,為更方便準(zhǔn)確地計算平均編碼速率,測試幀數(shù)設(shè)定為300幀,。

  4.2 測試結(jié)果

  以KristenAndSara.yuv的測試為記錄,,編碼器在優(yōu)化過程中的各項(xiàng)指標(biāo)整體記錄如表4所示。

007.jpg

  由表4可以看出,,表中一系列優(yōu)化以后,,編碼圖像質(zhì)量并沒有什么影響,,編碼速度得到了極大的提升,其中多核優(yōu)化的作用非常明顯,,說明本文的多核結(jié)構(gòu)效率是很高的,。

5 結(jié)論

  H.264具有相當(dāng)優(yōu)越的壓縮性能,面對其運(yùn)算復(fù)雜性與龐大運(yùn)算量的難題,,本文結(jié)合硬件特點(diǎn),,對編碼器進(jìn)行一系列優(yōu)化,從而使編碼器實(shí)現(xiàn)對高清視頻序列實(shí)時編碼,。目前對DSP編碼器的研究很熱,,本文提供的C6678多核方案、基于C6678硬件特點(diǎn)的優(yōu)化以及720P實(shí)時高清視頻H.264編碼器都是很有意義的,。

參考文獻(xiàn)

  [1] 梁佩珊.H.264編碼器算法優(yōu)化與設(shè)計[D].杭州:浙江大學(xué),,2006.

  [2] 曹折波,李青.多核處理器并行編程模型的研究與設(shè)計[J].計算機(jī)工程與設(shè)計,,2010,,31(13):2999-3002.

  [3] 吳灝,肖吉陽,,范紅旗,,等.TMS320C6678多核DSP的核間通信方法[J].電子技術(shù)應(yīng)用,2012,,38(9):2-3.

  [4] 王熹微,,唐昆,崔慧娟.基于DM642的視頻編碼Cache優(yōu)化策略[J].微計算機(jī)信息,,2005,,21(09Z):84-86.

  [5] PESCADOR F, MATURANA G,, GARRIDO M J,, et al. An H. 264 video decoder based on a latest generation DSP[J].  IEEE Transactions on Consumer Electronics, 2009,,55(1):205-212.

  [6] 鄭回青,,林嘉宇,張鑌.基于TMS320C64xDSP的匯編優(yōu)化方法[J].微處理機(jī),,2010,,31(1):105-108.

  [7] 黃國玉,廖湘柏.基于DM642的x264源代碼的匯編優(yōu)化[J].南華大學(xué)學(xué)報(自然科學(xué)版),,2014,,28(1):74-76.

  [8] Su Bogong, Wang Jian,, ESGUERRA A. Source-level loop optimization for DSP code generation[C]. 1999 IEEE International Conference on Acoustics,, Speech,, and Signal Processing, 1999. Proceedings. 1999,,4:2155-2158.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。