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