文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.019
中文引用格式: 張龍祥,王向軍,曹雨. 基于FPGA的小型化實時CMOS成像處理系統(tǒng)[J].電子技術(shù)應(yīng)用,2017,43(5):78-81,85.
英文引用格式: Zhang Longxiang,Wang Xiangjun,Cao Yu. Design of miniaturized real-time CMOS image processing system based on FPGA[J].Application of Electronic Technique,2017,43(5):78-81,85.
0 引言
隨著電子技術(shù)的進步,圖像處理系統(tǒng)得到了飛速的發(fā)展。當今的主流圖像處理平臺大多基于FPGA+DSP[1],雖然滿足系統(tǒng)實時性及處理性能要求,但系統(tǒng)結(jié)構(gòu)復(fù)雜,設(shè)計難度較高,資源浪費嚴重,不利于小型化設(shè)計。針對這一問題,本文設(shè)計了一種基于FPGA和CMOS的成像處理系統(tǒng),CMOS傳感器采集圖像信息經(jīng)由FPGA實現(xiàn)基本的圖像處理算法后,同時輸出兩路不同數(shù)據(jù)格式的圖像信號供后續(xù)處理控制系統(tǒng)使用或者直接顯示,如Cameralink、DSP、VGA等。本系統(tǒng)將CMOS和FPGA合成為一個小型化的完整成像系統(tǒng),成本低廉,適用范圍廣,可直接裝載常用的圖像處理算法并實時顯示輸出[2];在面對復(fù)雜的算法或測控應(yīng)用時,也可靈活地外接DSP或其他測控平臺,相較傳統(tǒng)圖像處理系統(tǒng)更靈活、更節(jié)省資源、更具有應(yīng)用優(yōu)勢。
1 系統(tǒng)硬件體系結(jié)構(gòu)
本系統(tǒng)采用如圖1所示的雙層PCB堆疊設(shè)計,上層為CMOS板,通過微型接口與下層FPGA板通信傳輸圖像數(shù)據(jù)。在保證系統(tǒng)功能完整的前提下,將整體功能分配到多層PCB體系中,可以有效降低單層PCB容量和布局布線難度,減小單層PCB板面積,從而最大限度地優(yōu)化系統(tǒng)體積尺寸。
基于FPGA和CMOS的成像系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。CMOS芯片上電復(fù)位后,經(jīng)過硬件配置電路設(shè)置基本工作方式,再使用SCCB總線設(shè)置各顯示參數(shù),才能進入正常工作模式并經(jīng)由緩沖電路將圖像信息(包括像素時鐘、行場同步以及12 bit灰度數(shù)據(jù))[3]輸出到FPGA。FPGA芯片上電復(fù)位后,由EPCS16進行初始化配置。首先延遲200 ms,等待CMOS芯片硬件復(fù)位以及硬件配置完成;然后啟動CMOS配置模塊,傳輸初始化配置信息;之后接收圖像信息做處理后,分兩路同時輸出,一路Cameralink數(shù)字信號經(jīng)專用轉(zhuǎn)換芯片轉(zhuǎn)換為差分Cameralink信號[4]后輸出,一路DSP數(shù)字信號直接傳輸。
CMOS芯片標準IO口參考電壓為2.8 V,F(xiàn)PGA接口參考電壓3.3 V,所以系統(tǒng)中設(shè)置了緩沖電路來將2.8 V電壓轉(zhuǎn)換為3.3 V,加大信號擺幅,使FPGA芯片能準確讀取數(shù)據(jù);且緩沖電路經(jīng)設(shè)計嚴格滿足阻抗匹配,避免了信號過沖等失調(diào)問題[5]。
系統(tǒng)中沒有搭載DDR2外部存儲器,一方面是考慮到系統(tǒng)的小型化設(shè)計和成本控制,DDR2芯片自身及其復(fù)雜的布局布線都會使系統(tǒng)體積大幅度增加;另一方面根據(jù)系統(tǒng)需求,F(xiàn)PGA平臺的圖像預(yù)處理功能并不需要保存整幀圖像,只需要緩存部分待處理數(shù)據(jù)即可。
2 FPGA模塊設(shè)計
本系統(tǒng)設(shè)計目的主要是實時采集、處理并顯示CMOS圖像數(shù)據(jù)。功能模塊主要劃分為如圖3所示的CMOS配置及數(shù)據(jù)采集模塊、圖像處理算法模塊和多通道輸出顯示模塊。
系統(tǒng)采集并處理過的圖像經(jīng)過一個可配置的FIFO緩存,在輸出模塊中轉(zhuǎn)換成不同數(shù)據(jù)格式并實時輸出。該模塊以CMOS傳感器的行場同步信號為基礎(chǔ),實現(xiàn)了不同時鐘域之間數(shù)據(jù)格式的轉(zhuǎn)換,并且可以同時輸出多路圖像,在一定程度上增強了系統(tǒng)的靈活性以及功能性。由于基于內(nèi)部FIFO設(shè)計,保證圖像實時顯示的同時,去掉了外部RAM存儲器,大大減小了系統(tǒng)體積和復(fù)雜度,實現(xiàn)了系統(tǒng)的小型化[6]。
2.1 CMOS配置及數(shù)據(jù)采集模塊
CMOS經(jīng)過上電復(fù)位和硬件初始化配置后,可通過SCCB總線進行顯示參數(shù)的配置,包括分辨率、掃描方式、開窗、白平衡、黑場、曝光時間等[7]。
配置CMOS輸出分辨率為1 024×768、幀率為60 Hz的視頻圖像,其像素時鐘、行場同步信號和有效數(shù)據(jù)之間的關(guān)系如圖4所示。在場同步信號有效的前提下,圖像采集模塊以行同步信號上升沿為采集起點,高電平有效期間為采集狀態(tài)。
由于后續(xù)的圖像預(yù)處理模塊需要圖像幀的灰度特征值,包括最大值、最小值以及灰度均值,所以在CMOS數(shù)據(jù)采集模塊中添加了灰度均值計算模塊。該模塊不會對圖像的行場同步信號以及圖像灰度值造成時間延遲,只是統(tǒng)計有效圖像數(shù)據(jù)(即行場同步信號同時為高電平)中心區(qū)域512×1 024 個像素的灰度值之和,并右移19 位計算均值,同時記錄下灰度最大值、最小值。這樣既不影響均值精度,又避免了除法操作及不必要的時鐘延遲,節(jié)省了系統(tǒng)資源,有效提高了系統(tǒng)實時性。
2.2 圖像數(shù)據(jù)處理算法模塊
本系統(tǒng)采用的圖像處理算法是分段線性映射法,主要作用是增強圖像細節(jié)效果、提高對比度。算法計算時需要取得一幀圖像的有效像素灰度的最大值、最小值及均值,在最小值到灰度均值和灰度均值到最大值兩段分別作線性映射,使有效像素的灰度值拉伸到整個0~255灰度空間,從而增強對比度。映射關(guān)系如圖5所示,計算時需要統(tǒng)計一幀圖像的灰度最大值、最小值和均值。
在實際視頻處理成像中,相鄰兩幀圖像之間像素變化不明顯,灰度均值變化范圍一般在±1個灰度級內(nèi)。所以當幀圖像可以采用上一幀圖像統(tǒng)計的灰度值映射參數(shù)(最大值、最小值及均值)進行分段線性映射處理,避免了整幀圖像的緩存及外部存儲。
每幀圖像場消隱期間,利用當幀統(tǒng)計的圖像灰度值映射參數(shù),根據(jù)式(1)~式(4)所示灰度映射公式進行全灰度級的映射計算。表1所示為對一幀圖像統(tǒng)計的最大值、最小值及均值。為了剔除噪點及壞點的影響,本系統(tǒng)記錄圖像的多級最大值(即最大值和多個次大值)以及其相對應(yīng)的像素數(shù),采用像素數(shù)大于10 個像素的灰度最大值作為當幀圖像的真實最大值;表2列出了部分灰度值的映射結(jié)果。
將計算結(jié)果以原始灰度值為地址存入基于IP核構(gòu)建的雙口RAM中,如圖6所示,下一幀圖像有效數(shù)據(jù)期間,以實時灰度值為地址從RAM中取出其對應(yīng)的映射值輸出即可。由于算法處理部分在幀間消隱期間完成,相對于輸入圖像數(shù)據(jù)流,經(jīng)過分段線性映射處理的圖像僅延遲2個時鐘周期的RAM讀取時間,靈活利用了幀間消隱時間,提高了系統(tǒng)圖像輸出的實時性。
2.3 多通道輸出顯示模塊
由于CMOS輸出圖像格式不是標準的圖像數(shù)據(jù)顯示格式,需要進行圖像數(shù)據(jù)格式的轉(zhuǎn)換。目前主流的圖像數(shù)據(jù)格式轉(zhuǎn)換方法是通過外部SDRAM或DDR存儲器緩存一幀圖像后再讀出數(shù)據(jù),結(jié)合已確定的行場同步信號輸出圖像[8]。這種方法不僅需要延遲將近一幀圖像的時間,而且由于經(jīng)濟實用的外部存儲器多是單端的,即讀寫不能同時進行,所以需要編寫復(fù)雜的時序邏輯控制外部存儲器與讀寫模塊之間的信息交互關(guān)系,才能保證在寫入數(shù)據(jù)不丟失的情況下滿足輸出數(shù)據(jù)格式時序。
本系統(tǒng)采用內(nèi)部IP核例化的FIFO存儲器來緩存一小部分不能實時輸出的圖像信息,省去了外部存儲器以及復(fù)雜的控制邏輯。其兩端采用異步時鐘的設(shè)計方法,實現(xiàn)了2個時鐘域之間的數(shù)據(jù)傳輸,輸入端為CMOS輸出信號,輸出端為圖像顯示信號,只需保證FIFO容量滿足寫入和讀出圖像有效數(shù)據(jù)的滯留量,就能在不丟失圖像數(shù)據(jù)的基礎(chǔ)上,實現(xiàn)圖像格式轉(zhuǎn)換并實時輸出。
圖7為雙通道Cameralink和DSP數(shù)據(jù)格式轉(zhuǎn)換前后時序?qū)Ρ葓D,兩通道實時并行輸出,以Cameralink顯示為例,轉(zhuǎn)換前后數(shù)據(jù)格式如表3所示。
由于輸入輸出幀率同為60 Hz,每幀圖像所需時間一致,所以只需要計算一幀圖像的滯留量,即可得到FIFO大小。輸入一行數(shù)據(jù)的時間:2.09×10-5((1 024+370)/66.58×106) s,該時間內(nèi)輸出數(shù)據(jù)為1 205(57.56×106×2.09×10-5)個像素,即在輸入一行數(shù)據(jù)的時間內(nèi),輸入、輸出數(shù)據(jù)差值為25 個像素??紤]到計算中將行消隱數(shù)據(jù)(即無效數(shù)據(jù))也包含在內(nèi),根據(jù)輸出有效數(shù)據(jù)占空比85%(1 024/(1 024+206)),可得到每一行的實際速率差為21個像素。所以768行有效數(shù)據(jù),共需要16 K個像素存儲空間即可滿足緩存需要。
由SCCB總線配置模塊輸入時鐘高于輸出時鐘,同時通過調(diào)整行場消隱寬度等配置使輸入有效數(shù)據(jù)盡量類似于輸出數(shù)據(jù)格式,即可充分利用FPGA內(nèi)部存儲資源,再匹配行場同步信號與數(shù)據(jù)的關(guān)系就能實現(xiàn)各種不同數(shù)據(jù)格式的實時輸出。對于行場同步信號低電平有效的視頻數(shù)據(jù)格式,如VGA等[9],本系統(tǒng)數(shù)據(jù)緩沖方式也完全適用,只需要根據(jù)輸出行場同步信號及前后肩標準制式編寫簡單的計數(shù)控制時序即可。
3 實驗結(jié)果分析
3.1 CameraLink、DSP-VPSS雙通道輸出
為測試系統(tǒng)輸出功能,采用1 024×768分辨率、60 Hz幀率的12 bit灰度級圖像雙通道實時輸出。一路CameraLink信號連接采集卡可由PC采集顯示,行場同步及數(shù)據(jù)滿足協(xié)議要求,仿真時序圖如圖8所示,圖像清晰且沒有丟幀現(xiàn)象,采集圖像如圖10(c)所示;另一路DSP信號使用Signal Tap在FPGA中嵌入監(jiān)測模塊并觀察發(fā)送數(shù)據(jù),如圖9所示。
3.2 輸出圖像效果
為驗證分段線性映射算法的圖像增強效果,對不同場景、不同光照的圖像取原始圖和映射結(jié)果圖。選取如圖10所示一處場景進行對比發(fā)現(xiàn),在較強光照下,由于圖像對比度較高,視覺效果較好,分段線性映射算法有一定效果,但不明顯,如圖10(c)、圖10(d);但是在較弱光照下,原圖對比度很低,經(jīng)過分段線性映射后的圖像的對比度顯著提升,原本無法辨別的細節(jié)信息明顯改善,圖像灰度均值也有所提升,如圖10(a)、圖10(b),證明分段線性映射算法模塊對圖像有明顯的增強效果。
4 結(jié)論
本文設(shè)計并實現(xiàn)了一個完整的、可搭載大多數(shù)常用圖像處理算法的、雙通道實時同步輸出的小型化CMOS成像系統(tǒng)。既可當做傳統(tǒng)CMOS相機單獨成像顯示,也可外接其他圖像處理或測控平臺來實現(xiàn)復(fù)雜圖像處理算法和測控應(yīng)用。同時小型化的設(shè)計思想降低了系統(tǒng)成本,提高了系統(tǒng)效率、靈活性和實用價值。
參考文獻
[1] YAN L,ZHANG T,ZHONG S.A DSP/FPGA-based parallel architecture for real-time image processing[J].World Congress on Intelligent Control & Automation,2006,2:10022-10025.
[2] 劉國賀,李玉惠,李勃,等.數(shù)字圖像水印實時嵌入系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2010,29(3):27-30.
[3] 陳必威,梁志毅,王延新,等.基于FPGA的高幀速CMOS成像系統(tǒng)設(shè)計[J].計算機測量與控制,2012,20(5):1397-1400.
[4] 王鵬,程蕓,董書莉.基于FPGA的多格式數(shù)據(jù)傳輸設(shè)計[J].電子測量技術(shù),2014,37(1):70-75.
[5] 曾晶,唐湘成,王德勝.基于FPGA的差分信號阻抗匹配研究[J].電子設(shè)計工程,2010,18(3):121-123.
[6] 侯宏錄,王蓉,杜鵑.基于FPGA的CMOS傳感器高速視頻采集系統(tǒng)[J].光電技術(shù)應(yīng)用,2010,25(5):24-28.
[7] 褚紅娟,隋國榮.基于SCCB通信的FPGA視頻采集模塊[J].自動化儀表,2010,31(11):68-74.
[8] 朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統(tǒng)[J].計算機應(yīng)用,2011,31(5):1258-1264.
[9] 丁昊杰,劉敬彪,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(14):178-188.
作者信息:
張龍祥,王向軍,曹 雨
(天津大學 微光機電教育部重點實驗室,天津300072)