《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于DM642的X.264編碼器優(yōu)化
基于DM642的X.264編碼器優(yōu)化
現(xiàn)代電子技術(shù)
魏 江,劉 迪 西北工業(yè)大學(xué)
摘要: 基于DM642的X.264編碼器優(yōu)化,摘要:X.264編碼器注重實效性,在不明顯降低編碼性能的前提下,降低編碼的計算復(fù)雜度,摒棄了JM中一些耗時相對較大但對性能的提升影響很小的模塊,因此嵌入式系統(tǒng)中常選用X.264編碼器。移植到DSP平臺的X.264編碼器
關(guān)鍵詞: DSP DM642 X.264編碼器
Abstract:
Key words :

摘要:X.264編碼器" title="X.264編碼器">X.264編碼器注重實效性,在不明顯降低編碼性能的前提下,降低編碼的計算復(fù)雜度,摒棄了JM中一些耗時相對較大但對性能的提升影響很小的模塊,因此嵌入式系統(tǒng)中常選用X.264編碼器。移植到DSP平臺的X.264編碼器,編碼效率不佳,平均只有0.7 f/s。為了能夠在DSP平臺上進行高效率的鳊碼,采用了代碼優(yōu)化以及DM642" title="DM642">DM642優(yōu)化2種優(yōu)化方式來優(yōu)化移植到DM642平臺的X.264編碼器。對優(yōu)化過后的X.264編碼器在DM642平臺上進行了實驗。實驗結(jié)果表明,優(yōu)化過后的X.264編碼器對CIF格式視頻序列的編碼時間大幅度的降低。
關(guān)鍵詞:X.264;DM642;軟件流水;函數(shù)合并;EDMA

0 引言
    H.264標準的全稱為“H.264/MPEG-4 part 10”,是由ITU-T和ISO/IEC共同成立的聯(lián)合視頻組(Joint Video Team,JVT)制定的新標準。H.264依然采用預(yù)測結(jié)合變換的混合編碼方案,為了在相同的編碼框架下得到更高的視頻壓縮編碼性能和更廣泛的適用性,H.264標準引入了許多新技術(shù),如1/4,1/8像素精度的運動估計、多參考幀的幀間預(yù)測、幀內(nèi)預(yù)測、環(huán)路濾波和自適應(yīng)算術(shù)編碼等。H.264視頻編碼標準在編碼質(zhì)量和壓縮比上比原有的視頻編碼標準都有了明顯的提高。
在相同的視覺感知質(zhì)量上,編碼效率比之前的編碼方式提高了50%。H.264標準的編碼性能超越了以往所有的視頻編碼標準,具有很好的應(yīng)用前景,大量的應(yīng)用于視頻壓縮和視頻監(jiān)控。
    目前,H.264編解碼標準的研究主要分為算法研究和硬件實現(xiàn)兩大類,硬件實現(xiàn)的方案主要分為3種:
    (1)基于PC平臺的方案。此方案為純軟件實現(xiàn)編解碼,利用MMX和SSE/SSE2等多媒體指令集來優(yōu)化程序,具有開發(fā)成本低和周期短等優(yōu)點。PC機的CPU體系結(jié)構(gòu)并不適合處理數(shù)字信號,故CPU的有效利用率比較低。
    (2)基于ASIC芯片的純硬件方案。此方案將視頻編解碼算法固化成硬件,具有集成度高和開發(fā)周期短等優(yōu)點,但是專用型比較強,產(chǎn)品不易升級。目前市場上已經(jīng)出現(xiàn)了H.264的編解碼芯片,如Fujitsu的MB86H51、Hisilcon的GOALTMHi3510和JVC公司的JCY0237 LSI等。
    (3)基于DSP的軟硬件結(jié)合方案。此方案利用DSP芯片和其它外圍芯片來構(gòu)成處理系統(tǒng),具有開發(fā)靈活性高、處理能力強、開發(fā)周期低、功耗低和易升級等優(yōu)點。隨著DSP性價比的不斷提高,該方案已經(jīng)成為目前H.264編碼器硬件實現(xiàn)的理想方案。
    H.264編解碼標準具有壓縮比高、適應(yīng)性廣、容錯能力強和圖像恢復(fù)質(zhì)量高等特點,在實時系統(tǒng)中具有很好的應(yīng)用前景。TMS320DM642是TI公司推出的一款針對視頻和圖像處理領(lǐng)域應(yīng)用的數(shù)字多媒體處理芯片,具有處理能力強和集成度高等特點,是目前實現(xiàn)H.264視頻編碼器的理想芯片之一。很多國內(nèi)外公司都在開發(fā)或已經(jīng)開發(fā)出了基于DM642開發(fā)視頻監(jiān)控系統(tǒng)。

