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