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