1 X.264編碼器移植
    X.264是由法國巴黎中心學(xué)校的中心研究所于2004年6月發(fā)起,由許多視頻愛好者共同完成的項目,它注重實效性,在不明顯降低編碼性能的前提下,努力降低編碼的計算復(fù)雜度,摒棄了JM中一些耗時相對較大但對性能的提升影響很小的模塊,如多參考幀、幀間預(yù)測中不必要的塊模式、CABAC等。X.264編碼器在程序結(jié)構(gòu)上,利用了MMX/SSE/SSE2等基于X86構(gòu)架的多媒體硬件加速指令。需要將相關(guān)的X86指令屏蔽,對部分函數(shù)進行精簡,使其結(jié)構(gòu)簡單易于在DSP上執(zhí)行。簡單移植過后的X.264編碼器,在DM642平臺上的編碼效率極低,表1為移植過后的X.264編碼器在DM642平臺上編碼結(jié)果。

a.jpg


    由結(jié)果可以看出,移植完成后的X.264在DM642平臺上的編碼效率非常低,只能達到平均0.6 f/s的編碼速率,需要進一步針對X.264編碼器和DM642的特性來優(yōu)化以提高編碼效率。

2 X.264編碼器的優(yōu)化
2.1 編碼器參數(shù)設(shè)置
    X.264編碼器在VC下的優(yōu)化使用了一些平臺相關(guān)的硬件加速指令,所以在VC調(diào)試下的X.264編碼器參數(shù)在DSP平臺上執(zhí)行將對編碼速度產(chǎn)生很大的影響。在CCS中優(yōu)化X.264編碼器時,在不影響編碼質(zhì)量的情況下修改部分參數(shù)以提高編碼的速度。
    (1)關(guān)閉環(huán)路濾波:環(huán)路濾波器能使解碼圖像的主觀質(zhì)量有所提高,但環(huán)路濾波器只對提高壓縮效率做出很小的貢獻。如果采用環(huán)路濾波將降低1 ms的編碼時間。不使用環(huán)路濾波對圖像的解壓本身沒有太大影響,而DSP注重速率的情況下關(guān)閉環(huán)路濾波可以獲得更高的編碼速度。表2對有無環(huán)路濾波的編碼圖像的峰值信噪比進行了對比,從表中可以看出環(huán)路濾波對編碼的質(zhì)量影響有限。

b.jpg


    (2)對P幀使用半像素搜索,不采用1/4像素搜索。表3列出了半像素搜索與1/4像素搜索的時鐘周期對比圖。從表中可以看到,采用P幀半像素搜索方式對編碼速度提升30%以上,并且視覺上解壓出來的圖像沒有明顯失真。
    (3)對全像素塊運動預(yù)測搜索的方式,X.264默認為HEX(正六邊形搜索半徑為2),在對比測試了DIA(菱形搜索,半徑為1)和UMH(可變半徑六邊形搜索)后,對比了速率和峰值信噪比后,發(fā)現(xiàn)在峰值信噪比相差很小的情況下DIA搜索速率最快,本文選擇DIA作為運動預(yù)測搜索方式。表4給出3種方式的對比結(jié)果:

c.jpg


