RGB Noise Reduction

Written by:

Large numbers of noise reduction algorithms and patents are available. Camera makers use the algorithms that they developed for their cameras and RAW software. During the years that I’ve been following the market it seems to me that all those algorithms have one thing in common – they all work on the RGB color space. This means that they can only operate on some or all RGB channels.

Make no mistake, RGB based algorithms are very complicated. They do edge preserving, edge direction detecting and can make pretty complex decisions based on the block they are working on (noise reduction filters or any other filters work in blocks i.e. 5×5 pixels, 10×10 pixels). However, working only on RGB channels has a large disadvantage, as we will see.

Above is the image we will be working on. It was captured as a RAW file at 800ISO with the Sony R1, which uses a 10MP CMOS sensor. I chose the R1 because it has quite a noisy signal. The RAW file was processed with DCraw as it applies none minimal noise reduction on the image. We are going to use only the Kodak Q60 chart on the right (marked). I have often found it to be e a great chart for noise reduction.

Note: all examples are illustrations of camera noise reduction algorithms that a camera maker might use. These algorithm illustrations are not from real cameras or based on actual camera algorithms.

All RGB

The first algorithm I call an ‘ALL RGB’ algorithm. As the name indicates it applies the same amount of noise reduction upon all R, G and B channels. As you can see below, the ‘Original’ image has no noise reduction applied while the ‘ALL RGB’ image was processed with an all RGB based algorithm. This algorithm is an edge preserving filter that works with the same amount of intensity and threshold upon all three RGB channels. The result, as you can see is that color noise, which was originally small and ‘sharp’ has now become bigger, smoother and ‘smudgy’. To some extent the image looks a bit better now, but color noise is still very apparent.

Original All RGB

200% Nearest Neighbor

Channel RGB

A better way to reduce noise in the RGB space is by reducing noise aggressively on the channel that has most of the noise. Camera makers have tended to use this algorithm in the past years rather than the ALL RGB algorithm.

By looking at R, G, and B channels separately one can precisely observe which channel causes most of the noise and apply a high intensity level of noise reduction on that channel. This can induce some noise reduction on other channels too.
For example, our image, like in most cameras, has most of the noise in the R channel. So we would apply more intensity on the R channel, less on the B channels and the least on the G channel.

Usually the G channel is the least noisy; for too many reasons to explain here. Most of the time it’s the R and the B channels that should get the aggressive noise reduction. This is because the G channel contains the strongest edge signal. Therefore by applying stronger noise reduction on the R and B channels, edges can be preserved by keeping the G channel under control.

The main advantage is that a much more aggressive noise reduction can be applied while still preserving the edges.

Original All RGB Ch RGB

200% Nearest Neighbor

As you can see from the image above, ‘Ch RGB’ has less color noise than the ALL RGB image but the edges are still preserved. This is a much more aggressive approach but with better results. Note that the color noise is still very apparent but it is more smoothed and pleasant.

But these methods belong to the past. Today camera makes such as Nikon, Fuji and Panasonic have shown us there is another, better way. It’s all about innovation as you can see in our {link} modern noise reduction article {link}.

Note: all examples are illustrations of camera noise reduction algorithms that a camera maker might use. These algorithm illustrations are not taken from real cameras or based on actual camera algorithms


Digg this story   Add to del.icio.us





Related Posts:


Comments are closed.