Color Correction with a Four-Dimensional Look-up Table
Field of The Invention
The present invention relates to the graphics art field and more particularly to a method for converting a first set of color image data which has already been corrected for use with a first specific printer into a second set of data that will produce the same color characteristics when printed by a second printer which is different from the first specific printer.
Background of the Invention
Color printing systems seek to reproduce the broad range of colors present in natural scenes or synthetic (i.e., computer-generated) images using typically only three or four colorants (pigments, dyes, etc.) which are inherently less than ideal in their absorption characteristics. The necessity of working with non-ideal colorants not only limits the range of colors that may be reproduced, but requires careful compensation or recolor correction" to be applied so that the printed colors are the best possible match to those of the original artwork. Intentional distortions or modifications of the image characteristics may be made to accommodate the gamut of a specific printer, or for the purpose of "subjective improvements" in the final appearance of the print. This color correction is usually done as part of the process of converting the red-green-blue signals (hereinafter RGB) that measure the color of the original to yellow-magenta-cyan-black signals (hereinafter YMCK) that control the amounts of colorants used in a print. The complexity and approximations involved in the color correction process coupled with the fact that the reproduction will in general always differ from the original due to color gamut limitations makes it extremely desirable to preview or "proof the color print by some means before committing to the time and expense of generating printing plates for a press run.
Current proofing methods involve either (1) the traditional time-consuming, labor-intensive process of generating films which would normally be used to expose printing plates and using those films to also expose special photosensitive materials which are then overlayed and registered by hand, (2) the use of expensive specialized automated proofing devices, or (3) the use of relatively inexpensive color thermal printers that usually provide only a rough approximation of the colors that will appear in the final printed image. It would be desirable to be able to produce a color proof on an inexpensive printer that would provide an accurate preview of the output from a different, typically more expensive and less accessible printer.
It is common practice in modem color correction techniques to "pre-solve" sets of RGB to YMCK conversions, store these solutions in a small look-up-table, and then apply interpolation to correct for arbitrary colors. i most cases, the initial solutions are based on an analytic model of printed colors (i.e., the "Neugebauer equations," or some modification thereof). The weakness in these methods is in the inaccuracy of the analytic model's prediction of the real printing process due to nonlinearities and interactions between the various inks used.
U.S. Patent 3,612,753 to Nathaniel Korman describes a method for producing color pictures wherein the color characteristics of the reproduction match that of the original picture. This is done by printing a test pattern sampling the color space of a particular output device (but only Yellow, Magenta, and Cyan combinations - the Black separation is generated by a Gray Component Replacement calculation), measuring the tristimulus values for each patch, and constructing a table based on the first two terms of a Taylor series expansion in the vicinity of the test colors (effectively linear interpolation). The test pattern consisted of only 512 patches (8 shades each of Yellow, Magenta, and Cyan). The combination of the small number of test patches, the simple linear interpolation, and the calculated black results in a color conversion which is not sufficiently accurate for present day commercial, high-quality printing standards. Empirical approaches have been proposed or tried where the analytic model is replaced by direct measurement of a large number of test patches to characterize
a particular combination of ink/paper/press conditions. See, for example, "Proposal for an Empirical Approach to Color Reproduction," by Warren Rhodes, Color Research and Application, Vol. 3, No. 4, winter 1978, pp. 197-201, proposing that 2xl07 points be scanned in order to convert a set of RGB (tristimulus) pixel values to a suitable set of YMCK halftone dot percentages. However, the measurement of such a large number of points is presently impractical.
While colors can be described in a standardized way, each display or hard copy output device requires its own calibration and compensation to correct for nonlinear behavior and other nonideal characteristics. It would be desirable to have a means for the translation of color image data intended for one printing system into a form that results in the same color appearance when printed on a different system. Such a translation would have to take into account all printer properties automatically to provide a simple, direct translation between devices.
Summary of the Invention
The present invention is a method for operating a computer to generate a look-up table of stored data to translate a first set of digital information defining a color image corrected for a first printing system into a second set of digital information for a second printing system, for the purpose of generating an image on the second printing system which approximates the color characteristics of an image created on the first printing system. This method includes the steps of: a. generating data for a first test pattern of color patches to sample the output of a first printing system; b. generating data for a second test pattern of color patches to sample the output of a second printing system; c. printing the first and second test patterns of color patches as a function of the first and second test pattern data; d. measuring the color values of the color patches of the first and second color patterns to generate a first and second four-dimensional array of measurement data;
e. expanding the first and second arrays of measurement data to create first and second coarse, four-dimensional databases; f. searching for a point in the second coarse database for which the color difference between that point and a corresponding - point in the first coarse database is minimized; and g. repeating step f for each point in the first database to generate a look-up table. In one embodiment of the invention, step e is accomplished by separately performing a nonlinear interpolation on both arrays of measurement data. In another embodiment, step f is accomplished by constraining the search in the second database to a neighborhood around the point with the same YMCK indices as the point in the first database. The method preferably includes the step, after step f , of performing a linear interpolation within the second coarse database to estimate a point in the second printing system's fine color space for which the color difference between that point and a corresponding point in the first coarse database is minimized. The method preferably also includes the step of applying a computer implemented four-dimensional low-pass filter to the set of points generated in step g.
The samplings of steps a and b are preferably nonuniform, emphasizing the more visually important regions of color space. In one embodiment of the invention, six samples of each color (at color densities corresponding to halftone dot percentages of about 0%, 6%, 18%, 44%, 69%, and 100%) are used to form a 6x6x6x6 matrix (containing a total of 1,296 color patches), and the first and second coarse four-dimensional databases are 17x17x17x17 matrixes.
Another embodiment of the present invention includes the look-up table generated by the method recited above.
Yet another embodiment of the present invention includes a method of operating a computer to use the look-up table generated by the method recited above to translate a first set of digital information defining a color image corrected
for a first printing system into a second set of digital information for a second printing system, for the purpose of generating an image on the second printing system which approximates the color characteristics of an image generated on the first printing system. This method preferably includes the steps of: 1. picking a predetermined solution from the table which is closest to the actual YMCK value of a datapoint in the first set of digital information;
2. applying linear interpolation between the coarse color data points of the table to arrive at the best YMCK solution in fine color space; and
3. repeating steps 1 and 2 for each point in the first set of digital information.
Still yet another embodiment of the present invention includes a computer system for generating a look-up table to translate a first set of digital information defining a color image corrected for a first printing system into a second set of digital information for a second printing system, for the purpose of generating an image on the second printing system which approximates the color characteristics of an image generated on the first printing system. This system includes: data generating means for taking a partial sampling of the color spaces of the first and second printing systems; signal generating means, responsive to the data generating means, for signaling the first and second printing systems to print a first and second test pattern of color patches corresponding to the partial samplings from the first and second printing systems; printing means, responsive to the signal generating means, for printing the first and second test pattern of color patches; sensors for measuring the color characteristics of the color patches;
means for generating data representative of the color characteristics of the color patches; interpolating means for expanding the data representative of the color characteristics of the color patches of the partial samplings of the color spaces of the first and second printing systems to create first and second four-dimensional coarse databases, corresponding to the first and second printing systems; and searching means for finding a datapoint in the coarse database of the second printing system for which the difference in color characteristics from a corresponding point in the coarse database of the first printing system is minimized, and repeating the search for every point in the space of the first printing system to generate a look-up table.
Brief Description of the Drawings
The present invention will be further understood with reference to the accompanying drawings wherein: FIGURE 1 is a system for generating a four-dimensional look-up table in accordance with the present invention; and
FIGURE 2 is a flow diagram for generating a four-dimensional look-up table according to the present invention.
Detailed Description of the Preferred Embodiments
Modem digital printing systems quantize images both spatially and tonally. A two-dimensional image is represented by an array of discrete picture elements or "pixels," and the color of each pixel is in turn represented by a plurality of discrete tone or shade values (usually an integer between 0 and 255) which correspond to the color components of the pixel: either a set of red, green, and blue (RGB) values (as an image is measured), or a set of yellow,
magenta, cyan, and black (YMCK) values that will be used to control the amount of ink used by a printer to best approximate the measured color. Thus, a color image, which is comprised of a large number of pixels, may be stored in a computer as a set of data points. However, a set of data points which has been prepared for one printing system cannot necessarily be used on a different printing system. This is because every printing system requires its own calibration to correct for nonlinear behavior and other nonideal characteristics. Each printing system uses its own particular combination of ink, paper, and press conditions. Therefore, if the same set of data points prepared for a first printing system were simply fed to a second printing system, the image produced by that second system would not closely resemble the image that would be created if that same set of data were fed to the first printing system. Thus, it is necessary to convert the set of data points which represents the first set of halftone dot percentages on the first printer into a second set of data points which represents that same set of color intensities on the second printer. The present invention accomplishes this by generating a four-dimensional matrix, or "look-up table," for converting the first set of data points on the first printing system into a second set of data points for the second printing system. The look-up table has four dimensions because each pixel has four characteristics: a certain amount of yellow, a certain amount of magenta, a certain amount of cyan, and a certain amount of black.
In order to generate this four-dimensional look-up table, it is necessary to select a set of data points having known amounts of each of the four colors and print a test pattern of color patches corresponding to the data points. The goal is to be able to print an image on a new or target "output" printer which will closely resemble the image printed by the standard printer. Typically, the standard printer output will be some proofing system such as the 3M Matchprint1* proofing system and the target output printer will be a continuous- tone, thermal-dye diffusion printer.
A system 50 for generating such a table is shown in FIGURE 1. A computer 52 generates a set of points 54 representative of the range of color shades and intensities available in the YMCK color spectrum. This range is also known as "four-dimensional color space." This data is communicated to printers 56 and 66, which print test patterns 58 and 68 of color patches. The color characteristics of the color patches in both test patterns 58 and 68 are then measured by an appropriate device 70, (eg., a color spectrqphotometer). The measurement data 72 from test patterns 58 and 68 is fed into computer 52, which generates a look-up table 74 for converting data for use with printer 56 into data for use with printer 66.
One way to sample the printed output of each system would be by printing one color patch for every known combination of varying intensity levels for the four colors. However, this is impractical because each of the four colors may be divided into 256 shades, ranging from white (no color) to the most intense presence of that color, and the various shades of each color may be varied independently. Thus, in order to sample the entire range of possible color variations (i.e., the entire "fine color space") of each printer, it would be necessary to print (256)4 = 4.3 x 108 color patches on both printers. The color characteristics of each of the 8.6 x 108 patches would then have to be measured. Such a mechanism for generating a look-up table is impractical because of the 8.6 x 108 measurements required.
The number of samples taken may be reduced by subdividing the color space of each color into a less precise or coarser number of samples such as 17 different levels of intensity instead of 256. This "coarse" four-dimensional matrix provides a 16x16x16x16 partitioning of four-dimensional color space (i.e., an array of 17x17x17x17 samples). While such an array is much smaller than the 4.3 X 108 color patches required for the 256x256x256x256 matrix, the 174 = 83,521 color patches required is still an inconvenient number to print and measure. The size of the test pattern matrix may be decreased still further by selecting six particular levels of density for each color out of the 17 levels
possible. This 6x6x6x6 matrix would require the printing and measurement of 64 = 1,296 color patches, which is practical for hand measurements, if necessary.
The sampling of the color intensities should be nonuniform in order to concentrate on the visually important regions of color space without requiring an excessive number of individual color patches in the test pattern. More emphasis should be placed on bright highlights to better estimate the nonlinear regions of color space. Color densities corresponding to halftone dot percentages of 0%, 6.25%, 18.75%, 43.75%, 68.75%, and 100% for each of the four colors work well. (The color densities used for each of the colors in a test patch are based on multiples of 6.25%, corresponding to the sixteen coarse steps from no color to maximum color density).
The small number of shades (6) used in the actual test pattern do not necessarily have to be chosen "out of the 17 levels possible. Any number of shades, regardless of their distribution, may be interpolated by the disclosed four-dimensional cubic spline process to generate the 17 equally spaced levels of color intensity.
The method according to the present invention for generating a look-up table for translating a first set of digital information for a standard printer (printer 1) to a second set of digital information for a target printer (printer 2) will now be described with reference to the flow diagram 10 set forth in FIGURE 2.
First, data is generated by a computer, as indicated at 12, to instruct printer 1 to print a test pattern which samples its printing range of color shades and intensities, i.e., its four-dimensional color space. This is done by first subdividing the color space of printer 1 into 17 equally spaced levels of color density for each of the four colors: yellow, magenta, cyan, and black (YMCK), and then generating a 6x6x6x6 matrix which is formed by selecting 6 levels from the 17 levels of coarse color space for each of the four colors. Similarly, a second set of data is generated by the computer for printer 2, as indicated at 22.
Next, the test pattern of color patches is printed on printer 1, as indicated at 14. A second test pattern is printed on printer 2, as indicated at 24.
The color patches from printer 1 are then measured to determine their 5 color characteristics, as indicated at 16. A color may be characterized by its lightness, saturation, and hue. One commonly used color measurement system is the CIELAB L*a*b* system. Li the L*a*b* system, the "L" represents the lightness of. the color, the "L" represents the location of the color on a spectrum from red to green, and the "b" represents the location of the color on 10 a spectrum from yellow to blue. The "a" and the "b" value, taken together, represent the saturation and hue of the color.
One advantage of using the L*a*b* measurement system is that it provides a simple means for calculating the "difference" or "similarity" of two different colors in absolute terms. While this absolute value does not reflect in 15 what manner two colors differ, it does reflect how far apart they are in color appearance. This latter characteristic is useful in carrying out the present invention, as will be discussed later. The same measurements are then carried out on the color patches printed by printer 2, as indicated at 26.
The color characteristics measurements for each color patch are then fed 20 into a computer. The computer then expands the nonuniform 6x6x6x6 matrix into a uniform 17x17x17x17 matrix of coarse color space, as indicated at 18. This is done by applying a four-dimensional version of a cubic spline interpolation, i.e., a "curve" of best fit in four-dimensional space, to the 6x6x6x6 matrix. This interpolation converts the nonuniform 6x6x6x6 sample 25 spacing into a uniform 17x17x17x17 matrix, and preserves most of the nonlinearities of the actual print process. A similar nonlinear interpolation is applied to the data from the measurements taken on the color patches from printer 2, as indicated at 28. Thus, a four-dimensional YMCK database of 17* = 83,521 L*a*b* values is generated for each printer, as indicated at 20 and 30 30.
The next step, as indicated at 32, involves finding a point in the second printer's 17x17x17x17 database 30 of L*a*b * values which most closely corresponds to a particular point in the first printer's 17x17x17x17 database 20 of L*a*b* values. This step is repeated for every point in the database 20 of printer 1.
The L*a*b* value in the second printer's database 30 which most closely corresponds to a L*a*b* value in the first printer's database 20 is that L*a*b* value in the second printer's database 30 for which the difference in color characteristics between the two L*a*b* values is minimized. The difference between two colors, ΔE, is defined in the L*a*b* system as the square root of the sum of the squares of the differences between the L, a, and b values for each point, as indicated at 34:
The initial coarse match search is made more efficient by assuming that a datapoint in the database 30 of printer 2 having a given color density of yellow, magenta, cyan, and black has a L*a*b* value which is reasonably close to a data point having that same level of color density in the database 20 of printer 1. This assumption allows the computer to restrict its search to minimize AE to a small neighborhood within the second printer's database 30 around the data point which corresponds to the data point in the first printer's database 20. This search constraint has the added benefit of preserving much of the GCR (Gray Component Replacement) character of the original YMCK "solution." Since color differences were determined by three-component metric L*a*b* measurements, the "redundant Black" ink cannot be determined without some artificial constraint. Restricting the search neighborhood ensures that an equivalent amount of three-color neutral will not be replaced by black alone (or vice versa) in a color match found within that limited search neighborhood.
The neighborhood searched in the second printer's database 30 may be constrained to about four coarse levels above and five below the data point in printer 1 for which a match is sought. Thus, for example, for a yellow color intensity of 7 on the coarse color scale of color density ranging from 0 for no
color to 16 for maximum color density (O through 16 representing the 17 points in the 17x17x17x17 matrix), the neighborhood searched in the second printer's database 30 would be constrained to a range of about 2 to 11 for the color yellow. A similar range would apply for magenta and cyan. Of course the size of the neighborhood is constrained by the boundaries of the matrix itself. Thus, for a color intensity level of 2, the range would not be from -3 to 6, because -3 does not exist in the 17x17x17x17 matrix. Instead, the range would be 0 to 6. The search neighborhood in the second printer's database 30 for black may be constrained to two levels above and below the color density of a given point in the first printer's database 20 for which a match is sought.
Thus, the search neighborhood occupies a four-dimensional color space of no more than about 9x9x9x4, or 2,916 points, which is much smaller than the 17* = 83,521 available points in the 17x17x17x17 coarse color matrix. This decreases the time required for the computer to find a coarse match in the second printer's database 30 for every point in the first printer's database 20. Once this "coarse" match has been found, the local four-dimensional space surrounding the point in the second printer's database 30 corresponding to the point in the first printer's database 20 is expanded by linear interpolation to estimate the "best-match" point in the second printer's database 30, as indicated at 36. A region of four-dimensional space is also known as a hypervolume or hyperspace. In the same way that one may make a linear interpolation between points on a two-dimensional area, one may interpolate between points in a three-dimensional space, or points in a four-dimensional hyperspace. This linear interpolation is necessary because the 17x17x17x17 matrix accounts for only 16 coarse spaces of color for each of the four colors. Because there are actually 256 different fine sublevels of color intensity for each of the four colors, there are 16 sublevels of color intensity for each of the 16 coarse color spaces. The linear interpolation thus involves determining which sublevel in the second printer's fine color matrix corresponds to a point in the first printer's coarse color-matrix having a given L*a*b* value.
The computer does this in the following way. Computers store information in a series of bits, each of which may be represented by a "0" or a "1." Because there are two possible representations for each bit, and because there are 256 possible sublevels of color intensity for each color, eight bits are needed to represent each of the YMCK values (28 = 256). The four most significant bits (i.e., the four left-most bits) of the eight bits represent the sixteen levels of coarse space which define the 16x16x16x16 divided color space, which defines the coarse 17x17x17x17 matrix. The four least significant bits (i.e., the four right-most bits) of the eight bits represent the sixteen sublevels of color space which lie between each coarse level. The four least significant bits are used to estimate the best match in the second printer's fine color space which most closely matches the color space of the first printer by performing a linear interpolation between the L*a*b* values in the second printer's database 30. This four-dimensional interpolation within the second printer's database 30 ensures that there will be no abrupt color changes between partitions of YMCK color space.
Repetition of the above steps of: (1) minimizing,&E for each point within coarse color space, and (2) then linearly interpolating the best match within that hypervolume, for every point in the first printer's database 20 creates an initial look-up table, as indicated at 38.
The initial look-up table is then passed through a computer implemented four-dimensional filter with "cubic notch" kernel characteristics as indicated at 40. This minimizes the effects of errors in the measurement data and ensures smooth color-to-color transitions. The final look-up table 42 thus created is a 17x17x17x17 matrix of coarse color space for translating a first set of data points defining a color image corrected for printer 1 into a second set of data points defining a set of data points for printer 2. A computer uses look-up table 42 to look up the predetermined solution from the table which is closest to the YMCK value of a particular data point in the first set of digital information. The computer then applies a linear interpolation between the coarse color data points of the table to
arrive at the best YMCK solution in fine color space. This process is repeated for every data point in the first set of digital information.
The 6x6x6x6 nonuniform sample array described above may be substituted with a smaller 5x5x5x5 array. Color densities of 0%, 12.5%, 37.5%, 62.5%, and 100% may be used for each of the four colors. While such an array has the advantage of being smaller than the 6x6x6x6 array (54 = 625 combinations instead of 64 = 1,296), the effects of measurement errors and local printer anomalies are much more significant. These errors are then more likely to result in noticeable color differences between images printed by the two devices.
It should be noted that the measurement data bases for the two printers need not be derived from identically sized arrays. For example, if there is greater uniformity and less nonlinearity in printer 1, then a look-up table may be generated by using a 5x5x5x5 matrix with printer 1, while using a 6x6x6x6 matrix for printer 2.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.