COLOR ACCURACY ACROSS A COMPUTER NETWORK

Abstract: Improved color image display accuracy can be achieved across a computer network by obtaining information characterizing the color response of display devices associated with a client residing on the computer network, and using the information to modify color images delivered to the client. The modifications can be designed to compensate for the color response of the individual display device associated with the client. The display device may take the form of a cathode ray tube monitor, flat panel display, or similar color image display device. The information can be obtained, for example, by guiding the client through a color profiling process that profiles the color response of the display device. For example, such guidance may take the form of a series of instructional web pages that are delivered to the client. The web pages can be made interactive to enable collection of color characterization data from the client. The color characterization data can be used to estimate a variety of information concerning display device characteristics such as gamma, black point, gray balance, and the like.

Description: COLOR ACCURACY ACROSS A COMPUTER NETWORK TECHNICAL FIELD The invention relates to color imaging and, more particularly, to presentation of color images on display devices. BACKGROUND The growth of the Internet has created sizable opportunities for online retailers. Most major retailers of consumer products have established commercial sites on the World Wide Web. At the same time, the availability of web site presence has eliminated many of the marketing barrieis previously experienced by smaller retailers. Virtually any retailer can now post product information for easy access by potential customers, and take orders for its products in an automated fashion. The product information may include a large number of images. The images enable web customers situated at client devices to view products before submitting an online purchase order. For some items, the user is permitted to click on a "thumbnail" image to view the item in a higher resolution format. For many retailers, however, the quality of the images can be a significant concern. Color accuracy, in particular, can be very important for retailers of products for which color matters. In the case of clothing retailers, for example, an image of a sweater should match its actual color as closely as possible. Unfortunately, the color output characteristics of different display devices can differ significantly. A cathode ray tube (CRT) or flat panel display, video card, driver software, and operating system together determine how RGB pixel values will be rendered and displayed, and vary significantly from system to system. Consequently, an online customer may order what appears to be a burgundy sweater but instead receive a bright red sweater. Indeed, color inaccuracy has become a significant cause for return of merchandise purchased by online customers. In some cases, this problem can erase the advantages obtained by the retailer's commitment to online merchandising, and undermine continued investment. SUMMARY The invention is directed to a system and method for improving color image display accuracy in a computer network having display devices with different color output characteristics. A system and method in accordance with the invention provide improved color image display accuracy, for example, by obtaining information characterizing the color response of a display device associated with a client device residing on a computer network. The information can be used to modify color images delivered to the client over a computer network such as the World Wide Web. In particular, the system and method apply modifications designed to compensate for the color response of the individual display device associated with the client. The display device may take the form of a cathode ray tube monitor, flat panel display, or similar color image display device. The information can be obtained, for example, by guiding the client through a color profiling process that profiles the color response of the display device. Such guidance may take the form of a series of instructional web pages that are delivered to the client. The web pages can be made interactive to enable collection of color characterization data from the client. The color characterization data can be used to estimate a variety of information concerning display device characteristics such as gamma, black point, gray balance, and the like. Once the information has been collected, a color profile can be created for the client's display device, and thereafter used for modification of color images delivered to the client. The color profile can be incorporated in information that is transmitted by the client to an image server for modification of color images to be delivered to the client. Gray patches that are most visible to the eye can be used to determine black point, coarse gamma, fine gamma, and minor differences in R, G, and B that can cause poor gray balance. Rather than relying on independent determinations of individual gammas for R,G, and B, a simple gray test can be used, which is much more sensitive to the eye than analysis of independent color channels. A very accurate value for average gamma of RGB can be determined using a series of cascading steps. In some embodiments, for example, a gray patch selected for the coarse gamma measurement is used as the central patch for a range of gray patches used to measure a more finely tuned gamma. The fine gamma then can be used as the central patch for gray balance determination. Advantageously, in some embodiments, the user can complete the color profiling process in as few as four clicks, while gray balance determinations can be completed in a single click. A cookie, or alternative container, can provide a persistent representation of the color response characteristics of the client's display device. Each time the client accesses a web server and color images are identified in web page content, the cookie can be sent to the appropriate image server to improve the accuracy of the color image displayed on the client's display device. The cookie may contain a computed color profile for a display device or parameters useful in computing such a color profile and thereby rendering color correction to images provided to a client. With improved color image accuracy, the images viewed by the client appear as intended. The system and method are capable of providing accurate characterization of a display device, while affording reliability and ease of use for the user. In a retail context, for example, the color of an item of interest more closely matches the actual color. As a result, items ordered by online customers are less likely to be returned based on color mismatch. Online retailers suffer from less returns, and online customers can shop with greater confidence that the items they order will arrive in the expected color. In general, users viewing online images are able to see the colors intended by the original source without the need for significant adjustments to the display device. Improved color image accuracy can thereby enhance the online experience for the client. At the same time, however, the user need not be burdened with downloadable plug-ins, client side scripts, and the like, which can consume time and precious attention span. Instead, in preferred embodiments, the color profiling process can be carried out by execution of web pages. In one embodiment, the present invention provides a method comprising obtaining information characterizing the color response of a display device associated with a client residing on a computer network, modifying a color image based on the information to improve the accuracy of the color images when displayed on the display device, and delivering the modified color image to the client for display on the display device. In another embodiment, the present invention provides a system comprising a web server residing on a computer network, the web server transmitting web pages to remote clients residing on the computer network, a color image server residing on the computer network, the color image server transmitting color images referenced by the web pages to the clients for display on display devices associated with the clients, a color profile server residing on the computer network, the color profile server guiding the clients through a color profiling process to obtain information characterizing the color responses of the display devices associated with the clients, and one or more color correction modules that modify the color images transmitted by the color image server based on the information to improve the accuracy of the color images when displayed on the respective display device. In an added embodiment, the present invention provides a method comprising obtaining information characterizing the color response of a display device associated with a client residing on a computer network, wherein the information includes an indication of gamma and black point, incorporating the information in a cookie, transmitting the cookie with a request for a color image, modifying the color image based on the information in the cookie to improve the accuracy of the color images when displayed on the display device, and delivering the modified color image to the client for display on the display device. In a further embodiment, the present invention provides a system comprising a web server residing on a computer network, the web server transmitting web pages to remote clients residing on the computer network, a color image server residing on the computer network, the color image server transmitting color images referenced by the web pages to the clients for display on display devices associated with the clients, a color profile server residing on the computer network, the color profile server guiding the clients through a color profiling process to obtain information characterizing the color responses of the display devices associated with the clients, wherein the information includes an indication of gamma and black point, and the color profile server incorporates the information in a cookie, and one or more color correction modules that modify the color images transmitted by the color image server based on the information in the cookie to improve the accuracy of the color images when displayed on the respective display device. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a system for improving color image display accuracy in a computer network; FIG. 2 is a block diagram of a web-based environment incorporating a system as shown in FIG. 1 ; FIG. 3 is a flow diagram illustrating a method for improving color image display accuracy in a computer network; FIG. 4 is a flow diagram illustrating a color profiling process for a display device; FIG. 5 is a flow diagram illustrating a color profiling process as shown in FIG. 4 in greater detail; FIG. 6 illustrates a range of gray elements for use in determining black point in a color profiling process as shown in FIG. 5; FIG. 7 illustrates a range of gray elements for use in determining a coarse gamma in a color profiling process as shown in FIG. 5; FIG. 8 illustrates a range of gray elements for use in determining a fine gamma in a color profiling process as shown in FIG. 5; FIG. 9 illustrates a range of gray elements for use in determining gray balance in a color profiling process as shown in FIG. 5; FIG. 10 is a flow diagram illustrating another color profiling process for a display device; FIG. 1 1 is a flow diagram illustrating a color profiling process as shown in FIG. 10 in greater detail; FIG. 12 illustrates a pair of gray elements for use in adjusting a display device in a color profiling process as shown in FIG. 1 1 ; FIG. 13 illustrates a range of gray elements for use in estimating gamma in a color profiling process as shown in FIG. 11 FIG. 14 illustrates a range of gray elements for use in estimating individual red, green, and blue gamma in a color profiling process as shown in FIG. 1 1 ; FIG. 15 illustrates an example of a color image transmitted to a client in a system as shown in FIGS. 1 and 2; FIG. 16 is block diagram illustrating transmission of color correction information in a system as shown in FIGS. 1 and 2; and FIG. 17 is a block diagram illustrating an alternative architecture for a system for improving color image display accuracy in a computer network. DETAILED DESCRIPTION FIG. 1 is a block diagram of a system 10 for improving color image display accuracy across a computer network. The computer network may take the form of a local area network, wide area network, or global computer network such as the World Wide Web. As shown in FIG. 1, system 10 may include a web server 12, a client 14, a color image server 16, and a color profile server 18. Web server 12 provides client 14 with access to web pages incorporating graphic content such as color images. Some of the color images can be incorporated in the web pages stored at web server 12 while other color images are stored at color image server 16. Web server 12 may store lower resolution color images, for example, as well as images that are less color- intensive. Higher resolution color images and more color-intensive images can be stored at color image server 16. Web server 12, client 14, color image server 16, and color profile server 18 each execute program code that is stored on computer-readable media residing locally with the respective device or executed remotely. For client 14, for example, the program code may reside in random access memory (RAM) that is accessed and executed by the client computer. The program code can be loaded into the memory from another memory device, such as a fixed hard drive or removable media device associated with client 14. In particular, the program code can be initially carried on computer-readable media such as magnetic, optical, magneto-optic or other disk or tape media, or electronic media such as EEPROM. Alternatively, the program code can be loaded into the medium by transmission from a remote data archive, e.g., via a local area network, wide area network, or global network such as the Internet. A substantial portion of the code may be web page code that is transmitted to the respective device and executed by a server or browser application. Web page code, e.g., Hypertext Markup Language (HTML), Extensible Markup Language (XML), or the like, generated by web server 12 may include image tags that point to specific color images stored at color image server 16 or elsewhere. When client 14 accesses a particular web page delivered by web server 12 and executes the HTML to assemble the page content, color image server 16 is accessed to obtain any images tagged within the web page code. Thus, the content of a web page assembled for client 14 may include objects obtained from different resources within the network occupied by system 10, such as web server 12 and color image server 16. In some embodiments, web server 12 and color image server 16 may be integrated with one another. In the example of FIG. 1, however, color image server 16 and web server 12 are separate entities. Web server 12 and color image server 16 each may interact with a database server and file server to obtain access to selected color images for delivery to client 14. Client 14 may take the form of a variety of devices that permit a user to access resources on system 10 and display color images obtained from such resources. Examples of client 14 include desktop or portable computers operating in a Windows, Macintosh, Unix, or Linux environment, personal digital assistants (PDA's), based on the Palm, Windows CE, or similar operating system environments for small portable devices, Internet-equipped wireless telephones, interactive televisions with set-top boxes for Internet access, Internet kiosks available to the general public, and future Internet appliances that may emerge. Each client 14 preferably executes a graphical viewing application such as a web browser to access resources residing on other resources, such as web server 12 and color image server 16, attached to system 10. A web browser application permits the user associated with client 14 to readily view web pages generated by web server 12, and images served by color image server 16. Other user interface applications may be useful in accessing web server 12 provided the information is presented in a user-interactive format. In some embodiments, color image server 16 may be configured to deliver color corrected video imagery, in addition to static images. Video, such as MPEG clips, streaming video, and the like may suffer from similar color accuracy issues if they are not compensated for the effects of the display device associated with an individual client 14. Thus, some embodiments of the invention may be particularly useful for broadcast-like video content. In each case, client 14 includes a display device, such as a cathode ray tube or flat panel display, for display of color images obtained from web server 12 and color image server 16. Other types of displays as well as dynamic viewing media such as electronic paper are contemplated. Communication between web server 12, client 14, and color image server 16 may take place using conventional network protocols such as TCP/IP. Although some of the client devices described above, such as PDA's and wireless telephones, presently incorporate relatively low quality color displays, it is anticipated that such devices will benefit from higher quality color displays in the near future. Accordingly, system 10 will be readily applicable in enhancing the quality of color images displayed by PDA's, wireless telephones, and similar devices in the future. As an illustration, web server 12 may deliver web pages associated with an online retailer such as a clothing merchandiser. In this example, the web pages delivered by web server 12 may contain information concerning an array of items offered for sale by the retailer, as well as color images of the items for viewing by online customers. Some of the color images may constitute low resolution "thumbnail" images placed coincident with hypertext links to higher resolution images stored at color image server 16. Client 14 executes the code delivered by web server 12 within a browser application to assemble a web page for display on a display device associated with the client. When a user associated with client 14 clicks on one of the thumbnail images with a pointing device, such as mouse, trackball, pen, or the like, client 14 accesses color image server 16 to obtain the higher resolution color image designated by an image tag embedded in the web page code. To permit display of the higher resolution color image with greater color accuracy, color image server 16 modifies the color image based on information obtained for client 14. In particular, color image server 16 obtains information characterizing the color response of a display device associated with client 14. The information can be uploaded to color image server 16, e.g., in the form of a web cookie or other content container. Alternatively, the information can be transmitted, i.e., broadcasted, to a number of subscriber color image servers in system 10, which are recognized by color profile server 18. The information can be generated by guiding a user associated with client 14 through a color profiling process that profiles the color response of the display device. When client 14 accesses a color image from color image server 16, the user may be given a choice between viewing a version of the image with default color settings, or initiating the color profiling process to produce custom color settings for the user's display device and thereby improve the quality of the color image. In particular, the color image delivered by color image server 16 may be embedded in a web page with one or more hypertext links for initiation of the color profiling process through interaction with color profile server 18. When the user clicks on the hypertext link, client 14 accesses color profile server 18 for delivery of a series of instructional web pages to the user. The instructional web pages provided by color profile server 18 guide the user through a number of steps designed to estimate the color response characteristics of the particular display device associated with client 14. When the process is complete, color profile server 18 delivers a web page with content that, when executed, generates a cookie containing the color profile information. The cookie then can be uploaded to color image server 16 for use in modifying the color image, and subsequently accessed color images, to produce higher quality color output on the display device associated with client 14. Exemplary color profiling processes will be described in greater detail later in this detailed description. Other techniques for obtaining the color profiling information may not require direct interaction by the user with a color image server 16a-16n. Instead, the user may voluntarily visit a web site to perform color profiling. The web site may be provided by color profile server 18 or be within the same domain as the color profile server. Alternatively, users may profile the display devices associated with their individual clients 14a-14n by executing software downloaded or physically delivered to them. Moreover, display devices could be configured to produce a color profile when put in use, and transmit the color profile to subscriber color image servers, e.g., in a cookie. In each case, color profile server 18 receives essentially the same information for transfer to a number of individual color image servers for delivery of color corrected images to client 14. FIG. 2 is a block diagram of a web-based environment 20 incorporating a system as shown in FIG. 1. Web-based environment 20 includes a number of subscribers 22a, 22b, and 22c-22n, each of which may represent a commercial retailer with an online merchandising web site. Of course, subscribers 22a-22n may include non-commercial entities as well, such as art museums and the like. For each subscriber 22a, 22b, and 22c-,22n, a subscriber web server, or "subscriber server" (SS J -SS N ) 12a, 12b, and 12c-12n, delivers web pages with content describing the subscriber's merchandise, and a color image server (CIS I -CIS N ) 16a, 16b, and 16c- 16n delivers high quality color images that may be modified based on color profiles generated for individual clients 14a, 14b, and 14c-14n. Thus, each of subscribers 22a-22n posts its high quality color images to a respective color image server 16a- 16n, and maintains web pages that invoke the high quality images at a respective subscriber server 12a-12n. Note that there may be many more clients 14a-14n than subscribers 22a-22n. One of the subscriber servers 12a-12n and one of the color image servers 16a- 1 n preferably are under the control of the respective subscriber. In other words, subscriber 22a may be responsible for maintenance, administration, and content of subscriber server 12a and color image server 16a, while subscriber 22b is responsible for subscriber server 12b and color image server 16b. In this manner, subscribers 22a-22n can readily update the contents of subscriber servers 12a-12n and color image servers 16a-16n themselves. Consequently, subscribers 22a-22n do not need to relinquish control of their image content to some third party in order to take advantage of the color image quality improvements contemplated in accordance with this embodiment of the invention. Instead, subscribers 22a-22n make use of their own color image servers 16a- 16b and interaction with a color profile server 18 that guides the color profiling process for clients 14a-14n. Nevertheless, in some embodiments, use of a central image server for all subscribers may be desirable. The commercial entities associated with subscriber servers 12a- 12b and color image servers 16a-16n are "subscribers" in the sense that they all make use of color profiles generated by interaction with one or more common color profile servers 18. Thus, a subscriber may be a retailer or collection of retailers with a web site that employs color correction as described herein, and makes use of color profile server 18. Subscriber server 12a-12n may be the subscriber's main web server. Color image server 16a-16n can be a server that is co-located with or remotely located from a corresponding subscriber server 12a-12n and contains the subscriber's high resolution or color-intensive color images and a color correction module for modifying the images and serving corrected images to clients 14a-14n. Each color image server 16a-16n may be within the domain of the respective subscriber server 12a-12n, but this is not a requirement. Thus, in the environment of FIG. 2, clients 14a- 14n are potential customers of subscribers 22a-22n who view the subscriber * s web pages with their own browsers. Clients 14a-14n access subscriber servers 12a-12n, color image servers 16a- 16n, and color profile server 18 via World Wide Web 24. Although the number of clients 14a-14n and subscribers 22a-22n shown in FIG. 1 is limited for ease of illustration, the actual number can be virtually unlimited subject to the bandwidth limitations of subscriber servers 12a-12n, color image servers 16a-16n, color profile servers 18 and web 24. With a large number of clients 14a-14n accessing subscribers 22a-22n, the color responses of individual display devices can be quite varied. The color profiling process and color image modifications administered by color profile server 18 and color image servers 16a-16n, however, compensate for differences between the various client display devices and thereby increase the consistency of color output viewed by users situated across web 24. If subscribers 22a-22n are clothing retailers, for example, the color images viewed by clients 14a-14n on disparate display devices can be made to more closely match the color of actual clothing items. FIG. 3 is a flow diagram illustrating a method for improving color image display accuracy in a computer network as shown in FIGS. 1 and 2. When a client 14 seeks to download a web page from a subscriber server 12, the client receives HTML code (or some other form of web page code) with embedded image tags identifying the locations of color images to be incorporated in the web page when it is presented on a display device, as indicated by reference numeral 40. For lower resolution images, such as so-called "thumbnails," the image tags may point to locations resident at subscriber server 12. When a user clicks on a thumbnail to access a higher resolution image, or when a higher resolution is embedded in the web page in the first instance, client 14 executes the web page code to access and download color images from a designated color image server 16, as indicated by reference numeral 42 in FIG. 3. In the example of FIG. 3, the web page code executed by client 14 for access to color image server 16 queries whether a color profile cookie visible to the color image server has been generated for the particular client, as indicated by reference numeral 44. A cookie is visible, for example, if it corresponds to the domain of the color image server. Management of cookies will be described later in this description. The color profile cookie contains information characterizing the color response of the display device associated with client 14, and resides locally with the client. If a color profile cookie has been generated, client 14 uploads the cookie to color image server 16, as indicated by reference numeral 46. Color image server 48 retrieves the image requested by client 14 and modifies the image based on the contents of the cookie by applying a color correction, as indicated by reference numeral 48. The color correction modifies the image to compensate for variations in the color response characteristics of the display device associated with client 14. Color image server 16 then downloads the color corrected image to client 14, as indicated by reference numeral 50, and the process ends, as indicated by reference numeral 52. In the above manner, client 14 receives a color corrected image that is customized for the client's display device to provide more accurate color output. If a color profile cookie has not been generated previously, client 14 downloads a default color image from color image server 16, as indicated by reference numeral 54, for presentation on the display device associated with the client. The image is a "default" image in the sense that it has not been color corrected or otherwise customized for the individual display devices associated with client 14. As a result, when displayed by client 14, the default image may exhibit significant color inaccuracy relative to the original color image. With the default image, however, client 14 may present a color profiling option, as indicated by reference numeral 56. In particular, client 14 may download with the image an indication of whether color profiling and correction has been applied to the image. With the image, client 14 may display that indication along with a hypertext icon that may invite the user to carry out color profiling. The user may click on the profiling icon with a pointing device to access the color profiling process. In some embodiments, the profiling icon may indicate that profiling has already been performed and that the image has been color corrected, e.g., by displaying the icon in color. If profiling has not been performed previously, the icon may be displayed in black-and-white or some other indication can be provided. By clicking on the icon, the user can commence profiling, either in the first instance or as a profiling update. If the option is not selected, as determined at reference numeral 58, the user simply views the default image and the process ends, as indicated by reference numeral 52. If the option is selected, however, client 14 executes code that directs it to access color profile server 18, e.g., via the hypertext link associated with the icon. Color profile server 18 guides the user associated with client 14 through a color profiling process, as indicated by reference numeral 60. The color profiling process produces information characterizing the color response exhibited by the display device associated with the particular client 14. Following completion of the color profiling process, client 14 generates a color profile cookie, as indicated by reference numeral 62. The color profile cookie contains the color characterization information. Client 14 then uploads the color profile cookie to color image server, as indicated by reference numeral 46, to obtain a color corrected image for improved color image accuracy. As will be explained, the cookie may need to be rewritten for the domain of the color image server 16. Notably, as will be described, the color profiling process preferably requires no plug-ins, Java scripts, or other significant client-side processes. Instead, interaction between subscriber server 12, client 14, color image server 16, and color profile server 18 is driven by execution of the web page code delivered to client 14. This approach yields significant convenience for the end user associated with client 14. At the same time, subscribers 22a-22n are not required to retain color information for individual users. Rather, the information can be uploaded to color image server 16, e.g.. in the form of a cookie, whenever color images are requested by a client 14. Moreover, subscribers 22a-22n can maintain their own color images at color image servers 16a-16n, and provide color correction by incorporating a color correction module capable of handling the color profile cookies uploaded by individual clients 14a-14n. Accordingly, there is no need for subscribers 22a-22n to post their web pages or images to a central web repository. To carry out a color profiling process as described with reference to FIG. 3, client 14 interacts with color profile server 18. Color profile server 18 delivers a series of web pages to client 14. Each of the web pages is designed to guide the user through a given step in the color profiling process. One web page, for example, may include instructions and image content designed to extract from the user an estimate of the black point of the display device. Other web pages may include instructions and content designed to extract coarse gamma, fine gamma, and gray balance information. In particular, each web page may include interactive media such as hypertext icons and the like that can be clicked upon by the user to transfer information to color profile server 18. Upon collecting the necessary information, color profile server 18 creates the cookie and delivers it to client 14 for local storage and future use. In some embodiments, color profile server two cookies can be provided to client 14. A first cookie may correspond to a domain name associated with color profile server 18, and be used for future interactive between the particular client 14a-14n and the color profile server. The first cookie can be referred to as the "profiler cookie." A second cookie may correspond to a domain name associated with the particular color image server 16a-16n (corresponding to a particular subscriber such as a retailer) from which the color image is to be downloaded. In other words, the second cookie may correspond to the color image server 168a-168n at which the color profiling process was initiated. In this manner, future images delivered by that color image server 16a- 16n will be modified based on the contents of the cookie associated with the pertinent domain. The second cookie can be referred to as the "subscriber cookie." The profiler cookie can be used to produce additional subscriber cookies for use with color image servers 16a-16n associated with other domains. Specifically, when a user situated at a client 14a-14n accesses a color image server 16a-16n from which the user has not previously downloaded color corrected images, the user can click on the color profiling option and be directed to color profile server 18. Upon interaction with color profile server 18, client 14 simply uploads the profiler cookie instead of repeating the color profiling process. Information concerning the domain associated with the new color image server 16a-16n can be incorporated in the profiler cookie. In response to receipt of the profiler cookie, color profile server 18 delivers a web page advising the user associated with client 14a-14n of the intent to send the cookie contents to the domain indicated in the cookie, and may request user approval for, among other reasons, privacy concerns. Upon approval by the users, color profile server 18 transmits the cookie contents to the color image server 16a-16n designated by the domain in the profiler cookie. In response, the color image server 16a-16n creates a subscriber cookie for its own domain, and writes the cookie to client 14a- 14n for future use. Thereafter, client 14 uploads the appropriate subscriber cookie to the pertinent color image server 16a-16n when requesting color corrected images for the pertinent subscriber 22a-22n, and can bypass interaction with color profile server 18. The reliance on first and second cookies, one for color profile server 18 and the other for a particular subscriber server 12a-12n or color image server 16a-16n, is driven in part by existing web design considerations. In particular, cookies stored on a client's browser typically are marked by the domain of the server that generates them, and are not generally visible to other domains. Thus, cookies created by color profile server 18 are not generally visible to color image servers 16a-16n, and vice versa. Further, cookie visibility can be further restricted by marking the cookie with a path within a server's domain. This sort of cookie will then not be visible on requests to pages outside the path, even if to the same domain. Further, a browser routinely sends all visible cookies on each request to a server. This includes not only the initial request for an HTML page, but also the requests for images to be embedded in the page. Because an image can come from a different server than the HTML page, however, the cookies sent for the HTML page can differ from those sent for the image. In light of the above considerations, color profile server 18 acts as an intermediary not only for administration of the color profiling process, but for generation of subscriber cookies. This intermediary function enables color correction of all subscriber images to be performed at color image servers 16a-16n rather than at a centralized site. Also, with this intermediary function, once a client has gone through the color profiling process, he generally will not have to repeat it to obtain color correction of images for additional subscribers. As an exception, the user may voluntarily repeat the color profiling process when local driver software or hardware such as the display device or video card associated with a client 14a-14n has changed. Indeed, to encourage updates from time to time in order to accommodate hardware changes, expiration dates can be applied to the profiler cookie and subscriber cookies. It is apparent that the three different servers, i.e., subscriber server 12a-12n. color image server 16a-16n, and color profile server 18, divide the labor involved in color correction transactions. In particular, assuming the existence of a profiler cookie and a subscriber cookie, a subscriber server 12a-12n serves the HTML for the subscriber's own web pages and handles most other requests for those pages, including serving of images that are not subject to color correction. Color image server 16a-16n serves the images that are subject to color correction. If color image server 16a- 16n receives the appropriate subscriber cookie, it performs color correction based on the cookie contents and serves the color corrected image to the appropriate client device 14a-14n. Color image server 16a-16n also may serve an icon near the correctable color images that indicates whether the color images have indeed been corrected. If color image server 16a-16n finds no subscriber cookie, for example, it displays an icon suggesting that the user click the icon to initiate the color profiling process. Otherwise, the icon merely indicates that color correction is turned "on," i.e., that color correction has been applied to the image. Color profile server 18, as mentioned above, serves the pages for the color profiling process. If the color profiling process is invoked by clicking the icon displayed with a color image delivered by color image server 16a-16n, the respective client 14a-14n probably does not have a subscriber cookie for the pertinent subscriber 22a-22n. In some cases, however, client 14a-14n may be voluntarily repeating the color correction process to update the profile for new hardware or software. If a profiler cookie exists, then the process can be abbreviated by simply shipping the contents of the cookie to the appropriate subscriber domain for creation of the subscriber cookie. If the profiler cookie does not exist, then the full color profiling process is served by color profile server 18. Upon completion of the color profiling process, color profile server 18 generates the profiler cookie for client 14a-14n, and passes the contents of the profiler cookie to the pertinent color image server 16a-16n. Color image server 16a-16n then generates the subscriber cookie based on the profiler cookie contents and invokes the original subscriber URL from which the color profiling process was invoked. The mechanisms for exchanging color correction information between the profiler cookie generated by color profile server 18 and the subscription cookie generated by color image server 16a- 16n may vary. In particular, rather than delivering cookies to clients 14a-14n, color profile server 18 may be arranged to transmit the color correction information to all of the color image servers 16a-16n associated with a recognized group of subscribers 22a-22n. In this manner, the color profile information obtained by color profile server 18 as a result of the color profiling process can be "broadcasted" for storage by subscribers 22a-22n. The advantage of this approach is that information transfer is seamless. There is no need for the user associated with a client 14a-14n to interact with color profile server 18 following the initial color profiling process, other than to update the color profile. Rather, each subscriber 22a-22n stores the color correction information associated with the individual client 14a-14n, e.g., with a client ID code. When the client 14a-14n accesses one of the color image servers 16a-16n, the client ID code is used to retrieve the appropriate color correction information and thereby serve a color corrected image. The downside is that each subscriber 22a-22n needs to maintain a database of color correction information for clients 14a-14n requesting color corrected images from the participating subscribers, including clients who may never access a respective subscriber server 12a-12n. Thus, an approach that makes use of cookies for transfer of color correction information may be more desirable for some subscribers 22a-22n. Nevertheless, broadcasting of color correction information remains a viable option that may be acceptable to some subscribers 22a-22n, and highly convenient for end users. The following is a description of some of the details that may be associated with passing information between subscriber servers 12a-12n, clients 14a-14n, color image servers 16a-16n, and color profile server 18 according to an indirect cookie transfer approach. This approach is indirect in the sense that the user intervenes and enters approval before the profiler cookie contents are transferred from color profile server 18 to a respective color image server 16a-16n. In delivering web pages to clients 14a-14n, subscriber servers 12a-12n pass the URL's for correctable images stored on associated color image servers 16a-16n. In addition, subscriber servers 12a- 12n preferably incorporate color profiling icons near the images. The URL's for the color profiling icons point to the pertinent color image server 16a-16n, while the hypertext link associated with the icon points to color profile server 18. To accomplish passing of color correction information back to color image server 16a-16n, the URL of the page viewed by the user is passed to color profile server 18 when the hypertext link associated with the icon is followed by a client 14a- 14n. This step of passing the URL can be accomplished either by including the URL as a parameter on the target URL, or by POSTing the information from a form that wraps the icon, i.e., with the URL stored in a hidden entry field. In the latter case, the icon serves as a button, which may require some minimal client-side scripting. In addition, as will be described, the name of the subscriber 22a-22n and the URL of a completion page to be served by the color image server 16a-16n after the color profiling process is complete may be included in the request to color profile server 18. Subscribers 22a-22n can be provided with a server-side scripting function that inserts the icon code with the appropriate URLs. For the color profiling process, color profile server 18 serves a number of web pages that can be invoked by execution of a web page provided by subscriber server 12a-12n. In this case, the "return URL" is passed forward to each page in the sequence. The return URL can be passed as a parameter in the target URL, or by using hidden fields in forms. In some cases, the return URL can be stored as a server variable. As mentioned above, color profile server 18 handles two scenarios: (1 ) full color profiling when no profiler cookie exists, and (2) creation of a subscriber cookie when a profiler cookie already exists. In both scenarios, color profile server 18 transfers the contents of the existing or newly created profiling cookie to the pertinent subscriber 22a-22n. In particular, color profile server 18 may present a button that requests permission of the user associated with client 14a-14n to transfer the information. The URL for the button points to a page served by color image server 16a- 16n. The request sent to color image server 16a- 16n includes both the return URL and the color information written in the profiler cookie. The request preferably is a POST request from a form, rather than a GET request with all the information set forth in the URL due to length considerations. Color profile server 18 determines the URL of the destination page at subscriber 22a-22n by reference to the return URL. Prior to transfer of the cookie contents, the user will want to know the destination. Accordingly, color profile server 18 displays the name of the particular subscriber 22a-22n along with the button. If the name of the subscriber is not easy to determine from the URL, it can be generated by cross-referencing the URL to a name in a database accessible by color profile server 18, or by passing the name with the return URL in the original request from the page generated by subscriber server 12a-12n. Upon receipt of the information from color profile server 18, the pertinent color image server 16a-16n serves a page indicating that the color profiling process is complete. The page may be invoked by the POST request containing the color correction information and the URL of the "return" page, as received from color profile server 18. Color image server 16a-16n writes the color correction information to the pertinent client 14a-14n as a client cookie. From that point forward, the subscriber cookie is stored by the respective client 14a-14n, and is sent to the color image server 16a-16n associated with the pertinent subscriber 22a-22n with any request for a color correctable image. In response, color image server 16a-16n extracts the contents of the subscriber cookie, applies a color correction to the requested image based on the contents, and delivers the color-corrected image to the client 14a-14n. As an alternative approach, color correction can be passed from color profile server 18 to the color image server 16a-16n associated with the respective subscriber 22a-22n via a direct request, rather than being embedded in a request generated when client 14a-14n clicks on a button, anchor, or other input medium. This approach is direct in the sense that the user need not intervene by submitting approval for the transfer to color profile server 18. Instead, the transfer of the content of the profile cookie to the appropriate color image server 16a-16n can be made seamless. Indeed, in preferred embodiments, the user associated with client 14a-14n does not even view pages sent by color profile server 18 for transfer of information following the initial profiling. In this manner, the transfer of color correction information from color profile server 18 to a color image server 16a-16n happens automatically, without requiring the user associated with a client 14a-14n to click on a link to effect the transfer. This approach makes the transfer appear more seamless to the user. The end result is the same, i.e., the transfer of color correction information contained in a profiler cookie to create a subscriber cookie without the need for reexecution of the color profiling process by the user. To facilitate transfer by direct request, the client 14a-14n is assigned a client ID. Ordinarily, the client ID can be stored in and received from a subscriber cookie on the browser associated with a client 14a-14n. A client 14a-14n that is new to the particular subscriber 22a-22n, i.e., a client that does not send a subscriber cookie to the particular color image server 16a-16n, will be assigned a new client ID, which is sent as a cookie with the HTML in the response from the color image server. All URLs pointing to color profile server 18 then bear both the client ID and a subscriber ID as parameters, so that the color profile server can correlate requests for color correction information for the respective client 14a-14n. The URL for the color profiling icon points to color profile server 18 if there is no subscriber cookie. For this approach, it is preferred that the respective subscriber server 12a-12n and corresponding color image server 16a-16n occupy the same domain so that they can view the same cookies. As in the indirect approach, a color profiling icon, which appears adjacent a color correctable image, may be served from either color image server 16a-16n or color profile server 18 in the direct transfer approach, depending on whether the color image server receives a subscriber cookie. If a subscriber cookie is present, the profiling icon is served by color image server 16a-16n, and is formulated in appearance to indicate that color correction is active, e.g., with a text message to that effect. This will be the case for most images served by color image server 16a- 16n because only new clients 14a-14n will not have the subscriber cookie. If the subscriber cookie is not presented, the icon is served by color profile server 18. In other words, the web page served by color image server 16a-16n has embedded in it an icon served by color profile server 18. If a profiler cookie is present, color profile server 18 serves an icon that indicates the client 14a-14n has already been through the color profiling process. If not, the icon indicates that the color profiling process has not previously been completed by the respective client 14a-14n. This may be represented by a colored icon to indicate that color profiling has been completed, and a black-and-white icon to indicate that it has not. In some embodiments, the icon may indicate that the client 14a-14n has been through the color profiling process, but that the color correction information has not yet been forwarded to the particular subscriber 22a-22n, and that the image has not been color corrected. In either case, color profile server 18 also receives the ID for the client 14a-14n and the subscriber 22a-22n, which are included in the URL forwarded to color profile server 18. If the profiler cookie is present, color profile server 18 immediately forwards the client ID and the contents of the profiler cookie to the pertinent color image server 16a-16n in a special-purpose request. If the subscriber cookie is present, color image server 16a-16n performs the color correction based on the information contained in the cookie. If the subscriber cookie is not present, color image server 16a-16n waits a short time to receive color information for this client from color profile server 18. If the information is forthcoming, color image server 16a-16n applies the color correction and writes a subscriber cookie to the browser associated with the client 14a-14n. Otherwise, color image server 16a-16n serves an uncorrected image. With this direct approach, it may be necessary for color image server 16a-16n to keep track of color correction information forwarded by the color profile server 18 because such information may not be received synchronously with image requests from clients 14a-14n. Accordingly, it may be necessary to incorporate a database application that can be shared by color image server 16a-16n for temporary tracking of color correction information associated with individual clients 14a-14n, and subscriber server 12a-12n for tracking and generation of client ID information. Once the information has been written to a subscriber cookie, the ID and color correction information for the respective client 14a-14n can be purged from the database. Management of ID's according to the direct transfer approach may take place as follows. The original color correction information generated by color profile server 18 can be stamped with a unique ID. The unique ID can be maintained in copies of the color correction information forwarded to subscribers 22a-22n. This ID changes if the client 14a-14n repeats the color profiling process, and can be referred to as the profiler ID. The profiler ID will remain unchanged until the next pass through the color profiling process, which may occur months later. In effect, the profiler ID corresponds to a particular color profiling sequence. The profiler ID is supplemented by the client ID and the subscriber ID. The client ID identifies a client for whom a subscriber 22a-22n is requesting color information, and the subscriber ID identifies the particular subscriber. The client and subscriber IDs are passed via URL parameters to color profile server 18 whenever a color image server 16a-16n has no color correction information for a particular client 14a-14n. The subscriber ID is passed back with the color correction information from color profile server 18 to the color image server 16a- 16n when the color profile server determines the appropriate information for the client, based on the contents of a profiler cookie or the results of running the color profiling process. Once color image server 16a-16n receives this information and writes it as a subscriber cookie to the client's browser, the subscriber ID is no longer needed. FIG. 4 is a flow diagram illustrating a color profiling process for a display device. A process as shown in FIG. 4 can be used to generate the contents of a profiler cookie as discussed above with reference to FIG. 3. Notably, the entire color profiling process can be completed by the user with as few as four "clicks" of a pointing device. If the user is required to click a continue button to proceed after selecting a patch, the process may take additional clicks. If the user is permitted to proceed automatically following selection of a patch, however, the entire process can be completed in four clicks. Also, the color profiling process requires no plug-ins or client side scripting, although such mechanisms can be provided in some embodiments. The color profiling process enables visual profiling of a display device by determining accurate values of black point and gamma for the R,G, and B phosphors or photodiode elements. Gamma refers to a parameter ( ) that indicates the rate of change in light intensity with change in digital device value. Black point refers to the RGB value lower than which there is no decrease in light emitted by the display device. A color profiling process as shown in FIG. 4 does not attempt to determine these parameters visually by performing visual comparisons between small values of RGB and RGB = 0, and between mid-range values of RGB with intermediate gray backgrounds. Such an approach tends to rely on comparisons performed on R,G, and B independently. Due to the lack of eye sensitivity in the B channel, however, this approach can be prone to adding error in grey balance. Instead, this color profiling process obtains similar information as existing products using RGB grays for comparisons. As a result, this color profiling process uses more visually sensitive tests to achieve accurate display calibration. Color profile server 18 may administer a color profiling process as shown in FIG. 4 by serving a series of instructional web pages to client 14a-14n. In general, the color profiling process may involve calculation of (1) average black point for the red, green, and blue (R, G, and B) color channels of the display device, (2) average gamma for R, G, and B, and (3) differences in gamma for R, G, and B. Due to the wide range of differences in display device properties, calculation (2) above can be subdivided into calculation of (2a) a coarse gamma estimate, and (2b) a fine gamma estimate. This process is described in greater detail below with reference to FIGS. 4- 9. As indicated by reference numeral 64 in FIG. 4, the color profiling process first involves determination of an estimated black point for the color display device. After determining the black point, which may be merely an estimate, the color profiling process involves determination of the gamma exhibited by the display device. In particular, the process involves determination of a coarse gamma, as indicated by reference numeral 66, followed by determination of a fine gamma, as indicated by reference numeral 68. Determination of the fine gamma may rely in part on the coarse gamma. In other words, the coarse gamma can be used as an initial estimate and starting point for convergence toward a more finely tuned gamma. After determining the fine gamma, the process involves determination of the gray balance exhibited by the display device, as indicated by reference numeral 70 of FIG. 4. Gray balance provides an indication of the amount of color shift of a neutral gray toward one or more of the color channels used by the display device, e.g., red, green, and blue. The gray balance determination may rely in part on the fine gamma determined previously in the color profiling process. Next, the color profiling process involves generation of a color profile, as indicated by reference numeral 72. The color profile contains information that characterizes the color response of the display device based on the determinations indicated by reference numerals 64, 66, 68, 70, i.e., black point, coarse gamma, fine gamma, and gray balance. The color profile then can be loaded into a cookie, or other content container, and stored locally with client 14 for uploading to any of color image servers 16a-16n when needed, as indicated by reference numeral 74. The estimated black point parameter defines the dynamic range of the display device. Because the maximum RGB value always defines white, the black point defines the black end point, and therefore defines the domain of RGB values that result in a continuous change from black to white. If the black point for a display device is high, all RGB values in dark regions will be mapped to black and all shadow detail will be lost if no image correction is performed. The average gamma parameter most affects the overall appearance of the image. Average gamma determines whether an image appears overall too light or dark, or with too much contrast or too little. The third parameter, R, G, B gamma difference, is important because the human eye is very sensitive to gray balance. FIG. 5 is a flow diagram illustrating a color profiling process as shown in FIG. 4 in greater detail. As shown in FIG. 5, for black point determination, as indicated generally by reference numeral 76, color profile server 18 serves a web page displaying a range of dark gray bars, as indicated by reference numeral 78. FIG. 6 illustrates a range 116 of gray elements for use in determining black point in a color profiling process as shown in FIG. 5. As an example, the dark gray bars may be presented to the user with the following gray level values: 0, 8, 16, 24, 32, 40, 48. As the dark gray bars are displayed, the user is instructed to set brightness and contrast of the display device to maximum, as indicated by reference numeral 80. The user is then further instructed to reduce the brightness of the display device until the darkest bar is barely visible, as indicated by reference numeral 82, and then click on the bar that is barely visible, as indicated by reference numeral 84. The darkest bar that is barely visible will depend on the black point of the display device. With some display devices, the user may be unable to see the bars with gray levels of 8, 16, or higher. This step determines the visible "cut-off point, and thus the estimated black point of the display device. As an alternative, the user could be prompted to make the least visible bar vanish and then click on the remaining barely visible bar. Following selection of the barely visible bar, e.g., by clicking on it, client device 14a-14n transmits the result to color profile server 18. Color profile server 18 then may compute the estimated black point, as indicated by reference numeral 86, or simply store the parameter for later computation, e.g., by color imager server 16. The equation for the gamma curves is: I = (Max(0.0, (X -X BP )/( 1.0 -XBP))) Y , where I is intensity and γ is gamma. The value of the X BP , i.e., the black point, is determined as follows. If the smallest barely visible gray level value is 8, called the gray threshold (X GT ), assume the value of Xnp to be zero. For higher values estimate the value of X BP according to: (X BP ) = ((X CT ) - 8)/255.0 For determination of coarse gamma, one of the web pages served by color profile server 18 displays a range of gray patches against a dithered gray background, as indicated by reference numeral 88. The user is then instructed to select a gray patch that appears to most closely blend with the dithered background, as indicated by reference numeral 90. The gray patch "blends" with the dithered background in the sense that it appears to closely match the gray level of the background. An example of a range of gray patches displayed against a dithered background is shown in FIG. 7 and indicated by reference numeral 1 18. Based on the selected gray patch, which again may be selected by clicking on it with a pointing device, color profile server 18 computes a single coarse RGB gamma, as indicated by reference numeral 92. The overall coarse gamma process is indicated generally by reference numeral 94. Thus, the coarse gamma is an estimate for the average gamma of R, G, and B via selection of a gray patch from a set of gray patches against a dithered gray background. The dithered gray background may be set at approximately 50%. In particular, the dithered gray background may have a "window blind" pattern with alternating horizontal lines of white and black of one pixel in height. By alternating white and black, the net effect is essentially a 50% gray. Also, for a CRT, turning on or off all of the pixels in alternating horizontal lines should produce more predictable output from display device to display device than modulating individual pixels to form vertical lines, given the rasterized output of the device. For flat panel devices, this is less of an issue. To accommodate both CRT's and flat panel devices, however, generation of the dithered background by use of alternating horizontal lines is preferred. For some embodiments, the dithered gray background may be set to other levels. In particular, it may be desirable to set the dither to approximately 33% gray rather than 50% to provide an appearance closer to L* = 50. The center patch in the range can be based on an average gamma of 2.0, since most monitors range from 1.6 to 2.2. The other patches that surround the center patch may proceed in a sequence with large steps, e.g., 8 gray levels apart from one another. Coarse gamma can be estimated using the equation: I = 0.5 = (Max(0.0, (X 0 . 5 -X BP )/(1 -XBP))) Y where X 0.5 is the gray level value of the selected patch that blends in with the background, X BP is the previously determined black point, I is intensity, and γ is gamma. As an alternativ to computing the coarse gamma, the gray level value of the selected patch simply is carried forward for use in the fine gamma process. In this case, the value can eventually be discarded. After the coarse gamma is obtained, fine gamma is estimated, as indicated generally by reference numeral 96. Fine gamma is a refined estimate for the average gamma of R, G, and B by selection of another gray patch from a set of gray patches against a dithered gray background. In this case, the center patch is identical to the patch selected by the user for determination of coarse gamma. Thus, the coarse gamma step "informs" the fine gamma step. A range of patches for determining fine gamma is illustrated in FIG. 8 and designated by reference numeral 120. The patches in this range are in a sequence with smaller steps centered about the center patch selected in the coarse gamma process. For example, the patches may be set at 4 gray levels apart. In this manner, a narrower range is used to "fine-tune" the gamma estimate, with the center of the range having been "learned" from the coarse gamma estimate. As an alternative to reliance on RGB gray to determineaverage gamma, some embodiments instead may make use of green alone. The eye is nearly as sensitive to green alone as it is to RGB gray. If the monitor is severely out of balance regarding gray, the gray patches could appear off-gray while the dithered white/black background appears neutral, possible confusing the user asto which patch is best to choose. Thus, green may be a good choice for some embodiments of the invention, or when the user indicates that the RGB gray analysis is confusing. As indicated by reference numeral 98, a web page served by color profile server 18 displays the selected gray patch from the coarse gamma estimate among a narrow range of gray patches. The user then is instructed to select the gray patch that most closely blends with the same dithered background as used for coarse gamma, as indicated by reference numeral 100. Based on the selected patch, color profile server computes a single fine RGB gamma, as indicated by reference numeral 102. Alternatively, the RGB value of the selected patch can simply be stored for use by color image server 16a- 16b in computing fine gamma and rendering color corrections. In any event, a refined estimate for gamma can be computed according to the equation: 1 = 0.5 = (Max(0.0, (X 0 5 -XBPVO -XBP))) Y where X 0 5 is the gray level value of the selected patch that blends in with the background, X P is the black point determined previously, I is intensity level, and γ is gamma. To determine gray balance, color profile server 18 serves a web page that displays the selected gray patch from the fine gamma determination with a range of RGB shifted patches against the same dithered background used for coarse gamma and fine gamma, as indicated by reference numeral 104. Again, this step "learns" from the previous one, producing a cascading series of color profiling steps that help narrow the search for the correct gamma. As indicated by reference numeral 106, the user is then instructed to select the gray patch that appears to most closely blend with the dithered background. Based on the selected gray patch, individual RGB gammas are computed, as indicated by reference numeral 108. The overall gray balance determination process is indicated generally in FIG. 5 by reference numeral 1 10. Notably, the overall gray balance determination can be made with a single click of the user's pointing device. Thus, in this gray balance process, the gray patch selected in the fine gamma process is displayed with gray patches that exhibit +/- (plus/minus) differences in R, G, and B. For example, the gray patch selected in the fine gamma process can be displayed in the center of the range. The range preferably is a two-dimensional array of patches with RGB-shifted patches arranged around the central patch from the fine gamma process. FIG. 9 illustrates an example of a two-dimensional range 122 of gray patches arranged in a five-by-fivc matrix. The user selects the patch that looks the most gray in comparison to the dithered background. The central patch can optionally be highlighted to indicate it is the preferred default choice. The number of patches and the exact values of RGB for each patch can be quite flexible. For example, in the case of the image in FIG. 9, all patches can be selected to have identical values of L* as indicated by the estimated profile for the display based on phosphors, average gamma, and black point. Patches adjacent to the center may differ by all permutations of +/- 3 DE for a* and for b* as estimated from a Matrix TRC profile constructed from the parameters. Patches around the outer rim of the grid array may differ from the center by +/- 6 DE. Alternatively, for simplicity, one can vary R and B only by +/- a fixed amount such as +/- 5 gray levels and +/- 10 gray levels. The important requirement is that all patches are relatively small deviations from the central patch in all directions of color space of approximately constant L*. This test will help determine in a sensitive manner whether there exists a significant difference in the gammas of R, G, and B. The two-dimensional format of the patches shown in FIG. 9 aids the user's selection of the correct patch. The patch from the previous step in the color profiling process, i.e., fine gamma, is placed at the center in this embodiment. Adjacent patches differ in gray level as the array extends outward such that the outer periphery 5 of the array contains patches that are two gradations removed from the central patch. The array produces a visual "funnel" effect that, from experience, tends to direct the user toward the central patch as the starting point for matching with the background. The differences between patches in the two-dimensional array are more clear and dramatic than in a one-dimensional strip of patches. As the array extends outward, ) the shift becomes greater. Thus, the gradations are well pronounced and aid the user in picking the appropriate patch which, in many cases, will be the central patch selected in the previous step of the color profiling process. If the user selects the central patch, a single gamma value is used for the R, G, and B channels. If one of the other patches are selected, three separate gammas are 5 calculated based on the equations: 0.5 = (Max(0.0, (X Rα5 -XBPVO -Xnp))) γr 0.5 = (Max(0.0, (Xαo.5 -XBPVO -X B p))) γ 0.5 = (Max(0.0, (XBO.5 -XBPVO -X B p))) γb where the subscripts for γ and X 0 5 indicate unique values for the R, G, and B channels. The values for X 0.5 for each channel are given by the values of RGB of the particular patch selected in this gray balance step. These equations are combined with a set of phosphor values to generate accurate profiles for the client's display device, using equations well known in the art, and referred to as Matrix TRC formalism in the International Color Consortium (ICC) specification. Again, calculations can be performed by color profile server 1 8 or by a color correction module associated with color image servers 16a-16n. Based on the black point, coarse gamma, fine gamma, and gray balance processes, a color profile for the display device is generated, as indicated by reference numeral 1 12. Upon generation of the color profile, a color profiler cookie is created, as indicated by reference numeral 1 14. Information representative of the color profile is added to the color profiler cookie for future use. In particular, the information can be used to create a subscriber cookie for future interaction between the particular client 14a-14n and the particular subscriber 22a-22n and color image server 16a-16n. Advantageously, there is no need for the client 14a-14n to provide information regarding the configuration of its display device. Very satisfactory results can occur using an average set of phosphor values based on published standards such as sRGB. Apple Macintosh RGB, and the like. If desired, further steps can be added, particularly in order to address the issue of phosphor values and white point. The color profiling process simply results in generation of a cookie that serves as a container and vehicle for passing information characterizing the color response of the display device associated with client 14a-14n to color image server 16a-16n. Ordinarily, all cookies visible to a particular domain are attached to each request from a browser application executed by a client 14a-14n. For this reason, a typical browser limits each domain to a maximum of twenty cookies. To avoid consuming the allotment of cookies for a particular subscriber 22a-22n, all of the color correction information for a particular client 14a-14n preferably is packed into a single profiler cookie and a single subscriber cookie. For example, a number of items can be packed into the value string of the subscriber cookie or the profiler cookie, as the case may be. In particular, each cookie should include the gamma values for R, G, and B. Each gamma value may be a value between 1.0 and about 3.0. In addition, the cookie may include the chromaticity values for black and white, e.g., expressed as a value between -1000.0 and +1000.0. An exemplary cookie may have the following items packed into its value string, each demarcated by a separator: (1) Cookie format version code - a numeric code, e.g., 1 to 3 bytes, plus separator. (2) Cookie installation date - the usual cookie-style timestamp (milliseconds after midnight of Jan. 1, 1970, GMT), e.g., 12 to 13 bytes, plus separator. (3) Unique profiler ID assigned to this color information when it is generated by the color correction sequence; a long integer, e.g., 4 bytes, plus separator (but possibly longer). (4) Gamma values for R, G, B - each a text representation of a floatingpoint value between 1.0 and about 3.0, retaining 4 decimal digits. The decimal point could be implied. Thus, the gamma values may take up 5 or 6 bytes plus a separator each, or three times that overall. (5) Chromaticity for Black and White - each a text representation of a floating-point value between -1000.0 and +1000.0, retaining 4 significant digits. Thus, this may take up 6 or 7 bytes plus a separator each, or two times that overall. (6) Number of bits per color - two decimal digits: two bytes plus separator. (7) Display Device ID code - an alphanumeric code, which may be roughly 10 bytes plus separator. (8) Cookie Data Checksum - a long integer: 4 bytes. The example cookie described above has about 68 bytes plus 10 separators. The separator character should be chosen so that the string does not have to be "escaped"; the caret ( Λ ) is frequently used this way. Thus, the typical size for the value string may be about 80 bytes. FIG. 10 is a flow diagram illustrating another color profiling process for a display device. The process shown in FIG. 10 is an alternative to the process described with reference to FIGS. 4-9. As shown in FIG. 10, this process involves adjusting the monitor, as indicated by reference numeral 124, to prepare the display device for estimation of overall gamma, as indicated by reference numeral 126. Following determination of overall gamma, individual RGB gammas are estimated, as indicated by reference numeral 128. Then, as indicated by reference numeral 130, a color profile for the display device is generated. The color profile is then loaded into a profiler cookie, as indicated by reference numeral 132, which can be used to produce subscriber cookies. FIG. 1 1 is a flow diagram illustrating a color profiling process as shown in FIG. 10 in greater detail. The color profiling process, in this embodiment, assumes a common black point for all display devices. Thus, it is not necessary to obtain a black point estimate. Instead, the user prepares the display device, i.e., the monitor, for gamma characterization. Adjustment of the monitor is indicated generally in FIG. 1 1 by reference numeral 134. To adjust the monitor, color profile server 18 first serves a page containing a dark element and a darker element, as indicated by reference numeral 136. The dark and darker elements may include graphic objects and/or text. FIG. 12 illustrates a pair of gray elements for use in adjusting a display device in a color profiling process as shown in FIG. 1 1. As shown in FIG. 12, the gray elements may appear in the center of a screen 164 having an outer white border 166 and an inner black portion 168. The contrast of white border 166 and inner black portion 168 may assist the user visually when adjusting the brightness and contrast of the display device. The gray elements may be placed adjacent one another within the inner black portion 168. The user is instructed to set the contrast and brightness of the display device to maximum, as indicated by reference numeral 138. Then, the user is instructed to reduce the brightness until the darker element just disappears, as indicated by reference numeral 140. The user is further instructed to reduce the brightness until the dark element is barely visible, as indicated by block 142. The various instructions may appear on a common web page, or a scries of web pages with hypertext prompting icons for continuing the process. After the user has adjusted the display device, color profile server 18 serves a web page that displays a range of gray patches against a dithered gray background, e.g., at a gray level of 50%, as indicated by reference numeral 144. FIG. 13 illustrates a range of gray patches for use in estimating gamma. As shown in FIG. 13, the range of gray patches may be arranged in a two-dimensional array in screen 170. In one example, nine pure gray images with RGB triple values of 155, 165, 173, 180, 186, 191 , 195, 199, and 202 can be used. The patches should be spaced far enough apart to avoid introduction of image artifacts. In particular, the distance between adjacent patches may be at least the width of a patch in preferred embodiments. As in the example of FIGS. 4-9, the dithered background may have a "window blind" pattern of alternating pure white and pure black horizontal lines of one pixel in height. Further, as in the example of FIGS. 4-9, the two-dimensional array in screen 170 aids the user in selecting a visual match to the background. The user is instructed to select one of the gray patches that appears to most closely blend with the dithered background, as indicated by reference numeral 146. The user may select a gray patch by clicking on it, with the click result being sent to the color profile server 18. An estimate of overall gamma for the display device is then computed, as indicated by block 148, based on the selected patch. The process for estimating gamma is indicated generally by reference numeral 150. After computing an estimate of overall gamma, individual RGB gamma is computed, as indicated generally by reference numeral 152. Color profile server 18 serves a web page in which ranges of R, G, and B patches are displayed against a dithered R, G, and B backgrounds, as indicated by reference numeral 154. In particular, three different two-dimensional arrays of patches can be displayed, as indicated in screen 180 of FIG. 14. Each array corresponds to one of the R, G, and B color channels, and contains patches that are identical to those shown in FIG. 13 except that the patches are either pure red, pure green or pure blue. As indicated by reference numeral 156, the user is instructed to select one of the patches in each of the R, G, and B ranges that appears to most closely match the corresponding dithered gray background. In this manner, estimates of individual R, G, and B gamma can be computed, as indicated by reference numeral 158. The gammas are computed based on the particular patches selected by the user. If the individual gammas differ from the overall gamma, then the individual gammas are used to generate the color profile. Upon generation of the color profile, as indicated by reference numeral 160, the color profile is used to generate a color profile cookie, as indicated by reference numeral 162. Initially, the color profile forms the contents of the profiler cookie, which then can be used to generate individual subscriber cookies for each of subscribers 22a-22n in the event the client 14a-14n requests images from color image servers 16a-16n associated with such subscribers. FIG. 15 is an example of a color image 184 transmitted to a client 14a-14n in a system as shown in FIGS. 1 and 2. As shown in FIG. 15, the image 184 may be presented on a screen 182 on a display device associated with a client 14a-14n. A color image server 16a-16n associated with a particular subscriber 22a-22b, such as "ABC Company," delivers image 184 to the client 14a-14n upon request. For purposes of illustration, image 184 may be accompanied by a legend 186 that identifies the subscriber 22a-22n and a particular item being displayed. Also, an icon, button, or the like may accompany image 184 and indicate whether color correction has been applied by color image server 16a-l 6n, as indicated by reference numeral 188. In the example of FIG. 15, color correction has not been applied, e.g., because a subscriber cookie has not yet been generated for the particular subscriber 22a-22n. Another icon, button, or the like may be displayed to invite the user to profile its display device, as indicated by reference numeral 190. Elements 188 and 190 could be integrated with one another, as discussed previously, and take on an appearance such as a particular color scheme that indicates whether color correction has been applied. In either case, element 190 provides a hypertext link to the URL associated with color profile server 18. Thus, when the user clicks on element 190, pages are requested from color profile server 18 for initiation of the color profiling process. If a profiler cookie already exists, however, it is sent by client 14a-14n to color profile server 18. In that case, there is no need to repeat the color profiling process. Instead, color profile server 18 creates a subscriber cookie for the pertinent subscriber 22a-22n, and forwards it to the associated color image server 16a-16n, either directly without user intervention or indirectly with user approval as previously described. FIG. 16 is block diagram illustrating transmission of color correction information in a system as shown in FIGS. 1 and 2. In particular, FIG. 16 illustrates a situation in which subscriber cookies have already been created for color image servers 194, 198 associated with particular subscribers 22a-22n accessed by an individual client 196. In this case, upon accessing a web page from a subscriber server 12a-12n, client 196 requests images from color image server 194. When requesting images from another subscriber 22a-22n, client 196 requests images from color image server 198. Color image server 194 incorporates both a color correction module 200 and an archive 202 of color images. Similarly, color image server 198 includes a color correction module 204 and an archive of color images 206. When client 196 sends an image request to color image server 194, it sends along a color profile cookie, i.e., a subscriber cookie, as indicated by line 208. Likewise, as indicated by line 210, client 196 sends a subscriber cookie to color image server 198 when requesting an image. In each case, the subscriber cookie contains a color profile that provides color correction information for use by the respective color correction module 200, 204 in modifying, i.e., color correcting, the color images served from image archives 202, 206, respectively. Thus, when a request is received, color images server 194 or 198 processes the accompanying subscriber cookie to extract the contents, and controls the color correction module 200, 204 based on the extracted contents. In this manner, client 196 receives color corrected images, as indicated by reference numerals 212 and 214. The manner in which color correction modules make use of the color profiles contained in the subscriber cookies will now be described. The foregoing discussion associated with FIGS. 4-9 and 10-14 above has utilized simplified one dimensional formulas to explain the relevance of black point, average gamma, and adjusted gammas for RGB to account for gray balance. In the embodiment described with reference to FIGS. 4-9, black point is estimated based on a gray element selected by a user associated with a respective client 14a-14n. In the embodiment described with reference to FIGS. 10-14, a common black point is assumed for all monitors. Thus, the output of each color profiling process is a black point RGB value and a gamma, or individual RGB gammas. Now we assume that these values have been determined in the manner described above. The complete description of the display device behavior can be given by the following equation which relates RGB -> XYZ: where .0 - k o , r )]≥ 0} .0 - * o ,)]< 0 The variables d r , d g , and d b are the digital input values normalized to 1.0. The parameters k 0 , r , ko, g , and k o ,b, are the black point offsets and the parameters γ r , γ g , and γ b are the gammas for the red, green, blue channels. Thus, the gamma and black point information contained in the subscriber cookie for a respective display device can be used in the above equations to produce, in effect, a destination device profile. The destination device profile, with a source profile previously computed for the requested image, can be used to perform a transformation of the image data sufficient to produce calibrated output on the display device. The above approach is different than other attempts to characterize display devices such as equation 21 in Berns, "CRT Colorimetry. Part I: Theory and Practice." In most characterizations, the "k" parameters are used to describe black offset rather than black point. Black offset refers to the non-zero intensity measured or perceived from a display for RGB=0. In our experience, the contrast/brightness adjustment procedure used in a color profiling process in accordance with embodiments of this invention minimizes the effect of this phenomenon. However, non-zero black points are very possible even after the contrast/brightness adjustment, and therefore should be taken into account. This profile description can either be used in this form or can be converted to formats such as those specified by the ICC. This format is also known as the Matrix TRC format, and utilizes a generic look up table for the expressions above for R, G, and B rather than an equation combined with a Matrix similar to above. Note that in the current example, it is assumed that the parameters d r = d g = d b and the parameters k o . r = k 0 , g = k o,b - The above information, e.g., gammas, black point, and the like, can be stored in a cookie on a computer associated with a client 14a-14n. Alternatively, the individual data which are the RGB values of the patches selected by the user can be stored in the cookie, which can permit improved profile technology to be employed at a later date utilizing the same information. To implement a system as described herein with an existing archive of images and HTML codebase for a particular subscriber 22a-22b, the existing subscriber server 12a-12n is modified to replace existing image file references indicated in HTML pages with similar references to a pertinent color image server 16a-16n equipped with a color correction module. For example, an existing subscriber image file reference called: http://SubscriberName.com/images/ImageName.jpg could be replaced with: http://correction.SubscriberName.com/images/ImageName.jpg. These modified references in the HTML page then issue a command to the color image server 16a-16n to serve the requested image. When the color image server 16a-16n receives the command, it also receives the subscriber cookie, if one exists, and applies the information contained in the cookie to perform color correction. The color image server 16a-16n then reads the pertinent image file, creates a unique display profile utilizing the display parameters stored in the subscriber cookie, and converts the image from source to destination before sending it to the client's browser. All images stored on the subscriber server 12a-l 2n may have a corresponding copy file of the same name residing on the subscriber color image server 16a-16n. The color image server 16a-16n may access this database of image files to read, convert, and send images referenced by the HTML page sent to the client 14a-14n. According to one embodiment, color image server 16a-16n may use a very simple and quick technique for color management. In particular, all images on the color image server 16a-16n preferably have a predetermined RGB color space. This typically means that original images are converted from the color space of corresponding source devices, e.g., such as scanners, digital cameras, and the like, to the standard color space determined by the subscriber 22a-22n. Good examples of standard RGB color spaces are ColorMatch RGB, which has a color temperature for the "virtual display" of D50. Other color spaces such as Adobe RGB have an excellent gamut, but have a color temperature of D65. This may be problematic because there can be ambiguity in the implementation of profiles with non-D50 color temperatures. When an image on an HTML page sent to the client 14a-14n is referenced via the color image server 16a-16n associated with a subscriber server 12a-12n such as: correction.SubscriberName.com/images/ImageName.jpg color image server 16a-16n accesses the corresponding image and converts the RGB data in real time before sending the image to the client destination. The conversion can be performed according to the following calculation: = {[«,, - *,,.,) /(i .0 - *,„) J" [« , - *,,, ) 0 -o - *,,, ) ] o] Λ.H ' [«,-Λ 0 . r, ,)/0-θ-Λ β,r, ,)]<oj G = r,c =* o,r,c + (1.0-/ n,r,c ) 'min(1.0,' ? c) ''" ' " ^ = * w + -°-* w ) min (1.0,G e ,/ " = ^+(l-0- )min(1.0,5 f ) ,/ r Note that the matrices above can be concatenated into a single matrix for increased processing speed. FIG. 17 is a block diagram illustrating an alternative architecture for a system 214 for improving color image display accuracy in a computer network. System 214 conforms substantially to the system shown in FIG. 2, except that all images for the subscribers are stored at a central color image server 16. Color profiling server 18 may reside or be integrated with color image server 16 in the embodiment of FIG. 17. In this case, color profiling server 18 provides web pages for guidance of a color profiling process as described herein. Color image server 16 or color profile server 18 may include a database server for storage of individual color profiles associated with clients 14a-14n. When a client 14a-14n requests an image tagged in the code sent by one of subscriber servers 12a-12n, it is directed to the central color image server 16. The color image server 16 may use a client ID sent from the client to retrieve the appropriate color profile and apply it to modify the requested color image using techniques as described herein for color correction. In this manner, color image server 16 provides color corrected images without the need for transfer of cookies and the like between clients 14a-14n and the color image server.

Claims: CLAIMS: 1. A method comprising: obtaining information characterizing the color response of a display device associated with a client residing on a computer network; modifying a color image based on the information to improve the accuracy of the color image when displayed on the display device; and delivering the modified color image to the client via the computer network for display on the display device. 2. The method of claim 1, further comprising obtaining the information by guiding the client through a color profiling process that profiles the color response of the display device. 3. The method of claim 2, wherein the color profiling process includes: estimating the black point of the display device; estimating a coarse gamma for the display device; estimating a fine gamma for the display device based in part on the coarse gamma; estimating the gray balance of the display device; and generating a color profile based on the black point, the coarse gamma, the fine gamma, and the gray balance. 4. The method of claim 3, wherein estimating the black point of the display device includes: displaying a first range of gray elements on the display device; setting the contrast of the display device to maximum; setting the brightness of the display device to maximum; reducing the brightness of the display device until the darkest of the gray elements is barely visible; selecting the gray element that is barely visible. 5. The method of claim 4, wherein: estimating the coarse gamma includes: displaying a second range of gray elements with a dithered approximately 50% gray background, selecting the gray element that appears to most closely blend with the background, and estimating a single coarse gamma for the red, green, and blue channels of the display device based on the gray level of the selected gray element, and estimating the fine gamma includes: displaying the selected gray element within a third range of gray elements with the dithered background, wherein the gray levels of the third range of gray elements are more closely spaced than the gray levels in the second range of gray elements and substantially centered about the gray level of the selected gray element; selecting the gray element in the third range of gray elements that appears to most closely blend with the dithered background; and estimating a single fine gamma for the red, green, and blue channels of (he display device based on the gray level of the selected gray element in the third range of gray elements. 6. The method of claim 5, wherein estimating the gray balance includes: displaying the selected gray element from the third range of gray elements among a fourth range of red-, green-, and blue-shifted gray elements with the background; selecting the gray element in the fourth range of gray elements that appears to most closely blend with the background; and estimating individual gammas for the red, green, and blue channels of the display device based on the gray level of the selected gray element in the fourth range of gray elements. 7. The method of claim 2, wherein the color profiling process includes: displaying a dark element and a darker element on the display device; setting the contrast and brightness of the display to maximum; reducing the brightness until the darker element is not visible; reducing the brightness until the dark element is barely visible; displaying a first range of gray elements with a dithered approximately 50% gray background; selecting the gray element in the first range that appears to most closely blend with the dithered background; and estimating the gamma of the display device based on the gray level of the selected gray element. 8. The method of claim 7, wherein the color profiling process further includes: display ranges of gray elements for the red, green, and blue color channels of the display device with dithered approximately 50% gray red, green and blue backgrounds; selecting the red, green, and blue gray elements that appear to most closely blend with the respective backgrounds; and estimating individual gammas for the red, green, and blue color channels based on the selected red, green, and blue gray elements. 9. The method of claim 2, further comprising: guiding the client through the color profiling process by delivering a series of instructional web pages to the client; obtaining the information by generating a web cookie based on results of the color profiling process; and transmitting the web cookie to a remote server in the computer network, wherein the remote server modifies the color image based on the information, and delivers the modified color image to the client. 10. The method of claim 1 , further comprising: transmitting a web page from a web server to the client, wherein the web page includes an image tag identifying the color image on a color image server residing on the computer network; transmitting the information as part of a web cookie to the color image server. wherein the color image server modifies the color image based on the information; and transmitting the color image from the color image server to the client. 1 1. The method of claim 1 , further comprising: transmitting a first web page from a color profile server to the client, the web page guiding the client through a color profiling process to obtain the information; transmitting a second web page from a web server to the client, wherein the web page includes an image tag identifying the color image on a color image server residing on the network; transmitting the information as part of a web cookie to the color image server. wherein the color image server modifies the color image based on the information; and transmitting the color image form the color image server to the client. 12. A system comprising: a web server residing on a computer network, the web server transmitting web pages to remote clients residing on the computer network; a color image server residing on the computer network, the color image server transmitting color images referenced by the web pages to the clients for display on display devices associated with the clients; a color profile server residing on the computer network, the color profile server guiding the clients through a color profiling process to obtain information characterizing the color responses of the display devices associated with the clients; and one or more color correction modules that modify the color images transmitted by the color image server based on the information to improve the accuracy of the color images when displayed on the respective display device. obtaining information characterizing the color response of a display device associated with a client residing on a computer network; modifying a color image based on the information to improve the accuracy of the color image when displayed on the display device; and delivering the modified color image to the client via the computer network for display on the display device. 13. The system of claim 12, wherein the one or more color correction modules include a plurality of color correction modules, each of the color correction modules being resident with one of the color image servers on the network. 14. The system of claim 12, wherein the color profile server delivers a series of instructional web pages to the client that guide a user associated with the client through the color profiling process, and wherein the color profiling process includes: estimating the black point of each of the display devices; estimating a coarse gamma for each of the display devices; estimating a fine gamma for each of the display devices based in part on the coarse gamma; estimating the gray balance of each of the display devices; and generating a color profile based on the black point, the coarse gamma, the fine gamma, and the gray balance. 15. The system of claim 12, wherein estimating the black point of each of the display devices includes: displaying a first range of gray elements on each of the display devices; setting the contrast of each of the display devices to maximum; setting the brightness of each of the display devices to maximum; reducing the brightness of each of the display devices until the darkest of the gray elements is barely visible; selecting the gray element that is barely visible. 16. The system of claim 15, wherein: estimating the coarse gamma includes: displaying a second range of gray elements with a dithered approximately 50% gray background; selecting the gray element that appears to most closely blend with the background, and estimating a single coarse gamma for the red, green, and blue channels of each of the display devices based on the gray level of the selected gray element, and estimating the fine gamma includes: displaying the selected gray element within a third range of gray elements with the background, wherein the gray levels of the third range of gray elements are more closely spaced than the gray levels in the second range of gray elements and substantially centered about the gray level of the selected gray element; selecting the gray clement in the third range of gray elements that appears to most closely blend with the background; and estimating a single fine gamma for the red, green, and blue channels of each of the display devices based on the gray level of the selected gray element in the third range of gray elements. 17. The system of claim 16, wherein estimating the gray balance includes: displaying the selected gray element from the third range of gray elements among a fourth range of red-, green-, and blue-shifted gray elements with the background; selecting the gray element in the fourth range of gray elements that appears to most closely blend with the background; and estimating individual gammas for the red, green, and blue channels of each of the display devices based on the gray level of the selected gray element in the fourth range of gray elements. 18. The system of claim 12, wherein the color profiling process includes: displaying a dark element and a darker element on each of the display devices; setting the contrast and brightness of the display to maximum; reducing the brightness until the darker element is not visible; reducing the brightness until the dark element is barely visible; displaying a first range of gray elements with a dithered approximately 50% gray background; selecting the gray element in the first range that appears to most closely blend with the background; and estimating the gamma of each of the display devices based on the gray level of the selected gray element. 19. The system of claim 18, wherein the color profiling process further includes: displaying ranges of gray elements for the red, green, and blue color channels of the display device with dithered approximately 50% gray red, green and blue backgrounds; selecting the red, green, and blue gray elements that appear to most closely blend with the respective backgrounds; and estimating individual gammas for the red, green, and blue color channels based on the selected red, green, and blue gray elements. 20. The system of claim 12, wherein the web pages generated by the color profile server, when executed by one of the clients, generates a web cookie based on results of the color profiling process, each of the clients transmitting the web cookie to one of remote servers for correction of the color images.

Inventors: EDGE CHRISTOPHER J, FISCHER TIMOTHY A, KRUSE BRIAN D, SHELTON RICHARD M, EDGE, CHRISTOPHER, J., FISCHER, TIMOTHY, A., KRUSE, BRIAN, D., SHELTON, RICHARD, M.
Applicants: IMATION CORP, IMATION CORP.
Application year: 2001
Main classification: G06T11
IPC codes: G06T1, G06T11, G09G5, H04N1, H04N9