新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于TMS320DM6446的H.264編碼器的設(shè)計與優(yōu)化

基于TMS320DM6446的H.264編碼器的設(shè)計與優(yōu)化

作者: 時間:2011-03-05 來源:網(wǎng)絡(luò) 收藏

1 編碼器C語言結(jié)構(gòu)調(diào)整
PC平臺上用C語言實現(xiàn)的編碼器在DSP平臺上的編碼幀率(fps)非常低,平均2s才能編完一幀,其主要原因是無法利用DSP的并行處理機制。因此針對C64x+的特點,將程序中對流水線操作影響較大的循環(huán)拆分成若干小循環(huán)實現(xiàn)。對編碼器運行速度影響較大的模塊,如sad的計算,DCT變換等采用CCS自帶的圖像庫以提高編碼效率。

本文引用地址:http://www.butianyuan.cn/article/150985.htm


2 DSP端的內(nèi)存配置
由于視頻編碼的數(shù)據(jù)存取量較大,而 DAVINCI_EVM提供了256M的外部存儲器DDR2,因此通過對DSP/BIOS的設(shè)置將外部存儲器設(shè)置為DDR2,并將可執(zhí)行的C代碼及C代碼的堆存入外部存儲器中。


3 對DSP端BOOT的設(shè)置
由于TM320DM6446采用雙核的設(shè)計,ARM端只負責(zé)整個工程的控制而不參與編碼算法的具體實現(xiàn)。為了保證編碼算法能在DSP端無中斷的全速運行,需要對ARM端進行屏蔽,并通過對DAVINCI_EVM跳線的設(shè)置使DSP端自BOOT。


通過以上步驟,編碼器效率雖然有所提高,但仍無法滿足實時性的要求,因此必須結(jié)合DM6446本身的特點對編碼器算法進行進一步的優(yōu)化。

編碼器的優(yōu)化
本文對H.264算法的優(yōu)化主要有兩個方面:1)對算法中耗時較多的運動估計模塊進行優(yōu)化;2)對DSP的數(shù)據(jù)搬移進行優(yōu)化。


1 對編碼器算法運動估計模塊的優(yōu)化
由于DSP硬件資源有限,因此有必要對H.264編碼器中所耗時間較多的模塊進行優(yōu)化,表1為H.264各模塊復(fù)雜度比較。


由表1可見,運動估計占了一半左右的時間。運動估計復(fù)雜度高的主要原因是采用了全搜索算法,雖然精度非常高,但帶來了大量的計算量。針對這一問題,本設(shè)計在已有的菱形搜索算法基礎(chǔ)上進行進一步的優(yōu)化。


為了減少靜止宏塊被編碼以及大模板搜索所帶來的運算量,在用菱形算法進行運動搜索之前,以待編碼宏塊周圍已編碼宏塊的運動矢量信息及SKIP狀況為依據(jù)預(yù)測當前宏塊是否使用SKIP模式編碼。當待編碼宏塊為非靜止宏塊時,再根據(jù)周圍已編碼宏塊的SAD值預(yù)測當前宏塊的運動劇烈程度,若是運動平緩的宏塊則直接使用小模板進行搜索。只有當待編碼宏塊被判定為劇烈運動的宏塊時才進行大模板搜索。由于多次的大模板搜索循環(huán)帶來較大的計算量,因此在進行大模板搜索之前首先根據(jù)周圍宏塊的信息對最大搜索次數(shù)MaxNum進行預(yù)估值。當大模板的搜索次數(shù)大于MaxNum時直接跳轉(zhuǎn)至小模板搜索。此流程設(shè)計可使靜止宏塊和運動平緩的宏塊不進入運算量大的大模板搜索環(huán)節(jié)。優(yōu)化后的菱形算法流程如圖3所示。

圖3 優(yōu)化算法流程圖

霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


電度表相關(guān)文章:電度表原理


霍爾傳感器相關(guān)文章:霍爾傳感器原理


關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