Continuous-tone printers use multiple bits to represent each pixel to be printed on a page. The multiple bits may represent the intensity or size of the pixel to be printed. An example of a continuous-tone printer is a color laser printer, in which the image to be printed is represented by multiple color planes, each color plane comprised of an array of multiple-bit pixels. In a color laser printer, four color planes are typically used: Cyan, Magenta, Yellow and Black. This type of printer is typically referred to as a CMYK printer. For "true color" representation, each color plane uses eight bits to represent each of its pixels, thereby providing 256 possible values. The pixels of each component color are combined on the print medium to form a dot. Thus, each dot has corresponding values in each of the four planes which determine the color of the dot.
In a color laser printer, the print engine prints each plane to the paper in successive passes. Hence, in a CMYK color laser printer, four passes must be made to produce the final output. Other color printers, such as color ink jet printers or thermal die transfer printers, may print four colors simultaneously.
Graphics produced by relatively low resolution (about 300 dpi) continuous-tone printers are of generally good quality. However, text, line art, and other high contrast edges result in "jaggies" which are easily discernable by the human eye. In traditional single-tone printers (i.e., black and white), edge enhancement techniques are applied to improve the qualities of edges to provide a smoother appearance. An example of edge enhancement is provided in FIGS. 1a and 1b. In FIG. 1a, a non-enhanced edge is shown. In FIG. 1b, the edge is enhanced using a first technique which alters the position of certain pixels to provide a smoother edge. In FIG. 1a, a sloping line is represented by dots 10a-e. In FIG. 1b, dots 10b and 10d have been horizontally displaced to provide a smoother line.
Edge enhancement in single-tone printers is performed by buffering several scan lines and viewing a set of dots surrounding the dot to be printed to identify patterns which present situations where an edge can be corrected for a smoother appearance. While there are several techniques for generating the enhanced edge, the predominate method of identifying edges is based on pattern-matching techniques.
A general block diagram of an edge enhancement circuit is shown in FIG. 2. A bitmap memory 12 stores a "1" or a "0" for each dot to be printed for an entire page. The data is read by serial interface circuit 14, which outputs serialized data. Without edge enhancement circuitry, the serialized data would be output directly to the print engine 16 which would modulate the laser (assuming the printer is a laser printer) responsive to the serialized data. Using edge enhancement, the serial interface directs image data to a buffer which stores the image pattern for a predetermined number of scan lines. Typically, the buffer memory 20 stores the data for five scan lines. The edge enhancement circuit 18 looks at a window of data in the buffer. As shown in FIG. 3, a seven-dot (shown as columns) by five scan line (shown as rows) window 22 in the buffer surrounds the current dot-to-be-printed 24 (note that dots outside the window in the fifth line are not used in the edge enhancement process and need not be stored in the buffer 20). Using combinational logic or other circuitry (such as a look-up table), the edge enhancement circuit 18 decides whether to process the dot normally or, if a recognized pattern is in the window 22, to modify the dot characteristics to be printed to paper by the print engine 16.
In a single-tone printer, edge enhancement can be performed by detecting patterns in the 5.times.7 array (or other array size, as appropriate). Since the laser in a laser printer scans across the drum at a constant speed, pattern detection must be done on-the-fly, in order to properly modulate the laser. Therefore, existing single-tone pattern recognition techniques cannot be performed adequately on a continuous-tone printer which would require an array of 5.times.7.times.8 bits, for each color plane. In this case, the possible combinations which could be handled by edge enhancements would be too great to perform given the time constraints. Further, the hardware resources for edge enhancement would be greatly increased.
Therefore, a need has arisen in the industry for edge enhancement techniques which may be used in conjunction with continuous-tone printers.