A demosaicing algorithm is a digital image
process used to reconstruct a full color image from the incomplete color
samples output from an image sensor overlaid with a color filter array (CFA).
It is also known as CFA interpolation or color reconstruction.
Most modern digital cameras acquire images
using a single image sensor overlaid with a CFA, so demosaicing is part of the
processing pipeline required to render these images into a viewable format.
Many modern digital cameras can save images
in a raw format allowing the user to demosaic them using software, rather than
using the camera's built-in firmware.
Goal
The aim of a demosaicing algorithm is to
reconstruct a full color image (i.e. a full set of color triples) from the
spatially undersampled color channels output from the CFA. The algorithm should
have the following traits:
Avoidance of the introduction of false
color artifacts, such as chromatic aliases, zippering (abrupt unnatural changes
of intensity over a number of neighboring pixels) and purple fringing
Maximum preservation of the image
resolution
Low computational complexity for fast
processing or efficient in-camera hardware implementation
Amenability to analysis for accurate noise
reduction
Color filter array
A color filter array is a mosaic of color
filters in front of the image sensor. Commercially, the most commonly used CFA
configuration is the Bayer filter illustrated here. This has alternating red
(R) and green (G) filters for odd rows and alternating green (G) and blue (B)
filters for even rows. There are twice as many green filters as red or blue
ones, catering to the human eye's higher sensitivity to green light.
Since the color subsampling of a CFA by its
nature results in aliasing, an optical anti-aliasing filter is typically placed
in the optical path between the image sensor and the lens to reduce the false
color artifacts (chromatic aliases) introduced by interpolation.
Since each pixel of the sensor is behind a
color filter, the output is an array of pixel values, each indicating a raw
intensity of one of the three filter colors. Thus, an algorithm is needed to
estimate for each pixel the color levels for all color components, rather than
a single component.
Illustration
To reconstruct a full color image from the
data collected by the color filtering array, a form of interpolation is needed
to fill in the blanks. The mathematics here is subject to individual
implementation, and is called demosaicing.
In this example, we use Adobe Photoshop's
bicubic interpolation to simulate the circuitry of a Bayer filter device such
as a digital camera.
The image below simulates the output from a
Bayer filtered image sensor; each pixel has only a red, green or blue
component. The corresponding original image is shown alongside the demosaiced
reconstruction at the end of this section.
The reconstructed image is typically
accurate in uniform-colored areas, but has a loss of resolution (detail and
sharpness) and has edge artifacts (for example, the edges of letters have
visible color fringes and some roughness).
Algorithms
Simple interpolation
These algorithms are examples of
multivariate interpolation on a uniform grid, using relatively straightforward
mathematical operations on nearby instances of the same color component. The
simplest method is nearest-neighbor interpolation which simply copies an
adjacent pixel of the same color channel. It is unsuitable for any application
where quality matters, but can be useful for generating previews given limited
computational resources. Another simple method is bilinear interpolation,
whereby the red value of a non-red pixel is computed as the average of the two
or four adjacent red pixels, and similarly for blue and green. More complex
methods that interpolate independently within each color plane include bicubic
interpolation, spline interpolation, and Lanczos resampling.
Although these methods can obtain good
results in homogenous image regions, they are prone to severe demosaicing
artifacts in regions with edges and details when used with pure-color CFAs.
However, linear interpolation can obtain very good results when combined with a
spatio-spectral (panchromatic) CFA. One could exploit simple formation models
of images for demosaicing. In natural images within the same segment, the ratio
of colors should be preserved. This fact was exploited in an image sensitive
interpolation for demosaicing.
Pixel correlation within an image
More sophisticated demosaicing algorithms
exploit the spatial and/or spectral correlation of pixels within a color image.
Spatial correlation is the tendency of pixels to assume similar color values
within a small homogeneous region of an image. Spectral correlation is the
dependency between the pixel values of different color planes in a small image
region.
These algorithms include:
Variable Number of Gradients interpolation
computes gradients near the pixel of interest and uses the lower gradients
(representing smoother and more similar parts of the image) to make an
estimate. It is used in first versions of dcraw, and suffers from color
artifacts.
Pixel Grouping uses assumptions about
natural scenery in making estimates. It has fewer color artifacts on natural
images than the Variable Number of Gradients method; it was introduced in dcraw
from rel. 8.71 as "Patterned Pixel Grouping".
Adaptive homogeneity-directed interpolation
selects the direction of interpolation so as to maximize a homogeneity metric,
thus typically minimizing color artifacts. It has been implemented in recent
versions of dcraw.
Video super-resolution/demosaicing
It has been shown that super-resolution and
demosaicing are two faces of the same problem and it is reasonable to address
them in a unified context. Note that both these problems address the aliasing
issue. Therefore, especially in the case of video (multi-frame) reconstruction,
a joint super-resolution and demosaicing approach provides the optimal
solution.
Tradeoffs
Some methods may produce better results for
natural scenes, and some for printed material, for instance. This reflects the
inherent problem in estimating pixels that we do not really know for certain.
Naturally, there is also the ubiquitous tradeoff of speed versus quality of
estimation.
Use in computer image processing software
When one has access to the raw image data
from a digital camera, one can use computer software with a variety of
different demosaicing algorithms instead of being limited to the one built into
the camera. A few raw development programs, such as RawTherapee, give the user
an option to choose which algorithm should be used. Most programs, however, are
coded to use one particular method. The differences in rendering the finest
detail (and grain texture) that come from the choice of demosaicing algorithm
are among the main differences between various raw developers; often
photographers will prefer a particular program for aesthetic reasons related to
this effect.
The color artifacts due to demosaicing
provide important clues for identifying photo forgeries.
Source From Wikipedia
没有评论:
发表评论