李華
(商洛學(xué)院 電子信息與電氣工程學(xué)院,陜西商洛726000)
基于FPGA+COMS的小型彩色數(shù)字相機(jī)系統(tǒng)設(shè)計(jì)
李華
(商洛學(xué)院 電子信息與電氣工程學(xué)院,陜西商洛726000)
為了滿(mǎn)足實(shí)際項(xiàng)目需求,設(shè)計(jì)了一套基于FPGA結(jié)合CMOS圖像探測(cè)器的輕小型彩色數(shù)字相機(jī)系統(tǒng)。根據(jù)項(xiàng)目特點(diǎn),選用了一片Xilinx公司FPGA作為硬件設(shè)計(jì)平臺(tái),使用Verilog-HDL硬件描述語(yǔ)言并采用自上而下的模塊化設(shè)計(jì)對(duì)整個(gè)系統(tǒng)進(jìn)行硬件描述,對(duì)圖像探測(cè)器時(shí)序驅(qū)動(dòng)、輸出圖像格式重組、彩色圖像恢復(fù)等功能進(jìn)行了詳細(xì)的設(shè)計(jì)。試驗(yàn)結(jié)果表明,所設(shè)計(jì)的圖像采集系統(tǒng)在1 280*1 024模式、25 f·s-1的情況下可以實(shí)時(shí)穩(wěn)定的實(shí)現(xiàn)彩色圖像的顯示與存儲(chǔ)。
押CMOS圖像探測(cè)器;FPGA;去馬賽克;吉比特以太網(wǎng)
人類(lèi)自誕生以來(lái)就努力尋找能夠代替人眼和彌補(bǔ)人眼先天不足的產(chǎn)品,以便拓展人類(lèi)的視野,增強(qiáng)認(rèn)識(shí)世界和改造世界的能力。數(shù)字相機(jī)的誕生使這一愿望得以實(shí)現(xiàn),數(shù)字相機(jī)起源于20世紀(jì)80年代中期[1],20世紀(jì)70年代末,單片機(jī)的誕生在數(shù)字相機(jī)中起到了舉足輕重的作用,但是由于單片機(jī)資源有限,系統(tǒng)大都笨重,且功能簡(jiǎn)單。隨著數(shù)字相機(jī)要求的不斷提高,基于DSP、FPGA等高端微處理器的數(shù)字相機(jī)開(kāi)始發(fā)展,大大提高了圖像采集能力,且圖像質(zhì)量也突飛猛進(jìn)[2-3]。但是,縱觀(guān)國(guó)內(nèi)數(shù)字相機(jī)研制現(xiàn)狀,其體積重量普遍偏大,不適合特定場(chǎng)合的應(yīng)用,且彩色圖像質(zhì)量還有待提升[4-5],定制產(chǎn)品在時(shí)間和經(jīng)濟(jì)上往往又不劃算。本文正是在這樣的背景下,設(shè)計(jì)了一套以FPGA為核心控制單元,結(jié)合CMOS圖像探測(cè)器的實(shí)時(shí)彩色圖像采集系統(tǒng),克服了以上不足,不管是系統(tǒng)體積重量,還是彩色圖像質(zhì)量都取得了較好的效果。
本文彩色數(shù)字相機(jī)的原理框圖如圖1所示。為了滿(mǎn)足體積和重量要求,成像器件沒(méi)有使用CCD,而是采用了集成度更高的CMOS圖像探測(cè)器,從開(kāi)發(fā)難度和應(yīng)用場(chǎng)合考慮,本文探測(cè)器最終選擇了ON公司的VITA1 300,分辨率1 280* 1 024,外形尺寸僅14 mm*14 mm。FPGA使用的是Xilinx公司的SPARTAN3,型號(hào)為XC3S1000,不僅可以為FPGA提供上電加載配置,而且還可以為應(yīng)用提供數(shù)據(jù)存儲(chǔ)空間,省去了外掛程序存儲(chǔ)Flash的體積重量。同時(shí),SPARTAN3系列僅需提供兩組電源,內(nèi)核VCCINT為1.2 V,其他的VCCAUX和VCCIO可以接3.3 V。GigE傳輸協(xié)議芯片是MARVELL公司的MX88E1111。
圖1 相機(jī)系統(tǒng)原理框圖
系統(tǒng)的工作過(guò)程為:當(dāng)系統(tǒng)+5 V電穩(wěn)定后,首先通過(guò)FPGA對(duì)CMOS圖像探測(cè)器的寄存器進(jìn)行配置,使其正常工作并輸出Bayer格式圖像,然后將Bayer格式圖像送入FPGA,由于VITA1 300的圖像格式比較獨(dú)特,不是順序輸出,因此,先對(duì)其進(jìn)行數(shù)據(jù)整形,然后進(jìn)行彩色恢復(fù)、白平衡等彩色相關(guān)處理,最后經(jīng)過(guò)GigE接口結(jié)合UDP協(xié)議將彩色圖像輸出,整個(gè)處理過(guò)程以流水線(xiàn)的形式進(jìn)行,做到了圖像的實(shí)時(shí)處理與輸出。
彩色數(shù)字相機(jī)設(shè)計(jì)重點(diǎn)體現(xiàn)在三個(gè)方面,分別是基于Verilog-HDL硬件描述語(yǔ)言的CMOS圖像探測(cè)器驅(qū)動(dòng)時(shí)序設(shè)計(jì)、圖像數(shù)據(jù)整形設(shè)計(jì)和彩色圖像恢復(fù)設(shè)計(jì)。
2.1 圖像探測(cè)器驅(qū)動(dòng)時(shí)序設(shè)計(jì)
本文采用的CMOS圖像探測(cè)器—VITA1300是ON公司一款性能優(yōu)良的CMOS光電轉(zhuǎn)換器件,130萬(wàn)像素,支持全局快門(mén)和卷簾快門(mén),內(nèi)置10 bit AD,最高讀出速率150 fps,采用SPI接口進(jìn)行寄存器配置,功耗低,溫度適應(yīng)范圍寬。廣泛應(yīng)用于機(jī)器視覺(jué)、安防監(jiān)控和二維碼掃描等成像領(lǐng)域。
VITA1300從加電到正常工作需要6個(gè)過(guò)程,分別為:?jiǎn)?dòng)、低功耗、準(zhǔn)備1、準(zhǔn)備2、空閑和圖像輸出。其中,改變積分時(shí)間和幀頻、開(kāi)窗等比較常用的參數(shù)在成像階段就可以改變,而像改變模擬前端等操作則要將成像關(guān)閉進(jìn)行,否則會(huì)影響圖像采集。不同過(guò)程的切換通過(guò)寄存器的改變來(lái)實(shí)現(xiàn),因此,VITA1300時(shí)序的設(shè)計(jì)實(shí)際上是改變寄存器的過(guò)程。
VITA1300的 寄 存 器 通 過(guò)SPI(Serial Peripheral Interface)接口進(jìn)行配置,SPI由4個(gè)信號(hào)組成,分別是串行時(shí)鐘sck,片選信號(hào)ss_n,串行輸入數(shù)據(jù)mosi,串行輸出數(shù)據(jù)miso。SPI數(shù)據(jù)的輸入同步于串行時(shí)鐘,即一個(gè)串行時(shí)鐘輸入一個(gè)串行數(shù)據(jù),而一個(gè)寄存器的配置由9位地址、一位讀寫(xiě)標(biāo)識(shí)和16位數(shù)據(jù)共26位組成,因此,成功寫(xiě)入一個(gè)寄存器需要26個(gè)串行時(shí)鐘,在配置寄存器時(shí),要保持片選是低電平,即ss_n為低。因?yàn)閂ITA1300的寄存器很多,因此,要改變其工作狀態(tài)往往要連著配置數(shù)個(gè)甚至數(shù)十個(gè)寄存器,這時(shí)就要采用連續(xù)配置模式,即26位為一組,連續(xù)輸入,如圖2(a)所示是連續(xù)配置了6個(gè)寄存器,但是,連續(xù)配置要注意的是兩個(gè)寄存器之間的間隔至少為2個(gè)SPI時(shí)鐘,否則,配置可能會(huì)失效。連續(xù)配置的同時(shí),ss_n一直保持低電平片選狀態(tài),直到最后一個(gè)寄存器配置完成,再將其拉高。
SPI各信號(hào)的相位關(guān)系也有較嚴(yán)格的要求,sck的上升沿最好打在mosi的數(shù)據(jù)中心,這樣,從FPGA到探測(cè)器雖然會(huì)有延遲,但是仍能滿(mǎn)足建立保持時(shí)間的要求,具體相位關(guān)系如圖2(b)所示。
圖2 圖像探測(cè)器寫(xiě)寄存器時(shí)序布局布線(xiàn)后仿真波形
VITA1300圖像探測(cè)器雖然寄存器很多,但是大部分都是在成像前配置,配置一次基本就不用再改動(dòng)了,只有積分時(shí)間和積分時(shí)間單位是要根據(jù)成像場(chǎng)景進(jìn)行實(shí)時(shí)修正,為此,相機(jī)設(shè)計(jì)了自動(dòng)曝光功能,因此,積分時(shí)間也不用人為修改,所以,本文相機(jī)的智能程度較高。
2.2 圖像數(shù)據(jù)整形設(shè)計(jì)
VITA1300通過(guò)并行總線(xiàn)輸出圖像時(shí),像素是按照?qǐng)D像塊的形式輸出,8個(gè)像素組成一個(gè)塊,奇偶圖像塊內(nèi)的像素順序是不同的,具體格式如圖3所示。
圖3 VITA1300圖像輸出格式
對(duì)照?qǐng)D3可以看出,直接從探測(cè)器輸出的圖像數(shù)據(jù)雜亂無(wú)章,不能直接用于后端計(jì)算和處理,因此,必需進(jìn)行數(shù)據(jù)整形。仔細(xì)分析圖3數(shù)據(jù)可知,像素是有規(guī)律的,即奇數(shù)塊的像素順序都一樣,偶數(shù)塊的像素順序也都一樣。這樣,只要分別對(duì)奇偶圖像塊進(jìn)行數(shù)據(jù)整形即可完成圖像的順序輸出。
本文數(shù)據(jù)整形設(shè)計(jì)的思路是在FPGA內(nèi)開(kāi)辟兩塊8個(gè)像素深的RAM,然后將像素存入,再按照?qǐng)D3的順序反讀出即可。具體設(shè)計(jì):首先在FPGA內(nèi)利用BlockRAM例化兩塊8個(gè)像素深的RAM,記為RAM_A和RAM_B,當(dāng)探測(cè)器的像素按照?qǐng)D3的順序輸入FPGA時(shí),首先將第0個(gè)圖像塊的數(shù)據(jù)存入RAM_A,當(dāng)?shù)?個(gè)圖像塊來(lái)時(shí),將其存入RAM_B中,在存第1個(gè)圖像塊的同時(shí),啟用RAM_A的讀邏輯,將RAM_A中第0個(gè)圖像塊的數(shù)據(jù)讀出,讀出順序按照?qǐng)D3偶數(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像塊的像素?cái)?shù)目是一樣的,因此,讀完RAM_A中數(shù)據(jù)的同時(shí),RAM_B也剛好寫(xiě)完圖像塊1的數(shù)據(jù),同時(shí)圖像塊2的數(shù)據(jù)也剛好到來(lái),這時(shí),將圖像塊2的數(shù)據(jù)存入RAM_A,對(duì)RAM_B中塊1的數(shù)據(jù)進(jìn)行類(lèi)似圖像塊0的整形操作。如此反復(fù),就完成了圖像探測(cè)器數(shù)據(jù)格式的順序輸出。圖4是時(shí)序波形仿真圖,datain是探測(cè)器輸出的像素,dataout是本文設(shè)計(jì)整形后的圖像輸出,可以看出,dataout的順序是將datain的數(shù)據(jù)按照?qǐng)D3的順序進(jìn)行了整形,證明了設(shè)計(jì)的可行性與正確性。
圖4 整形時(shí)序仿真波形
2.3 彩色圖像恢復(fù)設(shè)計(jì)
本文相機(jī)使用的彩色恢復(fù)算法基于水平垂直方向理論,即圖像水平和垂直軸線(xiàn)分布的高頻信息對(duì)保持恢復(fù)彩色圖像質(zhì)量起著決定性作用[6]。為了消除彩色插值過(guò)程中的偽彩色,采用的方法是充分利用三個(gè)顏色通道的相關(guān)性。因?yàn)樽匀唤绲膱D像R、G、B三通道是高度相關(guān)的,所以假設(shè)三通道的顏色差值,一般是G-R、G-B在水平和垂直方向是固定的。因此,本算法正是充分考慮到這一特性而設(shè)計(jì)。
首先,對(duì)Bayer格式圖像進(jìn)行二階拉普拉斯修正,插值得到紅色或藍(lán)色像素處的水平方向和垂直方向綠色分量,這時(shí),再依據(jù)色差梯度來(lái)選擇其中一個(gè)作為缺失綠色分量,由圖像原理可知,一個(gè)方向上的色差梯度大,表明這個(gè)方向的色差值變化劇烈,不易估計(jì),因此,取梯度值小的作為插值結(jié)果。當(dāng)整幅圖像的綠色分量得到后,仍然用色差梯度法來(lái)估計(jì)缺失的紅、藍(lán)分量,求解過(guò)程完全是一個(gè)線(xiàn)性過(guò)程。此時(shí),已經(jīng)得到彩色圖像,為了進(jìn)一步降低偽彩色對(duì)彩色圖像的影響,設(shè)計(jì)上構(gòu)造低通濾波器,從而保留圖像的低頻成份,這樣可以大大降低偽彩色的出現(xiàn)[7-8]。
本文彩色恢復(fù)算法性能優(yōu)良,以Kodak圖庫(kù)的圖像進(jìn)行試驗(yàn),得到的彩色圖像如圖5所示,其中圖5(c)和圖5(d)是目前兩種較普遍采用的彩色恢復(fù)算法,可以看出,相比其他兩種算法,本文算法消除偽彩色能力最強(qiáng),彩色圖像效果最好。客觀(guān)評(píng)價(jià)方面,R、G、B三通道的PSNR統(tǒng)計(jì)如表1所示,同樣證明了算法良好的性能。
圖5 彩色恢復(fù)效果
由于本文相機(jī)系統(tǒng)采用了更小的CMOS圖像探測(cè)器和控制FPGA,因此,相機(jī)體積較其他數(shù)字相機(jī)更小,僅30 mm*30 mm*100 mm,重量?jī)H有200 g。但是,相機(jī)彩色恢復(fù)算法卻在性能上進(jìn)行了較大的改善,圖6是本文相機(jī)實(shí)際拍攝得到的彩色圖像,可以看出彩色圖像細(xì)節(jié)豐富,色彩逼真,沒(méi)有因?yàn)轶w積重量的減少造成成像質(zhì)量的下降。
表1 3種算法恢復(fù)結(jié)果的PSNR數(shù)值統(tǒng)計(jì)(單位:dB)
圖6 相機(jī)拍攝的彩色圖像
本文設(shè)計(jì)了一套以FPGA為核心器件,結(jié)合CMOS圖像探測(cè)器的彩色圖像采集系統(tǒng),該系統(tǒng)在為探測(cè)器提供時(shí)序的同時(shí),增加了片內(nèi)圖像數(shù)據(jù)整形功能和基于Bayer格式圖像的彩色圖像恢復(fù)功能。整個(gè)成像系統(tǒng)不管是在重量體積,還是輸出的彩色圖像質(zhì)量方面都具有和當(dāng)前市場(chǎng)上工業(yè)相機(jī)競(jìng)爭(zhēng)的實(shí)力。目前,該圖像采集系統(tǒng)已經(jīng)工程應(yīng)用,其優(yōu)良性能得到了用戶(hù)的好評(píng)。
[1]王 蓉.基于FPGA的高幀頻CMOS相機(jī)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].西安:西安工業(yè)大學(xué),2011:1-3.
[2]劉 濤.基于DSP和FPGA的高分辨率全景圖像實(shí)時(shí)處理系統(tǒng)硬件實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2011.
[3]石美紅,房 超,張衛(wèi)軍,等.基于FPGA的線(xiàn)陣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í)時(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
陜西省教育廳專(zhuān)項(xiàng)科研計(jì)劃項(xiàng)目(2013JK1057)
李 華,女,陜西臨潼人,碩士,講師