李華
(商洛學(xué)院 電子信息與電氣工程學(xué)院,陜西商洛726000)
基于FPGA+COMS的小型彩色數(shù)字相機(jī)系統(tǒng)設(shè)計(jì)
李華
(商洛學(xué)院 電子信息與電氣工程學(xué)院,陜西商洛726000)
為了滿足實(shí)際項(xiàng)目需求,設(shè)計(jì)了一套基于FPGA結(jié)合CMOS圖像探測器的輕小型彩色數(shù)字相機(jī)系統(tǒng)。根據(jù)項(xiàng)目特點(diǎn),選用了一片Xilinx公司FPGA作為硬件設(shè)計(jì)平臺,使用Verilog-HDL硬件描述語言并采用自上而下的模塊化設(shè)計(jì)對整個系統(tǒng)進(jìn)行硬件描述,對圖像探測器時序驅(qū)動、輸出圖像格式重組、彩色圖像恢復(fù)等功能進(jìn)行了詳細(xì)的設(shè)計(jì)。試驗(yàn)結(jié)果表明,所設(shè)計(jì)的圖像采集系統(tǒng)在1 280*1 024模式、25 f·s-1的情況下可以實(shí)時穩(wěn)定的實(shí)現(xiàn)彩色圖像的顯示與存儲。
押CMOS圖像探測器;FPGA;去馬賽克;吉比特以太網(wǎng)
人類自誕生以來就努力尋找能夠代替人眼和彌補(bǔ)人眼先天不足的產(chǎn)品,以便拓展人類的視野,增強(qiáng)認(rèn)識世界和改造世界的能力。數(shù)字相機(jī)的誕生使這一愿望得以實(shí)現(xiàn),數(shù)字相機(jī)起源于20世紀(jì)80年代中期[1],20世紀(jì)70年代末,單片機(jī)的誕生在數(shù)字相機(jī)中起到了舉足輕重的作用,但是由于單片機(jī)資源有限,系統(tǒng)大都笨重,且功能簡單。隨著數(shù)字相機(jī)要求的不斷提高,基于DSP、FPGA等高端微處理器的數(shù)字相機(jī)開始發(fā)展,大大提高了圖像采集能力,且圖像質(zhì)量也突飛猛進(jìn)[2-3]。但是,縱觀國內(nèi)數(shù)字相機(jī)研制現(xiàn)狀,其體積重量普遍偏大,不適合特定場合的應(yīng)用,且彩色圖像質(zhì)量還有待提升[4-5],定制產(chǎn)品在時間和經(jīng)濟(jì)上往往又不劃算。本文正是在這樣的背景下,設(shè)計(jì)了一套以FPGA為核心控制單元,結(jié)合CMOS圖像探測器的實(shí)時彩色圖像采集系統(tǒng),克服了以上不足,不管是系統(tǒng)體積重量,還是彩色圖像質(zhì)量都取得了較好的效果。
本文彩色數(shù)字相機(jī)的原理框圖如圖1所示。為了滿足體積和重量要求,成像器件沒有使用CCD,而是采用了集成度更高的CMOS圖像探測器,從開發(fā)難度和應(yīng)用場合考慮,本文探測器最終選擇了ON公司的VITA1 300,分辨率1 280* 1 024,外形尺寸僅14 mm*14 mm。FPGA使用的是Xilinx公司的SPARTAN3,型號為XC3S1000,不僅可以為FPGA提供上電加載配置,而且還可以為應(yīng)用提供數(shù)據(jù)存儲空間,省去了外掛程序存儲Flash的體積重量。同時,SPARTAN3系列僅需提供兩組電源,內(nèi)核VCCINT為1.2 V,其他的VCCAUX和VCCIO可以接3.3 V。GigE傳輸協(xié)議芯片是MARVELL公司的MX88E1111。
圖1 相機(jī)系統(tǒng)原理框圖
系統(tǒng)的工作過程為:當(dāng)系統(tǒng)+5 V電穩(wěn)定后,首先通過FPGA對CMOS圖像探測器的寄存器進(jìn)行配置,使其正常工作并輸出Bayer格式圖像,然后將Bayer格式圖像送入FPGA,由于VITA1 300的圖像格式比較獨(dú)特,不是順序輸出,因此,先對其進(jìn)行數(shù)據(jù)整形,然后進(jìn)行彩色恢復(fù)、白平衡等彩色相關(guān)處理,最后經(jīng)過GigE接口結(jié)合UDP協(xié)議將彩色圖像輸出,整個處理過程以流水線的形式進(jìn)行,做到了圖像的實(shí)時處理與輸出。
彩色數(shù)字相機(jī)設(shè)計(jì)重點(diǎn)體現(xiàn)在三個方面,分別是基于Verilog-HDL硬件描述語言的CMOS圖像探測器驅(qū)動時序設(shè)計(jì)、圖像數(shù)據(jù)整形設(shè)計(jì)和彩色圖像恢復(fù)設(shè)計(jì)。
2.1 圖像探測器驅(qū)動時序設(shè)計(jì)
本文采用的CMOS圖像探測器—VITA1300是ON公司一款性能優(yōu)良的CMOS光電轉(zhuǎn)換器件,130萬像素,支持全局快門和卷簾快門,內(nèi)置10 bit AD,最高讀出速率150 fps,采用SPI接口進(jìn)行寄存器配置,功耗低,溫度適應(yīng)范圍寬。廣泛應(yīng)用于機(jī)器視覺、安防監(jiān)控和二維碼掃描等成像領(lǐng)域。
VITA1300從加電到正常工作需要6個過程,分別為:啟動、低功耗、準(zhǔn)備1、準(zhǔn)備2、空閑和圖像輸出。其中,改變積分時間和幀頻、開窗等比較常用的參數(shù)在成像階段就可以改變,而像改變模擬前端等操作則要將成像關(guān)閉進(jìn)行,否則會影響圖像采集。不同過程的切換通過寄存器的改變來實(shí)現(xiàn),因此,VITA1300時序的設(shè)計(jì)實(shí)際上是改變寄存器的過程。
VITA1300的 寄 存 器 通 過SPI(Serial Peripheral Interface)接口進(jìn)行配置,SPI由4個信號組成,分別是串行時鐘sck,片選信號ss_n,串行輸入數(shù)據(jù)mosi,串行輸出數(shù)據(jù)miso。SPI數(shù)據(jù)的輸入同步于串行時鐘,即一個串行時鐘輸入一個串行數(shù)據(jù),而一個寄存器的配置由9位地址、一位讀寫標(biāo)識和16位數(shù)據(jù)共26位組成,因此,成功寫入一個寄存器需要26個串行時鐘,在配置寄存器時,要保持片選是低電平,即ss_n為低。因?yàn)閂ITA1300的寄存器很多,因此,要改變其工作狀態(tài)往往要連著配置數(shù)個甚至數(shù)十個寄存器,這時就要采用連續(xù)配置模式,即26位為一組,連續(xù)輸入,如圖2(a)所示是連續(xù)配置了6個寄存器,但是,連續(xù)配置要注意的是兩個寄存器之間的間隔至少為2個SPI時鐘,否則,配置可能會失效。連續(xù)配置的同時,ss_n一直保持低電平片選狀態(tài),直到最后一個寄存器配置完成,再將其拉高。
SPI各信號的相位關(guān)系也有較嚴(yán)格的要求,sck的上升沿最好打在mosi的數(shù)據(jù)中心,這樣,從FPGA到探測器雖然會有延遲,但是仍能滿足建立保持時間的要求,具體相位關(guān)系如圖2(b)所示。
圖2 圖像探測器寫寄存器時序布局布線后仿真波形
VITA1300圖像探測器雖然寄存器很多,但是大部分都是在成像前配置,配置一次基本就不用再改動了,只有積分時間和積分時間單位是要根據(jù)成像場景進(jìn)行實(shí)時修正,為此,相機(jī)設(shè)計(jì)了自動曝光功能,因此,積分時間也不用人為修改,所以,本文相機(jī)的智能程度較高。
2.2 圖像數(shù)據(jù)整形設(shè)計(jì)
VITA1300通過并行總線輸出圖像時,像素是按照圖像塊的形式輸出,8個像素組成一個塊,奇偶圖像塊內(nèi)的像素順序是不同的,具體格式如圖3所示。
圖3 VITA1300圖像輸出格式
對照圖3可以看出,直接從探測器輸出的圖像數(shù)據(jù)雜亂無章,不能直接用于后端計(jì)算和處理,因此,必需進(jìn)行數(shù)據(jù)整形。仔細(xì)分析圖3數(shù)據(jù)可知,像素是有規(guī)律的,即奇數(shù)塊的像素順序都一樣,偶數(shù)塊的像素順序也都一樣。這樣,只要分別對奇偶圖像塊進(jìn)行數(shù)據(jù)整形即可完成圖像的順序輸出。
本文數(shù)據(jù)整形設(shè)計(jì)的思路是在FPGA內(nèi)開辟兩塊8個像素深的RAM,然后將像素存入,再按照圖3的順序反讀出即可。具體設(shè)計(jì):首先在FPGA內(nèi)利用BlockRAM例化兩塊8個像素深的RAM,記為RAM_A和RAM_B,當(dāng)探測器的像素按照圖3的順序輸入FPGA時,首先將第0個圖像塊的數(shù)據(jù)存入RAM_A,當(dāng)?shù)?個圖像塊來時,將其存入RAM_B中,在存第1個圖像塊的同時,啟用RAM_A的讀邏輯,將RAM_A中第0個圖像塊的數(shù)據(jù)讀出,讀出順序按照圖3偶數(shù)圖像塊的反順序,即第一次讀的是RAM_A中地址0的像元,第二次讀的是RAM_A中地址4的像元,第三次讀的是RAM_A中地址1的像元,第四次讀的是RAM_A中地址5的像元,第五次讀的是RAM_A中地址2的像元,第六次讀的是RAM_A中地址6的像元,第七次讀的是RAM_A中地址3的像元,第八次讀的是RAM_A中地址7的像元,這樣,圖像塊0的數(shù)據(jù)就順序輸出了。因?yàn)槠媾紙D像塊的像素數(shù)目是一樣的,因此,讀完RAM_A中數(shù)據(jù)的同時,RAM_B也剛好寫完圖像塊1的數(shù)據(jù),同時圖像塊2的數(shù)據(jù)也剛好到來,這時,將圖像塊2的數(shù)據(jù)存入RAM_A,對RAM_B中塊1的數(shù)據(jù)進(jìn)行類似圖像塊0的整形操作。如此反復(fù),就完成了圖像探測器數(shù)據(jù)格式的順序輸出。圖4是時序波形仿真圖,datain是探測器輸出的像素,dataout是本文設(shè)計(jì)整形后的圖像輸出,可以看出,dataout的順序是將datain的數(shù)據(jù)按照圖3的順序進(jìn)行了整形,證明了設(shè)計(jì)的可行性與正確性。
圖4 整形時序仿真波形
2.3 彩色圖像恢復(fù)設(shè)計(jì)
本文相機(jī)使用的彩色恢復(fù)算法基于水平垂直方向理論,即圖像水平和垂直軸線分布的高頻信息對保持恢復(fù)彩色圖像質(zhì)量起著決定性作用[6]。為了消除彩色插值過程中的偽彩色,采用的方法是充分利用三個顏色通道的相關(guān)性。因?yàn)樽匀唤绲膱D像R、G、B三通道是高度相關(guān)的,所以假設(shè)三通道的顏色差值,一般是G-R、G-B在水平和垂直方向是固定的。因此,本算法正是充分考慮到這一特性而設(shè)計(jì)。
首先,對Bayer格式圖像進(jìn)行二階拉普拉斯修正,插值得到紅色或藍(lán)色像素處的水平方向和垂直方向綠色分量,這時,再依據(jù)色差梯度來選擇其中一個作為缺失綠色分量,由圖像原理可知,一個方向上的色差梯度大,表明這個方向的色差值變化劇烈,不易估計(jì),因此,取梯度值小的作為插值結(jié)果。當(dāng)整幅圖像的綠色分量得到后,仍然用色差梯度法來估計(jì)缺失的紅、藍(lán)分量,求解過程完全是一個線性過程。此時,已經(jīng)得到彩色圖像,為了進(jìn)一步降低偽彩色對彩色圖像的影響,設(shè)計(jì)上構(gòu)造低通濾波器,從而保留圖像的低頻成份,這樣可以大大降低偽彩色的出現(xiàn)[7-8]。
本文彩色恢復(fù)算法性能優(yōu)良,以Kodak圖庫的圖像進(jìn)行試驗(yàn),得到的彩色圖像如圖5所示,其中圖5(c)和圖5(d)是目前兩種較普遍采用的彩色恢復(fù)算法,可以看出,相比其他兩種算法,本文算法消除偽彩色能力最強(qiáng),彩色圖像效果最好??陀^評價方面,R、G、B三通道的PSNR統(tǒng)計(jì)如表1所示,同樣證明了算法良好的性能。
圖5 彩色恢復(fù)效果
由于本文相機(jī)系統(tǒng)采用了更小的CMOS圖像探測器和控制FPGA,因此,相機(jī)體積較其他數(shù)字相機(jī)更小,僅30 mm*30 mm*100 mm,重量僅有200 g。但是,相機(jī)彩色恢復(fù)算法卻在性能上進(jìn)行了較大的改善,圖6是本文相機(jī)實(shí)際拍攝得到的彩色圖像,可以看出彩色圖像細(xì)節(jié)豐富,色彩逼真,沒有因?yàn)轶w積重量的減少造成成像質(zhì)量的下降。
表1 3種算法恢復(fù)結(jié)果的PSNR數(shù)值統(tǒng)計(jì)(單位:dB)
圖6 相機(jī)拍攝的彩色圖像
本文設(shè)計(jì)了一套以FPGA為核心器件,結(jié)合CMOS圖像探測器的彩色圖像采集系統(tǒng),該系統(tǒng)在為探測器提供時序的同時,增加了片內(nèi)圖像數(shù)據(jù)整形功能和基于Bayer格式圖像的彩色圖像恢復(fù)功能。整個成像系統(tǒng)不管是在重量體積,還是輸出的彩色圖像質(zhì)量方面都具有和當(dāng)前市場上工業(yè)相機(jī)競爭的實(shí)力。目前,該圖像采集系統(tǒng)已經(jīng)工程應(yīng)用,其優(yōu)良性能得到了用戶的好評。
[1]王 蓉.基于FPGA的高幀頻CMOS相機(jī)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].西安:西安工業(yè)大學(xué),2011:1-3.
[2]劉 濤.基于DSP和FPGA的高分辨率全景圖像實(shí)時處理系統(tǒng)硬件實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2011.
[3]石美紅,房 超,張衛(wèi)軍,等.基于FPGA的線陣CCD圖像采集控制的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(5): 177-178.
[4]Henrique SM,He L W,Ross C.High-quality linear interpolation for demosaicing of Bayer-patterned color images[C].IEEE International Conference on Acoustics, Speech and Signal Processing,Quebec,Canada,2004 (3):485-488.
[5]騰 偉,安博文.基于FPGA+DSP技術(shù)的Bayer格式圖像預(yù)處理[J].電子設(shè)計(jì)工程,2010,18(10):145-147.
[6]Zhang L,Wu X L,Antoni B,et al.Color Demosaicking by Local Directional Interpolation and Nonlocal Adaptive Thresholding[J].Journal of Electronic Imaging, 2011,20(2):203016.
[7]朱 波,汶德勝,王 飛.改進(jìn)的Bayer插值算法及其硬件實(shí)現(xiàn)[J].光電子激光,2013,24(6):1211-1218.
[8]李 華,朱 波.基于FPGA的彩色圖像實(shí)時采集系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2014,2(29):258-265.
(責(zé)任編輯:李堆淑)
A FPGA+COMS-based Design of Small Color Digital Camera
LIHua
(College of Electronic Information and Electrical Engineering,Shangluo University,Shangluo 726000, Shaanxi)
In order to meet the actual needs of the engineering project,light and compact real-time digital camera was designed based on FPGA combined with CMOSsensor.Based on the characteristics of the system,one Field Programmable Gate Array(FPGA)is chosen as the hardware design platform,and the whole circuit such as sensor timing,image reshaping and demosaicking are described with Verilog-HDL to perform the modularization design from top to bottom.Experimental results showthat continuous and realtime 1 280*1 024 resolution data read-out could be achieved at speed 25 f·s-1.
CMOSimage sensor;FPGA;demosaicking;GigE
TP391.4
:A
:1674-0033(2014)04-0027-05
10.13440/j.slxy.1674-0033.2014.04.007
2014-05-23
陜西省教育廳專項(xiàng)科研計(jì)劃項(xiàng)目(2013JK1057)
李 華,女,陜西臨潼人,碩士,講師