Method and system for device-independent color gamut mapping

System and method for device-independent color gamut mapping is disclosed. The system recognizes that a finite set of color gamut mapping intents form the basis for performing color gamut mappings during document rendering and implements a color mapping method for each of the color gamut mapping intents. For each color in a document to be rendered, the system obtains a desired color gamut mapping strategy expressed as a combination of the color gamut mapping intents and performs each of the color mapping methods on each color to obtain basis color maps for each color. The system then constructs a mapped color for each of the colors in the document based on the desired color gamut mapping strategy associated with each color. Furthermore, weight values may be used to further define the combination in the desired color gamut mapping strategy.

FIELD

This invention relates generally to color gamut mapping and, more particularly, to a method and system for mapping color information associated with an input color gamut to an output color gamut according to a specified linear combination of color preservation intentions that are achieved by a rendering device using the device's own color gamut mapping methods.

BACKGROUND

Currently, documents are created with ideal color specifications. These are the colors that are desired, whether or not a presentation device can produce them. If the presentation device cannot produce these colors, then the device must map the colors to other colors that the device can produce. Sometimes documents include information which indicates the document creator's intentions for preserving particular color attributes when the colors in the document must be mapped, but this information is typically very limited. Thus, the document creator often has very little control over the mapping process. As a result, documents are being produced which do not accurately reflect the document creator's true intentions, such as which or how particular attributes of the original colors in the document should be preserved when colors are mapped to a rendering device's color gamut.

SUMMARY

A method and a program storage device readable by a machine and tangibly embodying a program of instructions executable by the machine in accordance with embodiments of the present invention include defining a finite set of document rendering intents as a basis for document rendering, expressing at least one desired document rendering strategy where each strategy includes a first linear combination of the document rendering intents, and associating the at least one desired document rendering strategy with at least one rendering decision associated with a document.

A system in accordance with embodiments of the present invention includes a document rendering intention system that defines a finite set of document rendering intents as a basis for document rendering. A rendering intention expression system expresses at least one desired document rendering strategy where each strategy includes a linear combination of the document rendering intents. An intention matching system then associates the at least one desired document rendering strategy with at least one rendering decision associated with a document.

The present invention recognizes that different objects and/or regions of a document may have different color gamut mapping intentions, and that a color gamut mapping scheme should be chosen to match. The present invention proposes that a desired color gamut mapping scheme can almost always be built as a blend of a small or finite number of color gamut mapping strategies to preserve a document creator's color gamut mapping intent. To accomplish this, the present invention further proposes that the details of the methods or algorithms used to implement these color gamut mapping strategies not be provided to the rendering devices. The embodiments of the present invention provide a number of advantages, including providing document creators with more control over how their documents are rendered in a device-independent manner. The intentions of the document creator with regard to how the original colors in the document should appear when they are color mapped regardless of the particular devices subsequently rendering the document are easily expressed and observed. Moreover, the embodiments enable document creators to more precisely specify their document processing intentions.

DETAILED DESCRIPTION

A system10and method for device-independent color gamut mapping in accordance with embodiments of the present invention are shown inFIGS. 1 and 3. In embodiments of the present invention, system10includes a printer12in communication with a computer14, although the system10can include a lesser or greater number of devices. The printer12maps first colors in a document40to second colors that are within the color gamut of the printer12using a set of color mapping techniques to obtain a set of second colors for each first color, and then combines the second colors for each first color based on a specified linear combination of color gamut mapping intents included in an intent file42, for example, to obtain a blended color result for each first color. The printer12may then print a color blended document44with the blended color results substituted for the first colors from the document40. The system10and method for device-independent color gamut mapping offers a number of advantages, including providing document creators with more control over how documents40are rendered in a device-independent manner. As a result, color mapped documents44can be rendered with colors which more closely resemble their originally intended colors according to the document creator's intent.

Referring toFIGS. 1-2, the printer12and computer14are communicatively coupled to each other by a hard-wire connection over a local area network, although a variety of communication systems and/or methods using appropriate protocols can be used, including a direct connection via serial or parallel bus cables, a wide area network, the Internet, modems and phone lines, wireless communication technology, and combinations thereof.

The printer12is provided for exemplary purposes only and may comprise other devices, such as a copier system or a display device (e.g., CRT, LCD or plasma display devices). In embodiments of the present invention, the printer12includes a printer processor20, a printer memory22and a printer I/O unit24, which are coupled together by one or more bus systems or other communication links, although the printer12can comprise other elements in other arrangements. The printer processor20executes a portion of the instructions for device-independent color gamut mapping in accordance with embodiments of the present invention as described herein and illustrated inFIG. 3, although the processor20may perform other types of functions. The instructions may be expressed as executable programs written in a number of conventional or later developed programming languages that can be understood and executed by the printer processor20.

