This invention relates to binarization of multiple separation contone color images, and more particularly methods for assuring that from separation to separation, overlap of separation halftone dots is minimized.
Background of the Invention
Color images are commonly represented as a one or more separations, each separation comprising a set of color density signals for a signal primary or secondary color. The color density signals are commonly represented as digital gray or contone pixels, varying in magnitude from a minimum to a maximum, with a number of gradations between corresponding to the bit density of the system. Thus, a common 8 bit system provides 256 shades of each primary color. A color can therefore be considered the combination of magnitudes of each pixel, which when viewed together, present the combination color. Usually, printer signals include three subtractive primary colors (cyan, magenta and yellow) signals and a black signal, which together can be considered the printer colorant signals. Each color signal forms a separation, and when combined together with the other separations forms the color image.
Printers commonly provide a limited number of output possibilities, and are commonly binary, i.e., they produce either a spot or no spot at a given location (although multilevel printers beyond binary are known). Thus, given a color separation with 256 shades of each additive primary color, a set of binary printer signals must be produced representing the contone effect. In such arrangements, over a given area in the separation having a number of contone pixels therein, each pixel value of an array of contone pixels within the area is compared to one of a set of preselected thresholds (the thresholds are stored as a dither matrix and the repetitive pattern generated by this matrix is considered a halftone cell) as taught, for example, in U.S. Pat. No. 4,149,194 to Holladay. The effect of such an arrangement is that, for an area where the image is a contone, some of the thresholds within the dither matrix will be exceeded, i.e. the image value at that specific location is larger than the value stored in the dither matrix for that same location, while others are not. In the binary case, the pixels or cell elements for which the thresholds are exceeded might be printed as black, while the remaining elements are allowed to remain white, dependent on the actual physical quantity described by the data.
Thus, it can be seen that several spots together form a halftone dot. These dots are carefully designed to system requirements, so that the system optimally reproduces the image. In electrophotographic systems, which have great difficulty in reproducing isolated spots (e.g. a black spot surrounded by white spots), the dot is designed so that increasing densities produce an increasing number of black spots clustered together. By contrast, ink jet printing produces isolated dots reasonably well, and so the requirement of clustering can be relaxed in favor of other requirements.
In electrophotographic systems, with the clustered dot requirement, registration between separations is difficult to achieve. Accordingly, since minor registration errors would result in the development of undesirable moire patterns, the screens of each separation are rotated with respect to other another, as in the above described reference to Holladay. In current ink jet printers which have very good separation to separation registration, moire patterns are not a problem. Accordingly, the dots can be placed in registration, one on top of the other.
Given that reduction in the above constraints, other goals can be addressed to optimize system reproduction, one of which is the maximization of gamut of the color printer. Because inks are not ideal, the color produced by two ink dots laid on top of one another is different from the color produced by the placement of the dots in side by side relationship. The greatest gamut is produced in the latter case, when overlap of inks is minimized.
A second goal of dot design is to improve edge definition. Edges, characterized by abrupt changes in color or density within a small area of the image, are well defined in the inked portion of a halftone dot, but are lost in white areas between dots. The amount of white space will be larger as the separations which contribute to the color at the edge are formed with overlapping dots. However, if separations forming the edge contribute to the color combination with dots in side by side relationship, there would be less white space, and a greater chance that an edge would overlap one of the side by side dots, providing improved edge rendition.
A third goal of dot design is to decrease local concentrations of ink. Problems such as puddling or bleeding of ink occur if there is to much ink within a small area. It would be preferable to have a uniform layer of a moderate amount of ink rather than areas of heavy coverage mixed with areas of no coverage at all.
All of the references cited herein are incorporated by reference for their teachings.
Summary of the Invention
In accordance with the invention, there is provided a method of preparing a color document initially defined in terms of contone image signals to binary image signals, using a halftoning process that minimizes overlap of colors within a halftone dot area.
In accordance with the invention, halftone screens are generated for each separation in accordance with the goal of avoiding overlapping whenever possible. Initially, the black separation is halftoned, generating a dot with a some number of ON pixels and OFF pixels in accordance with the area density of the black separation. Next, a first color separation is halftoned, setting a number of the previous OFF pixels to ON. Then, if any white pixels remain, the second color separation is halftoned, setting a number of the previously OFF pixels to ON. After the second color separation is halftoned, if any OFF pixels remain, the third color separation is halftoned, setting a number of the previous OFF pixels to ON. If during the processing of the second and third separations, it is determined that no OFF pixels exist to be turned ON, second and third layers of color is started, respectively superimposed over the first layer and then, if required, superimposed over the second layer. Each layer is started and arranged so that the additional colors forming the dot are not placed on any black areas.
The way in which this placement of the spots within the separation dots is achieved is by adding the magnitude of previously placed colors to the color currently being placed, so that when compared to the halftone threshold, the pixel is set to ON "beyond" the previously placed pixels in other separations (at higher thresholds than would be exceeded given the magnitude of the image signals). The summed magnitude is also compared to the maximum threshold for the system, so that any excess pixels may be carried to a second or third layer of color. To avoid printing over black, the second and third layers are started after any black pixels.
These and other aspects of the invention will become apparent from the following descriptions to illustrate a preferred embodiment of the invention read in conjunction with the accompanying drawings in which:
FIG. 1 is a schematic illustration of pertinent elements of a scan to print system in which the present invention may find use;
FIG. 2 schematically illustrates the generation of printer colorant signals, on which the present invention operates;
FIG. 3A shows a set of sample areas from plural separations, and FIG. 3B shows a simple 4.times.4 halftone cell of threshold values;
FIG. 4A shows a set of dots derived from the sample areas and halftone cell of FIGS. 3A and 3B, while FIG. 4B shows their arrangement in overlapping or printed relationship; and
FIGS. 5, 6, 7 and 8A and 8B together illustrate a functional block diagram of a system for accomplishing the present invention.
Referring now to the drawings where the showings are for the purpose of describing an embodiment of the invention and not for limiting same in the particular color system to be discussed, color documents are represented by multiple sets of image signals, each set (or separation) represented by an independent channel, which is processed more or less independently. A "color image" as used herein is therefore a document including at least two, and commonly three or four separations, each separation providing a set of image signals which will drive a printer to produce one color of the image, which separations together form the full color image. In this context, we will describe pixels as discrete image signals, which describe optical density of the document image in a given small area thereof. The term "pixel" will be used to refer to such an image signal in each separation.
One suitable printing system might be a color ink jet printer, such as the devices described in U.S. Pat. No. 4,620,198 and 4,899,181, which describes two color ink jet printers. Referring now to the drawings where the showings are for the purpose of describing an embodiment of the invention and not for limiting same, a basic system for carrying out the present invention is shown in FIG. 1. In a simple system model, a scanner 10, which can be calibrated to produce a set of digital colorimetric or device independent data describing a scanned image 12, which, by definition can be defined in terms of r g b space. Resulting from the scanning operation is a set of scanner image signals R.sub.s, G.sub.s, B.sub.s, defined in device dependent scanner terms. Incorporated into the scanner or another processing path is a post-scanning processor 14, which provides correction of scanner image signals R.sub.s, G.sub.s, B.sub.s to colorimetric terms, typically digital in nature R.sub.c, G.sub.c, B.sub.c. The values may be in terms of CIE color space (rgb), or the L*a*b* luminance-chrominance space (LC.sub.1 C.sub.2). A color space transform, indicated by block 20, such as that described in U.S. Pat. No. 4,275,413 to Sakamoto, is used to convert the device independent data to device dependent data. The output of color space transform 20 is the image defined in terms of a device dependent space, or colorant values C.sub.p, M.sub.p, Y.sub.p, K.sub.p that will be used to drive a printer 30. In one possible example, the colorant values represent the relative amounts of cyan, magenta and yellow toners that are to be deposited over a given area. The printed output image may be said to be defined in terms of R.sub.p, G.sub.p, B.sub.p, which is hoped to have a relationship with R.sub.o, G.sub.o, B.sub.o such that the printer has a color that is colorimetrically similar to the original image, although that similarity is ultimately dependent upon the gamut of the printing device.
With reference now to FIG. 2, and color space transformation and color correction 20, initially, R.sub.c, G.sub.c, B.sub.c color signals are directed to a three dimensional look up table stored in a device memory such as a ROM or other addressable memory device, which will meet speed and memory requirements for a particular device. Color signals R.sub.c, G.sub.c, B.sub.c are processed to generate address entries to the table which stores a set coefficients with which the R.sub.c, G.sub.c, B.sub.c may be processed to convert them to C.sub.x, M.sub.x, Y.sub.x colorant signals. Values which are not mapped may be determined through interpolation.
There are many methods of providing a transform from device independent data to device dependent data, with U.S. Pat. No. 4,275,413 to Sakamoto describing one method, which itself can be varied. Once a conversion table is established, a method of interpolation referred to as tri-linear or cubic interpolation may also be used to calculate output values from the limited set of input values. The values stored in the look-up table can be empirically derived, as in Sakamoto, or calculated or extrapolated based on empirical information, as in Po-Chieh Hung, "Tetrahedral Division Technique Applied to Colorimetric Calibration for Imaging Media", Annual Meeting IS&T, NJ, May, 1992, pp. 419-422; Po-Chieh Hung, "Colorimetric Calibration for Scanners and Media", SPIE, Vol. 1448, Camera and Input Scanner System, (1991); and Sigfredo I. Nin, et al., "Printing CIELAB Images on a CMYK Printer Using Tri-Linear Interpolation", SPIE Proceedings, Vol. 1670, 1992, pp. 316-324. The construction of the set of values stored for the present invention will be discussed hereinbelow.
With reference to FIG. 2, upon obtaining device dependent colorant signals C.sub.x, M.sub.x, Y.sub.x, black addition (K+) is performed in two steps. In the first step 50 the minimum density of the cyan, magenta, and yellow signals is determined. In the second step 60 it then generates a black colorant signal as a function thereof. The addition of black ink is primarily an aesthetic determination.
Subsequent to black addition, the color values are linearized, so that linearly increasing values of colorants produce a linearly increasing colorimetric response. The linearization process is implemented via a set of look-up tables storing the responses of a set of patches generated at a set of input values, where a curve fitting routine is used to map the set of possible input responses to characterized output responses. These values are then used to drive printer 30.
Accordingly, in one embodiment of the invention, a set of image signals are derived representing the cyan, magenta, yellow and black separations. FIGS. 3A, 3B, 4A and 4B, illustrate the principle operation of the invention. Four separation signals representing the black, cyan, magenta and yellow separations are represented in FIG. 3A, with the possible densities shown. In the example, uniform densities are shown, although, the invention contemplate partial dotting as well.
For the purposes of simplicity, a 4 bit system is assumed, with 17 possible densities 0 to 16, and a 4.times.4 halftone cell is assumed, with the thresholds varying from 1 16 through the screen as shown in FIG. 3B. FIG. 4A illustrates the output response of the thresholding process, which produces a dot for each separation consisting of spot at location where the contone image signal exceeded the threshold value. The described method establishes the positions of the black spots initially, and then places the colored spots for each separation in locations within the cell that do not overlap the black spots. FIG. 4B shows the 4 dots as they be printed, with the little overlap occurring, and limited to the color portions of the dot.
The way in which this placement of the spots within the separation dots is achieved is by adding the magnitude of previously placed colors to the color currently being placed, so that when compared to the halftone threshold, the pixel is set to ON "beyond" the previously placed pixels in other separations (at higher thresholds than would be exceeded given the magnitude of the image signals). The summed magnitude is also compared to the maximum threshold for the system, so that any excess pixels may be carried to a second or third layer of color. To avoid printing over black, the second and third layers are started after any black pixels. This may be better shown by the procedure which actually carries the process out, expressed in pseudo code.
This procedure takes in color values for cyan, magenta, yellow and black at a pixel (c, m, y, k) and pixel position (i, j) (where i is the pixel position in the scan line, and j is the scan line position in a page). It makes use of a standard halftone threshold procedure threshold(i,j) which produces a threshold for the pixel at position i, j. The result of the halftone process is conveyed by setting the output value v of each separation to 0 (no ink) or 1 (ink) via the procedures cout(i, j, v), mout (i, j, v) yout(i, j, v) kout (i, j, v). The maximum value possible within the system is maxval.
The assumptions are made that the cyan, magenta, yellow and black ink amounts are the amounts which should actually be seen. In particular, it assumes that the amount of black plus that of any other color never exceeds the maximum ink value (i.e., there never needs to be overlap of black with any other color. The procedure also places inks in the order magenta, cyan, yellow (darkest to lightest) in order to best preserve the halftone shape, but other orderings are possible. It is also possible to provide less than four separations, and to provide a system without a black separation.
With reference now to FIG. 5, a block diagram of the proposed system is shown. Within printer 30 is found the inventive halftoning apparatus. Accordingly, a set of separation image signals K.sub.p, M.sub.p, C.sub.p and Y.sub.p are received by the halftoning system at inputs 10, 12, 14, and 16. Stored in printer memory 20, which can be ROM and RAM type memory, is a halftone cell for the particular halftoning application, in this case illustrated as a simple 4.times.4 array. The halftone cell provides threshold values t against which each separation image signal will be compared. Appropriate threshold values for a given location i,j in the image are returned based on the pixel clock and scan line clock signals directed to memory 20. The halftone cell memory returns a value t responsive to the appropriate clock signals.
Initially t(i,j) is directed to comparator 30, which has as a second input black separation signal K.sub.p. The output of comparator 30 depends on whether K.sub.p is greater than t(i,j). If it is, it returns a signal K.sub.sep indicating that case, in the current example a 1 or 0, which will cause the printer to place a spot or no spot at position i,j when it is printing the black separation.
The same pixel clocking also directs t(i,j) to comparator 34. Comparator 34 has as a second input the sum of signals K.sub.p and M.sub.p from signal adder 35, which serve to increase the magnitude of signal M.sub.p, if signal K.sub.p has a non-zero value. Accordingly, signal M.sub.p will exceed a higher threshold than otherwise would be the case. The output of comparator 34 depends on whether signal K.sub.p is greater than t(i,j). If it is, it returns a signal M.sub.sep indicating that case, in the current example a 1 or 0, in the case of the magenta separation halftoning, the output is also pairwise logically ANDed at AND gate 36 with the output of comparator 34, to assure that the magenta pixel that is printed will not overlap a black pixel.
In like manner, t(i,j) is directed to comparators 38 and 42, which have as second inputs the sum of M.sub.p and C.sub.p and the sum of C.sub.p and Y.sub.p from adders 37 and 41, respectively. The outputs of each comparator 38 and 42 are pairwise logically ANDed at AND gates 40 and 44 with the outputs of comparator 34 and 38, respectively, to assure that the cyan pixel and yellow pixels are not printed over the magenta or cyan pixels, respectively. The output signals Csep and Ysep result, if the determined pixels fit in the first layers.
With reference now to FIG. 6, it will be understood that certain colors will only be created by providing a number of color separation pixels that require overlap. Accordingly, FIG. 6 describes logic for determining whether overlap is required. From adder 37 of FIG. 5, C is compared at comparator 100 to the maximum pixel value maxval within the system. At cyan overlap logic 102, a determination is made as a result of the comparison that if C is greater than maxval, then logic 102 outputs the value C-maxval+k. This resets the value of C so that it will turn on threshold levels starting just after black. If C is less than maxval, output C is set to K.sub.p. The implication of which will become apparent in reviewing FIG. 7. Logic 102 included an AND gate 120 having as inputs the output of comparator 100, a C+(K-maxval), and an AND gate 122 having as inputs the compare signal, inverted, and k. The outputs of AND gates 120, 122 logically ORed at OR gate 124 to provide the required output.
A similar arrangement is provided for the yellow separation. From adder 41 in FIG. 5, Y is compared at comparator 110 to the maximum pixel value maxval within the system. At yellow overlap logic 112, a determination is made as a result of the comparison that if Y is greater than maxval, then logic 102 outputs the value Y-maxval+k. This resets the value of Y so that it will turn on threshold levels starting after black. If Y is less than maxval, output Y is set to K.sub.p.
It will be understood that the arrangement for determining overlap will not be required for the magenta separation. There should not be any need for a second layer of the first ink, as placing ink over itself should not result in a color change.
With reference now to FIG. 7, second layer halftoning is provided, substantially the same as the first layer, but without the magenta comparator. Signal t(i,j) is directed to comparators 200 and 212, which have as second inputs signal C and Y from logic 102 and 112, respectively. The outputs of each comparator 200 and 202 are pairwise logically ANDed at AND gates 202 and 214 with the outputs of comparator 30 and 200 respectively, to assure that the cyan pixel and yellow pixels are not printed over the black or cyan pixels, respectively. The output signals Csep and Ysep result, if the determined pixels fit in the second layers. It will be noted that if C or Y had been set to K.sub.p, the output of comparator 34 and 200 or 202 would be the same, and the output of AND gates 202 and 214 would go to 0.
Third layer determination is shown in FIGS. 8A and 8B, where the Y output of logic device 112 is compared at comparator 300 to the maximum pixel value maxval within the system. At yellow overlap logic 302, essentially identical to logic 102, a determination is made as a result of the comparison that if Y is greater than maxval, then logic 302 outputs the value Y-maxval+K.sub.p. This resets the value Y so that it will turn on threshold levels starting just after black. At FIG. 8B, third layer halftoning is provided, substantially the same as the second layer halftoning, but without the cyan comparator. Signal t(i,j) is directed to comparators 310, which have as a second input signal Y from logic 302. The output of comparator 310 is pairwise logically ANDed at AND gates 312 with the outputs of comparator 34, to assure that the yellow pixel is not printed over the black pixels, respectively. The output signals Ysep results. It will be noted that if Y had been set to K.sub.p, the output of comparator 34 and 310 would be the same, and the output of AND gates 312 would go to 0.
In many color systems, there is no black separation, in which case, the present halftoning system would be altered to operate without the black separation.
The invention has been described with reference to a particular embodiment. Modifications and alterations will occur to others upon reading and understanding this specification. It is intended that all such modifications and alterations are included insofar as they come within the scope of the appended claims or equivalents thereof.