《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的Bayer彩色自動白平衡設計與實現
基于FPGA的Bayer彩色自動白平衡設計與實現
來源:電子技術應用2010年第8期
程本飛1,2,戴 明1,孫麗娜1
1.中國科學院長春光學精密機械與物理研究所,吉林 長春130033;2.中國科學院研究生院,北京100039
摘要: 針對物體在不同色溫光源照射下呈現偏色的現象,用FPGA實現對Bayer CCD數字相機的自動白平衡處理。根據CFA(Color Filter Array)的分布特點,利用雙端口RAM(DPRAM),實現了顏色插值與色彩空間轉換。在FPGA上設計了自動白平衡的三大電路模塊:色溫估計、增益計算和色溫校正,并連接形成一個負反饋回路,然后結合EDA設計的特點,改進了增益計算的過程,有效地抑制了色彩振蕩現象。
中圖分類號: TP391.4
文獻標識碼: A
文章編號: 0258-7998(2010)08-0055-05
The design and realization of Bayer color auto white balance based on FPGA
CHENG Ben Fei1,2,DAI Ming1,SUN Li Na1
1.Changchun Institute of Optics, Fine Mechanics and Physics,Chinese Academy of Sciences, Changchun 130033,China;2.Graduate School of the Chinese Academy of Sciences, Beijing 100039,China
Abstract: To resolve the phenomenon of color offset of object under different colored light source, this paper develops and implements a method of auto white balance based on FPGA for Bayer CCD digital camera. The Bayer interpolation algorithm and color space conversion process are conducted by using the on-chip DPRAM. The system is composed of three modules(color temperature estimation, gain computation and color temperature adjustment) which form a feed-back loop. Taking the advantages of FPGA, our designs improve the gain computation process restrain the phenomena of color trembles.
Key words : auto white balance;FPGA;Bayer color;camera link;DPRAM

    在不同的光源或者天氣條件下光譜特性是互不相同的,這被稱之為色溫。從物理意義上講,人們看到的物體之所以呈現出特定的顏色,是因為光線照向物體時,物體所反射的光在人眼視覺系統中呈現出這種特定的顏色。也就是說,能看到的物體顏色不僅取決于其反射特性,而且還和照向物體的光線有關系,如一張白紙在鎢絲燈下會偏橘黃色調,在熒光燈下會偏綠,而在日光下會有點偏藍。自動白平衡的目的就是自動調整不同色溫光照下圖像的三基色分量的比例,使其看上去和標準光源下拍攝的顏色一致。
    目前在工程上應用的自動白平衡算法主要有全局白平衡算法和局部白平衡算法兩大類。全局白平衡算法以“灰度世界法”GWM(Gray World Method)為代表,其認為所拍攝的圖像有豐富的色彩變化,R、G和B三色分量的統計平均值應該相等,并以該均值作為白平衡校準的依據。局部白平衡算法以“鏡面法”PRM(Perfect Reflector Method)為代表,該算法認為一幅圖像中最亮像素點對應于光滑或者鏡子表面的物體,這樣的像素點最大限度反映了照射光線的光譜信息,對這部分點做色彩信息統計并作為色溫校正的依據。全局白平衡算法有較大的局限性,當場景過亮、過暗,或者色彩比較單一時,算法幾乎完全失效。局部白平衡算法的關鍵在于尋找參考白點,而在戶外拍攝的過程中,總是可以找到參考點的,文獻[1]、[2]、[3]介紹了幾種能精確尋找參考點的方法。
    在工程上,需要對幀頻較高的原始視頻圖像做實時的白平衡恢復,而目前的自動白平衡方法,算法復雜,計算時間較長,難以實現對視頻流的實時處理。本文就針對以上問題,討論了一種在FPGA上實現的、對視頻流實時白平衡處理的自適應方法。
