文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)04-0043-03
0 引言
近年來,,快速發(fā)展的CMOS圖像傳感器因具有高集成、功耗低,、工藝簡單和開發(fā)周期短等優(yōu)點(diǎn),,已被廣泛應(yīng)用在工業(yè)、監(jiān)控,、航空和航天等眾多領(lǐng)域[1-2],。目前我國航天領(lǐng)域中攝像設(shè)備的分辨率普遍不高,,畫面質(zhì)量有待提高,嚴(yán)重制約著我國空間可視監(jiān)控技術(shù)的進(jìn)一步發(fā)展[3],,因此研究以CMOS圖像傳感器作為光電轉(zhuǎn)換器件的數(shù)字高清遙感成像技術(shù),,在航天領(lǐng)域具有較高的實(shí)際應(yīng)用價(jià)值。
1 硬件平臺及基本工作原理
本文主要采用了CMOS圖像傳感器,、可編程邏輯門陣列FPGA,、第二代雙倍速率同步動態(tài)隨機(jī)存儲器(Double Date Rate Synchronous Dynamic Random Access,DDR2),、視頻串行器等,,搭建了一個(gè)可實(shí)現(xiàn)圖像實(shí)時(shí)采集、預(yù)處理及傳輸功能的高清成像系統(tǒng),,如圖1所示,。本文采用的傳感器是APTINA公司的MT9M034,它集成了模擬圖像采樣和模數(shù)轉(zhuǎn)換及在片自動曝光等功能,,并支持720p60的高清視頻,,具有重量輕、體積小,、功耗低,、動態(tài)范圍寬等優(yōu)點(diǎn),適合航天的應(yīng)用場景,。
FPGA作為系統(tǒng)主處理器,,主要完成對傳感器的初始化和接口控制,并對傳感器輸出的圖像數(shù)據(jù)進(jìn)行采集和預(yù)處理,,以提高圖像質(zhì)量并供顯示,這些處理主要包括時(shí)序調(diào)整,、圖像類型轉(zhuǎn)換,、圖像預(yù)處理、數(shù)據(jù)存儲,、高清數(shù)字分量串行接口(High Definition Serial Digital Interface,,HD-SDI)視頻合成等。本文FPGA選用的是Xilinx公司的 XC6SLX75t,,它內(nèi)部具有豐富的邏輯,、存儲資源及用戶接口。
為了將圖像傳輸至監(jiān)視器上呈現(xiàn)出來,,本系統(tǒng)選用了National Semiconductor公司的芯片LHM0340作為數(shù)字視頻串行器,,它對接收到的亮度和色差信號的并行數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,輸出HD-SDI數(shù)據(jù)流并送往監(jiān)視器,。
2 FPGA設(shè)計(jì)
根據(jù)模塊化的設(shè)計(jì)思路,,將FPGA的功能分為主控制接口,、傳感器接口、圖像預(yù)處理等6個(gè)子模塊來實(shí)現(xiàn),,如圖2所示,。
2.1 時(shí)鐘管理模塊
時(shí)鐘管理模塊接收外部晶振輸入的74.25 MHz時(shí)鐘,再利用FPGA的時(shí)鐘管理資源和全局時(shí)鐘資源產(chǎn)生74.25 MHz和148.5 MHz的全局時(shí)鐘,。其中,,除DDR2控制模塊和數(shù)字視頻合成模塊使用了兩個(gè)全局時(shí)鐘外,其他模塊均使用74.25 MHz全局時(shí)鐘,。
2.2 主控制接口模塊
如圖2所示,,該模塊連接其他各模塊并控制它們的運(yùn)作,產(chǎn)生其他各模塊的復(fù)位信號并通過對寄存器讀寫的方式產(chǎn)生系統(tǒng)控制信號,;另外,,主控接口模塊還支持通過異步串口連接上位機(jī)進(jìn)行通信和控制。
2.3 傳感器接口模塊
傳感器接口模塊的主要功能是對CMOS傳感器進(jìn)行復(fù)位及內(nèi)部寄存器的配置,、采集傳感器輸出的Bayer模式圖像數(shù)據(jù)并輸出符合格式要求的圖像數(shù)據(jù),。該模塊與傳感器通過I2C接口進(jìn)行通信,由于傳感器的分辨率是1 280×960,,為符合數(shù)字高清的標(biāo)準(zhǔn),,需對其稍作調(diào)整,轉(zhuǎn)換為1 280×720的分辨率,。
2.4 圖像預(yù)處理模塊
由于航天應(yīng)用場景中存在多種光照環(huán)境,,且遙感畫面動態(tài)范圍較大,為了使獲得的圖像在各種光照環(huán)境下都能呈現(xiàn)最佳的效果,,圖像預(yù)處理模塊采用了多種算法對傳感器輸出的圖像信號進(jìn)行處理,,這些處理包括壞點(diǎn)校正、去馬賽克,、自動白平衡,、色彩校正、伽馬校正,、色度空間轉(zhuǎn)換,、寬動態(tài)處理以及色度/亮度/飽和度/對比度調(diào)整。在FPGA設(shè)計(jì)時(shí),,將該模塊分割為8個(gè)算法子模塊和一個(gè)控制子模塊,,如圖3所示。
各模塊的輸入?yún)?shù)均通過主控模塊配置,。其中,,寬動態(tài)處理、色彩校正和色度空間轉(zhuǎn)換均采用了Xilinx公司的IP核予以實(shí)現(xiàn),,色度/亮度/飽和度/對比度調(diào)整則采用Lattice公司的IP核,,對其他幾個(gè)模塊介紹如下,。
2.4.1 壞點(diǎn)校正模塊
本模塊接收到的Bayer陣列型圖像數(shù)據(jù),其特點(diǎn)如圖4所示,,對任一像素而言,,若其為壞點(diǎn),則可利用同一行中其左右相鄰?fù)至康膬蓚€(gè)像素值來糾正,。
為得到3個(gè)相鄰的同類型分量像素,,需得到5個(gè)連續(xù)的像素。因此將模塊的輸入圖像數(shù)據(jù)作4級延遲,,與當(dāng)前輸入的數(shù)據(jù)一起組成5個(gè)像素,。對于這5個(gè)像素的中心像素,計(jì)算出其左右相鄰兩個(gè)同分量像素的平均值,,再分別乘上1.25,、1.5和2的系數(shù)構(gòu)成3種閾值以供不同場景使用。
根據(jù)主控制接口模塊的指示,,從3種閾值中選擇一種作為當(dāng)前閾值,,對中心像素進(jìn)行判斷,若超出該閾值則判為壞點(diǎn),,用已計(jì)算出的其相鄰?fù)至康钠骄荡嬖撓袼氐闹?,否則保持不變。利用FPGA來設(shè)計(jì)這一算法,,可實(shí)現(xiàn)流水線式的壞點(diǎn)檢測與校正功能,。
2.4.2 自動白平衡
自動白平衡算法有很多,其中應(yīng)用極為廣泛的是基于灰度世界理論:對于任一幅圖像,,當(dāng)它有足夠的色彩變化時(shí),,則它的RGB分量的均值會趨于相等。
相對于其他算法而言,,該算法簡單可靠且便于硬件實(shí)現(xiàn),,本文采用的即是這種基于灰度世界假設(shè)的算法[4],如圖5所示,。
圖像分割判斷模塊首先把圖像分塊,對每一塊計(jì)算其像素的標(biāo)準(zhǔn)差(即顏色變化的情況),,判斷是否是大色塊,,是否是過亮塊、過暗塊,。對于標(biāo)準(zhǔn)差越大的圖像塊,,說明其顏色越豐富,越符合灰度世界理論的假設(shè),,權(quán)重越大,;而標(biāo)準(zhǔn)差越小的塊則權(quán)重越小,。
計(jì)算模塊根據(jù)圖像分割模塊提供的信息,進(jìn)行全局的塊選取,,并按照灰度世界的假設(shè)進(jìn)行計(jì)算,,得到矯正過的圖像數(shù)據(jù)。
2.4.3 去馬賽克
去馬賽克算法的目的是將Bayer格式的圖像信號通過插值處理去馬賽克,,轉(zhuǎn)化成完整的RGB信號,。本模塊選用的是改進(jìn)的線性插值法[5]。
本模塊設(shè)有4個(gè)行緩存,,用于接收輸入的圖像數(shù)據(jù),。將當(dāng)前輸入的圖像數(shù)據(jù)以及從4個(gè)行緩存中讀出的數(shù)據(jù)分別進(jìn)行5級延遲,則可得到5×5的Bayer數(shù)據(jù)塊,。按照數(shù)據(jù)塊中心像素為R/G/B何種分量以及與其領(lǐng)域各像素相對關(guān)系的不同,,可總結(jié)出4種情況,分別如圖6所示,,中心像素點(diǎn)的坐標(biāo)為(3,,3)。對待插值像素(中心像素)的5×5鄰域內(nèi)數(shù)據(jù)塊在不同情況下通過不同的公式進(jìn)行插值運(yùn)算即可得出中心像素點(diǎn)R,、G,、B三分量的值。
2.4.4 伽馬校正
大多數(shù)的顯示設(shè)備的輸入電壓與顯示的彩色圖像強(qiáng)度成非線性的關(guān)系,,為了使顯示圖像和真實(shí)圖像相符,,得到更加自然、真實(shí),、悅目的畫面,,有必要對因?yàn)轱@示器特性造成的非線性誤差進(jìn)行伽馬校正。
本模塊通過預(yù)先設(shè)定伽馬校正數(shù)據(jù)表,,通過上位機(jī)經(jīng)過異步串口寫入FPGA,存入只讀存儲器中,,再進(jìn)行查表獲取伽馬校正后的數(shù)據(jù)。
2.5 DDR2控制模塊
DDR2控制模塊通過管理DDR2存儲芯片將圖像預(yù)處理模塊輸出的YCbCr格式數(shù)據(jù)進(jìn)行緩存并輸出,。其功能通過3個(gè)子模塊來實(shí)現(xiàn),,如圖7所示。子模塊1將接收到的16 bit并行數(shù)據(jù)進(jìn)行緩存,;子模塊2為Xilinx公司的DDR2控制器IP核,,它將子模塊1中的緩存數(shù)據(jù)以32位寫入DDR2,同樣以32位讀出發(fā)送至子模塊3再次進(jìn)行緩存,,最終恢復(fù)成16 bit并行數(shù)據(jù)輸出,。
2.6 數(shù)字視頻合成模塊
數(shù)字視頻合成模塊按照HD-SDI格式將數(shù)據(jù)合成為并行數(shù)據(jù),并送入串行器進(jìn)行并串轉(zhuǎn)換,。該模塊的功能通過3個(gè)子模塊來實(shí)現(xiàn),,分別是打包子模塊,、編碼子模塊、串行器接口子模塊,。
打包子模塊接收DDR2控制模塊輸出的圖像數(shù)據(jù),,通過對Y分量和C分量分別低位填零擴(kuò)展至20 bit并行,再根據(jù)2.2節(jié)所述主控制接口模塊的指示,,在圖像數(shù)據(jù)中插入HD-SDI格式所需的時(shí)間基準(zhǔn)信號及消隱,,打包輸出至編碼子模塊。
編碼子模塊為Xilinx公司的IP核,,它通過檢測輸入的視頻數(shù)據(jù)流,,提取時(shí)間基準(zhǔn)并進(jìn)行CRC校驗(yàn),再進(jìn)行HD-SDI編碼,,以20 bit并行輸出至串行器接口子模塊,。
串行器接口子模塊將輸入的20 bit并行數(shù)據(jù)用148.5 MHz時(shí)鐘進(jìn)行高速采樣,再利用FPGA的ODDR2資源雙沿發(fā)送將數(shù)據(jù)提速,,拆分成5 bit并行數(shù)據(jù),,最后用OBUFDS資源將其轉(zhuǎn)換為差分信號發(fā)送至串行器。
3 系統(tǒng)驗(yàn)證
本文通過ISE14.1開發(fā)環(huán)境進(jìn)行了FPGA代碼設(shè)計(jì)和仿真驗(yàn)證,。圖8是HD-SDI合成模塊的仿真結(jié)果,,圖9是本文成像系統(tǒng)在監(jiān)視器上的顯示結(jié)果對比,其中(a)是未啟動白平衡算法和伽馬校正的原始圖像,,(b)是經(jīng)過白平衡算法和伽馬校正等預(yù)處理后的圖像,,從兩者對比可以看出,未經(jīng)過預(yù)處理的圖像顏色失真,,而經(jīng)本文預(yù)處理后的圖像畫面逼真,,質(zhì)量更高。
4 結(jié)論
本文設(shè)計(jì)了一種基于FPGA的數(shù)字高清CMOS遙感成像系統(tǒng),,以FPGA為主處理器,,經(jīng)過對傳感器控制、圖像采集與圖像預(yù)處理,,得到了高質(zhì)量的遙感圖像,。通過軟件仿真和硬件測試,驗(yàn)證了該設(shè)計(jì)方案的正確性和有效性,。
參考文獻(xiàn)
[1] 范鐵道.基于FPGA的數(shù)字高清CCD攝像機(jī)技術(shù)研究[D].西安:中國科學(xué)院研究生院(西安光學(xué)精密機(jī)械研究所),,2009.
[2] 趙鵬,沈庭芝,,單寶堂.基于CMOS圖像傳感器的微型無人機(jī)遙感系統(tǒng)設(shè)計(jì)[J].光子學(xué)報(bào),2008,,37(8):1657-1661.
[3] 劉海英.基于CMOS圖像傳感器的數(shù)字高清成像技術(shù)研究[D].西安:中國科學(xué)院研究生院(西安光學(xué)精密機(jī)械研究所),,2008.
[4] 谷元保,,付守卓.一種基于灰度世界模型自動白平衡方法[J].計(jì)算機(jī)仿真,2005,,22(9):185-188.
[5] MALVAR H S,,He Liwei,CUTLER R.High-quality linear interpolation for demosaicing of Bayer-patterned color im-ages[C].IEEE International Conference on Acoustics,,Speechand Signal Processing.Montreal:IEEE,,Piscataway,NJ,,2004.