Arthur Alaniz, Tina Mantaring
Introduction
As the use of digital cameras becomes more and more widespread, the imaging algorithms that go into these cameras have also become more sophisticated. The typical digital camera uses a processing pipeline to convert raw sensor values to a final image, and the different parts of the pipeline may involve correcting for hardware defects, interpolating color filter array values, removing noise, and performing color space transformations. As more and more focus is being given to this field, the pipeline algorithms are also becoming more and more complex. However, one must ask the question: do these complex algorithms really outperform their simpler, more straightforward counterparts?
Methods
Denoising and Demosaicking
For our project, the primary algorithm we chose for our imaging pipeline was the one presented in the paper “Denoising and Interpolation of Noisy Bayer Data with Adaptive Cross-Color Filters”, by D. Paliy, A. Foi, R. Bilcu, and V. Katkovnik. Their technique performs simultaneous denoising and demosaicking using directional adaptive filters that are based on the concepts of local polynomial approximation (LPA) and intersection of confidence intervals (ICI). Their paper is summarized in this section.
Local Polynomial Approximation
Local polynomial approximation, or LPA, works on the assumption that the data in some local region can be fitted to a polynomial function. The cross-color filters used in the algorithm are linear combinations of LPA smoothing and difference filters that operate on complimentary color channels.
The above figure shows an example of an LPA smoothing filter (left) and an LPA difference filter (right). The combined LPA cross-color filter is shown below, where the differing colors illustrate that the smoothing and difference components work on different color channels.
If we let denote a directional 1D convolution kernel, where is the polynomial order, is the scale or size of the kernel (kernel width), is the order of the derivative, and is the direction, then we can write the interpolation kernels and the denoising kernels as follows:
Note that there are 4 possible directions for the interpolation filters, while the denoising filters use 8 directions. Aside from this, however, the structures for the interpolation and denoising kernels are very similar. Indeed, the primary difference between them is that their component filters operate on different support channels. This is shown in the figure below.
In the figure, (a) illustrates how the green pixel is interpolated at position g(0). The smoothing components of the interpolation filter operate on the green pixels, while the difference component operates on the red pixel. In (b), we see how denoising of the green pixel at g(0) is done. The smoothing components of the denoising filter operate on the green pixels, while the difference component operate on the red pixels. Similarly, when we are denoising a red pixel, as in (c), the smoothing components operate on the red pixels, while the difference component operates on the green pixels. Finally, since the denoising filters have 8 directions, they can operate along diagonals, which is shown in (d). When denoising green pixels along diagonals, we have only green pixels to deal with, and so there is no difference component. However, when we are denoising red or blue pixels, the smoothing component operates on the same channel while the difference component operates on the complimentary color channel.
Since the filters are directional, the origin of the filter is not in the center, but is located to one side. Obtaining the estimate is done by convolving the filter with the input pixels. That is, if is our noisy CFA data, then for each scale , we obtain the interpolation and denoising estimates and at each pixel position as follows:
Intersection of Confidence Intervals
We created the interpolation and denoising filters and for different scales . The goal of ICI is to choose the largest scale for which the local polynomial approximation is still valid. This is done as follows:
First, we find the standard deviations of our interpolation and denoising estimates using some estimate of the standard deviation of the noise. This is done as follows:
In the above formulas, is the estimated standard deviation of the noise. The paper gives two examples of signal-dependent noise models, and their corresponding standard deviation estimates:
- Poisson noise: , and
- Nonstationary Gaussian noise with signal-dependent standard deviation: , and