Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
5416890
Beretta
May 16, 1995
Title
Graphical user interface for controlling color gamut clipping
Abstract
A graphical user interface provides for interactively modifying, on the user's display, the appearance of a palette of colors on one or more hardcopy output devices. The interface provides a graphical representation of a color space in a color space window on the user's display and draws each color in the palette in its current location in the color space, thereby showing the relationship of each color in the palette with other colors in the palette. The interface stores all color representations as device independent color specifications. The user interface stores a plurality of colorimetrically measured colors representing the gamut of one or more target hardcopy output devices, and displays the boundaries of a selected device gamut in the color space. The user manually controls the appearance of a color on an output printer device by moving a color from a current location outside the target gamut to a destination location inside the gamut. The user may also edit the color's lightness signal. A gamut clipping process ensures that the modified color is producible in the target gamut. When the user moves a color from inside a displayed target gamut to outside the gamut, a gamut constraining process prevents the color from being moved beyond the boundaries of the gamut. The user may flexibly and conveniently display and edit the palette of colors in any of several color spaces available, one of which is the uniform CIELAB color space. Modifications to palette colors are stored for future use.
Inventors:
Beretta; Giordano B.
(Palo Alto,
CA
)
Assignee:
Xerox Corporation
(Stamford,
CT
)
Appl. No.:
805224
Filed:
December 11, 1991
Current U.S. Class:
345/590
345/591
345/440
Field of Search:
395/131,140 345/150
U.S. Patent Documents
4488245
December 1984
Dalke et al.
4694286
September 1987
Bergstedt
4721951
January 1988
Holler
4958220
September 1990
Alessi et al.
4972257
November 1990
Birnbaum et al.
4985853
January 1991
Taylor et al.
5264927
November 1993
Miyoshi et al.
Foreign Patent Documents
0313796
May., 1989
EP
0403081
Dec., 1990
EP
0448250
Sep., 1991
EP
Other References
Microsoft PowerPoint, Desktop Presentations Program, User's Manual, Microsoft Corporation, Redmond, Washington, 1989, pp. 326-340. .
Stone, M. C. "Color, Graphic Design, and Computer Systems", COLOR research and application, vol. 11, Supplement 1986, pp. S75-S82. .
Guitard, R. and Ware, C., "A Color Sequence Editor", ATM Transactions on Graphics, Jul. 1990, 9:3, pp. 338-341. .
Robertson, P. K., "Perceptual Color Spaces--Visualizing Color Gamuts: A User Interface for the Effective Use of Perceptual Color Spaces in Data Displays", IEEE Computer Graphics & Applications, Sep. 1988, pp. 50-64. .
Hedin, C-E., and Derefeldt, G., "Palette--A color selection aid for VDU images", Perceiving, Measuring, and Using Color, Proceedings of SPIE, Santa Clara, Calif., Feb. 1990, vol. 1250, pp. 165-176. .
Hansen, R., "Breaking the Color Barrier", Computer Graphics World, Jul. 1990, pp. 39-48. .
Beretta, G. B., A New Approach to Imaging IC Layout and Schematics, Xerox Palo Alto Research Center, EDL-88-3, 1988. .
"Electronics for Imaging: Quality Color on the Desktop", The Seybold Report On Desktop Publishing, Oct. 3, 1990, pp. 16-22. .
COLOR: Universal Language and Dictionary of Names, U.S. Department of Commerce, National Bureau of Standards, Washington, D.C., Special Publication 440, 1976, pp. 1-14. .
Color Encoding Standard, Chapter 2; Chapter 3, Section 3.1; and Chapter 6, Section 6-3; published by Xerox Corporation, Xerox Systems Institute, Sunnyvale, Calif., XNSS 289005, May 1990. .
Hunt, R. W. G., Measuring Colour, John Wiley & Sons, 1987, Chapter 5, pp. 114-116, and Chapter 6, pp. 131-139. .
Meyer, G. W., and Greenberg, D. P., "Perceptual Color Spaces for Computer Graphics", Color and the Computer, H. J. Durrett, ed., Academic Press, 1987, pp. 83-100. .
Thorell, L. G., and Smith, W. J., Using Computer Color Effectively, Prentice-Hall, 1990, Chapter 9, pp. 159-184. .
Raster Graphics Handbook, Conrac Corp., Covina, Calif., 1980, pp. A3-1-A3-37. .
Hunter, R. S., and Harold, R. W., The Measurement of Appearances, John Wiley & Sons, 2nd Ed., 1987, Chapters 7-9, pp. 95-165. .
Wyszecki, G., and Stiles, W. S., Color Science: Concepts and Methods, Quantitative Data and Formulae, 2nd ed., John Wiley & Sons, 1982, Table 1 (3.3.2) at pp. 738-747. .
Taylor, Joann M., Murch, Gerald M., and McManus, Paul A., "TekHCV.TM.: A Uniform Perceptual Color System for Display Users", Proceedings of the SID, vol. 30/1, 1989, pp. 15-21. .
Murch, Gerald M. and Taylor, Joann M., "Sensible Color", Computer Graphics World, Jul. 1988, pp. 69-72. .
Beretta, G. B., Selecting Colors For Representing VLSI Layout, Xerox Palo Alto Research Center, EDL-88-7, Dec., 1988. .
Bauersfield, Penny F., and Slater, Jodi L., "User-Oriented Color Interface Design: Direct Manipulation of Color in Context", Proceedings of CHI '91 Human Factors in Computing Systems, New Orleans, La., Apr. 1991, pp. 417-418. .
Bauersfield, Penny F. and Price, Elaine, "The 3D Perceptual Picker: Color Section in 3D", Digest of Technical Papers vol. XXI, SID International Symposium, Las Vegas, 1990, pp. 180-183. .
McEndarfer, Edward M., An Interactive System for the Study and Teaching of Color Theory, Ph.D. Dissertation, University of Kansas, 1989, available from UMI, Ann Arbor, Mich., Order No. 9024188. .
EPO Search Report and Annex, Jul. 20, 1993. .
Apple Computer, Inc., Macintosh Reference, Chapter 7, "Customizing Your Macintosh", pp. 253-257..~
Primary Examiner:
Zimmerman; Mark K.
Attorney, Agent or Firm:
Bares; Judith C.
Claims
What is claimed is:
1. A graphical user interface for modifying a plurality of original colors for reproduction on a color reproduction device, said interface being for use in a system having memory means for storing color information signals representing the plurality of original colors, and means for displaying the plurality of original colors; said graphical user interface including,
a device gamut of reproducible colors of a color reproduction device, said device gamut defined by a plurality of colorimetrically measured gamut colors, each gamut color thereof being represented by a set of gamut color information signals that are stored in the memory means; the device gamut representing a three-dimensional volume of the reproducible colors of the color reproduction device;
a color space display window;
color space drawing means for drawing a graphical representation of a color space in said color space display window, for drawing the plurality of original colors in said color space, each original color of the plurality of original colors being represented by a respective graphical marker drawn in a current location in said color space; said current location having coordinates in the graphical representation of the color space derived from the color information signals representing the one of the original colors represented by the respective graphical marker; and for drawing in said color space a two-dimensional polygonal gamut boundary representing said device gamut; said boundary having vertices at coordinates defined in said color space by the set of said gamut color information signals for respective ones of said plurality of colorimetrically measured gamut colors of said device gamut;
means for receiving an input signal from a user indicating selection of one of the plurality of original colors by selection of the respective graphical marker thereof drawn in the graphical representation of the color space in said color space display window; the one of the plurality of original colors selected by the user being referred to as a selected original color; the input signal further indicating a movement action by the user moving the respective graphical marker representing the selected original color from the current location in the color space to a destination location in the color space; and
means for modifying the selected original color drawn in said color space, in response to said input signal indicating the selection and movement of the selected original color, to produce signals representing a reproducible color in said colorimetrically measured device gamut; said modifying means including
moving means for moving the respective graphical marker representing the selected original color from said current location to the destination location in said color space, said destination location having coordinates defining a set of modified color information signals representing a modified color;
means for clipping said set of modified color information signals to produce a set of clipped modified color information signals representing a reproducible color included in the three-dimensional volume of the device gamut of the color reproduction device when the destination location of the respective graphical marker representing said selected original color is inside said two-dimensional polygonal gamut boundary but outside the three-dimensional volume of reproducible colors of the color reproduction device; and
means for constraining said modified color to be within said two-dimensional polygonal gamut boundary when the destination location of the respective graphical marker representing said selected original color moved by said moving means is outside of said gamut boundary;
said color space drawing means drawing in the graphical representation of the color space a respective graphical marker representing the modified color and the respective graphical markers representing each of the plurality of original colors not selected by the user so that the user may view the modified color in the context of the plurality of original colors.
2. The graphical user interface of claim 1 wherein the color information signals of each original color include a lightness signal, wherein the input signal received from the user includes a lightness signal modification request, and wherein said modifying means further includes lightness modifying means for modifying said lightness signal in response to the lightness signal modification request from the user to produce said set of modified color information signals.
3. The graphical user interface of claim 1 wherein said device gamut of reproducible colors of the color reproduction device is one of a plurality of device gamuts of reproducible colors for respective ones of a plurality of color reproduction devices; the plurality of device gamuts being identified to the user of the graphical user interface by respective indicia displayed on the display means; the graphical user interface further including means for receiving a second input signal from the user indicating selection of the respective indicia identifying one of the plurality of device gamuts as a selected device gamut; said color space drawing means being responsive to said second user signal indicating the selected device gamut; said two-dimensional polygonal gamut boundary drawn in said color space by said color space drawing means representing said selected device gamut.
4. The graphical user interface of claim 1 wherein said color space is a uniform color space.
5. A system for modifying a plurality of original colors for reproduction on a color reproduction device, each original color being represented by a set of color information signals, said system comprising
display means for displaying the plurality of original colors;
means for receiving input signals from a user;
color modifying processing means, coupled to said input signal receiving means and to said display means;
memory means, coupled to said processing means, for storing therein the color information signals of the plurality of original colors; and
a device gamut representing a three-dimensional volume of reproducible colors of the color reproduction device, said device gamut being defined by a plurality of colorimetrically measured gamut colors, each gamut color thereof being represented by a set of gamut color information signals that are stored in said memory means;
said color modifying processing means including
color space drawing means for drawing on said display means a graphical representation of a color space, for drawing the plurality of original colors in said color space, each original color of the plurality of original colors being represented by a respective graphical marker drawn in a current location in said color space; said current location having coordinates in the graphical representation of the color space derived from the color information signals representing the one of the plurality of original colors represented by the respective graphical marker; and for drawing in said color space a two-dimensional polygonal gamut boundary representing said device gamut; said boundary having vertices at coordinates defined in said color space by the set of said gamut color information signals for respective ones of said plurality of colorimetrically measured gamut colors of said device gamut; and
means for modifying one of the plurality of original colors drawn in said color space in response to at least one of said input signals from the user to produce signals representing a reproducible color in said colorimetrically measured device gamut; the at least one of the input signals indicating selection and movement of the respective graphical marker representing the one of the plurality of original colors drawn in the graphical representation of the color space; the one of the plurality of original colors selected by the user being referred to as a selected original color; said modifying means including
moving means for moving the respective graphical marker representing the selected original color from said current location to a destination location in said color space, said destination location having coordinates defining a set of modified color information signals representing a modified color, said color space drawing means drawing a respective graphical marker representing said modified color in said destination location in said color space and drawing the respective graphical markers representing each of the plurality of original colors not selected by the user in respective current locations in said color space so that the user may view the modified color in the context of the plurality of original colors;
means for clipping said set of modified color information signals to produce a set of clipped modified color information signals representing a reproducible color included in the three-dimensional volume of the device gamut of the color reproduction device when the destination location of the respective graphical marker representing said modified color is inside said two-dimensional polygonal gamut boundary but outside the three-dimensional volume of reproducible colors of the color reproduction device; and
means for constraining said modified color to be within said two-dimensional polygonal gamut boundary when said destination location of the respective graphical marker representing said modified color moved by said moving means is outside of said gamut boundary.
6. The system of claim 5 wherein the set of color information signals for each original color includes a lightness signal, and wherein said color modifying processing means further includes lightness modifying means for modifying said lightness signal of the selected original color in response to at least one of said input signals to produce said set of modified color information signals.
7. The system of claim 5 wherein said color space is a uniform color space.
8. A method for interactively modifying, in a color display system, a plurality of original colors for reproduction on a color reproduction device; the color display system having input signal receiving means for receiving signals from a user, a display device, and a memory for storing a set of color information signals representing each original color of the plurality of original colors; the method comprising the steps of:
colorimetrically measuring a plurality of reproducible colors of the color reproduction device; each color thereof being represented by a set of gamut color information signals; the plurality of reproducible colors being referred to as a colorimetrically measured device gamut; the device gamut representing a three-dimensional volume of the reproducible colors of the color reproduction device;
storing said colorimetrically measured device gamut in said memory;
drawing on said display device a graphical representation of a color space;
plotting the plurality of original colors in said color space; each original color being represented by a respective graphical marker plotted in a current location in said color space, said current location having coordinates derived from the set of color information signals of each original color of the plurality of original colors; wherein said plotting step further includes plotting a two-dimensional polygonal gamut boundary representing the colorimetrically measured device gamut in said color space; said gamut boundary having vertices at coordinates defined in said color space by the set of said gamut color information signals for respective ones of said plurality of reproducible colors of said colorimetrically measured device gamut;
receiving an input signal from the input signal receiving means indicating selection and movement actions by the user of the respective graphical marker representing one of the original colors plotted in the color space; the original color selected by the user being referred to as a selected original color;
moving the respective graphical marker representing the selected original color from said current location to a destination location in said color space in response to the input signal from the user; said destination location having coordinates defining a set of modified color information signals representing a modified color in said color space; the respective graphical marker representing said modified color;
clipping said set of modified color information signals to produce a set of clipped modified color information signals representing a reproducible color included in the three-dimensional volume of the device gamut of the color reproduction device when said destination location of the respective graphical marker representing said modified color is inside said two-dimensional gamut boundary but outside the three-dimensional volume of reproducible colors of the color reproduction device;
constraining the respective graphical marker representing said modified color to be within said two-dimensional gamut boundary when said destination location of the respective graphical marker representing said modified color moved in response to the movement action by the user is outside of said gamut boundary;
drawing the respective graphical marker representing said modified color in said color space and drawing the respective graphical markers representing each of the plurality of original colors not selected by the user in respective current locations in said color space so that the user may view the modified color in the context of the plurality of original colors; and
storing said set of modified color information signals representing said modified color in the memory of tile color display system.
9. The method of claim 8 wherein the set of color information signals of each original color includes a lightness signal, and wherein the method further includes
receiving a second input signal from the user indicating selection of an original color, referred to as a selected original color; the second input signal including a request to modify the lightness signal of the selected original color; and
a lightness modifying step for modifying said lightness signal of the selected original color in response to said second input signal to produce said set of modified color information signals.
10. The method of claim 8 wherein said color space is a uniform color space.
Description
BACKGROUND OF THE INVENTION
This invention relates generally to color display and reproduction systems and, more particularly, to a graphical and interactive user interface for user control of the mapping of a palette of colors from one device gamut to another on such systems.
Increasingly affordable and available computer controlled color display and reproduction systems will promote wider use of color in document-intensive industries or document-intensive functional areas of enterprises. Using color effectively in environments that support diverse color systems to produce color display and printed materials requires reducing the complexity of color specification so that the occasional as well as the expert color user may select, modify, and apply color aesthetically and appropriately for its intended use.
Some color specification systems utilize a device dependent color classification model which provide color descriptor classifications that are derived from, and which control, associated physical devices. Such device dependent color classification models include the additive red, green, and blue (RGB) phosphor color model used to physically generate colors on a color monitor, and the subtractive cyan, magenta, and yellow, plus black (CYMK) color model used to put colored inks or toners on paper. These models are not generally correlated to a human color perceptual model. This means that these device dependent color models provide color spaces that treat color differences and changes in incremental steps along color characteristics which are useful to control the physical devices but which are not validly related to how humans visually perceive or describe color. Furthermore, considerable trial and error may be required to select a specific color or to achieve a desired color modification because the color model and its color space representation is not uniform to the user, and a large change in one or more of the physical descriptors of the color space, such as in the R, G, or B dimensions, will not necessarily result in a correspondingly large change in the perceived color.
Other color models exist which are geometric representations of color, based on the human perceptual attributes of hue, saturation, and value (or brightness or lightness) dimensions (HSV). While providing some improvement over the physically based RGB and CMYK color models, these color specifications are conveniently formulated geometric representations within the existing physically based color models, and are not psychophysically validated perceptually uniform color models.
The nonuniformity of the underlying color model directly impacts the effectiveness of a color selection and editing user interface. A color selection and editing user interface provides the control and communications link between the system user and the underlying color model. The interface provides a color space in which the user selects and edits colors. A color space is a pictorial or graphical representation or construction of a color model, visually showing the mathematical representations of colors. User interfaces based on conventional nonuniform color models generally limit user editing functions to selecting colors from fixed palettes of colors or to providing a mechanism by which the user may create and modify colors by specifying percentages of certain primary colors, either via text input, or by manipulating graphical tools such as sliding color bars, or color wheels.
Color selection user interfaces using nonuniform color models are those typically provided with personal computer business graphics software. One such representative color selection tool is provided with PowerPoint.TM. software from Microsoft Corporation of Redmond, Washington. PowerPoint.TM. is software for planning, composing, and creating presentations. The User's Manual for the software designed for use on certain Apple.RTM. Macintosh.TM. computers discloses at pp. 326-340 a window-based user interface with a menu for selecting the presentation's color scheme. A color scheme dialog box allows the user to select a presentation color scheme from preset color schemes of eight colors. To add colors to the color scheme or modify an existing color, the user selects colors from a color chart of eighty eight colors, or from a color wheel by dragging a cursor around the wheel until the desired color appears in a rectangular box in the dialog window.
Brief descriptions of several types of color models and color selection tools are also provided in Stone, M., "Color, Graphic Design, and Computer Systems", Color Research and Application, Vol. 11 (Supplement), pp. S75-S82, 1986 (hereafter, "Stone, `Color, Graphic Design, and Computer Systems`"). Additional computer controlled color editing systems are disclosed in Guitard and Ware, "A Color Sequence Editor", ACM Transactions on Graphics, 9:3 (July 1990), at pp. 338-341; in Bergstedt, U.S. Pat. No. 4,694,286, entitled "Apparatus and Method for Modifying Displayed Color Images", and in Holier, U.S. Pat. No. 4,721,951, entitled, "Method and Apparatus for Color Selection and Production".
In particular, Bergstedt discloses, in U.S. Pat. No. 4,694,286, an apparatus and method which permit selection of colors for display, and modification of displayed colors. A color index is associated with each pixel of a displayed image. Upon positioning of a cursor at a pixel of a displayed image, the user may modify the hue, lightness, and saturation of the color associated with the color index of that pixel location, thus modifying all pixels in the image having the color associated with the color index. Modification is accomplished by successive actuation of hue, lightness, and saturation keys on a keyboard input device, in accordance with a hue, lightness, and saturation color cone shown in FIG. 5 therein.
Holier discloses, in U.S. Pat. No. 4,721,951, an apparatus and method wherein a color is selected in the basis of one color characteristic system for implementation in another color characteristic system. Color selection is made from the color characteristic system of hue, saturation and value (referenced as brightness) (HSV) in the preferred embodiment, and is performed interactively with the operator individually selecting hue, saturation and brightness levels from displays which illustrate the effects of changing each of these characteristics. The displays are comprised of a display bar for each of the hue, saturation and brightness color characteristics, with the selected value or level for each characteristic being shown by a vertical black line, or slide marker, which the operator may move to a selected position. The selected values of H, S, and V are converted through the use of appropriate transforms to values of R,G, and B in the red, green, and blue color classification system for display in the current color display.
A uniform color space, based on an underlying uniform color model, attempts to represent colors for the user in a way that corresponds to human perceptual color attributes that have been actually measured. Using a device independent and uniform color model as a basis for specifying and manipulating color provides a foundation for more user control, accuracy, and precision in color selection and editing, since color specification is not tied to the physical characteristics of a particular color rendering device. One such device independent color specification system is that developed by the international color standards group, the Commission Internationale de I'Eclairage (the "CIE"). CIE color specification employs device independent "tristimulus values" to specify colors and to establish device independent color models by assigning to each color a set of three numeric tristimulus values according to its color appearance under a standard source of illumination as viewed by a standard observer. Each set of X, Y, and Z tristimulus values represents a color according to its spectral power distribution, as a summation of the color contributions of all wavelengths within the spectral distribution of a color sample, corrected for the light source used to illuminate the colored sample and for the color sensitivity of the standard observer. The CIE has recommended the use of two approximately uniform color spaces for specifying color: the CIE 1976 (L*u*v*) or the CIELUV color space, and the CIE 1976 (L*a*b*) color space (hereafter referred to as "CIELAB" space or "LAB" space).
Some color display and reproduction systems utilize uniform color models. Taylor et. al., in EP 0 313 796 A3, entitled, "Computer display color control and selection system", disclose an interface system for use in selecting and controlling colors in graphics images generated by a computer system. The interface comprises a mechanism and method for displaying a graphical representation of hue, chroma and lightness combinations available based on a color appearance type color space and associated mechanism. The interface provides for a graphical representation which includes a graph of the range of hues in one dimension and a second graph of the range of chroma and value combinations in two dimensions. The preferred embodiment of the interface makes use of a specially defined HVC color space for graphically displaying, representing, and selecting hue, chroma and value combinations for a color with a high degree of perceptual uniformity. The preferred embodiment of the system includes a mechanism for operating the interface in three different modes, providing functions corresponding to picture editing, color map editing, and continuous shading. Picture editing allows an individual color in a graphics image to be edited by positioning a cursor on a pixel in the image associated with the color to select the color for editing. Color map editing allows the color data corresponding to various parts of a graphics image to be directly manipulated. Continuous shading allows a range of colors to be generated between two colors specified by the user for smooth shading applications.
Robertson, P. K., in "Visualizing Color Gamuts: A User Interface for the Effective Use of Perceptual Color Spaces in Data Displays", IEEE Computer Graphics & Applications, September, 1988, pp. 50-64, discloses the use of uniform color spaces in computer graphics and image processing applications. Robertson discloses interactively controlled representations of the perceptual color gamuts of color display devices, and how these representations may be of value in color specification and data display. In particular, two-dimensional cross-sectional representations of these gamuts can be used to indicate available colors on a display device and for guiding the choice of color for representing data. Various forms of gamut representations are illustrated, including a leaf structure schematic of a three dimensional gamut of a color monitor, two dimensional cross sections through the CIELUV gamut of a color monitor and CIELAB gamut of a film or print recording device, cross sections of constant lightness through the film or print CIELAB gamut, and superimposed cross sections of constant lightness through the CIELUV gamut of a color monitor and the film or print CIELAB gamut.
An interactive palette selection system is disclosed in Hedin, C. and Derefeldt, G., "Palette--A Color Selection Aid for VDU Images", Perceiving, Measuring, and Using Color: Proceedings of SPIE, Vol. 1250, Santa Clara, Calif., Feb. 15-16, 1990, pp. 165-176. A color database of a predetermined number of colors, specified in RGB and tristimulus values, is colorimetrically measured from a color monitor under standard viewing conditions. The database also specifies each color in CIELUV L*, u*, and v* coordinates, chroma (C*.sub.uv) and hue (h.sub.uv) coordinates, and NCS (Natural Color System) notations. A palette of colors can be created from the color database from predefined searches of the color database according to certain restrictions. The palette is displayed around the border of a display screen. The palette can be plotted in various color diagrams such as the NCS hue triangle, and the CIELAB a*-b* plane. The palette can be reduced and sorted, and colors can be selected from the palette and used to change or adjust a portion of a displayed image.
Stone, in "Color, Graphic Design, and Computer Systems", at pgs. S78-79, discloses a tool for color selection in calibrated systems which allows a user to explore a color space model based on X, Y, and Z tristimulus values, mapped into the 1931
Chromaticity Diagram, in the context of a particular device such as a color monitor. The monitor's gamut is defined as a triangle in the x, y plane and only the region inside the triangle is active, automatically constraining the values of x and y. Luminance is controlled separately.
Bauersfield and Slater, in "User-Oriented Color Interface Design: Direct Manipulation of Color in Context", 1991, at pg. 418, column 1, and Bauersfield and Price, in "The 3 D Perceptual Picker: Color Section in 3 D", 1990, at page 182, first and second columns, disclose a color selection tool called the 3 D Perceptual Picker which uses a three-dimensional visualization based on the Munsell color model for color selection. Bauersfield and Price disclose a color space window containing one "page" of the color model presented to the user for color selection. The user may directly manipulate the model to locate and select colors, with the selected color appearing in a second, selection window. Bauersfield and Slater disclose, at pg. 418 column
1, in the last full paragraph, a color swatch interface device in the same tool for color selection tasks. The sizable and form-adjustable color swatch allows the user to move a shape of the desired color to any location on the screen.
An additional issue in the successful use of color is controlling the color appearance of colors when they are translated from one color reproduction device to another. For purposes of this discussion, a color's appearance will include its color attributes, such as, for example, hue, chroma, and lightness. Device independent color specification facilitates color reproduction among diverse color devices. A device "gamut" includes all of the colors physically producible from the primary colors on a particular device, and may be defined in a device independent form. Different color reproduction devices have different gamuts, and thus, there is no one-to-one color correspondence between device gamuts. The device independent color specification for a color on one device may then be mapped to the same device independent color specification for the corresponding color within the gamut of another device. In devices having automated color correction processes, this mapping generally assumes that the goal of color correction is to produce what is called a "metameric" match between colors.
There are, however, many variables influencing color appearance not taken into account by automated color correction and metameric matching. Preserving certain relationships between colors and achieving consistent and appropriate colors in a document or image may be far more important to the user than a producing metamerically matching colors. In addition, color correction between color systems employing different device dependent models may introduce color appearance errors, depending on the type of automatic correction algorithm used. Automatic correction algorithms, then, which are beyond the control of the color user, may affect the information content or visual effect being conveyed in the document, illustration, drawing, or graph. These color reproduction issues are more completely described by Hansen in "Breaking the Color Barrier", Computer Graphics World, July, 1990, pg. 39-48, incorporated herein by reference. Users who want to incorporate color effectively in printed materials need the ability to directly and predictably control color appearance across different color devices, by being able to precisely and easily modify colors on one device for predictable reproduction on another device.
Alessi et. al., U.S. Pat. No. 4,958,220, discloses a color image reproduction apparatus in which an operator may preview on a video monitor, before printing, a reproduced, scanned color image as it would appear on any of a variety of image receptive output media, such as reversal film, or negative film to print material, or reversal film to print material. Each scanned input image is first transformed, via an appropriate look up table from a first set of lookup tables, to a device independent database color space, and from the device independent database color space, via an appropriate look up table from another set of lookup tables, to a selected hard copy representation. The computer-based workstation includes operator control apparatus which enables an operator to interact with the workstation to provide input information, image manipulation commands pertinent to modifying the image displayed, and output information. Image manipulation commands include the ability to independently control color quantities of hue, chroma, and lightness.
The prior art color selection or editing systems previously described which are not based on uniform color models either provide fixed palettes of color for selection, or require a nonintuitive, often unpredictable, approach to achieving a desired color modification because changes in one or more of the physical descriptors of the color space, such as in the R, G, or B dimension, do not necessarily result in a corresponding change in the perceived color. Other prior art color selection or editing systems which are based on uniform color models may be narrowly tailored for specific color selection purposes, such as scientific mapping or adjusting colors for photographic film reproduction, do not provide for complete manual control over color mapping between display and print device gamuts, only provide for single color editing, or do not provide the user with both direct image pixel manipulation and color palette manipulation. In addition, many of the previously described color selection tools do not display an entire palette of colors at one time so that a user may immediately perceive and preserve color relationships among all colors when one color is changed.
What is needed, therefore, is a system and method for color selection and color modification which provides visually intuitive and directly manipulable ways of organizing, managing, and predicting color in the context of a uniform color model. The graphical user interface of the present invention displays an entire palette of colors in a two dimensional view of a uniform color space while permitting the user to edit individual palette colors by directly manipulating the colors in the color space. Thus, the graphical user interface makes explicit to users the relationship among colors in the palette of colors as they are being edited. In addition, the present invention provides a facility for the user to manually control how a color will be reproduced in a given device gamut, on one or more output devices. The graphical user interface also provides support for various user skill levels so that both the experienced graphical artist or designer, trained in the principles of using color effectively and familiar with using the uniform color spaces, as well as the casual user, who may only create or use color illustrations or color documents occasionally, may utilize their respective skill levels to benefit from an easy and intuitive access to the full range of colors available on the devices being used.
SUMMARY OF THE INVENTION
There is provided in accordance with the present invention a graphical user interface for manually controlling and modifying the appearance of a palette of colors to be reproduced on one or more color reproduction devices. The interface is for use in a system having input signal receiving means, display means, arid memory means for storing color information signals corresponding to the palette of colors. The gamut of colors reproducible by the color reproduction device is colorimetrically measured and the color information signals representing the gamut colors are stored in the system memory means. One or more such gamuts may be measured, stored, and selected by the user for modifying the palette of colors. In response to signals from the input signal receiving means, color space drawing means draw a color space on the user's display, and draw each color in the palette in a current location in the color space. Preferably, the color space is a uniform color space. The color space drawing means also draw a polygonal gamut boundary for a selected print device gamut in the color space. The coordinates in the color space of the vertices of the gamut boundary are defined by respective ones of the colorimetrically measured colors representing the gamut.
The user will see displayed input palette colors which may fall outside the selected device gamut boundary in the color space. Colors currently located outside the selected color reproduction device gamut boundary will be reproduced by the device using automatic color correction methods and thus may have color attributes that are unpredictable to the user. The user may manually control this color reproduction for each color using the modifying means provided by the graphical user interface until each color is perceptually acceptable to the user and is a reproducible color in the selected device gamut. The modifying means include means for moving a color currently located outside the selected device gamut boundary in the color space to a destination location within the selected device gamut. Similarly, the modifying means include means for moving a color currently located within the selected print device gamut to another location within the device gamut, in order, for example, to make the color more discriminable from other colors in the palette. The color information signals of the modified color are defined by the coordinates of the destination location of the modified color in the color space. The modifying means also include lightness modifying means for modifying the lightness signal of each color in response to input signals received from the input signal receiving means.
When the user moves a color in the color space, adjusting means, responsive to the modifying means, determine whether the modified color information signals of the modified color now located inside the device gamut, as defined by the coordinates of the destination location in the color space, is actually reproducible by the device, and adjust, or "clip", the modified color information signals to correspond to a reproducible color in the device gamut. The adjusting means also include means for constraining in the device gamut a modified color moved from a current location inside the device gamut to a destination location outside the device gamut. Preferably, the reproducible color in the device gamut is a color with an appearance close to the appearance of the modified color selected by the user.
There is also provided a system for manually controlling and modifying the appearance of a palette of colors on a reproduction device, such as a printer. The system comprises a memory for storing color information signals representing each of the plurality of colors; a display, such as a color CRT monitor, for displaying the plurality of colors; input signal receiving means, such as a mouse device or keyboard, for receiving signals from a user; and color modifying processing means coupled to the input means and to the display means. The system also includes a plurality of colorimetrically measured colors representing the gamut of colors reproducible by the color reproduction device. This device gamut is stored in the system's memory means. One or more such gamuts may be measured, stored, and selected for display and color modifying in response to signals received from the input signal receiving means.
The color modifying processing means include color space drawing means for drawing on the display means a graphical representation of a color space, and for drawing the plurality of colors in the color space, each color's color information signals defining the coordinates of the color's current location in the color space. Preferably, the color space is a uniform color space, such as the CIELAB color space. The color space drawing means also draw a polygonal gamut boundary for a selected print device gamut in the color space. The coordinates in the color space of the vertices of the gamut boundary are defined by respective ones of the colorimetrically measured colors representing the gamut. The color modifying processing means also include modifying means for modifying any one color in the color space, in response to the user signals received from the input means. The modifying means include means for moving a color currently located outside the selected print device gamut to a destination location within the selected print device gamut, and for moving a color currently located within the selected print device gamut to another location within the device gamut. The color information signals of the modified color are defined by the coordinates of the destination location of the modified color in the color space. The modifying means also include lightness modifying means for modifying the lightness signal of each color in response to input signals received from the input signal receiving means.
The color modifying processing means also include adjusting means, responsive to the modifying means, for clipping the modified color information signals to correspond to a reproducible color in the device gamut. The adjusting means also include means for constraining a modified color moved from a current location inside a device gamut to a destination location outside the device gamut to be a reproducible color in the device gamut of the selected device. Preferably, the reproducible color in the device gamut is a color with an appearance close to the appearance of the modified color selected by the user.
There is also provided a method for manually controlling and modifying, in a color display system, the appearance of a palette of colors to be reproduced on a color reproduction device such as a color printer. The color display system in which the method is used has input means for receiving signals from a user, a display device, and a memory for storing color information signals representing the palette of colors. The method comprises the steps of colorimetrically measuring and storing in the system memory a plurality of colors representing the gamut of reproducible device color of the color reproduction devices, drawing on the display device a graphical representation of a color space, plotting each palette color in a current location in the color space and plotting the device gamut boundary in the color space, modifying one of the plurality of colors drawn in the color space, in response to the user signals received from the input means, by moving the color from the current location to a destination location in the color space, and storing the modified color information signals in the color display system memory. The color space is preferably a uniform color space, such as the CIELAB space. The coordinates of the current location of a color in the color space are defined by the color information signals of that color. The coordinates in the color space of the vertices of the polygonal gamut boundary drawn in the color space are defined by respective ones of the colorimetrically measured colors representing the device gamut. A modified color is defined by the coordinates of the destination location which define a set of modified color information signals representing the modified color. The color information signals defining each color in the color space include a lightness signal, and the modifying step further includes a lightness modifying step for modifying the lightness signal of the color in response to signals received from the input signal receiving means.
In the moving step, colors move in the color space from a current location outside the selected device gamut to a destination location within the selected device gamut to produce a reproducible color in the device gamut, or from a current location within the selected device gamut to another location within the device gamut, in order to manually change and control the color's reproduction in the device gamut. The modifying step of the method further includes the steps of clipping the set of modified color information signals to represent a reproducible color in the device gamut when the modified color is located in the device gamut, and constraining within the device gamut a modified color moved from a current location inside a device gamut to a destination location outside the device gamut. Preferably, the reproducible color in the device gamut is a color with a color appearance close to the color appearance of the modified color selected by the user.
Other aspects of the present invention will become apparent as the following description proceeds and upon reference to the drawings and tables.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a functional block diagram illustrating a computer controlled system suitable for implementing the present invention;
FIG. 2 is a mouse pointing device suitable for inputting user signals to the color editing graphical user interface of the present invention;
FIG. 3 is a simplified functional block diagram illustrating the graphical user interface (GUI) components of the present invention;
FIG. 4 is a pictorial representation of a display screen showing the color space window first displayed for the user upon initiating execution of the color editing GUI;
FIG. 5 illustrates a menu format and selection method which may be used to select a color space display option for display in the color space window of FIG. 4
FIGS. 6 and 7 are pictorial representations of display screens showing additional color spaces the user may select for display in the color space window;
FIGS. 8A and 8B illustrate alternative menu formats and techniques which may be used for function and data selection in the color editing graphical user interface of the present invention;
FIG. 9 is a pictorial representation of a display screen showing a palette of colors plotted in the color space window of FIG. 4, and illustrating how a color is edited according to the present invention;
FIG. 10A illustrates a menu format and selection method which may be used to select a gamut boundary option for display in the color space window of FIG. 9;
FIG. 10B illustrates the user's selection of a printer gamut boundary option for display in the color space window of FIG. 12;
FIG. 11 is a pictorial representation of a display screen with the monitor gamut selected in FIG. 10A displayed in the color space window of FIG.9;
FIG. 12 is a pictorial representation of a display screen with the printer gamut selected in FIG. 10B displayed in the color space window of FIG. 11;
FIGS. 13 and 13A illustrate the 1931 CIE Chromaticity Diagram, one of the color spaces in which color editing according to the present invention is accomplished;
FIG. 14. illustrates a three-dimensional view of realizable object colors as displayed in the 1931 CIE Chromaticity Diagram;
FIG. 15 illustrates the 1976 Uniform Chromaticity Scale Diagram, one of the uniform color spaces in which color editing according to the present invention is accomplished, and shows the regions of the diagram corresponding to naturally perceived colors;
FIGS. 16A and 16B illustrate the uniform CIE 1976 (L*a*b*) color space in which color editing according to the graphical user interface of the present invention may be performed, showing color representation in three-dimensional rectangular and cylindrical coordinate systems, respectively;
FIG. 17 is a flow chart illustrating the overall process flow for receiving and analyzing user input requests and executing color editing functions for the color editing graphical user interface of the present invention;
FIG. 18 is a flow chart showing in greater detail the operation of the initialization procedures illustrated in FIG. 17;
FIG. 19 is a flow chart illustrating the procedure for creating calibrated color device transformations for implementing the Get Calibration function illustrated in FIG. 18;
FIG. 20 is a flow chart illustrating the Get Palette Data procedure shown in FIG. 17, for the input of a palette of colors for editing according to the present invention;
FIG. 21 is a flow chart illustrating the process for converting a color representation from one color space to another;
FIG. 22 is a flow chart showing the Get Color Space Data procedure shown in FIG. 17, for selecting a new color space for display;
FIG. 23 is a flow chart illustrating the processing steps referenced in FIG. 22 for computing the data needed to draw the spectrum locus shown in FIGS. 6 and 7;
FIG. 24 is a flow chart showing the Get Gamut Data procedure shown in FIG. 17, for selecting a new device gamut for display;
FIG. 25 illustrates in greater detail the operation of block 370 in FIG. 24;
FIG. 26 is a flow chart illustrating in greater detail the operation of block 390 in FIGS. 22 and 24, for computing the data needed to draw the device gamuts shown in FIGS. 11 and 12;
FIG. 27 is a flow chart illustrating the Paint Window procedure shown in FIG. 17, for displaying a palette of colors in a selected color space window according to the present invention;
FIG. 28 illustrates in greater detail the operation of block 440 in FIG. 27, for plotting the color palette in the color space window;
FIG. 29 is a pictorial representation of a display screen with the histogram color space displayed in the color space window;
FIGS. 30 and 31 illustrate in greater detail the operation of block 490 in FIG. 28, for drawing the histogram color space of FIG. 29;
FIGS. 32A and 32B illustrate three dimensional view of device color gamut solids in CIELAB space
FIGS. 33A and 33B illustrate two embodiments of the overall processing flow for modifying a color according to the present invention, shown in the Perform Color Editing procedure of FIG. 17;
FIG. 34 illustrates in greater detail the operation of block 590 in FIGS. 33A and 33B to determine whether the user has selected a color for editing according to the present invention;
FIG. 35 illustrates in greater detail the operation of block 600 in FIGS. 33A and 33B;
FIGS. 36A and 36B illustrate two embodiments of the operation of block 620, the color clipping procedure, of FIGS. 33A and 33B, according to the present invention; and
FIG. 37 illustrates in greater detail the operation of block 650 in FIGS. 33A and 33B for performing post-color-clipping operations on a modified color.
While the present invention will hereinafter be described in connection with an illustrated embodiment, it will be understood that it is not intended to limit the invention to that embodiment. On the contrary, it is intended to cover all alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. During the following description of the features of the present invention, reference is made to the drawings in which like references have been used throughout to designate identical elements.
Table of Contents of Detailed Description
A. System Environment
1. System Components
2. Graphical User Interface Implementation
B. Overview of Screen Displays and User Interaction
1. The Color Space Window and Menu Selection
TABLE 1: Selecting A Color Space For Display
TABLE 2: Menu & Function Selection
2. Displaying a Palette of Colors
3. Editing a Palette of Colors
4. Constraining Colors Within a Gamut and Clipping Colors Between Color Device Gamuts
TABLE 3: Measured Thermal Transfer Printer Gamut Values
C. Color Spaces Available for Color Editing
1. The 1931 CIE Chromaticity Diagram EQUATIONS (1), (2), (3) & (4)
TABLE 4: Reference Numerals and Color Names in FIGS. 13 & 15
2. The 1976 Uniform Chromaticity Scale Diagram
3. The 1976 CIE 1976(L*a*b*) Color Space EQUATIONS (5), (6), (7), (8) & (9)
4. Transformations Between Physical Device Color Specifications and Tristimulus Values
D. Overview of Process Flow
TABLE 5: Palettes Data Structure--Palette Data
TABLE 6: Palettes Data Structure--Color Space and Gamut Data
TABLE 7: Palettes Data Structure--Calibration and Window Manager Data
TABLE 8: Miscellaneous Data Structures
1. Initialization Procedures
a. Defining Windows and Menu Procedures
b. Computing Display Device Calibration Matrices
c. Initializing Gamut and Spectrum Locus Data
2. User Input Signal Processing and Basic Process Flow
E. Detailed Process Flow: Retrieving Input Color Palettes
1. Retrieving and Displaying a Stored Input Color Palette
2. Editing a Color Palette Directly From Another Application
F. Detailed Process Flow: Painting the Color Space Window
1. Selecting a Color Space For Editing
2. Formatting the Spectrum Locus Trajectory
3. Selecting and Formatting a Gamut For Display
4. Painting the Color Space Window
a. Sizing the Window, and Drawing the Gamut and Spectrum Locus
b. Plotting the Colors in the Palette
c. Painting the Histogram Color Space
Table of Contents of Detailed Description--continued
G. Detailed Process Flow: Editing a Color in the Monitor's Gamut
1. Initializing a Gamut Data Structure
2. Selecting and Identifying a Color
TABLE 9: Requesting Color Editing Functions
3. Moving a Color in the Monitor's Gamut.
4. Making a Color Lighter or Darker
H. Detailed Process Flow: Constraining a Color Within a Gamut and Gamut Clipping
1. Constraining a Color Within a Gamut
TABLE 10: CONSTRAINT and INTERSECT Procedures
2. Moving a Color to Another Gamut
a. Lightness Clipping in the Device Gamut
TABLE 11: Gamut Clipping Procedure: CLIP LIGHTNESS
TABLE 12: Gamut Clipping Procedure: MAXLIGHTNESS
TABLE 13: Gamut Clipping Procedure: MINLIGHTNESS
b. Chroma Clipping in the Device Gamut
TABLE 14: Gamut Clipping Procedure: MAXCHROMA
I. CONCLUSION
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
A. System Environment
1. System Components
FIG. 1 is a simplified functional block diagram illustrating the components of a computer controlled color rendering system 20 (hereinafter, "system 20") of the type suitable for implementing the color editing graphical user interface of the present invention. System 20 may be a standalone system, such as a microcomputer-based desktop publishing system. It is also intended, however, that system 20 may be a subsystem of, or included within, a broad range of color rendering systems providing for operator control of color editing and adjustment, including but not limited to such devices as color copiers, various types of digital color printers, platemaking systems for color offset printing, and color video, film or transparency processing devices. Thus, the components of system 20 may also perform other functions not described in detail below, and interact with other system components not illustrated in FIG. 1.
As illustrated in FIG. 1, the components of system 20 include a processor 22, display means 30, and at least one memory device 24. Memory device 24 provides storage for program instructions in program memory (not shown) and for data in data memory (not shown) needed for the implementation of the color editing graphical user interface 10 software of the present invention. Memory device 24 includes a bitmap, or functionally equivalent, memory 25 for storing the color information signals representing the color to be displayed in each pixel location on display means 30. Memory device 24 may include a color map data structure 26, also used for associating color information signals with the corresponding individual pixel locations on display means 30. The operation of bitmap memory 25 and color map data structure 26 is described in more detail below.
The color editing graphical user interface 10 software (hereafter, "GUI 10") of the present invention functions as a direct manipulation user interface for controlling system 20. A user of GUI 10 selects a color editing function from available functions (described in more detail below) displayed on display 30 and provides requests for a function via user input means 28. GUI 10 is responsive to user input means 28 and accomplishes the editing task requested, displaying results of user requests through display means 30.
Processor 22 is in communication with GUI 10, executing program instructions of GUI 10 for interpreting, coordinating, and responding to the user's color editing requests. Processor 22 also executes program instructions of GUI 10 for displaying responses to user requests on display 30. Processor 22 may be any appropriate processor, such as a microprocessor. In general, during operation, processor 22 executes instructions retrieved from memory 24 in a conventional manner and retrieves and stores data in memory 24. Processor 22 also controls the communication of color information signals representing color palette information from color map data structure 26, and additionally may also control the receipt of other input data from input sources not shown. In addition, processor 22 may execute other programs to perform functions other than color editing provided by GUI 10.
User input means 28 may include any suitable device for interacting with GUI 10, including but not limited to pointing and cursor control devices for two- and three-dimensional displays, such as a mouse, light pen, track ball, joystick, or data glove device, alphanumeric input devices such as a keyboard, and touch screen displays. In addition, a combination of several user input means may also be used, as for example augmenting a pointing device such as a mouse with the ability to enter editing requests via a touch screen or keyboard. Alternatively, the user input means 28 could be a speech recognition device for speaking input, or a location sensing device for gestural input. In the illustrated embodiment of GUI 10, the three-button mouse 32 illustrated in FIG. 2 provides the primary method for a user to send signals to GUI 10 requesting color editing functions. Mouse 32 is connected in a conventional manner to system 20.
With continued reference to FIG. 1, display 30 may be any suitable color display for displaying computer generated data, such as a cathode ray tube (CRT) raster scan color monitor or a color liquid crystal display (LCD). As will be explained below, while it is preferable that display 30 be a color display device, GUI 10 may be implemented using a monochrome display device. It should also be understood that the color information signals representing color palette data edited by the user via color editing GUI 10 of the present invention subsequently may (but need not) be output to a color rendering device (not shown) of system 20, such as an electronic or digital printer, xerographic marking engine, platemaking device, or other suitable color rendering device.
In the illustrated embodiment of system 20, refresh memory area 25, in memory 24 (FIG. 1) stores color information signals for each addressable pixel on display device 30. Some systems may use a color map data structure 26 to minimize the storage requirements needed for the color information signals in memory 24. The operation of color map 26 may be described generally as follows. In systems with n-bit color displays, where each color is limited in its definition to n bits, a total of
2.sup.n different colors are producible by the system. Typical computer graphics imagery is developed on a monitor that accepts an 8-bit voltage value (a maximum of 256 levels) for each color. An image is defined as a set of pixel values in bitmap memory 25 that represent the color information signals before gamma correction. Bitmap memory 25 is a three dimensional array, with the two X, Y dimensions defined by the size needed to represent the display screen pixel locations, and with a third dimension of n bits. The data value in each location of bitmap memory 25 is an n-bit long index into color map data structure 26 (also referred to as a video look-up table, a color table, or simply, color map). The number of entries in color map 26, as determined by the number of colors displayable by display means 30, is 2.sup.n entries, while the length of each entry is determined by the number of bits used to represent each primary R, G, and B color specification. The value of color map 26 at the entry index contains the actual color information signals for controlling the voltage signals of the primary color electron guns to produce color on the display. These signals are then sent to the intensity digital to analog converter to control the intensity or color on display means 30.
An embodiment of the graphical user interface 10 of the present invention has been implemented on a SPARCstation workstation from Sun Microsystems, Inc. of Mountain View, Calif., having a Conrac color monitor, a mouse pointing device, and a keyboard. Color information signals in this implementation are defined using an 8-bit color definition.
2. Graphical User Interface Implementation
As shown in FIG. 1, the color editing graphical user interface 10 of the present invention is a body of software that exchanges data with display 30 and user input means 28, and also with processor 22 in order to accomplish the color editing functions it provides to the user. This software provides a region on display means 30 called a "window" for presenting color editing functions to the user, converts signals received from input means 28 into a series of user input signals for directing control of processor 22, and receives data from processor 22 for updating the representations in the window presented on display 30.
Turning now to FIG. 3, there is illustrated a simplified block diagram of the functional components of the color editing graphical user interface 10 of the present invention. Color editing client software 12 contains the software instructions for defining and implementing the color editing functions available to the user, for defining the color spaces and gamuts in which color editing takes place, and for directing processor 22 to perform transformations on color information signals and color spaces as needed. Color editing client software 12 also interfaces, via processor 22, with data structures 23, 25, and 26 (FIG. 1) stored in memory 24. Interaction handler 14 exchanges signals with the user through I/O interface 16 which provides signals to display 30 for viewing by the user and receives input signals from input means 28. In the illustrated embodiment, I/O interface 16 communicates with conventional graphics software 18 for formatting the signals necessary to draw the various contents of the window. However, color editing GUI 10 may be implemented without graphics software 18 by incorporating the formatting instructions for directly generating the appropriate window displays. Interaction handler 14, in turn, sends signals received from the user to color editing client program 12 for interpretation of the color editing function requested. Color editing client program 12 then sends appropriate signals to processor 22 for executing the requested function. In the illustrated embodiment, I/O interface 16 includes text handler software 17 which collects, interprets, and parses the input data stream of user input requests and data into appropriate input signals before passing the signals to interaction handler 14. However, color editing GUI 10 may be implemented without text handler software 17 by incorporating the instructions necessary to decode input signals for processing by interaction handler 14.
In the illustrated embodiment, interaction handler 14 and I/O interface 16 are part of a software environment known as a user interface management system (UIMS) which performs a variety of window management and coordination functions. A conventional UIMS, also referred to as a window manager, monitors and controls different application contexts controlled by processor 22 by separating them physically into different parts of one or more display screens. Functions implemented by the UIMS include operations to initialize a window, to save its contents, to destroy a window, and to paint its contents on the display. The UIMS also defines data fields, such as size information and display coordinates for a window, and stores implementation-dependent instance data provided by color editing client program 12 for display of color editing data in a window. The UIMS also draws and displays the text and simple graphical elements in the color editing window.
User interface management systems and tools for implementing graphical user interfaces are well known in the art. Color editing GUI 10 may be implemented in a variety of hardware and software environments providing suitable and equivalent user interface management system functions as illustrated in FIG. 3. For example, GUI 10 was implemented in a conventional workstation environment as a prototype color editing application called "MetaPalette" in the Xerox proprietary research programming development environment known as Cedar. The Cedar development environment provides extensive UIMS support functions and tools for implementing a window-based graphical user interface software application, and provides the functions described in conjunction with the interaction handler 14 and I/O interface 16 of FIG. 3. Color editing client software 12 was implemented in the proprietary Cedar programming language, a strongly-typed language similar in functionality and language structure to the Pascal programming language.
In addition, GUI 10 may be implemented in personal computer environments using low-level assembly or machine language routines for the necessary window management and application interface functions, or by using an appropriate user interface "toolkit". A toolkit contains routines and procedures for implementing UIMS functions such as windows, menus, scroll bars, and graphics, and for managing user interaction techniques for various physical input devices. Similarly, the color editing GUI
10 may be implemented in pre-press color proofing or systems reprographic machines provided that interaction handler 14 and I/O interface 16 each include software data structures and processes that mediate between the user at input means 28 and color editing client software 12 according to conventional techniques for interactive computational interfaces. It is intended that color editing GUI 10 have broad applicability to many systems environments where computer controlled color rendering is a functional component.
B, Overview of Screen Displays and User Interaction in the Color Editing Graphical User Interface
1. The Color Space Window and Menu Selection
FIG. 4 illustrates display screen 100 which appears on display device 30 of computer controlled color rendering system 20 (FIG. 1). Display screen 100 displays several metaphoric objects (not shown), called icons, each representing a function, application, or data available on system 20. Color editing graphical user interface 10 may be represented on the user's desktop as such an icon. The user may directly interact with an icon by using a pointing device, such as mouse 32 (FIG. 2), which positions cursor 116 at an icon location on display screen 100 and activates or selects the icon when a mouse button is pressed. Selecting the icon representing color editing graphical user interface 10 begins execution of the color editing application software. Message header area 110 at the top of screen 100 is used for displaying system and application-specific messages to the user.
When selected for execution by the user, GUI 10 first presents color space display window 112. The user interacts with window 112 using conventional window manipulation and window content interaction techniques. To make a selection in window
112, the user uses mouse 32 to position cursor 116 on a selectable item in window 112 and depresses and releases ("clicks") one of the buttons 34, 36, or 38 (FIG. 2), on mouse 32 to select the item, or to cause the corresponding operation to be performed. Vertical scrollbar 120 of color space window 112 will permit scrolling of the color space currently displayed up or down within the window. Vertical scrollbar portions 120A and 120B represent up and down scrolling, respectively, when invoked by mouse 32. Clicking mouse 32 over either end of horizontal scrollbar 122 will cause horizontal left or right scrolling of the color space window. In addition, the user may move the entire window 112 to another location on display screen 100, and may enlarge or reduce the size of window 112 using conventional window manipulation techniques.
With continued reference to FIG. 4, caption area 118, in the top portion of window 112, may contain the window's name, or may contain explanatory information about the contents displayed in window 112. In FIG. 4, the message displayed in caption area 118 states the name of the color space currently being displayed. Just below caption area 118 is menu area 114 which displays the functions and features available for selection by the user of color editing GUI 10.
Initiating execution of color editing GUI 10 results in the software displaying, in color space display window 112, a graphical, two-dimensional representation of the CIELAB color space 130. In the implemented embodiment of color editing GUI 10, the user may select for display any of three different color spaces in which to perform color editing, or may display a histogram showing the frequency distribution of the lightness values of the currently selected palette. FIG. 5 illustrates the menu handling for this request. Table 1 below associates the four color space display options with the buttons on mouse 32 (FIG. 2) and with the "SHIFT+ key on an input keyboard device (not shown).
TABLE 1 ______________________________________ Selecting A Color Space For Display Mouse Button (FIG. 4C) Keyboard "SHIFT" Color Space Request ______________________________________ 34 NO CIELAB 34 YES HISTOGRAM (L*) 36 NO 1976 CIE UCS DIAGRAM 38 NO CHROMATICITY DIAGRAM ______________________________________
With reference to FIG. 5, the user first positions cursor 116 over the menu entry 114D, "Color Space", on menu 114, using mouse 32. While cursor 116 is pointing to menu entry 114D, the user presses one of the valid mouse button-key combinations, listed in Table 1, to request display of the desired color space. FIGS. 6 and 7 illustrate color space window 112 with, respectively, the CIE 1976 CIE UCS Diagram color space 150 and the CIE 1931 Chromaticity Diagram color space 160 displayed. An example of the L* Histogram color space may be seen in FIG. 29, below.
In order to display a palette of colors to be edited in color space 130, the user selects menu item "Palettes", 114A, with mouse 32. As shown in FIG. 8A, selection of menu item 114A acts as a toggle switch which, when activated, presents second menu line 114B containing a list of color palette names available for display and editing in color space 130. When the user selects a list item from second menu line 114B, for example, menu item 114C, "Basic Colors", the input data file of colors identified by that name will be displayed in color space 130. Processing details for selecting a palette of colors for display may be found below in the discussion accompanying FIG. 20.
Table 2 below provides a summary listing of color editing GUI 10 functions, and defines the associated menu entries in menu area 114, mouse buttons, and keyboard keys for invoking these functions. It is intended that many other variations of the implementations described in Table 2 and in the discussion above are within the scope of the invention. For example, there may also be added to menu area 114 a command such as "Background" which would function as a toggle between a white and black background against which to display color space window 112 and the palette of colors to be edited. This feature would provide the user with the ability to make more accurate color assessments since it accommodates the importance of the surround in viewing colors.
TABLE 2 __________________________________________________________________________ Menu & Function Selection Function Selection Mouse Button (MB) and/or Keyboard Menu Entry (KEY) Color Editing Functions __________________________________________________________________________ Save Left MB Saves the current palette of colors displayed in color space 130 (FIG. 9) in the PaletteRec data structure (see Table 5). Zoom Left MB = Zoom In Enlarges or Reduces a designated portion of color spacedis- Right MB = Zoom Out play window 112 where cursor is currently positioned; per- mits closer inspection of colors displayed. Reset Left MB Sets window view to original size and top position after user has scrolled or zoomed color space display window 112. Color Space See TABLE 1 See TABLE 1 and discussion accompanying FIGS. 5-7. Gamuts Left MB Presents second menu line containing list of device names for gamuts available for display in color space 130; when the user selects list item, gamut boundary is displayed in color space 130. See discussion accompanying FIGS. 10-12. Calibration Left MB Presents second menu line containing list of device names for gamuts available for rough prediction of colors of cur- rently displayed palette. Palettes Left MB Presents second menu line containing a list of color palette names available for editing in color space 130; when the user selects a list item, the input data file of colors identified by that name is displayed in color space 130. See FIGS. 8A, 8B, and 9, and accompanying discussions. Grab Left MB + SHIFT KEY Retrieves color palette data from color map of concurrently Right MB = SHIFT executing illustrator or graphics software program, via inter- KEY face data structure; permits direct modification of colors in image or illustration; Print Left MB Prepares a print file of current illustration; from currently dis- played palette colors; routes to network printer. Middle MB Prepares a print file of tabular display of every color in color map; routes to network printer. Right MB Prepares a print file of tabular display of current palette col- ors from colors currently displayed; routes to network printer. Stop Left MB Stops the current function from being completed; useful in cases where the user has inadvertently invoked a computa- tionally expensive function. (None) Various Mouse But- Edit color by moving color to new location; change color ton Commands and lightness value; identify color; see Table 9 and discussion ac- Key Combinations as companying FIGS. 33A and 33B. shown in Table 9. __________________________________________________________________________
Moreover, any of the selections and functions of color editing GUI 10 described herein may be implemented using any suitable conventional window and menu management technique known in the art. For example, as shown in FIG. 8B, menu item 114A could also provide transient, or pop-up, menu 115 which contains a list of palettes of color available for display and editing in color space 130. The user would then select one of these palettes for display in the conventional manner. Thus, the color editing functions in the illustrated embodiment of color editing GUI 10 implemented using mouse button or keyboard combinations may of course be implemented using one of the menu selection and management techniques previously described. Similarly, when a small, easily remembered set of options is available to the user for a particular function, such as the color space selections available for display, the options may be associated with different mouse buttons or with different function keys on a keyboard, instead of using a menu.
2. Displaying a Palette of Colors
FIG. 9 illustrates the display in color space 130 of a palette of colors to be edited. After selecting the palette, the caption area 118 of window 112 displays the name of the palette being edited. The individual colors of the palette are converted from their internal storage format to values in the currently displayed color space and plotted in the rectangular color space coordinate system 130 according to their respective coordinates in the displayed color space. For example, in the implemented embodiment, each of the colors is represented internally as a set of RGB values which are first transformed into an internal set of device independent X, Y, Z tristimulus values which are then converted to the set of L*, a*, and b* values needed to plot and display the color in CIELAB space. Since the representation of the: color space is two-dimensional, the L* signals, or values, are ignored during the plotting process, and the location of each color is determined according to the value of its a* and b* coordinates. However, each color is represented as a square mark in the actual color represented, and thus the L* signal of each color is indirectly represented in color space 130.
The user may also display the colors according to their lightness (L*) signals by requesting the display of the histogram color space, shown in FIG. 29 below. In addition, color editing GUI 10 supports multiple color space display windows using conventional window management techniques, so that the user may display a palette of colors in CIELAB space 130 in one color space display window 112, and represent the L* distribution of the same palette of colors in another color space display window
112 on a single display screen 100.
The user may request, at any time, the display of any of the available color spaces listed in Table 1, and shown in FIGS. 4, 6, 7, and 29 (the histogram). When the user changes the color space, each of the colors, currently plotted according to coordinates in one color space, is converted to the color value representation in the newly requested color space and plotted in the correct location in the new color space. Details of the color space selection processing may be found below beginning with the discussion accompanying FIG. 22. Details of the process of drawing color space window 112, displaying a color space and plotting a palette of colors may be found below beginning with the discussion accompanying FIG. 27.
3. Editing a Palette of Colors.
In the implemented embodiment of color editing GUI 10, the user may select some color functions using only mouse pointing device 32. The available color function options associated with mouse requests are summarized in Table 9 and described more fully below beginning with the discussion accompanying FIG. 33A.
For example, to simply query a color requires moving cursor 116 to the color square and clicking on it with left mouse button 34. This results in displaying, in caption area 118 of color space window 112, the color's RGB values, the color's name (according to a conventional color naming standard such as that set forth by the U.S. Dept. of Commerce, National Bureau of Standards in Color: Universal Language and Dictionary Names, NBSS Special Publication 440 (Washington, D.C., 1976), and identifying user information about the color. Any other available information about the color could also be displayed, such as its CIELAB or chromaticity values.
With continued reference to FIG. 9, to edit one of the colors displayed, for example, color square 132, the user selects color square 132 with cursor 116 and middle mouse button 36 (FIG. 2). While keeping button 36 depressed, the user moves, or drags, color square 132 from its current location in color space 130 to a destination location 132a which will represent the desired modified color in color space 130. The movement of color square 132 is shown along dotted line 133. When the user releases middle mouse button 36 at the desired destination location, the new, modified color in color space 130 is determined from its location, and color square 132a is presented in the modified color.
The scrolling functions described above (see FIG. 4) as well as the "zoom" function, available in menu area 114 and described in Table 2 above, provides the user with the ability to position a portion of color space window 112 for close inspection of the edited colors. In addition, color editing GUI 10 may be implemented to allow the user to select from a number of background display colors, such as black, white, or a neutral gray color, for display and editing of the input palette of colors.
Color editing GUI 10 may also be implemented to allow editing of a palette of colors for an image or illustration, imported directly from concurrently executing illustrator or graphics software. The image or illustration itself may be displayed concurrently with color space display window 112, in a separate window. Procedures in color editing GUI 10 send modified color information to the color map data structure controlled by the illustrator or graphics software to immediately display, in the concurrently displayed window, the modified colors edited by the user in color space display window 112 using color editing GUI 10, in effect "animating" the color map of the illustrator or graphics software. This processing is described in the discussion accompanying FIG. 17.
4. Constraining Colors Within a Gamut and Manual Gamut Clipping Between Color Devices
As already defined above, the set comprising all of the colors physically producible from the primary colors of a particular display device is called the gamut of the device. In one embodiment of color editing GUI 10, some processing is performed to ensure that the modified, or moved, color is an actual reproducible color in the gamut of display device 30. This requires colorimetrically measuring the gamut of display device 30, and storing this measured gamut in memory 24. In order to ensure that the modified color is reproducible in the display device gamut, color editing GUI 10, in one embodiment, converts the coordinates representing the modified color value to hue, chroma and lightness values, maintains the hue and lightness of the destination color constant and adjusts the destination color's chroma by automatically clipping the chroma to ensure that the color is reproducible in the gamut. Details of the processing associated with initializing a device gamut and ensuring that the modified color is reproducible may be found below at Part G.
In the illustrated embodiment of color editing GUI 10, during color editing, a user will be prevented from moving colors outside of a displayed gamut boundary. Referring now to FIG. 10A, in order for the user to see where the boundaries of the display gamut are, the user may display the gamut boundary in color space 130 at any time during the editing process by highlighting (i.e., selecting), with mouse 32, menu item 114E, "Gamuts", which provides third menu line 121 containing the gamut boundaries available for display. Third menu line 121 includes both monitor and printer devices, but in an alternative method for listing the available device gamuts, individual menu entries in menu area 114 for monitor gamuts and printer gamuts may replace menu item 114E, "Gamuts", each producing a separate menu line 121 for each set of devices.
When the user selects a device name, in this case, the monitor's name, menu item 121A, the monitor gamut boundary 140 is displayed in color space 130, as shown in FIG. 11. Menu item 121A acts as a toggle switch and therefore, the user may remove the displayed monitor gamut boundary 140 from color space 130 by highlighting and selecting menu item 121A again with mouse 32.
With continued reference to FIG. 11, the user may edit color 131 in the same manner as previously described, by selecting and dragging color square 131 to a destination location 131 a along, for example, dotted line 135, but color 131 is constrained within the physical limits of the boundary of monitor gamut 140 and may not be moved beyond those boundaries. Monitor gamut boundary checking is performed regardless of whether the monitor gamut is actually displayed in color space 130. If the user attempts to move a color outside of the monitor's gamut, the destination location of the color is moved back, or "clipped", to the point on the gamut where a line from the original location and the destination location intersects the gamut boundary line. In addition, other gamut processing ensures that the modified color is at the maximum lightness for the selected chroma and hue. Details of this constraint processing may be found below in the discussion accompanying FIG. 33B and Table
10 below.
In color editing GUI 10, the concept of constraining the movement of the palette colors to within the physical limits of a device's color gamut boundary is equally applicable to hardcopy color rendering devices such as color printers. Thus, as shown in FIG. 10B, the user may also select for display in color space 130 the gamut of a color printer by selecting, according to one of the methods previously described, menu item 121B (a thermal transfer color printer) on menu line 121. Requesting display of a different device gamut will cause the monitor gamut to be removed from the display, and will cause printer device gamut boundary 142 to be displayed, as shown in FIG. 12. Comparing monitor gamut boundary 140 (FIG. 11) with printer gamut boundary 142 shown in FIG. 12, it can be seen that the gamuts are not coextensive and that there is no one-to-one linear correspondence between colors in the monitor gamut an those in the printer gamut.
In the implemented embodiment, the printer device gamut boundaries used for display in color space 130 are obtained from colorimetrically measuring a series of colors produced by each printer, preferably including at least the six colors, red, green, blue, cyan, magenta, and yellow, and the black point and the reference white illuminant. Table 3 provides the measured x, y, Y chromaticity data for the primary colors of the selected thermal transfer printer, along with corresponding XYZ tristimulus values, and CIELAB color space (a*, b*) values, computed from known conversion formulas. Additional information about these conversion formulas is provided below in Part C.
TABLE 3 ______________________________________ Measured Thermal Transfer Printer Gamut Values X, Y, Z Measured x, y, Y Tristimulus Chromaticities Values CIELAB Measured Color x y Y X Y Z a* b* ______________________________________ Red .5490 .3254 .19 .32 .19 .07 78 48 Yellow .4227 .4770 .79 .70 .79 .17 -3 100 Green .2181 .4460 .16 .08 .16 .12 -57 24 Cyan .1711 .2074 .23 .19 .23 .68 -11 -41 Blue .1921 .1581 .05 .06 .05 .21 21 -39 Magenta .4353 .2550 .21 .36 .21 .26 83 5 ______________________________________
With continued reference to FIG. 12, some of the colors, for example, color squares 131a, 144, and 146, in the displayed palette are outside gamut boundary 142 of the selected printer device. From this display, the user knows that these colors will not be accurately reproduced on the selected printer. Generally, hardcopy output devices such as printers contain mappings between RGB color specifications and CMYK color specifications which, in effect, make decisions as to how the mapping of colors between devices with different gamuts is to be handled. In this embodiment of color editing GUI 10, the user has manual control over mapping each color in the monitor's gamut to an appropriate color in the gamut of the target device by using the available color editing methods of GUI 10 to bring colors within the confines of target device gamut boundary 142.
The simplest editing method available is to bring out-of-gamut color 144 to the edge of printer gamut boundary 142 by clicking with middle mouse button 36 on color 144; color 144 will be brought to the edge of printer gamut boundary 142 using a known clipping routine, such as clipping the color's chroma value (chroma is described in more detail below in Part C.3), or any other suitable gamut clipping method.
Alternatively, using the identical method described above with respect to moving color square 131 (FIG.11), the user may select and manually move color square 144 to a destination location 144a inside printer gamut boundary 142, along, for example, dotted line 145, where the resulting color is suitable for the user's purposes. Color 144a is now constrained within the physical limits of printer gamut boundary 142 and may not be moved beyond those boundaries. In addition, the software will not permit the user to select a destination location 144a for which the current L* value for color 144 combined with the a* and b* values of destination location 144a produce a color that is not within the gamut solid for the selected printer device. Certain gamut clipping routines will automatically determine the closest available color to the one requested during the move process. Process flow details of the gamut clipping processing may be found below in the discussion accompanying FIGS. 36A and
36B.
4. Modifying a Color's Lightness Signal
In color editing GUI 10 the user also has manual control over the perceived lightness (or darkness) of a color. As noted above, while the L* values are ignored for purposes of plotting the color palette in the a*, b* color space 130, the color's L* value is indirectly represented by the color shown in a color square, and correctly illustrates it's perceived lightness or darkness. During editing, a modified color may appear too light or too dark as a result of clipping the color's lightness to fit the color into the shape of the printer gamut solid. Also, by merely changing the color's lightness, an out of gamut color may be inside the gamut boundaries at a different lightness level because of the irregular shape of the gamut solid at different lightness (L*) or luminance levels.
As an additional editing feature, the user may also change a color's lightness signal and have the change reflected in the color's display in color space display window 112. With continued reference to FIG. 12, if, for example, color 144a is too dark or too light for the user's purposes as a result of moving it into the printer gamut, the user may modify the color's lightness signal only by selecting color 144a with right mouse button 38 to darken color 144a by a fixed increment, or with right mouse button 38 in conjunction with the SHIFT key on an input keyboard (not shown) to lighten color 144a by a fixed increment. In the illustrated embodiment, this color modification is made to the CIELAB L* coordinate of the color, regardless in which color space the palette colors are currently displayed. The lightness modification, if made to a color displayed in a color space other than CIELAB color space, is interpreted by the user as a luminance modification.
A fixed increment of +10 L* units is made to the L* value to lighten the color, to a maximum of 100, and a fixed decrement of -10 L* units is made to the L* value to darken the color, to a minimum of 5, but any suitable increment resulting in a discriminable change may be used. In the illustrated embodiment, if the color space currently displayed is one other than CIELAB color space 130 (e.g., UCS Diagram 150 (FIG. 6) or Chromaticity Diagram color space 160 (FIG. 7)), appropriate conversions to and from CIELAB coordinates are made before the selected color is lightened or darkened. The resulting changed color also undergoes a clipping process to ensure that it is a valid color in the monitor gamut solid. Process flow details of changing a color's lightness may be found below in the discussion accompanying FIGS. 33A and 33B.
The foregoing discussion illustrates that, in effect, the implemented embodiment of color editing GUI 10 described herein provides the user with a simple and intuitive, yet powerful and accurate tool for manipulating entire palettes of color to both enhance the user's aesthetic color selection abilities and to control color fidelity across different color display or reproduction devices. Because the entire palette of colors is always displayed in color space 130, the user is able to assess each edited color in relationship to all other colors in the palette simultaneously while performing a range of color editing functions. The user may perform individual color correction by manually controlling and modifying each individual color, in the context of other colors, to produce the color desired, on the same display device on which the color was created, or on a different color display or reproduction device, using the substantial perceptual uniformity of the CIELAB color space to assist in locating each color appropriately. Before turning to the detailed description of the process flow of color editing GUI 10, there is next presented a discussion of relevant mathematical and organizational principles of the color spaces available to the user for displaying and modifying palettes of color.
C. Color Spaces Utilized in the Color Editing Graphical User Interface
As already noted above, the implemented embodiment of color editing GUI 10 uses a CIE device independent color model based on colorimetric principles for internal color representation and manipulation. CIE color specification employs such a set of device independent X, Y, and Z tristimulus values to specify a color according to the color's appearance under a standard source of illumination as viewed by a standard observer.
1. The 1931 CIE Chromaticity Diagram
The 1931 CIE Chromaticity Diagram color space 160 (hereafter referred to as the "chromaticity diagram") (FIGS. 7, 13 and 14) represents colors according to their "chromaticity" coordinates. Chromaticity coordinates x, y, and z, together sum to one, as shown in Equation (1), and are mathematically derived by taking the ratios of the respective X, Y and Z tristimulus values o,f a color to the sum of all three tristimulus values, as shown in Equations (2), (3), and (4) below: ##EQU1## The resulting x and y chromaticities are then plotted on the two dimensional chromaticity diagram 160 shown in prior art FIG. 13. The horseshoe-shaped "spectrum locus" 102 is a set of points representing the x, y chromaticities of the spectrum (monochromatic) colors, plotted according to their wavelengths. In the illustrated embodiment of the color editing GUI 10 of the present invention, wavelength designations ranging from 380 to 700 nanometers are plotted in chromaticity diagram 160 to form the outline of the spectrum locus 102. The x and y chromaticity coordinates for any naturally occurring color are located within the bounds of the spectrum locus 102 and the line 104 that joins the ends of the spectrum locus, referred to as the "purple line". The source of the x, y values used to plot the spectrum locus in the illustrated embodiment is identified in Table 8 below. Various illuminants are used for measuring colors and specifying tristimulus values and chromaticities, and the illuminant used to measure and compute a color's tristimulus values is generally specified when denoting colors on the chromaticity diagram. In FIG. 13, CIE standard illuminant D.sub.50, with an approximate correlated color temperature of 5000 degrees Kelvin, is plotted on chromaticity diagram 160 at point 106.
The mapping of natural colors to the chromaticity diagram 160 provides a useful context in which to display a palette of colors and to edit individual colors to modify their appearance. FIG. 13 illustrates the regions on the chromaticity diagram where colors in the same "hue" family will be found, denoting these regions with drawing reference numerals from 51 to 73. "Hue" is the attribute of visual sensation which has given rise to color names such as blue, green, yellow, purple, and so on. Table 4 provides a corresponding key of color names identifying the color regions represented on chromaticity diagram 160. The color naming conventions used in Table 4 follow the color naming conventions set forth by the U.S. Dept. of Commerce, National Bureau of Standards in Color: Universal Language and Dictionary Names, NBSS Special Publication 440 (Washington, D.C., 1976 ), at pages 1 through 14. The upper area of chromaticity diagram 160, generally in region 73, contains the various chromaticities that are in the green hue family. Blues and violets generally occur in regions 68, 69, 70, and 71, while reds are found generally in regions 59, 60, 61, 62, 63, and 64. Yellow colors in region 55, orange in region 57, and other related colors fall between the green region 73 and the red region 60.
TABLE 4 ______________________________________ Reference Numerals and Color Names FIGS. 13 & 15 Ref. No. Color Name ______________________________________ 51 ILLUMINANT AREA 52 YELLOWISH GREEEN 53 YELLOW GREEN 54 GREENISH YELLOW 55
YELLOW 56 YELLOWISH ORANGE 57 ORANGE 58 ORANGE PINK 59 REDDISH ORANGE 60 RED 61 PURPLISH RED 62 PINK 63 PURPLISH PINK 64 RED PURPLE 65 REDDISH PURPLE 66 PURPLE 67 BLUISH PURPLE 68 PURPLISH BLUE 69 BLUE 70 GREENISH BLUE 71 BLUE-GREEN 72
BLUISH GREEN 73 GREEN 74 ORANGE YELLOW 75 YELLOWISH PINK ______________________________________
An important property of chromaticity diagram 160 is that all mixtures of two colors lie on a straight line segment connecting the two colors. For example, in FIG. 13A, straight line segment 79 connecting colors 77 and 78 plotted on chromaticity diagram 160 provides the context for mixing colors 77 and 78. Mixing colors 77 and 78 produces a mixture color having x, y chromaticity values which lie along line 79 and which is at a distance along the line from each of the component colors 77 and 78
inversely proportional to the amount of the component colors 77 and 78 in the mixture color. Also, as can be seen from FIG. 13 and Table 4 and how color names are mapped to labeled regions 52 through 63, moving color 77 in chromaticity diagram 160, which lies in color region 71 on FIG. 13, along line 79 toward color 78, which lies in color region 73, may change its hue, since color region 72 lies between these two regions.
The center area 51 of chromaticity diagram 160 of FIG. 13 is an area of predominantly achromatic, neutral colors, including greys, whites, and blacks. Dotted line segment 80 in FIG. 13A, extending from spectrum locus 102 through color 76 and through white point 106, provides the context for changing the "saturation" of color 76. "Saturation" is the attribute of color perception that expresses the colorfulness of an area, judged in proportion to its brightness, or the color's degree of departure from an achromatic grey color, regardless of the color's brightness. Thus, the more saturated a color is, the farther away it is from the neutral and gray region 51 (FIG. 13) of chromaticity diagram 160. Moving color 76 on line 80 from spectrum locus 102 toward white point 106 is tantamount to adding white to the color which desaturates it.
Chromaticity diagram color space 160 may also be represented as a three dimensional space (called the CIE x,y,Y space) where the Y dimension is the Y stimulus value for a color given by the chromaticities, x and y, and is proportional to the photometric quantity of "luminance". For a black surround, the Y stimulus correlates with a color's "brightness", technically defined as the attribute of a visual sensation according to which the area in which the visual stimulus is presented appears to emit more or less light in proportion to that emitted by a similarly illuminated area perceived as a white stimulus. The term "lightness" may be referred to as relative "brightness", and variations in lightness range from "light" to dark".
FIG. 14 shows all realizable object (natural) colors, shown as object color solid 162, with respect to the standard observer and CIE standard illuminant D.sub.65, shown at point 109. Planes 80, 82, 84, and 86, dividing object color solid 162, created at luminance (Y) values equal to 20, 40, 60, and 81, respectively, illustrate that chromaticity boundaries in the x and y dimension change shape and are progressively smaller at higher lightness levels, indicating that fewer realizable object colors in color regions 51 thru 73 (FIG. 13) exist at increasing luminance levels. In color editing GUI 10, when the user manually adjusts the color signal controlling the perceived lightness (or darkness) of a color (as described earlier in the discussion accompanying FIG. 12), it is helpful for the user to conceptualize the change as the color changing planes in object color solid 162. Control over the lightness dimension of a color is also readily conceptualized in the 1976 CIE 1976 (L*a*b*) color space described below.
2. The 1976 Uniform Chromaticity Scale Diagram
A disadvantage of the 1931 Chromaticity Diagram is the fact it does not uniformly express perceived differences between colors. That is, a given change in the chromaticity of a color will not necessarily result in a proportional change in the perceived color, and a very small change in a color's chromaticity may actually result in a disproportional perceived color difference. Consequently, other color spaces, in particular other CIE color spaces, more uniformly representing human color perception attributes and differences, may be more suitable to a user of color editing GUI 10 for editing purposes. While color editing GUI 10 of the present invention provides two additional CIE spaces in which colors may be edited, those skilled in the art will appreciate that any uniform color space with mathematical transformations between tristimulus values and the color space coordinates may be used as a context in which to edit, modify and display colors according to the GUI of the present invention.
As shown in FIGS. 6 and 15, one of the CIE color spaces provided for editing is the 1976 Uniform Chromaticity Scale Diagram 150, also known as the CIE 1976 UCS diagram, the "u', v' (u-prime, v-prime)" diagram, and the CIE metric diagram (hereafter referred to as the "UCS diagram"), illustrated in FIG. 15. UCS diagram 150 is a mathematical transform of the 1931 CIE space which better represents the discrimination of color attributes hue and saturation in such a manner as to represent equally spaced color differences as points separated by nearly equal distances. In a manner similar to that in FIG. 13, FIG. 15 illustrates numbered regions on the UCS diagram where colors in the same hue family are found, denoting these regions with reference numbers from 51 to 75. Table 4 provides a corresponding key of color names identifying the color regions represented on UCS diagram 150. UCS diagram 150 more directly supports the perceptual attribute of "saturation" than does chromaticity diagram color space 160. In addition, the UCS space more readily allows visualization of certain perceptual relations among colors, such as, for example, being able to identify when two colors will be equally saturated, or to identify when two colors will appear different in both hue and saturation.
3. The 1976 CIE 1976 (L*a*b*) Color Space
As already noted, modifying colors using the implemented embodiment of color editing GUI 10 may also be performed in the CIE 1976 (L*a*b*) color space 130 (FIG.4), where a numerically computed color difference bears a closer relationship to a color difference actually perceived by a human observer. CIELAB space is an opponent-type color space, based on the opponent-color theory used to describe or model human color vision, which maintains that all colors are coded by the eye and brain into light-dark, red-green, and yellow-blue signals. In a system of this type, opposite colors are mutually exclusive, and a color a cannot be red and green at the same time, and a color cannot be yellow and blue at the same time, but a color can be described as red and blue, as in the case, for example, of purple.
FIG. 16A illustrates a three-dimensional rectangular coordinate view of opponent-type CIELAB color space 130. Two opponent coordinate axes 134 and 136, represented by a* (a-star) and b* (b-star) respectively, describe the chromatic attributes of color. The a* axis 134 represents the red-green coordinate, where positive values of a* denote red colors, while negative values denote green colors. The b * axis 136 represents the yellow-blue coordinate, where positive values represent yellows and negative values signify blues. The a* and b* coordinates are roughly correlated to the postulated corresponding channels in the human visual system.
The L* (L star) coordinate defines a perceptual correlate of a color's "psychometric lightness". Lightness is defined as the attribute of a visual sensation according to which the area in which the visual stimulus is presented appears to emit more or less light in proportion to that emitted by a similarly illuminated area perceived as a "white" stimulus. Lightness is thus an attribute of visual sensation that has meaning only for related visual stimuli, and may be referred to as "relative brightness". L* is in the range of 0 to 100. The central L* axis 138 of the CIELAB color space lies perpendicular to the a*, b* plane and achromatic or neutral colors (black, gray, and white) lie on L* axis 138 at the point where a* and b* intersect (i.e., where a*=0, b*=0).
Colors specified as tristimulus values X, Y, and Z are located in rectangular CIELAB space according to the formulas in Equations (5) through (7): ##EQU2## with the constraint that X/X.sub.n, YY.sub.n, Z/Z.sub.n >0.01. The terms X.sub.n, Y.sub.n, Z.sub.n are the tristimulus values for the reference white for a selected standard illuminant and observer, with Y.sub.n equal to 100 for the perfect diffuser. Those skilled in the art will appreciate that the display reference white illuminant (maximum Y) may also be used for the Y.sub.n value in Equations (6), (7), and (8). Additional information on selecting the reference white may be found in Hunt, R. W. G., Measuring Color, Chapter 5, Section 5.9, pp. 114-116. Those skilled in the art will also appreciate that additional formulas are available for the case where X/X.sub.n, YY.sub.n, Z/Z.sub.n <0.01; these formulas may be found in the references included below.
As those skilled in the art are aware, mathematical manipulations of colors described in L*, a*, and b* rectangular coordinate CIELAB space may also be accomplished in cylindrical coordinates which permit identification and manipulation of the perceptual correlates of "hue" and "chroma". The formulas for computing the hue and chroma correlates are given in Equations (8) and (9), and the third coordinate, L*, is given above in Equation (5): ##EQU3## In Equation (8), the quadrant of the resulting angle depends on the particular combination of positive or negative signs of a* and b*.
Turning now to FIG. 16B, there is illustrated a three dimensional view of cylindrical coordinate CIELAB space 130. Colors C1 at point 88, C2 at point 90, and C3 at point 92 are each defined in this view of CIELAB space by their hue, lightness, and chroma coordinates. As already noted above, hue is defined as the attribute of visual sensation which has given rise to color names such as blue, green, yellow, purple, and so on. A hue correlate in cylindrical CIELAB space is the angle which correlates to a hue numerically by an angle ranging from 0.0 to 360.0 degrees, with values evenly distributed around the L* axis 138 from the positive a* axis 134, and with red corresponding to hue=0.0 degrees. The hue angles of color C1 at point 88 and color C3 at point 92 are both equal to 0.0 degrees since colors C1 and C3 fall directly on a* axis 134. The hue angle of second color C2 at point 90 is defined by hue angle 89 from the positive a * axis 134. Note that it can also be determined from FIG. 16B that the change in hue-angle between colors C1 88 (or colorC3) and C2 90 is also equal to hue-angle 89.
The "colorfulness" or "chromaticness" of a color is the attribute of visual sensation according to which an area appears to exhibit more or less of its hue. Chroma is an object's colorfulness judged in proportion to a similarly illuminated achromatic area. A different range of chroma is available for various hue-angles as well as for various lightness (L*) levels. Thus, the chroma of a color has a correlate in cylindrical CIELAB space radiating out perpendicularly from central L* axis
138 and is the distance away from the achromatic, or gray, central L* axis 138 for a given lightness (L* level) and hue-angle. Chroma, then, is orthogonal to both the hue-angle and lightness, and is different from the perceptual correlate of saturation. Saturation contains both lightness and chroma so that changing saturation on the Chromaticity Diagram changes both lightness and chroma. With continued reference to FIG. 16B, the chroma of color C1 is defined as the measure of the radial distance along line 93 from p