1 自動白平衡算法
    在FPGA設計的過程中,采用局部白平衡的方法,主要有3個基本步驟:
    (1)色溫估計
    色溫估計是自動白平衡中最重要的一步,根據算法估計當前場景的色溫,給增益計算提供依據。文獻[1]利用“鏡面法”,嚴格控制Y、Cb和Cr三分量的關系,在YCbCr空間定義了一個六面體的區域,凡是落入該區域的點都可以作為參考白點。文獻[2]提出先對圖像的R、G和B三個分量分別作直方圖均衡化,然后將直方圖均衡化后的圖像轉換到YCbCr空間,對轉換后的Y分量進行邊沿檢測,在邊沿包含的各個區域中尋找滿足文獻[1]條件的區域,作為參考白點區域。選擇符合一定條件的區域而不是選擇符合一定條件的點,可以提高參考點選擇的準確性,但是直方圖均衡化處理本身存在灰度級“簡并”現象,這也是該文算法的不足。文獻[3]直接在原圖像的YCbCr空間,用LoG算子對Cb和Cr分別作色度邊緣提取,獲得的色度邊緣即為參考白點區域。綜合考慮參考點選擇的準確性和電路設計的難易程度,本文選用文獻[1]的方法選擇參考點。
    (2)增益計算
    增益計算是在色溫估計的基礎上,求取色溫修正系數的過程,主要有3種方法:
    ①查表法[1]。事先統計出一張表,記錄不同的色溫所對應的通道增益,具有速度快的優點。但由于表的容量有限,不能實現各種色溫情況的連續調節。
    ②平均值法。對于參考白點區域有R=G=B,即Cb和Cr的分量為零。得到各通道的增益如下:

    ③迭代法。設G通道的增益為常數1,R和B通道的增益分別為?自,?滋。迭代法根據參考白點區域Cb和Cr的關系,通過不斷地調節?滋和?自的值,便可得到各通道最終增益值。文獻[1]中提到的方法,在場景出現大量色塊時,容易出現色彩振蕩現象。本文在其基礎上做出了如下改進,增加對白點數目的判斷:判斷是否WhitePointNum>N,只有場景的白點數目大于閾值N時,才認為色溫估計有效,這樣能避免色溫估計無效時對修正系數的誤操作導致的色彩振蕩。增加了對當前色溫的判斷:判斷是否|Cb|+|Cr|<M,如果小于閾值M,則認為修正后的圖像已經達到白平衡,不做增益調節。文獻[1]所示方法,只適應于相機的一次拍攝,而攝像機拍攝時間長,場景變化快,所以有必要對每幀或隔幾幀圖像做如圖1的處理,以應對場景色溫的變化。圖1中?滋和?自的初始值為常數1,&lambda;為迭代步長。

    (3)色溫校正
    在獲得各顏色通道的增益量后,按照下面的等式對原圖像所有像素進行調整。

    上述3種增益計算方法中,平均值法和查表法多用于對單張圖片處理,迭代法用于對連續圖片序列的處理。迭代法獲得的修正系數,用于下一幀圖像的色彩校正,每次色溫估計都是在色彩校正的基礎上進行的。
2 系統硬件結構
    系統硬件結構如圖2所示。

    目前彩色CCD相機,分為3CCD全色相機和單CCD Bayer彩色相機兩大類。全色相機中,光線被分光系統分為R、G和B三色光后,分別投向三塊CCD,這樣在信號輸出時就可以獲得每個像素的三基色信息。Bayer格式的CCD感光表面覆蓋有如圖3所示的CFA,CFA上每個格點僅允許通過一種顏色分量,使每個感光單元只產生一個分量的灰度值。要獲得每個像元的[r,g,b]信息,需要用到色彩空間插值。

    Bayer CCD相機與全色相機相比,有價格相對便宜、要求進入光線的照度低、輸出幀頻高等優點,被廣泛應用于工程實踐中。本文所用的Bayer CCD相機有效像元數為1 024&times;1 024,幀頻為30 Hz,像素時鐘為45 MHz,像素位深度為8 bit,以Camera Link協議輸出。
    Camera Link是專門為數字攝像機提出的一種工業級的高速數據連接與傳輸協議。采用LVDS(Low Voltage Differential Signaling)技術,使用較少的連線,卻能達到理論上最大1.923 G b/s的傳輸速率,并且傳輸距離比普通的傳輸方式更遠。Camera Link標準中包含Base、Medium、Full 3種規范,其中Base規范只需要一個26針的連接器即可實現。26 bit信號中包括:5對圖像數據信號(X0,X1,X2,X3,Xclk),X0~X3傳遞圖像數據,Xclk傳遞像素時鐘;4對相機控制線(CC1,CC2,CC3,CC4),相機制造商可以自由定義各控制信號的功能以滿足其特殊產品;2對異步串行通信信號線(SerTC,SerTFG),可用于相機和圖像采集卡之間的異步串行通信;2對屏蔽線,直接接地即可。在本文所述的系統只需要用到5對圖像數據信號線。
    本文采用的Camera Link協議芯片為DS90CR288A和DS90CR287,最高工作頻率為85 MHz,能滿足系統設計要求。DS90CR288A把接收到的4路LVDS數據信號和1路LVDS時鐘信號,分別轉換為28 bit的CMOS/TTL并行數據和像素時鐘信號。4路LVDS數據線能傳遞28 bit數據,傳遞頻率是LVDS時鐘信號的7倍,最高可達595 MHz。28 bit數據中包括24 bit像素信號,1 bit幀同步信號(FVAL)、1 bit行同步信號(LVAL),1 bit數據有效信號(DVAL)和1 bit保留信號。在FPGA設計中,只需要應用幀、行同步信號,像素時鐘和有效的像素信號即可完成對圖像數據的處理。DS90CR287的工作過程和DS90CR288A相反,把數據和同步信號轉換為LVDS信號傳遞出去。
    系統用的主芯片為Altera公司的Cyclone III系列芯片EP3C16Q240C8,其具有豐富的邏輯資源和觸發器資源,內嵌大量乘法器和豐富的RAM資源,特別適合時序操作和大量數據的并行運算。系統還用到容量2 MB的2塊SRAM,最短訪問周期10 ns,可以把處理后的圖像數據存于其中,供板上其他系統使用。
