數字圖像處理自從出現以來,就一直是前沿的研究學科,經久不衰,同時隨著數字化時代的到來,市場對于數字圖像處理的需求也越來越大。因此,本項目------基于FPGA的多功能數字圖像采集及處理平臺主要是為各種需要進行數字圖像處理的設備和應用而設計的, 例如, 醫(yī)學上的CT, X-ray等圖像增強及處理; 各種需要支持圖像優(yōu)化的數碼設備等。 同時此平臺也可用于數字圖像處理相關課程的設計參考及教學演示。
1.2 項目優(yōu)勢基于FPGA的多功能數字圖像采集及處理平臺是一個多用途,多功能的數字處理平臺, 相比于其他同類設計,有以下優(yōu)勢:
1 采用可編程的FPGA進行設計,便于設計的更新,減少因此帶來的升級費用;
2 本平臺采用硬件實現,相比于采用DSP的軟件實現方法,處理的速度更快;
3 各模塊之間相互獨立,便于設計的復用,經過簡單處理后即可用于其它項目;
二.需求分析 2.1 功能分析根據本項目的設計目標,本設計需要完成的功能有:
(1) 可以對輸入的數字圖像進行基本的圖像增強,圖像平滑,圖像銳化,直方圖均衡化,直方圖標準化等操作,也可以進行頻域相關的巴特沃思濾波,高斯濾波等操作。
(2) 可以通過組合各種不同的基本圖像處理過程,完成諸如圖像邊沿檢測等高級處理。
(3) 可以輸入CMOS傳感器轉換的YCrCb格式圖像數據,并轉換為RGB格式。
(4) 可以通過USB接口提供數字圖像處理器的圖像數據進行處理。
(5) 可以將處理過的圖像保存在Flash中,并且能夠通過VGA顯示處理過程中生成的圖像。
三.方案設計 3.1 系統功能實現原理本設計采用Xilinx公司的Nexys 3 Spartan-6 FPGA Board開發(fā)板,利用其上的Xilinx Spartan®-6 FPGA (XC6LX16-CS324) 的大容量邏輯資源完成各個模塊。本設計總體硬件框圖如圖一所示。從圖一中可以清楚地知道系統主要由USB設備控制單元,顏色空間轉換單元,用戶控制輸入單元,總體控制單元,雙口RAM控制單元,Flash控制單元,顯示控制單元和圖像處理單元組成。
系統的工作原理如下所述:總體控制單元根據用戶控制輸入單元選擇雙口RAM輸入端的數據源,然后圖像處理單元讀出數據根據用戶控制輸入單元輸出信號對圖像進行相關的處理并輸出到顯示RAM中,由顯示控制單元顯示到VGA上,并根據用戶輸入是否保存到Flash中。各單元模塊的具體說明請參考
3.2 硬件平臺及資源配置圖一:總體硬件框圖 3.2 硬件平臺及資源配置 3.2.1 USB控制單元
USB控制單元是整個系統數據來源方式之一,在系統中占據重要位置。首先讓我們看一下其組成框圖,如圖二所示。
圖二:USB控制單元框圖
由上圖可知,USB控制單元主要由USB Packet Assemble/Dissemble,USB PL,USB FSM,EP Buffer組成。其中USB FSM主要實現USB功能設備,和Host Computer通信;USB Packet Assemble/Dissemble主要完成USB數據包的解包和打包,USB PL(USB Protocol Layer)實現USB協議;另外和USB PHY通信的模塊未畫出。
3.2.2 顏色空間轉換單元顏色空間轉換單元完成將CMOS輸入YCrCb格式數據轉換成RGB數據的操作,其組成框圖如圖三所示。
圖三:顏色轉換單元
由YCrCb轉換成RGB的格式如下:
R = Y + 1.371 * (Cr - 128);
G = Y - 0.698 * (Cr - 128) - 0.336 * (Cb - 128);
B = Y + 1.732 * (Cb - 128);
由于硬件實現特殊性,上式改為:
R = Y + 1403 * ( Cr - 128 ) /1024;
G = Y - 714* ( Cr - 128 ) /1024 - 344 * ( Cb - 128 ) /1024 ;
B = Y + 1773 * ( Cb - 128 ) /1024;
3.2.3 圖像處理單元圖像處理單元是本系統中最重要的單元,主要完成數字圖像處理相關的工作,如直方圖均衡化,圖象銳化,以及頻率濾波等操作。其框圖如圖四所示:
圖四:圖像處理單元
圖像處理單元有基本的數字圖像處理模塊如直方圖均衡化,圖象銳化,以及頻率濾波等組成,可以根據用戶的選擇進行不同的組合來完成特定的任務或目的(如圖像邊沿檢測等)。
3.2.4 其它控制單元其他控制單元如總體控制單元,用戶輸入控制單元,雙口RAM控制單元,Flash控制單元主要完成系統運行過程中的控制和流程控制等操作。
3.3 系統流程圖由以上系統各模塊的分析,各模塊功能及系統總體架構已經有整體了解,現在就介紹一下系統整體的運行流程情況。
系統整體流程圖如圖五所示:
圖五:系統流程圖
上圖是簡化了的系統流程圖,可以看出系統中數據流經的主要路徑。上電初始化后,根據用戶控制輸入單元選擇雙口RAM輸入端的數據源,然后圖像處理單元讀出數據根據用戶控制輸入單元輸出信號對圖像進行相關的處理并輸出到顯示RAM中,由顯示控制單元顯示到VGA上,并根據用戶輸入是否保存到Flash中。