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