3 EDA設計
    FPGA的設計采取自頂向下的模塊化設計方法,系統的一級框圖如圖4所示。

    寫SRAM模塊根據幀、行同步信號、像素時鐘以及行、列偏移量,獲得有效像素的起止,把像素數據存入SRAM。白平衡處理過程就在寫SRAM模塊中完成。&ldquo;雙向開關&rdquo;由FVAL_In信號觸發,起到信號線切換的作用,完成乒乓操作。當寫SRAM模塊把數據寫入SRAM_A的同時,讀SRAM模塊從SRAM_B讀取數據,當寫SRAM模塊把數據寫入SRAM_B的同時,讀SRAM模塊從SRAM_A讀取數據。讀SRAM模塊讀取SRAM中的像素數據并以Camera Link 協議的形式傳出。從整體效果上看,數據能源源不斷地流過系統。
    寫SRAM模塊中白平衡過程如圖5 所示。

    電路中色溫校正模塊,色溫統計模塊和增益計算模塊連接形成一個負反饋回路,能根據場景色溫的變化,實時修正增益系數,使修正后的圖像穩定在白平衡狀態。
    在色溫統計的過程中沒有必要對全平面像素做統計,為了編程和設計的方便,本文在每個4&times;4的塊中選兩點做色溫統計,如圖3中的(2,1)和(1,2)兩個點。在色彩空間轉換之前需要進行色彩插值,恢復待測像素的三原色數據[r,g,b],用線性插值法恢復的算法如下。
   
    恢復每一個像素的[r,g,b]值,需要用到相鄰的3&times;3范圍的像素值,然而相機數據是逐行依次輸出的,所以必須暫存至少3行的像素值。本文引入一塊8 KB的DPRAM,可以存儲8行的像素信息。色溫校正模塊把數據寫入外部SRAM的同時也把數據存入了內部的DPRAM,存滿了8 KB的空間后,從地址0重新開始寫入。把DPRAM分為上下兩半頁,每存好半頁后, Bayer轉RGB模塊便從剛存的半頁中尋址,讀取數據,進行插值轉換。
    用Quartus II設計的DPRAM宏模塊,如圖6所示。可以看出輸入DPRAM的信號都是在時鐘上升沿鎖存的,輸出不鎖存。訪問DPRAM以及完成插值過程可用&ldquo;12狀態法&rdquo;實現,如圖7所示。實驗仿真圖,如圖8所示。

    時間分析:相機輸入4行數據的時鐘周期數至少為1 144&times;4=4 576 T,上述過程操作時間為:1 024/4&times;12=3 072 T,所以上述轉換過程能在色溫校正模塊填滿半頁DPRAM的時間內完成,且不會產生訪問DPRAM沖突。在滿足時間的條件下,可以尋址更多的點,采用更復雜的插值方法做轉換。
    色溫統計模塊,在接收到轉換信號后,完成RGB到YCbCr色彩空間轉換,并把符合式(5)的點的Cb和Cr值累加,在一幀末的時候,完成除法運算,輸出滿足條件點的Cb和Cr的平均值以及Control信號。
    
