This invention pertains to the field of forming digital images and more particularly to a method for processing low-resolution image data to provide anti-aliasing of text and line art elements.
Continuing improvements in the design and performance of printing apparatus, such as for lower cost ink jet printers, present challenges and create a need for image processing methods that take advantage of these advancements. Printer resolution, for example, has improved, along with more standardized methods and utilities for efficient printer interface and image transfer.
Among the improvements for directing image data to the printer are wireless transmission. Conventional wireless data transfer typically uses a wireless networking technology based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, generally termed “WiFi,” or some other wireless local area network (LAN) standard. Adoption of this and similar standards facilitates the convenient connection of a wide variety of devices. Thus, for example, images from a host computer, a broad category that can include cell phone, personal digital assistant (PDA), or numerous other desktop or portable devices, can be directed to a printer without requiring a cable interconnection and without requiring extensive configuration activities by the user.
One acknowledged drawback of wireless communication relates to the speed of data transmission. Even in an ideal environment, wireless transfer of image data from a host computer can take considerably longer than transfer of a comparable data set when using a cable.
In a wireless printing configuration where multiple host computer devices can print to a printer, each host computer device has a host driver that renders the image for transmission to the printer. In many cases, to reduce data transmission times, the rendered image data may be transmitted to the printer at a resolution lower than the final resolution of the printer hardware itself. This results in a number of imaging problems, including the problem of image aliasing effects. Image aliasing is a well-known problem caused by image sampling. Artifacts resulting from image aliasing include irregular edges for text and line graphics, aptly termed “jaggies.”
The schematic block diagram of
The rendering engine 20 provides the rendered digital image 22 at a particular rendered image resolution, in a form that is appropriate for communicating to a digital printer 40. (Image resolution is typically specified by a number of dots per inch (dpi).) For the case where the image resolution of the input digital image 12 is higher than the rendered image resolution of the rendered digital image 22, the rendering engine 20 engine applies a resizing operation which downsizes the image data. The rendering engine 20 may also apply a variety of other image processing operations including sharpening and anti-aliasing.
As noted earlier, downsizing the image data can result in various aliasing artifacts such as “jaggies” on the edges of text and line graphics. For example, the input digital image 12 may include a diagonal line sampled at an input image resolution (e.g., 1200 dpi) as shown in magnified input image data 14. Magnified rendered image data 24 illustrates the case where the rendered image resolution is half of the input image resolution. It can be seen that the rendered diagonal line has an increased degree of jaggedness characterized by jaggies 25.
In some embodiments, the input digital image 12 may be represented using a vector graphic representation rather than an array of input image pixels. In this case, the rendering engine 20 will generally include the step of forming a bitmap representation of the image data at the appropriate rendered image resolution.
Typically, the color channels of the input digital image 12 are the same as the color channels of the rendered digital image 22. However, in some cases the rendering engine 20 may apply a color transformation such that the rendered digital image 22 can have different color channels than the input digital image 22.
A printer driver 30 is used to format the image data for the rendered digital image 22 and control its transmission to the digital printer 40. The data transmission between the host computer 10 and the digital printer 40 can use any means known in the art including transmission over a communication link 35. The communication link 35 can be either wired communication link (e.g., a USB cable) or a wireless communication link (e.g., a WiFi connection). The communication link 35 will have an associated communication bandwidth which determines the rate at which data can be transmitted from the host computer 10 to the digital printer 40. The communications bandwidth for wireless communication links is generally much smaller than for wired communication links, which can impose significant limitations on the printing performance in some cases.
A printer controller 50 in the digital printer 40 accepts the image data and stores the image data in a memory buffer 60 that buffers the data for printing. A processor 70 reads the stored image data, formats it for print output, and directs the image data to a printhead 80. The printhead 80 contains the marking hardware (e.g., ink jet nozzles and support components) used to produce a printed image on a receiver 90.
For lower cost printers, such as desktop and all-in-one (AIO) devices, there can be performance constraints with the arrangement of
The printer-resolution image 190 is then transmitted to the digital printer 40 over the communication link 35, providing received printer-resolution image 195, which can be stored in the memory buffer 60 (
Digital printers 40 typically have printer resolutions of 600 dpi or greater. As a result, the printer-resolution image 190 can be quite large, and can take a significant amount of time to transmit across the communication link 35. This can impose a significant limitation on the throughput of the printing process, particularly when the communication link 35 is a wireless communication link. To improve the throughput, an optional compress image data step 125 can be used to apply a data compression algorithm in order to reduce the amount image data that needs to be transmitted over the communication link 35. A corresponding decompress image data step 130 is then applied in the digital printer 40 to reconstruct the received printer-resolution image 195. Any compression algorithm known in the art can be used for this purpose including the well-known JPEG and JBIG compression algorithms.
The configuration shown in
The logic flow diagram of
The configuration shown in
The logic flow diagram of
The arrangement shown in
A number of conventional approaches have been disclosed for more efficient internal handling and processing techniques for images within a printer that benefit from additional information about image contents. For example, U.S. Pat. No. 7,414,757 to Eldridge et al., entitled “Method for compressing printing hint data sent to a printer,” describes a system that compresses image data and information related to image data for transfer between printer rendering and output subsystems, thereby reducing the amount of memory that the printer needs to store both the image and its auxiliary data and helping to compensate for compression artifacts in the image data itself.
U.S. Pat. No. 7,382,494 to McElvain, entitled “Method for tag plane growth and contraction for improving object edge rendering,” describes use of a supplemental tag plane as part of the image data that is processed within a printer for anti-aliased text and line art pixels, especially suited for reversed text characters.
Anti-aliasing presents a particular problem for printers that receive image data that has been rendered on an external host computer 10. As has been noted, complications result from differences in rendering resolution for different types of host processors, from the need to reduce the amount of data transferred, and from the need to provide an output print that has high quality text, line art, and graphics in a timely manner.
The present invention represents a method for printing low-resolution digital image data received from a host computer on a digital printer, comprising:
receiving, on the digital printer, low-resolution image data transmitted from a host computer, wherein a data processor on the host computer formed the low-resolution image data by resizing full-resolution image data;
receiving, on the digital printer, mask image data transmitted from the host computer, wherein a data processor on the host computer formed the mask image data by automatically analyzing the full-resolution image data or the low-resolution image data, the mask image data providing an indication of image regions in the low resolution image data that would benefit from the application of an anti-aliasing algorithm;
using a data processor in the digital printer to resize the low-resolution image data, forming high-resolution image data at a higher resolution than the low-resolution image data;
using the data processor in the digital printer to apply an anti-aliasing method to portions of the high-resolution image data corresponding to the indicated image regions in the mask image data, thereby providing anti-aliased image data; and
printing the anti-aliased image data on the digital printer.
This invention has the advantage that it provides anti-aliasing information for transmitted image content, allowing the printer to efficiently correct for aliasing artifacts.
This invention has the additional advantage that it allows for transfer of a low amount of image data while still generating a high-quality output image.
It has the further advantage that the printer only needs to apply the anti-aliasing algorithm to a subset of the image data, thereby reducing the amount of processing time needed to determine the anti-aliased image data.
It is to be understood that the attached drawings are for purposes of illustrating the concepts of the invention and may not be to scale.
In the following description, some embodiments of the present invention will be described in terms that would ordinarily be implemented as software programs. Those skilled in the art will readily recognize that the equivalent of such software may also be constructed in hardware. Because image manipulation algorithms and systems are well known, the present description will be directed in particular to algorithms and systems forming part of, or cooperating more directly with, the method in accordance with the present invention. Other aspects of such algorithms and systems, together with hardware and software for producing and otherwise processing the image signals involved therewith, not specifically shown or described herein may be selected from such systems, algorithms, components, and elements known in the art. Given the system as described according to the invention in the following, software not specifically shown, suggested, or described herein that is useful for implementation of the invention is conventional and within the ordinary skill in such arts.
The invention is inclusive of combinations of the embodiments described herein. References to “a particular embodiment” and the like refer to features that are present in at least one embodiment of the invention. Separate references to “an embodiment” or “particular embodiments” or the like do not necessarily refer to the same embodiment or embodiments; however, such embodiments are not mutually exclusive, unless so indicated or as are readily apparent to one of skill in the art. The use of singular or plural in referring to the “method” or “methods” and the like is not limiting. It should be noted that, unless otherwise explicitly noted or required by context, the word “or” is used in this disclosure in a non-exclusive sense.
In the context of the present disclosure, the term “host computer” is used to encompass a broad range of possible devices that can generate image data for printing. Examples of such devices include mainframe computers, computer workstations, personal computers, cameras (including camera devices incorporated into cell phone and other communication devices), document scanning apparatus, personal digital assistants (PDAs), and numerous other handheld or portable devices, as well as desktop and instrumentation devices. Of particular relevance is any type of device having a logic processor and generating text or line art image elements that benefit from anti-aliasing when printed at various output resolutions. The term “digital printer” or simply “printer” has its conventional meaning and can relate to digital printing devices that utilize various marking technologies to print received digital image data, such as inkjet printers, thermal printers, or electrophotographic printers, for example.
The present invention will now be described with reference to the schematic diagram of
As described with respect to
An analysis engine 25 is used to determine mask image data for a mask image 26. The mask image provides an indication of image regions in the rendered digital image 22 that would benefit from the application of an anti-aliasing algorithm. In a preferred embodiment, the analysis engine 25 determines the mask image 26 by automatically analyzing the rendered digital image to identify image pixels that are susceptible to aliasing artifacts such as jaggies. Optionally, the analysis engine 25 can determine the mask image 26 by automatically analyzing the input digital image 12 rather than the rendered digital image 22.
In a preferred embodiment, the mask image 26 contains hint pixels 28 as shown in the magnified mask image data 27, which provide an indication of the particular pixels that should be processed with an anti-aliasing algorithm. As will be described in more detail later, the mask image 26 can be encoded in a variety of different ways in accordance with the present invention. The mask image 26 can be provided at either full-resolution of the input digital image or the low-resolution of the rendered digital image 22. In other configurations, the mask image 26 can be provided at a resolution corresponding to the high resolution image data that will be described later.
Still referring to
A processor 74 is used to process the received image data to prepare in for printing onto receiver 90 using printhead 80. The processor 74 includes an associated program memory that stores encoded instructions for causing the processor 74 to resize the received low-resolution image data to form high-resolution image data. In a preferred embodiment, the high-resolution image data is at the printer resolution, the printer resolution corresponding to the resolution of the image data that the digital printer 40 is adapted to print.
The program memory also stores encoded instructions for causing the processor 74 to apply an anti-aliasing algorithm to portions of the high-resolution image data according to the image regions indicated by the received mask image data. The present invention has the advantage that the processor 74 only needs to apply the anti-aliasing algorithm to a subset of the image data, thereby reducing the amount of processing time needed to determine the anti-aliased image data. This is particularly significant due to the fact that processors 74 selected for use in digital printers 44 generally have a relatively low processing speed in order to reduce the cost of the digital printer 44. The processor 74 will generally also includes encoded instructions for performing a variety of other operations such as color correction, halftoning, print masking and data formatting.
The logic flow diagram of
The downsize image step 105 can use any method for reducing the size of an image known in the art. In one embodiment, a simple “nearest neighbor” interpolation method can be used. For the case of a 2× downsizing, this simply involves discarding alternate rows and columns of the image data. Alternately, other types of interpolation can be used such as bilinear or bicubic. In some embodiments, a convolution operation can be applied to pre-filter the image data before applying the downsizing operation. This is well-known in the art to reduce the magnitude of aliasing artifacts.
An analyze image step 215 then analyzes the image content to determine a mask image 220 that identifies image regions that would benefit from the application of an anti-aliasing algorithm. In a preferred embodiment, the mask image 220 is provided at the same resolution as the low-resolution image 110, but this is not a requirement. It will be obvious to one skilled in the art that the mask image data could be supplied at some other resolution. For example, the mask image 220 can be supplied at a lower resolution to minimize the amount of additional data that needs to be transmitted over the communication link 35 at the expense of only being able to specify the anti-aliasing image regions on a coarser scale.
The mask image 220 can be encoded in a variety of different forms in accordance with the present invention. For example, the mask image 220 can be encoded as a separate image file from the low-resolution image 100. Alternately, it can be encoded as an additional image plane that is stored together with the low-resolution image 110. In one embodiment, the mask image data is encoded using a particular bit in a multi-bit image plane, wherein other information is encoded in other bits of the multi-bit image plane. For example, an indication of the object type (text, graphics, bitmap image or white space) for each image pixel can be stored using a 3-bit code of an 8-bit image plane. The mask image data can then be stored using one of the unused bits in the 8-bit image plane. Alternately, the mask image 220 can be encoded with the image data in some other manner. For example, in one embodiment mask image 220 uses available extra bits in one of the image planes in the low-resolution image 110, where these extra bits are not used for pixel data values. Alternately, the mask image 220 can be provided as a list of pixel addresses specifying the image pixels that are to be processed using an anti-aliasing algorithm.
The low-resolution image 110 and the mask image 220 are transmitted to the digital printer 44 over the communication link 35 (either wired or wireless). In some embodiments, the host computer 10 applies an optional compress image data step 125 to compress both the low-resolution image 110 and mask image 220, thereby reducing the amount of data that needs to be transmitted across the communication link 35. The compress image data step 125 can use any data compression algorithm known in the art to compress the image data, such as the well-known JPEG or JBIG compression algorithms. At digital printer 44, a corresponding decompress image data step 130 is used to decompress the compressed image data to provide a received low-resolution image 135 and a received mask image 240.
The resize image step 145 resizes the received low-resolution image 135 to form high-resolution image 150. The resize image step 145 can use any method for resizing images known in the art. In a preferred embodiment, simple pixel replication is used to increase the image size by an integer multiple (e.g., 2×). In alternate embodiments, other methods for resizing images can be used such as bilinear interpolation or bicubic interpolation.
A localized anti-aliasing step 255 then performs anti-aliasing on high-resolution image 150 to provide an anti-aliased image 260, which is subsequently printed using the print image step 165. The localized anti-aliasing step 255 only performs anti-aliasing to portions of the high-resolution image 150 corresponding to the indicated image regions in the received mask image 240. This has the effect of reducing the processing time required to gain the image quality advantages of applying an anti-aliasing algorithm to the high-resolution image 150.
The print image step 165 generally includes the application of a number of standard image processing operations before the image data is ready to be printed using the printhead 80 (
Advantageously, the apparatus and methods shown and described with reference to
The localized anti-aliasing step 255 can use any anti-aliasing method known in the art to determine the anti-aliased image 260. As is well-known to those skilled in the art, anti-aliasing algorithms are useful for the smoothing of jagged edges (jaggies) for text and line art, as well as other similar image elements that contain sharp edge transitions between the color of the image element and its background. Anti-aliasing methods adjust pixel values for pixels along the edges of the imager element to provide a smoother edge and a more gradual transition between the image element and its background. An example of an anti-aliasing method that can be used in accordance with the present invention is given in U.S. Pat. No. 7,542,174 to Chien, entitled “Image processing method for reducing jaggy effect,” which describes a specific method for specifying replacement edge pixels.
Many examples of anti-aliasing methods involve the use of morphological filters; these methods will be referred to as morphological anti-aliasing methods. (For example, see the article “Morphological Antialiasing,” by A. Reshetov, in Proc. ACM Symposium on High Performance Graphics, pp. 109-116, 2009.) Morphological anti-aliasing methods generally specify one or more reference patterns of pixels that are characteristic of jagged edges. The reference patterns are compared to the image data to identify matching patterns of pixels along the edges of text or line art. An appropriate smoothing method can then be used to smooth the pixel values in the identified regions.
When a match is found between an image pixel pattern 520 and an L-shaped pixel patterns 510, the pixel value for the center pixel MM in the image pixel pattern 520 is recalculated to provide an anti-aliased pattern. In one embodiment, the new value is calculated by determining an average of the lighter and darker pixel values. Since the pixels that are considered light and dark within the respective pixel regions can vary by up to some specified threshold value, the average pixel value of the pixels within the pixel regions can be used. Optionally, a scaling factor can be applied to bias the new code value toward the lighter or darker pixel value. For example, the new code value for the center pixel (MM) can be calculated using the following equation:
CV
new=ave(CVdark)+K(ave(CVlight)−ave(CVdark))
where CVnew is the new code value for the center pixel, CVdark are the code values of the dark image pixels, CVlight are the code values of the light image pixels, K is a constant (generally between 0 and 1) and ave(·) represents an average operation applied to the pixel values for a pixel region. If K=0.5, the new code value is the average of the dark and light code values; if K<0.5, the new code value will be biased toward the dark code values; and if K>0.5, the new code value will be biased toward the light code values.
In one embodiment of the present invention, the analyze image step 215 performs the pattern matching portion of the anti-aliasing method on the host computer 10 to identify pixels that match one of the L-shaped pixel patterns 510. The mask image 220 then stores an indication of which pixels should be processed to calculate new code values. The localized anti-aliasing step 255 applied in the digital printer 44 then performs the step of calculating the new code values for the image regions indicated by the received mask image 240.
In other embodiments, the analyze image step 215 may use some other method to identify image regions that would benefit from the application anti-aliasing method. For example, the analyze image step can use an edge detection operation to identify high contrast edges in the input digital image. The localized anti-aliasing step 255 then performs both the pattern matching and correction portions of the anti-aliasing method for the image regions indicated by the received mask image 240.
In the context of the present disclosure, the term “memory” is used as a general term to encompass non-transitory tangible computer readable storage medium of both non-volatile and volatile types. A computer program product can include one or more types of storage medium, for example; magnetic storage media such as magnetic disk (such as a floppy disk) or magnetic tape; optical storage media such as optical disk, optical tape, or machine readable bar code; solid-state electronic storage devices such as random access memory (RAM), or read-only memory (ROM); or any other physical device or media employed as a program memory to store a computer program having instructions for controlling one or more computers to practice the method according to the present invention. With respect to the exemplary digital printer architecture shown in
The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.