Patent Publication Number: US-8115979-B2

Title: Ink minimizing profile making tool

Description:
FIELD OF THE INVENTION 
     This invention relates generally to the field of printing systems. More particularly, the invention relates to managing and controlling ink usage in a color printing system. 
     BACKGROUND 
     Growth in color management has resulted in an increase in software packages that are used to generate International Color Consortium (ICC) profiles. ICC profiles describe color attributes of a particular device or viewing requirement by defining a mapping between a source or target color space and a profile connection space (PCS), which is either CIELAB (L*a*b*) or CIEXYZ. 
     An ICC profile also plays an important role in ink consumption at a printer driver, or third party software, since the profile provides the means of determining CMYK intensities for each point in a given image. The minimization of ink usage at printers has been an important and challenging problem, which has had a significant economic impact. Current approaches to minimizing ink in ICC profiles are based on limiting a peak coverage or black removal heuristics. However, the ink saving efficiency of such mechanisms is quite limited. 
     Therefore, what is desired is an ICC profile mechanism that provides for efficient ink minimization. 
     SUMMARY 
     In one embodiment, an ICC profile tool is disclosed. An International Color Consortium (ICC) profile tool includes a regression module to establish a dependency between a profile connection space (PCS) and a device color space and an optimization module to generate a first output profile based on an ink minimization mode and a second output profile based on a high accuracy mode. 
     In another embodiment, a method is disclosed. The method includes performing a regression method to establish a dependency between a profile connection space (PCS) and a device color space and performing an optimization method to generate a first ICC profile based on an ink minimization mode and a second ICC profile based on a high accuracy mode. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which: 
         FIG. 1  illustrates one embodiment of an ICC profile tool; 
         FIG. 2  illustrates one embodiment of a regression model; 
         FIG. 3  illustrates one embodiment of an optimization module; and 
         FIG. 4  illustrates one embodiment of a computer system. 
     
    
    
     DETAILED DESCRIPTION 
     An ICC profile tool is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention. 
     Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
       FIG. 1  illustrates one embodiment of an ICC profile tool  100 . Profile tool  100  is a tool for making, editing and assessing ICC profiles. According to one embodiment, ICC profile tool  100  generates an ICC output profile with respect to a set of parameter values that are passed to a point operation optimization algorithm. 
     In such an embodiment, a multitude of different ICC profiles, depending on a parameter setup, may be produced for a given printer that addresses a trade-off between print quality and amount of ink required. In a further embodiment, the output profile may be applied to any ink jet or EP printer. 
     According to one embodiment, tool  100  receives as input from a user: a measurement file, type of optimization and color lookup table (CLUT) resolution. CLUT resolution determines how many evenly distributed points will be used to represent a grid that spans an entire device independent color space (e.g., typical values 9, 25, or 33). 
     The measurement file may be a standard print charts, e.g., ECI2002V, printed on a target printer and measured in XYZ or the CIE 1976 L*a*b color spaces. In one embodiment, the measurement file is obtained by a particular printer printing out the chart, which is measured using a spectrophotometer. As a result, the set of points (called sample set) in L*a*b is obtained with known responses in the device color space. 
     The type of optimization includes an ink minimizing mode and a high accuracy mode. The ink minimizing mode enables a user to establish a limit as to how much a reproduced color (e.g., the result of ink minimization) can deviate from the requested color in the device independent color space. In one embodiment, a user specifies a level of print quality that is acceptable in the ink minimizing mode. The high accuracy mode ensures that color error will be minimized between the requested and reproduced color regardless of the amount of ink consumed. In one embodiment each mode, an ICC profile is generated that includes an associated set of CLUTs  150  that can be used in the color management system of a given printer to implement the respective mode. 
     According to one embodiment, tool  100  includes regression module  120  and optimization module  130 . The regression module performs a method that establishes dependency between L*a*b and device color space (e.g., CMYK). In one embodiment, the regression method avoids contouring effects on images. 
     Regression Model 
     As a first step, regression module  120  retrieves the sample set derived from the measurement file. In one embodiment, the above-described functional dependency between L*a*b* and CMYK is established using polynomials. For example for the first degree polynomial degree, the functional dependency, denoted as F(CMY K)→LAB, can be written as: 
               [         b           a           L         ]     =       [           β     const   ⁢           ⁢   1             β   11           β   12           β   13             β   14     ]               β     const   ⁢           ⁢   2             β   21           β   22           β   23           β   24               β     const   ⁢           ⁢   3             β   31           β   32           β   33           β   34           ]     ×     [         C           M           Y           K         ]             