4 實驗結果
    在試驗的過程中參數(&chi;,&alpha;,&beta;,&gamma;,&phi;,M,N)分別設定為(120,30,30,50,100,8,2000)。圖9為在熒光燈下的偏綠圖像及其各通道直方圖,圖10為硬件白平衡后的圖像及其直方圖。圖11、圖12是戶外拍攝圖像及恢復的情況。

    由圖9、圖10可以看出熒光燈下的物體偏綠,且G通道直方圖高灰度級的像素明顯多于其他通道。處理后的圖像視覺效果較好,各通道像素灰度級趨于均衡。通過實驗發現,處理后的圖像比原圖偏亮,這可以通過前級調光系統實現更好的處理效果。
    本文分析了目前的自動白平衡算法,結合EDA設計的特點,對迭代法進行了改進,能有效抑制色彩振蕩。系統能根據場景色溫的變化,實時調整色溫修正系數,恢復場景的真實色彩。結合當前相機常用的Camera Link接口,在一塊芯片上實現了圖像預處理,減小了CPU運算負擔,系統功耗小,應用前景較好。
參考文獻
[1] 周榮政,何捷,洪志良.自適應的數碼相機自動白平衡算法[J].計算機輔助設計與圖形學學報,2005,17(3):350-353.
[2] 張鈺,姚素英,胡燕翔.一種基于邊沿檢測的圖像自動白平衡方法[J].光電子&middot;激光,2008,19(6):804-807.
[3] 趙全友,潘寶昌.改進的LoG邊緣自動白平衡算法[J].計算機應用研究,2009,26(2):775-777.
[4] 張靜.基于DSP和FPGA的數字圖像采集與處理系統的實現[D].西安電子科技大學碩士論文,2006.
[5] 沈斌,張多利,何亞軍.一種低功耗色彩空間轉換模塊的FPGA實現[J].計算機工程與應用,2008,44(22):84-86.
[6] 彭俊,高偉.基于FPGA的Bayer圖像彩色恢復快速算法研究及實現[J].科學技術與工程,2007,7(13):3084-3086.
[7] 張向飛,張剛,程永強.基于FPGA的高分辨率貝爾CFA插值算法的設計與實現[J].太原理工大學學報,2006,5(專輯):12-15.
[8] 趙全友,潘保昌,鄭勝林.復雜光照下的兩步法顏色恒常性增強[J].光學精密工程,2009,17(4).

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 午夜伦理片在线观看 | 日本韩国一区二区三区 | 性欧美videos另类hd | 99精品热女视频专线 | 欧美视频在线第一页 | 日韩高清在线日韩大片观看网址 | 国产亚洲精品自在久久77 | 欧美高清视频手机在在线 | 爱性大片在线观看 | 国产精品一区二区三区久久 | 91麻豆精品一二三区在线 | 久久精品久久精品国产大片 | 成 人网站免费 | 日韩精品久久久久影院 | 最近中文字幕经典版在线 | 精品综合一区二区三区 | 男女啪啪猛烈到合不拢腿小说网 | 午夜免费视频观看 | 香蕉视频一区 | 精品一区二区三区亚洲 | 国产精品国产精品国产三级普 | 在线精品国产第一页 | 日本中文字幕网 | 91精品国产91久久久久青草 | 欧美日韩精品高清一区二区 | 狠狠色噜狠狠狠狠色综合久 | 国产亚洲欧美久久久久 | 全免费一级毛片在线播放 | 在线a毛片免费视频观看 | bt7086福利一区国产 | 99re在线精品视频 | 日本综合欧美一区二区三区 | 欧美日韩中文字幕一区二区高清 | 美女中文字幕 | 婷婷视频在线观看 | 天天干伊人 | 黄色片一级黄色片 | 欧美人禽猛交狂配免费看 | 国产成人精品一区二区不卡 | 日韩在线视频网站 | 97国产精品国产品国语字幕 |