Luminance Noise Reduction for CFA Image Sensor

彩色濾波陣列(CFA, Color Filter Array)是在CCD/CMOS感光元件上層的一個色彩濾波器,最常見的就是Bayer Pattern(或稱 GRGB Filter),在CFA上做 Noise Reduction可以避免雜訊受到 Demosaicing將雜訊暈開。 Image Chroma Noise Reduction in Bayer Pattern有提到在Bayer Pattern裡,可以用求RBG三個 channel裡的 Local Mean得到 Luminance(Y)。

Luminance=0.299*meanR+0.587*meanG+0.114*meanB

我們可以把 Luminance NR目標著重在於 G channel上面,由上個式子就可以看到 G channel對 Luminance的貢獻程度是最高的,因此,在CFA上做Luminance Noise Reduction可以針對 G channel的noise做處理。


Edge Preserving

為了不讓影像細節被NR給模糊,藉由5x5 Mask裡面的R和B channel做Edge Detection,計算出dT

未命名

dB=abs\left( { B }_{ 1 }-{ B }_{ 4 } \right) +abs\left( { B }_{ 4 }-{ B }_{ 5 } \right) +abs\left( { B }_{ 2 }-{ B }_{ 3 } \right) +abs\left( { B }_{ 3 }-{ B }_{ 6 } \right)

dR=abs\left( { R }_{ 4 }-{ R }_{ 2 } \right) +abs\left( { R }_{ 2 }-{ R }_{ 6 } \right) +abs\left( { R }_{ 1 }-{ R }_{ 5 } \right) +abs\left( { R }_{ 5 }-{ R }_{ 3 } \right)

dT=dB+dR

下圖為dTdTWeight的轉移曲線,當dT值越大,所得到的dTWeight也會越大。

未命名3


Luminance Preserving

Luminance Preserving,Luminance越大表示像素的 intensity也越大,所以在計算差值與補償時,統計值都會比亮度較暗的區域來的大,因此必須依據 Luma curve做補償。 Luma curve裡可以看到 Luminance越大 LumaWeight值也會越高,是為了避免在高亮的地方修正太多,使影像模糊。

未命名3


Luminance Noise Correction

在做修正時,我們求得區域的meanG與total weight值TotWeight,Edge Preserving和 Luminance Preserving的 weight相乘,之後與中心像素做混合就可求得filerOutput

meanG=\sum _{ i=0 }^{ 12 }{ { G }_{ i } }

未命名2

TotWeight=dTWeight*LumaWeight

filterOutput=\left( 1-TotWeight \right) *meanG+TotWeight*centerG


Denoise Result

未命名                                                        Bayer Domain比較結果。在Bayer Domain較難看出比較結果,但還是可以隱約看到經過 Luminance NR後的影像整體較為平坦。

經過 Demosaicing後,RGB上的比較結果。可以看到Luminance NR在亮暗部的都有明顯的效果。

未命名2


reference : Noise Reduction for CFA Image Sensors Exploiting HVS Behaviour (2009)

Leave a Reply

Your email address will not be published. Required fields are marked *