Method of controlling dot size in digital halftoning with multi-cell threshold arrays

Abstract: A method of equalizing the shape and size of halftone dots in a supertile (140) having digital cells, corresponding ideal cells and pixels to faithfully reproduce an image having predetermined gray levels. The technique determines twice as many smaller digital cells as original digital cells. The smaller cells (320A,320B) have their corners lying at the midpoint of the sides of the original cells (120).

Description: FIELD OF THE INVENTION This invention relates to the creation of a threshold array that contains more than one halftone cell for the creation of halftone images. A threshold array that contains more than one halftone cell will cause apparent spots or bands in the image being reproduced unless measures are taken to equalize the sizes of halftone dots representing similar gray areas in the image. BACKGROUND OF THE INVENTION Continuous tone images do not print well on most printing devices, so the image is usually printed as pattern of dots based on a grid. The grid consists of an array of halftone cells, each of which represents one section of continuous tone in the original image. When reproducing a halftoned image in this way using a digital recording device, a halftone cell consists of a plurality of device pixels. A portion of display pixels of each halftone cell are turned black to form dots relatively larger or smaller to represent darker or lighter portions of the original continuous tone image. A dark halftone cell will have most of its pixels turned black while a light halftone cell will have most of its pixels turned white. A complete grid of the original image is composed of many such halftone cells, each of which has an independent density of displayed pixels and therefore a different apparent darkness when viewed from a distance. A common prior art method of selecting which dots in each halftone cell to turn black works as follows: For a given halftone cell, the original image is sampled at each display pixel location in said halftone cell to obtain a gray value. This gray value is represented digitally as a number in a fixed range, typically 0 to 255. The gray value is then compared to a threshold value in the same range and the display pixel is turned white if the image gray value is greater than the threshold value; otherwise it remains black. The threshold values, in turn, are supplied by means of a threshold array which contains a separate threshold value for each pixel in the halftone cell, and are computed prior to processing the image. This process is carried out for each halftone cell of the image. This method works best when the same threshold array can be used for all halftone cells in the image. One advantage is that only one threshold array needs to be calculated and stored for the entire image. Another advantage is that a gray area of a given intensity will produce dots of the same size and shape no matter where it occurs in the image. However, in order for this to work, the set of display pixels corresponding to each halftone cell in the image must be exactly the same size and shape as the set of display pixels corresponding to any other halftone cell. This requirement is most often met by requiring the halftone cells to be parallelograms whose corners all fall exactly on integral coordinates in display pixel space. U.S. Patent US-A- 4,185,304 , shows one embodiment of this method. One problem with the above method is that the number of different halftone screens that can be reproduced is limited by the requirement that the corners of the halftone cells must fall on integer coordinates in display pixel space. For example, the screens rotated through 15° or 75° commonly used in color printing cannot be accurately reproduced. This shortcoming is addressed in a first copending U.S. Patent Application Serial Number 434,924 (US-A-5 235 435), filed November 8, 1989. by the same inventor and assigned to the same assignee as this invention (hereafter called the first copending application). Where it is shown how a threshold array that consists of multiple halftone cells can be used to increase the number of available halftone screens to the point where any arbitrary screen can be approximated to within adequate tolerances. When the threshold array contains more than one ideal cell, it is desirable that this fact be invisible to the user. This means that all the halftone dots produced by one copy of the threshold array, for a given gray level, must be of the same size and equally spaced. Unfortunately the multiple halftone cells in such a threshold array generally have to be of differing shapes and sizes when those halftone cells are represented by display pixels. This means that the dots produced by the different halftone cells may also be of different shapes and sizes even when they represent the same gray value. Depending on the degree of the differences in the size and shape of halftone dots, these differences may or may not be visible to the human eye. When they are visible, one sees a mottled variation in gray intensity in the form of repeating spots or bands where the original image contained only a constant gray. Such patterns do not faithfully reproduce the original image and are thus undesirable. The following terms are defined for clarity. An ideal halftone cell, or ideal cell for short, will be a halftone cell such as the ones discussed above: an element of the halftone grid consisting of an area bounded by a rotated square or a parallelogram. In contrast, a digital halftone cell, or digital cell for short, will be a set of pixels used to approximate an ideal halftone cell. Thus each digital halftone cell is associated with a specific ideal halftone cell that it approximates. Also, in keeping with the above-mentioned US-A-5 235 435, a threshold array that consists of multiple halftone cells will be referred to as a "supertile". In the prior art method of generating a supertile as disclosed in the copending application a digital halftone cell consists of all the pixels in the supertile whose geometric centers fall within the associated ideal cell. This method creates digital halftone cells of satisfactory consistency for certain halftone screens, but for other screens, an unsatisfactory variation Another type of error is caused at certain grey levels where a given black or a white halftone dot crosses the boundaries of its digital halftone cell and overlaps pixels on neighbouring digital cells. A single black or white halftone dot might be split into two or more pieces, each piece residing in a separate digital halftone cell, as shown in Figure 1. Because a digital halftone cell 130A-F may be asymmetric relative to the corresponding ideal halftone cell 120A-F, the various pieces of a halftone dot 70A-F in an ideal cell 120A-F may also get pixels allocated asymmetrically. When the digital halftone cells 130A-F are put together and whole halftone dots 70A-F are formed, the pieces that are used to form a given halftone dot may be too small or too large relative to a predetermined expected size even though the correct total halftone dot pixels within each digital cell. For example each of the digital cells 130A-F of Figure 1 are assigned ten black pixels (shown cross hatched); the remaining pixels are white. The black pixels create dots 70A-F. Dot 70A is the correct predetermined size. It includes ten black pixels, nine pixels are primarily within digital cell 130A and one is primarily in digital cell 130B. However, dot 70B includes only eight black pixels, one of which is primarily in digital cell 130C. Dot 70E includes twelve black pixels of which nine are primarily in cell 130E, two are primarily in digital cell 130B and one is primarily in digital cell 130F. This problem is called the multi-cell dot (MCD) problem. It is a principal object of this invention to correct the above multi-cell dot problem. In a prior art arrangement entitled "Colour halftone image processing apparatus producing various screen angles and having an adaptive colour image data conversion look-up table and a small capacity masking memory" (US-A-4752822, Kawamura) there is described an image processing apparatus which includes a generator for generating predetermined image data representing an image and an image reproducing device for reproducing the image. SUMMARY OF THE INVENTION According to the present invention there is provided a method as set forth in claim 1 appended hereto. The method of this invention can be practised using any of several hardware devices which may include a scanner, a computer and some type of raster display device. An original image is mechanically or electronically scanned, calculated, manipulated or otherwise prepared for reproduction. When a very accurate representation of a halftone screen requires that a threshold array be used containing multiple digital halftone cells of slightly differing shapes, the techniques described ensure that each halftone cell is printed or displayed in a manner to balance the number of pixels. This is accomplished by a combination of the use of smaller pixels and the requirement that any halftone dot made up of a portion of these pixels which lies in two or more digital cells does not gain or lose pixels to adjacent digital halftone cells. This ensures that all halftone dots representing a given gray level are as nearly equal in size as possible. A first technique corrects lopsidedness that is caused, for example, when generic pixels are added to one side of the digital cell and taken away from the other side. This lopsidedness can cause generic pixels to be distributed unevenly when the halftone dot is divided between digital cells. This lopsidedness is reduced when the center of gravity of each digital cell is used as the origin relative to which the generic pixel coordinates are transferred into ideal cell space coordinates for the spot function to take place. This technique is fully described in EP-A-0499738, from which the present application is divided. In the preferred embodiment of the present invention, the MCD problem is reduced when each ideal halftone cell is split into two equal parts, a white part and a black part, when building the threshold array. This technique is most useful with spot functions, normally those giving rise to a perfect checkerboard pattern rotated 45° with respect to the original halftone grid when a 50% gray level is requested. A third technique offsets the spot function by the vector (1/2, 1/2) in cell space relative to all halftone cells, which further reduces the MCD problem. By doing so, neither black nor white dots are centered exactly at the four corner areas of any ideal cell. However, at certain gray levels, when the black and white dots first cross the edge of the selected ideal halftone cell, dot sizes can vary due to varying contributions from different digital cells. However, because the dots already have a large number of generic pixels in them, these variations are not as noticeable as before. Again, this technique is described in EP-A-0499738, referenced above. A fourth technique creates a data structure that includes information in the form of lists of pixels representing how a halftone dot may be split by a digital cell at various gray levels. Thereafter, the pixels in a selected cell are ranked in a way that models the loss or the gain of pixels relative to a predetermined model cell. Again, this technique is described in EP-A-0499738 above. Halftoning systems currently in the market allow a limited number of spot functions and are specially optimized to work with a fixed, set of built in spot functions. The techniques described produce high quality halftoning with a wider range of spot functions than was previously possible. BRIEF DESCRIPTION OF THE DRAWINGS A complete understanding of the present invention and other advantages and features thereof may be gained from a consideration of the following description of the preferred techniques taken in conjunction with the accompanying drawings in which: Figure 1 illustrates a display system of the prior art, wherein dots are displayed with incorrect number of pixels; Figure 2 illustrates the relationship of an ideal cell to its associated digital cell and the relationship of a cell dot to the digital cell containing it; Figure 3 illustrates relationship of one supertile to the ideal halftone cells contained in it to other supertiles; and Figure 4 illustrates a checkerboard pattern of digital cells produced by two halftone grids. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT The techniques will be explained in terms of their implementation as computer programs running on a digital computer. Whenever the implementation of some part of the techniques might not be clear to one skilled in the art, explicit computer source code will be provided in the C programming language. A reference for the C-language is The C Programming Language , by Brian W. Kerninghan and Dennis M. Ritchie, published by Prentice-Hall Inc. Mathematical expressions in the C-language are similar to usual mathematical notation. The "*" symbol is used to denote multiplication. Comments in the source code are delimited by "/*" and "*/". The implementation of the invention as a computer program requires that certain mathematical functions be available to the program as subroutines. These functions are defined in the next section. Mathematical Functions Used in The Invention Floor(x) is the greatest integer smaller than or equal to the floating point value x. Ceil(x) is the smallest integer larger than or equal to the floating point number x. Sgrt(x) is the positive square root of x. Terminology In the following specification and drawings, references are made to the terms which are defined here as: Device Space: An area of a two-dimensional plane in which the recording device can make black marks on a white background, or vice versa. Device Pixel: The recording device can only mark certain discrete areas in device space. Each such area is a device pixel or a generic pixel. Device Coordinates: A coordinate system used to describe the locations of device pixels. The device pixels of any device can be assumed to reside in a rectangular array. The pixel coordinates (x,y) refers to the pixel in the y-th row and the x-th column. The origin of the device coordinate system is labeled 00 in Figure 3. To avoid ambiguity, a device pixel at location (x,y) will be assumed to be the pixel that covers the area of a square whose corners are given by (x,y), (x+1,y), (x+1,y+1), (x,y+1), where x and y are integers. Most marking devices are not this precise but the above convention will be useful in explaining the processes described below. Halftone Grid: A grid of squares, larger than the device pixels and generally rotated with respect to the device coordinate system. This grid controls the placement of halftone dots. In an analog system halftone dots are circles centered exactly in the middle of squares in the halftone grid. The techniques of the invention described below will also work if the halftone grid is a made up of parallelograms instead of squares. Ideal Halftone Cell: A single square in the halftone grid. Ideal Cell Space or Cell Space: a coordinate system based on a selected ideal cell. Such a coordinate system will have its origin in the center of the ideal cell and will be further scaled so that the corners of the ideal cell have coordinates (1,1), (1, -1), (-1, -1), (-1, 1). The technique of conversion between such a coordinate system and the device coordinate system will be obvious to those skilled in the art. (Reference: Fundamentals of Computer Graphics, by Foley and Van Dam, chapter 7, incorporated herein by reference.) Note that there is a different cell space coordinate system for each different ideal cell. Digital Halftone Cell or Digital Cell: A group of generic pixels that approximates in shape and size an associated ideal cell. Since the sides of an ideal cell do not in general coincide with the boundaries of pixels, a digital cell can only approximate an ideal cell to within one generic pixel in accuracy. A particular digital cell is "associated" with an ideal cell, or vice versa, if the ideal cell is the one approximated by the digital cell. Halftone Dot: For a given gray level, a contiguous set of generic pixels turned black (or white for a white dot) that is perceived by the human eye as a black (or white) dot in the pattern of dots comprising a halftoned image. Note that this definition is made in terms of human perception. Therefore this term will only be used in describing desired or actual properties of certain halftoning techniques, not to define how such techniques are carried out. Black (or white) Cell Dot: The set of black (or white) generic pixels in a digital cell that are turned black (or white) at a given gray level. The term cell dot by itself may be used where a black or white cell dot is meant. Note that the term cell dot has a rigorous definition, as opposed to the halftone dot. But the pixels comprising a cell dot may not be the pixels that the human eye perceives as a halftone dot. For example, in Figure 2, the black cell dot of digital cell 130 is made up of separate pieces: 80A, 80B, 80C and 80D. As another example, in Figure 1, the digital cell 130A has a black cell dot that includes nine black generic pixels in halftone dot 70A and one black generic pixel proximity in halftone dot 70D. The human eye would not see this group of two pixel as a single dot. Black (or white) Dot Piece: The various contiguous pieces into which a black (or white) cell dot is divided. For example, in Figure 2, the black cell dot of digital cell 130 includes three black generic pixels in dot piece 80A, one black generic pixel in dot piece 80B, and three black generic pixels in dot piece 80C and one black generic pixel dot piece 80D. Supertile 140 (Figure 3): For a given halftone grid 220, the first copending application, shows how to construct supertile 140. Supertile 140 is a set of device pixels 110 with the following properties: (1) The supertile 140 can be replicated by translation to cover each generic pixel 110 in device space exactly once; (2) If the screen grid (in this application halftone grid 220) is superimposed on supertile 140, it divides it up into an integral number of ideal halftone cells 120. Some of these ideal cells 120 may be split into pieces by the boundary of the supertile 140; and (3) When supertiles 140 are assembled by tiling, any split pieces of halftone cells at the edges of a supertile are reassembled, as shown in Figure 3. For the purposes of this disclosure, a particular supertile with dimensions "sx" and "sy" is constructed as shown in Figure 3. These dimensions indicate that the supertile consists of pixels in an sx-by-sx square whose lower left corner coincides with the origin 00 in device coordinates along with the pixels in an sy-by-sy square whose upper left corner coincides with the origin in device coordinates 00. Thus a generic pixel, having device coordinates (x, y) in the sx-by-sx square will have both x and y greater than or equal to 0 and less than or equal to sx-1. Such a pixel in the sy-by-sy square will have x greater than or equal to 0 and less than or equal to sy- 1, and would have a y less than 0 and greater than or equal to -sy. Supertile Translation Vectors 141A and 141B: As mentioned above, the supertile can be translated to cover device space. Any such translation of the supertile can be accomplished via successive translations using the two supertile translation vectors. The two vectors have values (sx,sy) for vector 141A and (-sy,sx) for vector 141B, respectively, in device coordinates as shown in Figure 3. Equivalent Cells: Any two ideal cells, called c1 and c2, are said to be equivalent if one cell can exactly be superimposed on the other through a succession of translations by the two supertile vectors. Another way of understanding this is by taking one supertile and labeling all the ideal cells within that supertile uniquely. By tiling all space with that supertile, the ideal cells produced by this tiling will be exactly equivalent when they have the same label. Threshold Array (Figure 3): A term used commonly in halftoning to denote a set of generic or device pixels 110 that tile the plane (i.e. condition number 1 under the definition of supertile 140) wherein each generic pixel 110 is given a "threshold value". Such threshold arrays are used to generate halftoned images in the following way: First, the plane is tiled with the threshold array. Thus, each generic pixel 110 is covered by a copy of the threshold array so that it can be associated with the threshold value of the generic pixel 110 covering it in this copy of the threshold array. Next: the desired gray value for the generic pixel 110 is computed from the image being halftoned, and compared to the threshold value. If the gray level is greater than the threshold value, the generic pixel 110 is left white; otherwise it is marked black. Supertile 140 mentioned above is calculated in order to define the set of pixels comprising the threshold array in the present invention. Since a supertile encompasses multiple ideal cells, so will the threshold array. Spot Function: In the actual implementation of digital halftoning, a digital cell is selected and then all pixels that lie in that digital cell are put into a list. A spot function is then called for each pixel in the list. The cell space coordinates of the pixel are inputted into this spot function and it returns a value that is used to rank that pixel relative to the other pixels. This ranking determines the order in which pixels change from black to white in the ideal cell as the desired gray level changes from darker values to lighter values. Thus the ranking is used to determine the threshold values in the threshold array (supertile). In this way the spot function is used to control the shape of the halftone dots at various gray levels. When the coordinates of a pixel are passed to the spot function, the coordinates are transformed to a the cell space for the ideal cell being processed. Still referring to Figure 3, the following techniques are applied after the number of generic pixels 110 assigned for each ideal cell 120 is known to be equal, as illustrated by the various techniques of the second copending application. The first three techniques alter how the spot function is called in the process of creating a digital halftone. This in turn alters the values in the threshold array when it is created by the techniques explained above. The fourth technique does extensive processing on the values returned by the spot function, which are then used to create the threshold array. The output of the invention is an altered threshold array, based on a supertile, which may then be used to create halftoned images free of spurious gray bands or spots. The Spot Offset Correction Scheme The first technique of correcting patterns caused by the multi cell dot MCD problem deals with modifying how the spot function is called for each ideal cell 120. This first technique is described in detail in EP-A-0499738, from which the present application is divided. The Split Cell Correction Scheme The second technique of correcting patterns caused by the multi cell dot MCD problem will now be described as a preferred embodiment of the present invention. This technique came about because the spot offset scheme does not always work. Because the spot offset scheme only reduces the variation in halftone dot size, it does not guarantee that halftone dot sizes will vary less than a predetermined level. The second technique can assure nearly equal halftone dot sizes for certain kinds of spot functions. Referring to Figure 3 according to this technique, each ideal cell 120 is split into two equal parts when building the threshold array of this invention, which is supertile 140. The second technique works best with certain spot functions, such as those that give rise to a perfect checkerboard pattern rotated 45° with respect to halftone grid 220 when a 50% gray level is requested, as shown in Figure 4. This includes the most common spot function, the one used to simulate optical screening. (Reference: The PostScript Language Reference Manual, by Adobe Systems Incorporated, p. 315, incorporated herein by reference). The first step of this second technique is to create a second ideal halftone grid 420 based on the checkerboard pattern of the 50% gray level from a first ideal halftone grid 220. Thereafter the generic pixels are assigned to ideal cells 320A or 320B of the second grid 420, preferably using the equal area method disclosed in the second copending application. This second checkerboard pattern produces an ideal grid 420 computed by rotating the first ideal grid 220 by a 45° angle and scaling down the side of an ideal cell 120 of the first ideal grid 220 by 1/Sqrt(2) and aligning the second ideal grid 420 so that the corners of the second ideal grid 420 fall at the midpoints of the sides of the ideal cells 120 in the first ideal grid 220. There will be exactly twice as many ideal cells 320A or 320B of the second ideal grid 420 in the same size supertile 140 as there were in the first ideal grid 220. Keeping the original dimensions of supertile 140 in combination with the finer second halftone grid 420 results in halftone pseudo-cells 320A and 320B. An equal area method, for example, may be used to insure that each pseudo-cell 320 is assigned the same number of pixels. Finally the spot function is called and threshold values are computed. Supertile 140 is made to look as if it was created with the first ideal halftone grid 220. This is done by noting that each ideal cell 320A and 320B of the second grid 420 is either "even" numbered or "odd" numbered, depending on whether the coordinates of the lower left corner of ideal cell 320, when represented in a coordinate system based on the second ideal grid 420, sum to an even or to an odd number. For an even numbered ideal cell 320, the technique of transformation will be illustrated with respect to a selected even numbered ideal cell 320A. The coordinates passed to the spot function are transformed to be in that part of ideal cell 120A of the first ideal grid 220 that would contribute to the black part of the checkerboard pattern of the second ideal grid 420, as shown in the C-language code segment 2a that follows. /* Code segment 2a */ X = (x + y)/2; Y = (x - y)/2; Capital X and Y are coordinates in the cell space of ideal cell 120A; small x and y are coordinates in the cell space of ideal cell 320A. After these values have been passed to the spot function and sorted, they are assigned threshold values in the range of 0 to 127 instead of the usual range of 0 to 255. This is because the values from ideal cell 320A are supplying only half of the total thresholds in ideal cell 120A. For an odd-numbered ideal cell 320B, shown broken into four pieces so as to lie within ideal cell 120A, the process is similar except that the transformation back into the coordinates of the original first ideal grid 220 is shown in the C-language code segment 2b that follows. /* Code segment 2b */ X = (x + y) /2 + 1; if (X > 1 ) X = X - 2; Y = (x - y) /2 + 1; if (Y > 1 ) Y = Y - 2; Threshold values are assigned in the range 128 to 255. Now both white and black dots are completely enclosed within one ideal cell 120 of the original first halftone grid 220. This means that the size of the black and white checkerboard dots closely follows the size of ideal cell 120 of the first grid 220. There is very little variation in sizes of these dots. If the spot function is not one that produces a checkerboard pattern at 50% gray, then the following two techniques are used to reduce the variation in spot sizes. Third Technique of Correcting the MCD Problem The third technique of correcting patterns caused by the MCD problem is described in detail in EP-A-0499738 referenced above. The Fourth Technique of Correcting the MCD Problem The fourth technique of correcting patterns caused by the MCD problem ensures nearly constant dot size when used after assigning equal, or nearly equal, numbers of generic pixels 110 to each ideal cell 120. Unlike the split cell technique this fourth technique can be used with almost any spot function. Again, this technique is described in detail in EP-A-0499738 referenced above. The various techniques of the invention described above may be used together or separately. Certain combinations of these techniques are more useful at certain ranges of angles and frequencies than others. A software program may decide which technique or combination of techniques apply to a specific task based on the imagesetter resolution, the frequency of requested halftone grid and the angle of the requested halftone grid. The preferred technique of the invention has now been described. Various substitutions and alternatives will be apparent to persons skilled in the art from the teaching of this invention. It is therefore not intended that the invention be limited to the described embodiment, but only as defined by the appended claims.

