The present invention relates generally to gamut-mapping algorithms for mapping input colors produced by an input device to output colors reproducible by an output device. More particularly, the present invention relates to a gamut mapping algorithm suitable for business graphics and other applications where highly chromatic colors are desired.
Most devices are capable of sensing or reproducing only a portion of the full range of colors that can be realized with monochromatic lights and discerned by a human observer. In the art, the term “gamut” refers to the range of colors that a device, such as a CRT or color printer, can produce.
The gamut for a particular device is determined by a variety of factors and will differ from one device to another. For example, CRT monitors use additive color reproduction to produce colors within their gamut. Each pixel within a monitor comprises three phosphors—red, green, and blue. These phosphors can emit light of varying intensities, depending on the excitation of the phosphor. The size of the phosphors is such that it is below the resolving power of the human visual system. Thus, the light emitted by individual phosphors merges with the light coming from its neighbors. Due to the phosphors having high chroma, the gamut of a typical CRT monitor is quite large compared to many other devices.
In contrast to CRT monitors, color printers use subtractive color reproduction wherein colorants (e.g., inks, toners, etc.) with various spectral characteristics absorb different parts of the light illuminating the print. In general, the intensity of the colors used in a color printer cannot be varied directly. Instead, a color printer creates perceived changes of intensity by printing dots of different sizes, which are below the resolving power of the human eye. As the human eye cannot resolve individual dots, the stimuli they produce blend together to produce the different colors of the printer gamut.
It is often desired to reproduce an image generated on one medium on a different medium. For example, it is often desired to reproduce an image generated by a CRT or scanner on a print medium. It is likely that many colors in the CRT gamut are outside the gamut of the printer. Colors outside the reproduction range of an output device are referred to as “out of gamut” colors. These “out of gamut” colors cannot be reproduced exactly. Instead, some “in gamut” color that is within the reproduction range of the printer must be substituted for each “out of gamut” color in order to reproduce the image. This substitution of colors is performed by gamut mapping algorithms.
Numerous techniques exist for mapping colors from an input gamut to an output gamut depending on the objectives sought. Some of the more common approaches include maintaining hue and lightness for the out-of-gamut colors and clipping chroma to the gamut boundary, or compressing the input gamut so that the colors fall within the output gamut. The chroma clipping and compression techniques work well for certain images, such as photographs, that contain few out-of-gamut colors. However, highly chromatic colors are very appealing for some images, such as presentation graphics. For these types of images, the chroma clipping and compression techniques may not produce acceptable results because the output images will be noticeably lower in chroma.
The purpose of using colors in images such as business graphics is to make information maximally appealing and discernable to the human eye. When a business graphics image was created, it was usually designed with the assist of a display device such as a CRT screen, which has a relatively large gamut. The designer of the image may not be able to foresee what type of medium that the created image will be reproduced on and what viewing conditions will be used. As a result, the design intention may not be fulfilled due to significant gamut differences between the CRT used and the medium that the image is to be reproduced on. Non-ideal viewing conditions can also significantly reduce the actual gamut of the reproduction.
Although it is always desirable to maintain reasonable color accuracy, including chroma accuracy, there are reasons that can justify the use of chroma enhanced colors for illustration purposes as stated above. One is that the human visual system is known to be highly adaptive to stimuli strength including color chroma and lightness. Color accuracy in chroma and lightness is therefore difficult to define for a business graphic image. In contrast, if a gamut mapping algorithm maps the colors to corresponding colors of maximum chroma while maintaining the contrast, it ultimately fulfills the initial intention of the designer of the image, which is to make information maximally appealing and discernable to the human eye. Also, when a reproduction device has some portion of gamut that is larger than the initial CRT gamut used for designing the image, such algorithms allow these colors to be used in the image. Further, in situations that the reproduction system has an unusually small gamut, such as some special label printers, such gamut mapping algorithm can make a vast visual difference in prints.
Consequently, there is a need for a gamut mapping algorithm especially adapted for use in business and presentation graphics or similar images with highly chromatic colors.
The present invention relates to a gamut-mapping algorithm for mapping input colors (e.g. colors within the input gamut) to output colors that can be reproduced by the output device (e.g., colors within the output gamut) so as to enhance the chroma or vividness of the reproduced image. The gamut mapping algorithm is particularly useful for business graphics where highly chromatic colors are preferred and color accuracy is not a primary concern. It is known that the human eye may not be able to discriminate chroma and lightness for small color differences. This invention makes use of this fact to enhance colors along the axis of maximum chroma which is defined by the color of the maximum chroma and a certain reference point on the neutral axis. Enhanced along axes defined as such optimally preserves contrast and avoids mapping artifacts such as color contours that often resulted from traditional chroma clipping or compression algorithms.
In one exemplary embodiment of the invention, colors within the input gamut are mapped to corresponding colors within the output gamut for each hue angle. Following the mapping of colors from the input gamut to the output gamut, the chroma of the remapped colors is enhanced by moving the remapped colors toward the apex of an output gamut triangle. More particularly, the remapped colors are moved toward the apex of the output gamut triangle along a line extending through the remapped colors and the apex of the output gamut triangle. This chroma enhancement may be used in conjunction with additional color adjustment techniques, which can be performed either before or after the chroma enhancement step.
Various techniques can be used to determine the bounds of the gamut triangles. One technique takes the point of maximum chroma as the apex of the output gamut triangle. A line between the apex and the point of maximum lightness on the neutral axis may define the upper bound, and a line between the apex and the point of least lightness on the neutral axis may define the lower bound of the maximum triangle. An alternative technique defines the upper and lower bounds of the triangle first and uses the intersection of the upper and lower bounds as the apex of the output gamut triangle.
A user controls the computer 10 by entering commands and data via a keyboard, mouse, pointing device, or other input device 24. Information is output to the user via the monitor 30 allowing interactive control of the computer 10 by the user. The user can cause the computer 10 to create, display, and print business graphics. Processor 12 provides color values for a color image to monitor driver 18, which in turn derives RGB values for each pixel in monitor 30. The RGB values are provided to monitor 30 which displays the image. Processor may also provide color values to printer driver 20 for printing via color printer 40. Printer driver derives CMY values for each pixel of the color image based on the color values received from processor 12. The CMY values may be determined, for example, by reference to a printer table 22 that provides CMY values for color values passed to it by processor 12. The printer table 22 maps color values received from processor 12 to corresponding CMY values for colors that can be reproduced by the color printer 40.
Gamut differences between the color monitor 30 and printer 40 can result in problems when printing business graphics or other images with highly chromatic colors. Business graphics are usually designed with the assistance of a computer 10 with a CRT or LCD monitor 30 as shown in FIG. 1. As noted earlier, the gamut of a CRT or LCD monitor 30 that uses additive color reproduction is typically larger than the gamut of a color printer 40 that uses subtractive color reproduction.
The present invention provides a method and apparatus for gamut mapping that may be used, for example, to generate a printer table 22. The gamut mapping algorithm maps colors within the gamut 50 of a first device, referred to herein as the input device, to colors within the gamut 60 of a second device, referred to herein as the output device. Gamut mapping may be performed “on-the-fly” if sufficient processing power is available. However, gamut mapping algorithms may also be used to generate printer tables 22 that speed up the printing process. The printer table 22 contains predetermined mappings of colors from a first device gamut 50 to a second device gamut 60. The printer driver 20 uses the printer table 22 as a look-up table to determine the appropriate color values to send to the printer 40. The printer table 22 includes mappings of “out-of-gamut” colors to “in-gamut” colors thereby avoiding thenecessity of performing complex calculations every time an image is printed.
According to the present invention, the gamut mapping algorithm transforms colors such that the original hue is preserved while lightness (L*) andchroma (C*) may be varied. A triangle, referred to herein as the maximum triangle, is defined for both the input and output gamuts 50, 60. For each gamut,the top and bottom points on the lightness axis define the base of the maximum triangle and the point of maximum chroma defines the apex of the maximum triangle.
The gamut mapping algorithm uses the maximum triangles 55, 65 to transform input colors (e.g. colors within the input gamut) to colors that can be reproduced by the output device (e.g., colors within the output gamut) so as to enhance the chroma or vividness of the reproduced image. The gamut mapping algorithm is particularly useful for business graphics where highly chromatic colors are preferred and color accuracy is not a primary concern.
Gamut mapping is performed in essentially two steps. The first step is to uniformly map the colors within the input gamut 50 to corresponding colors within the output gamut 60. The second step involves applying a color enhancement function to enhance the chroma of the reproduced image. This step is referred to as the color enhancement step.
The goal is to map the gamut triangle 55 represented by TAB to the gamut triangle 65 represented by T′A′B′ uniformly, which are shown in FIG. 3. Although numerous methods could be used to map the triangles 55, 65 uniformly, one exemplary method involves three steps. In the first step, the lightness of any given color in the input gamut 50 is rescaled according to the following equation:
In Eq. 1, L is the input lightness; L′ is the output lightness: and L( ) represents the lightness of the point given in the parentheses. Eq. 1 uses the ratio of the lightness range of the output gamut 60, L(T′)−L(B′), to the lightness range of the input gamut 50, L(T)−L(B) to scale the lightness of the input gamut colors. The lightness of input colors could also be scaled using other scaling algorithms.
In the second step, chroma of any given color in the input gamut 50 is rescaled according to the following equation:
In Eq. 2, C′ is the output chroma; C is the input chroma; and C( ) represents the chroma of the point in the parentheses. Eq. 2 scales the chroma of the input gamut triangle 55 based on the ratio of the maximum chroma of the output gamut triangle 65 to the maximum chroma of the input gamut triangle 55. Other scaling algorithms could also be used to scale the chroma of the input colors.
Scaling the lightness and chroma of the input colors produces the scaled input gamut triangle T″A″B″ shown in FIG. 5. In the third step, the lightness of a color V″ in T″A″B″ is mapped to a corresponding color V′ in T′A′B′ along a line of constant chroma so that its relative position to the equal-chroma colors on upper and lower sides of the triangle is maintained. Suppose the vertical line through (V″) intercepts T″A″ at (V1), B″A″ at (V2), T′A′ at (V3) and B′A′ at (V4). In this case V″ is mapped to V′ by adjusting the lightness according to the following relationship:
In Eq. 3 the term L( ) represents the lightness of the point in the parentheses.
Once the gamut mapping algorithm performs this final mapping step, all points on the original input gamut triangle 55 are mapped uniformly to the output gamut triangle 65. Points not in the input gamut triangle 55 will be mapped in the same way and end up at a relative rescaled position outside the output gamut triangle 65.
The color enhancement step of the gamut mapping algorithm modifies the colors to enhance the chroma of the reproduced image.
Moving the color towards the apex of the output gamut triangle 65 increases the chroma of the color resulting in a more vivid print. Equation 4 below represents an exemplary embodiment of the color enhancement function.
In Eq. (4), the variable α is the color enhancement factor that may be varied to adjust the amount of enhancement. The color enhancement factor is typically an integer less than 10.
Following application of the color enhancement function, the gamut mapping algorithm makes a final adjustment to match the enhanced colors to the output gamut 60. Colors outside of the input gamut triangle 55 may not be mapped correctly to points outside the output gamut triangle 65 as shown in FIG. 7.
The solid line in
A general purpose programmable computer as shown in
The present invention may, of course, be carried out in other specific ways than those herein set forth without departing from the scope and essential characteristics of the invention. For example, the algorithm can be applied in a three-dimensional manner. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.
Number | Name | Date | Kind |
---|---|---|---|
4605954 | Bestenreiner et al. | Aug 1986 | A |
4647963 | Johnson et al. | Mar 1987 | A |
4661843 | Sekizawa et al. | Apr 1987 | A |
4751535 | Myers | Jun 1988 | A |
4812902 | Fuchsberger | Mar 1989 | A |
4812903 | Wagensonner et al. | Mar 1989 | A |
4831434 | Fuchsberger | May 1989 | A |
4929978 | Kanamori et al. | May 1990 | A |
4961088 | Gilliland et al. | Oct 1990 | A |
4963978 | Ueda et al. | Oct 1990 | A |
5021828 | Yamaguchi et al. | Jun 1991 | A |
5243414 | Dalrymple et al. | Sep 1993 | A |
5268754 | Van de Capelle et al. | Dec 1993 | A |
5272503 | LeSueur et al. | Dec 1993 | A |
5283597 | Yoshida et al. | Feb 1994 | A |
5299291 | Ruetz | Mar 1994 | A |
5317426 | Hoshino | May 1994 | A |
5323249 | Liang | Jun 1994 | A |
5359436 | Dichter et al. | Oct 1994 | A |
5384601 | Yamashita et al. | Jan 1995 | A |
5450216 | Kasson | Sep 1995 | A |
5450217 | Eschbach et al. | Sep 1995 | A |
5510910 | Bockman et al. | Apr 1996 | A |
5517335 | Shu | May 1996 | A |
5537228 | Dillinger | Jul 1996 | A |
5539540 | Spaulding et al. | Jul 1996 | A |
5574666 | Ruetz et al. | Nov 1996 | A |
5583666 | Ellson et al. | Dec 1996 | A |
5596428 | Tytgat et al. | Jan 1997 | A |
5612795 | Dichter | Mar 1997 | A |
5615312 | Kohler | Mar 1997 | A |
5650942 | Granger | Jul 1997 | A |
5708912 | Lee | Jan 1998 | A |
5712925 | Ohga | Jan 1998 | A |
RE35751 | Midgley | Mar 1998 | E |
5724443 | Nishikawa | Mar 1998 | A |
5731818 | Wan et al. | Mar 1998 | A |
5748342 | Usami | May 1998 | A |
5767992 | Tanaka et al. | Jun 1998 | A |
5790282 | Hayashi et al. | Aug 1998 | A |
5835817 | Bullock et al. | Nov 1998 | A |
5867284 | Heinrichs et al. | Feb 1999 | A |
5867286 | Lee et al. | Feb 1999 | A |
5923917 | Sakurai et al. | Jul 1999 | A |
5933256 | Ebner | Aug 1999 | A |
5937089 | Kobayashi | Aug 1999 | A |
5966222 | Hirata et al. | Oct 1999 | A |
5978011 | Jacob et al. | Nov 1999 | A |
5987165 | Matsuzaki et al. | Nov 1999 | A |
5991511 | Granger | Nov 1999 | A |
6025885 | Deter | Feb 2000 | A |
6028646 | Jeong et al. | Feb 2000 | A |
6040926 | Vondran, Jr. | Mar 2000 | A |
6084689 | Mo | Jul 2000 | A |
6101272 | Noguchi | Aug 2000 | A |
6125199 | Sato et al. | Sep 2000 | A |
6128022 | Dillinger | Oct 2000 | A |
6154217 | Aldrich | Nov 2000 | A |
6172681 | Ueda | Jan 2001 | B1 |
6185013 | Harrington et al. | Feb 2001 | B1 |
6198843 | Nakauchi et al. | Mar 2001 | B1 |
6421142 | Lin et al. | Jul 2002 | B1 |
6775028 | Reel | Aug 2004 | B1 |
20020041393 | Takahashi et al. | Apr 2002 | A1 |
Number | Date | Country |
---|---|---|
56-069668 | Jun 1981 | JP |
61-288690 | Dec 1986 | JP |
62-230159 | Oct 1987 | JP |
Number | Date | Country | |
---|---|---|---|
20040056867 A1 | Mar 2004 | US |