影象bayer格式介紹以及bayer插值原理CFA
1 影象bayer格式介紹
bayer格式圖片是伊士曼·柯達公司科學家Bryce Bayer發明的,Bryce Bayer所發明的拜耳陣列被廣泛運用數字影象。
對於彩色影象,需要採集多種最基本的顏色,如rgb三種顏色,最簡單的方法就是用濾鏡的方法,紅色的濾鏡透過紅色的波長,綠色的濾鏡透過綠色的波長,藍色的濾鏡透過藍色的波長。如果要採集rgb三個基本色,則需要三塊濾鏡,這樣價格昂貴,且不好製造,因為三塊濾鏡都必須保證每一個畫素點都對齊。當用bayer格式的時候,很好的解決了這個問題。bayer 格式圖片在一塊濾鏡上設定的不同的顏色,通過分析人眼對顏色的感知發現,人眼對綠色比較敏感,所以一般
另外,Bayer格式是相機內部的原始圖片, 一般字尾名為.raw。很多軟體都可以檢視, 比如PS。我們相機拍照下來儲存在儲存卡上的.jpeg或其它格式的圖片, 都是從.raw格式轉化過來的。如下圖,為bayer色彩濾波陣列,由一半的G,1/4的R,1/4的B組成。
2 bayer格式影象感測器硬體
影象感測器的結構如下所示,每一個感光畫素之間都有金屬隔離層,光纖通過顯微鏡頭,在色彩濾波器過濾之後,投射到相應的漏洞式矽的感光元件上。
當Image Sensor往外逐行輸出資料時,畫素的序列為GRGRGR.../BGBGBG...(順序RGB)。這樣陣列的Sensor設計,使得RGB感測器減少到了全色感測器的1/3,如下所示。
3 bayer格式插值紅藍演算法實現
每一個畫素僅僅包括了光譜的一部分,必須通過插值來實現每個畫素的RGB值。為了從Bayer格式得到每個畫素的RGB格式,我們需要通過插值填補缺失的2個色彩。插值的方法有很多(包括領域、線性、3*3等),速度與質量權衡,最好的線性插值補償演算法。其中演算法如下:
R和B通過線性領域插值,但這有四種不同的分佈,如下圖所示:
(a) (b)
(c) (d)
在(a)與(b)中,R和B分別取鄰域的平均值。
在(c)與(d)中,取領域的4個B或R的均值作為中間畫素的B值。
4 bayer格式插值綠演算法實現
(c) (d)
由於人眼對綠光反應最敏感,對紫光和紅光則反應較弱,因此為了達到更好的畫質,需要對G特殊照顧。在上述(c)與(d)中,擴充套件開來就是上圖的(e)與(f)中間畫素G的取值,者也有一定的演算法要求,不同的演算法效果上會有差異。經過相關的研究,
(e)中間畫素G值的演算法如下:
(f)中間畫素G值的演算法如下:
CMOS攝像頭這部分轉換是在內部用ADC或者ISP完成的,生產商為了降低成本必然會使得影象失真。當然用外部處理器來實現轉換,如果處理器的速度足夠NB,能夠勝任畫素的操作,用上面的演算法來進行轉換,皆大歡喜。不過上述演算法將直接成倍提高了演算法的複雜度,速度上將會有所限制。因此為了速度的提成,可以直接通過來4領域G取均值來中間畫素的G值,將會降低一倍的速率,而在效能上差之甚微,演算法如下:
如果能夠通過損失影象的額質量,來達到更快的速度,還可以取G1、G2的均值來實現,但是這樣的做法會導致邊沿以及跳變部分的失真。