新聞中心

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

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

作者: 時(shí)間:2011-01-02 來源:網(wǎng)絡(luò) 收藏

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

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


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


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

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


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


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


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

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



關(guān)鍵詞: 編解碼器

評(píng)論


相關(guān)推薦

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

關(guān)閉