The instructions are stored in the printer memory22for execution by the printer processor20, although some or all of these instructions and data may be stored elsewhere, such as the computer14. In embodiments of the present invention, a portion of these instructions are executed by the printer processor20for implementing standard color gamut mapping methods to achieve several color gamut mapping strategies (e.g., calorimetric, hue, luminance, and solid/saturation preserving mapping strategies) described further herein. The printer memory22comprises a variety of different types of memory storage devices, such as random access memory (“RAM”) or read only memory (“ROM”) in the printer12, and/or a floppy disk, hard disk, CD-ROM or other computer readable medium which is read from and/or written to by a magnetic, optical, or other reading and/or writing system coupled to the printer processor20. The printer I/O unit24enables the printer12to communicate with the computer14by way of the hard-wire connection mentioned above.

The computer14is provided for exemplary purposes only and may comprise other devices, such as a server, a laptop computer, a personal digital assistant or a cellular telephone. In embodiments of the present invention, the computer14includes a computer processor30, a computer memory32, a computer I/O unit34, and a user input system (not illustrated), which are coupled together by one or more bus systems or other communication links, although the computer14can comprise other elements in other arrangements. The computer processor30executes a portion of the instructions for device-independent color gamut mapping in accordance with embodiments of the present invention as described herein and illustrated inFIG. 3, although the processor30may perform other types of functions. The instructions may be expressed as executable programs written in the same types of programming languages understood by the printer12, although other types of programming languages can used.

The instructions are stored in the computer memory32for execution by the computer processor30, although some or all of these instructions and data may be stored elsewhere, such as the printer memory22. The computer memory32is the same type of memory as the printer memory22, although other types of memory may be used. The computer I/O unit34enables the computer14to communicate with the printer12by way of the hard-wire connection mentioned above. Further, the user input system, such as a keyboard and a mouse, enables an operator to generate and transmit signals or commands to the computer processor30, such as a request for rendering the document40on a particular device, such as the printer12.

The operation of the system10for device-independent color gamut mapping in accordance with embodiments of the present invention will now be described with reference toFIGS. 1,3and4. Referring toFIG. 3and beginning at step100, by way of example only, a user operating computer14generates a document40shown inFIG. 4, although the document40may already be stored in the computer memory32or elsewhere, or another device may send the document40to the computer14. The document40is provided for exemplary purposes only and includes several objects, such as a multi colored image object50, a solid colored border object52, and a solid colored text object54, although the document40may include a greater or lesser number of objects. The operator of the computer14uses the computer's user input system to request and cause the computer to send the document40to the printer12to be printed.

The computer14also provides an intent file42to the printer12. In embodiments of the present invention, the intent file42comprises a text file, for example, which includes one or more sets of specified color gamut mapping intents, although the intents may already be stored in the printer memory22or elsewhere, the intents may be included as comments in a job descriptor language (“JDL”) stream sent to the printer12along with the document40, the intents may be embedded in the document40as a Postscript® field where the document40is in a “tiff” file format, for example, or the weights may be encoded as an attribute value where the document is written in an “XML” format, for example. In embodiments of the present invention, each of the color gamut mapping intents included in the intent file42corresponds to a particular color gamut mapping strategy, such as a calorimetric preserving mapping strategy, a hue preserving mapping strategy, a luminance preserving mapping strategy and a solid/saturation preserving mapping strategy, although other color mapping strategies may be used.

Basically, these color gamut mapping intents express different intentions with respect to preserving attributes or characteristics of the colors in the document40regardless of the particular device or methods used by the device to perform the color gamut mapping. For instance, the intent behind the colorimetric mapping strategy, sometimes referred to as “gamut clipping,” is to preserve the specified ideal colors in the document40as closely as possible. Colors in the document40that are within the color gamut of a device, such as the printer12, are simply rendered without any further changes, but colors that fall outside of the color gamut for the printer12are mapped to the closest color within the color gamut of the printer12, although variations include mapping colors outside of the printer12color gamut to the nearest color in the color gamut of the printer12while preserving hue, or mapping to a color along a vector towards the center of the printer12color gamut.

