摘 要: 針對圖像處理系統(tǒng)計算量大、實(shí)時性高和體積小的要求, 研制了一種以DSP" title="DSP">DSP為主處理器FPGA" title="FPGA">FPGA 為輔處理器的高性能實(shí)時圖像處理" title="實(shí)時圖像處理">實(shí)時圖像處理系統(tǒng)。利用這兩種芯片的各自特點(diǎn), 將算法分成兩部分分別交由FPGA 和DSP處理, 大大提高了算法的效率。系統(tǒng)具有結(jié)構(gòu)簡單易于實(shí)現(xiàn)和運(yùn)用方便靈活的特點(diǎn), 加載上相應(yīng)的程序之后能實(shí)現(xiàn)對所獲取的圖像跟蹤、識別和匹配等處理方法。詳細(xì)說明了系統(tǒng)的設(shè)計思路和硬件結(jié)構(gòu), 并在硬件系統(tǒng)上進(jìn)行了算法仿真及實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明: 該系統(tǒng)實(shí)時性高, 適應(yīng)性好, 能夠滿足設(shè)計要求。
1 引 言
圖像處理系統(tǒng)的處理算法復(fù)雜, 計算量大, 處理實(shí)時性要求高, 同時系統(tǒng)的體積也有嚴(yán)格的限制。
因此在設(shè)計系統(tǒng)時必須綜合考慮這些特點(diǎn), 合理選用芯片并保留一定的余度。通常的方法是以FPGA和DSP作為系統(tǒng)的處理器, 即由FPGA 承擔(dān)圖像預(yù)處理功能, DSP實(shí)現(xiàn)更復(fù)雜的圖像處理算法。在這樣一種結(jié)構(gòu)之上如何擴(kuò)展系統(tǒng)的應(yīng)用, 增加其靈活性并減少因前期設(shè)計不當(dāng)造成的風(fēng)險是設(shè)計前需要重點(diǎn)考慮的問題。
2 系統(tǒng)結(jié)構(gòu)設(shè)計
實(shí)時圖像處理系統(tǒng)除了FPGA和DSP這兩個核心部分之外, 還應(yīng)該有圖像獲取模塊、圖像輸出模塊以及相應(yīng)的存儲部分及通信控制電路等組成。各個主要模塊的功能如下:
圖像獲取模塊: 將成像儀輸入的圖像進(jìn)行分離、放大, 并在FPGA 的控制下完成A /D 采樣, 將模擬信號轉(zhuǎn)換為數(shù)字信號, 并將數(shù)字信號輸入FPGA 模塊。
FPGA 模塊: 該模塊的主要功能是: 1產(chǎn)生系統(tǒng)所需要的邏輯控制信號,2為各芯片提供時鐘信號,3對輸入圖像進(jìn)行預(yù)處理。
DSP模塊: 對預(yù)處理后的圖像進(jìn)行目標(biāo)檢測、識別與跟蹤等復(fù)雜的圖像處理運(yùn)算。DSP模塊是整個系統(tǒng)的核心模塊。
圖像輸出模塊: 對處理后的數(shù)字圖像進(jìn)行D /A轉(zhuǎn)換, 并疊加同步信號后形成標(biāo)準(zhǔn)的視頻, 實(shí)現(xiàn)對處理結(jié)果的顯示。
實(shí)時圖像處理系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 實(shí)時圖像處理系統(tǒng)結(jié)構(gòu)框圖
3 系統(tǒng)的具體實(shí)現(xiàn)方案
明確了系統(tǒng)的基本組成模塊之后需要做的工作是: 在滿足實(shí)時圖像處理算法各種要求的條件下如何將這幾個部分組合起來, 使得系統(tǒng)易于實(shí)現(xiàn), 并具有較高的可靠性。同時還要對各模塊仔細(xì)分析加以改進(jìn)以擴(kuò)展系統(tǒng)的應(yīng)用范圍。以下是各模塊的具體組成。
3. 1 圖像獲取模塊
為擴(kuò)展系統(tǒng)應(yīng)用, 該模塊有兩路視頻輸入通道,可以根據(jù)實(shí)際的需要決定是一路還是兩路視頻輸入。當(dāng)將系統(tǒng)用于雙目成像系統(tǒng)時由于雙目視覺要求兩個成像儀同步, 所以在第一路視頻通道中經(jīng)EL4501分離出的復(fù)合同步信號接到第二路成像儀的同步輸入口, 以實(shí)現(xiàn)兩個成像儀的同步。因?yàn)槌上駜x輸出為模擬視頻信號, 所以分離之后的視頻信號須經(jīng)A /D轉(zhuǎn)換才能進(jìn)入到FPGA中。A /D采樣過程由FPGA 控制, 由第二路視頻通道分離出來的場同步、行同步和奇偶幀指示信號直接進(jìn)入到FPGA,F(xiàn)PGA 將同步信號和奇偶幀指示信號作為中斷來控制采樣的開始和停止。同時為防止系統(tǒng)其它電路對圖像獲取模塊的干擾, 在信號進(jìn)入到FPGA 之前應(yīng)該加上隔離芯片對信號進(jìn)行隔離。
3. 2 FPGA 模塊
FPGA 是系統(tǒng)中實(shí)現(xiàn)圖像采集、圖像預(yù)處理、產(chǎn)生各種控制邏輯和時鐘信號的芯片, 系統(tǒng)選用的XC4VSX35芯片是V4 系列中專為數(shù)字信號處理進(jìn)行了優(yōu)化的一款FPGA。該芯片支持主串、從串、主SelecMt AP、從SelecMt AP和JTAG 邊界掃描四種加載模式。本系統(tǒng)選用主串模式和JTAG 邊界掃描模式。FPGA使用一塊50MHz的晶振作為其全局時鐘輸入, 依靠V4的片內(nèi)數(shù)字時鐘管理器( DCM )可產(chǎn)生24MHz~ 500MH z的時鐘頻率。
在視頻信號輸入端, 由于PAL制式視頻采用了隔行掃描方式, 每幀圖像由奇、偶兩幀合成, 所以在FPGA 內(nèi)部需配置一個雙口RAM 以存儲奇幀的圖像, 等待偶數(shù)幀進(jìn)來之后再將兩場合成為一幀完整的圖像。雙口RAM 的大小及縱深比應(yīng)根據(jù)算法的實(shí)際需要來調(diào)整。作為系統(tǒng)的協(xié)處理器, 圖像的預(yù)處理也是由FPGA 來完成。FPGA 與DSP 的數(shù)據(jù)交換有多種方式。對于圖像處理系統(tǒng)來說, 其交換的數(shù)據(jù)量大, 視頻的像素速率高。所以使用一塊雙口RAM作為FPGA 與DSP數(shù)據(jù)交換的橋梁, 兩塊芯片各控制一端的讀寫來完成數(shù)據(jù)的交換, 這樣既滿*換數(shù)據(jù)量大的要求, 又方便實(shí)現(xiàn)。雙口RAM 選用的是IDT70V631S, 存取周期12ns, 兩個端口有各自的地址總線、數(shù)據(jù)總線和讀寫控制。DSP和FPGA可以在各自連接的端口對其進(jìn)行訪問和控制。
圖像實(shí)時處理系統(tǒng)一般是一個控制平臺中的一部分, 圖像處理系統(tǒng)的最終處理結(jié)果通過多通道緩沖串口由FPGA 轉(zhuǎn)接后傳至上位機(jī), 而上位機(jī)控制命令也由串口傳至DSP。串口通信控制可以由FPGA編程實(shí)現(xiàn), 也可以選用專門的芯片來實(shí)現(xiàn), 為節(jié)省FPGA 片內(nèi)資源, 串口通信控制使用串口通信控制芯片TL16CTL16C554實(shí)現(xiàn)。
3. 3 DSP模塊
DSP由于其計算精度高, 可完成結(jié)構(gòu)復(fù)雜的圖像處理算法, 所以在系統(tǒng)中是核心處理器。本系統(tǒng)選用的DSP 芯片是TI生產(chǎn)的TMS320C6416 (簡稱C6416), 其工作頻率最高達(dá)850MH z, 峰值處理速度達(dá)到了6800MSPS, 處理能力強(qiáng)大。DSP核心時鐘可通過設(shè)置CLKMODE0、1兩個引腳( pin)電位的高低來改變, 總共有BYPASS( x1)、x6、x12和x20四種模式。DSP 與FPGA 的數(shù)據(jù)交換通過雙口RAM( DPRAM)。雖然C6416片內(nèi)集成了高達(dá)8M 位的片內(nèi)高速緩存, 但考慮到圖像處理算法必涉及到對前后幾幀圖像進(jìn)行處理, 為保證系統(tǒng)運(yùn)行時存儲容量不會成為整個系統(tǒng)的性能瓶頸( choke point), 在DSP模塊中額外擴(kuò)展存儲空間。由于EM IFA 口的數(shù)據(jù)寬度更大, 因此系統(tǒng)在EM IFA 的CE1 空間內(nèi)擴(kuò)展了兩片總共128M 位的同步存儲器。 C6416的引導(dǎo)方式有三種, 分別是: 不加載, CPU 直接開始執(zhí)行地址0 處的存儲器中的指令; ROM 加載, 位于EM IFB CE1空間的ROM 中的程序首選通過EDMA被搬入地址0處, ROM 加載只支持8 位的ROM 加載; 主機(jī)加載, 外部主機(jī)通過主機(jī)接口初始化CPU的存儲空間, 包括片內(nèi)配置寄存器。本系統(tǒng)采用的是ROM 加載方式。C6416 片內(nèi)有三個多通道緩沖串口, 經(jīng)DSP處理的最終結(jié)果將通過DSP的多通道緩沖串口傳送至FPGA。
3. 4 圖像輸出模塊
該模塊的功能是將DSP 處理后的圖像數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換, 并與字符信號合成后形成VGA 格式的視頻信號。這里選用的數(shù)模轉(zhuǎn)換芯片為ADV7125。
這是AD I公司生產(chǎn)的一款三通道(每通道8 位)視頻數(shù)模轉(zhuǎn)換器, 其最大數(shù)據(jù)吞吐率330MSPS, 輸出信號兼容RS- 343A /RS - 170。由FPGA 產(chǎn)生的數(shù)字視頻信號分別進(jìn)入到ADV7125的三個數(shù)據(jù)通道, 經(jīng)數(shù)模轉(zhuǎn)換后輸出模擬視頻信號并與原來的同步信號、消隱信號疊加后便可以在顯示器上顯示處理的結(jié)果了。和圖像獲取部分一樣, 為避免其它電路的干擾, 圖像輸出部分也需要加上數(shù)據(jù)隔離芯片。
4 系統(tǒng)仿真驗(yàn)證
圖像處理算法可分為預(yù)處理算法和后期的復(fù)雜算法。預(yù)處理算法主要包括圖像的校正、增強(qiáng)和簡單的分割等, 主要作用就是加強(qiáng)圖像的特征, 消除干擾和提取有用信息。這一類算法的特點(diǎn)是算法簡單但運(yùn)算量大, 適合于FPGA 來完成。預(yù)處理后的圖像一般為二值圖像, 這樣一來圖像的冗余量就大大減少, 這樣后期的復(fù)雜算法在對圖像進(jìn)行匹配、識別、跟蹤等操作時數(shù)據(jù)量就大大減少, 增加了算法的可行性。為驗(yàn)證本硬件系統(tǒng)的有效性, 進(jìn)行了大量仿真測試試驗(yàn), 圖2~ 圖5為橋梁識別的試驗(yàn)結(jié)果。
其中, 圖3、圖4是FPGA 模塊上進(jìn)行圖像增強(qiáng)與分割等預(yù)處理的測試結(jié)果。圖5 是基于DSP 的目標(biāo)識別結(jié)果。
圖2 原始圖像 圖3 FPGA 圖像增強(qiáng)結(jié)果 圖4 FPGA圖像分割結(jié)果 圖5 基于DSP的目標(biāo)識別結(jié)果
5 結(jié) 論
實(shí)時圖像處理系統(tǒng)以DSP和FPGA 為基本結(jié)構(gòu), 并在此結(jié)構(gòu)的基礎(chǔ)上進(jìn)行了優(yōu)化, 增加了視頻輸入通路。同時所有的數(shù)據(jù)交換都通過了FPGA, 后期的調(diào)試過程證明這樣做使得調(diào)試非常方便, 既可以監(jiān)視數(shù)據(jù)的交換又方便修正前期設(shè)計的錯誤。整個系統(tǒng)結(jié)構(gòu)簡單, 各個模塊功能清晰明了。經(jīng)后期大量的系統(tǒng)仿真驗(yàn)證: 系統(tǒng)穩(wěn)定性高, 處理速度快,能滿足設(shè)計要求。