2.2 X.264代碼優(yōu)化
    X.264編碼器需要有效的利用DM642的特性,如軟件流水,芯片特性和指令集等,才能有效的提高X.264編碼器在DM642平臺的編碼效率。為了X.264能夠充分的利用起DM642的特性,需要結(jié)合DM642本身的特點對移植過后的X.264代碼進行優(yōu)化,才能夠提高X.264在DM642上執(zhí)行的效率。
    TI公司的DSP開發(fā)軟件CCS提供了功能非常強大的編譯器,編譯工具可以對代碼進行各種優(yōu)化,以提高代碼的執(zhí)行速度,減小代碼尺寸。這些優(yōu)化包括了簡化循環(huán)、軟件流水、語句和表達式的順序重排和分配變量到寄存器。利用CCS編譯器進行優(yōu)化后,仍然不能滿足視頻壓縮的需求,需要繼續(xù)對DM642上的X.264編碼器進行優(yōu)化。
    (1)內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)是指用函數(shù)本身來代替函數(shù)調(diào)用這一過程。當(dāng)調(diào)用內(nèi)聯(lián)函數(shù)時,C/C++源代碼把此函數(shù)插入到調(diào)用點,而不采用傳統(tǒng)的跳轉(zhuǎn)。將函數(shù)設(shè)定為內(nèi)聯(lián)函數(shù)后,可以去掉復(fù)雜的函數(shù)調(diào)用過程來提高函數(shù)的執(zhí)行效率,而付出的代價是增加了代碼所占用的空間。使用關(guān)鍵字inline定義內(nèi)聯(lián)函數(shù),在X.264編碼器中的預(yù)測部分對其中一個頻繁調(diào)用的函數(shù)設(shè)置為內(nèi)聯(lián)。代碼如下:
    static inline inI clip_uint8(int a)
    (2)restrict關(guān)鍵字。為了幫助編譯器確定存儲器相關(guān)性,可以使用關(guān)鍵字restrict來限定指針、引用或數(shù)組。使用restrict關(guān)鍵字是為了確保其限定的指針在聲明的范圍內(nèi),是指向特定對象的惟一指針。編譯器在讀取函數(shù)的指針,數(shù)據(jù)時,采取保守的辦法,認為它們是相關(guān)的。這時編譯出的代碼必須執(zhí)行完前次寫操作,才能開始下次讀取操作。加入restrict關(guān)鍵字后,編譯器將認為指針和數(shù)組沒有相關(guān)性,能夠并行提取數(shù)據(jù)。
    (3)軟件流水。軟件流水式編排循環(huán)指令是能夠使循環(huán)的多次迭代并行執(zhí)行的技術(shù)。編譯器總是力爭使用軟件流水技術(shù)。軟件流水是DSP的關(guān)鍵技術(shù),它利用的是算法中存在的指令并行性的特點,使一個循環(huán)的多次迭代同時進行。總地來說,當(dāng)使用編譯器優(yōu)化的情況下,代碼尺寸小,程序性能更優(yōu)。x.264代碼含有很多循環(huán)操作,故提高循環(huán)體指令的并行度使循環(huán)能夠軟件流水是提高編碼效率的有效途徑之一。
    (4)函數(shù)合并。函數(shù)調(diào)用的過程中,要執(zhí)行一些額外的寄存器。在編碼過程中DCT、量化、zigzag、IDCT和反量化函數(shù)調(diào)用都非常頻繁,但代碼段都很短,部分代碼只包含一個循環(huán)操作或者賦值操作。反復(fù)的調(diào)用會花費大量運行周期在函數(shù)調(diào)用上。為減少不必要的操作,提高速度,將DCT變換、量化、反量化和反DCT變化的整個過程進行優(yōu)化,將幾個函數(shù)合并到一個函數(shù)中。圖1所示為合并結(jié)構(gòu)。

d.jpg