The intent behind the hue preserving mapping strategy, sometimes referred to as “gamut compression,” is to preserve the relationship between colors and their hue in the document40. Several methods may be implemented by devices, such as the printer12, to achieve this goal, such as scaling of the luminance, hue-preserving gamma adjustments and centroid scaling. The intent behind the luminance preserving mapping strategy is to preserve the luminance of the colors in the document40. Colors outside the color gamut of the printer12are mapped to the outer boundary of the printer's color gamut in a luminance preserving way, although variations include whether or not to preserve hue and other variations. This color mapping strategy is most useful for regions of high spatial frequency within an image (e.g., edges and textures) where most of the image information is typically in the luminance channel. The intent behind the solid/saturation preserving mapping strategy is to preserve the solid ink coverage properties of color in the document40so that no areas of un-inked paper are produced within color mapped saturated colors by halftoning, for example. Strongly saturated colors in the document40are mapped into strongly saturated colors within the color gamut of the rendering device, such as the printer12.

At step110, the printer12processes the next portion of the document40for printing according to standard document rendering techniques, such as rasterization where image data in the form of a page description language (e.g., Postscript®) describes the document. During this processing, the printer12selects a first color defined in the image data embodying the document40as it is encountered for further processing as described below at steps120-165.

At step120, the printer12obtains a set of a specified linear combination of the color gamut mapping intents from the intent file42. In embodiments of the present invention, each set of specified color gamut mapping intents expressed in the intent file42is associated with one or more of the objects50,52,54in the document40that is associated with a color being processed, although one set of intents may be associated with the entire document40, the same or different sets of intents may be associated with one or more positions (e.g., pixels) or particular color specifications (e.g., R, G, B values) in the document40, or the sets of intents may be associated with particular color specifications at particular positions in the document40. In this example, the first color being processed happens to be from the object50, and thus the printer12obtains the set of the specified linear combination of color gamut mapping intents associated with the object50from the intent file42.

Further, the one or more sets of specified color gamut mapping intents are expressed in the intent file42as text strings, for example, specifying a linear combination of the above-described color gamut mapping strategies that should be employed by the device, printer12in this example, during color gamut mapping whenever color mapping decisions are required. Furthermore, each of the intents in this example are specified along with corresponding weight values which have a sum of 1 (other values and scalings may be used, such as weight values having a sum of 255, and fewer than four values may be specified where the fourth value is determined by subtracting the sum of three specified values from 1 or some other scaling), although the intents may instead be specified along with corresponding Boolean values or the intents which are desired to be adhered to may be specified without any value while the undesired intents are simply omitted. By providing the weight values for each of the specified intents, however, greater control over color gamut mapping is afforded.

By way of example only, the creator of the document40may have decided that preserving the ideal color specifications and the hue of the original colors in the multi colored image object50of document40during color gamut mapping are the most important color gamut mapping strategies, but that preserving the luminance or the saturation of the colors within the multi colored image object50in the document40is not as important. Therefore, the following exemplary string may have been included in the intent file42and associated with object50: “colorimetric preserving mapping strategy=0.90; hue preserving mapping strategy=0.10; luminance preserving mapping strategy=0; solid/saturation preserving mapping strategy=0.” Further in this example, the document creator may have decided that preserving the ideal color specifications, preserving the hue, preserving the luminance and preserving the solid/saturation attributes of the original colors in the remaining objects52,54of document40are equally important. Thus, the following exemplary string may have been included in the intent file42for each of the remaining objects52,54in the document40: “colorimetric preserving mapping strategy=0.25; hue preserving mapping strategy=0.25; luminance preserving mapping strategy=0.25; solid/saturation preserving mapping strategy=0.25.”

At step130, the printer12extracts the set of mapping weights (i.e., 0.90, 0.10, 0, 0) corresponding to each of the intents (i.e., calorimetric, hue, luminance and solid/saturation preservation) in the set of the specified linear combination of color gamut mapping intents associated with the first color from the object50that was obtained at step120.

At step140, the printer12color maps the first color from the particular portion of the document40being processed, such as the object50, for example, according to the printer12's specific implementation of its color gamut method(s). At this point in the process, conceptually, the printer12does not take into account any specified linear combination of the color gamut mapping intents that are included in the intent file42for the particular portion of the document40being processed. The printer12simply generates the second colors which are in the printer's color gamut and which observe each of the color gamut mapping intents that are known to the printer. For instance, the printer12maps the first selected color to second colors within the printer's color gamut in accordance with the colorimetric, hue, luminance and solid/saturation preserving mapping strategies employing specific color mapping instructions implemented by the printer12, and stores a value (e.g., R, G, B) representing each color mapped second color in the printer memory22for further processing as described below at step150.

