基于TMS320DM642的圖像處理系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
隨著大規(guī)模集成電路的飛速發(fā)展,DSP的性能越來越完善,能夠滿足圖像處理時(shí)對數(shù)據(jù)處理速度的實(shí)時(shí)要求。以DSP為核心處理器組建圖像處理系統(tǒng)應(yīng)用廣泛,其優(yōu)點(diǎn)是DSP資源豐富、編程靈活、算法設(shè)計(jì)簡單,并且在系統(tǒng)軟件開發(fā)中可采用模塊化設(shè)計(jì),可提高系統(tǒng)的通用性,縮短系統(tǒng)的開發(fā)周期。本文介紹了基于TMS320DM642的圖像處理系統(tǒng)。
2 TMS320DM642簡介
TMS320DM642是TI公司推出的一款針對網(wǎng)絡(luò)與多媒體應(yīng)用的DSP。TMS320DM642具有以下主要特點(diǎn):
處理器時(shí)鐘頻率高,具有500 MHz/600 MHz/720 MHz 三種時(shí)鐘速率(本系統(tǒng)設(shè)計(jì)采用的時(shí)鐘速率是600 MHz);
專用的視頻口,包括3個(gè)可配置的視頻口;
外部接口:64個(gè)獨(dú)立通道的增強(qiáng)EDMA控制器,多通道音頻串行端口(McASP),64 bit的外部存儲單元接口EMIF,66 MHz 32-bit,3.3 V的PCI主/從接口,10 Mb/s/100 Mb/s以太網(wǎng)口(EMAC)及通用I/O端口(GPIO)等外圍接口;
專用緩存,能夠加快數(shù)據(jù)存儲及運(yùn)算速度。TMS320DM64采用二級高速緩存的Cache結(jié)構(gòu),一級程序和數(shù)據(jù)緩存為16 KB,二級緩存為256 KB,其CPU內(nèi)核基于C64X的CPU。
因此,TMS320DM642的處理速度高,外圍接口豐富,并具有專用的視頻口。與其他同性能產(chǎn)品相比,TMS320DM642性價(jià)比高,無論從產(chǎn)品性能還是經(jīng)濟(jì)效益上考慮,TMS320DM642都是圖像處理系統(tǒng)的理想選擇。
3 系統(tǒng)設(shè)計(jì)
3.1硬件設(shè)計(jì)
系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。系統(tǒng)工作過程是:視頻輸入設(shè)備攝像機(jī)輸入的圖像數(shù)據(jù)經(jīng)視頻解碼器解碼后傳輸至TMS320DM642,TMS320DM642存儲、處理采集到的數(shù)據(jù),并將處理后的數(shù)據(jù)送至視頻編碼器,視頻編碼器對其編碼后再送至視頻輸出設(shè)備監(jiān)視器。
3.2視頻輸入設(shè)計(jì)
采集視頻輸人設(shè)備(攝像機(jī))圖像采用專門的視頻解碼器,視頻解碼器實(shí)現(xiàn)圖像采集驅(qū)動(dòng),簡化了設(shè)計(jì),節(jié)省設(shè)計(jì)時(shí)間縮短設(shè)計(jì)周期。視頻解碼器采用Phillips公司的SAA7115。
TMS320DM6412數(shù)據(jù)采集驅(qū)動(dòng)程序通過IOM器件驅(qū)動(dòng)模式進(jìn)行設(shè)計(jì)。如圖2所示驅(qū)動(dòng)器的設(shè)計(jì)分為Class Driver與Mini-Driver兩個(gè)層面,利用FVID模塊設(shè)計(jì)Class Driver,提供獨(dú)立和通用的API設(shè)置以及Mini-Driver的多種服務(wù)。為了使代碼重復(fù)利用率達(dá)到最高,Mini-Driver分為通用部分和面向不同電路板的個(gè)體部分設(shè)計(jì),前者利用EDMAs與視頻口進(jìn)行數(shù)據(jù)傳輸,后者又稱為EDC(External DeviceControl)接口設(shè)計(jì),是針對不同電路板設(shè)置視頻解碼器,包括視頻編碼器的初始化及其配置等。采用此方式設(shè)計(jì)TMS320DM642視頻輸入驅(qū)動(dòng)時(shí),需配置DSP/BIOS參數(shù):正確配置Input/Output下DeviceDrivers中的User-DefinedDrivers項(xiàng),包括Init function、Function table ptr、Function table type、Deviceid、Device params ptr、Device global data ptr等參數(shù)。DSP/BIOS各參數(shù)配置完成后,DSP程序包含vport.h、vportcap.h、saa7115.h,并對SAA7115初始化及其配置,視頻數(shù)據(jù)輸入直接調(diào)用器件支持的API函數(shù),即可完成視頻輸入驅(qū)動(dòng)設(shè)計(jì)。
3.3視頻輸出設(shè)計(jì) 視頻輸出的編碼器采用Phillips公司SAA7105。SAA7105與SAA7115是配套使用的一對器件。圖3是視頻輸出驅(qū)動(dòng)框圖,在顯示操作期間。數(shù)據(jù)從存儲器加載到幀緩沖器中,然后通過EDMA傳輸給視頻端口FIFO,視頻端口再將數(shù)據(jù)傳輸至視頻編碼器進(jìn)行顯示。EDMA中斷在每幀數(shù)據(jù)從存儲加載完成后觸發(fā),此中斷用于管理幀緩沖器和EDMA重新加載更新數(shù)據(jù)。
|
視頻輸出驅(qū)動(dòng)設(shè)計(jì)與視頻輸入驅(qū)動(dòng)設(shè)計(jì)類似,DSP/BIOS中各參數(shù)配置完成后,DSP程序中包含vport.h,vportdis.h,saa7105.h,并對SAA7105進(jìn)行初始化以及配置,視頻數(shù)據(jù)輸出直接調(diào)用器件支持的API函數(shù),即可完成視頻輸出驅(qū)動(dòng)設(shè)計(jì)。
3.4數(shù)據(jù)處理設(shè)計(jì)
數(shù)據(jù)處理設(shè)計(jì)分為兩步,第一步確定算法,第二步將確定好的算法用DSP程序代碼實(shí)現(xiàn)。確定算法利用功能強(qiáng)大且容易使用的Matlab軟件實(shí)現(xiàn),在Matlab環(huán)境中設(shè)計(jì)算法并對其仿真,仿真結(jié)果正確后即可確定算法。DSP代碼按照圖4所示的C6000系列代碼開發(fā)流程進(jìn)行設(shè)計(jì)。代碼開發(fā)流程分為三個(gè)階段:第一階段產(chǎn)生C代碼,第二階段優(yōu)化C代碼,第三階段編寫將C代碼轉(zhuǎn)換為線性匯編或匯編代碼并對其優(yōu)化,直到程序代碼滿足要求。
整個(gè)設(shè)計(jì)中代碼的優(yōu)化是核心,只有通過優(yōu)化代碼的效率才能保證滿足既定的要求。代碼優(yōu)化的步驟及方法:
1)CCS編程環(huán)境中設(shè)置編譯優(yōu)化級別為-o3,并按照C代碼的優(yōu)化法則對代碼做一些手動(dòng)的初步優(yōu)化。
2)經(jīng)過優(yōu)化后的C代碼效率不能達(dá)到要求時(shí)將C代碼轉(zhuǎn)換為線性匯編代碼讓編譯器作進(jìn)一步優(yōu)化。
3)如果還不能達(dá)到要求,則將線性匯編代碼轉(zhuǎn)換為匯編代碼,并且手動(dòng)調(diào)整代碼順序,改變代碼的并行及流水能力,如此通過不斷地對代碼的調(diào)整,使代碼的執(zhí)行效率達(dá)到要求。
4 應(yīng)用實(shí)例
利用TMS320DM642EVM硬件平臺對PAL格式的圖像進(jìn)行旋轉(zhuǎn)處理,算法設(shè)計(jì)時(shí)插值算法采用最近臨插值算法。整個(gè)軟件采用C語言編寫,程序運(yùn)行結(jié)果不理想,圖像有明顯的停滯現(xiàn)象。將耗時(shí)最多的旋轉(zhuǎn)算法代碼部分轉(zhuǎn)換成匯編代碼,并對其優(yōu)化,重新調(diào)整代碼次序,增加代碼的并行及流水能力,代碼執(zhí)行效率大大提高,程序運(yùn)行流暢無滯留,運(yùn)行速度滿足實(shí)時(shí)要求。
5 結(jié)束語
TMS320DM642提供的專用視頻端口通過EDMAs傳輸數(shù)據(jù)使視頻的獲取及輸出非常簡單;同時(shí)TMS320DM642支持的視頻驅(qū)動(dòng)設(shè)計(jì)模式大大簡化視頻輸入輸出驅(qū)動(dòng)設(shè)計(jì)的工作量,從而簡化了整個(gè)圖像處理系統(tǒng)的設(shè)計(jì),節(jié)省了設(shè)計(jì)時(shí)間,從而保證了系統(tǒng)設(shè)計(jì)的高效性?;?strong>TMS320DM642的圖像處理系統(tǒng)設(shè)計(jì)簡單,設(shè)計(jì)周期短,是圖像處理系統(tǒng)較為理想的選擇。