The present disclosure relates generally to methods of digital halftoning, and more specifically to methods of sequential color error diffusion halftoning.
Halftoning is well known in the art. Image capture devices, such as cameras and scanners, typically record images using a range of tonal values for each pixel, such as, for example, 256 possible levels for each primary color. Since many printing processes utilize fixed-size dots of colorants to form images, halftoning is used to spatially distribute the dots in a manner which the eye interprets as having the appropriate overall tone.
In inkjet printing systems, an inkjet printhead is typically mounted on a carriage that is moved back and forth across a print media, such as paper. As the printhead is moved across the print media, a control system activates the printhead to deposit or eject fixed-size ink droplets onto the print media to form text and images. Ink is provided to the printhead from ink supplies that are either carried by the carriage or mounted to a fixed receiving station. Typically, at least four separate ink colors (such as black, cyan, magenta, and yellow) are required to faithfully reproduce color images.
In electrophotographic or “laser” printing systems, marking material commonly called “toner” is provided by an electrophotographic engine frequently referred to as a toner cartridge. The toner cartridge often includes an intermediate imaging device such as a drum, and a reservoir of imaging material such as powdered toner. The drum is charged using an energy source such as a scanning laser. The process is substantially binary, in that a small region forming a dot is either “on” or “off”. The imaging material is attracted to the charged drum and is then transferred to print media.
One common halftoning technique is known as error diffusion. In error diffusion, for each color component of an image pixel, the decision to output a corresponding output pixel by the image-forming device is based on the intensity level of the color component of the image pixel, as well as the output pixels output for the previous image pixels. Error diffusion tries to distribute output pixels so as to reduce or eliminate pixel overlap, reduce large areas of empty space between output pixels, and otherwise create eye-pleasing patterns. For a more complete discussion of error diffusion halftoning, see Robert Ulichney, Digital Halftoning, MIT Press, Cambridge, Mass., 1987.
Halftoning is typically computationally intensive, in that each pixel of the image must be sequentially processed; further, many halftoning techniques require multiple iterations. Many techniques function well in some circumstances but produce visible artifacts in other situations, such as when two or more color components of comparable strength form part of an image. Other factors also affect perceived image quality; for example, for best image quality, it is typically desirable that the printing of multiple colorants on the same dot be minimized. Managing the distribution of overall dots and individual color dots homogeneously while maintaining minimum dot-on-dot printing has proven to be a very hard problem to solve, especially with efficient, non-iterative halftoning methods such as error diffusion. There is thus a continuing need for halftoning techniques that are computationally efficient yet produce images with a minimum of perceptible artifacts.
Exemplary embodiments of the invention include methods of halftoning images having multiple color planes using error diffusion techniques, and incorporating both error information from the previously-processed color planes of a pixel, and error information from a previously process pixel of other color planes.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated.
a) and 4(b) illustrate scanning rasters and serpentine rasters, respectively;
In the following specification, for purposes of explanation, specific details are set forth in order to provide an understanding of the present invention. It will be apparent to one skilled in the art, however, that the present invention may be practiced without these specific details. Reference in the specification to “one embodiment” or “an exemplary embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearance of the phrase “in one embodiment” in various places in the specification do not necessarily refer to the same embodiment.
The communications mechanism 102 receives image data that has a number of image pixels, from a communicatively coupled source device, such as a computing device like a computer, a digital camera, a personal digital assistant (PDA) device, or another type of computing device. The communications mechanism 102 may include wired and/or wireless communications adapters, such as serial ports, Universal Serial Bus (USB) ports, parallel ports, Ethernet adapters, 802.11b wireless network adapters, Bluetooth wireless adapters, and so on.
The output pixel mechanism 104 performs the methods of the invention as described below. In general terms, the output pixel mechanism 104 determines whether, for each color component of each image pixel, an output pixel should be output. The output pixel mechanism 104 may include computer-executable instructions organized as computer programs, subroutines, modules, objects, and so on.
The output pixel mechanism 104 typically determines, for each output pixel, whether to output a pixel of a colorant. For each image pixel of image data, there is an intensity value for each color component of the color space of the image data. For example, a given image pixel may have intensity values between 0 and 255 for each of the cyan, magenta, yellow, and black color components. An output pixel may be output for each color component of the image pixel. An output pixel is binary, having on and off states. That an output pixel has been output means that the on state of the output pixel has been output, such as corresponding to the ejection of ink or other fluid by the image-forming device, or such as the exposure of a region on a photoconductor corresponding to the output pixel by a laser in the image-forming device. That an output pixel has not been output means that the output pixel has the off state, such as corresponding to no ink or other fluid being ejected by the image-forming device, or no exposure of the region on the photoconductor corresponding to the output pixel.
The output pixel mechanism 104 outputs the output pixels to the image forming mechanism 106, which forms the pixels into a completed image. In the case where the image-forming device 100 is an inkjet printer, for example, the image forming mechanism 106 may include an inkjet-printing mechanism. Similarly, in the case where the image-forming device 100 is a laser printer, the image forming mechanism 506 may include a laser-printing mechanism.
As shown in
The quantized quantity, zero or one, is subtracted from the input tone value at summing junction 214 to form an error term. For example, of the input tone value for a given pixel is one fourth, or 64/256, and the threshold value is 50%, or 128/256, then the quantized value will be zero and the error term will be 64/256−0= 64/256. Fifty percent is a commonly used threshold value for error diffusion halftoning. In the example, since the pixel of interest has a tone value of 64 but no dot was fired (the quantized value is zero), there is a positive error to be “diffused” among surrounding pixels. The tone values of selected surrounding pixels are adjusted (increased in this example) such that the average tone of the output image will be faithful to the input image tone values.
The manner in which the error term is diffused is often defined by an error filter. One commonly-used error filter is the Floyd and Steinberg filter illustrated in
When halftoning a complete image, error diffusion algorithms typically proceed by computing quantized values for all pixels in a row of the image, and then advance to the next row. In some embodiments, the algorithm may return to the original starting side of the image at the start of each row, as depicted in
While the above-described exemplary error-diffusion technique works well when halftoning a grayscale image, the images produced by modern printing equipment generally include color images, which are typically composed of multiple color “planes” in addition to a black plane, such as, for example, separate color planes for cyan, magenta, and yellow. “Photo quality” printing may utilize additional ink colors and therefore additional planes, such as light cyan and light magenta, or multiple shades of gray. The application of conventional error diffusion halftoning to images with multiple image planes can be problematic, in that undesirable artifacts must be avoided not only in the image as a whole but in the planes individually. Two previous algorithms that apply error diffusion halftoning to multiple color planes with reduced artifacts are discussed in U.S. patent application Ser. No. 10/304,319, “SUBSTANTIAL PRECLUSION OF OUTPUT OF PIXELS FOR OTHER COLOR COMPONENTS UPON OUTPUT OF PIXEL FOR IMAGE PIXEL COLOR COMPONENT”, and U.S. patent application Ser. No. 10/304,492, “SPACING OUT OUTPUT OF PIXELS FOR OTHER COLOR COMPONENTS UPON OUTPUT OF PIXEL FOR COLOR COMPONENT OF AN IMAGE”, both assigned to the assignee of the present invention.
Embodiments of the invention address several issues that arise when error diffusion halftoning is applied to multiple color planes. Ideally, in the halftoned image, the dots for each individual color should be arranged as uniformly as possible. Also, the overall composite texture that consists of all the colorant dots should be as uniform as possible. Dot-on-dot printing should be minimized as much as possible, and white space not covered by dots should be minimized to ensure a smooth and grainfree textures, as well as a larger color gamut. Despite the advances of color error diffusion research, the existing algorithms typically do not completely satisfy these criteria.
where qj is the quantization error and μj is a weight at jth plane, respectively. Note that μj is a function of input tone ƒj. In general, it is desirable to have a lower μj to lessen the constraints for a darker tone. Embodiments of the invention also “feed-back” information from the lighter planes to the darker planes to penalize the darker dot being fired on the next to the lighter dots. The modified input value is used as the feed-back parameter:
Here, μ′j is another weight, which controls the strength of modulation in the feed-back path. Note that μ′j is a function of the modified input tone {tilde over (ƒ)}j. The modified input tone contains the information if the given jth plane has been recently fired as it incorporates the propagated quantization errors from previous pixels. Those feed-forward and feed-back paths together provide a way of exchanging information among planes so that the algorithm can render overall dot pattern and individual dot pattern both uniformly.
For color planes other than the “lowest” (typically, yellow) the error contributions include feed-back components from the lower planes, each weighted by a weighting factor, μ′j, for the originating plane. The feedback allows lower planes to influence the “firing” of the higher planes, thus permitting better spacing and placement of the dots of the lower planes. The weighting factors μj and μ′j are selected to balance the goals of uniform overall dot placement and dot placement within each color.
As in
The error value is then adjusted 704 based upon the error values from the previously-processed, or “higher”, color planes for the pixel. For example, the cyan plane may be adjusted by only the black plane; the magenta plane by the black and cyan planes; and so forth. In the case of the “highest” color plane, such as black, no adjustment is performed (indicated by the dashed line outlining block 704).
According to embodiments of the invention, the error value is then also adjusted 706 based upon the error values of the “lower” color planes from the preceding pixel. For example, the error values for cyan, magenta, and yellow from the most recent previously processed pixel may be weighted and summed and applied to the black plane. For the lowest or least dark color plane (such as, for example, yellow), since no lower planes exist, no adjustment based on lower planes is made (indicated in
Embodiments of the method which employ a “serpentine” raster to process the image may utilize the error information from the last pixel of the previous row for the first pixel of a new row; other embodiments may utilize conventional raster-scan processing. The method may also include substantially precluding the output of a pixel in the color plane if a pixel were output in a higher plane; or may block the output of a pixel in the color plane if the input tone value for the color is zero; or may include “overflow” processing to force the output of a dot or drop at the present location if the pixel would otherwise be “lost” or omitted from the image; all of which are known in the art. The method will typically also include the appropriate initializing of information (such as initially resetting the accumulated errors for all the color components).
Embodiments of the invention then determine if the combined tone value plus error for the pixel is above a threshold 708 and, if yes, output a pixel 710 for the color plane being processed. As in conventional error diffusion halftoning, the remaining error is distributed 712 according to a particular error filter, such as, for example, Floyd and Steinberg. Also as in conventional multicolor halftoning, the method proceeds sequentially through the color planes for each pixel; if there are more planes to processed for the given pixel 714 the method advances to the next color plane 716; if there are no more color planes to be processed for the pixel, the method then determines if there are further image pixels to be processed 718, and, if yes, advances to the next image pixel 720. When all image pixels of the image have been halftoned, the method ends 722.
Other techniques may also be combined with the halftoning techniques of the present invention to further improve the perceptible quality of the output image. Many of these techniques involve injecting further randomness into the output pattern. For example, rather than utilizing a fixed threshold value in determining whether to output a pixel, a somewhat “fuzzy” or “noisy” threshold may be utilized. The threshold may comprise a threshold “range” rather than a single threshold value; if the total pixel error value falls below the range, a pixel isn't “fired”; if the value falls above the range, the pixel is fired; and if the value falls within the range, a randomnizing mechanism, such as look-up table, may be used to determine whether a pixel is fired.
While the exemplary embodiment described immediately above assumes that the methods of the invention are applied to all color planes of the image pixel, improvement in the output image may be achieved by applying the method to only a subset of the color planes. For example, since cyan and magenta have substantially similar “strengths” and are the component colors of blue (which often forms large areas of substantially uniform color as sky in photographs, where artifacts are particularly noticeable) the “feed-forward” and “feed-back” of information may be limited to only those two colors, thus speeding up the processing of the image.
Embodiments of the invention have been described thus far are particularly related to binary halftoning, in which an output pixel for a given color component of an image pixel is either on or off. That is, the output pixel may have one of two values. However, as can be appreciated by those of ordinary skill within the art, other embodiments of the invention can be utilized in conjunction with multi-level halftoning, in which an output pixel for a given color component of an image pixel may have one of a number of different values. For example, within an inkjet printer, a given output pixel may correspond to zero, one, or two drops of ink, such that there are three different values that the output pixel can have. Inkjet printers may also employ different drop sizes to achieve a wider range of tones, such as using a smaller drop size to print lighter tones.
The methods of the invention can be implemented by computer-executable instructions, such as those of one or more computer programs, and stored on a computer-readable medium. The computer-readable medium may be volatile or non-volatile memory, a magnetic, optical, and/or solid state memory, and so on.
It is noted that, although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the disclosed embodiments of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
5142374 | Tajika et al. | Aug 1992 | A |
5822094 | O'Sullivan et al. | Oct 1998 | A |
5930010 | Cheung et al. | Jul 1999 | A |
5949965 | Gondek | Sep 1999 | A |
5973803 | Cheung et al. | Oct 1999 | A |
5974228 | Heitsch | Oct 1999 | A |
6250733 | Yao et al. | Jun 2001 | B1 |
6363172 | Cheung et al. | Mar 2002 | B1 |
6407825 | Couwenhoven et al. | Jun 2002 | B1 |
6498685 | Johnson | Dec 2002 | B1 |
6501564 | Schramm et al. | Dec 2002 | B1 |
6563957 | Li et al. | May 2003 | B1 |
6778299 | Lin et al. | Aug 2004 | B2 |
6801337 | Bhaskar et al. | Oct 2004 | B2 |
20040100646 | Quintana | May 2004 | A1 |
Number | Date | Country | |
---|---|---|---|
20060245001 A1 | Nov 2006 | US |