At step150, the printer12applies the set of the specified linear combination of the color gamut mapping intents obtained at step120to each of the color mapped second colors obtained at step140to determine a blended color value. For instance, at step140the printer12determines the following exemplary R, G, B values shown below in Table 1 for each of the resulting color mapped second colors, although other values besides R, G, B values may be used, such as C, M, Y, K values:

The printer12applies the weights obtained at step130(i.e., 0.90, 0.10, 0, 0) to each of the R, G, B values of each color mapped second color. For instance, to determine the weighted average of the R values, the printer12performs the following calculation:
Wi(R)=(0.90)*0+(0.10)*0+(0)*0+(0)*0=0
For the G values, the printer12performs the following calculation:
Wi(G)=(0.90)*235+(0.10)*245+(0)*201+(0)*199=236
For the B values, the printer12performs the following calculation:
Wi(B)=(0.90)*112+(0.10)*122+(0)*201+(0)*220=113
Therefore, the blended color value (R, G, B) based on the set of weights in this example is 0, 236, 113.

In other embodiments of the present invention where the intents in the file42are specified along with corresponding Boolean values, the printer12calculates an average of the R, G, B values of each color mapped second color associated with the intents (i.e., colorimetric, hue, luminance and solid/saturation preservation) which correspond to a “true” Boolean value, for example. In other embodiments where the desired intents are specified without any value while the undesired intents are omitted, the printer12obtains an average of the R, G, B values of just the color mapped second colors which are associated with the intents specified in the file42. Of course, these schemes for specifying values with the intents, such as weights, Boolean values or no values, may be combined. For example, the printer12may be configured to interpret intents associated with a Boolean value of “true” as having a weight of 1.0, while intents associated with a value of “false” should be interpreted as 0.0.

At step160, the printer12replaces the original color specification of the first selected color associated with the portion of the document40being processed for printing with the blended color value obtained at step150, and stores the processed portion with the modified color specification in the printer memory22in accordance with the printer's particular rendering process (e.g., rasterization).

At step165, the printer12determines whether there are any more portions of the document40which require processing for printing. If there are, then the YES branch is followed and steps110-165are repeated in the same manner described above, except other first colors from the particular portions of the document40being processed for printing are selected for color gamut mapping as they are encountered during processing. Furthermore, the same or different sets of color gamut mapping intents from the intent file42are used depending on which one of the objects50,52,54the selected first color is associated with as mentioned above at step110. When there are no remaining portions of the document40which require processing for printing, the NO branch is followed.

At step170, the printer12retrieves the processed portions of the document40with the blended colors from the printer memory22, prints a color blended document44as shown inFIG. 1, and the process ends.

An alternative operation of the system10for device-independent color gamut mapping will now be described in accordance with embodiments of the present invention. Steps100-170are performed as described above in connection with other embodiments, except at step130the weights associated with the color gamut mapping intents included in the intent file42provided to the computer12are not explicitly specified values but instead are specified as functions from which the printer12determines the actual weight values.

Thus, the printer12determines the weight values for each of the intents (i.e., calorimetric, hue, luminance, and solid/saturation preservation) based on a function of the first color value from the portion of the document being processed (e.g., wi=Wi(R, G, B)), although the printer12may determine the weight values for each of the mapping strategies based on a function of the position of the first color value (e.g., wi=Wi(x,y)), the printer12may determine the weights based on a function of the first color value and the particular position of the first color value (e.g., wi=Wi(R(x,y),G,(x,y),B(x,y))), the printer12may determine the weights based on a function of first color values from a neighborhood of a position from where first color value is from (e.g., wi=Wi(R(x,y),G,(x,y),B(x,y),R(x−1,y),G,(x−1,y),B(x−1,y))), or the printer12may determine the weights based on a function of the objects50,52,54associated with the first color being processed, such as a function of the object type of the object (e.g., wi=Wi(o)).

With the present invention, users, such as document authors, are given greater control over the color gamut mapping process during document rendering. Control over the color gamut mapping for a document may be specified down to the pixel level and done so in a device-independent way. It should be appreciated that while the exemplary embodiments of the present invention have been described in connection with using sets of a specified linear combination of intents for device-independent color gamut mapping, specified linear combinations of intents for other document processing needs in a device-independent manner may be used, such as a specified linear combination of intents for UCR/GCR processing or halftone selection.

While particular embodiments have been described, alternatives, modifications, variations, improvements, and substantial equivalents that are or may be presently unforeseen may arise to applicants or others skilled in the art. Accordingly, the appended claims as filed, and as they may be amended, are intended to embrace all such alternatives, modifications, variations, improvements, and substantial equivalents. Further, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefor, is not intended to limit the claimed processes to any order except as may be specified in the claims.