文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.019
中文引用格式: 張龍祥,王向軍,,曹雨. 基于FPGA的小型化實時CMOS成像處理系統(tǒng)[J].電子技術(shù)應用,,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)復雜,,設(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],;在面對復雜的算法或測控應用時,也可靈活地外接DSP或其他測控平臺,,相較傳統(tǒng)圖像處理系統(tǒng)更靈活,、更節(jié)省資源、更具有應用優(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芯片上電復位后,,經(jīng)過硬件配置電路設(shè)置基本工作方式,再使用SCCB總線設(shè)置各顯示參數(shù),,才能進入正常工作模式并經(jīng)由緩沖電路將圖像信息(包括像素時鐘,、行場同步以及12 bit灰度數(shù)據(jù))[3]輸出到FPGA,。FPGA芯片上電復位后,由EPCS16進行初始化配置,。首先延遲200 ms,,等待CMOS芯片硬件復位以及硬件配置完成;然后啟動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芯片自身及其復雜的布局布線都會使系統(tǒng)體積大幅度增加,;另一方面根據(jù)系統(tǒng)需求,F(xiàn)PGA平臺的圖像預處理功能并不需要保存整幀圖像,,只需要緩存部分待處理數(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)體積和復雜度,,實現(xiàn)了系統(tǒng)的小型化[6],。
2.1 CMOS配置及數(shù)據(jù)采集模塊
CMOS經(jīng)過上電復位和硬件初始化配置后,,可通過SCCB總線進行顯示參數(shù)的配置,包括分辨率,、掃描方式,、開窗、白平衡,、黑場,、曝光時間等[7]。
配置CMOS輸出分辨率為1 024×768,、幀率為60 Hz的視頻圖像,,其像素時鐘、行場同步信號和有效數(shù)據(jù)之間的關(guān)系如圖4所示,。在場同步信號有效的前提下,,圖像采集模塊以行同步信號上升沿為采集起點,高電平有效期間為采集狀態(tài),。
由于后續(xù)的圖像預處理模塊需要圖像幀的灰度特征值,,包括最大值、最小值以及灰度均值,,所以在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)記錄圖像的多級最大值(即最大值和多個次大值)以及其相對應的像素數(shù),,采用像素數(shù)大于10 個像素的灰度最大值作為當幀圖像的真實最大值,;表2列出了部分灰度值的映射結(jié)果。
將計算結(jié)果以原始灰度值為地址存入基于IP核構(gòu)建的雙口RAM中,,如圖6所示,,下一幀圖像有效數(shù)據(jù)期間,以實時灰度值為地址從RAM中取出其對應的映射值輸出即可,。由于算法處理部分在幀間消隱期間完成,,相對于輸入圖像數(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)濟實用的外部存儲器多是單端的,,即讀寫不能同時進行,,所以需要編寫復雜的時序邏輯控制外部存儲器與讀寫模塊之間的信息交互關(guān)系,才能保證在寫入數(shù)據(jù)不丟失的情況下滿足輸出數(shù)據(jù)格式時序,。
本系統(tǒng)采用內(nèi)部IP核例化的FIFO存儲器來緩存一小部分不能實時輸出的圖像信息,,省去了外部存儲器以及復雜的控制邏輯。其兩端采用異步時鐘的設(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)復雜圖像處理算法和測控應用,。同時小型化的設(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ù)應用,,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ù)應用,,2010,25(5):24-28.
[7] 褚紅娟,,隋國榮.基于SCCB通信的FPGA視頻采集模塊[J].自動化儀表,,2010,31(11):68-74.
[8] 朱奕丹,,方怡冰.基于FPGA的圖像采集與VGA顯示系統(tǒng)[J].計算機應用,,2011,31(5):1258-1264.
[9] 丁昊杰,,劉敬彪,,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,,35(14):178-188.
作者信息:
張龍祥,,王向軍,曹 雨
(天津大學 微光機電教育部重點實驗室,,天津300072)