Abstract:
Subdivision per basic color channels of grey level data generated by a color sensor is no longer required according to a novel color interpolation method of an image acquired by a digital color sensor generating grey levels for each image pixel as a function of the filter applied to the sensor by interpolating the values of missing colors of each image pixel for generating triplets or pairs of values of primary colors or complementary base hues for each image pixel. The method may include calculating spatial variation gradients of primary colors or complementary base hues for each image pixel and storing the information of directional variation of primary color or complementary base hue in look-up tables pertaining to each pixel. The method may further include interpolating color values of each image pixel considering the directional variation information of the respective values of primary colors or complementary hues stored in the respective look-up tables of the pixel for generating the multiple distinct values for each image pixel.

Description:
FIELD OF THE INVENTION  
       [0001]     This invention relates to techniques for processing images acquired by a color digital sensor, and, more particularly, to a method of color interpolation of each pixel of the image acquired from intensity values generated by single photosensitive elements of the sensor, depending on the filter applied according to a certain spatial pattern (for instance according the so-called Bayer Pattern) such to make each single element sensitive to one of the primary colors or base hue. Therefore, the output of a digital color sensor generates a grey level value for each image pixel depending on the filter applied to the particular image pixel.  
       BACKGROUND OF THE INVENTION  
       [0002]     In order to reconstruct a color image it is usually necessary to carry out an operation known as color interpolation (or demosaicing) to generate triplets of base color values (RGB) or more values, one for each base hue, through appropriate interpolation algorithms for generating values of missing colors for each image pixel. Numerous techniques for processing data provided by a digital color sensor have been proposed. It is worth mentioning the following documents:  
         [0003]     M. R. Gupta, T. Chen, “Vector Color Filter Array Demosaicing” SPIE Electronic Imaging 2001; R. Ramanath, W. E. Snyder, G. L. Bilbro, W. A. Sander, “Demosaicing Methods for Bayer Color Arrays”, Journal of Electronic Imaging, vol. 11, n. 3, pages 306-315, July 2002; R. Kimmel, “Demosaicing: Image Reconstruction from Color CCD Samples”; R. Kakarala, Z. Baharav, “Adaptive Demosaicing with The Principal Vector Method”, IEEE Transactions on Consumer Electronics, vol. 48, n. 4, pages 932-937, November 2002; B. E. Bayer, “Color Imaging Array”, U.S. Pat. No. 3,971,065, July 1976; B. K. Gunturk, Y. Altunbasak, R, Mersereau, “Color Plane Interpolation Using Alternating Projections”, IEEE Transactions on Image Processing, vol. 11, no.  9 , pages 997-1013, September 2002; S. Smith, “Colour Image Restoration with Anti-Alias”, EP 1,098,535, May 2001. Many known techniques preliminarily subdivide the image data stream generated by the digital color sensor into two or more channels, such as three channels for the case of a filtering based upon the RGB triplet of primary colors (red, green, blue). When the red component of a pixel is to be estimated, but only its green level has been acquired, it is necessary to estimate the red pixels adjacent to the considered pixel, and so on, when the value of another missing color is to be estimated. Clearly, subdividing in different channels grey level data generated by the digital color sensor and the successive merging operation of the values calculated for primary colors or base hues with the known value of the primary color of base hue for the considered pixel implies an evident computational burden or, in case of hardware implementation, an increased circuit complexity.  
         [0004]     The development of new consumer applications of digital photo-cameras and similar devices, for instance in cellular phones, in laptop (notebook) or hand-held computers, and other devices for mobile communications, encourages the need to devise more effective and at the same time low cost techniques for processing images acquired by a digital color sensor. A particular important factor is the low cost, because these techniques may desirably be used in devices economically accessible to individual consumers, and there is considerable competition in this field among manufacturers of these devices and their components.  
       SUMMARY OF THE INVENTION  
       [0005]     It is an object of the invention to provide a new color interpolation algorithm that may not require any subdivision per channels of grey level data generated by a digital color sensor. According to the algorithm of this invention, the effectiveness in terms of definition and color rendition of the processed picture may be higher than that obtained using known methods based on subdivision per channels of data and on merging of data in terms of triplets or pairs of values of primary colors or complementary hues, respectively.  
         [0006]     Basically, the color interpolation method of an image may be acquired by a digital color sensor generating grey levels for each image pixel as a function of the filter applied to the sensor, by interpolating the values of missing colors of each image pixel for generating triplets or pairs of values of primary colors (RGB) or complementary hues for each image pixel. The method may comprise calculating spatial variation gradients of primary colors or complementary hues for each image pixel and storing the information of directional variation of primary color or complementary hue in look-up tables pertaining to each pixel.  
         [0007]     The method may further comprise interpolating color values of each image pixel considering the directional variation information of the respective values of primary colors or complementary hues stored in the respective look-up tables of the pixel for generating the multiple distinct values for each image pixel.  
         [0008]     According to a preferred embodiment, spatial variation gradients may be calculated using differential filters, preferably Sobel operators over image pixels detected without subdividing them depending on the color. Preferably, the interpolation of the respective values of primary colors or base hue may be carried out using an elliptical Gaussian filter the orientation of which coincides with the calculated direction of the respective spatial gradient for the pixel being processed.  
         [0009]     In order to compensate for the emphasis introduced by calculating the spatial gradients of the low spatial frequency components, due to the fact that values of the same primary color or complementary hue of the pixel adjacent to the processed pixel are used, the method may optionally include an additional enhancement operation of the high spatial frequency components. The invention may further provide a simple and effective method for calculating direction and amplitude values of a spatial gradient in correspondence of an image pixel. The methods of this invention may be implemented by a software computer program.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]      FIG. 1  shows the correlation among different channels in a color picture in accordance with the invention.  
         [0011]      FIG. 2  is a flow chart illustrating data flow in accordance with the invention.  
         [0012]      FIG. 3  shows quantized directions for spatial gradients of image pixels in accordance with the invention.  
         [0013]      FIGS. 4   a  and  4   b  show the same picture filtered with a weighted-mode directional filter in accordance with the invention and without such a filter.  
         [0014]      FIGS. 5   a  and  5   b  show two examples of frequency responses of directional filters at π/2 and 0 in accordance with the invention.  
         [0015]      FIG. 6  shows a Bayer pattern with a central green pixel in accordance with the invention.  
         [0016]      FIGS. 7 through 10  compare pictures obtained with the known method IGP and with the method of this invention using a directional filtering interpolation (DF).  
         [0017]      FIG. 11  compares different PSNR values of different images taken from a standard image database for the method of this invention and the known method IGP.  
         [0018]      FIG. 12  shows a sample device that carries out a color interpolation algorithm in accordance with the invention.  
         [0019]      FIG. 13  is a flow chart of an image enhancement process that uses the method of this invention, indicated by the label DF.  
         [0020]      FIG. 14  shows an architecture implementing the method of this invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0021]     “Bayer pattern” filtering is based on the use of primary color filters: red (R), green (G) and blue (B). It is widely used in digital color sensors and for this reason the method of this invention is now described in detail referring to this application, though the same considerations apply mutatis mutandis for systems for acquiring color images based on filters of two or more complementary hues applied according to spatial patterns different from the Bayer pattern.  
         [0022]     According to the invention, it is supposed that the red and blue channels, especially at low frequencies, be highly correlated with the green channel in a small interval, as shown in the example of  FIG. 1 . If, for example, the central pixel is red, it is possible to assume that the low-pass component of the green channel is 
 
 G   LPF ( i,j )= R   LPF ( i,j )+Δ RG   (1) 
 
 wherein ΔRG is an appropriate value that depends on the pixels that surround the considered pixel, and 
 
 G   LPF ( i,j )= f   1 ( i,j )  (2) 
 
 R   LPF ( i,j )= f   2 ( i,j )  (3) 
 
 wherein f 1  and f 2  are interpolation functions of the central pixel determined from the surrounding pixel. 
 
         [0023]     This implies that the interpolation, for instance, of the missing green pixels may advantageously exploit the information coming from the red and blue channels. In practice, according to the invention, the missing pixels are interpolated without splitting the image into the component channels. This model uses differences between different channels (that may be seen as chromatic information), is susceptible of generating optimal results because the human eye is more sensitive to low frequency chromatic variations than to luminance variations.  
         [0024]     In order to estimate the direction of an edge depicted in the picture it is necessary to calculate in the CFA (Color Filter Array) image the variation along the horizontal and vertical directions. A preferred way of calculating these variations comprises using the well known Sobel filters along an horizontal x axis and a vertical y axis:  
                 Sobel   y     =     [         1       2       1           0       0       0             -   1           -   2           -   1           ]       ;       Sobel   x     =     [         1       0         -   1             2       0         -   2             1       0         -   1           ]               (   4   )             
 
         [0025]     So far, the Sobel filters have been used on the same channel (R or G or B), or on a same luminance channel. According to the invention, the Sobel filters are used directly on the combination of the three channels RGB. The demonstration that the Sobel filters can be usefully applied to a Bayer pattern is not simple and is given hereinafter.  
         [0026]     Let us consider a 3×3 Bayer pattern:  
             P   =     [           G   1           J   2           G   3               H   4           G   5           H   6               G   7           J   8           G   9           ]             (   5   )             
 
 wherein G i  for i=1, 3, 5, 7, 9 are the intensities of the green pixels and H i  and J i  are respectively the intensities of the red and blue pixels. Considering Eq. (1), it is possible to approximate the intensity of the missing green pixels. 
 
         [0027]     It is thus obtained that the channel G (corresponding to the considered central pixel in the example) is described by the following matrix P′:  
               P   ′     =     [           G   1             J   2     +     Δ   1             G   3                 H   4     +     Δ   2             G   5             H   6     +     Δ   3                 G   7             J   8     +     Δ   4             G   9           ]             (   6   )             
 
 The convolution between the matrix P′ and the matrix that describes the Sobel filter along the vertical direction (Sobel y ) is:  
                       P   ′     ·     Sobel   y       =       [           G   1             J   2     +     Δ   1             G   3                 H   4     +     Δ   2             G   5             H   6     +     Δ   3                 G   7             J   8     +     Δ   4             G   9           ]     ⊗     [         1       2       1           0       0       0             -   1           -   2           -   1           ]                   =       G   1     +     2   ⁢     (       J   2     +     Δ   1       )       +     G   3     -     G   7     -     2   ⁢     (       J   8     +     Δ   4       )       -       G   9     .                     (   7   )             
 
         [0028]     The unknown parameters are only Δ 1  and Δ 4 . These two parameters are estimated in a small image portion, thus it may be reasonably presumed that they are almost equal to each other and that their difference is negligible. As a consequence, Eq. (7) becomes 
 
 P′·Sobel   y   =G   1 +2 J   2   +G   3   −G   7 −2 J   8   −G   9   (8) 
 
 It may be immediately noticed that, by applying the Sobel filter directly on the Bayer pattern of Eq. (5), the same result given by Eq. (8) is obtained. Therefore, using this filter Sobel y  on a Bayer pattern is equivalent to calculating the corresponding spatial variation value along the y direction. By using the filter Sobel x  along the horizontal direction, another value P′·Sobel x  is obtained that provides a corresponding spatial variation value along the x direction. For each pixel of the Bayer pattern the values P′·Sobel x  and P′·Sobel x  are calculated. According to the method of the invention, these values are collected in look-up tables for estimating the direction of the reconstruction filter. 
 
         [0029]     The orientation of the spatial gradient in correspondence to a certain pixel is given by the following formula:  
               or   ⁡     (     x   ,   y     )       =     {             tan     -   1       ⁡     (         P   ′     ·       Sobel   y     ⁡     (     x   ,   y     )             P   ′     ·       Sobel   x     ⁡     (     x   ,   y     )           )               if   ⁢           ⁢       P   ′     ·     (       Sobel   x     ⁡     (     x   ,   y     )       )         ≠   0               π   2         otherwise                   (   9   )             
 
 wherein P′·Sobel y  and P′·Sobel x  are the filtered values with the horizontal and vertical Sobel filters centered in a given pixel. The orientation or (x,y) is preferably quantized in k pre-defined directions, for instance those depicted in  FIG. 3 :  
                 direction   i     =       i   ·   π     k       ,       wherein   ⁢           ⁢   i     =     [     0   ,     k   -   1       ]       ,     k   ⁢           ⁢   ε   ⁢           ⁢   ℵ             (   10   )             
 
         [0030]     If the calculated orientation value or(x,y) belongs to a fixed interval i, the orientation will be quantized by the value direction i : 
 
or( x,y )={direction i |direction i ≦or( x,y )&lt;direction i+1 }  (11) 
 
 The square of the absolute value of the spatial gradient mag(x,y) is calculated according to the following formula: 
 
 mag ( x,y )=( P′·Sobel   x ) 2 +( P′·Sobel   y ) 2   (12) 
 
 It is preferable to consider the square of the absolute value for avoiding square roots, the calculation of which would slow down the method of the invention. For each calculated orientation of the spatial gradients, a new operator, purposely designed for the preferred embodiment of the method of the invention, that hereinafter will be indicated as the “weighted-mode” (WM) operator, is used. This operator substantially provides an estimation of the predominant amplitude of the spatial gradient around the central pixel by performing the operations of: storing the amplitude values for each pixel around a central pixel according to the following formula  
               Acc   ⁡     (     x   ,   y   ,   i     )       =       ∑     u   =     -   1       1     ⁢           ⁢       ∑     v   =     -   1       1     ⁢           ⁢       mag   ⁡     (       x   +   u     ,     y   +   v       )       ·     t   ⁡     (       x   +   u     ,     y   +   v     ,   i     )                     (   13   )             
 
 wherein u=[−1, +1], v=[−1, +1], iε[0, k−1], kεN and Acc is an array of k possible orientations;  
               t   ⁡     (     x   ,   y   ,   i     )       =     {         0           if   ⁢           ⁢     or   ⁡     (     x   ,   y     )         ≠     direction   i               1       otherwise                   (     13   ⁢           ⁢   bis     )             
 
 calculating the predominant amplitude WM with the following formula:  
               WM   ⁡     (     x   ,   y     )       =       max     i   =       0.   ..     ⁢   k         ⁢     (     Acc   ⁡     (     x   ,   y   ,   i     )       )               (   14   )             
 
         [0031]     The operator WM is a sort of morphological operator that enhance the edges. This operator is used for preventing the effects due to the presence of noise in estimating the spatial gradient. According to an embodiment of the invention, the interpolation filtering is carried out by means of an elliptical Gaussian filter described by the following formula:  
                 f   ⁡     (     x   ,   y   ,   α     )       =     h   ·     ⅇ       -         x   ~     2       2   ⁢     σ   x   2           -         y   ~     2       2   ⁢     σ   y   2                 ,           (   15   )             
 
 wherein 
 
 {tilde over (x)}=x  cos(α)− y  sin(α), 
 
 {tilde over (y)}=x  sin(α)+ y  sin(α),  (16) 
 
 and σ x , σ y  are the standard deviations along the directions x and y, respectively, h is a normalization constant and α is the orientation angle, as shown in  FIG. 5 . According to the invention, the orientation of the filter to be applied in a pixel coincides with the orientation of the spatial filter calculated for that pixel. The filter provides the low-pass red R LPF , green G LPF  and blue B LPF  components, preserving the image from zig-zag effects and false colors (artifacts). 
 
         [0032]     A low-pass component is calculated using a spectral formulation, as defined in the following formula: 
 
Comp( l,m )=Mask( l,m )· F ( l,m )· I ( l,m )  (17) 
 
 wherein Mask (l,m) identifies the pixels of the spectral components (l,m) (red, green or blue), F is one of the above mentioned Gaussian filters and I is the input picture. 
 
         [0033]     In order to further enhance the quality of the generated picture, it is possible to carry out the so-called “peaking” operation, that substantially comprises introducing in the filtered image high frequency components that were lost during the low-pass filtering with the directional Gaussian filter. This operation will be described referring to the case in which the-central pixel of the selection frequency of the Bayer pattern is a green pixel G. Being G LPF     —     DF  the low-pass component of this pixel obtained with the directional filter, the lost high frequency component Δ Peak  is given by the following equation 
 
Δ Peak   =G−G   LPF     —     DF   (18) 
 
         [0034]     In practice, the high frequency component is obtained as the difference between the known effective value of the central pixel G and the corresponding low-pass filtered value G LPF     —     DF . The central pixel is kept unchanged in the interpolated image, while the reconstructed low-pass blue and red values are increased by the quantity Δ Peak  for enhancing the high frequency components. Substantially, the intensity H of the red and blue central pixels is obtained with the following formula: 
 
 H=H   LPF     —     DF +Δ Peak   (19) 
 
 Various experiments have been carried out for comparing original images with images filtered with the method of this invention using a directional filtering (DF), and with images interpolated with the known method IGP [7]. The method of this invention has been implemented with the just described “peaking” operation. The results are shown in the Figures from 7 to 10. 
 
         [0035]      FIG. 11  compares the PSNR values obtained for the method of this invention and the known method IGP for different images extracted from a standard database of images (http://r0k.us/graphics/kodak). As it is possible to notice, the method of the invention based on the directional filtering DF ensures higher signal/noise ratios than the known method IGP.  
         [0036]     The color interpolation method of the invention may be incorporated in any process for treating digital Bayer images. Tests have shown that the method of this invention relevantly limits the generation of false colors and/or zig-zag effects, compared to the known color interpolation methods. In order to further improve the quality of images obtained with any process for treating Bayer images including the method of the invention, it is possible to carry out any anti-aliasing algorithm.  
         [0037]      FIG. 12  shows a sample device, such as a digital photo-camera, that carries out a color interpolation algorithm.  FIG. 13  is a flow chart of a process for treating images comprising the method of the invention, schematically indicated by the label DF.  
         [0038]      FIG. 14  shows an architecture implementing the preferred embodiment of the method of this invention, wherein each single block carries out one of the above operations. The meaning of each functional block will be evident for any skilled person, thus this architecture will not be described.