Abstract:
A system and method for halftoning multi-level pixels preferably uses a threshold array divided into two or more classes. The classes are ordered in a visitation order. Each class contains at least one element. A halftone cell comprised of a plurality of pixels corresponds to the threshold array. As the intensity level for the halftone cell increases, the pixels corresponding to the elements in the first class are halftoned by fractional values of pixels until all of the pixels in that class reach saturation. As the intensity of the halftone cell increases, none of the pixels corresponding to the elements in any other class change state. Once the pixels corresponding to the elements in the first class are saturated, the pixels corresponding to the elements in the second class are halftoned by fractional values of pixels. In more general terms, the next class in the class visitation order is not addressed until the pixels corresponding to all of the elements in the previous class are saturated.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to the field of image reproduction, and more particularly to digital halftoning. Still more particularly, the present invention relates to a method and apparatus for halftoning multi-level pixels. 
     2. Description of the Prior Art 
     A printed color image is a field of tiny dots of typically only four colors of ink arranged meticulously so as to replicate the multiplicity of colors within the color image. Since only four colors of inks are available, it is generally not possible to reproduce a color image exactly like its original. But exact duplication is not necessary. One need only create a believable image, and the human eye and brain will compensate for differences in illumination, color surroundings and tonal range. 
     Tonal range is important in creating a believable image. Some imaging devices are capable of reproducing acceptable tone directly. Examples of such devices include photography and television. These types of imaging devices can produce continuous tone, or &#34;contone.&#34; 
     Other imaging devices are not able to reproduce acceptable tone directly. These types of devices are typically &#34;binary&#34; or &#34;bi-level&#34; devices and multi-level devices. Bi-level devices produce at any output position only two values; one value corresponds to &#34;on&#34;, the other value to &#34;off.&#34; One example of a bi-level device is a dot matrix printer. Multi-level devices typically have more than two output values but not as many output values as contone devices. In other words, multi-level devices are devices that have M output values for N input values, where N&gt;M. 
     Bi-level and multi-level devices have limited tonal range. Intermediate tones, such as varying shades of gray, must be represented by halftones. Halftoning is a process by which continuous-tone images are approximated by a pattern of pixels that can achieve only a limited number of discrete intensities. The most familiar case of this is the rendering of gray tones with black and white pixels, as in a newspaper photograph. 
     A halftone pattern is made up of a region of pixels referred to as the halftone cell. In conventional digital halftoning (halftoning that uses rational tangent angles), the halftone cell contains a specific, repeatable pattern. The tonal range of a halftone pattern depends upon the number of pixels in the halftone cell. 
     Pixels are usually arranged on an orthogonal grid, with the pixels placed at evenly spaced lattice points on an output device. A two dimensional array of pixels is often called a pixel map or pixmap. Each pixel in the pixmap has its own unique address on the grid. An image processor uses this address to keep track of each pixel and its associated threshold value. 
     A threshold value represents the tone value at which the pixel is turned &#34;on.&#34; Each pixel within a halftone cell is assigned a threshold value. Typically a threshold array is used to control the individual pixels in a halftone cell. A threshold array can contain one or more halftone cells. The threshold array is replicated and &#34;tiled&#34; (i.e., filled in a non-overlapping manner) over the entire device space. Each pixel in the device space is then mapped to a particular element of the threshold array. 
     Within any given halftone cell in an image, a certain percentage of the pixels may be &#34;on&#34; and the remaining pixels may be &#34;off.&#34; The percentage of pixels that are &#34;on&#34; correspond to the tonal value that the cell represents. For example, if sixty percent of the pixels in a given cell are &#34;on&#34;, sixty percent of the pixels in that cell are black and the rest are white. &#34;Black&#34; means solid, or fully saturated. This cell emulates a sixty percent gray tint. 
     In order to determine whether a pixel is &#34;on&#34; or &#34;off&#34;, an imaging device checks a pixel&#39;s address, determines the tonal value of the image at that address, and compares the tonal value with the pixel&#39;s threshold value in the threshold array. If the tonal value exceeds the threshold value, the pixel is turned &#34;on&#34; when the image is created on the output device. 
     For each pixel in an image, there is a trade-off between the size of a halftone cell and tonal resolution: the smaller the halftone cell, the smaller the number of pixels it contains, and the fewer tonal values it can represent. Thus, for the best tonal resolution (i.e., the most gray levels), the halftone cell should be large so as to include as many pixels as possible. On the other hand, the bigger the halftone cell, the more visible it becomes to the human eye, distorting the picture at times. This trade-off between number of gray levels and halftone cell size is one of the classic problems of halftoning. 
     Some color devices, such as color printers, are multi-level devices and have a limited tonal range. Color printers typically have cyan, magenta, yellow and black as the available ink colors. Cyan, magenta and yellow are transparent inks, while black is opaque. Intermediate tones, or varying shades of color, must be represented by halftones. Halftoning in color devices presents added complexity over that of monochromatic imaging. 
     For example, mechanical misregistration between color planes can cause color shifts. For many types of printers, such as pre-press and inkjet, mechanical misregistration can occur by having the paper feed at an angle, having the paper slide side to side or in the direction of paper movement. This is especially problematic when opaque pixels inadvertently obscure transparent pixels. Mechanical misregistration between color planes can also cause &#34;beat&#34; effects which are known as Moire patterns. Moire patterns are interference patterns that can occur when two or more halftone screens are superimposed. 
     One method used to reduce the effects of mechanical misregistration is to use a halftone screen having a unique frequency and angle for each ink plane. For example, if there are three colors available, one screen may be offset 30 degrees from the underlying screen, and the second screen may be offset 60 degrees from the underlying screen. This solution, however, creates a different type of Moire pattern, one known as rosettes. Rosettes are undesirable because they impart a low resolution effect on the resulting output. For more information on halftoning, Moire effects and rosettes, see PostScript™ Screening: Adobe Accurate Screens™ (1992) by Peter Fink, ISBN 0-672-48544-3. 
     Unlike inkjet and prepress printers, laser printers have only one predominate type of mechanical misregistration, those that occur in the direction of paper movement. Because mechanical misregistration occurs only in the direction of paper movement, the use of line screens allows for controlling the overlap between transparent and opaque inks without using screens placed at different angles from each other. Such line screens place the toner (i.e., ink) in lines that parallel the direction of paper movement. One problem with line screens, however, is that the placement of the lines must be controlled. Also, the lines must be very thin in order to get a sufficient number of gray levels in very light areas. For example, to obtain 256 levels of gray, the thickness of the line must be controllable to at least 1/256 of full line width. Printing very thin lines can be difficult, if not impossible, for laser printers. 
     When color inks are added to the output, the problems of controlling line placement and line thinness only intensifies. This is especially true for light color areas, because hue shifts can occur. Hue shifts occur when one color fades out too quickly, and are undesirable because hue shifts alter, sometimes significantly, the quality of a color picture. 
     Therefore, a need exists for a method for halftoning that reduces image artifacts such as Moire patterns and rosettes. Furthermore, it is desirable that such a method be able to provide the ability to halftone in line screens, cluster dots, or any desired screen pattern. 
     SUMMARY OF THE INVENTION 
     A system and method for halftoning multi-level pixels preferably uses a threshold array divided into two or more classes. The classes are ordered in a visitation order. Each class contains at least one element. A halftone cell comprised of a plurality of pixels corresponds to the threshold array. As the intensity level for the halftone cell increases, the pixels corresponding to the elements in the first class are halftoned by fractional values of pixels until all of the pixels in that class reach saturation. As the intensity of the halftone cell increases, none of the pixels corresponding to the elements in any other class change state. Once the pixels corresponding to the elements in the first class are saturated, the pixels corresponding to the elements in the second class are halftoned by fractional values of pixels. In more general terms, the next class in the class visitation order is not addressed until the pixels corresponding to all of the elements in the previous class are saturated. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, and further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: 
     FIG. 1 is a pictorial representation of a prior art threshold array; 
     FIG. 2 is a pictorial representation of a halftoned cell representing a forty percent black area based upon the threshold array depicted in FIG. 1; 
     FIG. 3 is a pictorial representation of an exemplary threshold array that can be used to implement the method for halftoning according to the present invention; 
     FIG. 4 is a alternative view of FIG. 3 that will be used to describe the method for halftoning according to the present invention; 
     FIGS. 5(a)-5(m) are pictorial representations an exemplary halftone cell that corresponds to the threshold array in FIG. 4, wherein the exemplary halftone cell illustrates a series of halftoning stages according to a method for halftoning according to the present invention; 
     FIGS. 6(a)-6(l) are pictorial representations of an exemplary halftone cell that corresponds to the threshold array in FIG. 4, wherein the exemplary halftone cell illustrates a series of halftoning stages according to a method for halftoning according to the present invention; 
     FIGS. 7(a)-7(l) are pictorial representations of an exemplary halftone cell that corresponds to the threshold array in FIG. 4, wherein the exemplary halftone cell illustrates a series of halftoning stages according to a method for halftoning according to the present invention; 
     FIG. 8 is a flowchart illustrating a preferred method for halftoning according to the present invention; 
     FIG. 9 is a pictorial representation of a collection of halftone cells that may be used according to the present invention; 
     FIG. 10 is a pictorial representation of an exemplary threshold array that can be used to implement the method for halftoning according to the present invention; 
     FIG. 11 is a pictorial representation of an exemplary threshold array that can be used to implement the method for halftoning according to the present invention; 
     FIG. 12 is a high level block diagram of a preferred apparatus that may be used to implement the preferred method for halftoning according to the present invention; and 
     FIG. 13 is a more detailed block diagram of a portion of block 1212 in FIG. 12 for implementing the method for halftoning according to the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     With reference now to the figures and in particular with reference to FIG. 1, a pictorial representation of a prior art threshold array is shown. A halftone cell (not shown) that corresponds to threshold array 100 is a 4×4 cell that contains 16 pixels. Each pixel in the halftone cell is assigned a threshold value. Each threshold value is an element in the threshold array. 
     Threshold array 100 identifies the order in which the pixels will be filled in as the pixel tonal values increase. Typically halftoning begins with element 0, and as the pixel tonal values increase, additional elements are turned &#34;on&#34; in numerical order. This order of turning pixels &#34;on&#34; is typically called the visitation order. 
     For example, an area that is 0.4 gray would be halftoned into the pattern illustrated in FIG. 2 on a bi-level device. In the context of FIG. 1, elements in threshold array 100 that have a value of 5 or less are turned &#34;on&#34;, and the elements that are greater that 5 are turned &#34;off.&#34; The number of elements turned &#34;on&#34; is derived from 16×0.4=6.4, so 6 elements are turned &#34;on.&#34; Since this is a bi-level device, the fraction is ignored. 
     The elements in the threshold array 100 are arranged in a particular manner to create a pattern or screen. The screen for threshold array 100 is one that is known in the art as a cluster dot. A cluster dot is one in which the pixels in the halftone cell are clustered together in order to form halftone dots. Characteristics of cluster dots include halftone screen frequency, screen angle, halftone dot shape and the growth of the halftone dot size with increasing tonal value. All of these parameters influence the appearance of a printed halftone. 
     FIG. 3 is a pictorial representation of an exemplary threshold array that can be used to implement the method for halftoning according to the present invention. In the preferred embodiment, the pixels in a halftone cell that corresponds to threshold array 300 are multi-level, in that each one is capable of assuming multiple tonal values. 
     Each element in threshold array 300 has a number with a sub-number contained therein. As discussed with reference to FIG. 1, each number is a threshold value. The sub-number refers to a class, and hereafter will be referred to as a class number. Simply for the purposes of an example, threshold array 300 has three classes, class 0 through class 2. Each class has the same number of elements to further simplify the example. The present invention can be implemented with any number of elements in a class. Furthermore, the number of elements in one class does not have to equal the number of elements in another class. 
     The class number defines the visitation order for each class in threshold array 300. With prior art threshold arrays, such as the one depicted in FIG. 1, there exists only one class for the entire threshold array. In other words, all of the elements in threshold array 100 are in the same class. Thus, all of the pixels in a halftone cell that corresponds to threshold array 100 are visited sequentially as the pixel tonal values (i.e., intensity of the cell) increase. 
     FIG. 4 illustrates the three classes of FIG. 3 separated from one another. First class 402 is the lowest class. This means that first class 402 is first in the class visitation order. When the pixels corresponding to threshold array 300 are halftoned, all of the pixels associated with the elements in first class 402 must grow to full saturation (ie., black) before any pixel corresponding to the elements in the other classes are allowed to grow. Once the pixels corresponding to first class 402 are at full saturation, the pixels corresponding to second class 404 can assume non-zero pixel tonal values. Finishing up this example, once the pixels corresponding to second class 404 are at full saturation, the pixels corresponding to third class 406 can assume non-zero tonal values. 
     The threshold values in first class 402 define the visitation order for that class. Thus, element 0 0  is turned &#34;on&#34; first, possibly by a fractional value, followed by 1 0 , then 2 0 , and finally, 3 0 . Once the pixels associated with these four elements have cycled through all possible pixel tonal values and have reached full saturation, the pixels corresponding to second class 404 can begin to assume non-zero pixel tonal values. As with first class 402, element 0 1  is turned &#34;on&#34; first, followed by 1 1 , then 2 1 , and finally, 3 1 . Once the pixels corresponding to these four elements have reached full saturation, the pixels corresponding to third class 406 can begin to assume non-zero pixel tonal values. Again, element 0 2  is turned &#34;on&#34; first, followed by 1 2 , then 2 2 , and finally, 3 2 . Note that the threshold values in each class are arranged in a pattern known in the art as a line screen. 
     FIGS. 5(a)-5(m) are pictorial representations of an exemplary halftone cell that corresponds to threshold array 300 in FIG. 4. FIGS. 5(a)-5(m) illustrate a series of halftoning stages according to the present invention. Specifically, FIG. 5 depicts first class 402 in threshold array 300 being halftoned as the pixel tonal values increase. Simply for the purposes of an example, each pixel in halftone cell 500 is capable of assuming four different intensities. These four intensities are white, light gray, dark gray, and black. Those skilled in the art will appreciate, however, that the present invention is not limited to pixels capable of only four intensities. The present invention can be implemented with pixels capable of representing any number of intensities. 
     Initially the pixels that correspond to threshold array 500 are all white, as shown in FIG. 5(a). FIG. 5(b) illustrates the first pixel assuming a light gray color. This pixel corresponds to element 0 0  in first class 402. As the intensity of halftone cell 500 increases, the pixel corresponding to element 1 0  in first class 402 assumes a light gray color. This is shown in FIG. 5(c). As the intensity of halftone cell 500 continues to increase, the pixel corresponding to element 2 0  in first class 402 assumes a light gray color (see FIG. 5(d)). Finally, as the pixel tonal value increases, the pixel corresponding to element 3 0  in first class 402 assumes a light gray color. 
     Now all of the pixels corresponding to first class 402 are a light gray color. Note that as the intensity of halftone cell 500 increased, none of the pixels corresponding to the elements in second class 404 and 406 changed color. Continuing on with this example, the intensity level of halftone cell 500 continues to increase, and the pixel corresponding to element 0 0  in first class 402 assumes a dark gray color. This is shown in FIG. 5(f). As the intensity of halftone cell 500 continues to increase, the pixels corresponding to elements 1 0  through 3 0  assume a dark gray color in visitation order. These stages are illustrated in FIG. 5(g) through FIG. 5(i). 
     Now all of the pixels corresponding to first class 402 are a dark gray color. Again, as the intensity of halftone cell 500 increased, none of the pixels in second class 404 or third class 406 changed color. Instead, the pixels corresponding to first class 402 became more saturated. 
     As the intensity level of halftone cell 500 continues to increase, element 0 0  in first class 402 becomes fully saturated, which in this example is the color black. This is shown in FIG. 5(j). And as the intensity of halftone cell 500 continues to increase, the pixels corresponding to elements 1 0  through 3 0  become black in visitation order. These stages are illustrated in FIG. 5(k) through FIG. 5(m). Now all of the pixels corresponding to first class 402 are fully saturated, and the halftoning method moves onto the next class. 
     FIGS. 6(a)-6(l) are pictorial representations of an exemplary halftone cell that corresponds to threshold array 300. FIGS. 6(a)-6(l) illustrate a series of halftoning stages according to the present invention. Specifically, FIG. 6 depicts all of the pixels that correspond to first class 402 at full saturation, and the pixels corresponding to second class 404 in threshold array 300 in various halftoned stages. FIG. 6(a) illustrates the pixel corresponding to element 0 1  in second class 404 assuming a light gray color. As the intensity of halftone cell 500 increases, the pixel corresponding to element 1 1  in second class 404 assumes a light gray color. This is shown in FIG. 6(b). As the intensity of halftone cell 500 continues to increase, the pixel corresponding to element 2 1  in first class 402 assumes a light gray color, followed by the pixel corresponding to element 3 1  (see FIGS. 6(c)-6(d)). Now all of the pixels corresponding to second class 404 are a light gray color. Note that as the intensity of halftone cell 500 increased, none of the pixels corresponding to the elements in third class 406 changed color. 
     Continuing on with this example, the intensity level of halftone cell 500 continues to increase, and the pixel corresponding to element 0 1  in second class 404 assumes a dark gray color. This is shown in FIG. 6(e). As the intensity of halftone cell 500 continues to increase, the pixels corresponding to elements 1 1  through 3 1  assume a dark gray color in proper visitation order. 
     These stages are illustrated in FIG. 6(f) through 6(h). 
     Now all of the pixels that correspond to second class 404 are a dark gray color. Again, as the intensity of halftone cell 500 increased, none of the pixels in third class 406 changed color. Instead, the pixels corresponding to second class 404 became more saturated. 
     Eventually, with the intensity level of halftone cell 500 increasing, the pixel corresponding to element 0 1  in second class 404 becomes black. This is shown in FIG. 6(i). And, in visitation order, the pixels corresponding to elements 1 1  through 3 1  become black. These stages are illustrated in FIGS. 6(j) through 6(l). Now all of the pixels that correspond to second class 404 are fully saturated, and the halftoning method moves onto the next class in the class visitation order. 
     FIGS. 7(a)-7(l) are pictorial representations of an exemplary halftone cell that corresponds to threshold array 300. FIGS. 7(a)-7(l) illustrate a series of halftoning stages according to the present invention. Specifically, FIG. 7 depicts all of the pixels corresponding to first and second class 402, 404 at full saturation, and the pixels corresponding to third class 406 in threshold array 300 in various halftoned stages. 
     As the intensity of halftone cell 500 increases, FIG. 7(a) illustrates the pixel corresponding to element 0 2  in third class 406 assuming a light gray color. Next, the pixel corresponding to element 1 2  assumes a light gray color. This is shown in FIG. 7(b). As the intensity of halftone cell 500 continues to increase, the pixels corresponding to elements 2 2  and 3 2  in third class 406 assume a light gray color (see FIGS. 7(c)-7(d)). Now all of the pixels corresponding to third class 406 are a light gray color. 
     As the intensity of halftone cell 500 increases, the pixel corresponding to element 0 2  in third class 406 assumes a dark gray color. This is shown in FIG. 7(e). As the intensity of halftone cell 500 continues to increase, the pixels corresponding to elements 1 2  through 3 2  assume a dark gray color in their visitation order. These stages are illustrated in FIG. 7(f) through 7(h). As the intensity level of halftone cell 500 continues to increase, the pixels corresponding to elements 0 2  through 3 2  in third class 406 become black. These stages are shown in FIGS. 7(i)-7(l). Now all of the pixels in halftone cell 500 are saturated. 
     Referring to FIG. 8, a flowchart illustrates a preferred method for halftoning according to the present invention. The method depicted in FIG. 8 must be performed for each pixel in the image. The method begins at block 800, and thereafter passes to block 802. Block 802 depicts the step of determining threshold array values, q 0 , q 1 , . . . q n , to apply to each of the classes (n classes) in a threshold array. The value q 0  is a threshold value where all pixels in a halftone cell that correspond to the first class within the threshold array have reached full saturation and pixels in the next class have not yet started to grow. The value q 1  is a threshold value where all of the pixels in the second class are turned &#34;on&#34; while the pixels in the next class are turned &#34;off&#34;, and so on. q n  is the intensity value where all of the pixels in the halftone cell are saturated. In the preferred embodiment, q 0  &lt;q 1  &lt; . . . &lt;q n . 
     Note that the threshold values can be expressly defined or defined as an equation. One example of an equation is p=k (q-1), where p is the number of gray values in a class, k is the number of pixels in a particular class, and q is the number of gray levels per pixel in a particular class. It is also possible to expressly define the values in an equation. This can be done when additional control of the tonal reproduction curve is desired. The threshold values can be pre-computed or computed while halftoning is being performed. 
     Next, for a given intensity value (v) for the halftone cell, a class (c i ) is found such that q i  ≦v&lt;q i+1 . This step is illustrated in block 804. One technique that can be used to implement this is to step through each value of i, starting at zero, until the condition is met. Once the class is determined, the threshold array element (e) corresponding to the pixel position of the pixel being halftoned is determined. 
     A determination is then made as to whether or not the threshold array element (e) is located in a class (class e ) having a class visitation number below class i. This step is shown in block 806. If the element is in a class having a class visitation number below class i, according to the present invention that pixel would have already reached saturation. Therefore, the pixel is saturated (i.e., set to black), as depicted in block 808. The method then passes to block 810, and the method ends. 
     If the element is not in a class with a lower visitation number, a determination is made as to whether or not the element is located in a class that is visited after class i in terms of visitation order. In other words, threshold array element (e) is located in a class having a class visitation number above class i. This step is shown in block 812. If the element is in a class having a class visitation number above class i, the pixel is set to white, as illustrated in block 814. The method then passes to block 810, and the method ends. 
     If the element is not in a class having a class visitation number above or below class i, that means the element is in class i. The gray value for that pixel is then determined, and the color of the pixel is then set to that gray level. These two steps are shown in blocks 816 and 818, respectively. The method then passes to block 810, where the method ends. 
     FIG. 9 is a pictorial representation of a collection of halftone cells that may be used according to the present invention. FIG. 9 consists of four 4×4 arrays similar to the one depicted in FIG. 3. Another implementation of the present invention can employ what is known in the art as a supercell. A supercell is a collection of halftone cells with a certain ordering to the pixels. Thus, the elements in a class can be adjacent to one another or distributed throughout the supercell in a particular pattern. 
     Referring to FIG. 10, a pictorial representation illustrates an exemplary threshold array that may be used to implement the method for halftoning according to the present invention is shown. Threshold array 1000 contains four classes having four elements each. The classes and elements are organized in a cluster dot pattern. Thus, the present invention can be implemented with any screen pattern for a halftone cell or supercell. 
     FIG. 11 is a pictorial representation of an exemplary threshold array that can be used to implement the method for halftoning according to the present invention. Threshold array 1100 has eight classes of varying sizes. Classes 0 and 1 each consist of two elements. Classes 2 and 3 have four elements per class. Finally, classes 4 through 7 each have one element in a class. Threshold array 1100 illustrates how a threshold array can contain multiple classes of varying size. 
     Another noteworthy aspect to threshold array 1100 is that the values of the elements in threshold array 1100 are of differing values. Classes that have the same number of elements do not necessarily have to grow in the same stages. Nor do the elements in a particular class have to have threshold array values that are in sequential order. For example, the elements in class 2 have threshold array values of 0, 1, 2, and 3, while class 3 elements have threshold array values of 0, 2, 4, and 6. Thus, the present invention allows a threshold array or supercell to be configured in any desired manner. 
     Referring to FIG. 12, a high level block diagram depicts a preferred apparatus that may be used to implement the preferred method for halftoning according to the present invention. FIG. 12 illustrates a printing system 1200 which incorporates features of the present invention. Printing system 1200 includes a color laser engine 1202, such as any commercially available color laser marking engine. For purposes of the current discussion, the term &#34;color&#34; includes the use of multiple colors (such as cyan, magenta, and yellow), as well as gray scale printing using varying shades of gray. 
     Printing system 1200 includes a processor, represented in FIG. 12 as printing system controller 1204 having associated memory 1206. Printing system controller 1204 can be a reduced instruction set computer (RISC) such as the 33 Megahertz 29030 processor available from Advanced Micro Devices. Printing system controller 1204 performs such functions as scaling, partitioning, resampling, and filtering in the preferred embodiment. 
     Printing system 1200 also includes a compression/decompression coprocessor (CDC) 1208. CDC coprocessor 1208 compresses image data in order to substantially reduce the memory requirements needed to store image data. However, if cost is not a concern, CDC coprocessor 1208 can be left out completely in a color printing system. CDC coprocessor 1208 can, for example, be formed as a monolithic application specific integrated circuit (ASIC). Those skilled in the art, however, will appreciate that the processing implemented by CDC coprocessor 1208 can be performed by the same processor for printing system controller 1204. 
     Once image data is compressed and stored in memory by CDC coprocessor 1208, it can subsequently be transferred to printer engine 1202 via system bus 1210 and video interface device (VID) 1212. VID 1212 provides high quality reproduction of the original image from its compressed format. VID 1212 may, for example, be formed as a separate ASIC having a decompression processor to support decompression and halftoning. Alternatively, a single processor can be used to implement the functions of printing system controller 1204, CDC coprocessor 1208, and VID 1212. 
     Printing system 1200 further includes an input/output (I/O) communications device 1214. I/O communications device 1214 may include, for example, built-in networking support as well as parallel/serial I/O ports. I/O communications device 1214 can also include additional memory as well as memory expansion ports. 
     FIG. 13 is a more detailed block diagram of a portion of block 1212 in FIG. 11 that may be used to implement the method for halftoning according to the present invention. In particular, FIG. 13 depicts a portion of a decompression apparatus 1300 according to the present invention. For clarity, only the blocks relevant to halftoning will be described. 
     The threshold arrays of the preferred embodiment are stored in threshold memory 1302. 4-bits output from a separate modulo-m row counter and 4-bits output from a separate modulo-n counter are used to address threshold memory 1302. The values of m and n are preferably selected independently as a number between 1 and 16, m and n being determined by the desired height of the threshold array and desired width of the threshold array, respectively. An 8-bit output from threshold memory 1302 is provided for each pixel in the threshold array to threshold logic 1304, along with an 8-bit output from gray component removal block 1306. Gray component removal block 1306 performs gray component removal, a process known in the art. 
     Threshold logic block 1304 halftones the 8-bit input pixel so that the resulting halftoned value is a 4-bit multi-level output value per pixel. The 4-bit gray output value is supplied as an input to video modulation look-up table 1308. Video modulation look-up table 1308 is used to convert the 4-bit gray output value to a data format for use by the color laser marking engine. Depending on the color laser marking engine, the data format can be a serial video for direct sub-pixel modulation of the laser diode, or 8-bit parallel video to a continuous tone interface. 
     Video modulation look-up table 1308 preferably has thirty-two entries. The first sixteen of which are used for isolated pixels that do not have a black (i.e. fully saturated) pixel to the left or right. The second sixteen entries are used for pixels that have a black pixel adjacent to it (as identified by the most significant bit, labeled address line 1310). This scheme is used because most print engines have different transfer characteristics for a single gray pixel and for a gray pixel connected to a black pixel. Because exemplary embodiments of the present invention include less than a full scan line buffer, this technique is applied only in the horizontal direction. 
     One of the advantages to the present invention is that it is sufficiently general in nature that it can be used with any type of halftoning. For example, if there is one class only, and the pixels are bi-level, the present invention describes traditional bi-level halftoning that is known in the art. 
     Alternatively, if there is one class only and the pixels are multi-level, the present invention describes multi-level halftoning disclosed in our co-pending application, Ser. No. 08/397,601, filed on Mar. 2, 1995 and entitled &#34;Method and Apparatus for Color Halftoning&#34;, and our second co-pending application, Ser. No. 08/396,828, filed on Mar. 2, 1995 and entitled &#34;Method and Apparatus for Color Halftoning&#34;. 
     Another alternative is to perform halftoning using the present invention with multiple classes and bi-level pixels. This type of halftoning is known in the art as &#34;supercell&#34; screening or dithering of halftone cells. One example of this type of halftoning can be found in a LaserWriter 16/600 PS printer by Apple Computer, Inc. of Cupertino, Calif. 
     The present invention discloses a fourth alternative, which is to perform halftoning with multiple classes and multi-level pixels. 
     Another advantage to the present invention is that it can be used to create any desired screen pattern. By determining the number of classes, their visitation order, and the threshold values for each class, any screen pattern can be created. 
     The presently disclosed embodiments are intended to be illustrative in all respects, rather than restrictive, of the present invention. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.