Abstract:
A computerized system, method, and software apparatus is presented which reduces the black level of the printing process in order to substantially remove stray black dots from the finished product of a printing output. Black levels are reduced by updating the print engine regions for the colors W, C, M, Y, MY, CM, CY, and neutral and by assigning a weights each color. The values are used to compute CMKY values. These values are then placed in a gain matrix and stored in a computer memory.

Description:
[0001]    This application claims the benefit of U.S. Provisional Application No. 61/056,653, filed May 28, 2008, the disclosure of which is incorporated herein in its entirety by reference. 
     
    
     BACKGROUND 
       [0002]    There is presently in the printing arts an unmet need for a printing system that enables a user to reduce the black level of the printing process in order to substantially remove stray black dots from the finished printing output. Black dots mar the finished output of printing and appear even when the color black is not prominent or even needed in the output. Black dots are caused by print engine drift during the updating of the profile process. The present application discloses a method, a system, and a software apparatus for automatically suppressing black levels in a profile for a printing job. 
       BRIEF DESCRIPTION 
       [0003]    The present application introduces a new color dependent weight profile and a new gain matrix algorithm to emphasize the control of black dots where gain may be thought of as a ratio measuring increase in output due to increase in input. In specific terms, a method to calculate a new gain matrix that offers low gain for black dots automatically in regions where it is not desirable is introduced. The new gain matrix uses the weight profile to emphasize the removal of black dots. A runtime control system is described. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  illustrates a flow chart of the method of updating the profile; 
           [0005]      FIG. 2  illustrates a CMYK separation without the K-separation algorithm for 175 dot halftone screen; 
           [0006]      FIG. 3  illustrates a CMYK separation without use of a K-separation algorithm for 200 dot halftone screen; 
           [0007]      FIGS. 4   a, b  and  c  illustrate a weight profiles to 3 gamut colors; 
           [0008]      FIGS. 5   a, b  and  c  illustrate iGen4 response for R=G=B sweeps for 150 dot, 175 dot and 200 dot halftone screens with black suppression; 
           [0009]      FIG. 6  illustrates a flow chart for the pre-condition method; and 
           [0010]      FIG. 7  illustrates the pre-conditioning method. 
       
    
    
     DETAILED DESCRIPTION 
       [0011]    With reference to  FIG. 1 , a high accuracy controls based advanced destination profiling technology for use in next generation color printing  100  is illustrated. The present embodiment is described in two steps. First the normalized weight profile is defined (normalized to unity), where the user wants control over weights  110 . This step involves assigning values to regions of colors W, C, M, Y, MY, CM, CY, and neutral  120 , and then determines a weighting profile for each color from a range of 0 to a maximum of 1 being the highest value  130 . The next step features a control algorithm that uses the weight profile with appropriate scaling to find the new gain matrix  140 . This involves calculating values for CMYK  150  in order to derive a gain matrix  160 . 
         [0012]    It allows operators to create and update the multi-dimensional L*a*b*/XYZ-&gt;CMYK color management profile LUT to render high quality RGB and CMYK images. The process of updating the profile LUT involves the following key steps (1) updating of a forward characterization model that maps a device-specific (CMYK) representation to a visual (L*a*b*) color representation, (2) inversion of the printer model using the proper GCR to produce a mapping from a visual (L*a*b*) representation to a device-specific (CMYK) representation, and (3) mapping of out-of-gamut colors to the device gamut to preserve the details in images so that the updated profile LUT produces smooth, contour-free, and noise-free pleasing images. The inversion technology uses a 3 to 4 control based algorithm with a multiple input multiple output or MIMO gain matrix. The gain matrix is designed using MIMO pole placement algorithms. During the updating process in the field, due to print engine drift, this approach can inject black toner in regions, where it is not needed even after designing good GCRs with no black. This embodiment shows a method to suppress black automatically from the final profile. 
         [0013]    A profile contains a multidimensional color correction look up table (LUT) comprising a series of nodes in input color space (L*a*b* or XYZ), and device-specific (CMYK) output values stored at each node. When the input pixels to be corrected coincide with the nodes of the LUT, the corresponding device specific color values are retrieved directly from the LUT. If the pixels are not on the node, then they are derived via interpolation of neighboring nodes using a standard technique such as tetrahedral interpolation. In the art of color printing, tetrahedral interpolation replaces use of one large memory for the storage of the data table with four small memories are used, the memories being loaded and accessed so that each of the four data points needed for tetrahedral interpolation are always located in separate memories. This allows the four data points to be generated in parallel, thus increasing the speed of transformation without increasing the size of the memory. Destination profile technology is integrated in FFPS to let operators create and update the profile LUTs using the ILS as a sensor. 
         [0014]    During the updating process, static GCR LUTs are used. No further preconditioning is applied. Due to print engine drift, the 3 to 4 LUT can request more black than desired. 
         [0015]    With reference to  FIG. 2 , the quantitative assessment is illustrated graphically  200 . Presented is the R=G=B input  220  is on the X-axis, ranging from black  230  to white  240 . The Y-axis  210  represents the C, M, Y, K response. The primary colors of cyan  250 , yellow  260 , and magenta  270  are represented as well as the black level  280 . The black level begins at a high level  280  when the value for R=G=B is under 50. After R=G=B reaches 50, the black value  280  begins to decrease rapidly and reach a minimum point  290  at R=G=B of 125. At this point, the values for the cyan  250 , yellow  260 , and magenta  270  begin to decrease. As the black value decreases, the values of the cyan  250 , yellow  260 , and magenta  270  begin to decrease. After this point, the black value increases slightly  290  while the values of the cyan  250 , yellow  260 , and magenta  270  continue to decrease. As black increases and the blue, yellow and red decrease  290 , the black color begins to become more prevalent that the blue, yellow and red colors and thus the black scum dots begin to appear  295 . The scum dots cause a detriment to picture quality because the scum dots appear in neutral flesh tones or as excessive black in flesh tones, sky tones and other important tone scales and may appear dirty/grainy or non-uniform. It is unacceptable for high quality color rendition. This is particularly enhanced at the neutrals because of the high degree of degeneracy; i.e., the number of CMYK combinations that can produce same color is high near neutrals but is low near the boundary of the gamut. There is only one unique CMYK solution at the surface of the gamut. Similar effects can be seen in  FIG. 3 . 
         [0016]    With reference to  FIG. 3 , a qualitative assessment for a 200 dot halftone is presented. 
         [0017]    The present embodiment is described in two steps. First the normalized weight profile is defined (normalized to unity), where the user wants control over weights. Then a control algorithm that uses the weight profile with appropriate scaling to find the new gain matrix is presented. 
       Description of Construction of Weight Profile: 
       [0018]    The regions where the value of K is equal to 0 are determined by defining  8  individual points. These points are white, C, M, Y, CM, CY, YM, and a point on the neutral axis L*,0,0. The variable L* is a variable set by the user. The default is 50. These 8 points define a gamut, which will be referred to as the no K gamut. 
         [0019]    From this gamut, the weight profile LUT id determined. The values in this LUT are normalized to go from 0 to 1 where 1 means no black at all and 0 means black allowed. The value will be 1 in the regions where no K is allowed, and 0 in the regions where K is allowed. This is therefore K suppression LUT. 
         [0020]    With reference to  FIG. 4 , the weight profile to 3 gamut corners from the off-axis neutral L*=55, a*=15.4 and b*=0 point is illustrated. The weights LUT nodes inside the no K gamut could be set to 1 using our gamut mapping algorithms. However this would lead to a sharp transition in K, which might cause contours. Therefore the smoothing method of the LUT is invoked in order to smooth this transition. The smoothing is done by an iterative relaxation technique. At each iteration, the value at a node relaxes towards the average value of the surrounding nodes. The process is controlled by setting a parameter for the smoothing rate (0-1) and the number of iterations. The default settings are iteration=10, rate=0.3. 
         [0021]    However, if this is done, then the weight at the top of the printer gamut would be reduced, and it is desirable to keep the weight in that region at 1. Therefore the no K gamut is expanded before doing the gamut mapping and smoothing, so the weight will reach 1 at or before the time the top of the true printer gamut is reached. This is done by moving the white, C, M, Y, CM, CY, and MY no K gamut points away from the L,0,0 point by a scaling factor. The default value for the scale factor is 1.3. 
         [0022]    In  FIG. 4   a , an initial position is shown 410. The X-axis  402  contains 200 discrete points along the line between the neutral point and the gamut corner point. The corner point is shown as 100 units away from the neutral point. The space between 0 to 100 units is the in-gamut axis. An additional vertical line is drawn to show the limit of the input color space of the destination profile. The space between two vertical lines is the accessible out-of-gamut region. The Y-axis  404  contains the weights scaled between 0 to 1. 
         [0023]    Adjustment of the cyan  411 , the M  412 , the Y  413 , and the K 414 values has an effect on the weight profile  416  and on the 100 and 200 point boundary  418 . In the current scenario, where each corner value  411 ,  412 ,  413 ,  414  is zero, the 100 point and color space limit lines  418  are identical and the weight profile  416  is at a max value of 1 up to and including the 100 gamut level, with a slight dip in weight prior to 100. 
         [0024]    In  FIG. 4   b , the effect  420  of adjusting the second C, M, Y, K value  421  to the maximum value of 255, while keeping the other values  422  at zero is demonstrated. Here the effect is to move the color space limit  429  right of the original point boundary  428  and to expand the weight profile  426  further out in the gamut. 
         [0025]    In  FIG. 4   c , the effect  430  of adjusting the first of the white, C, M, K values  431  to the maximum value of 255, while keeping the other values  432  at zero is demonstrated. Here the effect is to move the color space boundary  439  right of the original point boundary  438  to a maximum value of 200 and to contract the weight profile  436  so it shows a lower weight  437 . 
       Construction of Gain Matrix: 
       [0026]    The Linear Quadratic Regulator (LQR) is used for designing the gain matrix of the feedback controller which is used to compute CMYK values at the profile nodes for the updated printer model. 
         [0027]    The Linear Quadratic Controller minimizes a selected quadratic objective function for single color (i.e., node color) over the iteration length, N, which is shown below 
         [0000]    
       
         
           
             
               
                 
                   J 
                   = 
                   
                     
                       1 
                       2 
                     
                      
                     
                       
                         ∑ 
                         
                           K 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                        
                       
                           
                       
                        
                       
                         [ 
                         
                           
                             
                               
                                 X 
                                 T 
                               
                                
                               
                                 ( 
                                 k 
                                 ) 
                               
                             
                              
                             
                               
                                 Q 
                                 X 
                               
                                
                               
                                 ( 
                                 k 
                                 ) 
                               
                             
                           
                           + 
                           
                             
                               
                                 u 
                                 T 
                               
                                
                               
                                 ( 
                                 k 
                                 ) 
                               
                             
                              
                             
                               Ru 
                                
                               
                                 ( 
                                 k 
                                 ) 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0028]    Where x(k) is the state vector containing L*a*b* values and u(k) is the actuator vector for four color system. In this problem, the single color is modeled using the state space formulation described in Reference 3 using the static printer model (or printer) with a 4 inputs and 3 output system. A 3×4 Jacobian matrix, B characterizes the system which is used in conjunction with Equation 1 to derive the gain matrix for each node color. A Jacobian matrix may be defined as a matrix of m functions of n variables. The m×n matrix of which the i th  row is the vector of the partial derivatives of the i th  function evaluated at the point in question. 
         [0029]    As an example, if the goal is to minimize the error vector between the target vector containing node L*a*b* values and the vector formed by L*a*b* values from the printer model (or the measured L*a*b* values from the printer model if iterating on the printer is used), then the objective function could be formed with the sums of the squares of the weighted error (or the state) vector. Additionally, the sums of the squares of the CMYK values (actuators) can be included in the objective function to appropriately weigh the desired actuator. Since the problem is focused in suppressing black with K separation, the values in the Q and R matrices are set as follows. 
         [0000]        Q =diag[ q   1   q   2   q   3 ] 
         [0000]        R =diag[ r   1   r   2   r   3 α] 
         [0000]      α= wr+ε   (2) 
         [0030]    The Q matrix is 3×3 with very small fixed values for the elements; q 1 =q 2 =q 3 =1×10 −3 . 
         [0031]    The R matrix introduced above contains, α as the weight which is used to suppress black. This factor contains the variable ‘w’ which is a function of the node color. A constant ‘r’ is a scale value and E is chosen equal to 0.22 to make sure that the R matrix is always positive definite for all node colors. For some colors, the weight profile, w, will be equal to zero. For those colors, there is a risk of violating positive definiteness condition, if non-zero ε is not used. 
         [0032]    Fixed values are used for other variables, r 1 , r 2 , r 3  and depend on the halftone screen. 
         [0033]    For 150 dot screen: r 1 =r 2 =r 3 =1.5; r=60 
         [0034]    For 175 dot screen: r 1 =r 2 =r 3 =0.5; r=60 
         [0035]    For 200 dot screen: r 1 =r 2 =r 3 =1.0; r=30 
         [0036]    Varying the scale value, “/”, can allow the K to be suppressed or not. Generally when the user finds excessive black in neutrals, they can change the values for the parameter “r” (anywhere between 0 to 100). 
         [0037]    Gain matrix equation is obtained by using the state equation described in L K Mestha et al, “Gray balance control loop for digital color printing systems”, Published in the proceedings of IS&amp;T&#39;s “The 21st International Congress on Digital Printing Technologies (NIP21)” Sep. 18-23, 2005, Baltimore, Md. (equation 7), Equation 1, and the Principle of Optimality over the iteration interval  1  to N and can be found in the text book K. Ogata”, Discrete-Time Control Systems”, Prentice Hall, 1994. The final equations are stated as: 
       Gain Matrix: 
       [0038]        K ( k )=[ R=B   T   P ( k= 1) B]   1   B   T   P ( k+ 1) A    
       Recursive Equation: 
       [0039]        P ( k )= A   T   P ( k+ 1) A−A   T   P ( k+ 1) B[R+B   T   P ( k= 1) B]   1   B   T   P ( k+ 1) A+Q    
       Boundary Condition: 
       [0040]        P ( N )=0 and  K ( N )=0  (3) 
         [0041]    It turns out that the state space model for each node color has A matrix which is equal to an identity matrix (i.e., A.=diag[1 1 1]). Also, “k” refers to iteration number. 
         [0042]    With reference to  FIG. 5 , a simulation of a 150 dot, a 175 dot and a 200 dot screens and the results for R-G-B neutrals is illustrated.  FIG. 5   a  represents the 150 dot screen  510 , which presents the R=G=B 8 Bit output on the x-axis  502 , and the C, M, Y, K response on the y-axis  504 . Here the magenta  512 , the cyan  514 , the yellow  516  and the black  518  are presented.  FIG. 5   b  presents the 175 dot screen  520 . Here the magenta  522 , yellow  524 , and cyan  526  peak higher than the previous screen. Also, the black  528  level begins to decline earlier and bottoms out prior to the 150 level.  FIG. 5   c  presents the 200 dot screen  530 . Here, the peak on the magenta  532  is lower, the peak on the yellow  534  and cyan  536  are the same, with the gap between magenta  532  and cyan  536  being most pronounced. The black level  538  is at relatively the same or similar level as in  FIG. 5   a.    
         [0043]    With reference to  FIG. 6 , the updating process  600 , comprised of: updating of a forward characterization model that maps a device-specific (CMYK) representation to a visual (L*a*b*) color representation  610 , the inversion of the printer model using the proper GCR to produce a mapping from a visual (L*a*b*) representation to a device-specific (CMYK) representation  620 , and mapping of out-of-gamut colors  630  is illustrated. 
         [0044]    With reference to  FIG. 7 , the pre-conditioning method  700  which contains the running steps of: run advanced controls (iterations) on the printer model (or printer) using the GCR from the input profile  710 , and filter the CMYK values generated previously  720 , and then re-run steps  710  and  720  if required in a computer program  730  is illustrated. These key steps are documented in the extended version of the flow diagram. The GUI based adjustments are used while computing the gain matrices. From the GUI, the user will adjust the parameter, “r” in equation 2 above to suppress K. 
         [0045]    It will be appreciated that some of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.