None.
This invention pertains to methods and apparatus for digital document processing and, more specifically, to improvements in the use of rendering hints in a color printing process or system.
The adjustment of color-rendering techniques for different types of graphics is a common feature available in document and imaging software applications and printer drivers. For example, a user may prefer that their business graphics be rendered more vibrantly than the default setting, or bitmaps made more realistic. Also, scanned halftoned images may need to be de-screened when printed, if the printer also uses halftoning. Further, some users may prefer that computer-generated bitmaps be rendered more vibrant than the default setting, while digital photographs be rendered more realistically.
One conventional mechanism permits rendering options to be selected, within any file, on the basis of the class of the graphics. U.S. Pat. No. 5,704,021, assigned to HP, describes a process that permits a user to select a color rendering option on the basis of object type. The primary limitation of this process is that the same rendering process must be applied to all members of the class. For example, if a user selects a particular rendering option for a photo, that same rendering parameters are applied to all photos in the file. Further, there are only three object types. The classes (object types) provided in this HP patent are “Graphics, Photo, and Text”.
Other improvements are known for customizing and correcting the color rendering of a hardcopy document processed by a printer. For example, commonly-assigned U.S. Patent Application Publication No. 2006/0017955 (Jan. 26, 2006) permits custom rendering options to be applied to graphic instances in any type of image processing application.
a is a simplified illustration of one known method of using rendering hints. In
b illustrates one modification of the above PDL approach. In accordance with the methodology of
Referring now to
Referring now to
In one aspect, the invention comprises a method for encoding rendering hints into a bitmap image. For example, a color bitmap driver receives a description of a digital document in which the description defines a plurality of print objects. The bitmap driver converts the print objects into a plurality of internal objects. It further derives a corresponding rendering hint for each internal object for use in rendering the document on an output device. The method then calls for tagging at least one of the internal objects with the corresponding rendering hint; and finally, forming an output bitmap image of the received digital document.
Preferably, the bitmap image includes both the internal objects and the corresponding hints for each internal object that was tagged with a hint, yet the bitmap image is effectively no larger than a corresponding bit map without the embedded rendering hints. Examples of rendering hints may include, without limitation, edge detection, grayscale replacement levels, candidate spot color replacement, etc. The rendering hints may be used by printer firmware to determined amounts and types of under color removal, other ink reduction/replacement strategies, and halftoning algorithms. These determinations can be made on a per-object basis, where the internal objects assembled by the novel bitmap driver are not limited to a one-to-one correlation to the application or PDL level print objects. Various aspects of the invention can be used in application software, printer drivers, and the like. It can be used in a variety of operating environments including without limitation color MFP devices which can produce at least one type of hardcopy output. The output device firmware in a typical implementation recovers the rendering hints from the bitmap image and applies them to improve the quality of the output.
Additional aspects and advantages of this invention will be apparent from the following detailed description of preferred embodiments, which proceeds with reference to the accompanying drawings.
a-1d are simplified diagrams illustrating various prior art systems and methods related to determining and using object type-specific rendering methods.
Referring now to
Referring again to
Examples of common document objects may include one or more of text strings, text strings of a specific size/font, vectors, vectors of certain width/fill, bitmaps, bitmaps of a certain grayscale or color. The present invention can be adapted, however, to follow technical advances in digital content compression/encoding, encryption, formatting and rendering methods, which may involve new or different document objects.
In one embodiment, print object data (labeled as elements 1-N) 204 are input to a color bitmap driver 208, implemented in software that is built or modified to operate as described herein. The driver 208 converts the print objects into a partially rasterized image, such as an RGB bitmap 210, as further described below. Preferably, the bitmap image 210 is device independent. The color bitmap driver is arranged to encode rendering hints relating to the original document objects (i.e., prior to conversion to bitmap). Additionally, the rendering hints may be added into the data without expanding the size or changing the format of the bitmap. Illustrative methods of doing so are described below, although they are not intended to be exhaustive.
Referring now to
In various embodiments, the color bitmap driver may recognize and or assemble one or more of the following print objects:
a. Text characters
b. Words
c. Text lines
d. Text sentences
e. Text paragraphs
f. Enclosing text region.
a. Line segments
b. Text lines
c. Geometric shape
d. Composition of geometric shapes
e. Enclosing vector region.
a. BW bitmap
b. Grayscale bitmap
c. Color bitmap
d. Color complexity
e. Color density.
Examples of rendering hints may include, without limitation, edge detection, percentage of UCR, halftone algorithm, image enhancement, percentage of color reduction, grayscale replacement levels, candidate spot color replacement, lossy v. lossless compression, etc. Details of these and other rendering processes and parameters are known. Any or all of the embedded rendering hints may be used by output device firmware to affect selections or otherwise control rendering. These determinations can be made on a per-object basis.
The internal objects assembled by the novel bitmap driver are not limited to a one-to-one correlation to the application or PDL level print objects. Rather, the conversion may be one-to-one, many-to-one, one-to-many or many-to-many. For example, a word processing application may parse a text sequence into print objects each consisting of a single character in the text sequence. The color bitmap driver may then either preserve the object resolution, or for example assemble sequences of individual characters into words. Thus the rendering hints are related to the original document objects, but may reflect a higher or lower resolution as to some or all objects, depending on the specific implementation. The bitmap driver then derives a corresponding rendering hint for each internal object for use in rendering the document on an output device or file. The method then calls for tagging at least one of the internal objects with the corresponding rendering hint; and finally, forming an output bitmap image.
In the illustration of
Because the lower bit levels contribute the least amount of color (ink) intensity for a given pixel, the least significant 3 bits (the lower bitplanes) can be ignored as relatively low value information. In accordance with the present invention, these bit positions are not ignored, but instead are reused to embed rendering hints into the data. In general, dropping or ignoring the least significant 1 or 2 bitplanes from a bitmap will have no effect on the outcome when rendered into hardcopy. That is, the upper (more significant) bitplanes dominate the determination of color. By reusing the least significant or “low value” bits of the image, the rendering hints are added without expanding the size of the file or changing the format of the bitmap. Preferably, the output bitmap has a format compatible with one of TIFF, JPEG, PNG, GIF, BMP and WMF. However, the teachings of the present disclosure can be adapted to future file formats as the technology evolves.
On the output (e.g., printer) side, firmware will then interpret pixel values on these bit planes as encoded rendering hints and not as color intensity. This is explained further below with regard to
The color bitmap driver 308 may select any number of color planes and bit planes within a color plane. The color bitmap driver may convey the selection of encoded color/bit planes to the firmware either implicitly (i.e., using a predetermined format or protocol), or explicitly, for example by passing the information with the print data. Examples of the latter include, without limitation, using a PJL (printer job language) or XPS Print Ticket commands.
In some embodiments, if the color bitmap and color MFP support a flexible use of the number of color/bit planes used for encoding the hints, the driver may choose the most minimal or otherwise optimal set for the totality of the information (i.e. rendering hints) to be encoded. For example, if the only rendering hint encoded is whether a pixel is part of an edge (say a line), the hint can be encoded as a single bit. In that case, the driver may choose to use only a single bit plane (i.e., least significant) within a single color plane. The driver may also select the color plane to use based on knowledge of the color MFP's color gamut conversion, to have the least impact on the rendering of the image. The selection of specific color/bit planes may be predetermined, configured by an administrator, or selected by the user.
When multiple rendering hints are to be encoded, the driver may select a single bit plane per each rendering hint, in other words bit flags, or employ an enumeration of all sensible combinations. For example, there may be two edge detection rendering hints, one indicating the pixel is part of a text character edge, and the other hint to indicate part of a line edge of a vector object. In this case, since a pixel cannot be both part of a text character and part of a line vector edge, four states (two full bits) are not needed. Instead, only three states are needed, namely off, text and vector.
Referring now to
In one example, the lowest bitplane from each of three color planes is reused, providing three bits available to convey 8 states (rendering actions, parameters, attributes, etc.) associated with each pixel. If the lowest two bitplanes are used (times three colors), the present method can be used to convey up to 64 (2**6) states.
Referring now to
Once the segmentation process 504 determines the document objects within the bitmap image 502, the DSA 500 may then determine and encode rendering hints relating to the document objects, resulting in a set of objects and corresponding hints 510. This data then is input to an 8-n bit Bitmap Renderer process 520. The DSA renderer 520 renders the data into 8-n bit color planes 530 and uses lower n bits 540 for the corresponding hints as described above.
It will be obvious to those having skill in the art that many changes may be made to the details of the above-described embodiments without departing from the underlying principles of the invention. For example, while the preferred embodiments describe a bitmap print job being converted to a hard copy output, other embodiments may cover softcopy outputs, such as an outbound fax, format conversion, or a filing job. The scope of the present invention should therefore, be determined only by the following claims.