Reference color selection system
This is a continuation of application Ser. No. 07/677,706, filed Mar. 29, 1991 is now abandoned. 
    
    
     COPYRIGHT NOTICE 
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 
     FIELD OF THE INVENTION 
     This invention relates to color selection systems for use with computer based color presentation programs, and more particularly, to a color selection system for selecting and mixing colorimetrically accurate colors for use in a color presentation system. 
     BACKGROUND OF THE INVENTION 
     Color is playing an increasingly important role in computer graphics. Broader affordability and availability of computer controlled systems with color processing capabilities will promote wider acceptance and use of color in document-intensive industries or document-intensive functional areas of enterprises. As a result, there is a steadily increasing use of computer based color presentation programs by computer users with little or no training in color science and in the aesthetic and technical uses of color. By computer based color presentation programs is meant a wide range of computer based graphics illustrators, page layout programs, graphics editors, business graphics programs and modern spreadsheet programs, publishing systems, image retouching systems, and other similar color presentation programs for using color on computers. 
     These users are often dissatisfied with the aesthetics of the final product produced by the color tools that are available for existing color presentation systems. There are several reasons for this disappointment. Known color selection systems typically allow users to select only one color at a time, and users seldom are able to focus on the relationship among the colors. These color selection systems ignore well-known principles of color perception theory that human perception of color is influenced by the effect of adjacent colors, the surround against which a color is viewed, and the illumination under which a color is viewed. 
     In addition, existing color selection systems often utilize a device dependent color classification model, providing color descriptor classifications, or dimensions, that correspond to the underlying color models that 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 dyes, inks, or toners on paper. In addition, models based on mathematically transforming RGB signals to hue, saturation, and value (HSV) signals have also been used. Color selection systems based on these device dependent color models operate in color spaces that treat color differences and changes in incremental steps along dimensions which are useful to control the physical devices. For example, lookup tables give the users of these existing systems convenient access to the RBG signal values that produce the selected colors on their monitors, thereby facilitating entering the signal specifications for the selected colors into the data files for their composition. 
     Device dependent color space models, such as the RGB model or HSV color model, are not necessarily related to how humans visually perceive color, and in such systems it may be difficult for a user to approximate how much change in one dimension is needed to produce a desired change in the color, requiring considerable trial and error to achieve a desired color selection. 
     A prior art color selection system utilizing HSV color space is disclosed in Holler, U.S. Pat. No. 4,721,951, entitled, &#34;Method and Apparatus for Color Selection and Production&#34;. An apparatus and method are disclosed wherein a color is selected on 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. Selected hue, saturation, and brightness color characteristics and the current color selected are illustrated on the display, and are immediately updated whenever changes of the H, S, or V occur, in a manner that facilitates a rapid and interactive selection process. 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. 
     In another prior art color selection system, Guitard and Ware disclose, in &#34;A Color Sequence Editor&#34;, ACM Transactions on Graphics, 9:3 (July 1990), at pp. 338-341, a color sequence editing tool to enable the rapid editing of the contents of a color lookup table (LUT). An editing window consists of three plotting areas containing Hue, Saturation, and Value plots and a color sequence feedback area. The horizontal coordinate in a plotting area corresponds to an entry in the LUT; the vertical coordinates give values of Hue, Saturation, and Value, respectively. Each plotting area is actually 256 pixels wide and can be considered as 256 slider bars controlling 256 LUT entries. To edit the color sequence, the user moves the cursor to the desired plotting area and draws or &#34;plots&#34; a curve. This replaces the plot previously drawn and causes a real-time change in the corresponding LUT entries. 
     Meier, B., in &#34;ACE: A Color Expert System for User Interface Design&#34;, Proceedings of the ACM SIGGRAPH Symposium on User Interface Software (October 1988) discloses a production expert system designed to select colors for user interface design. Guidelines, heuristics, and rules of thumb from literature relating to the effective use of color in computer displays were synthesized into a set of strategic and tactical prescriptive rules for color selection, including tactical information for color selection and information related to the relational constraints imposed between a color selection and its function in the user interface. The set of colors selected consisted of ten perceptually different hues, fifteen &#34;brightnesses&#34; between black and white for each hue, and three saturations for each hue/brightness combination, yielding a total of 450 different colors available for selection, 150 of which were shades of gray. 
     Further complicating the color selection process is the effect of color usage on color selection. Colored images can be partitioned into two classes: (1) those that contain so-called &#34;reference colors&#34;, and (2) those that utilize &#34;functional colors&#34;. Reference colors are colors of naturally occurring objects in the human perceptual world, such as colors of skin, grass, and the sky. On the other hand, functional colors serve a purely symbolic function, such as coloring different areas of maps and graphs to convey information, and these colors are not intended to symbolize objects found in nature. Thus, functional color palettes preferably are composed of coordinated harmonious colors to provide color combinations that aesthetically appeal to the ordinary observer. Typically, selecting functional colors for an application requires an understanding of, or at least an appreciation of, how colors combine to form an aesthetically pleasing image. 
     Selecting or modifying reference colors requires a distinctly different approach. A user may either be creating a true-to-life image, or modifying the colors in a true-to-life image created elsewhere and digitally reproduced on his computer system. The goal of such color selection and modifying is to closely match each reference color to the color it represents in nature, thereby facilitating the identification of objects in the computer generated or reproduced image. In particular, when a user wishes to color a reference object, for example, a Chinese porcelain vase, a precise specification of a reference color is difficult to generate from memory. An artist, for example, mixes colors together until he or she achieves the desired matching color. Matching a color by mixing paints requires skill. Matching a reference color by selecting computer generated colors in RGB or HSV color spaces as described above is very difficult because device dependent color spaces do not permit the user to readily transfer his or her artist&#39;s skills to the computer, or to use the color space dimensions to develop intuitive judgments about mixing colors. In addition, for those cases where the highest fidelity of reproduced color to actually perceived color in nature is required, such as, for example, in the case of the Chinese porcelain vase in a photographic image, typical color selection systems provide no way to assure that a mixed or selected color is colorimetrically accurate. 
     A perceptually uniform color space which more closely approximates how humans perceive colors and color differences facilitates color specification tasks. In particular, standardized color notation systems for use in perceptually uniform color spaces have been developed by an international color standards group, Commission Internationale de l&#39;Eclairage (the &#34;CIE&#34;). CIE color specification employs &#34;tristimulus values&#34; to specify colors and to establish device independent color spaces. In 1976, the CIE recommended the use of two approximately uniform color spaces, the CIE 1976 (L*u*v*) or the CIELUV color space, and the CIE 1976 (L*a*b*) or the CIELAB color space. 
     Generally, preference for using one or the other CIE uniform color space is based mainly on convenience of use in particular industrial applications. CIELUV space is often used to capture the color appearance of additive color mixtures, such as those on color display monitors, and as such is used as a standard color space by the television and video industries. CIELAB space is often used to capture the color appearance of subtractive color mixtures, and as such is a standard color descriptor for the paint and dye industries, and is the primary uniform color space used for printed color evaluation. CIE color spaces are widely accepted because measured colors can readily be expressed in these CIE recommended coordinate systems by means of simple mathematical transformations of the spectral power distributions. 
     The prior art also discloses a system for using a perceptually uniform color space model for color selection. Taylor et al., in EP 0 313 796 A3, entitled, &#34;Computer display color control and selection system&#34;, 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 includes a method for selecting any of the combinations of hue, chroma, and lightness which are graphically displayed as available for use. The graphical representation 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. The continuous shading mode allows a range of colors to be generated between two colors specified by the user for smooth shading applications. 
     De Corte, W., in &#34;Finding Appropriate Colors for Color Displays&#34; in Color Research and Application, Vol. 11, No. 1, Spring 1986, pp. 56-61, discloses a methodology and supporting algorithm to determine high-contrast sets of colors for use on a color CRT under varying conditions of illumination. The method generates colors which are highly contrasting and ergonomically optimal, given the number of colors, N, one wants to display. The color selection algorithm attempts to maximize the minimal between-color distance for a set of N points in the perceptually uniform CIELUV color space in such a way that the resulting colors remain within the gamut of colors which can be displayed by the terminal while meeting constraints derived from research in human vision and human factors. 
     Beretta, G. B., the named inventor herein, in Selecting Colors for Representing VLSI Layout, Xerox Palo Alto Research Center, Technical Report EDL-88-7, 1988, pp. 2-6, discloses a method for selecting discriminable colors for use in designing a VLSI layout using a computer-assisted design (CAD) graphics system. The method divides the layers of the VLSI circuit into functional classes and applies color theory rules to the selection of colors for each layer. Then, colors to be selected are manipulated in CIELAB space in order to more easily determine and uniformly distribute discriminable colors. 
     Other prior art color selection systems perform automatic color selection. Braudaway, G., in U.S. Pat. No. 4,907,075, entitled, &#34;Method for Selecting Colors&#34; discloses a method for selecting a limited number of presentation colors from a larger palette to provide digitization of a color image. A three-dimensional color histogram of the image is generated, having axes corresponding to red, green, and blue, and a first color is selected based upon the color occurring most frequently in the image. Subsequent colors are selected by choosing one at a time those colors having the highest weighted frequency of occurrence. Final color selection may be made according to a disclosed cluster analysis method for minimizing image entropy. 
     Lai et al., U.S. Pat. No. 4,794,382, entitled &#34;Image Retouching&#34;, disclose an image retouching method and apparatus in which an operator using a color monitor may selectively alter colors of an original, scanned image displayed on the monitor prior to printing the image using a two stage process. An operator displays on a monitor a first range of colors, adjacent colors differing from each other by more than a predetermined amount, and then selects one of the displayed colors. The selection in turn causes a second range of colors centered on the selected color to be displayed, the adjacent colors of the second range differing from each other by less than the predetermined amount. The operator then selects from this second range of colors a tint which is to be the selected tint. The operator may selectively change the intensity or other property of one or both of the first and second range of colors as desired in respected predetermined steps. In the preferred embodiment, the characteristics by which each color is quantified are printing color components, cyan, magenta, yellow, and optionally black such that all colors displayed on the monitor are printable using conventional printing inks. 
     The ideal computer-aided color selection system should provide a general purpose, visual color selection mechanism for organizing color in a way that makes it easy to understand color elements and relationships, and which makes preliminary aesthetic determinations for subsequent review and modification by the user. For selecting reference colors in particular, a color selection system is needed that provides colorimetrically measured palettes of colors for classifications of natural objects, such as skin tones, trees, grass, and sky. In addition, there is needed a facility for mixing colors from known measured colors, approximating the artist&#39;s mixing of colors when the artist creates a color &#34;wash&#34;, thereby making color selection and manipulation intuitively predictable and manageable even for the novice color user. Existing systems, even those based on a perceptually uniform color model, generally do not provide such assistance. 
     Therefore, an interactive color selection system is needed for providing increased color selection assistance to users of a wide variety of color presentation systems, in particular for the selection of reference colors which represent colors of natural objects. Moreover, it is important to have a relatively simple user interface for this color selection system so that users can apply it to the color selection tasks they are facing, without having to understand or master features of the system that are irrelevant to those tasks. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention there is provided a system for creating a palette of colorimetrically measured colors. Palettes of colorimetrically measured reference colors are defined in a memory device, each color in each of the palettes being defined by a device independent color specification. Input means, such as a keyboard or a mouse pointing device, sends signals to color palette display means and to color selection interface means to display and modify a selected one of the plurality of palettes of colorimetrically measured reference colors. Each color in the selected palette of reference colors is specified as a set of colorimetric coordinates in a uniform color space. The color palette interface means includes color mixing means for creating a plurality of intermediate colors between a first and second selected end colors selected by the user from the selected and displayed palette of reference colors. The color palette interface means further includes means for selecting at least one of the plurality of intermediate colors to be added to the selected palette of reference colors to modify the palette as needed. The color palette interface means also includes means for deleting colors from the selected palette. Memory means, cooperatively associated with the color palette interface means, stores the selected palette of reference colors and the modified palette of reference colors during the color selection process. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Additional features and advantages of this invention will become apparent when the following detailed description is read in conjunction with the attached drawings, in which: 
     FIG. 1 illustrates the uniform CIE 1976 (L*a*b*) color space, in which functional color selection according to the present invention may be performed, in three-dimensional Euclidian coordinates; 
     FIG. 2 is a schematic block diagram illustrating a computer system suitable for implementing the present invention; 
     FIG. 3 is a schematic block diagram illustrating the software environment in which the functional color selection of the present invention may operate; 
     FIGS. 4, 5, 6, and 7 illustrate a sequence of display screens according to an illustrated embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT 
     While the invention is described in some detail hereinbelow with specific reference to an illustrated embodiment, it is to be understood that there is no intent to limit it to that embodiment. On the contrary, the aim is to cover all modifications, alternatives and equivalents failing within the spirit and scope of the invention as defined by the appended claims. 
     A. The Uniform CIELAB Color Space 
     The preferred embodiment of the reference color selection system of the present invention operates in a perceptually uniform color space which facilitates color specification tasks. In particular, the illustrated embodiment of the reference color selection system represents and permits modification of predefined palettes of colorimetrically specified colors by representing and directly manipulating these colors in the CIE 1976 (L*a*b*) (hereafter referred to as &#34;CIELAB space&#34; or &#34;LAB space&#34;). However, it is intended that the reference color selection system of the present invention may be implemented in any of the currently defined perceptually uniform color spaces, such as the CIELUV space, the Munsell color space, and the OSA Uniform Color Scales, or in a future newly defined perceptually uniform color space. 
     CIELAB space is a perceptually uniform color space in which the numerical magnitude of a color difference bears a direct relationship to a perceived color appearance difference. CIELAB space is an opponent-type color space, based on the opponent-color theory used to describe or model human color vision. In a system of this type, colors are mutually exclusive; for example, a color a cannot be red and green at the same time, or 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. 1 illustrates a three-dimensional Euclidian coordinate view of opponent-type CIELAB color space 10. Two opponent coordinate axes 12 and 14, represented by a* (a-star) and b* (b-star), respectively, describe the chromatic attributes of color. The a* axis 12 represents the red-green coordinate, while the b* axis 14 represents yellow-blue. Positive values of a* denote red colors, while negative values denote green colors. Similarly positive values of b* represent yellows and negative values signify blues. The a* and b* coordinates are correlated to the postulated corresponding channels in the human visual system. 
     The L* (L star) coordinate defines the perceptual correlate of a color&#39;s &#34;psychometric lightness&#34;. 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 &#34;white&#34; stimulus. Lightness is thus an attribute of visual sensation that has meaning only for related visual stimuli, and may be referred to as &#34;relative brightness&#34;. L* is in the range of 0 to 100. The central L* axis 18 of the CIELAB color space lies perpendicular to the a*, b* plane and achromatic or neutral colors (black, grey, and white) lie on the L* axis at the point where a* and b* intersect (a*=0, b*=0). 
     Colors specified as tristimulus values X, Y, and Z are located in Euclidian CIELAB space according to the formulas in Equations (1) through (3): ##EQU1## with the constraint that X/X n , Y/Y n , Z/Z n  &gt;0.01. The terms X n , Y n , Z n  are the tristimulus values for the reference white for a selected standard illuminant and observer, with Y n  equal to 100. Those skilled in the art will appreciate that additional formulas are available for the case where X/X n , Y/Y n , Z/Z n  &lt;0.01; these formulas may be found in the references included below. 
     Colors specified in CIELAB space with their L*, a*, and b* coordinates are difficult to visualize and reference as colors that are familiar to users. In this disclosure, for purposes of referring to colors by known names and according to human perceptual correlates, colors specified in CIELAB space are also referenced by the human perceptual correlates of hue, or &#34;hue-angle&#34;, and chroma. As those skilled in the art are aware, colors described in L*, a*, and b* Euclidian coordinate CIELAB space may also be specified in cylindrical coordinates. Cylindrical coordinates permit identification and manipulation of the perceptual correlates of &#34;hue&#34; and &#34;chroma&#34;. 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. Hue is defined in cylindrical CIELAB space as &#34;hue-angle&#34; which designates a hue numerically by an angle ranging from 0.0 to 360.0 degrees, with hues evenly distributed around the L* axis from the positive a* axis. &#34;Colorfulness&#34; or &#34;vividness&#34; is the attribute of visual sensation according to which an area appears to exhibit more or less of its hue. Chroma is an object&#39;s colorfulness or vividness judged in proportion to the brightness of a reference white, or with reference to a similarly illuminated area. Chroma in cylindrical CIELAB space radiates out perpendicularly from the central L* axis. Thus, the chroma of a color may be viewed as the distance away from the achromatic, or gray, central L* axis for a given lightness (L* level) and hue-angle, and is orthogonal to both the hue-angle and lightness. 
     The formulas for computing the hue and chroma correlates are given in Equations (4) and (5), and the third coordinate, L*, is given above in Equation (1): ##EQU2## In Equation (4), the quadrant of the resulting angle depends on the particular combination of positive or negative signs of a* and b*. 
     Additional information, not provided above, relevant to defining color in the CIE system, for utilizing CIE color spaces for displaying and modifying colors in graphics applications, and for defining additional standard mathematical transformations between tristimulus values and coordinates in CIE color spaces, may be found in several well-known colorimetry and color science texts and publications. Specific attention is directed to the following references: Hunt, R. W. G., Measuring Colour, Ellis Horwood Limited, Chichester, England, 1987 (reprinted in 1989) Chapter 3, Sections 3-1 through 3-10, pp. 53-69; Meyer, G. W., and D. P. Greenberg, &#34;Perceptual Color Spaces for Computer Graphics&#34;, in Color and the Computer, H. J. Durrett, ed., Academic Press, 1987, pp. 83-100; and Hunter, R. S., Harold, R. W., eds., The Measurement of Appearance, 2nd Ed., John Wiley &amp; Sons, 1987, Chapters 7, 8, and 9, pp. 95-165. 
     B. The Reference Color Selection System Environment 
     1. The Systems Environment 
     Turning now to FIG. 2, there is a more or less conventional computer workstation 51 that has a processor 52 for processing user inputs received from a keyboard 53 and a &#34;mouse&#34; or similar user operated pointing device 54, together with a color monitor 55 for displaying the images that are created by such processing. In keeping with standard practices, the processor 52 has a memory system (not shown) comprising a main or primary memory for storing active programs and data files and a secondary memory for storing other programs and data files. Furthermore, the processor 52 is interfaced, as at 56, with a local or remote color printer 57. 
     Turning now to FIG. 3, there is illustrated a color graphics software environment operable through workstation 51 in which the reference color selection system 63 of the present invention may operate. A color presentation program, in this case a graphics illustrator 62, enables the user to create and manipulate graphical objects to produce graphical images. The illustrator 62 is interfaced with the reference color selection system 64 and with a functional color selection system 63 for allowing the user to interactively select reference colors and functional colors, respectively, for such compositions. 
     In accordance with the present invention, color palette database 68 is provided for storing the predefined and colorimetrically measured color palettes (discussed in more detail below) provided with the reference color selection system. Color palette database 68 may also be used for storing user created palettes for reuse and re-editing at a later date. Thus, palettes of functional and reference colors already created may be retrieved or copied from, as well as stored in, palette data base 68. 
     In keeping with this invention, the color selection systems 63 and 64 are independent programs that are invoked selectively by the user, thereby reducing the complexity of the user interface through which the user interacts with these systems. Further information regarding the functional color selection system may be found in a concurrently filed, commonly assigned United States patent application entitled &#34;Functional Color Selection System&#34;, Ser. No. 677,682. 
     2. The Computer Implementation of the Illustrated Embodiment 
     A current embodiment of the reference color selection system of the present invention has been implemented on a Sun Microsystems Sparcstation computer in a research software application program, known as Digital Palette. This implementation was written in the Cedar programming environment, a Xerox proprietary research software environment, utilizing the Cedar programming language. Appendix A (©1989, Unpublished Work, Xerox Corporation) provides a source code listing for this implementation. Information regarding the Cedar programming environment may be found in Swinehart D., et al., &#34;A Structural View of the Cedar Programming Environment, ACM Transactions on Programming Languages and Systems, Vol. 8, No. 4, October 1986, pp. 419-490, incorporated herein by reference. Additional information about the Cedar programming environment may also be found in Teitelman, W., &#34;A Tour Through Cedar&#34;, IEEE Software, Vol. 1, No. 2, April 1984, pp. 44-73, also incorporated herein by reference. 
     It is intended that the reference color selection system 64 of the present invention may be implemented in a variety of hardware and software environments providing suitable and equivalent window management and graphics software support functions. Those skilled in the art will recognize, for example, that reference color selection system 64. may be implemented in a wide range of computing environments. In personal computer environments, the system may be implemented by using low-level assembly language routines for window management and graphics functions, or by using appropriate window &#34;toolboxes&#34; which provide pre-written window management and graphics functions. Similarly, the system may be implemented in larger computing environments supporting more powerful graphics f unctions. Source code in the attached source code listing of Appendix A references Cedar environment applications software support tools which manage the window environment, the graphics display output, and the coordination of the user&#39;s requests and responses when selecting colors using the reference color selection system 64. A brief functional explanation of this environment will demonstrate the system&#39;s portability. 
     The underlying structure of the Cedar programming environment is a collection of components that are arranged in hierarchical layers according to the concept of an open operating system architecture. Cedar&#39;s open operating system concept supports a well-integrated, interactive environment because lower level modules remain directly available to higher level, or &#34;client&#34; programs. The reference color selection system of the present invention is a client of Cedar&#39;s &#34;Viewers&#34; and &#34;Imager&#34; applications software support tools, described in more detail below. Reference color selection system 64 is the application client program which contains the software for defining the color space, calibrated monitor gamut, and color selection processes for selecting the palette of coordinated colors. 
     A high-level software window management environment known as &#34;Viewers&#34; provides the necessary window management control for the reference color selection system. Viewers allows programmers and programs to create, destroy, move, and realize individual rectangular viewing areas on workstation display 55 (FIG. 2) called &#34;viewers&#34; which correspond to &#34;windows&#34; in other systems. Each viewer is a rectangular region whose position and size is managed by the Viewers software tool, but whose contents are determined by the color selection client application which creates the viewer. Cedar viewers are implemented by a client program as a set of viewer classes defined by the interface specification known as &#34;ViewerClasses.Viewer&#34; of the Viewers software. Client application programs, such as the reference color selection system, create new viewer instances in a particular class by calling the &#34;ViewerOps.CreateViewer[className]&#34; specification. A viewer class implementation provides operations to initialize a viewer, to save its contents, to destroy a viewer, to paint its contents on the display, and so on, and each member of a specific viewer class shares these same behaviors. The ViewerClasses.Viewer record also defines data fields, such as size information and display coordinates, that are common to all viewer classes. A client program uses a &#34;clientData&#34; field in the ViewerClasses.Viewer record to store implementation-dependent instance data. 
     User input devices include certain standard supported devices in the Cedar environment, including a mouse 54 and a keyboard 53 (FIG. 2). User input is managed and coordinated by Viewers through terminal processor support software which produces a single serial buffer of time-stamped input events from supported input devices, or interprets users&#39; actions through Terminal Input Processor (TIP) tables. For each event, or event sequence, a TIP table entry specifies a sequence of action tokens that represent the semantics of the event. 
     The Cedar programming environment also provides a high-level, device independent graphics software environment known as Imager for producing and displaying high-quality, two-dimensional imaging of text, line art, and scanned images. The Imager handles all display output for the Viewers window manager software tool, as well as for other graphical illustrator programs implemented in the Cedar environment. The Imager supports the presentation of a variety of image material: text in various fonts, lines and curves of various thicknesses, strokes or enclosed outlines, sampled images, and various color models, including the Xerox Color Encoding Standard color model (described in more detail below). Image transformations can scale rotate, translate, and clip images through simple specifications. The device independent design permits images to be rendered on a variety of devices, some of which include full-color displays, color-mapped displays, and black-and-white displays. 
     C. The Operation of the Reference Color Selection System 
     1. Creating Predefined, Colorimetrically Measured Palettes of Reference Colors 
     Turning now to a more detailed description of the operation of the reference color selection system 64, there is first described the predefined and colorimetrically measured color palettes provided with the reference color selection system. 
     a. Color Measurement of Palettes of Reference Colors 
     Each of the colors in each palette are specified in the device independent CIE color specification system. As noted earlier the CIE color specification system employs &#34;tristimulus values&#34; to specify colors and to establish device independent color spaces. Device independent color specification conforms to internationally recognized color standards based on the interaction of light with the human visual system. The CIE standardized color notation system defines a standard of color measurement which may be applied to color reproduction to both characterize color devices and to describe transformations that must be applied to image colors to accommodate the characteristics of output devices. 
     Based on the premise that the spectral reflectance of an object is the percentage of the incident light energy reflected at each wavelength and that the color of an object may be precisely defined as this spectral reflectance, the CIE standard assigns numeric values to colors according to their appearance under standard sources of illumination as viewed by a standard observer, such as the &#34;CIE 1931 Standard Colorimetric Observer&#34; (also known as the &#34;2° Observer&#34;, hereafter referred to as the &#34;standard observer&#34;), using three values, X, Y, and Z, to describe colors. While X, Y, and Z could be considered a set of primaries, they do not individually correspond to an actual color. Instead, each set of X, Y, and Z values represents a color according to its spectral power distribution rather than its perceived appearance. The X, Y, and Z values, called the tristimulus values of a color, represent 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. 
     A spectroradiometer or spectrophotometer may be used to sample a stimulus at a number of different wavelengths. The tristimulus values X, Y, and Z of a color are then computed from certain color-matching functions for a particular source of illumination. Alternatively, tristimulus values of a color also may be directly measured by a tristimulus-filter colorimeter. If two color stimuli have the same tristimulus values, they will look alike under the same viewing conditions by an observer whose color vision is not significantly different from that of the standard observer, and these color stimuli will produce what is called a &#34;metameric&#34; match between colors. Thus, colors with identical tristimulus values viewed under identical conditions provide the common and device independent link between differing color reproduction technologies. 
     Research has shown that differences among various human perceptual color attributes can be related to differences between the tristimulus values of two different color stimuli. Thus, tristimulus values representing colors have been mathematically manipulated in order to more closely approximate these human perceptual color attributes, and to visually represent these attributes in different color spaces. Normalization, one such mathematical manipulation of tristimulus values, is the derivation of a color&#39;s &#34;chromaticity&#34; which recognizes that important color attributes are related to the relative magnitudes of the tristimulus values. Thus, the &#34;chromaticity coordinates&#34; of a color, x, y, and z are derived by taking the ratios of the respective X, Y and Z tristimulus values to the sum of all three tristimulus values X, Y, and Z, according to equations (6), (7) (8) and (9) below. Chromaticities may be represented in a two-dimensional Cartesian x, y plane coordinate system of colors known as the &#34;1931 CIE Chromaticity Diagram&#34;. ##EQU3## 
     b. Specifying Palettes of Reference Colors 
     The data base of predefined and colorimetrically measured palettes of colors are simply device independent color specifications for natural objects, grouped in useful but arbitrarily defined palettes. In the illustrated embodiment of the reference color selection system there is provided a typical watercolor palette. Table 1 provides a list of the colors included in the watercolor palette, each specified by its luminance value, Y, and chromaticities, x and y. In the context of the reference color selection system, each watercolor is considered to be a natural object, and, as such, a reference color of the kind suitable for inclusion in the palette data base 68. The colors selected were painted in 75 mm ×55 mm rectangles on watercolor paper in typical dilution and well dried. The painted rectangles were measured with a Minolta CR 235 colorimeter. The reference white color used is a combination of the luminance of Chinese White and the chromaticity of the white paper used. 
     
                       TABLE 1                                                     
______________________________________                                    
COLOR NAME      Y         x       y                                       
______________________________________                                    
Cadmium Yellow Deep                                                       
                81.13     0.3868  0.4348                                  
Cadmium Yellow Pale                                                       
                72.84     0.4239  0.4516                                  
Cadmium Red Light                                                         
                25.65     0.5261  0.3391                                  
Alizarin Crimson                                                          
                21.69     0.4438  0.3162                                  
Ultramarine Blue                                                          
                13.92     0.1943  0.1570                                  
Thalo Blue      32.86     0.2280  0.2667                                  
Hooker&#39;s Green Deep                                                       
                43.89     0.3294  0.4034                                  
Sap Green       38.68     0.3535  0.4241                                  
Viridian        42.90     0.2663  0.3633                                  
Yellow Ochre    60.14     0.4036  0.4047                                  
Burnt Sienna    25.17     0.4544  0.3843                                  
Burnt Umber     18.07     0.3953  0.3801                                  
Ivory Black     14.40     0.3318  0.3459                                  
Payne&#39;s Gray    18.33     0.2864  0.3172                                  
Chinese White   84.66     0.3232  0.3401                                  
______________________________________                                    
 
    
     The variety and utility of predefined palettes that may be included with the reference color selection system of the present invention is limited only by imagination. For example, the artist mentioned earlier who was producing computer color reproductions of images containing Chinese porcelain would most likely use shades of the color celadon, including a range of greens from yellowish green to gray-blue green. In addition, ivory, white, and a specially applied blue color would most likely appear in most Chinese porcelain pieces. It would be useful to start with a palette of these colors, customarily used by Chinese artisans, to achieve the most faithful computer reproduction of the original art pieces. By measuring the colors from actual objects or from high quality offset color pictures of Chinese porcelain pieces, such a palette may be created and added to palette data base 68 (FIG. 3) for use by a user of reference color selection system 64. Table 2 includes a selection of typical Chinese porcelain colors, specified in L*, a*, and b* coordinates. 
     
                       TABLE 2                                                     
______________________________________                                    
COLOR NAME       L*       a*       b*                                     
______________________________________                                    
Minty Green Blue 55.07    -15.14   28.16                                  
Minty Green Blue Pale                                                     
                 77.42    -16.57   26.87                                  
Ivory White      91.71    1.00     -0.19                                  
Very Light Greenish Blue                                                  
                 74.19    -10.44   -9.07                                  
Minty Blue Green Deep                                                     
                 51.70    -18.84   19.40                                  
Red              53.24    53.51    41.87                                  
______________________________________                                    
 
    
     In some instances, measured colors, while providing accurate representations of the colors of natural objects, may not provide aesthetically pleasing colors. For certain reference colors, color researchers may determine that an alternative color should be used in place of the actually measured object color. Such colors are called &#34;preferred colors&#34; and may also be included in the set of predefined palettes. 
     The reference color selection system 64 of the present invention employs a conventional array or table data structure for representing the device independent color specifications for each color palette. 
     2. The Calibrated Monitor Gamut 
     The user of the reference color selection tool 64 of the present invention may work on any number of color monitor displays, with color reproduction quality generally directly related to the cost of the display. The predefined palettes of colors each having device independent colorimetric color specification will be transformed to device dependent color specifications for display on the monitor, but to preserve the accuracy of the color, all manipulation of the palette colors is performed in the device independent CIELAB space. 
     In particular, in the preferred embodiment of the present invention, the device independent color specifications of the colors in the predefined palettes and of the colors mixed by the user are defined using the Xerox Color Encoding Standard (XCES), although it is to be understood that any recognized device independent color specification may be used, such as the ISO ODA Color Addendum. Xerox Corporation has defined and specified a device independent color specification, derived from CIE color specifications and color science principles, for providing uniform and consistent color specifications to allow accurate color reproduction in the interchange between document processing applications. The XCES specifies standard color models that devices which subscribe to the XCES should use for representing color in interchange applications, thus providing a common color language description between color computer display and printing applications. One of the standard XCES color models, the XEROX/CIELAB model, hereinafter called the &#34;CIELAB model&#34;, specifies color in terms of the red, green, and blue tristimulus values of the standard primaries, calibrated so that equal tristimulus values define a stimulus with the same chromaticity as standard white, which is selected to be the D 50  illuminant. This process in effect provides a &#34;color correction&#34; mechanism from the user&#39;s device to a so-called &#34;standard&#34; device. The mapping from a device independent colorimetric color specification to a specific color device&#39;s ink or phosphor quantities is called &#34;color correction&#34;. &#34;Calibration&#34; is the process of measuring a color rendering device and computing the parameters for color correction. Color manipulation internal to the reference color selection system is performed in the standard calibrated monitor gamut. 
     Further information regarding the Xerox Color Encoding Standard, the CIELAB color model, and the transformation of device dependent color specifications into the CIELAB color model may be found in the publication, Xerox Color Encoding Standard, Chapter 2, Chapter 3, Chapter 6, Sections 6-1 through 6-3, and the Appendices A, B, and C, published by Xerox Corporation, Xerox Systems Institute, Sunnyvale, Calif. (XNSS 289005, May 1990) (hereafter referred to as &#34;Xerox CES&#34;), and incorporated by reference herein. 
     The gamut of the monitor on which the user is working must be colorimetrically measured and those measurements defined for the reference color selection software. Device dependent color specifications of the form needed to display selected colors on the particular monitor being used, generally RGB signals, are then mathematically calculated as needed, according to well known formulas, such as those provided in the aforementioned Xerox CES, in Section 2, and Appendix C. Those skilled in the art will appreciate that any device independent perceptually uniform color space, such as, for example, the CIELUV color space, may be used as the model in which to manipulate the color selection methodology to be described below in more detail. 
     3. Selecting and Mixing Colors From a Palette 
     FIGS. 4 5, 6, and 7 illustrate a representative sequence of screen displays, 80, 90, 100, 110, respectively that a user would see in response to selecting colors according to the functions provided in the reference color selection system. With reference to FIG. 4, after instructing system 51 (FIG. 2) to begin executing reference color selection system 64 (FIG. 3), the user first specifies in message header area 70 the name of the palette of colors he wishes to examine. Alternatively, a menu command could be provided in message header area 70 which, when selected by mouse 54 FIG. 2), displayed a pull-down menu displaying the color palettes available in palette data base 68 and the user could simply select a palette by pointing to the palette name with mouse 54. 
     Selection of a palette also results in a copy of the selected palette of colors being brought into the memory of system 51 (FIG. 2) from palette data base 68 (FIG. 3). A &#34;rename&#34; function permits the user to change the name of the selected palette to a working or familiar name for future reference, before storing the palette back in palette data base 68 with the &#34;save&#34; function provided at the completion of his color mixing session. 
     Selection of a palette also results in screen 80 of FIG. 4 being displayed. The individual colors of the selected palette are displayed on a medium gray background in rectangular color patches, as shown. The colors may be displayed in a predetermined order according to color space coordinates, such as in descending order by lightness, L* values, or in ascending order by chroma values, but need not appear in any particular order. In the illustrated embodiment, the colors appear in the order they are entered in the palette array, with color 82 being the first color in the palette, followed left to right by colors 71, 88, 73, 85, and 86, respectively, on the top row of colors on screen 80. The colors are simply displayed in rows, and wrap around to a second row if needed, as shown. Colors 74 and 87 appear from left to right in the second row. Color 87 is the last color of this selected palette. 
     Some of the colors in predefined palettes may be highly saturated or very vivid colors. Such colors may not fall within the calibrated monitor gamut and their coordinates may need to be modified to bring them within the boundary of the calibrated monitor gamut. Any suitable known gamut mapping or clipping algorithm may be applied to accomplish this result. 
     The user may decide, upon viewing the colors in the displayed palette, that one or more of the colors is not required for his illustration or image. The color may be deleted from the palette by simply pointing to the color with mouse 54 and clicking the combination of the &#34;control&#34; key on keyboard 53 and middle mouse button of mouse 54. For example, if color 85 is deleted from the color palette displayed on screen 80, the palette array is updated to remove color 85, and as shown in FIG. 5 on screen 90, the remaining colors are reordered from left to right on the screen. Because additional space is now available in the top row, color 74 moves from the second row to the top row of colors, following color 86. 
     The user may also decide, upon viewing the colors in the displayed palette, that additional colors are needed to complete the palette. In a sophisticated illustration, for example, the user may need fine variations on the basic, colors provided with a particular palette. Two alternatives are available to add additional colors to the displayed palette. 
     First, the user may mix or blend his own color from colors already existing in the palette and displayed on screen 90. When the user wishes to mix a color, the color &#34;wash&#34; function is available. Rectangular &#34;color wash&#34; area 84 on screen 90 is where color mixing is performed. Blending or mixing a new color can be performed for any two colors of the displayed palette, creating in effect a digital wash much like the wash of colors performed by an artist using a paint palette. 
     To perform a color wash, the user first selects from the displayed palette two colors using mouse 54, by selecting the first color 87 using the left mouse button on mouse 54 and selecting the second color 88 using right mouse button on mouse 54. 
     Referring now to FIG. 6, there is displayed in screen 100 the results of the color wash function. Color 87a, identical to color 87, is displayed at the far left of rectangular wash area 84, and color 88a, identical to color 88, is displayed at the far right. In the illustrated embodiment, a predefined number of colors are computed the uniform CIELAB space at equal intervals between the coordinates of colors 87 and 88, and these colors are then displayed between colors 87a and 88a in rectangular wash area 84, shown by the dotted vertical lines. Because the range of colors displays very fine discriminable differences between each one, no actual lines appear in the wash; the color wash is a smooth, continuous range of colors between end colors 87a and 88a. 
     The wash function is a simple linear interpolation between the three L*, a*, and b* coordinates of the two selected end colors, producing what is known in the art as an &#34;interval scale&#34;. A predefined range for the interpolation may be provided in the code, or the range may be left as a user modifiable parameter. Alternatively, an interval scale of colors based on unit differences of perceived colors in the CIELAB color space may also be specified, such that for every two colors selected as end colors, only colors perceived as different will occur in color wash rectangle 84, based on the concept of the &#34;just noticeable difference&#34; unit of perceived colors in CIELAB space. In the illustrated embodiment, a range of 100 colors is provided in color wash rectangle 84, depending upon the end colors selected. The code representing the wash function is provided in TABLE 3. 
     
                       TABLE 3                                                     
______________________________________                                    
IF doWash AND (data.selection.left # NIL) AND                             
(data.selection.right # NIL)                                              
THEN BEGIN                                                                
delta: CIELAB; sel:SelectionDigital ˜ data.selection;               
IF(data.wash = NIL) THEN data.wash ← NEW [WashRep];                  
delta.IStar ← sel.right.IStar - sel.left.IStar;                      
delta.aStar ← sel.right.aStar - sel.left.aStar;                      
delta.bStar ← sel.right.bStar - sel.left.bStar;                      
FOR i:INTEGER IN [0.. washItems) DO                                       
t:REAL ˜ Float[i]/Float [washItems-1];                              
data.wash[i] ← NEW [CIELAB];                                         
data.wash[i].IStar ← sel.left.IStar + t * delta.IStar;               
data.wash[i].aStar ← sel.left.aStar + t * delta.aStar;               
data.wash[i].bStar ← sel.left.bStar + t * delta.bStar;               
data.washCache[i] ← ColorFromLAB [data.wash[i]]                      
ENDLOOP                                                                   
END;                                                                      
______________________________________                                    
 
    
     The user may now select any color from the color wash rectangle 84 and add the color to his palette by simply clicking the middle mouse button of mouse 54 at the location of the color in the rectangle. If the user selects wash color 92, the selected wash color 92 is added to the palette array in the memory of system 51 (FIG. 2). 
     Turning now to FIG. 7, screen 110 illustrates the selected wash color 92 added in the leftmost position of the top row of the displayed palette of colors. The most recently added selected wash color is always added at the same location on screen 110 so that the user may easily recognize it; this is especially important if the user is working with very fine variations of colors which may, upon a quick glance, look very similar. Screen 110 shows that the remaining palette colors 82, 71, 88, 73, and 86, respectively, have been redisplayed to the right of the added selected wash color 92, with the color 86, formerly one position to the left (see FIG. 6) now appearing in the last position of the top row of palette colors. The user may add as many colors as he chooses from the color wash rectangle 84. Each color will be added in the leftmost position of the displayed palette on screen 110, as just described. 
     If the user determines, upon viewing selected wash color 92 against the gray background and adjacent to other colors in the palette, that it is not the correct color, he can simply delete it from the palette, as described above with reference to FIGS. 4 and 5. The selected wash of colors between colors 87a and 88a remains displayed in color wash rectangle wash 84, and the user may simply make another selection. 
     Successive interpolation or mixing can be used to generate difficult-to-determine colors. To do this, the user selects two end colors as hereinbefore described, and selects the best interpolated wash color 92 for his purposes. After color 92 is added to the palette and displayed as the first, leftmost color in the top row of colors as described above, the user may select color 92 as the left or right end color in the next successive interpolation or wash. The color wash process as just described may be iterated as many times as needed by making a new interval scale using the newest selected color as one of the end points. 
     In addition, the reference color selection system may be used in conjunction with the functional color selection system referenced earlier, to create a color wash between two of the functional colors selected for a palette of colors using that system. By selecting and displaying a functional color palette according to the steps described above, the key color, and the analogous and complementary harmony colors, with their lightness and chroma variations, will be displayed. For any two of the lightness or chroma variations displayed as part of the palette, all lightness or chroma variations between those two colors may be created using the color wash function of the reference color selection system, by selecting the lightest and darkest, or the grayest and most vivid, colors as end colors for the color wash. Thus, the reference color selection system may be used to enhance the functionality of the palettes created with the functional color selection system. 
     When color mixing has been completed and the palette of colors is satisfactory for the user&#39;s purposes, the palette may be copied to palette data base 68 using the &#34;save&#34; command. 
     It is of course clear from the foregoing descriptions for the reference color selection system that many variations of color palettes may be constructed in this manner. 
     CONCLUSION 
     In view of the foregoing, it now will be seen that the present invention provides means for facilitating the selection and mixing of colorimetrically measured colors to be used for computer based color presentation systems, and provides the ability to blend colors using the metaphor of the artist&#39;s color wash. The color selection system of this invention is sufficiently straightforward to enable users who have little, if any, background knowledge or skill in color coordination to create a sophisticated and complete palette of colorimetrically accurate colors for use in computer graphics images. ##SPC1##