The invention relates in general to processing techniques of image data acquired by a color digital sensor, and, more in particular, to a method of interpolating the color information for each image pixel.
Modern digital cameras use an electronic sensor for acquiring the spatial variations of light intensity. The two main fabrication technologies of sensors are the so called CCD (Charge Coupled Device) and the CMOS (Complementary Metal Oxide Semiconductor).
For example, a CCD is provided by an array of photosensitive diodes that converts photons into electrons (electric charge). Each diode, called a photodiode produces an electric charge proportional to the quantity of light reaching it.
The single sensors of a digital camera are normally arranged as a two-dimensional array of millions of cells (photodiodes), which convert an infinitesimal portion of the image into electric charge. The stored generated charge is then transformed into a pixel of digital image by an analog-to-digital converter.
A monochromatic sensor is made sensitive to a single color component by a color filter. A filter may act on primary colors or on complementary colors. The primary color filters are commonly arranged according to a scheme known in the art by the name of Bayer pattern in which half of the pixels are made sensitive to the green color, a fourth of the pixels to the red color and the last fourth to the blue color. As depicted in
The main reason the number of acquired green pixels are doubled compared to the number of acquired red and blue pixels is the greater sensitivity of human vision of the green chromatic component. Therefore, the value of each pixel of a CCD sensor carries information on a single primary color.
To reconstruct a good quality color image it is therefore desired to carry out an operation known as color interpolation for generating a triplet of values RGB for each pixel of the image to be produced at an output. Therefore, for example, for estimating the red component of a pixel for which only the green component has been acquired by the filtered light sensitive cell, it is necessary to take into consideration the adjacent pixels carrying information on the red component.
Bicubic and bilinear color interpolation are simple and efficient algorithms, but they may introduce large errors in the contour zones of the images. To address this problem several authors have proposed optimization algorithms that are sensitive to the input data. For example, Adams introduced an edge oriented method, and Kimmel, Adams, and Pei-Tam suggested other color correlation methods.
Triangulation is another well-known technique of linear interpolation that has been proposed for performing zooming on a digital image. A brief review of triangulation-based linear interpolation approaches is presented herein below.
Triangulation: Basic Considerations
Basically, the approach is to partition an image into triangles, the vertices of which are the known pixels, according to certain criteria. The color rendering or reconstruction phase follows during which each pixel value of the image to be produced is calculated through a linear interpolation of the vertices of the pertinent triangle.
Given a set of distinct points V={(xi, yi)}, what is of interest is a convex hull triangulation of V, that is a set T={Ti}i=1 . . . q of non degenerate triangles that satisfies the following conditions:
The criteria for choosing one among all the possible triangulations is to minimize a certain cost function C(T) of the entire triangulation T. Dyn-Levin-Rippa [5] suggested, among others, the following overall function cost:
C(T)=Σ|cost(e)| (1)
for each edge e of T with a chosen cost(e). Once a possible triangulation is chosen, the values of the pixels will be interpolated by the unique 3D linear polynomial passing for the three vertices of the triangles. The 3D liner polynomial will be:
Pi(x,y)=aix+biy+ci (2)
for each triangle Ti of T.
Delaunay Triangulation
According to the Delaunay triangulation each triangle is such that the circle passing for his three vertices does not contain any other vertex of V, where V={vi} set of distinct vertices. The construction of a Delaunay triangulation is defined through its Voronoi diagram.
The Voronoi diagram for V is the partition Vor(V) of the plane into the Voronoi polygons associated to V. The Voronoi polygon associated to vi is the locus of points in the plane that are closer to vi than to any other member of V.
The Delaunay triangulation can be defined as follow:
If the vertices of V are equally spaced (as it would be in the case of color interpolation), the resulting triangles will be equilateral triangles. Dyn-Levin-Rippa [9] demonstrated that triangulations involving long, narrow triangles give better results in linear interpolation.
Data Dependent Triangulation
Several optimization algorithms for performing what may be defined as Data Dependent Triangulation have been developed. For example, Lawson's algorithm [10] converges to the globally optimal solution if the cost function is based on the Delaunay criterion. Schumaker's simulated annealing method [11], gives good results, but is relatively slow. The “edge swap with look-ahead” method [8], is relatively faster than other algorithms.
The Yu-Morse-Sederberg's “edge swap with look-ahead” method includes the following steps:
A number of cost functions for characterizing a satisfactory triangulation interpolation have been proposed.
In particular, Dyn-Levin-Rippa [5] identify four cost functions called NC1 (Nearly C1), as particularly efficient. The cost for an edge e=[(x1,y1), (x2,y2)] in common with two triangles T1 and T2, the interpolating planes of which are respectively P1(x,y)=a1x+b1y+c1 and P2(x,y)=a2x+b2y+c2, may be calculated according to a selected cost function:
Another cost function has been proposed by Yu-Morse-Sederberg [8]:
cost(e)=∥□P1∥*∥□P2∥−□P1*□P2 (7)
where
∥□Pi∥=sqrt(ai2+bi2)
Pi(x,y)=aix+biy+ci
□Pi=(ai, bi) gradient of Pi
A first approach to use pixel level data dependent triangulation [5] even for color interpolation, was proposed by Su-Wills [6], following a previous work [7]. This method of color interpolation matches the edge orientation of the images and correlates the three distinct pixel channels (RGB).
Su-Wills Algorithm
Su-Wills algorithm [6] is based on the Delaunay Triangulation. As depicted in
To determine which diagonal should be chosen, a simple cost function is used as indicated in
On the other hand, the use of more sophisticated triangulation algorithms as described above and of a cost function chosen among the above-mentioned four NC1 cost functions and the Yu-Morse-Sederberg [8] cost function for color interpolation would be excessively costly in terms of computation complexity, and in some cases, excessively slow.
It is generally perceived from these published works that it is not possible to have good interpolated images with a simple cost function and a fast triangulation algorithm, and that it is necessary to employ a sophisticated triangulation algorithm and a relatively complex cost function for obtaining satisfactory performance.
Contrary to these generally accepted conclusions, the present applicants have found simpler cost function and faster triangulation algorithms than those disclosed in Yu-Morse-Sederberg [8] that nevertheless produce interpolated images of comparably good quality. Surprisingly, applicants found that the quality of color interpolated images does not seem to degrade with respect to images obtained with the method disclosed in [8] when a computationally simpler cost function is used that does not require the calculation of powers and square roots.
Moreover, they found an efficient triangulation algorithm that may be executed in far less time than the triangulation algorithm disclosed in [8], while providing similar performance. The peculiarity of this triangulation algorithm may require on average only two iteration steps, while the triangulation algorithm disclosed in [8] may be completed only after four iteration steps.
Optionally, the interpolation process may be followed by anti-aliasing processing that effectively removes color artifacts that may be created during the interpolation process.
According to an innovative aspect of this invention in the case of a Bayer pattern, this step is based on the use of only two difference arrays, namely green-blue and green-red, respectively, and the consequent calculation of only two median arrays therefrom. In addition, the invention may be easily implemented with a software computer program.
a and 14b illustrate possible edge swappings from the triangulation in
a and 15b illustrate two cases that may occur while performing a data dependent triangulation technique (DDT) according to the invention;
The color interpolation method of this invention will be described by way of an example when considering the interpolation of a Bayer pattern image data as acquired by a digital color sensor. Naturally, the method is equally applicable to any other different scheme of acquisition using different filters, for example, for discriminating among complementary colors instead of primary colors.
By referring to the flow chart of
Improved Cost Function
The cost function that has been found to be outstandingly efficient in terms of quality vs. computational complexity is the following
cost(e)=(|a1|+|b1|)*(|a2|+|b2|)−□P1*□P2 (8)
where
Pi(x,y)=aix+biy+ci
and
□Pi=(ai, bi)
is the gradient of the interpolating function Pi, which depends on the coordinates x, y of the pixel to be interpolated.
It may be immediately noticed that this function is much simpler to calculate than the Yu-Morse-Sederberg cost function because it uses the calculation of absolute values, additions and multiplications. Using this cost function in the method of color interpolation disclosed in [8], the same quality of images is obtained, while at the same time reducing the computational cost of the interpolation algorithm. Another method in which this cost function may be conveniently used is disclosed hereinafter.
Improved Triangulation
According to another embodiment of the invention, a color interpolation method that uses simple data dependent triangulation has been found. Different from the known method of color interpolation by DDT of Su-Wills [6], the novel method of DDT color interpolation of this invention uses the “edge swap with look-ahead” technique of triangulation. The method of the invention contemplates the following operations:
According to a preferred embodiment, the method of this invention is applied on all three images in primary colors and blocks of 4×4 pixels are considered. Of course, this method may be applied also to two images in primary colors and/or considering blocks of 2×2 pixels.
The process ends when all squares have been processed, and this may be done at most in two iteration steps. This is evident in
There are four triangles adjacent to the central square that form a quadrilateral with a triangle composing the central square. Only in this case, all the four adjacent triangles should be considered, but at most two swappings are possible. In fact, for each of such adjacent triangles there is another adjacent triangle that form a quadrilateral with the same triangle of the central square.
Therefore, if a diagonal of one of such quadrilaterals is swapped, the diagonal of the other quadrilateral involving the same triangle of the central square cannot be swapped anymore. If this were possible, there would be diagonals crossing each other, which is forbidden in any triangulation technique because each unknown pixel value is calculated by a function of only two known pixels values.
Only in the case of a triangulation as illustrated in
In case of a triangulation as illustrated in
The cases in which the central square will have only one, two or three adjacent triangles that form a quadrilateral with a triangle that compose it, are more probable than the case of
According to a preferred embodiment of this method, the cost function to be used in steps b) and c) is given by eq. (8). Simulations indicate that more than one iteration step may not produce any visual perceptive improvement on the color interpolated image. Therefore, according to a preferred embodiment of this invention, only one iteration step may be performed.
Merging of Channels
The channels R and B are shifted compared to the G channel and then to the original image. For this reason a smart cropping of the borders may be necessary to avoid mixing of colors.
Anti-Aliasing Algorithm
To remove color artifacts, due to the color interpolation step, an anti-aliasing algorithm is necessary. An effective algorithm is the Freeman's algorithm [13], which is summarized in the
In particular for the RGB channels of a Bayer pattern input image, the Freeman's algorithm uses the following formulas:
for green (G) pixels in the original Bayer Pattern:
Ĝ=G; {circumflex over (R)}=G−νGR; {circumflex over (B)}=G−νGB;
for red (R) pixels in the original Bayer Pattern:
{circumflex over (R)}=R; Ĝ=R+νGR; {circumflex over (B)}=R−νRB;
for blue (B) pixels in the original Bayer Pattern:
{circumflex over (B)}=B; Ĝ=B+νGB; {circumflex over (R)}=B+νRB;
wherein ({circumflex over (R)}, {circumflex over (B)}, Ĝ) are the output RGB pixels and νxy is the median filter (the selection window of which is usually a 3×3 or 5×5 window centered on the pixel to be filtered) applied on the image difference (X−Y). Freeman's approach works fairly well to remove color artifacts, but it is slow due to the median filter elaboration of the three difference arrays.
According to an effective approach, only the two difference arrays (G−B) and (G−R) may be used, and only the two median arrays νGB and νGR are calculated. The difference array (R−B) and the related median array νRB is not calculated, thus elaboration time is drastically reduced.
In detail, the color artifact removal after the color interpolation is performed through the steps of:
with final 4*3=12 RGB samples is considered, it is possible to note that G patterns in the two outputs are equal and that the R or B patterns are ⅔ equal, so 6/12+ 2/12+ 2/12=⅚. Simulations revealed that the quality of the final image in the proposed algorithm is practically the same as that obtained with the Freeman's algorithm.
The following references were cited in foregoing description of the invention and the entire contents of each are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
04425587 | Jul 2004 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
5704025 | Berry | Dec 1997 | A |
5933547 | Dudon et al. | Aug 1999 | A |
6016151 | Lin | Jan 2000 | A |
6229578 | Acharya et al. | May 2001 | B1 |
7015930 | Gruber | Mar 2006 | B2 |
7215810 | Kaufmann et al. | May 2007 | B2 |
Number | Date | Country | |
---|---|---|---|
20060022997 A1 | Feb 2006 | US |