Claims: A method of displaying an image on a raster display device having predetermined grey levels, made up of halftone dots of substantially equal shape and size in a supertile (140) which represent predetermined grey levels of the image being displayed, the supertile including a predetermined number of digital cells (120) of a first type in a first digital halftone grid (220) and twice the predetermined number of digital cells (320) of a second type in a second digital halftone grid (420) different from said first halftone grid, each of the digital cells of a first type consisting of a plurality of cells of the second type, and each of the cells of the second type (320) within the cell of the first type (120) being assigned a range of thresholds wherein, when all threshold subranges within a cell of the first type are combined, a threshold range of the halftone dot is obtained, each of the thresholds being represented by one pixel, comprising the steps of: (a) assigning an equal number of pixels to each of the second type of digital cells; (b) computing a threshold value for each pixel in each of the digital cells of the second type; (c) comparing the computed threshold values to the grey levels and on the basis of that comparison, selecting the pixels for display in order to properly reproduce the predetermined grey levels of the image; and (d) displaying the image including the pixels selected for display. The method of claim 1 wherein the second digital halftone grid (420) is rotated by 45° relative to the first digital halftone grid (220); and has its comers laying at the midpoints of the sides of the first digital halftone grid (220). The method of claim 1 wherein the coordinates of a pixel in one of the digital cells (320) of the second type are transformed to coordinates in the cell space of a cell of the first type (120) to enable the transformed coordinates of the first type to be inputted into a mathematical function to compute the threshold values. The method of claim 3 where said threshold values are assigned evenly over a portion of an available range of threshold values.

Inventors: KNUTH DONALD E, SCHILLER STEPHEN N, KNUTH, DONALD E., SCHILLER, STEPHEN N.
Applicants: ADOBE SYSTEMS INC, ADOBE SYSTEMS INC.
Application year: 1991
Main classification: H04N1
IPC codes: H04N1