文獻(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],雖然滿(mǎn)足系統(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容量和布局布線(xiàn)難度,減小單層PCB板面積,從而最大限度地優(yōu)化系統(tǒng)體積尺寸。
基于FPGA和CMOS的成像系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。CMOS芯片上電復(fù)位后,經(jīng)過(guò)硬件配置電路設(shè)置基本工作方式,再使用SCCB總線(xiàn)設(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)換芯片轉(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)格滿(mǎn)足阻抗匹配,避免了信號(hào)過(guò)沖等失調(diào)問(wèn)題[5]。
系統(tǒng)中沒(méi)有搭載DDR2外部存儲(chǔ)器,一方面是考慮到系統(tǒng)的小型化設(shè)計(jì)和成本控制,DDR2芯片自身及其復(fù)雜的布局布線(xiàn)都會(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總線(xiàn)進(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)采用的圖像處理算法是分段線(xiàn)性映射法,主要作用是增強(qiáng)圖像細(xì)節(jié)效果、提高對(duì)比度。算法計(jì)算時(shí)需要取得一幀圖像的有效像素灰度的最大值、最小值及均值,在最小值到灰度均值和灰度均值到最大值兩段分別作線(xiàn)性映射,使有效像素的灰度值拉伸到整個(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)行分段線(xià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ò)分段線(xiàn)性映射處理的圖像僅延遲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ù)不丟失的情況下滿(mǎn)足輸出數(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容量滿(mǎn)足寫(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ǔ)空間即可滿(mǎn)足緩存需要。
由SCCB總線(xiàn)配置模塊輸入時(shí)鐘高于輸出時(shí)鐘,同時(shí)通過(guò)調(diào)整行場(chǎng)消隱寬度等配置使輸入有效數(shù)據(jù)盡量類(lèi)似于輸出數(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ù)滿(mǎn)足協(xié)議要求,仿真時(shí)序圖如圖8所示,圖像清晰且沒(méi)有丟幀現(xiàn)象,采集圖像如圖10(c)所示;另一路DSP信號(hào)使用Signal Tap在FPGA中嵌入監(jiān)測(cè)模塊并觀(guān)察發(fā)送數(shù)據(jù),如圖9所示。
3.2 輸出圖像效果
為驗(yàn)證分段線(xiàn)性映射算法的圖像增強(qiáng)效果,對(duì)不同場(chǎng)景、不同光照的圖像取原始圖和映射結(jié)果圖。選取如圖10所示一處場(chǎng)景進(jìn)行對(duì)比發(fā)現(xiàn),在較強(qiáng)光照下,由于圖像對(duì)比度較高,視覺(jué)效果較好,分段線(xiàn)性映射算法有一定效果,但不明顯,如圖10(c)、圖10(d);但是在較弱光照下,原圖對(duì)比度很低,經(jīng)過(guò)分段線(xiàn)性映射后的圖像的對(duì)比度顯著提升,原本無(wú)法辨別的細(xì)節(jié)信息明顯改善,圖像灰度均值也有所提升,如圖10(a)、圖10(b),證明分段線(xiàn)性映射算法模塊對(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)