三維圖像信息處理FPGA+DSP核心架構的設計與實(shí)現
三維圖像信息處理一直是圖像視頻處理領(lǐng)域的熱點(diǎn)和難點(diǎn),目前國內外成熟的三維信息處理系統不多,已有的系統主要依賴(lài)高性能通用PC完成圖像采集、預處理、重建、構型等囊括底層和高層的處理工作。三維圖像處理數據量特別大、運算復雜,單純依靠通用PC很難達到實(shí)時(shí)性要求,不能滿(mǎn)足現行高速三維圖像處理應用。
本系統中,采用FPGA實(shí)現底層的信號預處理算法,其處理數據量很大,處理速度高,但算法結構相對比較簡(jiǎn)單,可同時(shí)兼顧速度和靈活性。高層處理算法數據量較少、算法結構復雜,可采用運算速度快、尋址方式靈活、通信機制強大的DSP實(shí)現[1,4]。
1 三維圖像處理系統組成
1.1 硬件系統構成
該系統由五個(gè)模塊組成,如圖1所示。
系統信息處理流程見(jiàn)圖2所示。CCD攝像機采集的多路模擬視頻信號經(jīng)MAX440按需要選定后,送入模數視頻轉換器SAA7111A將攝像機輸出的模擬全電視信號CVBS轉換成數字視頻信號;之后視頻信號流入圖像預處理器Spartan XC3S400,經(jīng)過(guò)提取中心顏色線(xiàn)、提取激光標志線(xiàn)和物體輪廓線(xiàn)的預處理后,配送到兩片TS201進(jìn)行定標參數計算、坐標計算、三維重建、數據融合以及三維構型的核心運算;最后將DXF文件數據經(jīng)由PCI接口傳送到PC,完成三維圖像變換和顯示等最終處理;整個(gè)系統的邏輯連接和控制以及部分數據交換由另一片FPGA來(lái)完成[1]。
在體系結構設計上,FPGA處理器采用SIMD結構,在一個(gè)控制單元產(chǎn)生的控制信號下,數據通路中的三個(gè)算法并行運行。由于該系統要求處理速度較高,因而在數據通路中采用了流水線(xiàn)技術(shù)以提高速度。此外,本系統中為圖像存儲采用了許多大容量高速FIFO,以達到減少地址線(xiàn),簡(jiǎn)化控制的目的。
1.2 處理器芯片
為滿(mǎn)足系統大數據量快速處理的要求,三款核心芯片均為最新高性能產(chǎn)品,其硬件方面的特點(diǎn)給系統設計帶來(lái)極大的方便,其優(yōu)異的運算性能可確保系統的快速實(shí)時(shí)性。
FPGA芯片采用Xilinx公司近期推出的采用90nm工藝的Spartan3系列的XC3S400,該系列芯片是目前為止工藝最先進(jìn)、價(jià)格較低、單位成本內I/O管腳最多的平臺級可編程邏輯器件。XC3S400芯片內部時(shí)鐘頻率可達326MHz,信號擺幅1.14V和3.45V,I/O口支持622Mbps的數據傳輸率,具有高性能SelectRAM內部存儲器,多達4個(gè)數字時(shí)鐘管理器模塊和8個(gè)全局時(shí)鐘多路復用緩沖器。
DSP采用ADI公司的最新款基于并行處理設計、具有海量片內RAM的TigerSHARC ADSP TS201。其內部集成的RAM容量高達24Mbit,核心速度最高達600MHz。內設雙運算模塊,每個(gè)包含一個(gè)ALU、MUL、64bit移位寄存器、32個(gè)32bit寄存器組和一個(gè)128bit通信邏輯單元,相關(guān)的數據對齊緩沖器;雙整數ALU,各有獨立的寄存器組,提供數據尋址和指針操作;4個(gè)128bit寬度內部總線(xiàn),每個(gè)都連接到6個(gè)4Mbit的內部存儲器塊;提供與主機處理器、多處理器空間、片外存儲器映射外設、外部SRAM和SDRAM相連的外部端口;14通道DMA控制器;4個(gè)全雙工低電壓差分信號輸入的Link Port;具有片內仲裁總線(xiàn),用于多DSP無(wú)縫的連接。
數字化器采用了Philips公司的增強視頻輸入處理器(EVIP)――SAA7111A模數轉換器。該產(chǎn)品廣泛應用于個(gè)人視頻、多媒體、數字電視、可視電話(huà)、圖像處理、實(shí)時(shí)監控等領(lǐng)域,純3.3V CMOS工藝的模擬視頻前端和數字視頻編碼器,能夠將PAL/TSC/ECAM視頻信號解碼為與CCIR-601相兼容的多種數字視頻格式,支持TV或VTR信號源的CVBS或S-Video視頻信號,最高圖像分辨率可達720×576,支持24位真彩色,可以通過(guò)串行總線(xiàn)動(dòng)態(tài)配置
SAA7111A模數轉換器的工作方式和各種參數。
2 模塊設計
2.1 視頻采集與數字化模塊
由于模擬攝像機采集的是PAL制的復合視頻信號(CVBS),所以必須先將其數字化才能開(kāi)始后繼數字視頻處理。視頻采集與數字化模塊主要包括一片視頻多路復用器MAX440、一片SAA7111A、一片I2C接口控制器PCF8584和一些連接邏輯。MAX440用來(lái)快速切換來(lái)自不同模擬輸入端的模擬視頻流,SAA7111A模數轉換器是該模塊的核心,它采集模擬視頻,將其數字化為720×576的RGB(8,8,8)真彩色信號格式的數字視頻,其輸出的RGB真彩色信號為16位,其中高字節和低字節數據周期分別為74ns和37ns,即低字節的頻率是高字節的1倍。這樣就要利用觸發(fā)器和兩個(gè)分別為13.5MHz和27MHz的時(shí)鐘信號,將輸入數據格式轉換為24位、周期均為74ns的RGB真彩色信號,此外,它還為整個(gè)硬件系統提供必要的時(shí)鐘和同步信號;PCI接口控制器通過(guò)PCF8584來(lái)配置和控制SAA7111A,連接邏輯由FPGA實(shí)現。
2.2 FPGA圖像預處理模塊
預處理從巨大的視頻信息中提取極少量的對三維重建有用的信息傳送至DSP后處理。該模塊包括主處理FPGA芯片和高速FIFO,負責實(shí)時(shí)采集視頻信號并對采集到的無(wú)壓縮的視頻信息進(jìn)行預處理,包括提取激光中心線(xiàn)、提取輪廓線(xiàn)、提取中心顏色線(xiàn)三個(gè)部分。
為了提高視頻采集的整體性能,更重要的是為預處理提供相鄰的有激光幀和無(wú)激光幀,必須通過(guò)視頻幀緩存首先暫存無(wú)激光幀。緩存由3片AverLogic公司的AL422B及一些由FPGA實(shí)現的連接邏輯組成;當前端模塊輸出無(wú)激光幀時(shí),SA7111A控制3片AL422B寫(xiě)操作,將其存入FIFO;當前端輸出有激光幀時(shí),后端的視頻處理模塊控制3片AL422B進(jìn)行讀操作,讀出暫存在其中的無(wú)激光幀數據。預處理FPGA將讀取的無(wú)激光幀和有激光幀進(jìn)行相減運算。輸出同樣采用3組緩存分別用來(lái)暫存激光樣條數據、目標輪廓線(xiàn)數據和圖像中心線(xiàn)數據;所有模塊均采用同步時(shí)鐘控制,同步時(shí)鐘采用由SAA7111A模數轉換器產(chǎn)生的LLC2信號。為了提高系統速度,算法復雜、耗時(shí)較長(cháng)的計算過(guò)程進(jìn)行了流水線(xiàn)處理。
評論