一種改進(jìn)的圖像重組算法及其硬件實(shí)現(xiàn)
1.引言
目前,大多數(shù)的數(shù)字相機(jī)的圖像傳感器,不管是CMOS還是CCD,都是單色的,即只有灰度的變化。為了得到彩色圖像,普遍采用的方法是在傳感器的表面覆蓋一層聚酰亞胺掩膜的彩色濾色器。濾色器的格式有多種,一般為棋盤格式。本文提出的算法針對(duì)的是其中最常用的bayer格式,如圖1所示,其濾色濾格子分別透過G(綠)、B(藍(lán))、R(紅)三種顏色,其中G的采樣率是B、R的兩倍,原因是人眼對(duì)綠色信息要比藍(lán)色、紅色敏感。
圖像傳感器傳來的數(shù)據(jù)通常對(duì)應(yīng)每個(gè)像素點(diǎn)R、G、B三種顏色中的一種顏色信息,圖像重組算法(Demosaicing Algorithm)是指把傳感器送來的每個(gè)像素點(diǎn)信息轉(zhuǎn)化為包含R、G、B三原色信息的圖像算法。關(guān)于圖像重組算法日前主要有獨(dú)立插值法、按比例插值法、Kimmel法等,本文將在分析這些算法的基礎(chǔ)上提出能平衡圖像質(zhì)量和硬件消耗的新算法及實(shí)現(xiàn)方法。
2.傳統(tǒng)算法
2.1 獨(dú)立插值算法
最簡(jiǎn)單的線性方法足R、G、B三分量各自獨(dú)立進(jìn)行插值重組,彼此沒有關(guān)聯(lián)。以利用相鄰像素作平均的插值法為例:
如圖2,G2、G4、G6、G8、R1、R3、R7、R9為已知相應(yīng)像素的相應(yīng)分量,G5、R2、R4、R6、R8、R5為所求分量,求法如下:
藍(lán)色分量的求法與R相似。
此方法雖然簡(jiǎn)單,占用硬件資源比較少,但是卻會(huì)引起色彩混淆和邊沿模糊問題,因?yàn)槠湓谥亟M過程中忽略了邊沿問題。為了提高圖像質(zhì)量,可以在此基礎(chǔ)上加入梯度的控制。因此,該算法采用了梯度小的方向的分量值作均值處理。由于梯度大的方向是邊沿變化的方向,若選取了該方向上的值作均值,就會(huì)模糊了邊沿。以求圖2中的G5分量為例:
水平梯度H=|G4-G6|,垂直梯度V=|G2-G8|。
H>V,G5=(G2+G8)/2;H
此外,該算法沒有考慮噪聲因素,其簡(jiǎn)單的平均化操作將使一個(gè)像素上的噪聲擴(kuò)大到影響九個(gè)像素,從而導(dǎo)致信噪比較低。
2.2 按比例插值算法
由于BAYER格式的傳感器上G分量比R、B分量要多一倍,于是有人提出利用G分量對(duì)R、B分量進(jìn)行插值。
如圖3所示,G1-G9已經(jīng)插值得到,R1、R3、R7、R9為已知R信息,求R5:
R5={(R1*G5/G1)+(R3*G5/G3)+(R7*G5/G7)+(R9*G5/G9))/4
此算法對(duì)消除色彩混淆有一定的作用,但有個(gè)致命的缺點(diǎn),在G分量特別小的區(qū)域,兩G分量比例(如G5/G1)可能會(huì)變得很大;由于R1、R3、R7、R9都只是所要求的R5周圍的點(diǎn),在R5周圍很有邊沿信息(在圖像中,邊沿信息與噪聲無異)時(shí),如果G5/G1等比例值太大,很可能引入一個(gè)非常大的噪聲,使得圖像失真嚴(yán)重,造成計(jì)算R、B分量時(shí)對(duì)噪聲特別敏感,使得圖像信噪比降低。
2.3 Kimmel算法
Kimmel算法是圖像重組算法中一個(gè)常用的經(jīng)典方法。如圖4,Kimmel算法求G5:
其中,E為權(quán)重參數(shù),表征該相鄰像素參與運(yùn)算的比例。E由該相鄰像素的梯度D決定,梯度D越大,權(quán)重E越小。梯度D的定義如下:(其中P代表R,G,B任意一個(gè)分量)
從而:Ei=(1+D2(P5)+D2(Pi))1/2,如E3=(1+Dxd2(PS)+Dxd2(P3))1/2。
kimmel算法在求解R、B分量時(shí)也同樣采用了按比例插值的思想,只是比例權(quán)重不同,這樣可以較大程度地減弱色彩混淆現(xiàn)象。如圖4,用kimmel算法求R5:
Kimmel算法重組得到的圖像質(zhì)量比線性插值的方法提高了很多,但kimmel算法也有其缺點(diǎn),這是本文提出改進(jìn)算法的出發(fā)點(diǎn),將在下面討論。
評(píng)論