where (3×5) β matrix contains the regression coefficients.
 
     The computation of these coefficients is based on the closed form solution of the least square error minimization for the subset of sample points. This subset of sample points is selected individually for each node in the constructed BtoA CLUT. This concept of locality is very important as F(CMY K)→LAB may vary from one region of printer&#39;s gamut to another. 
     Suppose that the given subset of sample points is composed of N points, each point i, 1≦i≦N is specified by L i a i b i  coordinates in Lab space and C i M i Y i K i  in CMYK space. The regression model for the first degree polynomial is shown in  FIG. 2 . Let {circumflex over (b)} i , â i , and {circumflex over (L)} i  denote the b, a and L components of the right hand side vector in  FIG. 2 , computed when β coefficients are found. 
     The least square regression implies that β coefficients are determined such that 
     
       
         
           
             
               
                 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         1 
                       
                       N 
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                             ( 
                             
                               
                                 b 
                                 i 
                               
                               - 
                               
                                 
                                   b 
                                   ^ 
                                 
                                 i 
                               
                             
                             ) 
                           
                           2 
                         
                         + 
                         
                           
                             ∑ 
                             
                               i 
                               = 
                               1 
                             
                             N 
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   a 
                                   i 
                                 
                                 - 
                                 
                                   
                                     a 
                                     ^ 
                                   
                                   i 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         + 
                         
                           
                             ∑ 
                             
                               i 
                               = 
                               1 
                             
                             N 
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   L 
                                   i 
                                 
                                 - 
                                 
                                   
                                     L 
                                     ^ 
                                   
                                   i 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ) 
                 
               
             
           
         
       
     
     is minimized. It is very important to note that this is a least squares optimization of Euclidean distances between actual sample points in Lab space and corresponding mappings from CMYK space. To see this, Equation 1 can be written as 
     
       
         
           
             
               
                 
                   
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           1 
                         
                         N 
                       
                       ⁢ 
                       
                         [ 
                         
                           
                             
                               ( 
                               
                                 
                                   b 
                                   i 
                                 
                                 - 
                                 
                                   
                                     b 
                                     ^ 
                                   
                                   i 
                                 
                               
                               ) 
                             
                             2 
                           
                           + 
                           
                             
                               ∑ 
                               
                                 i 
                                 = 
                                 1 
                               
                               N 
                             
                             ⁢ 
                             
                               
                                 
                                   ( 
                                   
                                     
                                       a 
                                       i 
                                     
                                     - 
                                     
                                       
                                         a 
                                         ^ 
                                       
                                       i 
                                     
                                   
                                   ) 
                                 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   ∑ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   N 
                                 
                                 ⁢ 
                                 
                                   
                                     ( 
                                     
                                       
                                         L 
                                         i 
                                       
                                       - 
                                       
                                         
                                           L 
                                           ^ 
                                         
                                         i 
                                       
                                     
                                     ) 
                                   
                                   2 
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                   = 
                   
                     
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           N 
                         
                         ⁢ 
                         
                           
                             ( 
                             
                               
                                 
                                   
                                     ( 
                                     
                                       
                                         b 
                                         i 
                                       
                                       - 
                                       
                                         
                                           b 
                                           ^ 
                                         
                                         i 
                                       
                                     
                                     ) 
                                   
                                   2 
                                 
                                 + 
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     N 
                                   
                                   ⁢ 
                                   
                                     
                                       ( 
                                       
                                         
                                           a 
                                           i 
                                         
                                         - 
                                         
                                           
                                             a 
                                             ^ 
                                           
                                           i 
                                         
                                       
                                       ) 
                                     
                                     2 
                                   
                                 
                                 + 
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     N 
                                   
                                   ⁢ 
                                   
                                     
                                       ( 
                                       
                                         
                                           L 
                                           i 
                                         
                                         - 
                                         
                                           
                                             L 
                                             ^ 
                                           
                                           i 
                                         
                                       
                                       ) 
                                     
                                     2 
                                   
                                 
                               
                             
                             ) 
                           
                           2 
                         
                       
                     
                     = 
                     
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           N 
                         
                         ⁢ 
                         
                           Δ 
                           i 
                           2 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   ) 
                 
               
             
           
         
       
     
     By these means, our regression model resolves the common pitfall in color science based on the fact that the least squares optimization is applied to find β coefficients separately for L, a and b. As a result, that approach does not minimize 
                   ∑     i   =   1     N     ⁢     Δ   1   2         .         
