基于FPGA和DSP的高速圖像處理系統(tǒng)
摘要:為了提高圖像處理系統(tǒng)的高性能和低功耗,提出了一種基于FPGA和DSP協(xié)同作業(yè)的高速圖像處理嵌入式系統(tǒng),其中DSP為主處理器,負責(zé)圖像處理,而FPGA為協(xié)處理器,負責(zé)系統(tǒng)的所有數(shù)字邏輯。整個系統(tǒng)中FPGA和DSP的工作之間形成流水,同時借助于單片雙口RAM(CY7C025 AV-15AI)完成兩者的通信,比使用單片DSP建立的處理系統(tǒng)性能提高25%左右。該系統(tǒng)具有可重構(gòu)性,方便其他的算法于該系統(tǒng)上實現(xiàn)。
關(guān)鍵詞:圖像處理;FPGA;DSP;雙口RAM
0 引言
現(xiàn)階段用于數(shù)字圖像處理的系統(tǒng)有很多種,而從成本、性能、開發(fā)難易程度等多方面的考慮,基于FPGA和DSP的靈活性高、實用性強、可靠性高的圖像壓縮系統(tǒng)脫穎而出。在該種結(jié)構(gòu)的圖像處理系統(tǒng)當中,F(xiàn)PGA和DSP之間數(shù)據(jù)的通信方式和速度,將直接影響著整個圖像處理系統(tǒng)的效率。
本文試圖借助于ALTERA公司的低功耗FPGA(EP1C12Q240)、TI公司的DSP(TMS320VC5502)和一片CYPRESS公司雙口RAM(CY7C025),設(shè)計出一種功耗低、設(shè)計靈活、能夠?qū)崿F(xiàn)復(fù)雜處理算法且高效、穩(wěn)定的圖像處理系統(tǒng)。
1 系統(tǒng)總體設(shè)計
系統(tǒng)主要模塊分為電源管理模塊、圖像采集模塊、速度采集模塊、主控源模塊及輔助控制模塊。整個高速圖像處理系統(tǒng)主要由CMOS圖像傳感器(MT9M011)、FPGA(EP1C12Q240C8)、雙口RAM(CY7C025)、DSP(TM320VC5502)、視頻D/A(ADV7123)和一些存儲器等組成,如圖1所示。首先,在圖像采集模塊控制COMS圖像傳感器下,圖像數(shù)據(jù)則以25 f/s的速率向FPGA輸送。然后,通過FPGA的控制使其緩存在片外的SDRAM中,之后實時顯示模塊控制ADV7123做到了對圖像的實時顯示。如果用戶通過外部控制,選擇了壓縮模式,則原始的圖像數(shù)據(jù)將由幀存模塊移至高速緩沖模塊中,DSP通過EMIF接口外擴存儲器的方式,高效的讀取雙口RAM中的圖像數(shù)據(jù)。最后,圖像數(shù)據(jù)在DSP內(nèi)部做好JPEG壓縮后,以相同的方式通過高速緩沖模塊,把數(shù)據(jù)傳給FPGA的存儲控制模塊,做到壓縮圖像數(shù)據(jù)的存儲。
2 系統(tǒng)硬件電路設(shè)計
2.1 圖像采集模塊
本系統(tǒng)圖像采集模塊采用的攝像頭為CMOS圖像傳感器,型號為MT9M011。CMOS圖像傳感器與CCD傳感器相比,雖然采集出來的圖像效果弱差一點,但是CMOS的成本遠遠低于CCD產(chǎn)品,而且CMOS傳感器的功耗較低。圖像采集模塊具體設(shè)計如圖2所示。
2.2 圖像顯示模塊
圖像顯示模塊主要作用是將FPGA采集到的數(shù)字圖像,實時地轉(zhuǎn)換成模擬圖像數(shù)據(jù),并輸出到帶VGA接口的顯示器上。圖像顯示接口電路包括圖像編碼電路和VGA接口電路,其電路如圖3所示。本電路中選用的圖像編碼芯片為AD(Analog Devices)公司的高速視頻數(shù)模轉(zhuǎn)換芯片,其具體型號為ADV7123KST140。該芯片具有3組獨立的十位寬RGB數(shù)字輸入接口和3個相對的RGB模擬輸出接口,5 V或3.3 V供電都行,速度為140 MHz,低功耗。
2.3 DSP外部存儲器接口電路設(shè)計
本系統(tǒng)中選用TI公司的超低功耗DSP(TMS320VC5502),主要是來完成圖像處理算法的實現(xiàn)。在對外部存儲器接口設(shè)計上,該DSP采用外部存儲器接口(EMIF)來進行對外部存儲器的擴展,具體擴展如圖3所示。
TMS320VC5502的EMIF可以訪問的存儲空間大小為16 MB,該系統(tǒng)中通過配置把空間平分為4部分,EMIF的片選信號線CE3~CE0分別對應(yīng)著這4個空間的選通控制。另外EMIF的組成還包括數(shù)據(jù)線D[31:0]、地址線A[21:2]、字節(jié)使能線:BE[3:0]及各類存儲器的讀/寫控制信號線等。
3 系統(tǒng)軟件設(shè)計
該系統(tǒng)的設(shè)計根據(jù)硬件結(jié)構(gòu)的總體劃分,也可以分為2大部分來描述。FPGA方面的軟件設(shè)計主要是各功能模塊的編寫,如攝像頭I2C配置模塊、SDRAM控制器、圖像圖像預(yù)處理器、VGA控制器、SD卡控制器、高速緩沖器等;DSP方面的設(shè)計主要包括2方面,一方面是外部存儲器驅(qū)動的編寫,如SDRAM、雙口RAM、FLASH等;另一方面為在DSP內(nèi)部實現(xiàn)高效的圖像壓縮算法,如本文采用的JPEG壓縮算法的實現(xiàn)。
整個系統(tǒng)的程序運行如圖4所示,從高速壓縮系統(tǒng)軟件流程圖中可以清楚的看到,F(xiàn)PGA和DSP各自的程序運行遵循著自己的一套規(guī)則,但是它們之間的之間又實時的完成著數(shù)據(jù)的交互。FPGA向DSP方向的指令,是通過FPGA方面設(shè)置了一個中斷信號,當DSP接受到該信號的時候,就開始從雙口RAM中按照規(guī)則進行原始數(shù)據(jù)的讀取;DSP如果要完成向FPGA方面進行數(shù)據(jù)傳輸時,遵循的一個類似的執(zhí)行規(guī)則,DSP會提供一個能夠進行辨別的信號,讓其從雙口RAM中把壓縮后的圖像數(shù)據(jù)讀進來。
4 測試結(jié)果
將FPGA上的程序下載EPCS中和將DSP開發(fā)程序燒寫進FLASH(默認自舉方式),對實時圖像處理系統(tǒng)進行軟硬件聯(lián)合調(diào)試。設(shè)置采集和處理圖像分辨率為640×480,視頻YUV下采樣率選4:1:1,DSP中壓縮一幀圖像所用的時間在23 ms左右,壓縮比基本上在10:1~20:1的范圍內(nèi),且SNR值基本上保證在30 dB以上。23 ms的DSP壓縮時間,再加上每幀采集、傳輸和JPEG文件存儲所用的時間,大約在31 ms左右,因此系統(tǒng)整體效率上能保證對采集來的圖像做實時處理。測試結(jié)果表明系統(tǒng)的開發(fā)已經(jīng)達到預(yù)定的設(shè)計要求。
5 結(jié)論
本文基于FPGA和DSP,設(shè)計了一種結(jié)構(gòu)簡單、成本低、性能高、功耗低的高速圖像處理系統(tǒng)。在總結(jié)現(xiàn)有的FPGA與DSP高速通訊方式的基礎(chǔ)上,提出了一種利用單片雙口RAM做通信媒質(zhì)完成FPGA與DSP之間數(shù)據(jù)高速通訊的結(jié)構(gòu),為實現(xiàn)更好的嵌入式圖像處理系統(tǒng)提供了一個良好的解決方案。