2.3 DM642的優(yōu)化
    (1)CACHE優(yōu)化。DM642采用了兩級CACHE的存儲器結(jié)構(gòu),兩級CACHE主要用于對程序和數(shù)據(jù)的緩存。CPU直接和一級CACHE連接,一級CACHE包括L1P(程序)和L1D(數(shù)據(jù)),大小分別為16 KB,分別占用獨立的存儲;一級CACHE的存儲速度與CPU處理速度相同。一級CACHE與二級CACHE相連,稱為L2,大小為256 kB,可以對程序和數(shù)據(jù)進行統(tǒng)一存取,L2 CACHE作為L1CACHE和片外存儲器之間的一個橋梁,可以由設(shè)計人員自行配置大小,分為SRAM和CACHE。L2CACHE的速度為CPU的一半。經(jīng)過試驗對比,將L2分為128 kBCACHE和128 kB SRAM。將部分調(diào)用比較頻繁的函數(shù)和數(shù)據(jù)常量放在L2SRAM中,以提高讀寫速度。
    (2)EDMA。EDMA是增強的直接存儲器訪問,增加了高達64個傳輸通道,每個通道相互獨立,且通道間的優(yōu)先級可以設(shè)置。CIF格式的圖像格式為352×288,一幀數(shù)據(jù)需要101 376 b,L2的CACHE容量有限,不能將所需要的參考幀和當(dāng)前編碼幀都放到片內(nèi)CACHE中。X.264處理的最小模塊為宏塊16×16,將當(dāng)前編碼宏塊保存到片內(nèi)CACHE中來提速,DSP運行的同時將片外的下一編碼宏塊傳輸?shù)狡瑑?nèi)。采用EDMA的ping-pong緩沖技術(shù)可以對X.264編碼器的數(shù)據(jù)傳輸部分進行優(yōu)化。這樣既利用了DM642片內(nèi)數(shù)據(jù)存儲速度快的優(yōu)點,又避免了使用較多的片內(nèi)存儲空間。ping-pong緩沖結(jié)構(gòu)中EDMA與CPU的工作原理如圖2所示。

e.jpg



3 優(yōu)化結(jié)果
    完成對代碼的優(yōu)化過后,通過CCS的編譯將x264.out文件加載到DM642目標板上,使用了5個CIF實驗序列來測試優(yōu)化過后的編碼速率。  CIF序列編碼的幀數(shù)為100幀,量化系數(shù)為28。通過CCS所提供的clock工具記錄測試序列中編碼一幀圖像所需要的CPU時鐘數(shù)。實驗測得的編碼速率數(shù)據(jù)如表5所示。

