color interpolation algorithmss

Upload: gayathri-devi-kotapati

Post on 04-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Color Interpolation Algorithmss

    1/15

    Color Interpolation Algorithms

    Gayathri devi Kotapati

    Depatment of computer science

    K L UniversityVaddeswaram,India

    [email protected]

    Jaya deepthi Thiyyagura

    Depatment of computer science

    K L UniversityVaddeswaram,India

    [email protected]

    AbstractIn this paper we discuss about different colorinterpolation algorithms and compare these algorithms based on

    subjective quality measure ,objective quality measure and

    computational cost .Interpolation is a method of constructing

    new data points with in the range of discrete set of known data

    points

    I.INTRODUCTIONAll Usage of digital cameras is spreading widely as they are

    easy image input devices. The increasing popularity of digital

    cameras has provided motivation to improve all elements of

    the digital photography signal chain. To lower cost, digital

    color cameras typically use a single image detector. Color

    imaging with a single detector requires the use of a ColorFilter Array (CFA) which covers the detector array. In this

    arrangement each pixel in the detector samples the intensity of

    just one of the many-color separations. The recovery of full-

    color images from a CFA-based detector requires a method of

    calculating values of the other color separations at each pixel.

    These methods are commonly referred as color interpolation

    or color demosaicing algorithms.

    In a single-detector camera, varying intensities of light are

    measured at an rectangular grid of image sensors. To constructa color image, a CFA must be placed between the lens and the

    sensors. A CFA typically has one color filter element for each

    sensor. Obviously, the color interpolation algorithms depend

    on the CFA configuration. Many different CFA configurations

    have been proposed. One of the most popular is the Bayer

    pattern[1], which uses the three additive primary colors, red,

    green and blue (RGB), for the filter elements. Since our goal

    in this study is to examine color interpolation algorithms, we

    don't pay special attention to CFA patterns. Instead we

    exclusively work with the Bayer pattern in RGB color space,

    as shown in Figure.(1) below. The selection of Bayer patternis mainly due to its popularity.

    Figure 1

    In Section II, we will describe the color interpolationalgorithms included in this study. Section III gives software

    implementation of some of these algorithms in Matlab. We

    then compare the performance of these algorithms in Section

    IV.

    Notice even though our study is specifically targeted at Bayer

    pattern with RGB color space, many algorithms studies here

    can be extended to different pattern with different color spaceeasily.

    In our effort to include as many algorithms as possible, wehave tried the most extensive search within our resource

    limitation. But by no means this inclusion is complete and we

    apologize if some other work in this area should have been

    included.

    II.ALGORITHM DESCRIPTIION. In this section we will describe a number of color

    interpolation algorithms used in digital cameras as reported in

    liberatures. To describe these algorithms, we classify them

    into two distinct groups, non-adaptive

    algorithms and adaptive algorithms.

    As their names suggest, non-adaptive algorithms denote those

    algorithms that perform interpolation in a fixed pattern for

    every pixel (within a group). While adaptive algorithms imply

  • 7/29/2019 Color Interpolation Algorithmss

    2/15

    that those algorithms can detect local spatial features present

    in the pixel neighborhood, then make effective choices as to

    which predictor to use for that neighborhood. In other words,adaptive algorithms pocesses some intelligence and therefore

    are more sophisticated in general.

    There are many ways to describe these algorithms. Graphical

    description, kernel convolution, arithmetic equations or

    description via examples are all useful means to explain how

    the algorithm works. In our presentation of each algorithm, wewill try to adopt any one of these means or combinations of

    those means, whichever makes the description as easily

    understandable as possible. As a result, different algorithms

    may be subject to different description means.

    Before we jump into the detailed description, we want to

    mention briefly some other algorithms that are not included

    here in detail. This includesMedian Filtering Method[28],

    some other linear estimator methods in [29][31][33],Pattern

    Classification Method[32], and a new Gradient based

    methoddescribed in a newly approved patent[30]. We would

    like include them all in the future.

    III.NON ADAPTIVE ALGORITHM

    A.Nearest Neighbor Replication

    In this interpolation method[2][3][4][5], eachinterpolated output pixel is assigned the value of the

    nearest pixel in the input image. The nearest neighbor

    can be any one of the upper, lower, left and rightpixels.

    An example is illustrated below in Figure 2 for a 3x3block in green plane. Here we assume the leftneighboring pixel value is used to fill the missing

    ones.

    Figure 2

    B.Bilinear Interpolation

    figure 1

    Interpolation of green pixels : the average of theupper, lower, left and right pixel values is assigned as

    the G value of the interpolated pixel. For example :

    G8 = (G3+G7+G9+G13) / 4

    Interpolation of red/blue pixels :o Interpolation of a red/blue pixel at

    a green position : the average of two

    adjacent pixel values in corresponding color

    is assigned to the interpolated pixel. Forexample : B7 = (B6+B8) / 2 ; R7 =

    (R2+R12) / 2

    o Interpolation of a red/blue pixel ata blue/red position : the average of four

    adjacent diagonal pixel values is assigned to

    the interpolated pixel. For example : R8 =

    (R2+R4+R12+R14) / 4 ; B12 =(B6+B8+B16+B18) / 4

    C.Cubic Convolution Interpolation

    We will rely on system kernel convolution todescribe this interpolation scheme. In general,

    interpolation can be expressed as :

    where h is the interpolation kernel and c(x,y) is the data

    sample itself at a pixel ( xk,yl ). Apparently, in this formation,

    h, the interpolation kernel, is the main part of the interpolation

    algorithm.

    Cubic convolution is a third-degree interpolationusing 16 adjacent pixels and some typical cubic

    convolution kernels are :

    o one-variable cubic interpolation :

  • 7/29/2019 Color Interpolation Algorithmss

    3/15

    and the parameter "a" has been reported as -

    1 in [22], 0.5 in [23] and 0.75 in [24].

    o two-variable cubic interpolation [25]:

    where "b" and "c" are two parameters and(b,c) = (0.33,0.33), (b,c) = (1.5,-0.25) have

    been reported in [26].

    o Cubic B-Spline interpolation [27] :

    Cubic B-spline is the three-degree B-spline.

    D.Smooth Hue Transition Interpolation

    One of the key objection of the bilinear interpolationis that the hues of adjacent pixels change abuptly and

    in an unnatural manner. The Bayer CFA pattern, on

    the other hand, can be thought of as consisting of a

    luminance channel (the relatively numerous greenpixels) and a chrominance channel (the relative

    sparse red and blue pixels). A scheme can be created

    to interpolate these channels differently.

    For convenience, figure 1 is duplicated here

    Interpolation of green pixels : same as in bilinearinterpolation. Also note interpolation of green pixels

    has to be done before interpolations of red/blue

    pixels.

    Interpolation of red/blue pixels :o The idea here is to try to impose a smooth

    transition in hue from pixel to pixel.

    o To do so, define blue "hue value" as : B/G.And red "hue value" can be analogously

    defined.

    o Considering the interpolation of blue pixelvalues : there are three different cases of

    blue pixel value interpolations.

    estimating blue pixel value at thegreen position and the adjacent

    blue pixels are on left and right :

    e.g. B7 = G7 / 2 * (B6 / G6 + B8 /

    G8)

    estimating blue pixel value at thegreen position and the adjacent

    blue pixels are on top and bottom :

    e.g. B13 = G13 / 2 * (B8 / G8 +

    B18 / G18)

    estimating blue pixel value at thered postion : e.g. B12 = G12 / 4 *(B6 / G6 + B8 / G8 + B16 / G16 +

    B18 / G18)

    o Interpolation of red pixel values can becarried out analogously

    E.Smooth Hue Transition Interpolation in Logarithmic

    Exposure Space

    Figure 1

    Interpolation of green pixels : same as in bilinearinterpolation. Also note interpolation of green pixels

  • 7/29/2019 Color Interpolation Algorithmss

    4/15

    has to be done before interpolations of red/blue

    pixels.

    Key step : After the green pixel interpolations areperformed, transfer the original pixel data together

    with the interpolated green pixel values from linear

    exposure space into logarithmic exposure space. Let's

    denote these log values ad Glog, Blog and Rlog,

    respectively.

    Interpolation of red/blue pixels in log space :o In logarithmic space, define blue "hue

    value" as : Blog- Glog . And red "hue

    value" can be analogously defined.

    o Considering the interpolation of blue pixelvalues : there are three different cases of

    blue pixel value interpolations.

    estimating blue pixel value at thegreen position and the adjacent

    blue pixels are on left and right :

    e.g. B7log = G7log + (B6log - G6log

    + B8log - G8log) / 2

    estimating blue pixel value at thegreen position and the adjacent

    blue pixels are on top and bottom :

    e.g. B13log = G13log + (B8log -

    G8log + B18log - G18log) / 2

    estimating blue pixel value at thered postion : e.g. B12 log = G12log +

    (B6log - G6log + B8log - G8log +

    B16log - G16log + B18log - G18log) /

    4

    o Interpolation of red pixel values can becarried out analogously

    Finally, transfer the all pixel values back into linearexposure space

    .

    IV.ADAPTIVE ALGORITHMA.Edge Sensing Interpolation Algorithm I

    From our description of non-adaptive algorithms, itcan be seen that most of the color interpolation is

    done by averaging neighboring pixels

    indiscriminately. This causes an artifact -- the "zipper

    effect" in the interpolated image. To combat with this

    artifact, it is natural to derive an algorithm that can

    detect local spatial features present in the pixel

    neighborhood and then makes effective choices as towhich predictor to use that neighborhood. The result

    is a reduction or elimination of "zipper-type"

    artifacts. And algorithms that involve this kind of

    "intelligent" detection and decision process are

    referred as adaptive color interpolation algorithms.

    Human visual systems are sensitive to edges presentin the images and non-adaptive color interpolation

    algorithms often fail around edges since they are not

    able to detect "edges". To deal with edges, let's first

    look at an edge sensing algorithm[14][3][15].

    figure 1

    Interpolation of green pixels :o First, define two gradients, one in horizontal

    direction, the other in vertical direction, for

    each blue/red position. For instance,

    consider B8 : define two gradients

    as ,where | . | denotes absolute value

    o Define some threshold value To The algorithm then can be described as

    follows :

    o The choice of T depends on the images andcan have defferent optimum values from

    different neighborhoods. A particular choice

    of T is [4]. In this case,the algorithm becomes :

  • 7/29/2019 Color Interpolation Algorithmss

    5/15

    Interpolation of red/blue pixels : same as in Smoothhue transition interpolation in logarithmic exposure

    space. Other methods may be used as well.

    B.Edge Sensing Interpolation Algorithm II

    A slightly different edge sensing interpolationalgorithm is described in [17].

    Interpolation of green pixels : same as in edgesensing interpolation algorithm I except that

    horzitonal and vertical gradients are defined

    differently. Refer to figure 6 below, to estimate G5 at

    B5, we define gradients as :

    figure 6

    and the actual algorithm follows as in the edge sensing

    interpolation algorithm I.

    Interpolation of red/blue pixels : similar to bilinearinterpolation algorithm except that color difference is

    interpolated instead of color itself.

    C.Linear Interpolation with Laplacian second-order correctionterms I

    This algorithm [18] is designed for optimizingperformance of images with horizontal and vertical

    edges. To illustrate the algorithm, we'll utilize real

    examples to make description a little bit easier to

    understand.

    Interpolation of green pixels : refer to figure 6,duplicated below for convenience. We'll consider

    estimating the green value at a blue pixel.

    Interpolation done at a red pixel can be carried out

    similarly. Let's find out G5 at B5.

    o Define horizontal and vertical gradients as

    :

    o The algorithm is:

    Interpolation of red/blue pixels : refer to figure 7below. Depending on the positions, we have three

    cases.

    figure 7

    o case 1 : find red/blue values at a green pixelwhere nearest neighbors are in the samecolumn. For instance, to estimate R4 at G4,

    use predictor R4 = (R1 + R7) / 2 + (G4 - G1

    + G4 - G7) / 4

    o case 2 : find red/blue values at a green pixelwhere nearest neightbors are in the same

    row. For instance, to estimate R2 at G2, use

  • 7/29/2019 Color Interpolation Algorithmss

    6/15

    predictor R2 = (R1 + R3) / 2 + (G2 - G1 +

    G2 - G3) / 4

    o case 3 : find red/blue values ata blue/red pixel. For instance, estimate R5 atB5.

    Define two diagonal (negative andpositive) directions as follows :

    And the actual algorithm isdescribed as :

    D.Linear Interpolation with Laplacian second-order correction

    terms II

    An extension to previous interpolation method withLaplacian second-order correction terms is described

    in [19][20].

    Interpolation of green pixels : again, we will borrowthe figure from previous algorithm descriptions. Forconvenience, it's duplicated below. We'll consider

    estimating the green value at a blue pixel.Interpolation done at a red pixel can be carried out

    similarly. Let's find out G5 at B5.

    o Define eleven color correction terms withcorresponding predictors as follows :

    CC1 = B5 - B3 + B5 - B7; P1 = ( G4 + G6 ) / 2 +CC1 / 4;

    CC2 = B5 - B1 + B5 - B9; P2 = ( G2 + G8 ) / 2 +

    CC2 / 4;

    CC3 = B5 - B1 + B5 - B7; P3 = ( G2 + G6 ) / 2 +

    CC3 / 4;CC4 = B5 - B7 + B5 - B9; P4 = ( G6 + G8 ) / 2 +

    CC4 / 4;

    CC5 = B5 - B9 + B5 - B3; P5 = ( G4 + G8 ) / 2 +

    CC5 / 4;

    CC6 = B5 - B3 + B5 - B1; P6 = ( G2 + G4 ) / 2 +

    CC6 / 4;CC7 = B5 - B1; P7 = G2 + CC7 / 2;

    CC8 = B5 - B7; P8 = G6 + CC8 / 2;

    CC9 = B5 - B9; P9 = G8 + CC9 / 2;

    CC10 = B5 - B3; P10 = G4 + CC10 / 2;

    CC11 = B5 - B1 + B5 - B3 + B5 - B7 + B5 - B9; P11

    = ( G2 + G4 + G6 + G8) / 4 + CC11 / 8;

    notice CC1 - CC6 are Laplacian second-

    order derivative operators and CC7 - CC10are Laplacian first-order derivative

    operators.

    o The algorithm is :If min{CC1, CC2 } < a given

    Threshold (e.g. 69 in 8-bit log

    space)G5 = the corresponding

    predictor; (e.g. if CC1 < CC2 and

    CC1 < Threshold, then G5 = P1)

    Else if min{CC3,CC4,CC5,CC6} B>C>D,

    then G12 =median{G7,G11,G13,G17} = ( B +

    C ) / 2

    stripe pattern : a larger pixelneighborhood as described in

    figure 3 is needed

    Figure 3

    and where

    M = SUM(G) / 4 , S = SUM(X) / 8

    and 'clip' function constrains the

    prediction to lie between the values

    B and C. If the prediction is greaterthan B, it is set o B; if the

    prediction is less than C, it is set to

    C

    corner pattern : again, a larger pixelneighborhood is needed, as

    described in figure 4.

    figure 4

    and just as in the stripe pattern

    case, ,

    where M = median{H's, L's} and S= SUM(X) / 4

    Interpolation of red/blue pixels : can use any methoddescribed before, for example, bilinear interpolationor smooth hue transition interpolation

    G.Pattern Matching Interpolation

    People have observed that there's a high degree ofcorrelation between the RGB channels in natural

    scenes.

  • 7/29/2019 Color Interpolation Algorithmss

    11/15

    The idea here is to exploit the correlations betweenthe green, red and blue components, and determine

    the missing components from the pixel contexts.

    Since green is sampled with the highest sampling

    frequency, the reproduction of the green components

    is much more accurate than the reproduction of the

    red or blue components. For this reason, this

    algorithm specifically targets at the interpolations of

    chrominance channels.

    Interpolation of green pixels : use any methoddescribed before.

    Interpolation of red/blue pixels :o estimate red/blue values at green pixels : use

    any method described before. For instance,use Bilinear Interpolation, i.e., use the

    average of two adjacent color samples.

    o estimate blue values at red pixels : First let's define "pattern" p(x,y)

    for a red pixel at position (x,y),

    refer to figure 5, as a four-

    dimensional vector or a green

    pattern : P(x,y) = [G(x-1,y);G(x+1,y); G(x,y-1); G(x,y+1)],

    where G(x,y) is the green value at

    position (x,y).

    Next compare the green patternp(x,y) with its four neighboringgreen patterns and measure their

    similarities by:

    where || . || denotes the l-1 norm ofa vector

    Sort these delta values and let =the ith largest value,

    therefore

    Define some threshold value T

    The actual algorithm is as follows :if < T, then we have high

    confidence that the image is

    smooth around (x,y), so the bluevalue is the average of all four

    adjacent diagonal pixel values. else

    the desired blue value=

    Let's refer to a real example now.Consider figure 5, we want toestimate the blue value at R15 :

    figure 5

    the procedures are :

    1. P15 = [G14; G16; G9;G21]; P8 = [G7; G9; G2;

    G14]; P10 = [G9; G11;G4; G16]; P20= [G19;

    G21; G14; G26]; P22 =

    [G21; G23; G16; G28]

    2.3. sort them. Suppose the

    result is:

    4.o estimate red values at blue pixels can be

    carried out analogously

  • 7/29/2019 Color Interpolation Algorithmss

    12/15

    V.ALGORITHM IMPLEMENTATIONWe choose to implement above mentioned algorithms in

    software using matlab

    VI. ALGORITHMS COMPARISIONYou In this section we will try to compare different color

    interpolation algorithms introduced and implemented in

    previous sections. In doing so, we compare these algorithms

    from three aspects. First, we will compare them using

    subjective measures, we will try to identify the major

    difference among these algorithms with visual observations.

    Secondly, we will switch to objective quality measure, in our

    case, we choose Mean Squared Error (MSE) between the

    original test image and the reconstructed image. MSE is

    chosen for its simplicity and popularity. Finally, we compare

    their computational cost, which is vital for implementation in

    practice

    SUBJECTIVE QUALITY MEASURE:

    Example 1:

    Example 2:

    Observations :o Nearest Neighbor Replication

    Interpolation : significant errors occur

    throughout the image, very evident blocking

    effect, very bad for sharp edges.

    Unacceptable for still imaging systems. Invideo applications, many of these problems

    might be averaged away.

    o Bilinear Interpolation : much improvedperformance over Nearest Neighbor

    Replication Interpolation; some blurring due

    to averaging adjacent pixels; introduce theso-called "zipper" effect

    o Smooth Hue Algorithms : less blur comparedto Bilinear algorithm as seen in the 'BMW'

    image. On the other hand, significant 'hue'

    interpolation error is imposed as seen in the

    image "flowers". This is due to the division

    (or subtraction in Log space) in R/B

    channel interpolation where large G

  • 7/29/2019 Color Interpolation Algorithmss

    13/15

    difference between adjacent pixels will

    cause huge R/B error during interpolation.

    o Edge Sensing Algorithms : as their namessuggest, indeed sharper images can be seen.Since R/B interpolation uses the same

    algorithm as in Smooth Hue Transition

    algorithms, significant "hue" error can beseen in the image "flowers". Not very

    suitable for colored small objects.

    o Linear Interpolation with Laplacian 2ndorder color correction terms I: gives one ofthe best quality among all algorithms.

    Especially good for edges.

    o Interpolation using Threshold-basedVariable Number of Gradients : appears to

    give the best result among all algorithms.Sharp edges as well.

    o Pattern Recognition : farily good results, butedges aren't dealt as well as variable number

    gradients method or Laplacian color

    correction method

    Objective Quality Measure

    To compare these algorithms objectively, we adoptMean Square Error (MSE) as our quality metrics. The

    MSE between the original image Io(x,y) and the

    interpolated image Ir(x,y) for each color channel isdefined as :

    where

    m x n is the size of the image

    The MSE values for each algorithm that areimplemented in Section III are depicted below forthree color channels separately. We normalized the

    MSE value to the minimum since we are only

    interested in the relative performance among thesealgorithms.

    o Example I : flowers.tif

    o Example II : bmw.bmp

    From these plots, we conclude that based onobjective measure using MSE :

    o Nearest Neighbor ReplicationInterpolation gives significant larger mean

    squared error than other algorithms and

    therefore the interpolated image is expectedto show the worst artifacts, which can be

    verified in previous subsection.

    o In terms of Green (or Luminance) channelinterpolations, Variable Number Gradients

    Methodgives the best performance in both

    examples.Laplacian Color Correction Imethodalso gives impressive results. And as

    far as the rest algorithms are concerned,

    their MSE values don't show any major

    difference.

    o In terms of Red/Blue (or Chrominance)channel interpolations, there's no obvious

    superior algorithm that can stand out

  • 7/29/2019 Color Interpolation Algorithmss

    14/15

    alone. Variable Number Gradients

    Methodgives slightly better results.

    Computational Cost

    Here we will compare the computational costassociated with each of the algorithms implemented.

    The way we compute the cost is to count the flopsoccurred in Matlab when processing some input

    images. For those non-adaptive algorithms, the cost is

    fixed regardless of the content of the input image as

    long as the image size is fixed. While for adaptive

    algorithms, the computational cost is scene dependent

    since those algorithms involve comparisons or

    decision making steps where branching can occur.

    This variation on computational cost due to image

    content is, however, not evident for two examples we

    included here.

    Since the computational cost is solely determinedfrom the software point of view, it is of course related

    to the actual implementation of the algorithm.

    Efficient program reduces the cost. In our study no

    special effort is denoted to deal with thisimplementation-dependent feature of the cost and

    none of the algorithm code is tuned intentionally to

    increase its efficiency, nor do we decrease it on

    purpose. We assume the behavior of our

    implementation observes the average in general.

    Figure below shows the comparison for the two

    images.

    Observations :o Nearest Neighbor Replication

    Interpolation doesn't involve any arithmetic

    operation and therefore doesn't impose any

    computational cost

    o Excluding Nearest Neighbor Replicationalgorithm,Bilinear interpolation imposesthe least amount of computation among the

    other eight interpolation schemes

    o On the other hand, interpolation usingthreshold-based variable number gradients

    methodhas a significant computational cost

    penalty compared to others, and it's very

    impractical for real-time digital videoapplications.

    o Linear interpolation with Laplacian second-order color correction terms Ialso imposes

    a large computational cost compared to

    other algorithms but with a much lesspenalty compared to variable number

    gradients method.

    o The rest algorithms have similarcomputational cost

    SUMMARY

    In this study, we described twelve color interpolationalgorithms used for single-detector digital cameras.

    We selectively implemented nine of them usingMatlab and finally did comparative performance

    analysis from three aspects of the algorithm :

    subjective quality of reproduced images, objective

    quality (MSE) of reproduced images and

    computational cost.

    We made some observations for these algorithmsbased on our simulation results. In particular, we note

    thatNearest Neighbor Replication

    Interpolation andInterpolation using Threshold-

    based Variable Number of Gradients represent two

    extremes of interpolation algorithms.Nearest

    Neighbor Replication Interpolation is extremelycomputationally efficient but with the worst quality

    performance. Variable Number Gradients

    Methodgives impressive reproduced image quality

    but imposes a huge computation penalty.

    As far as the future work is concerned, an algorithmthat is both superior in image reproduction and

    computationaly efficient is still worth pursuing giventhe fact that none of the existing algorithm satisfies

    both criteria.

  • 7/29/2019 Color Interpolation Algorithmss

    15/15

    REFERENCES

    [1].Bayer,Bryce E. "Color imaging array" U.S. Patent

    3,971,065

    [2].Ozawa,N. "Chrominance signal interpolation device for a

    color camera" U.S. Patent 4,716,455

    [3].Adams, James E. "Interactions between color planeinterpolation and other image processing functions in

    electronic photography" Proceedings of SPIE Vol. 2416

    P.144-151[4].Sakamoto,Tadashi. et.al., "Software pixel interpolation

    for digital still cameras suitable for a 32-bit MCU" IEEE

    Transactions on Consumer Electronics. Vol.44, No.4, P.1342-

    1352, November 1998

    [5].Zen,Hidemori. et.al., "A New digital signal processor

    for progressive scan CCD" IEEE Transactions on ConsumerElectronics. Vol.44, No.2, P.289-295, May 1998

    [6].Cok,David R. "Single-chip electronic color camera with

    color-dependent birefringent optical spatial frequency filter

    and red and blue signal interpolating circuit" U.S. Patent4,605,956

    [7].Parulski,Kenneth A. "Color Filters and Processing

    Alternatives for one-chip cameras" IEEE Transactions on

    Electron Devices. Vol.ED-32, NO.8, August 1985

    [8].Chan,Wen-Hsin. et.al., "A Mega-Pixel resolution PC

    Digital Still Camera" Proceedings of SPIE Vol.2654. P.164-

    171[9].Tsai, Y.Tim. et.al., "Optimized Image Processing

    Algorithms for a Single Sensor Camera" 1997 IEEE Pacific

    Rim Conference on Communications, Computers and Signal

    Processing, Vol.2, P.1010-1013

    [10].Wu,XiaoLin. et.al., "Color Restoration from Digital

    Camera Data by Pattern Matching" Proceedings of SPIEVol.3018 P.12-17

    [11].Cok,David R. "Signal processing method and

    apparatus for producing interpolated chrominance values in a

    sampled color image signal" U.S. Patent 4,642,678

    [12].Parulski,Kenneth A. et.al., "A High-Performance

    Digital Color Video Camera" Proceedings of SPIE Vol.1448P.45-58

    [13].Weldy,John A. "Optimized design for a single-sensor

    color electronic camera system" Proceedings of SPIE

    Vol.1071 P.300-307

    [14].Hibbard,Robert H. "Apparatus and method for

    adaptively interpolating a full color image utilizing luminance

    gradients" U.S. Patent 5,382,976[15]Adams, James E. et.al., "Color Processing in Digital

    Cameras" Eastman Kodak Company

    [16]Cok,David R. "Signal processing method and apparatus

    for sampled image signals" U.S. Patent 4,630,307[17]Laroche,Claude A. "Apparatus and method for

    adaptively interpolating a full color image utilizing

    chrominance gradients" U.S. Patent 5,373,322

    [18]Hamilton, Jr. et.al., "Adaptive color plane interpolation

    in single sensor color electronic camera" U.S.Patent

    5,629,734

    [19]Adams,James E. et.al., "Adaptive color plane

    interpolation in single color electronic camera" U.S.Patent

    5,506,619[20]Adams,James E. et.al., "Design of practical color filter

    array interpolation algorithms for digital cameras"

    Proceedings of SPIE Vol.3028 P.117-125

    [21]Chang, Ed. et.al., "Color Filter Array Recovery Using a

    Threshold-based Variable Number of Gradients" to be

    published in Proceedings of SPIE, January, 1999[22]Rifman, S.S. et.al., "Evaluation of Digital Correction

    Techniques for ERTS Images - Final Report" Report 20634-

    6003-TU-00 TRW Systems, California, July 1974

    [23]Keys, Robert.G. et.al., "Cubic Convolution Interpolation

    for Digital Image Processing" IEEE Transactions on

    Acoustic, Speech and Signal Processing, Vol ASSP-29,

    P1153-1160, 1981

    [24]Simons, K.W. "Digital Image Reconstructon and

    Resampling for Geometric Manipulation" Proceedings of

    IEEE Symp. on Machine Processing of Remotely Sensed Data

    P.3A-1--3A-11,1975

    [25]Mitchell, Don P. et.al., "Reconstruction Filters in

    Computer Graphics" Computer Graphics, (SIGGRAPH'88

    Proceedings), Vol.22, No.4, P.221-228, August 1988

    [26]Schreiber, William F. et.al., "Transformation between

    Continuous and Discrete Representations of Image: A

    Perceptual Approach" IEEE Transactions on PatternAnalysis and Machine Intelligence Vol.PAMI-7 No.2, P.178-

    186 March 1985

    [27]Hou, Hsieh S. et.al., "Cubic Splines for Image

    Interpolation and Digital Filtering" IEEE Transactions on

    Acoustic, Speech and Signal Processing Vol.ASSP-26 P.508-

    517, 1987[28]Freeman,William T. "Method and apparatus for

    reconstructing missing color samples" U.S. Patent 4,663,655

    [29]Wober,Munib A. et.al., "Method and apparatus for

    recovering image data through the use of a color test

    pattern" U.S.Patent 5,475,769

    [30]Matraszek,Tmoasz A. et.al., "Gradient based methodfor providing values for unknown pixels in a digital image"

    U.S.Patent 5,875,040

    [31]Brainard,D.H. et.al., "Bayesian method for

    Reconstructing Color Images from Trichromatic Samples"

    IS&T 47th Annual Conference P.375-380, 1994[32]Shimizu,Eiichi et.al., "The Digital Camera Using New

    Compression and Interpolation Algorithm" IS&T 49th

    Annual Conference P.268-27, 1996

    [33].Wu,Chi-hsin et.al., "Reconstruction of Color Images

    from a Single-Chip CCD Sensor Based on Markov Random

    Field Models" Proceedings of SPIE. Vol.2564 P.282-288