Abstract:
A method of removing noise from a color digital image, including receiving an original color digital image including a plurality of pixels represented in a primary-color space; producing at least one residual digital image and at least one base digital image from the original color digital image, the base digital image having a lower spatial resolution then the original color digital image; producing a noise reduced base digital image by removing noise from the residual image and the base digital image with a noise reduction filter and combining the noise reduced base digital image with the noise reduced residual image to produce a reconstructed digital image having reduced noise; transforming the reconstructed digital image into a luminance-chrominance color space; repeating the above process to produce a reconstructed luminance-chrominance digital image; and transforming the reconstructed luminance-chrominance digital image into a noise reduced digital image in the original primary color space.

Description:
FIELD OF THE INVENTION  
       [0001]     The invention relates generally to the field of digital image processing, and in particular to noise reduction in color digital images.  
       BACKGROUND OF THE INVENTION  
       [0002]     There are many approaches to reducing the presence of noise in digital images. In order to minimize the required amount of computing resources needed, most commercial approaches to noise reduction in digital images are based on using very small regions of the image for each set of noise reduction computations. One of the simplest approaches with practical value is to use a 3×3 square region of pixels centered on the pixel to be noise reduced. This region is known in the literature as a pixel neighborhood or a support region. With only nine pixel values in the neighborhood available for computational purposes, a variety of algorithms can be used for producing a noise-reduced pixel value without undue burden on most computational resources. If the predominant nature of the noise signal being reduced consists of isolated erroneous pixel values, this pixel neighborhood size is generally sufficient for most noise reduction schemes. If the noise signal is more complex, however, and has clumps of erroneous pixel values that are several pixels wide in extent, the 3×3 square region of pixels will probably be insufficient for adequate noise reduction. The 3×3 square region will still permit the reduction of isolated erroneous pixel values, but will be largely ineffective on larger clumps of noise, especially if said clumps are larger than the 3×3 square region itself. The obvious solution is to increase the size of the noise reduction support region. This is generally a viable alternative up to the point at which the additional burden on the computational resources becomes unacceptable. Unfortunately, it is common for the computational limits of the system to be reached before the support region has been allowed to expand to the desired dimensions for adequate noise reduction.  
         [0003]     A solution to these computational limitations is to decompose the image to be noise reduced into a series of images with varying spatial resolutions. In the literature this is described as performing a Laplacian pyramid decomposition. The process is simple. The starting image at its initial spatial resolution is referred to as a base image. A copy of the base image is blurred and then subsampled to a lower resolution. This lower resolution image is a new base image at the next level of the pyramid. This process can be repeated until there are insufficient pixels for any subsequent subsampling operation. A residual image is associated with each base image. In order to create the residual image for a given level of the pyramid, the lower resolution base image from the adjacent level of the pyramid is upsampled and subtracted from the base image at the given level of the pyramid. This difference image is called a residual image. A fully decomposed image consists of a set of base images and corresponding residual images. The advantage of this representation of the image is that small support region image processing operations can be applied to each of the base and/or residual images so as to produce the same results as using a very large support region operation at the original image resolution. In the case of noise reduction, this permits the use of, for example, 3×3 square regions at each level of the pyramid to effectively noise reduce larger and larger clumps of noise. Once the individual images of the pyramid have been processed, the image decomposition process is essentially run in reverse order to reconstitute the full resolution image.  
         [0004]     There are many examples of related prior art in this field. U.S. Pat. No. 5,488,374 (Frankot, et al.) discloses a pyramid decomposition-based noise reduction method that uses simple linear noise filters tuned for each pyramid level. U.S. Pat. No. 5,526,446 (Adelson, et al.) teaches using steerable noise filters within a pyramid decomposition-based architecture. U.S. Pat. No. 5,729,631 (Wober, et al.) reveals using Wiener filters and discrete cosine transforms to noise reduce in the spatial frequency domain within the framework of a pyramid decomposition. U.S. Pat. No. 5,963,676 (Wu, et al.) describes using wavelet decomposition to accomplish its pyramid decomposition and then using an edge-preserving smoothing filter to perform noise reduction at each pyramid level. U.S. Patent Application Publication No. 2002/0118887 (Gindele) discloses a pyramid decomposition-based noise reduction method that uses modified sigma filters tuned for each pyramid level.  
         [0005]     A significant problem with existing noise reduction methods is that they are still very computationally intensive when either the image to be noise reduced is very large (e.g. 14 million pixels) or the noise signal is very large with respect to the genuine image signal. When the image consists of a large number of pixels, the required computing resources scales directly with the number of pixels to noise reduce. Using a pyramid decomposition architecture addresses this liability to some extent. When the amount of noise present is large, then generally more complex noise reduction algorithms, such as median filters, must be imbedded into the pyramid architecture to avoid seriously degrading genuine image information. A double jeopardy situation can exist when both circumstances are present.  
         [0006]     What is needed is a method that provides the noise reduction capability of a pyramid decomposition approach without relying on complex noise reduction operations at each level of the pyramid so as to keep the required computational intensity to a minimum. This method must still noise reduce in an effective manner when dealing with images with high levels of noise.  
       SUMMARY OF THE INVENTION  
       [0007]     The object of the present invention is to provide a pyramid noise decomposition method which efficiently reduces noise in large digital color images.  
         [0008]     This object is achieved in a method of removing noise from a color digital image, comprising the steps of: 
        (a) receiving an original color digital image including a plurality of pixels represented in a primary-color space;     (b) producing at least one residual digital image and at least one base digital image from the original color digital image, the base digital image having a lower spatial resolution then the original color digital image;     (c) producing a noise reduced base digital image by removing noise from the residual image and the base digital image with a noise reduction filter and combining the noise reduced base digital image with the noise reduced residual image to produce a reconstructed digital image having reduced noise;     (d) transforming the reconstructed digital image into a luminance-chrominance color space;     (e) repeating steps (b) and (c) on the luminance-chrominance digital image to produce a reconstructed luminance-chrominance digital image; and     (f) transforming the reconstructed luminance-chrominance digital image into a noise reduced digital image in the original primary color space.        
 
         [0015]     It is a feature of the present invention to provide an improved computationally efficient way to reduce noise in color digital images that are noisy.  
         [0016]     It has been found that by decomposing original color digital into base and residual images and then noise-reducing each of them significant improvements can be made in noise reduction. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  is a schematic of a computer system for practicing the present invention;  
         [0018]      FIG. 2  is a block diagram of the microprocessor-based unit shown in  FIG. 1 ;  
         [0019]      FIG. 3  is a block diagram showing the sequence of linear-space noise reduction and logarithmic-space noise reduction;  
         [0020]      FIG. 4A  is a block diagram of the linear-space noise reduction process;  
         [0021]      FIG. 4B  depicts a directional blur filter neighborhood of pixels;  
         [0022]      FIG. 5  is a block diagram of a pyramid decomposition process in accordance with the present invention;  
         [0023]      FIG. 6  is a block diagram of a pyramid reconstruction process in accordance with the present invention;  
         [0024]      FIG. 7  is a block diagram of a logarithmic-space noise reduction process;  
         [0025]      FIG. 8  is a block diagram of a pyramid noise reduction process;  
         [0026]      FIG. 9  is a block diagram of a 5-level pyramid decomposition process;  
         [0027]      FIG. 10  is a block diagram of a multilevel noise reduction process; and  
         [0028]      FIG. 11  is a block diagram of a 5-level pyramid reconstruction process. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0029]     In the following description, a preferred embodiment of the present invention will be described in terms that would ordinarily be implemented as a software program. Those skilled in the art will readily recognize that the equivalent of such software can also be constructed in hardware. Because image manipulation algorithms and systems are well known, the present description will be directed in particular to algorithms and systems forming part of, or cooperating more directly with, the system and method in accordance with the present invention. Other aspects of such algorithms and systems, and hardware and/or software for producing and otherwise processing the image signals involved therewith, not specifically shown or described herein, can be selected from such systems, algorithms, components and elements known in the art. Given the system as described according to the invention in the following materials, software not specifically shown, suggested or described herein that is useful for implementation of the invention is conventional and within the ordinary skill in such arts.  
         [0030]     Still further, as used herein, the computer program can be stored in a computer readable storage medium, which can include, for example; magnetic storage media such as a magnetic disk (such as a hard drive or a floppy disk) or magnetic tape; optical storage media such as an optical disc, optical tape, or machine readable bar code; solid state electronic storage devices such as random access memory (RAM), or read only memory (ROM); or any other physical device or medium employed to store a computer program.  
         [0031]     Before describing the present invention, it facilitates understanding to note that the present invention is preferably utilized on any well-known computer system, such a personal computer. Consequently, the computer system will not be discussed in detail herein. It is also instructive to note that the images are either directly input into the computer system (for example by a digital camera) or digitized before input into the computer system (for example by scanning an original, such as a silver halide film).  
         [0032]     Referring to  FIG. 1 , there is illustrated a computer system  110  for implementing the present invention. Although the computer system  110  is shown for the purpose of illustrating a preferred embodiment, the present invention is not limited to the computer system  110  shown, but can be used on any electronic processing system such as found in home computers, kiosks, retail or wholesale photofinishing, or any other system for the processing of digital images. The computer system  110  includes a microprocessor-based unit  112  for receiving and processing software programs and for performing other processing functions. A display  114  is electrically connected to the microprocessor-based unit  112  for displaying user-related information associated with the software, e.g., by means of a graphical user interface. A keyboard  116  is also connected to the microprocessor based unit  112  for permitting a user to input information to the software. As an alternative to using the keyboard  116  for input, a mouse  118  can be used for moving a selector  120  on the display  114  and for selecting an item on which the selector  120  overlays, as is well known in the art.  
         [0033]     A compact disk-read only memory (CD-ROM)  124 , which typically includes software programs, is inserted into the microprocessor based unit  112  for providing a means of inputting the software programs and other information to the microprocessor based unit  112 . In addition, a floppy disk  126  can also include a software program, and is inserted into the microprocessor-based unit  112  for inputting the software program. The compact disk-read only memory (CD-ROM)  124  or the floppy disk  126  can alternatively be inserted into externally located disk drive unit  122  which is connected to the microprocessor-based unit  112 . Still further, the microprocessor-based unit  112  can be programmed, as is well known in the art, for storing the software program internally. The microprocessor-based unit  112  can also have a network connection  127 , such as a telephone line, to an external network, such as a local area network or the Internet. A printer  128  can also be connected to the microprocessor-based unit  112  for printing a hardcopy of the output from the computer system  110 .  
         [0034]     Images can also be displayed on the display  114  via a personal computer card (PC card)  130 , such as, as it was formerly known, a PCMCIA card (based on the specifications of the Personal Computer Memory Card International Association) which contains digitized images electronically embodied in the card  130 . The PC card  130  is ultimately inserted into the microprocessor based unit  112  for permitting visual display of the image on the display  114 . Alternatively, the PC card  130  can be inserted into an externally located PC card reader  132  connected to the microprocessor-based unit  112 . Images can also be input via the compact disk  124 , the floppy disk  126 , or the network connection  127 . Any images stored in the PC card  130 , the floppy disk  126  or the compact disk  124 , or input through the network connection  127 , can have been obtained from a variety of sources, such as a digital camera (not shown) or a scanner (not shown). Images can also be input directly from a digital camera  134  via a camera docking port  136  connected to the microprocessor-based unit  112  or directly from the digital camera  134  via a cable connection  138  to the microprocessor-based unit  112  or via a wireless connection  140  to the microprocessor-based unit  112 .  
         [0035]     In accordance with the invention, an algorithm can be stored in any of the storage devices heretofore mentioned and applied to images in order to noise reduce the images.  
         [0036]     Referring to  FIG. 2 , the microprocessor-based unit  112  is divided into two subsections: the digital image processor  150  which is responsible for the actual operations performed on the image to be noise reduced, and the general control computer  160  that performs the non-image processing tasks of the microprocessor-based unit  112 .  
         [0037]      FIG. 3  is a high level block diagram of the preferred embodiment. The input image is first noise reduced in its linear, primary-color space  200 . Examples of typical primary-color spaces are red-green-blue (RGB) and cyan-magenta-yellow (CMY). The result of this operation is then noise reduced a second time in a logarithmic (log), luminance-chrominance space  202 . The luminance-chrominance space used by the preferred embodiment will be described below. The result of this second noise reduction is the final noised reduced image produced by the preferred embodiment of the present invention.  
         [0038]     Referring to  FIG. 4A , the linear, primary-color space noise reduction operation  200  is subdivided into a pyramid decomposition step  210 , a noise reducing directional blur operation  212 , and a pyramid reconstruction step  214 .  FIG. 5  is a detailed diagram of the pyramid decomposition step  210  used in the preferred embodiment. The process begins by applying an anti-aliasing blur  226  to the initial base image  236 . Block  236  could either be the original image to be noise reduced, or the 2× downsampled base image  232  produce by a previous application of block  210  (see  FIG. 9 , to be discussed later). In the preferred embodiment, the blurring process  226  consists of convolving each individual color plane of the base image with following blur kernel:  
         1   16     ⁢           ⁢     (         1       2       1           2       4       2           1       2       1         )         
 
         [0039]     The resulting blurred image is then downsampled by a factor of two in both the horizontal and the vertical directions  224 . The preferred embodiment performs the downsampling  224  by subsampling the image in a manner that discards every other row and every other column. The resulting image of this downsampling operation  224  becomes the base image for the next level of the pyramid decomposition process  232 . Returning to the pyramid decomposition process  210 , a copy of the output of the downsampling operation  224  is next upsampled by a factor of two in both the horizontal and vertical directions  222 . In the preferred embodiment the upsampling  222  is accomplished by inserting a new row of zeros between each existing row in the output of the downsampling operation  224  and by inserting a new column of zeros between each existing column in the output of the downsampling operation  224 . In order to determine the preferred pixel values within these new rows and columns, a convolution is performed with the following convolution kernel:  
         1   256     ⁢           ⁢     (         1       0         -   9         0         -   9         0       1           0       0       0       0       0       0       0             -   9         0       81       0       81       0         -   9             0       0       0       256       0       0       0             -   9         0       81       0       81       0         -   9             0       0       0       0       0       0       0           1       0         -   9         0         -   9         0       1         )         
 
         [0040]     This kernel will leave the pixel values in the original rows and columns unaltered and will interpolate the pixel values in the new rows and columns using bicubic interpolation. The resulting upsampled image is then subtracted from the original base image  220 . This results in the residual image  230  associated with the current level of the pyramid decomposition.  
         [0041]     Returning to  FIG. 4A , the image from the input device will be designated as I 0 . The residual image  230  resulting from the pyramid decomposition step  210  will be designated as R 0 . The new 2× downsampled base image  232  resulting from the pyramid decomposition step  210  will be designated as I 1 . In  FIG. 4A , R 0  is passed to the noise reducing directional blur operator  212 . I 1  is passed directly to the pyramid reconstruction step  214 .  
         [0042]     The noise reducing directional blur operation  212  in the preferred embodiment is based on a 13×13 cross pixel neighborhood as shown in  FIG. 4B . In the preferred embodiment a different portion of the 13×13 cross neighborhood is used for each color channel. In the case of an RGB image, the blue channel uses the full 13×13 cross neighborhood. The red channel uses the central 9×9 cross neighborhood, i.e., {P 2 , P 3 , P 4 , P 5 , P 8 , P 9 , P 10 , P 11 , P 12 , P 13 , P 14 , P 15 , P 16 , P 19 , P 20 , P 21 , P 22 }. The green channel uses the central 3×3 cross neighborhood: {P 5 , P 11 , P 12 , P 13 , P 19 }. The first step of the noise reducing directional blur operation  212  for a given pixel neighborhood is to compute horizontal and vertical classifier values. For the red channel the classifiers would be  
       {                   h   =       ⁢       2   ⁢            (       P   8     =       2   ⁢     P   9       +     P   10         )     -     (       P   14     +     2   ⁢     P   15       +     P   16       )              +                     ⁢            2   ⁢     (       P   11     +     2   ⁢     P   12       +     P   13       )       -     (       P   8     +     2   ⁢     P   9       +     P   10       )     -     (       P   14     +     2   ⁢     P   15       +     P   16       )                                    v   =       ⁢       2   ⁢            (       P   2     +     2   ⁢     P   3       +     P   4       )     -     (       P   20     +     2   ⁢     P   21       +     P   22       )              +                     ⁢            2   ⁢     (       P   5     +     2   ⁢     P   12       +     P   19       )       -     (       P   2     +     2   ⁢     P   3       +     P   4       )     -     (       P   20     +     2   ⁢     P   21       +     P   22       )                          .         
 
 For the green channel the classifiers would be  
       {             h   =       2   ⁢            P   11     -     P   13              +            P   11     +     2   ⁢     P   12       +     P   13                          v   =       2   ⁢            P   5     -     P   19              +            P   5     +     2   ⁢     P   12       +     P   19                      .         
 
 For the blue channel the classifiers would be  
       {                   h   =       ⁢       2   ⁢            (       P   6     +     2   ⁢     P   7       +     P   8       )     -     (       P   16     +     2   ⁢     P   17       +     P   18       )              +                     ⁢            2   ⁢     (       P   11     +     2   ⁢     P   12       +     P   13       )       -     (       P   6     +     2   ⁢     P   7       +     P   8       )     -     (       P   16     +     2   ⁢     P   17       +     P   18       )                                    v   =       ⁢       2   ⁢            (       P   1     +     2   ⁢     P   2       +     P   3       )     -     (       P   22     +     2   ⁢     P   23       +     P   24       )              +                     ⁢            2   ⁢     (       P   5     +     2   ⁢     P   12       +     P   19       )       -     (       P   1     +     2   ⁢     P   2       +     P   3       )     -     (       P   22     +     2   ⁢     P   23       +     P   24       )                          .         
 
 The two classifiers are then compared and the direction with the smaller classifier value is chosen as the preferred direction of blurring. In the preferred direction of blurring a one-dimensional blur kernel is used for producing the appropriate blurred pixel value. For the red channel the blur kernel is  
         1   256     ⁢           ⁢       (     1   ⁢           ⁢   8   ⁢           ⁢   28   ⁢           ⁢   56   ⁢           ⁢   70   ⁢           ⁢   56   ⁢           ⁢   28   ⁢           ⁢   8   ⁢           ⁢   1     )     .         
 
 For the green channel the blur kernel is  
         1   4     ⁢           ⁢       (     1   ⁢           ⁢   2   ⁢           ⁢   1     )     .         
 
 For the blue channel the blur kernel is  
         1   4096     ⁢           ⁢       (     1   ⁢           ⁢   12   ⁢           ⁢   66   ⁢           ⁢   220   ⁢           ⁢   495   ⁢           ⁢   792   ⁢           ⁢   924   ⁢           ⁢   792   ⁢           ⁢   495   ⁢           ⁢   220   ⁢           ⁢   66   ⁢           ⁢   12   ⁢           ⁢   1     )     .         
 
 Each blurred pixel value is mixed with the original pixel value to produce the final result of the direction blur  212 . The mixing method is a weighted average with the following weights:  
       {                     R   M     =       0.6   ⁢     R   O       +     0.4   ⁢     R   B                       G   M     =       0.8   ⁢     G   O       +     0.2   ⁢     G   B                       B   M     =       0.3   ⁢     B   O       +     0.7   ⁢     B   B                 .           
 
 In this expression, R=red, G=green, and B=blue. The subscript  0 =original, subscript B=blurred, and subscript M=mixed. 
 
         [0043]      FIG. 6  shows the pyramid reconstruction step  214 . The noise reduced residual image  234  is the output of the directional blur operation  212 . The 2× downsampled base image  232  is one of the outputs of the pyramid is to upsample the downsampled base image  242 . The identical upsampling process used in block  222  is used in block  242 . The upsampled image is then added  240  to the noise reduced residual image  234 . The result is the noise reduced reconstructed image  244 .  
         [0044]      FIG. 7  shows the next step in the preferred embodiment, i.e., the log space noise reduction of the image  202 . This step begins by converting the noise reduced reconstructed image  244  in a logarithm space  250 . The logarithmic transform used in the preferred embodiment is 
   y= 2500[log 10 ( x+ 100)−2] 
 wherein 
        y is the transformed code value; and     x is the original code value. 
 
 Each color channel of the image is transformed. The log space image is next converted to a luminance-chrominance (LCC) space representation  252 . The transform for the preferred embodiment, which assumes an RGB image, is  
       {                 Y   =   G                 C   1     =         2   ⁢   G     -   R   -   B     4                   C   2     =       B   -   R     2                   
 
 where R=red, G=green, B=blue, Y=luma, C 1 =the first chroma channel, and C 2 =the second chroma channel. The image, now in a logarithm luminance-chrominance space, is now noise reduced within a pyramid noise reduction decomposition/reconstruction framework  254  to be described below. Once noise reduced, the image is converted back to RGB space  256  with the following transform:  
             {                 ⁢     R   =     Y   -     2   ⁢     C   1       -     C   2                         ⁢     G   =   Y                     ⁢     B   =     Y   -     2   ⁢     C   1       +     C   2                 .           
 
 Finally, the RGB image is converted back to linear space  258  with the following transform:  
       x   =     100   ⁢       (       10     y   2500       -   1     )     .           
 
 It is noted that the transform of block  258  is the inverse of the transform of block  250 . Similarly, the transform of block  256  is the inverse of the transform of block  252 . 
         
         [0047]     The details of the pyramid noise reduction  254  are given in  FIG. 8 . The first step is a 5-level pyramid decomposition  260  of the image from block  252  ( FIG. 7 ). The details of block  260  are shown in  FIG. 9 . The previously described pyramid decomposition step  210  is executed sequentially five times  210   a - e . The results are five residuals images (R 0 -R 4 )  266   a - e  as well as a lowest resolution base image (I 5 )  268 .  
         [0048]     Returning to  FIG. 8 , the output of the 5-level pyramid decomposition  260  is sent to the multi-level noise reduction step  262 . The details of block  262  are shown in  FIG. 10 . The noise reduction of the first residual image (R 0 )  266   a  is different from the other input components  266   b - e ,  268 . The first step to noise reduction block  266   a  is to perform a directional blur on the second chroma channel, C 2 ,  270 . The details of block  270  are similar to block  212  ( FIG. 4A ) with the following exceptions. A 5×5 cross neighborhood is used for noise reducing the C 2  channel. This corresponds to pixels {P 4 , P 5 , P 10 , P 11 , P 12 , P 13 , P 14 , P 19 , P 20 } in  FIG. 4B . The classifiers for block  270  are  
             {           h   =              P   10     +     P   11     -     P   13     -     P   14            +            2   ⁢     P   12       -     P   10     -     P   14                            v   =              P   4     +     P   5     -     P   19     -     P   20            +            2   ⁢     P   12       -     P   4     -     P   20                ⁢                         
 
 wherein 
        h is the horizontal classifier; and     v is the vertical classifier. 
 
 The blur kernel used for block  270  is  
         1   16     ⁢       (     1   ⁢           ⁢   4   ⁢           ⁢   6   ⁢           ⁢   4   ⁢           ⁢   1     )     .         
 
 The blurred value is mixed with the original value using the following expression:  
         C     2   ⁢   M       =         1   2     ⁢     C     2   ⁢   O         +       1   2     ⁢       C     2   ⁢   B       .             
 
 Once block  270  is complete, the chroma channels of the resulting image are noise reduced with a sigma filter  272   a . (The luma channel is left unchanged.) The sigma filter  272   a  uses a 7×7 square pixel neighborhood. In a well-known variant of the sigma filter, the scaled difference in pixel values between each pixel in the neighborhood and the central pixel is computed and then weighted by a gaussian weighting function. In the preferred embodiment, which assumes 12-bit pixel values, the weighting function w(y) is  
           w   ⁡     (   y   )       =     ⌊       1000   ⁢     ⅇ       y   2     2         +     1   2       ⌋       ,     0   ≤   y   ≤   4095         
 
 This weighting function evaluates to {1000, 607, 135, 11, 0 . . . }, i.e., only the first four values are nonzero. The scaled difference pixel values are computed with the following expressions:  
             {             Δ       C   1     ⁢   j       =              C     1   ⁢   j       -     C     1   ⁢   i              /     T     C   1                       Δ       C   2     ⁢   j       =              C     2   ⁢   j       -     C     2   ⁢   i              /     T     C   2                       
 
 where i refers to the central pixel in the neighborhood, j refers to pixel within the neighborhood, C 1  and C 2  are the pixel chroma values, T C1  and T C2  are thresholds that have been determined ahead of time to tune the overall aggressiveness of the noise reduction process, and Δ C1j  and Δ C2j  are the resulting scaled pixel differences. In order to preserve the overall hue of the pixel being noise reduced, the maximum scaled pixel difference is determined: 
 
δ j =max{Δ C     1     j ,Δ C     2     j }
 
 where δ j  is the maximum scaled pixel difference for the jth pixel in the neighborhood. Once δ j  has been determined for each pixel in the neighborhood, a weighted average is performed:  
             {             C     1   ⁢   i     ′     =         ∑     j   =   1     49     ⁢       w   ⁡     (     δ   j     )       ⁢     C     1   ⁢   j               ∑     j   =   1     49     ⁢     w   ⁡     (     δ   j     )                         C     2   ⁢   i     ′     =         ∑     j   =   1     49     ⁢       w   ⁡     (     δ   j     )       ⁢     C     2   ⁢   j               ∑     j   =   1     49     ⁢     w   ⁡     (     δ   j     )                         
 
 where C 1i ′ and C 2i ′ are the noise reduced chroma values of the resulting central pixel in the neighborhood. These noise reduced chroma channels in combination with the corresponding unaltered luma channel become the noise reduced R 0  residual  274   a . Blocks  272   b - f  are identical to block  272   a  and are used to noise reduce residual images  266   b - e  and base image  268 . The resulting noise reduced residuals images are blocks  274   b - e  and the resulting base image is block  276 . 
       
 
         [0051]     Returning to  FIG. 8 , the noise reduced images  274   a - e ,  276  are used to reconstruct the final image  264 .  FIG. 11  presents the details of the reconstruction process  264 . Each pyramid reconstruction step (PRS)  284   a - d  is identical to block  214  ( FIG. 4A ) which has been previously described. The resulting noise reduced reconstructed image is block  290 .  
         [0052]     The noise reduction algorithm disclosed in the preferred embodiment of the present invention can be employed in a variety of user contexts and environments. Exemplary contexts and environments include, without limitation, wholesale digital photofinishing (which involves exemplary process steps or stages such as film in, digital processing, prints out), retail digital photofinishing (film in, digital processing, prints out), home printing (home scanned film or digital images, digital processing, prints out), desktop software (software that applies algorithms to digital prints to make them better—or even just to change them), digital fulfillment (digital images in—from media or over the web, digital processing, with images out—in digital form on media, digital form over the web, or printed on hard-copy prints), kiosks (digital or scanned input, digital processing, digital or scanned output), mobile devices (e.g., PDA or cell phone that can be used as a processing unit, a display unit, or a unit to give processing instructions), and as a service offered via the World Wide Web.  
         [0053]     In each case, the algorithm can stand alone or can be a component of a larger system solution. Furthermore, the interfaces with the algorithm, e.g., the scanning or input, the digital processing, the display to a user (if needed), the input of user requests or processing instructions (if needed), the output, can each be on the same or different devices and physical locations, and communication between the devices and locations can be via public or private network connections, or media based communication. Where consistent with the foregoing disclosure of the present invention, the algorithm itself can be fully automatic, can have user input (be fully or partially manual), can have user or operator review to accept/reject the result, or can be assisted by metadata (metadata that can be user supplied, supplied by a measuring device (e.g. in a camera), or determined by an algorithm). Moreover, the algorithm can interface with a variety of workflow user interface schemes.  
         [0054]     The algorithm disclosed herein in accordance with the invention can have interior components that utilize various data detection and reduction techniques (e.g., face detection, eye detection, skin detection, flash detection).  
         [0055]     The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.  
       Parts List  
       [0000]    
       
           110  Computer System  
           112  Microprocessor-based Unit  
           114  Display  
           116  Keyboard  
           118  Mouse  
           120  Selector on Display  
           122  Disk Drive Unit  
           124  Compact Disk-read Only Memory (CD-ROM)  
           126  Floppy Disk  
           127  Network Connection  
           128  Printer  
           130  Personal Computer Card (PC card)  
           132  PC Card Reader  
           134  Digital Camera  
           136  Camera Docking Port  
           138  Cable Connection  
           140  Wireless Connection  
           150  Digital Image Processor  
           160  General Control Computer  
           200  Linear Noise Reduction Operation  
           202  Logarithmic Noise Reduction Operation  
           210  Pyramid Decomposition Step  
           212  Noise Reducing Directional Blur Operation  
           214  Pyramid Reconstruction Step  
           220  Image Subtraction Operation  
           222  Upsampling Operation  
           224  Downsampling Operation  
           226  Anti-Aliasing Blurring Operation 
 
 Parts List Cont&#39;d 
 
           230  Residual Image  
           232  2× Downsampled Base Image  
           234  Noise Reduced Residual Image  
           236  Base Image  
           240  Image Addition Operation  
           242  Upsampling Operation  
           244  Noise Reduced Reconstructed Image  
           250  Conversion to Log Space Operation  
           252  Conversion to Luminance-Chrominance Space Operation  
           254  Pyramid Noise Reduction Block  
           256  Conversion to RGB Space Operation  
           258  Conversion to Linear Space Operation  
           260  5-Level Pyramid Decomposition Block  
           262  Multi-Level Noise Reduction Block  
           264  5-Level Pyramid Reconstruction Block  
           266  Residual Image  
           268  Base Image  
           270  Directional Blur of C2 Channel Operation  
           272  Sigma Filter Noise Noise Reduction Operation  
           274  Noise Reduced Residual Image  
           276  Noise-Reduced Base Image  
           284  Pyramid Reconstruction Block  
           290  Noise Reduced Reconstructed Image