f.jpg


    將X.264簡單DSP代碼化移植到DM642上,編碼速率很低,只有平均0.6 f/s。對比表中所示的數(shù)據(jù)可知,對于紋理簡單,運動不激烈的視頻序列,編碼幀數(shù)可達15 f/s左右,對于運動激烈,背景紋理較復(fù)雜的視頻序列,則只有10 f/s左右。通過解壓圖片可以看出,解碼后的圖像沒有發(fā)生明顯的失真。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线视频免费在线观看一区二区| 午夜亚洲一区| 亚洲午夜国产成人av电影男同| 亚洲国产第一页| 国产一区二区精品| 国产精品网曝门| 欧美系列电影免费观看| 欧美日韩久久不卡| 欧美日韩国产a| 欧美日韩成人在线播放| 欧美精品一区二区三区蜜桃 | 午夜亚洲影视| 午夜精品久久久久久久蜜桃app | 欧美成人精品在线观看| 久久久久久九九九九| 久久精品国语| 久久久视频精品| 老司机精品视频一区二区三区| 久久一区二区精品| 欧美ed2k| 欧美巨乳在线观看| 欧美三区在线观看| 国产精品日韩欧美大师| 国产区精品视频| 国内伊人久久久久久网站视频| 怡红院精品视频在线观看极品| 亚洲激情第一区| 日韩网站在线| 亚洲深夜福利网站| 午夜激情一区| 亚洲国产精品va| 亚洲精品日本| 亚洲一区二区三区在线播放| 国产精品初高中精品久久| 一区二区三区视频在线观看| 亚洲精品国产精品国自产观看| 99re亚洲国产精品| 亚洲永久在线| 亚洲高清不卡一区| av成人手机在线| 午夜精品短视频| 久久免费高清视频| 欧美精品成人| 国产精品欧美经典| 国产专区欧美精品| 亚洲激情国产精品| 亚洲视频图片小说| 久久99在线观看| 一本色道久久综合亚洲精品不| 亚洲欧美日韩高清| 美腿丝袜亚洲色图| 欧美网站在线观看| 国内精品久久久久影院优| 亚洲精品久久久久久久久| 亚洲砖区区免费| 亚洲国产日韩欧美在线99 | 亚洲精品中文字| 亚洲欧美另类中文字幕| 久久噜噜亚洲综合| 欧美日韩国产精品一卡| 国产精品综合| 亚洲激情一区| 欧美亚洲一区三区| 一道本一区二区| 亚洲天堂av电影| 久热国产精品| 欧美日韩午夜在线视频| 国产亚洲欧美另类一区二区三区| 最新精品在线| 羞羞答答国产精品www一本| 99亚洲一区二区| 久久久久久久综合| 欧美视频在线观看一区| 在线观看亚洲精品| 亚洲欧美国产日韩天堂区| 亚洲美女少妇无套啪啪呻吟| 久久国内精品自在自线400部| 欧美日韩成人在线视频| 在线播放一区| 午夜国产一区| 亚洲视频在线免费观看| 美女精品一区| 国产精品综合色区在线观看| 亚洲人成网站999久久久综合| 午夜精品久久久久久| 一区二区三区高清不卡| 久久亚洲一区二区| 国产欧美日韩免费看aⅴ视频| 亚洲精选大片| 亚洲人成啪啪网站| 久久久久久久一区二区三区| 国产精品一区视频| 一本不卡影院| 亚洲免费不卡| 女女同性精品视频| 国模吧视频一区| 午夜精品一区二区三区在线视 | 欧美一区免费| 国产精品激情电影| 91久久午夜| 亚洲精华国产欧美| 久久综合伊人| 国产一区二区三区免费在线观看| 亚洲综合精品四区| 亚洲女性裸体视频| 欧美午夜精品久久久久久浪潮| 亚洲人成网站影音先锋播放| 亚洲欧洲一区二区三区在线观看 | 亚洲一区二区精品| 欧美好吊妞视频| 亚洲第一精品夜夜躁人人爽 | 性伦欧美刺激片在线观看| 欧美日韩综合另类| 日韩一区二区久久| 一区二区三区你懂的| 欧美精品aa| 最新日韩精品| 一本色道**综合亚洲精品蜜桃冫| 欧美91福利在线观看| 在线播放中文字幕一区| 亚洲激情成人网| 欧美大片一区二区| 亚洲国产精品久久人人爱蜜臀| 亚洲人永久免费| 欧美精品xxxxbbbb| 99精品国产在热久久婷婷| 在线亚洲电影| 国产精品久久久久久久久久三级| 亚洲伊人观看| 久久国产精品久久w女人spa| 国产视频在线观看一区| 欧美一区二区大片| 裸体一区二区三区| ●精品国产综合乱码久久久久| 亚洲日本中文字幕| 欧美日产一区二区三区在线观看| 日韩亚洲一区二区| 亚洲欧美日韩国产一区二区| 国产日韩精品久久| 亚洲高清自拍| 欧美精品九九| 夜夜嗨av色一区二区不卡| 亚洲免费人成在线视频观看| 国产欧美精品xxxx另类| 久久国产欧美日韩精品| 欧美成人一区二区| 一区二区欧美亚洲| 久久精品国产99精品国产亚洲性色| 国产婷婷色一区二区三区四区| 亚洲国产影院| 欧美日韩国产页| 亚洲视频福利| 亚洲福利视频一区二区| 午夜欧美精品久久久久久久| 国产主播一区二区三区| 日韩亚洲在线观看| 国产精品多人| 久久精品视频免费播放| 欧美日韩成人一区| 午夜在线a亚洲v天堂网2018| 美玉足脚交一区二区三区图片| 亚洲每日更新| 久久精品视频在线观看| 亚洲国产成人精品视频| 亚洲综合好骚| 激情欧美日韩一区| 亚洲视屏在线播放| 国产自产精品| 亚洲午夜高清视频| 国产一区再线| 亚洲调教视频在线观看| 国产农村妇女精品| 亚洲区一区二| 国产精品一区二区久久久| 亚洲福利专区| 欧美体内谢she精2性欧美| 亚洲国产精品电影| 国产精品成人aaaaa网站| 亚洲国产小视频在线观看| 国产精品久久久久久久久搜平片| 亚洲大片av| 国产精品免费在线| 亚洲人成人77777线观看| 国产日韩久久| 一区二区三区高清在线| 激情久久综艺| 亚洲欧美在线x视频| 亚洲人在线视频| 久久久久久久一区二区| 中文无字幕一区二区三区| 欧美a级大片| 欧美一区二区在线观看| 欧美午夜精品久久久久久久| 亚洲精品久久久蜜桃| 国产偷久久久精品专区| 亚洲男人第一av网站| 亚洲精品国产无天堂网2021| 久久婷婷蜜乳一本欲蜜臀| 亚洲免费视频观看| 欧美日韩亚洲成人|