基于DM642的X.264編碼器優(yōu)化
摘要:X.264編碼器注重實(shí)效性,在不明顯降低編碼性能的前提下,降低編碼的計(jì)算復(fù)雜度,摒棄了JM中一些耗時(shí)相對(duì)較大但對(duì)性能的提升影響很小的模塊,因此嵌入式系統(tǒng)中常選用X.264編碼器。移植到DSP平臺(tái)的X.264編碼器,編碼效率不佳,平均只有0.7 f/s。為了能夠在DSP平臺(tái)上進(jìn)行高效率的鳊碼,采用了代碼優(yōu)化以及DM642優(yōu)化2種優(yōu)化方式來優(yōu)化移植到DM642平臺(tái)的X.264編碼器。對(duì)優(yōu)化過后的X.264編碼器在DM642平臺(tái)上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,優(yōu)化過后的X.264編碼器對(duì)CIF格式視頻序列的編碼時(shí)間大幅度的降低。
關(guān)鍵詞:X.264;DM642;軟件流水;函數(shù)合并;EDMA
0 引言
H.264標(biāo)準(zhǔn)的全稱為“H.264/MPEG-4 part 10”,是由ITU-T和ISO/IEC共同成立的聯(lián)合視頻組(Joint Video Team,JVT)制定的新標(biāo)準(zhǔn)。H.264依然采用預(yù)測(cè)結(jié)合變換的混合編碼方案,為了在相同的編碼框架下得到更高的視頻壓縮編碼性能和更廣泛的適用性,H.264標(biāo)準(zhǔn)引入了許多新技術(shù),如1/4,1/8像素精度的運(yùn)動(dòng)估計(jì)、多參考幀的幀間預(yù)測(cè)、幀內(nèi)預(yù)測(cè)、環(huán)路濾波和自適應(yīng)算術(shù)編碼等。H.264視頻編碼標(biāo)準(zhǔn)在編碼質(zhì)量和壓縮比上比原有的視頻編碼標(biāo)準(zhǔn)都有了明顯的提高。
在相同的視覺感知質(zhì)量上,編碼效率比之前的編碼方式提高了50%。H.264標(biāo)準(zhǔn)的編碼性能超越了以往所有的視頻編碼標(biāo)準(zhǔn),具有很好的應(yīng)用前景,大量的應(yīng)用于視頻壓縮和視頻監(jiān)控。
目前,H.264編解碼標(biāo)準(zhǔn)的研究主要分為算法研究和硬件實(shí)現(xiàn)兩大類,硬件實(shí)現(xiàn)的方案主要分為3種:
(1)基于PC平臺(tái)的方案。此方案為純軟件實(shí)現(xiàn)編解碼,利用MMX和SSE/SSE2等多媒體指令集來優(yōu)化程序,具有開發(fā)成本低和周期短等優(yōu)點(diǎn)。PC機(jī)的CPU體系結(jié)構(gòu)并不適合處理數(shù)字信號(hào),故CPU的有效利用率比較低。
(2)基于ASIC芯片的純硬件方案。此方案將視頻編解碼算法固化成硬件,具有集成度高和開發(fā)周期短等優(yōu)點(diǎn),但是專用型比較強(qiáng),產(chǎn)品不易升級(jí)。目前市場(chǎng)上已經(jīng)出現(xiàn)了H.264的編解碼芯片,如Fujitsu的MB86H51、Hisilcon的GOALTMHi3510和JVC公司的JCY0237 LSI等。
(3)基于DSP的軟硬件結(jié)合方案。此方案利用DSP芯片和其它外圍芯片來構(gòu)成處理系統(tǒng),具有開發(fā)靈活性高、處理能力強(qiáng)、開發(fā)周期低、功耗低和易升級(jí)等優(yōu)點(diǎn)。隨著DSP性價(jià)比的不斷提高,該方案已經(jīng)成為目前H.264編碼器硬件實(shí)現(xiàn)的理想方案。
H.264編解碼標(biāo)準(zhǔn)具有壓縮比高、適應(yīng)性廣、容錯(cuò)能力強(qiáng)和圖像恢復(fù)質(zhì)量高等特點(diǎn),在實(shí)時(shí)系統(tǒng)中具有很好的應(yīng)用前景。TMS320DM642是TI公司推出的一款針對(duì)視頻和圖像處理領(lǐng)域應(yīng)用的數(shù)字多媒體處理芯片,具有處理能力強(qiáng)和集成度高等特點(diǎn),是目前實(shí)現(xiàn)H.264視頻編碼器的理想芯片之一。很多國(guó)內(nèi)外公司都在開發(fā)或已經(jīng)開發(fā)出了基于DM642開發(fā)視頻監(jiān)控系統(tǒng)。
1 X.264編碼器移植
X.264是由法國(guó)巴黎中心學(xué)校的中心研究所于2004年6月發(fā)起,由許多視頻愛好者共同完成的項(xiàng)目,它注重實(shí)效性,在不明顯降低編碼性能的前提下,努力降低編碼的計(jì)算復(fù)雜度,摒棄了JM中一些耗時(shí)相對(duì)較大但對(duì)性能的提升影響很小的模塊,如多參考幀、幀間預(yù)測(cè)中不必要的塊模式、CABAC等。X.264編碼器在程序結(jié)構(gòu)上,利用了MMX/SSE/SSE2等基于X86構(gòu)架的多媒體硬件加速指令。需要將相關(guān)的X86指令屏蔽,對(duì)部分函數(shù)進(jìn)行精簡(jiǎn),使其結(jié)構(gòu)簡(jiǎn)單易于在DSP上執(zhí)行。簡(jiǎn)單移植過后的X.264編碼器,在DM642平臺(tái)上的編碼效率極低,表1為移植過后的X.264編碼器在DM642平臺(tái)上編碼結(jié)果。
由結(jié)果可以看出,移植完成后的X.264在DM642平臺(tái)上的編碼效率非常低,只能達(dá)到平均0.6 f/s的編碼速率,需要進(jìn)一步針對(duì)X.264編碼器和DM642的特性來優(yōu)化以提高編碼效率。
評(píng)論