Abstract:
A method of transforming two color domains of an original target color profile in a universal color space includes receiving information characterizing the original target color profile. A non-flesh-tone domain chroma boost curve is constructed. The non-flesh-tone domain chroma boost curve is applied to the original target color profile to generate an intermediate target color profile. A flesh-tone domain boundary in the intermediate target color profile is determined. A flesh-tone domain chroma boost curve is constructed. A new target color profile is established by applying the flesh-tone domain chroma boost curve to the intermediate target color profile.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a method of boosting chroma for color printing, and, more particularly, to a method of boosting chroma for color printing of an image that includes both flesh-tones and non-flesh-tones. 
     2. Description of the Related Art 
     One of the important processes in ink-jet printing is color reproduction. This process includes, among other things, “target” determination and “object” generation. The “target” and “object” are represented by color profiles in which the color value is specified for each colorant (device value) combination of red, green and blue (RGB) or cyan, magenta, yellow and black (CMYK). The color profile to be reproduced is the target, whereas the color profile on which the color reproduction occurs is the object. For example, the computer monitor profile can be considered the “target” and the printer profile can be considered the “object”. With the target and object, it can be determined which printer colorant combination (CMYK) is required for a given monitor colorant combination (RGB) in order to reproduce the target color on the object. Changing the target results in a change in the printer output. 
     The well-known target of the computer monitor is the computer monitor model. Since the set of all colors that can be produced, known as a “gamut,” of this monitor target is much different from the printer gamut, some mapping must be done between the two kinds of gamut. The mapping is typically carried out in an intermediate color space, such as CIELAB, wherein any color value can be expressed in a standard format. In CIELAB color space, luminance (brightness), hue (color) and chroma (saturation) are specified by three-dimensional coordinates (L*, a*, b*). CIE stands for Commission Internationale de l&#39;Eclairage, an international body of color scientists. L* describes relative lightness; a* represents relative redness-greenness, and b* represents relative yellowness-blueness. Luminance is specified by the L* value of the point of interest; hue is specified by the angle that is the arc tan of b*/a*; and chroma is specified by the distance of the point of interest from the L* axis, which can be calculated from the formula [(a*) 2 +(b*) 2 ] ½ . 
     The mapping can generally give acceptable results for most cases but does not always yield desired outputs. For example, the surround of a picture of a human in a photo image reproduced on an ink jet printer may not be vivid enough. However, if the chroma is boosted to make the surround more colorful, the flesh-tones, or skin-tones, of the human picture become unrealistically vivid. 
     What is needed in the art is a method of smoothly transforming two color domains, such as flesh-tones and non-flesh-tones, in different ways so as to make the surround in a human picture more colorful without making the skin-tones of the human picture unrealistically vivid. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method of making the non-flesh-tone domain of photo images more vivid while changing the flesh-tone domain to the desired colors. 
     The invention comprises, in one form thereof, a method of transforming two color domains of an original target color profile in a universal color space. Information characterizing the original target color profile is received. A non-flesh-tone domain chroma boost curve is constructed. The non-flesh-tone domain chroma boost curve is applied to the original target color profile to generate an intermediate target color profile. A flesh-tone domain boundary in the intermediate target color profile is determined. A flesh-tone domain chroma boost curve is constructed. A new target color profile is established by applying the flesh-tone domain chroma boost curve to the intermediate target color profile. 
     An advantage of the present invention is that the chroma surrounding human skin tones in an image can be boosted without boosting the skin tones to a degree that the skin appears unrealistically vivid. 
     Another advantage is that a transition between the two domains is smooth and produces no artifacts. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent and the invention will be better understood by reference to the following description of an embodiment of the invention taken in conjunction with the accompanying drawings, wherein: 
     FIG. 1 is a flow chart of one embodiment of the method of the present invention; 
     FIG. 2 is a three-dimensional plot of a flesh-tone domain boundary constructed in the method of FIG. 1; and 
     FIG. 3 is a plot of one of the ellipses of FIG. 2 projected onto the a*−b* axis. 
     Corresponding reference characters indicate corresponding parts throughout the several views. The exemplification set out herein illustrates one preferred embodiment of the invention, in one form, and such exemplification is not to be construed as limiting the scope of the invention in any manner. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention includes a method of boosting the chroma of an image that includes human skin tones in order to make the surroundings of the skin more vivid. A practical problem is that when the chroma is boosted to make the surround more colorful, the flesh-tone (skin tone) of the human picture itself becomes very unrealistically vivid. The present invention solves this problem by boosting the two domains&#39; chromas in different ways. 
     A flow chart (FIG. 1) provides an overview of one embodiment of the method of the present invention. The method includes flesh-tone data collection (step S 10 ), flesh-tone domain boundary construction (step S 16 ), and boost curve construction (steps S 12  and S 18 ). The inputs collected in step S 10  include the original target, collected flesh-tone data, non-flesh-tone boost level (B n ) (or customized non-flesh-tone boost look-up table), flesh-tone boost level (B f ) (or flesh-tone ellipse center boost look-up table and flesh-tone boost curve for a flesh-tone ellipse), and minimum and maximum continuously increasing ratios specified as angles. The original target is first boosted for all domains by the non-flesh-tone boost level (B n ) to obtain a smooth intermediate target (step S 14 ). Based on the intermediate target and the collected flesh-tone data, a smoothed flesh-tone domain boundary is constructed (step S 16 ). Then, the flesh-tone domain is boosted by a level of (B f −B n ) (step S 20 ). The final output (step S 22 ) is a new target. 
     The method outlined above is now discussed in more detail. The flesh-tone RGB values are collected from various human flesh-tone images. At least 100 pixels are measured. The RGB values are then converted to CIELAB values by using a computer monitor model. These CIELAB values (L*, a*, b*) form a flesh-tone domain in the CIELAB color space. 
     The flesh-tone domain is then used to construct a three-dimensional flesh-tone boundary (FIG.  2 ). When determining the flesh-tone domain boundary, the collected flesh-tone data do not normally cover the entire actual flesh-tone domain that is illustrated in FIG.  2 . The constructed flesh-tone boundary is constructed to be smooth in the three-dimensional space. 
     The flesh-tone domain is divided into several sub-domains  24  along the L* axis, with each sub-domain  24  equaling approximately 10% of the target L* dynamic range. Next, all a* and b* values in a selected sub-domain  24  are projected onto the a*−b* plane in the CIELAB space. In FIG. 3, the boundary points of the flesh-tone plane are fitted into an ellipse. If there are not enough points to fit into an ellipse, points are added from the nearest neighboring sub-domains  24 . Determined for each ellipse are its semimajor axis, semiminor axis, orientation angle of the major axis, the ellipse center&#39;s chroma (the distance from ellipse center C to the L* axis), and the ellipse center&#39;s hue (angle  26  between center vector  28  and the a* axis in the a*−b* plane). Thus, a total of five parameters are determined. Each of these five elliptical parameters varies along the L* axis. 
     The L* axis can be considered as the x-axis of the x-y Cartesian coordinate system and each of the five elliptical parameters as the variable on the y-axis. Since each of these five elliptical parameters changes along the L* axis, the (x, y) points can be fitted into a four-degree (five items) polynomial. A total of five polynomials are fitted. Then, the five elliptical parameters are re-fitted from the five fitted polynomials for any given value of L*. The reason for doing the fitting is that when the change of each of the five parameters along the L* axis is smooth, all the ellipses smoothly change along the L* axis. Thus, the flesh-tone boundary is smooth in the three-dimensional color space. 
     As indicated above, the flesh-tone domain changes along the L* axis. Ideally, the flesh-tone ellipse should converge to a point at either of the two ends of the flesh-tone domain boundary. That is, the semi-major and semi-minor axes of an ellipse should be zero at the two ends within the target&#39;s L* dynamic range. This may, however, not always be the case due to the noise from the flesh-tone data collection. The non-convergent case is made to converge in two steps. First, the flesh-tone ellipse axes are set to zero at either end along the L* axis. The end (top or bottom) is set one step (10% of the target&#39;s L* dynamic range) beyond the maximum or minimum measured flesh-tone L*, but not outside the target L* range. Second, the converged portion of the ellipse axes is smoothed using cubic-spline interpolation and a running average. 
     In the two-domain chroma boost, the inputs include the boost level for non-flesh-tone domain (B n  in percentage), and the boost level for flesh-tone domain (B f  in percentage). The chroma boost procedure for the two different domains is carried out by first boosting all chromas of all domains by the non-flesh-tone level (B n ), and then boosting the flesh-tone domain by a level of (B f −B n ). Thus, if B n  equals B f , the two domains are boosted by the same level and no special boost is conducted for the flesh-tone domain. This is the case of the “traditional” chroma boost. 
     For a given input target, the minimum and maximum chromas remain the same after the boost, and at chroma values that are at 50% of the dynamic chroma range, the chroma is boosted by the full amount of B n  (%). For all other input chroma values, the boost level varies in a smooth way. Equation (1) below represents one simple equation for output chroma: 
     
       
           y=A   1   +B   1   x+C   1   x   2   Equation (1): 
       
     
     wherein x is the normalized input chroma and y is the normalized output chroma. The normalization is necessary for better understanding and also for simplicity in constructing the boost curve, especially for the flesh-tone boost curve construction. The normalization is carried out by use of Equation (2), as follows: 
     
       
           x   =100(   z−z   min )/( z   max   −z   min )  Equation ( 2 ): 
       
     
     wherein z is the non-normalized chroma, and z min  and z max  are the minimum and maximum non-normalized chromas of the target, respectively (z min  should be zero in CIELAB space). The parameters A 1 , B 1 , and C 1  in Equation (1) are constants which can be solved given the three conditions (with Equation (2), xmin=0, x max =100) of Equations (3), (4) and (5) as follows: 
     
       
         when  x=x   min   , y=x   min ;  Equation (3): 
       
     
     
       
         when  x   =0.5(   x   max   −x   min ),  y   =0.5(   x   max   −x   min )(1 +B   n /100); and  Equation (4): 
       
     
     
       
         when  x=x   max   , y=x   max ;  Equation (5): 
       
     
     For any non-normalized input chroma (z), its boosted value (z b ) is calculated by Equation (6), as follows: 
     
       
           Z   b   =z ( y/x ) ( Z   b   =z  if  x =0)  Equation (6): 
       
     
     Alternatively, the user can input a customized curve (look-up table) to replace Equation (1). The customized curve is required to include paired values of (x, y), each ranging from 0 to 100. At least 10 points are specified. The input points are interpolated for unspecified points using the cubic-spline interpolation technique. 
     As discussed above, a flesh-tone ellipse, perpendicular to the L* axis, can be determined for any L* value in the flesh-tone domain. When conducting the flesh-tone boost, only the points within the ellipse are boosted and all other points (on the plane containing the ellipse) lying on or outside the ellipse boundary are unchanged by the boost. That is, the intermediate target color profile generated by the non-flesh-tone boost curve is unchanged by the flesh-tone curve outside the flesh-tone domain boundary. 
     The amount by which the ellipse center is boosted depends upon but is not necessarily equal to the level of (B f −B n ). Since the center of the flesh-tone ellipse varies along the L* axis, if all of the ellipse centers were boosted by the same percentage, different flesh-tone chromas might get the same boost level. This could cause unsmoothed boost in the color space and would not be consistent with the way by which the non-flesh-tone boost level is specified. Thus, the following method is used to determine the ellipse center boost level (B fc ). 
     In a similar way to the non-flesh-tone boost, the flesh-tone chroma is boosted by a level of (B f −B n ) at the chroma values that are at 50% of the target&#39;s dynamic chroma range. The following Equation (7) is used to determine the flesh-tone ellipse center boost level: 
     
       
           y=A   2   +B   2   x+C   2   x   2   Equation (7): 
       
     
     By replacing B n  in Equation (4) with (B f −B n ) and again using Equations (3) and (5), the values of the constants A 2 , B 2 , and C 2  can be determined. The ellipse center&#39;s normalized output y c  can be calculated from Equation (7). 
     The ellipse center boost level is given by Equation (8), as follows: 
     
       
           B   fc =100( y   c   −x   c )/ x   c   Equation (8): 
       
     
     wherein x c  is the ellipse center&#39;s normalized chroma before the flesh-tone curve is applied. 
     The user can also input a customized curve (look-up table) to replace Equation (7) in a similar way to the customized non-flesh-tone boost curve. 
     For any point in a flesh-tone ellipse, a line  30  can be drawn through this point and the ellipse center (point C in FIG.  3 ). Line  30  intersects the ellipse boundary at two points A and B. The flesh-tone boost curve (Equation (9) below), corresponding to (B f −B n ), for any points between A and B is constructed as follows: 
     
       
           y=A   2   +B   2   x+C   2   x   2   +D   2   x   3   +E   2   x   4   Equation (9): 
       
     
     wherein y is the normalized output chroma of a point under consideration between A and B, and the x value of the point is defined as below in Equations (10) and (11): 
     
       
           x=x   c   −s  if the point&#39;s normalized chroma&lt;= x   c   Equation (10): 
       
     
     and 
     
       
           x−x   c   +s  if the point&#39;s normalized chroma&gt; x   c   Equation (11): 
       
     
     wherein x c  is the ellipse center&#39;s normalized chroma, and s is the normalized distance between the point under consideration and the ellipse center C. 
     The five constants A 2 , B 2 , C 2 , D 2 , and E 2  can be solved given the five conditions as represented in Equations (12), (13), (14), (15) and (16), as follows: 
     
       
         At point  A, y   A   =x   A  (output=input)  Equation (12): 
       
     
     
       
         At point  A, dy/dx= 1.0 (first derivative)  Equation (13): 
       
     
     
       
         At point  C, y   c   =x   c (1 +B   fc /100)  Equation (14): 
       
     
     
       
         At point  B, y   B   =x   B  (output=input)  Equation (15) 
       
     
     
       
         At point  B, dy/dx =1.0 (first derivative)  Equation (16) 
       
     
     The constructed curve should not have multi-peaks in the input range. However, if the flesh-tone ellipse is too small, the multi-peaks may exist. In this case, cubic-spline interpolation and a running average method can be used in software to determine the boost curve (look-up table) based upon the ellipse center&#39;s boost level (Equation (8)) and the flesh-tone boundary conditions (Equations (12) and (15)). 
     After the flesh-tone boost curve has been constructed, the boosted value (z b ) can be calculated by use of Equation (6) for any non-normalized input chroma (z) in the flesh-tone domain. 
     Alternatively, the user can also input a customized flesh-tone boost curve (look-up table) to replace Equation (9) in a similar way as for the customized non-flesh-tone boost curve. In the case of the flesh-tone boost curve, however, the customized curve must be linearly scaled for each ellipse line (ACB as shown in FIG.  3 ). In performing the scaling, the lowest input point is scaled to the smaller-chroma point A (output=input). Next, the highest input point is scaled to the higher-chroma point B (output=input). Finally, the middle input point is scaled to the ellipse center C (the actual ellipse center boost level is calculated by Equation (8)). 
     When chroma is boosted, one criterion is that the boosted chroma increases with the input. Mathematically, Equations (1), (7), and (9) should be continuously increasing functions within the input range. However, this criterion may not hold due to the boost level being too high. To meet the criterion, the following special case handling procedure is employed: First, the user is required to input two parameters: minimum and maximum continuously increasing ratios specified as an angle (the output is equal to the input if the angle is 45 degrees). Second, after the boost, the output is compared to the input at each of the hue angles to set the chroma-increasing ratio to the specified range. In the modification, the priority of preserving the boosted value is given to the flesh-tone ellipse center. Since the boosted target is smooth in any neighborhoods such a modified target remains smooth. 
     While this invention has been described as having a preferred design, the present invention can be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the invention using its general principles. Further, this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this invention pertains and which fall within the limits of the appended claims.