摘 要:利用FPGA處理數據量大、處理速度快,結合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點,設計一種基于FPGA的圖像數據轉換處理系統,提出用硬件實現Bayer格式到RGB格式轉換的設計方案,研究CFA圖像插值算法,實現基于FPGA的實時線性插值算法,對Bayer圖像格式進行插值恢復全彩色圖像,實現從黑白圖像還原高清彩色圖像。整個設計模塊能夠滿足高幀率和高清晰的實時圖像處理,占用系統資源很少,用較少的時間完成了圖像數據的轉換,提高了效率。
關鍵詞:MT9M001圖像傳感器;Bayer格式;紅綠藍三原色;FPGA
中圖分類號:TP391.41文獻標識碼:B
文章編號:1004-373X(2010)02-122-03
Conversion from Bayer to RGB Based on FPGA
YANG Hua,TONG Shoufeng
(Opto_electronics Engineering College,Changchun University of Science and Technology,Changchun,130022,China)
Abstract:Because of the high speed and large amount of processing consume,an image data transform system based on FPGA is presented by CMOS digital image sensor MT9M001 and Bayer CFA,a design scheme to realize comversion from Bayer to RGB by hardware is proposed,CFA algorithm and real_time linear interpolation algorithm are realized.The structure of the system is facile by using FPGA of altera,the module can work correctly using least time .The efficiency is improved.
Keywords:MT9M001 sensor;Bayer fomat;RGB;FPGA
0 引 言
隨著CMOS工藝的不斷發展,CMOS圖像傳感器的系統集成度、動態范圍、感光度、功耗等性能大幅提高,使得CMOS傳感器越來越多的進入不同的領域。利用FPGA處理數據量大、處理速度快,結合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點,設計一種基于FPGA的圖像數據轉換處理系統,提出用硬件實現Bayer格式到RGB格式轉換的設計方案,研究CFA圖像插值算法,實現基于FPGA的實時線性插值算法,對Bayer圖像格式進行插值恢復全彩色圖像,實現從黑白圖像還原高清彩色圖像。
1 CMOS圖像傳感器
由色度學理論得知,任何顏色都可由紅(R),綠(G),藍(B)三種基本顏色按不同的比例混合得到。因此RGB被稱為三原色。自然界的圖像可用基于位坐標的三維函數來表示,即:
f(x,y,z)={f(x,y,z),f(x,y,z),f(x,y,z)}
大多數彩色CMOS圖像傳感器,是在黑白圖像傳感器的基礎上增加色彩濾波陣列(CFA),從而實現彩色成像。其中應用最為廣泛的是BayerCFA。由于人的視覺對綠色信息最為敏感,所以在BayerCFA中G分量是R和B分量的2倍,每個像素點上只能獲取一種色彩分量的信息;然后通過內插算法得到全彩色圖像。 MT9M001圖像傳感器具有130萬像素分辨率,輸出高保真的數字圖像,提供SXGA,VGA,QVGA,CIF等多種工作模式,且輸出為Bayer顏色格式,如圖1所示。
圖1 Bayer色彩濾波陣列及數據讀出格式
2 系統硬件結構單元
由于要實時采集處理圖像數據,要求速度快,設計中盡量減少延時,為滿足要求,系統采用FPGA作為主控制器。結構如圖2所示,系統上電后,FPGA首先從epcs芯片里面讀取數據配置CMOS傳感器的相關寄存器,按要求驅動傳感器,然后根據輸出時序采集圖像數據,直接采集到的圖像是RAW圖,即Bayer格式,接著進行RGB彩色圖像的轉換。
圖2 系統結構框圖
2.1 CMOS圖像傳感器單元
MT9M001具有大量可編程寄存器,配置方式靈活,可以進行實時在線控制。根據課題需要,CMOS傳感器工作窗配置為最大的1 280×1 024,輸出配置為連續模式,選擇工作時鐘為40 MHz。工作時候根據實際對比,可對兩線串行接口進行配置,調節RGB平衡。
2.2 FPGA單元
FPGA(Field Programmbale Gate Array)作為系統的控制器,負責傳感器的控制,數據緩存以及圖像處理的算法實現??紤]到實際需要,選用Altera公司Cyclone 2型FPGA,整個系統使用Verilog HDL語言編寫,在Quartus 6.0環境下實現編譯綜合。外部時鐘選擇50 MHz,利用FPGA鎖相環產生40 MHz時鐘驅動CMOS圖像傳感器。
3 數據格式的轉換
由于MT9M001采用的是色彩濾波陣列,數據逐行讀出。讀出數據除了有效的圖像數據外,還包括水平消影信號和垂直消影信號,利用CMOS傳感器輸出的行有效和場有效可以確定行場的開始位置,如圖3所示。
圖3 四種可能的插值情況分布
可以看出,Bayer模式每一個像素只取RGB顏色空間中一種顏色分量,奇數行包含G,B分量,偶數行包含R,G分量,奇數列包含G,R分量,偶數列包含B,G分量。實現Bayer格式到RGB格式的轉換,在每一個像素點需要插入另外兩種丟失的顏色分量,才能還原為彩色RGB格式,對幾種插值法(臨近、線性、樣條)進行評估,基于硬件的可行性及速度的考慮,這里采取線性插值。對于每一個像素,都有以下四種可能的情況,如圖4所示。
設置行列計數器Y_Cont ,X_Cont,列計數器從場有效到達后第一個有效像素開始計數,計數到一行結束即1 280個像素后,重新計數,同時行計數器加1。由行列計數器二進制值的最后一位確定奇偶行奇偶列,即iY_Cont[0],iX_Cont[0]有00,01,10,11四種可能;與上述四種情況相對應,在目標插值點取相鄰點的另外兩種不同顏色分量進行插值,使得目標點產生RGB三原色。
圖4 altshift_taps的IP核
以圖4的四種分布情況,分別對右下角第一個元素進行插值,對應如下:
(1) B=B21,R=R12,G=G11+G22;
(2) G=G12+G21,B=B11,R=R22;
(3) R=R21,G=G12+G21,B=B12;
(4) G=G12+G21,R=R11,B=B22;
對于算法的實現,可以采用兩FIFO緩存來并行緩存數據,這里,巧妙利用Quartus 6.0提供的IP 核altshift_taps,如圖4所示。
CMOS圖像傳感器輸出信號為數字信號,即數字圖像數據所以圖像的采集要通過FPGA將圖像數據緩存,采用雙taps,taps之間的寬度為1 280,即CMOS傳感器的行數。由于MT9M001傳感器輸出的數據為10 b,所以這里位寬也用10 b。時鐘與CMOS傳感器輸出時鐘一致,時鐘使能與場有效一致。圖像像元首先進入第一行,按照圖中箭頭的指向,像元經過第二行的時候會被讀取保存;然后再進入第三行,再次被讀出且保存,按照兩次保存的像元,根據比鄰的像元規律,即可得出每一像元的RGB三色值。
具體固件程序如下:
mDATAd_0 <= mDATA_0;
mDATAd-1 <= mDATA-1;
mDVAL <= {iY_Cont[0]|iX_Cont[0]}?1′b0:
iDVAL;
if({iY_Cont[0],iX_Cont[0]}==2′b01)
begin
mCCD_R <= mDATA_0;
mCCD_G <= mDATAd_0+mDATA-1;
mCCD_B <= mDATAd-1;
end
else if({iY_Cont[0],iX_Cont[0]}==2′b00)
begin
mCCD_R <= mDATAd_0;
mCCD_G <= mDATA_0+mDATAd-1;
mCCD_B <= mDATA-1;
end
else if({iY_Cont[0],iX_Cont[0]}==2′b11)
begin
mCCD_R <= mDATA-1;
mCCD_G <= mDATA_0+mDATAd-1;
mCCD_B <= mDATAd_0;
end
else if({iY_Cont[0],iX_Cont[0]}==2′b10)
begin
mCCD_R <= mDATAd-1;
mCCD_G <= mDATAd_0+mDATA-1;
mCCD_B <= mDATA_0;
end
4 測試結果及分析
系統使用Verilog語言編寫,在Quartus 6.0環境下進行綜合,SignalTap Ⅱ嵌入邏輯分析儀集成到Quartus設計軟件中,能夠捕獲和顯示可編程單芯片系統(SoPC)設計中實時信號的狀態,如圖5所示為連續采樣的波形圖。
圖5 連續采用波形圖
圖像最重要特性之一就是能夠準確顯示圖像的色彩,并能調整亮度和對比度。因為周圍的環境不同,需要進行圖像色彩調整。對于現有的在RGB空間進行色彩調整方法,因為RGB不能與亮度、色調及飽和度直接建立的聯系,導致亮度和色彩同時變化,圖像容易出現偏色,現有的對比度調整方法不能適應更寬的調整范圍,調整參數的時候必須小心仔細,讓色彩達到最好的效果。
5 結 語
在此基于Altera公司FPGA提出一種Bayer圖像轉換為彩色圖像的方法,FPGA芯片不僅可實現圖像的采集,還能對圖像做算法處理,很好地控制CMOS圖像傳感器。這種從圖像Bayer格式到RGB彩色格式算法靈活高效,具有很好的實時性及可移植性,產生高清彩色圖像。
參考文獻
[1]李曉雯,李國林.Bayer圖像的準無損壓縮方法\\.數字電視與數字視頻,2005(8):14-27.
[2]Zhang N,Wu X L.Lossless Compression of Color Mosaic Images\\.ICIP\\.2004.
[3]崔巍,汶德勝,馬濤.Bayer圖像無損壓縮算法及其FPGA實現\\.科學技術與工程,2006(9):9-11.
[4]Sezqin M,Survey over Image Thresholding Techniques and Quantitative Performance Evaluation [J].Electronic Imaging,2004,13(1):146-168.
[5]Koh C C,Mitra S K.New Efficient Method of Image Compression in Digital Cameras with Color Filter Array\\.IEEE Trans.on Consumer Electronics,2003,49(4):1 448-1 456.
[6]黃素貞,尹立新.黑白CMOS圖像傳感器OV9121的原理與應用\\.國外電子元器件,2004(12):59-63.
[7]趙龍寶,范天翔.基于OV5017和CPLD的圖像采集顯示系統\\.微計算機信息,2005(7):104-105.
[8]鄧華,方濱.基于CPLD技術的CMOS圖像傳感器高速采集系統\\.現代電子技術,2004,27(7):104-105.
[9]王阿川.基于FPGA的高速圖像采集卡的研制\\.自動化儀表,2005(6):21-23.
[10]Blagomir Donehev,Georgi Kuzmanov.Extemal Memory Controller for Virtex11 Pro.,2006.
[11]王慶有.圖像傳感器應用技術\\.北京:電子工業出版社,2003.