Abstract:
A method for color tone correction is disclosed. The method generally includes the steps of (A) generating a plurality of first intermediate components by scaling a plurality of first color components towards a first ideal color, wherein the first color components (i) are for a first plurality of pixels in an input video signal and (ii) fall inside a first region of a color space, (B) generating a plurality of first corrected components by adjusting the first intermediate components such that a first mapping of the first color components to the first corrected components is both (i) continuous in the color space and (ii) non-overlapping in the color space and (C) generating an output video signal by combining the first corrected components with a plurality of unaltered color components, wherein the unaltered color components (i) are for a second plurality of the pixels and (ii) fall outside the first region.

Description:
[0001]    This is a continuation of U.S. Ser. No. 11/504,166, filed Aug. 15, 2006, which is incorporated by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to digital video processing generally and, more particularly, to a contour free point operation from video skin tone correction. 
       BACKGROUND OF THE INVENTION 
       [0003]    Highly saturated colors are often desirable in displayed video and images. Even unnaturally over saturated colors may often be seen as desirable by many people for video or image composition or viewing. Hence, user saturation adjustment knobs are commonly provided on display devices, even when the correct color display data is known via ancillary information. 
         [0004]    Exceptions exist to the preference for over saturated color. For example, the color of human skin, also known as skin tone or “seashell pink”, is commonly objected to when over saturated. Other exceptions are natural objects for which a range of reference saturation overrides a general preference for over saturation. Therefore, a color adjustment setting that may be pleasing for the majority of video content is often different than an ideal desirable setting for human skin. Several studies have also shown that at least in some cultures (i.e., Japanese, Korean) there exists an “ideal” skin tone color that is perceived to be the most natural and pleasing color for skin. 
         [0005]    Common approaches to adjusting skin tones involve segmenting out spatial areas of the pictures containing skin tone. Separate hue/saturation adjustments are then provided to control the segmented areas. However, the common approaches produce unacceptable results for video. Artifacts are introduced in the segmented areas when the pictures are viewed temporarily. As such, extra contour reduction steps are commonly implemented to reduce the artifacts created by the skin tone adjustment adding complexity. Furthermore, the common approaches do not adjust the color components of the video sequentially or operate in the native color space (i.e., CrCb). Hence, the common approaches cannot be implemented with linear operations or simple lookup tables resulting in expensive custom silicon. 
       SUMMARY OF THE INVENTION 
       [0006]    The present invention concerns a method for a color tone correction. The method generally comprises the steps of (A) generating a plurality of first intermediate components by scaling a plurality of first color components towards a first ideal color, wherein the first color components (i) are for a first plurality of pixels in an input video signal and (ii) fall inside a first region of a color space, (B) generating a plurality of first corrected components by adjusting the first intermediate components such that a first mapping of the first color components to the first corrected components is both (i) continuous in the color space and (ii) non-overlapping in the color space and (C) generating an output video signal by combining the first corrected components with a plurality of unaltered color components, wherein the unaltered color components (i) are for a second plurality of the pixels and (ii) fall outside the first region. 
         [0007]    The objects, features and advantages of the present invention include providing a contour free point operation from video skin tone correction that may (i) continuously map skin tone corrections in a color space, (ii) avoid unmapped regions in the color space, (iii) avoid doubly mapped regions in the color space, (iv) adjust the color components sequentially, (v) operate in a native color space of an input signal, (vi) operate with only linear operations, (vii) operate with single dimensional lookup tables and/or (viii) achieve nonlinear mappings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]    These and other objects, features and advantages of the present invention will be apparent from the following detailed description and the appended claims and drawings in which: 
           [0009]      FIG. 1  is a diagram of an example system in accordance with a preferred embodiment of the present invention; 
           [0010]      FIG. 2  is a diagram of an example region in a joint color space; 
           [0011]      FIG. 3  is a flow diagram of an example correction method for processing a sample; 
           [0012]      FIG. 4  is a detailed block diagram of an example implementation of a mapper circuit; 
           [0013]      FIG. 5  is a detailed diagram of an example implementation of a separator circuit; and 
           [0014]      FIG. 6  is a diagram of an example set of detection regions. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0015]    To enable separate color reproduction/adjustment for skin tones, as opposed to other content, a method and/or architecture is provided by the present invention to separately control a skin color reproduction for colors represented by skin tones. The present invention differs from conventional methods in that no transforms or color conversions are generally utilized. Furthermore, a separate conventional contour reduction step may be eliminated as a discontinuity-free color warping technique of the present invention generally avoids contour artifacts. 
         [0016]    Since the color warping technique operates directly upon native chroma samples of individual pixels (e.g., operates with a Cb component and a Cr component in a YCbCr space) and does not in any way depend upon luminance data or surrounding pixels, the data processing criteria and complexity of the present invention may be reduced compared with conventional methods. The complexity reduction is particularly true for video, which is often represented in sub-sampled chroma formats (e.g., 4:2:0 and 4:2:2 for consumer and professional video respectively). The lack of discontinuities and/or highly nonlinear mappings and an avoidance of area segmentation generally makes the present invention extremely stable for video correction. In some embodiments, a more perceptually uniform mapping may be done in Yu′v′ space in place of the YCbCr space. 
         [0017]    Referring to  FIG. 1 , a diagram of an example system  100  is shown in accordance with a preferred embodiment of the present invention. The system (or assembly)  100  may be referred to as a tone conversion system. The tone conversion system  100  generally comprises a circuit (or module)  102  and a circuit (or module)  104 . An input signal (e.g., VIN) may be received by the circuit  102 . A luminance signal (e.g., Y) may be transferred from the circuit  102  to the circuit  104 . Multiple color signals (e.g., Cb 0 , Cr 0 , Cb 3  and Cr 3 ) may also be transferred from the circuit  102  to the circuit  104 . The circuit  104  may generate and present an output signal (e.g., VOUT). 
         [0018]    The circuit  102  may be referred to as a correction circuit. The correction circuit  102  may be operational to adjust one or more regions of a color space to correct skin tones, natural colors and/or any arbitrary color region. 
         [0019]    The signal VIN may be one or more analog video signals and/or one or more digital video signals. The signal VIN generally comprises a sequence of progressive-format frames and/or interlace-format fields. The signal VIN may include synchronization signals suitable for synchronizing a display with the video information. The signal VIN may be generated in analog form as, but is not limited to, an EIA-770 (e.g., YCrCb) signal. In digital form, the signal VIN may be generated as, but is not limited to, a High Definition Multimedia Interface (HDMI) signal, a Digital Video Interface (DVI) signal, a BT.601 signal, and/or a BT.656 signal. The signal VIN may be formatted as a standard definition signal or a high definition signal. 
         [0020]    The signal VOUT may be one or more analog video signals and/or one or more digital video signals. The signal VOUT generally comprises a sequence of progressive-format frames and/or interlace-format fields. The signal VOUT may include synchronization signals suitable for synchronizing a display with the video information. The signal VOUT may be generated in analog form as, but is not limited to, an RGB (Red, Green, Blue) signal, an EIA-770 (e.g., YCrCb) signal, an S-video signal and/or a Composite Video Baseband Signal (CVBS). In digital form, the signal VOUT may be generated as, but is not limited to, a High Definition Multimedia Interface (HDMI) signal, a Digital Video Interface (DVI) signal, a BT.601 signal and/or a BT.656 signal. The signal VOUT may be formatted as a standard definition signal or a high definition signal. 
         [0021]    The signal Y generally represents a luminance component of the video in the signal VIN. The signals Cb 0  and Cb 3  may carry first color (e.g., blue) components of the video. The signals Cr 0  and Cr 3  may carry second color (e.g., red) components of the video. Generally , the signals Cb 0  and Cr 0  represent color information unmodified by the circuit  102 . The signals Cb 3  and Cr 3  may carry corrected color information for the video. 
         [0022]    Referring to  FIG. 2 , a diagram of an example region  120  in a joint color space  122  is shown. A basic method of color tone correction implemented by the correction circuit  102  generally comprises a chroma-sample (only) process. A skin tone recognition may be performed in the joint color space  122  (e.g., a Cb,Cr color space). The recognition may be performed on pixels having colors that fall within the skin tone recognition region (or zone)  120  in the joint color space  122 . A shape of the region  120  may include, but is not limited to, a rectangle (for simplicity) as the detection/recognition zone. Other region shapes such as ellipses, ovals and hexagons may be implemented for an alternative detection performance. In some embodiments, the shape, location and number of regions  120  may be predetermined. In other embodiments, the shape, locations and/or numbers of regions  120  may be calculated during operation. 
         [0023]    The skin tone processing performed by the correction circuit  102  is generally done jointly on the Cb value and the Cr value of the recognized samples. The input used from the signal VIN for the processing may be limited to the Cb value and the Cr value of a current (pixel) sample to produce a corrected value for the current sample. The colors of neighboring pixels may be ignored in calculating the corrected values for the current sample. 
         [0024]    A single desired color pair  124  (e.g., (mapCb, mapCr)) may be identified as an “ideal” representative color point for all samples with colors within the detection region  120 . The Cb value and the Cr value of samples within the detection region  120  may be mapped through piecewise linear functions, which may greatly simplify the implementation. Nonlinear functions may also be implemented to meet the criteria of a particular application. 
         [0025]    Samples that are within an inner boundary  126  of the detection region  120  may be moved closer to the ideal color pair  124  by a fixed fraction. The inner boundary  126  may define a central region  128 . The movement may relocate each of the Cr values and the Cb values twice as close to the ideal color value  124  compared with the original Cr values and the original Cb values. For example an original (Cb,Cr) color sample  130  within the central region  128  may be moved to a position  132 . Movement in the central region  128  typically has a linear slope of less than 1. 
         [0026]    A boundary region  134  may be defined within the detection region  120  and outside the central region  128 . Samples (e.g., a sample  136 ) falling within the boundary region  134  may be mapped to the other samples within the detection region  120  continuously, such that the entire input color region is spanned by the output color region. 
         [0027]    A transition region  138  may be defined along a perimeter of the detection region  120 . The transition region  138  generally allows for a continuous blending (warping) of the color space  122  from inside the detection region  120  to outside the detection region  120 . 
         [0028]    Referring again to  FIG. 1 , the correction circuit  102  generally comprises a circuit (or module)  140 , one or more circuits (or modules)  142   a - 142   n  and a circuit (or module)  144 . The signal VIN may be received by the circuit  140 . The circuit  140  may transfer the signals Y, Cb 0  and Cr 0  to the conversion circuit  104 . The circuits  142   a - 142   n  may transfer the signals Cb 3  and Cr 3  to the conversion circuit  104 . Each of the circuit  142   a - 142   n  may receive a pair of signals (e.g., (Cb 1 a,Cr 1 a) through (Cb 1 n,Cr 1 n) respectively) from the circuit  140 . The circuit  144  may transfer information to each of the circuits  142   a - 142   n.    
         [0029]    The circuit  140  may be referred to as a separation circuit. The separation circuit  140  may be operational to separate the pixels received in the signal VIN based on the positions in the color space  122 . 
         [0030]    Each of the circuits  142   a - 142   n  may be referred to as a mapping circuit. Each of the mapping circuits  142   a - 142   n  may be operational to map the samples received from the separator circuit  140  within a different detection region  120 . Each different detection region  120 , central region  128 , boundary region  134  and ideal color point  124  may be based on the information provided from the circuit  144 . 
         [0031]    The circuit  144  may be referred to as a memory circuit. The memory circuit  144  may store (e.g., permanently or dynamically) the information defining one or more detection regions  120 . In some embodiments, the mapping information may be designed into the mapping circuits  142   a - 142   n.    
         [0032]    The conversion circuit  104  generally comprises a circuit (or module)  146  and a circuit (or module)  148 . The circuit  146  may receive the signals Y, Cb 0  and Cr 0  from the separator circuit  140 . The signals Cb 3  and Cr 3  may be received by the circuit  146  from the mapping circuits  142   a - 142   n.  The circuit  148  may present the signal VOUT. The circuit  146  may transfer a signal (e.g., VOUT′) to the circuit  148 . 
         [0033]    The circuit  146  may be referred to as a combine circuit. The combine circuit  146  may be operational to generate the signal VOUT′ by combining the sample data from the signals Y, Cb 0 , Cr 0 , Cb 3  and Cr 3 . Each pixel in the signal VOUT′ may be a combination of a luminance value in the signal Y and two color values from either the signals Cb 0 ,Cr 0  or the signals Cb 3 ,Cr 3  (from the appropriate mapping circuit  142   a - 142   n ). Hence, the samples in the signal VOUT′ may be in the original color space (e.g., YCbCr) as the samples in the signal VIN. 
         [0034]    The circuit  148  may be referred to as a color space conversion circuit. The color space conversion circuit  148  may be operational to change the color space of the signal VOUT′ to create the signal VOUT. In some embodiments, the color space conversion circuit  148  may be present to achieve an intended output color space (e.g., an RGB color space) in the signal VOUT. In other embodiments, the color space conversion circuit  148  may be absent where the YCbCr color space is the intended output color space (e.g., VOUT=VOUT′). 
         [0035]    Referring to  FIG. 3 , a flow diagram of an example correction method  150  for processing a sample is shown. The method (or process)  150  may be referred to as a correction method. The correction method  150  generally comprises a step (or block)  152 , a step (or block)  154  and a step (or block)  156 . The step  154  generally comprises a step (or block)  160 , a step (or block)  162 , a step (or block)  164 , a step (or block)  166 , a step (or block)  168 , a step (or block)  170 , a step (or block)  172 , a step (or block)  174 , a step (or block)  176  and a step (or block)  178 . The correction method  150  may (i) be described in terms of a single detection region  120 , (ii) refer to the signals Cb 1 a-Cb 1 n and Cr 1 a-Cr 1 n generically as Cb 1  and Cr 1  and (iii) use the mapping circuit  142   a  as a representative example. 
         [0036]    In the step  152 , the separator circuit  140  may separate each individual incoming sample into a luminance value in the signal Y, a blue color value in a signal Cb 1  and a red color value in the signal Cr 1 . In the step  154 , the mapping circuit  142   a  may correct the blue color value and the red color value to a new blue color value in the signal Cb 3  and a new red color value in the signal Cr 3 . In the step  156 , the combine circuit  146  may reunite the new blue color value and the new red color value with the luminance value to generate a mapped sample in the signal VOUT′. 
         [0037]    In more detail, the skin tone detection region  120  may contain samples (Cb,Cr) such that Cb ε [olBND . . . orBND] and Cr ε [obBND . . . otBND]. The parameters olBND, orBND, obBND and otBND may define an outside left boundary, an outside right boundary, an outside bottom boundary and an outside top boundary respectively of the skin tone region  120 . 
         [0038]    The central region  128  may contain samples (Cb,Cr) such that Cb ε [ilBND . . . irBND] and Cr ε [ibBND . . . itBND], where (i) BND=16 or 24 or 32 and (ii) ilBND=olBND+BND, irBND=orBND−BND, ibBND=obBND+BND and itBND=otBND−BND. The parameters ilBND, irBND, ibBND and itBND may define an inside left boundary, an inside right boundary, an inside bottom boundary and an inside top boundary respectively of the central region  128 . 
         [0039]    The transition region  138  may contain samples within a distance (e.g., TBND) of the perimeter of the skin tone region  120 . The parameter TBND may have a typical value of 16 or 24 or 32. The “ideal” skin tone point  124  is generally contained within the center region  128  at the position (mapCb, mapCr). 
         [0040]    The correction step  154  generally comprises four groups of steps, labeled A 1 , A 2 , B 1  and B 2  in the figure. The group A 1  generally comprises the steps  160 - 164 . The group A 2  generally comprises the steps  166  and  168 . The group B 1  generally comprises the steps  170 - 174 . The group B 2  generally comprises the steps  176  and  178 . 
         [0041]    For each sample (Cb,Cr) in the skin tone region  120 , an adjusted output (e.g., (Cb 3 ,Cr 3 )) may be computed by the mapping circuit  142   a  per the steps below. For each sample (Cb,Cr) not in the skin tone region  120 , the output may be the same as the input (e.g., Cb 3 =Cb 1  and Cr 3 =Cr 1 ). Generally, the luminance value is not modified, otherwise skin race may be corrupted. 
         [0042]    In the step  160 , the mapping circuit  142   a  generally scales a blue color value Cb 1  within the central region  128  (e.g., Cb ε [ilBND . . . irBND]) towards the ideal mapCb by a scale factor CbScale per equation 1 as follows: 
         [0000]        Cb 2=( Cb 1−map Cb ) ×Cb Scale+map Cb    Eq. 1 
         [0000]    In some embodiments, the scale factor CbScale may have a fixed value (e.g., CbScale=0.5). 
         [0043]    In the step  162 , a blue color value Cb 1  within a left side of the boundary region  134  (e.g., Cb ε [olBND . . . ilBND]) may be scaled to make the mapping continuous per equation 2 as follows: 
         [0000]        Cb 2=( Cb 1− olBND )×( BND+ (map cb−ilBND ) ×Cb Scale) /BND+olBND    Eq. 2 
         [0044]    In the step  164 , a blue color value Cb 1  within a right side of the boundary region  134  (e.g., Cb ε [irBND . . . orBND]) may also be scaled to make the mapping continuous per equation 3 as follows: 
         [0000]        Cb 2=( Cb 1− orBND )×( BND+ ( irBND− map Cb ) ×Cb Scale) /BND+orBND tm Eq.  3 
         [0045]    Within the transition region  138 , a gradual blending of the mapping transition may be performed in a continuous way per equations 4 and 5 as follows: 
         [0000]        Cb Adjust=min( TBND, min( otBND−Cr 1, Cr 1 −obBND ))   Eq. 4 
         [0000]        Cb 3=( Cb 2× Cb Adjust +Cb 1×( TBND−Cb Adjust)) /TBND    Eq. 5 
         [0000]    The corrected blue color value may then be ready for recombination with the luminance component by the combine circuit  146  (e.g., the step  156 ). 
         [0046]    In the step  170 , the mapping circuit  142   a  generally scales a red color value Cr 1  within the central region  128  (e.g., Cr ε [ibBND . . . itBND]) towards the ideal mapCr by a scale factor CrScale per equation 6 as follows: 
         [0000]        Cr 2=( Cr 1−map Cr ) ×Cr Scale+map Cr    Eq. 6 
         [0000]    In some embodiments, the scale factor CrScale may have a fixed value of 0.5. 
         [0047]    In the step  172 , a red color value Cr 1  within a bottom side of the boundary region  134  (e.g., Cr ε [obBND . . . ibBND] may be scaled to make the mapping continuous per equation 7 as follows: 
         [0000]        Cr 2=( Cr 1− obBND )×( BND+ (map Cr−ibBND ) ×Cr Scale) /BND+obBND    Eq. 7 
         [0048]    In the step  174 , a red color value Cr 1  within a top side of the boundary region  134  (e.g., Cr ε [itBND . . . otBND]) may also be scaled to make the mapping continuous per equation 8 as follows: 
         [0000]        Cr 2=( Cr 1− otBND )×( BND+ ( itBND− map Cr ) ×Cr Scale) /BND+otBND    Eq. 8 
         [0049]    Within the transition region  138 , a gradual blending of the mapping transition may be performed in a continuous way per equations 9 and 10 as follows: 
         [0000]        Cr Adjust=min( TBND, min( orBND−Cb 3, Cb 3− olBND ))   Eq. 9 
         [0000]        Cr 3=( Cr 2* Cr Adjust+ Cr 1*( TBND−Cr Adjust)) /TBND    Eq. 10 
         [0000]    To be completely continuous, equation 9 generally use Cb 3  instead of Cb 1 . The corrected red color value may then be ready for recombination with the luminance component and the blue component by the combine circuit  146  (e.g., the step  156 ). 
         [0050]    In some embodiments, the correction method  150  may complete the processing of the blue value Cb 3  before completing the processing of the red value Cr 3 . The step groups A 1  and B 1  may be performed in substantially simultaneously in parallel. However, the step group B 2  depends on the value of Cb 3 , thus the step group A 2  should be completed before the step group B 2  starts. 
         [0051]    In other embodiments, the correction method  150  may be implemented to complete the processing of the red value Cr 3  before the blue value Cb 3 . As before, the step groups A 1  and B 1  may be performed substantially simultaneously. However, equation pairs (i) 4 and 5 and (ii) 9 and 10 may be modified such that (i) the step group A 2  depends on Cb 2  and Cr 3  (ii) the step group B 2  depends on Cr 2  and Cb 1 . As such, the step group B 2  may be completed before the step group A 2  starts. 
         [0052]    Referring to  FIG. 4 , a detailed block diagram of an example implementation of a mapper circuit  142  (e.g., circuit  142   a ) is shown. The mapper circuit  142  generally comprises a circuit (or module)  200 , a circuit (or module)  202 , a circuit (or module)  204 , a circuit (or module)  206 , a circuit (or module)  208  and a circuit (or module)  210 . The circuit  200  may receive a blue color component signal Cb 1  (e.g., signal Cb 1   a ). The circuits  202  and  204  may receive a red color component signal Cr 1  (e.g., signal Cr 1   a ). The circuit  206  may present the corrected blue color component signal Cb 3 . The circuit  208  may present the corrected red color component signal Cr 3 . The circuit  204  may present the blue adjustment value CbAdjust to the circuit  206 . The circuit  210  may present the red adjustment value CrAdjust to the circuit  208 . 
         [0053]    Each of the circuits  200 - 210  may be individually referred to as a lookup circuit. Each lookup circuit  200 - 210  may be operational as a lookup table (LUT). The lookup tables may be used to scale and adjust the various values from above. The scaling and adjustments may be linear and/or nonlinear, depending on the entries in the lookup tables. However, the above correction method  150  structure should still be observed. A design may process either Cr 1  or Cb 1  first. Without loss of generality, the following assumes Cb 1  is processed first. 
         [0054]    For samples (Cb,Cr) within a detection region  120 , a continuous function in the lookup circuits  200 ,  204  and  206  generally maps Cb 1  values within a specified range into Cb 3  values in the same full range. The mapping is designed such that (i) a range compression about a desired “ideal” point and (ii) a range expansion away from the ideal point (to maintain the continuous mapping) may be achieved. The mapping may include a blending (e.g., in the transition region  138 ) at the boundary of Cr values not within the region. The blending may be adopted such that a continuous transition between Cb values that undergo the above mapping and Cb values (closer to the Cr boundary) that do not is created. 
         [0055]    Similarly, an analogous process may be performed for Cr values using the lookup circuits  202 ,  210  and  208 . However, the final blending stage should use the already processed Cb 3  values in order to maintain completely continuous mappings. For example, group A 2  follows group A 1 , group B 1  may be performed in parallel with group A 1  (and possibly A 2 ), group B 2  follows group B 1  and group B 2  follows group A 2 . 
         [0056]    Referring to  FIG. 5 , a detailed diagram of an example implementation of the separator circuit  140  is shown. The separator circuit  140  generally comprises a circuit (or module)  220 , a circuit (or module)  222  and one or more circuits (or modules)  224   a - 224   n.  All of the circuits  220 - 224   n  may receive the signals Cb and Cr. The circuit  220  may present a control signal (e.g., K 0 ) to the circuit  222 . The circuit  220  may also present one or more control signals (e.g., Ka-Kn) to the circuits  224   a - 224   n  respectively. The circuits  224   a - 224   n  may generate the signal pairs Cb 1   a -Cb 1   n  and Cr 1   a -Cr 1   n  respectively. 
         [0057]    The circuit  220  may be referred to as a selection lookup circuit. Each of the circuits  222  and  224   a - 224   n  may be referred to as a pass gate (e.g., logical AND gates). The selection lookup circuit  220  may be operational to determine if a color pair (Cb,Cr) falls inside any of the one or more detection regions  120  or not. If not, the control signal KO may be asserted causing the pass gate  222  to pass the signals Cb and Cr through as the signals Cb 0  and Cb 0 . If the color pair (Cb,Cr) falls inside one or more detection regions  120 , the appropriate control signal Ka-Kn may be asserted such that the respective pass gates  224   a - 224   n  forward the color values to the appropriate mapping circuit  142   a - 142   n.    
         [0058]    Referring to  FIG. 6  a diagram of an example set of detection regions is shown. The present invention may be applied to regions of colorspace other than just skin tones. In particular, multiple (e.g., 3) parallel mapping circuits  142   a - 142   n  may be implemented in a single system  100 . The separator circuit  102  may be configured to recognize and separately correct multiple (e.g., 3) different zones of hues  120   a - 120   f.  For example, the system  100  may simultaneously account for a skin tone (e.g., “seashell pink”), a green tone (e.g., “grass green” and/or “green foliage”) and a blue tone (e.g., “sky blue” and/or “water blue”). Generally, reds, yellows, purples and other colors may not have natural references against which many viewers may strongly judge. Therefore, many natural images may appear unnatural if the color saturation is not appropriately adjusted for the skin regions, green regions and/or blue regions. Furthermore, each of the regions may have the same or different shapes (e.g., rectangle, pie, triangle, oval, ellipse, hexagon). 
         [0059]    The functions performed by the diagrams of  FIGS. 1 ,  3 ,  4  and  5  may be implemented using a conventional general purpose digital computer programmed according to the teachings of the present specification, as will be apparent to those skilled in the relevant art(s). Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will also be apparent to those skilled in the relevant art(s). 
         [0060]    The present invention may also be implemented by the preparation of ASICs, FPGAs, or by interconnecting an appropriate network of conventional component circuits, as is described herein, modifications of which will be readily apparent to those skilled in the art(s). 
         [0061]    The present invention thus may also include a computer product which may be a storage medium including instructions which can be used to program a computer to perform a process in accordance with the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disk, optical disk, CD-ROM, magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, Flash memory, magnetic or optical cards, or any type of media suitable for storing electronic instructions. As used herein, the term “simultaneously” is meant to describe events that share some common time period but the term is not meant to be limited to events that begin at the same point in time, end at the same point in time, or have the same duration. 
         [0062]    While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.