Let V (C M Y K) be a vector formed with all terms of k-degree polynomial constructed from the elements of [C M Y K] vector. In general, the F(CMY K)→LAB can be expressed as [L a b]=[3×length of V(C M Y K)] β matrix×V(C M Y K). In one embodiment, first degree polynomials were used in profile tool  100  for subsets with a small number of sample points, second degree—for other subsets.
 
Optimization Setup
 
     Referring back to  FIG. 1 , once the regression method has been performed at regression module  120  control is forwarded to optimization module  130 .  FIG. 3  illustrates one embodiment of an optimization module  130 . Optimization module  130  includes two modules to perform optimization setups for non-linear optimization. These modules include ink minimizing module  310  and high accuracy module  320 . However, in some embodiments, an ink limit may be applied at both modules. 
     Let [lab] denote a node in the constructed BtoA CLUT. Once the local relation F(CMY K)→LAB is established node for node [lab], the optimization problem can be formulated mathematically at ink saving module  310  and high accuracy module  320 . The ink saving mode is formulated as:
 
minimize C+M+Y+K
 
     subject to
         ||F(CMY K)−[lab]||≦Δ limit ;   C+M+Y+K≦Ω limit ;   0≦C≦100; 0≦M≦100; 0≦Y≦100; 0≦K≦100,       

     while the high accuracy mode is formulated as:
 
minimize|F(CMY K)−[lab]||
 
     subject to
         C+M+Y+K≦Ω limit ;   0≦C≦100; 0≦M≦100; 0≦Y≦100; 0≦K≦100,
 
where Δ limit  and Ω limit  specify the maximum deviation from node [lab] in L*a*b* space and maximum ink coverage, respectively.
       

     In these formulations, the non-linear element ||F(CMY K)−[lab]|| provides a qualitative measure of deviation from node [lab]. In one embodiment, an additional constraint limiting ink coverage is provided to the set of constraints to prevent paper distortion failures (e.g., curl, cockle, and tearing). In a further embodiment, the formulations can be modified to address the specific details of optimization. For example C+M+Y+K can be replaced with a weighted sum p c ×C+p m ×M+p k ×K, where each coefficient p represents a cost of the corresponding ink. 
     According to one embodiment, a local optimal solution can be found for the non-linear constrained optimization modes in a finite number of iterations by applying mathematical procedures based on the projected gradient methods, penalty function, etc. In another embodiment, commercially available third party optimization packages, e.g., Matlab, Lingo, can be used for this purpose. In addition, a variety of global optimization iterative heuristics, e.g., Genetic Algorithm, Simulated Annealing, can be adapted for this purpose. 
     System 
       FIG. 4  illustrates a computer system  400  on which ICC profile tool  100  may be implemented. Computer system  400  includes a system bus  420  for communicating information, and a processor  410  coupled to bus  420  for processing information. According to one embodiment, processor  410  is implemented using one of the multitudes of ARM™ microprocessors. Nevertheless one of ordinary skill in the art will appreciate that other processors may be used. 
     Computer system  400  further comprises a random access memory (RAM) or other dynamic storage device  425  (referred to herein as main memory), coupled to bus  420  for storing information and instructions to be executed by processor  410 . Main memory  425  also may be used for storing temporary variables or other intermediate information during execution of instructions by processor  410 . Computer system  400  also may include a read only memory (ROM) and or other static storage device  426  coupled to bus  420  for storing static information and instructions used by processor  410 . 
     A data storage device  425  such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system  400  for storing information and instructions. Computer system  400  can also be coupled to a second I/O bus  450  via an I/O interface  430 . A plurality of I/O devices may be coupled to I/O bus  450 , including a display device  424 , an input device (e.g., an alphanumeric input device  423  and or a cursor control device  422 ). The communication device  421  is for accessing other computers (servers or clients) via external data network  170 . The communication device  421  may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks. 
     Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components. 
     Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection). 
     The above-described ICC profile making tool designed ink jet and EP printers minimizes the total cost (or volume) of CMYK required to produce images with a requested perceptual print quality. The ICC profile making tool is capable of producing high accuracy ICC profiles and ICC profiles with minimized ink usage at user specified level of print quality. Further, the ICC output profiles produced with the tool are compliant with ICC.1:2004-10, profile version 4.2.0.0 specification. The CLUTs in these profiles are computed utilizing a point operation method based on the specifically designed regression and state-of-the-art non-linear constrained optimization techniques. 
     Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.