US20060290954A1 - ICC consistent chromatic adaptation - Google Patents
ICC consistent chromatic adaptation Download PDFInfo
- Publication number
- US20060290954A1 US20060290954A1 US11/159,731 US15973105A US2006290954A1 US 20060290954 A1 US20060290954 A1 US 20060290954A1 US 15973105 A US15973105 A US 15973105A US 2006290954 A1 US2006290954 A1 US 2006290954A1
- Authority
- US
- United States
- Prior art keywords
- profile
- chromatic adaptation
- icc
- cone
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006978 adaptation Effects 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 claims abstract description 105
- 239000011159 matrix material Substances 0.000 claims description 130
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32128—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title attached to the image data, e.g. file header, transmitted message header, information on the same page or in the same computer file as the image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/6027—Correction or control of colour gradation or colour contrast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/603—Colour correction or control controlled by characteristics of the picture signal generator or the picture reproducer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3225—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
- H04N2201/3256—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document colour related metadata, e.g. colour, ICC profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3225—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
- H04N2201/3256—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document colour related metadata, e.g. colour, ICC profiles
- H04N2201/3259—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document colour related metadata, e.g. colour, ICC profiles relating to the image, page or document, e.g. intended colours
Definitions
- Different devices interpret and reproduce color differently and are often referred to as having disparate color spaces.
- the same document may look different on two separate devices unless the devices are alike and process the image data for the document identically.
- a document displayed on a monitor may look different when displayed on a different monitor or printed on a printer.
- color transformations may be applied to image data in order to convert the data from the color space of one device to a color space of another device.
- a color transformation maps the colors from a source color space to a destination color space such that the colors look similar when viewed on the source device and destination device.
- Device dependent color transformation entails providing transformations to convert data from each source device within a system to each destination device within the system. This requires each transformation to have both source device color information and destination device color information.
- n 2 transformations are required.
- Device independent color transformation involves providing a standard intermediate color space. A transformation is provided for each device to convert between the device color space and the standard intermediate color space. This type of system provides a number of benefits, including a reduction in the number of transformations required. For example, for a system having n devices, only n transforms are required.
- ICC International Color Consortium
- PCS profile connection space
- Transformations for converting color data between a device color space and the PCS are provided in a device profile.
- a device profile is a file that contains parameters that define the color conversion between the device color space and the PCS.
- the profile comprises a header, a tag table, and tagged element data.
- the profile header provides information that allows the profile to be properly searched and sorted.
- the tag table operates as a table of contents for the tags and the tag element data in the profile.
- the tag element data contains the data for each tag.
- chromatic adaptation is the ability of the human visual system to adjust to different illumination sources to approximately maintain the appearance of an object's colors. For color transformation, chromatic adaptation takes into account that images from various devices may be subject to or assumed to be under different illumination.
- V4 ICC specification attempted to address the inadequacies of previous versions' approaches to chromatic adaptation, the current specification falls short in providing an unambiguous and consistent approach.
- the V4 ICC specification does not mandate a particular chromatic adaptation method but, instead, provides the ability for each profile to have its own chromatic adaptation method. This can lead to different chromatic adaptation methods being applied within a single workflow, which is undefined science and was strongly recommended against by the original authors of the chromatic adaptation methods.
- the current ICC specification attempts to address this problem by providing some guidance within Annex E of the specification.
- Annex E recommends using the inverse of the chromatic adaptation matrix for each profile (found in the chromatic adaptation tag) to “back out” the chromatic adaptation applied to each device's color data and then apply a consistent chromatic adaptation method to the color data for each device.
- the approach remains ambiguous and retains a number of shortcomings.
- the current ICC specification recommendations imply that the inverse chromatic adaptation matrix from each profile is used to derive the device white point, which may differ from the actual device white point used by that profile.
- the current ICC specification does not provide any guidance on what chromatic adaptation method should be employed other than recommending use of the Bradford transform.
- the ICC specification does not provide any guidance regarding which chromatic adaptation method should take priority.
- Embodiments of the present invention relate to systems and methods for providing consistent chromatic adaptation to a workflow containing a sequence of ICC profiles. Accordingly, in one aspect, an embodiment of the present invention is directed to a method for providing consistent chromatic adaptation for an ICC workflow. The method includes identifying ICC profiles within the workflow that require chromatic adaptation. The method also includes identifying one of the ICC profiles as a control profile and determining the chromatic adaptation method that is employed by the control profile. The method then further includes converting color data associated with each ICC profile identified as requiring chromatic adaptation using the chromatic adaptation method employed by the control profile.
- an embodiment is directed to a system for providing consistent chromatic adaptation for an ICC workflow.
- the system includes a profile identifying component, a control profile identifying component, a target determining component, and a conversion component.
- the profile identifying component is capable of identifying ICC profiles within the workflow that require chromatic adaptation.
- the control profile identifying component may identify one of the ICC profiles as a control profile.
- the target determining component is capable of determining a target cone matrix and target cone white points from the control profile.
- the conversion component is capable of converting color data for each ICC profile identified as requiring chromatic adaptation using the target cone matrix and target PCS cone white point.
- FIG. 1 is a block diagram of an exemplary computing environment suitable for use in implementing the present invention
- FIG. 2 is a flow diagram showing a method for providing consistent chromatic adaptation to an ICC workflow in accordance with an embodiment of the present invention
- FIG. 3 is a flow diagram showing a method for determining ICC profiles that require chromatic adaptation in accordance with an embodiment of the present invention
- FIG. 4 is a flow diagram showing a method for extracting the cone matrix, ratio matrix, and cone white points for a profile in accordance with an embodiment of the present invention
- FIG. 5 is a flow diagram showing an iterative method for determining the cone matrix, ratio matrix, and cone white points for a profile in accordance with an embodiment of the present invention
- FIG. 6 is a flow diagram showing a method for converting color data for V4 profiles within an ICC workflow that have been identified as requiring chromatic adaptation in accordance with an embodiment of the present invention.
- FIG. 7 is a flow diagram showing a method for converting color data for V2 profiles within an ICC workflow that have been identified as requiring chromatic adaptation in accordance with an embodiment of the present invention.
- Embodiments of the present invention provide systems and methods for providing consistent chromatic adaptation to an ICC workflow containing a sequence of profiles.
- profiles within the workflow that require chromatic adaptation are identified.
- one of the profiles is identified as a control profile.
- the chromatic adaptation method in the control profile can be designated as the chromatic adaptation method to be applied to all profiles requiring chromatic adaptation to provide consistent chromatic adaptation within the workflow.
- the parameters needed to apply the chromatic adaptation method of the control profile to the other profiles are extracted from the control profile.
- these parameters include the cone matrix and cone white points, which are designated as the target cone matrix and target cone white points.
- Color data associated with each profile identified as requiring chromatic adaptation may then be converted using the parameters extracted from the control profile such that the data for each profile has been chromatically adapted to the PCS using the same chromatic adaptation method.
- the process includes first “backing out” the chromatic adaptation applied to the color data associated with each profile and then applying the chromatic adaptation method of the control profile. Because the color data associated with each V4 profile has been chromatically adapted to the PCS using the chromatic adaptation method contained in each V4 profile, the color data for each V4 profile is first converted to the device source color space from the PCS by applying the inverse chromatic adaptation matrix from each V4 profile's chad tag.
- the Bradford matrix is assumed to be the chromatic adaptation method that was applied and is used to convert the data associated with each V2 profile from the PCS to the device source color space.
- a new chromatic adaptation matrix is then computed for each profile using the target cone matrix, the target PCS cone white point, and the device source cone white point associated with each profile.
- the new chromatic adaptation matrix computed for each profile is then applied to the color data associated with that profile to convert back to the PCS.
- computing system environment 100 an exemplary operating environment for implementing the present invention is shown and designated generally as computing system environment 100 .
- the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100 .
- the invention is operational with numerous other general purpose or special purpose computing system environments or configurations.
- Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
- program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
- the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote computer storage media including memory storage devices.
- an exemplary system for implementing the present invention includes a general purpose computing device in the form of a computer 110 .
- Components of computer 110 may include, but are not limited to, a processing unit 120 , a system memory 130 , and a system bus 121 that couples various system components including the system memory to the processing unit 120 .
- the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- Computer 110 typically includes a variety of computer-readable media.
- Computer-readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may comprise computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110 .
- Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
- the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132 .
- ROM read only memory
- RAM random access memory
- a basic input/output system (BIOS) 133 containing the basic routines that help to transfer information between elements within computer 110 , such as during start-up, is typically stored in ROM 131 .
- BIOS basic input/output system
- RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120 .
- FIG. 1 illustrates operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
- the computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
- FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152 , and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media.
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks (DVDs), digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140
- magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150 .
- hard disk drive 141 is illustrated as storing operating system 144 , application programs 145 , other program modules 146 , and program data 147 . Note that these components can either be the same as or different from operating system 134 , application programs 135 , other program modules 136 , and program data 137 . Operating system 144 , application programs 145 , other programs 146 and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
- a user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161 , commonly referred to as a mouse, trackball or touch pad.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
- a monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190 .
- computers may also include other peripheral output devices such as speakers 197 and printer 196 , which may be connected through an output peripheral interface 195 .
- the computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180 .
- the remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110 , although only a memory storage device 181 has been illustrated in FIG. 1 .
- the logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173 , but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
- the computer 110 When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170 .
- the computer 110 When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173 , such as the Internet.
- the modem 172 which may be internal or external, may be connected to the system bus 121 via the network interface 170 , or other appropriate mechanism.
- program modules depicted relative to the computer 110 may be stored in a remote memory storage device.
- FIG. 1 illustrates remote application programs 185 as residing on memory device 181 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- the BIOS 133 which is stored in the ROM 131 , instructs the processing unit 120 to load the operating system, or necessary portion thereof, from the hard disk drive 141 into the RAM 132 .
- the processing unit 120 executes the operating system code and causes the visual elements associated with the user interface of the operating system 134 to be displayed on the monitor 191 .
- an application program 145 is opened by a user, the program code and relevant data are read from the hard disk drive 141 and the necessary portions are copied into RAM 132 , the copied portion represented herein by reference numeral 135 .
- embodiments of the present invention relate to systems and methods for providing consistent chromatic adaptation to an ICC workflow comprising a sequence of profiles that use inconsistent chromatic adaptation techniques.
- FIG. 2 a flow diagram is illustrated which shows a method 200 for providing consistent chromatic adaptation for a workflow of ICC profiles in accordance with an embodiment of the present invention.
- the profiles that require chromatic adaptation using the present invention are identified, as shown at block 202 .
- profiles that require chromatic adaptation are ones in which some chromatic adaptation method is contained within the profile.
- a profile may designated as requiring chromatic adaptation using the present invention if it has a viewing condition tag in which the normalized device source illuminant (i.e. the device source white point) is different from the PCS white point in the profile header.
- a profile having a chad tag may also be designated as requiring chromatic adaptation.
- a method 300 for determining which profiles within a workflow require chromatic adaptation in accordance with an embodiment of the present invention is shown in FIG. 3 .
- a profile within the sequence is obtained initially, as shown at block 302 . Whether the current profile contains a chad tag is determined at block 304 . If the current profile has a chad tag, the profile will be designated as requiring chromatic adaptation. The profile is flagged for chromatic adaptation at block 310 . After flagging the current profile for chromatic adaptation, whether the profile is the last profile is determined at block 312 . The next profile is obtained if the current profile is not the last profile.
- the current profile does not have a chad tag
- whether the profile contains a viewing condition tag is determined at block 306 . If the current profile does not have a viewing conditions tag, the profile will not require chromatic adaptation. The next profile will then be obtained if the current profile is not the last profile as determined at block 312 . If the current profile does contain a viewing conditions tag at block 306 , whether the device source illuminant in the viewing conditions tag is different from the PCS white point in the profile header is determined at block 308 . Because the device source illuminant in the viewing conditions tag is contained in absolute XYZ values while the PCS white point is contained in relative XYZ values, the device source illuminant must be normalized before comparison.
- the normalized device source illuminant is the same as the PCS white point, no chromatic adaptation is necessary and the next profile is obtained if the current profile is not the last profile in the sequence. However, if the normalized device source illuminant differs from the PCS white point, the profile requires chromatic adaptation. The profile is then flagged for chromatic adaptation at block 310 . After flagging the current profile for chromatic adaptation, whether the profile is the last profile is determined at block 312 . The next profile is obtained if the current profile is not the last profile. Otherwise, all profiles in the sequence have been examined to identify the profiles that require chromatic adaptation and the process ends at block 314 .
- a control profile is identified at block 204 .
- the chromatic adaptation method of the control profile will be designated as the chromatic adaptation method to be applied to each of the profiles in the sequence identified in block 204 as requiring chromatic adaptation.
- the present invention provides a workflow having consistent chromatic adaptation based on the chromatic adaptation technique of the control profile.
- control profile may be performed by a number of methods within the scope of the present invention.
- the last profile in the sequence that is considered suitable for constructing a chromatic adaptation matrix for each profile requiring chromatic adaptation is selected as the control profile.
- a profile may be considered suitable for constructing a chromatic adaptation matrix for each profile within the scope of the present invention in a number of ways.
- a profile is considered suitable if it contains a viewing conditions tag, regardless of whether the normalized device source illuminant differs from the PCS white point in the profile header.
- a flag in the profile header may be used to designate whether the profile should be considered suitable for constructing a chromatic adaptation matrix.
- a profile author then has the option to set the flag when constructing the profile to indicate the intention to use a method for chromatic adaptation in accordance with the present invention.
- only profiles intended for a particular color management engine may be considered suitable for constructing a chromatic adaptation matrix.
- Profile headers contain information indicating the preferred color management engine for processing the profile.
- a profile may be considered suitable then only if a particular color management engine is indicated.
- any profile containing a chad tag may be considered suitable for constructing a chromatic adaptation matrix.
- profiles that employ the same chromatic adaptation method as the control profile may be determined. These profiles will not require chromatic adaptation in accordance with the present invention as these profiles already include a consistent chromatic adaptation method. For example, after determining the control profile, profiles previously flagged for chromatic adaptation may be compared with the control profile and those profiles having the same chromatic adaptation method may have the flag removed. In some embodiments, the control profile may be determined before profiles requiring chromatic adaptation are identified. The identification of profiles requiring chromatic adaptation may then include comparing the profiles with the control profile such that profiles having a chromatic adaptation method consistent with the control profile are not flagged.
- the parameters required to construct a chromatic adaptation matrix for each profile are extracted from the control profile, as shown at block 206 .
- these parameters include a target cone matrix and target cone white points.
- a method 400 for extracting the cone matrix and cone white points from a profile in accordance with an embodiment of the present invention is shown in FIG. 4 . Because these parameters are not expressly set forth in the control profile, they must be derived from other parameters that are expressly set forth: the chromatic adaptation matrix, the PCS XYZ white point, and the device source XYZ white point (if included in the profile). Initially, the chromatic adaptation matrix is extracted from the control profile's chad tag, as shown at block 402 .
- the PCS XYZ white point is then extracted from the profile header at block 404 .
- Whether the profile has a tag from which the device source XYZ white point may be extracted is next determined at block 406 .
- the device source XYZ white point may extracted from the viewing conditions tag, the medium tag, or the measurement tag. If such a tag is present in the profile, the device source XYZ white point is extracted from the tag, as shown at block 408 .
- the device source XYZ white may be determined by applying the inverted chromatic adaptation matrix to the PCS XYZ white point at block 410 .
- the chromatic adaptation matrix is comprised of two matrices: a cone matrix and a ratio matrix.
- the chad tag within a profile sets forth only the chromatic adaptation matrix and does not specify these constituent matrices. Therefore, these matrices must be determined.
- the device source cone white point and the PCS cone white point are not provided in the profile, these parameters must likewise be determined. Therefore, at block 412 , the cone matrix, ratio matrix, and cone white points are determined using the previously determined chromatic adaptation matrix, PCS XYZ white point, and device source white point for the profile.
- the matrices and cone white points are determined by iteratively selecting a proposed cone matrix, computing a proposed chromatic adaptation matrix, and comparing the proposed chromatic adaptation matrix with the chromatic adaptation matrix in the chad tag until the matrices match.
- the process may include looping through a known set of cone matrices, such as the Bradford matrix, the “Wrong Von Kries” matrix, the CIELAB matrix, or some other known or selected matrix.
- an initial proposed cone matrix is selected at block 502 .
- the proposed chromatic adaptation matrix computed at block 510 is then compared with the chromatic adaptation matrix extracted from the chad tag at block 402 , as shown at block 512 . If the proposed chromatic adaptation matrix matches the chromatic adaptation matrix from the chad tag, the proposed cone matrix is set as the target cone matrix, as shown at block 514 . In addition, the cone white points computed using that proposed cone matrix are set as the target cone white points.
- the process of selecting a proposed cone matrix at block 502 through comparing a computed proposed chromatic adaptation matrix with the chad tag's chromatic adaptation matrix at block 512 is repeated until an appropriate proposed cone matrix is selected.
- the color data associated with the other profiles requiring chromatic adaptation may be converted.
- all V4 profiles that were tagged as requiring chromatic adaptation are identified at block 208 .
- Each profile header has a version attribute that allows V4 profiles to be identified.
- the color data for each of these V4 profiles is then converted at block 210 such that the same chromatic adaptation method used for the control profile is applied to the data corresponding to these V4 profiles.
- FIG. 6 illustrates a method 600 for converting color data for a V4 profile in accordance with an embodiment of the present invention.
- An initial V4 profile is obtained, as shown at block 602 .
- the cone matrix and cone white points are extracted for the current V4 profile at block 604 .
- a method such as method 400 described with reference to FIG. 4 may be employed to determine the cone matrix and cone white points. Because the color data for the V4 profile has been chromatically adapted to the PCS using a different chromatic adaptation method, that adaptation is undone by converting the color data from the PCS to the device source color space, as shown at block 606 . This may be accomplished by applying the inverse chromatic adaptation matrix (from the current V4 profile's chad tag) to the PCS color data.
- a new chromatic adaptation matrix is computed using the V4 profile's device source cone white point, the target PCS cone white point, and the target cone matrix. Accordingly, the new chromatic adaptation matrix employs the chromatic adaptation method of the control profile.
- the current V4 profile's color data which has already been converted from the PCS to the device source color space at block 606 , is then converted from the device source color space to the PCS using the new chromatic adaptation matrix, as shown at block 610 . Accordingly, the data for the current V4 profile is now contained in the PCS having been chromatically adapted using the same method as the control profile.
- whether the current V4 profile is the last V4 profile identified as requiring chromatic adaptation is determined. If the current V4 profile is not the last V4 profile, the process is repeated until the color data for the last V4 profile in the workflow has been converted and the process ends at block 614 .
- V2 profiles that have been flagged as requiring chromatic adaptation are identified, as shown at block 212 .
- the V2 profiles are identified by the profile version attribute in the profile header.
- the data for each V2 profile identified is then converted at block 214 such that the same chromatic adaptation method used for the control profile is applied to the color data corresponding to these V2 profiles.
- FIG. 7 illustrates a method 700 for converting data for V2 profiles in accordance with an embodiment of the present invention.
- An initial V2 profile is obtained at block 702 .
- the device source XYZ white point is extracted (in preference priority) from the viewing conditions tag, the medium tag, or the measurement tag.
- the PCS white point is extracted from the profile header at block 706 . Because V2 profiles do not contain a chad tag, the chromatic adaptation matrix used by the profile is not available. Therefore, V2 profiles are assumed to use the Bradford matrix as the cone matrix within each profile's chromatic adaptation matrix. Using the Bradford matrix, the device source cone white point is computed at block 708 .
- the PCS cone white point is also computed using the Bradford matrix at block 710 .
- the ratio matrix is computed using the computed device source cone white point and the computed PCS cone white point, as shown at block 712 .
- a chromatic adaptation matrix is computer at block 714 .
- the inverse of this chromatic adaptation matrix is used to convert the PCS data for the current V2 profile to the device source color space at block 716 .
- a new chromatic adaptation matrix is computed using the computed device source cone white point, the target cone matrix, and the target PCS cone white point.
- the new chromatic adaptation matrix is then applied to the device source color data to convert the data to the PCS at block 720 . Whether the current V2 profile is the last V2 profile identified as requiring chromatic adaptation is determined at block 722 , and the process is repeated until the color data for the last V2 profile is converted and the process ends at block 724 .
- a transform is created using the new profile data, as shown at block 216 .
- a number of methods may be employed for creating the transform within the scope of the present invention.
- a uniformly sampled multidimensional table may be created and used with each profile to derive a resulting optimized transform.
- One skilled in the art will recognize the plethora of methods for deriving a transform that may be employed.
- embodiments of the present invention provide systems and methods for providing consistent chromatic adaptation to an ICC workflow.
- the present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
Description
- Not Applicable.
- Not Applicable.
- Different devices interpret and reproduce color differently and are often referred to as having disparate color spaces. As a result, the same document may look different on two separate devices unless the devices are alike and process the image data for the document identically. For example, a document displayed on a monitor may look different when displayed on a different monitor or printed on a printer. In order to compensate for the difference in the way devices interpret and reproduce color, color transformations may be applied to image data in order to convert the data from the color space of one device to a color space of another device. In other words, a color transformation maps the colors from a source color space to a destination color space such that the colors look similar when viewed on the source device and destination device.
- Generally, there are two approaches to color transformation, device dependent color transformation and device independent color transformation. Device dependent color transformation entails providing transformations to convert data from each source device within a system to each destination device within the system. This requires each transformation to have both source device color information and destination device color information. In addition, for a system having n devices, n2 transformations are required. Device independent color transformation involves providing a standard intermediate color space. A transformation is provided for each device to convert between the device color space and the standard intermediate color space. This type of system provides a number of benefits, including a reduction in the number of transformations required. For example, for a system having n devices, only n transforms are required.
- The International Color Consortium (ICC) was developed to provide a standardized device independent color transformation system. The standard intermediate color space used in the ICC specification is called the profile connection space (PCS). Transformations for converting color data between a device color space and the PCS are provided in a device profile. Generally, a device profile is a file that contains parameters that define the color conversion between the device color space and the PCS. The profile comprises a header, a tag table, and tagged element data. The profile header provides information that allows the profile to be properly searched and sorted. The tag table operates as a table of contents for the tags and the tag element data in the profile. The tag element data contains the data for each tag.
- The ICC specification has been periodically updated to address shortcomings of previous versions (the current version of the ICC specification is version 4.2, which is herein incorporation by reference in its entirety). One area in particular that has been recently addressed, beginning with version 4 (V4) of the ICC specification, is chromatic adaptation. Chromatic adaptation is the ability of the human visual system to adjust to different illumination sources to approximately maintain the appearance of an object's colors. For color transformation, chromatic adaptation takes into account that images from various devices may be subject to or assumed to be under different illumination.
- Versions of the ICC specification prior to the V4 specification did not specify any requirement for chromatic adaptation. As a result, the chromatic adaptation applied to device color values could range from no adaptation to full adaptation with no information supplied to indicate what, if any, chromatic adaptation was applied. The V4 ICC specification addressed this issue by requiring color data for V4 profiles to be chromatically adapted to the PCS white point if chromatic adaptation is necessary (i.e. the device white point differs from the PCS white point). In addition, the V4 specification requires the chromatic adaptation matrix used to be included in a chromatic adaptation (chad) tag within the profile.
- Although the V4 ICC specification attempted to address the inadequacies of previous versions' approaches to chromatic adaptation, the current specification falls short in providing an unambiguous and consistent approach. In particular, the V4 ICC specification does not mandate a particular chromatic adaptation method but, instead, provides the ability for each profile to have its own chromatic adaptation method. This can lead to different chromatic adaptation methods being applied within a single workflow, which is undefined science and was strongly recommended against by the original authors of the chromatic adaptation methods.
- The current ICC specification attempts to address this problem by providing some guidance within Annex E of the specification. To address inconsistent chromatic adaptation, Annex E recommends using the inverse of the chromatic adaptation matrix for each profile (found in the chromatic adaptation tag) to “back out” the chromatic adaptation applied to each device's color data and then apply a consistent chromatic adaptation method to the color data for each device. However, the approach remains ambiguous and retains a number of shortcomings. In particular, the current ICC specification recommendations imply that the inverse chromatic adaptation matrix from each profile is used to derive the device white point, which may differ from the actual device white point used by that profile. Additionally, the current ICC specification does not provide any guidance on what chromatic adaptation method should be employed other than recommending use of the Bradford transform. However, it may be desirable to adopt the chromatic adaptation method employed by one of the profiles within the workflow. The ICC specification does not provide any guidance regarding which chromatic adaptation method should take priority.
- Accordingly, an unambiguous approach to provide consistent chromatic adaptation for ICC workflows would be desirable. Additionally, the ability to support legacy profiles (i.e. versions prior to V4), V4 profiles, and profiles from future ICC specification versions would be advantageous. Further, it would be advantageous if the approach allowed flexibility for either a user or vendor to decide whether to opt into the approach and to also retain control of the chromatic adaptation applied to an ICC workflow.
- Embodiments of the present invention relate to systems and methods for providing consistent chromatic adaptation to a workflow containing a sequence of ICC profiles. Accordingly, in one aspect, an embodiment of the present invention is directed to a method for providing consistent chromatic adaptation for an ICC workflow. The method includes identifying ICC profiles within the workflow that require chromatic adaptation. The method also includes identifying one of the ICC profiles as a control profile and determining the chromatic adaptation method that is employed by the control profile. The method then further includes converting color data associated with each ICC profile identified as requiring chromatic adaptation using the chromatic adaptation method employed by the control profile.
- In another aspect of the present invention, an embodiment is directed to a system for providing consistent chromatic adaptation for an ICC workflow. The system includes a profile identifying component, a control profile identifying component, a target determining component, and a conversion component. The profile identifying component is capable of identifying ICC profiles within the workflow that require chromatic adaptation. The control profile identifying component may identify one of the ICC profiles as a control profile. The target determining component is capable of determining a target cone matrix and target cone white points from the control profile. The conversion component is capable of converting color data for each ICC profile identified as requiring chromatic adaptation using the target cone matrix and target PCS cone white point.
- The present invention is described in detail below with reference to the attached drawing figures, wherein:
-
FIG. 1 is a block diagram of an exemplary computing environment suitable for use in implementing the present invention; -
FIG. 2 is a flow diagram showing a method for providing consistent chromatic adaptation to an ICC workflow in accordance with an embodiment of the present invention; -
FIG. 3 is a flow diagram showing a method for determining ICC profiles that require chromatic adaptation in accordance with an embodiment of the present invention; -
FIG. 4 is a flow diagram showing a method for extracting the cone matrix, ratio matrix, and cone white points for a profile in accordance with an embodiment of the present invention; -
FIG. 5 is a flow diagram showing an iterative method for determining the cone matrix, ratio matrix, and cone white points for a profile in accordance with an embodiment of the present invention; -
FIG. 6 is a flow diagram showing a method for converting color data for V4 profiles within an ICC workflow that have been identified as requiring chromatic adaptation in accordance with an embodiment of the present invention; and -
FIG. 7 is a flow diagram showing a method for converting color data for V2 profiles within an ICC workflow that have been identified as requiring chromatic adaptation in accordance with an embodiment of the present invention. - The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
- Embodiments of the present invention provide systems and methods for providing consistent chromatic adaptation to an ICC workflow containing a sequence of profiles. In accordance with an exemplary method of the present invention, profiles within the workflow that require chromatic adaptation are identified. In addition, one of the profiles is identified as a control profile. By selecting a control profile, the chromatic adaptation method in the control profile can be designated as the chromatic adaptation method to be applied to all profiles requiring chromatic adaptation to provide consistent chromatic adaptation within the workflow. The parameters needed to apply the chromatic adaptation method of the control profile to the other profiles are extracted from the control profile. In particular, these parameters include the cone matrix and cone white points, which are designated as the target cone matrix and target cone white points.
- Color data associated with each profile identified as requiring chromatic adaptation may then be converted using the parameters extracted from the control profile such that the data for each profile has been chromatically adapted to the PCS using the same chromatic adaptation method. The process includes first “backing out” the chromatic adaptation applied to the color data associated with each profile and then applying the chromatic adaptation method of the control profile. Because the color data associated with each V4 profile has been chromatically adapted to the PCS using the chromatic adaptation method contained in each V4 profile, the color data for each V4 profile is first converted to the device source color space from the PCS by applying the inverse chromatic adaptation matrix from each V4 profile's chad tag. For V2 profiles, which do not have a chad tag, the Bradford matrix is assumed to be the chromatic adaptation method that was applied and is used to convert the data associated with each V2 profile from the PCS to the device source color space. A new chromatic adaptation matrix is then computed for each profile using the target cone matrix, the target PCS cone white point, and the device source cone white point associated with each profile. The new chromatic adaptation matrix computed for each profile is then applied to the color data associated with that profile to convert back to the PCS. By converting the color data for each profile in this way, the color data for all profiles requiring chromatic adaptation has been chromatically adapted to the PCS using a homogeneous chromatic adaptation method.
- Having briefly described an overview of the present invention, an exemplary operating environment for the present invention is described below.
- Referring to the drawings in general and initially to
FIG. 1 in particular, wherein like reference numerals identify like components in the various figures, an exemplary operating environment for implementing the present invention is shown and designated generally as computingsystem environment 100. Thecomputing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should thecomputing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in theexemplary operating environment 100. - The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
- With reference to
FIG. 1 , an exemplary system for implementing the present invention includes a general purpose computing device in the form of acomputer 110. Components ofcomputer 110 may include, but are not limited to, aprocessing unit 120, asystem memory 130, and asystem bus 121 that couples various system components including the system memory to theprocessing unit 120. Thesystem bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. -
Computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed bycomputer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed bycomputer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media. - The
system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements withincomputer 110, such as during start-up, is typically stored inROM 131.RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processingunit 120. By way of example, and not limitation,FIG. 1 illustratesoperating system 134, application programs 135,other program modules 136, andprogram data 137. - The
computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates ahard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, amagnetic disk drive 151 that reads from or writes to a removable, nonvolatilemagnetic disk 152, and anoptical disk drive 155 that reads from or writes to a removable, nonvolatileoptical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks (DVDs), digital video tape, solid state RAM, solid state ROM, and the like. Thehard disk drive 141 is typically connected to thesystem bus 121 through a non-removable memory interface such asinterface 140, andmagnetic disk drive 151 andoptical disk drive 155 are typically connected to thesystem bus 121 by a removable memory interface, such asinterface 150. - The drives and their associated computer storage media discussed above and illustrated in
FIG. 1 , provide storage of computer-readable instructions, data structures, program modules and other data for thecomputer 110. InFIG. 1 , for example,hard disk drive 141 is illustrated as storingoperating system 144,application programs 145,other program modules 146, andprogram data 147. Note that these components can either be the same as or different fromoperating system 134, application programs 135,other program modules 136, andprogram data 137.Operating system 144,application programs 145,other programs 146 andprogram data 147 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into thecomputer 110 through input devices such as akeyboard 162 andpointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit 120 through auser input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). Amonitor 191 or other type of display device is also connected to thesystem bus 121 via an interface, such as avideo interface 190. In addition to themonitor 191, computers may also include other peripheral output devices such asspeakers 197 andprinter 196, which may be connected through an outputperipheral interface 195. - The
computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as aremote computer 180. Theremote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer 110, although only amemory storage device 181 has been illustrated inFIG. 1 . The logical connections depicted inFIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. - When used in a LAN networking environment, the
computer 110 is connected to theLAN 171 through a network interface oradapter 170. When used in a WAN networking environment, thecomputer 110 typically includes amodem 172 or other means for establishing communications over theWAN 173, such as the Internet. Themodem 172, which may be internal or external, may be connected to thesystem bus 121 via thenetwork interface 170, or other appropriate mechanism. In a networked environment, program modules depicted relative to thecomputer 110, or portions thereof, may be stored in a remote memory storage device. By way of example, and not limitation,FIG. 1 illustrates remote application programs 185 as residing onmemory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. - Although many other internal components of the
computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known. Accordingly, additional details concerning the internal construction of thecomputer 110 need not be disclosed in connection with the present invention. - When the
computer 110 is turned on or reset, theBIOS 133, which is stored in theROM 131, instructs theprocessing unit 120 to load the operating system, or necessary portion thereof, from thehard disk drive 141 into theRAM 132. Once the copied portion of the operating system, designated asoperating system 144, is loaded inRAM 132, theprocessing unit 120 executes the operating system code and causes the visual elements associated with the user interface of theoperating system 134 to be displayed on themonitor 191. Typically, when anapplication program 145 is opened by a user, the program code and relevant data are read from thehard disk drive 141 and the necessary portions are copied intoRAM 132, the copied portion represented herein by reference numeral 135. - As previously mentioned, embodiments of the present invention relate to systems and methods for providing consistent chromatic adaptation to an ICC workflow comprising a sequence of profiles that use inconsistent chromatic adaptation techniques.
- Turning to
FIG. 2 , a flow diagram is illustrated which shows amethod 200 for providing consistent chromatic adaptation for a workflow of ICC profiles in accordance with an embodiment of the present invention. Initially, given a workflow that contains a sequence of ICC profiles, the profiles that require chromatic adaptation using the present invention are identified, as shown atblock 202. Generally, profiles that require chromatic adaptation are ones in which some chromatic adaptation method is contained within the profile. A profile may designated as requiring chromatic adaptation using the present invention if it has a viewing condition tag in which the normalized device source illuminant (i.e. the device source white point) is different from the PCS white point in the profile header. In addition, a profile having a chad tag may also be designated as requiring chromatic adaptation. - A
method 300 for determining which profiles within a workflow require chromatic adaptation in accordance with an embodiment of the present invention is shown inFIG. 3 . A profile within the sequence is obtained initially, as shown atblock 302. Whether the current profile contains a chad tag is determined atblock 304. If the current profile has a chad tag, the profile will be designated as requiring chromatic adaptation. The profile is flagged for chromatic adaptation atblock 310. After flagging the current profile for chromatic adaptation, whether the profile is the last profile is determined atblock 312. The next profile is obtained if the current profile is not the last profile. - Alternatively, if the current profile does not have a chad tag, whether the profile contains a viewing condition tag is determined at
block 306. If the current profile does not have a viewing conditions tag, the profile will not require chromatic adaptation. The next profile will then be obtained if the current profile is not the last profile as determined atblock 312. If the current profile does contain a viewing conditions tag atblock 306, whether the device source illuminant in the viewing conditions tag is different from the PCS white point in the profile header is determined atblock 308. Because the device source illuminant in the viewing conditions tag is contained in absolute XYZ values while the PCS white point is contained in relative XYZ values, the device source illuminant must be normalized before comparison. If the normalized device source illuminant is the same as the PCS white point, no chromatic adaptation is necessary and the next profile is obtained if the current profile is not the last profile in the sequence. However, if the normalized device source illuminant differs from the PCS white point, the profile requires chromatic adaptation. The profile is then flagged for chromatic adaptation atblock 310. After flagging the current profile for chromatic adaptation, whether the profile is the last profile is determined atblock 312. The next profile is obtained if the current profile is not the last profile. Otherwise, all profiles in the sequence have been examined to identify the profiles that require chromatic adaptation and the process ends atblock 314. - Referring again to
FIG. 2 , after determining and flagging the profiles that require chromatic adaptation, a control profile is identified atblock 204. The chromatic adaptation method of the control profile will be designated as the chromatic adaptation method to be applied to each of the profiles in the sequence identified inblock 204 as requiring chromatic adaptation. In doing so, the present invention provides a workflow having consistent chromatic adaptation based on the chromatic adaptation technique of the control profile. - The selection of the control profile may be performed by a number of methods within the scope of the present invention. By way of example and not limitation, in one embodiment, the last profile in the sequence that is considered suitable for constructing a chromatic adaptation matrix for each profile requiring chromatic adaptation is selected as the control profile. A profile may be considered suitable for constructing a chromatic adaptation matrix for each profile within the scope of the present invention in a number of ways. In one embodiment, a profile is considered suitable if it contains a viewing conditions tag, regardless of whether the normalized device source illuminant differs from the PCS white point in the profile header. In another embodiment, a flag in the profile header may be used to designate whether the profile should be considered suitable for constructing a chromatic adaptation matrix. A profile author then has the option to set the flag when constructing the profile to indicate the intention to use a method for chromatic adaptation in accordance with the present invention. In a further embodiment, only profiles intended for a particular color management engine may be considered suitable for constructing a chromatic adaptation matrix. Profile headers contain information indicating the preferred color management engine for processing the profile. A profile may be considered suitable then only if a particular color management engine is indicated. In yet another embodiment, any profile containing a chad tag may be considered suitable for constructing a chromatic adaptation matrix.
- In some embodiments of the present invention, profiles that employ the same chromatic adaptation method as the control profile may be determined. These profiles will not require chromatic adaptation in accordance with the present invention as these profiles already include a consistent chromatic adaptation method. For example, after determining the control profile, profiles previously flagged for chromatic adaptation may be compared with the control profile and those profiles having the same chromatic adaptation method may have the flag removed. In some embodiments, the control profile may be determined before profiles requiring chromatic adaptation are identified. The identification of profiles requiring chromatic adaptation may then include comparing the profiles with the control profile such that profiles having a chromatic adaptation method consistent with the control profile are not flagged.
- After identifying the control profile, the parameters required to construct a chromatic adaptation matrix for each profile are extracted from the control profile, as shown at
block 206. In particular, these parameters include a target cone matrix and target cone white points. Amethod 400 for extracting the cone matrix and cone white points from a profile in accordance with an embodiment of the present invention is shown inFIG. 4 . Because these parameters are not expressly set forth in the control profile, they must be derived from other parameters that are expressly set forth: the chromatic adaptation matrix, the PCS XYZ white point, and the device source XYZ white point (if included in the profile). Initially, the chromatic adaptation matrix is extracted from the control profile's chad tag, as shown atblock 402. The PCS XYZ white point is then extracted from the profile header atblock 404. Whether the profile has a tag from which the device source XYZ white point may be extracted is next determined atblock 406. For example, the device source XYZ white point may extracted from the viewing conditions tag, the medium tag, or the measurement tag. If such a tag is present in the profile, the device source XYZ white point is extracted from the tag, as shown atblock 408. Alternatively, if the profile does not have a tag from which the device source XYZ white point can be extracted, the device source XYZ white may be determined by applying the inverted chromatic adaptation matrix to the PCS XYZ white point atblock 410. - The chromatic adaptation matrix is comprised of two matrices: a cone matrix and a ratio matrix. However, the chad tag within a profile sets forth only the chromatic adaptation matrix and does not specify these constituent matrices. Therefore, these matrices must be determined. In addition, because the device source cone white point and the PCS cone white point are not provided in the profile, these parameters must likewise be determined. Therefore, at
block 412, the cone matrix, ratio matrix, and cone white points are determined using the previously determined chromatic adaptation matrix, PCS XYZ white point, and device source white point for the profile. - In one embodiment, sophisticated regression methods, such as Newton-Raphson or Marquardt may be employed to calculate the cone matrix, ratio matrix, and cone white points. In another embodiment, such as that shown in
FIG. 5 , the matrices and cone white points are determined by iteratively selecting a proposed cone matrix, computing a proposed chromatic adaptation matrix, and comparing the proposed chromatic adaptation matrix with the chromatic adaptation matrix in the chad tag until the matrices match. By way of example and not limitation, the process may include looping through a known set of cone matrices, such as the Bradford matrix, the “Wrong Von Kries” matrix, the CIELAB matrix, or some other known or selected matrix. In accordance with such an embodiment, an initial proposed cone matrix is selected atblock 502. Atblock 504, the PCS cone white point is computed using the PCS XYZ white point (which was previously extracted from the profile header) and the proposed cone matrix according to the following equation:
wherein ργβWPPCS represents the PCS cone white point, Mcone represents the cone matrix, and XYZWWPPCS represents the PCS XYZ white point. - Next, at
block 506, the cone white point for the device source is computed using the device source XYZ white point (which was previously extracted from the viewing conditions tag, medium tag, or the measurement tag or computed using the inverted chromatic adaptation matrix) and the proposed cone matrix according to the following equation:
wherein ργβWPsrc represents the device source cone white point, Mcone represents the cone matrix, and XYZWPsrx represents the device source XYZ white point. - After the PCS cone white point and the device source cone white point have been determined, the ratio matrix is computed at
block 508 according to the following equation:
wherein Mratio represents the ratio matrix. - Using the ratio matrix, Mratio, computed at
block 508 and the proposed cone matrix, Mcone, selected atblock 502, a proposed chromatic adaptation matrix, Madapt, is computed atblock 510 using the following equation:
M adapt =M cone −1 M ratio M come - The proposed chromatic adaptation matrix computed at
block 510 is then compared with the chromatic adaptation matrix extracted from the chad tag atblock 402, as shown atblock 512. If the proposed chromatic adaptation matrix matches the chromatic adaptation matrix from the chad tag, the proposed cone matrix is set as the target cone matrix, as shown atblock 514. In addition, the cone white points computed using that proposed cone matrix are set as the target cone white points. If the proposed chromatic adaptation matrix does not match the chromatic adaptation matrix from the chad tag atblock 512, the process of selecting a proposed cone matrix atblock 502 through comparing a computed proposed chromatic adaptation matrix with the chad tag's chromatic adaptation matrix atblock 512 is repeated until an appropriate proposed cone matrix is selected. - Once the target cone matrix and target cone white points from the control profile have been identified, the color data associated with the other profiles requiring chromatic adaptation may be converted. Referring again to
FIG. 2 , all V4 profiles that were tagged as requiring chromatic adaptation are identified atblock 208. Each profile header has a version attribute that allows V4 profiles to be identified. The color data for each of these V4 profiles is then converted atblock 210 such that the same chromatic adaptation method used for the control profile is applied to the data corresponding to these V4 profiles. -
FIG. 6 illustrates amethod 600 for converting color data for a V4 profile in accordance with an embodiment of the present invention. An initial V4 profile is obtained, as shown atblock 602. The cone matrix and cone white points are extracted for the current V4 profile atblock 604. A method such asmethod 400 described with reference toFIG. 4 may be employed to determine the cone matrix and cone white points. Because the color data for the V4 profile has been chromatically adapted to the PCS using a different chromatic adaptation method, that adaptation is undone by converting the color data from the PCS to the device source color space, as shown atblock 606. This may be accomplished by applying the inverse chromatic adaptation matrix (from the current V4 profile's chad tag) to the PCS color data. - At
block 608, a new chromatic adaptation matrix is computed using the V4 profile's device source cone white point, the target PCS cone white point, and the target cone matrix. Accordingly, the new chromatic adaptation matrix employs the chromatic adaptation method of the control profile. The current V4 profile's color data, which has already been converted from the PCS to the device source color space atblock 606, is then converted from the device source color space to the PCS using the new chromatic adaptation matrix, as shown atblock 610. Accordingly, the data for the current V4 profile is now contained in the PCS having been chromatically adapted using the same method as the control profile. Atblock 612, whether the current V4 profile is the last V4 profile identified as requiring chromatic adaptation is determined. If the current V4 profile is not the last V4 profile, the process is repeated until the color data for the last V4 profile in the workflow has been converted and the process ends atblock 614. - Turning again to
FIG. 2 , after the color data for all V4 profiles requiring chromatic adaptation has been converted, the V2 profiles that have been flagged as requiring chromatic adaptation are identified, as shown atblock 212. The V2 profiles are identified by the profile version attribute in the profile header. The data for each V2 profile identified is then converted atblock 214 such that the same chromatic adaptation method used for the control profile is applied to the color data corresponding to these V2 profiles. -
FIG. 7 illustrates amethod 700 for converting data for V2 profiles in accordance with an embodiment of the present invention. An initial V2 profile is obtained atblock 702. As shown atblock 704, the device source XYZ white point is extracted (in preference priority) from the viewing conditions tag, the medium tag, or the measurement tag. The PCS white point is extracted from the profile header atblock 706. Because V2 profiles do not contain a chad tag, the chromatic adaptation matrix used by the profile is not available. Therefore, V2 profiles are assumed to use the Bradford matrix as the cone matrix within each profile's chromatic adaptation matrix. Using the Bradford matrix, the device source cone white point is computed atblock 708. The PCS cone white point is also computed using the Bradford matrix atblock 710. The ratio matrix is computed using the computed device source cone white point and the computed PCS cone white point, as shown atblock 712. Using the ratio matrix and the Bradford matrix, a chromatic adaptation matrix is computer atblock 714. The inverse of this chromatic adaptation matrix is used to convert the PCS data for the current V2 profile to the device source color space atblock 716. Atblock 718, a new chromatic adaptation matrix is computed using the computed device source cone white point, the target cone matrix, and the target PCS cone white point. The new chromatic adaptation matrix is then applied to the device source color data to convert the data to the PCS atblock 720. Whether the current V2 profile is the last V2 profile identified as requiring chromatic adaptation is determined atblock 722, and the process is repeated until the color data for the last V2 profile is converted and the process ends atblock 724. - Referring back to
FIG. 2 , once the color data for each profile requiring chromatic adaptation has been converted such that the color data associated with all profiles have a homogeneous chromatic adaptation that is based on the chromatic adaptation contained in the control profile, a transform is created using the new profile data, as shown atblock 216. A number of methods may be employed for creating the transform within the scope of the present invention. By way of example only and not limitation, a uniformly sampled multidimensional table may be created and used with each profile to derive a resulting optimized transform. One skilled in the art will recognize the plethora of methods for deriving a transform that may be employed. - As can be understood, embodiments of the present invention provide systems and methods for providing consistent chromatic adaptation to an ICC workflow. The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
- From the foregoing, it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages which are obvious and inherent to the system and method. It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations. This is contemplated by and is within the scope of the claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/159,731 US7605823B2 (en) | 2005-06-23 | 2005-06-23 | ICC consistent chromatic adaptation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/159,731 US7605823B2 (en) | 2005-06-23 | 2005-06-23 | ICC consistent chromatic adaptation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060290954A1 true US20060290954A1 (en) | 2006-12-28 |
US7605823B2 US7605823B2 (en) | 2009-10-20 |
Family
ID=37566938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/159,731 Expired - Fee Related US7605823B2 (en) | 2005-06-23 | 2005-06-23 | ICC consistent chromatic adaptation |
Country Status (1)
Country | Link |
---|---|
US (1) | US7605823B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091116A1 (en) * | 2005-10-21 | 2007-04-26 | Innolux Display Corp. | System and method for creating an ICC profile of an LCD |
US20070165945A1 (en) * | 2006-01-13 | 2007-07-19 | Ati Technologies Inc. | Method and apparatus for white balancing digital images |
US20100053381A1 (en) * | 2008-09-01 | 2010-03-04 | Canon Kabushiki Kaisha | Image processing apparatus and method thereof |
US20100054589A1 (en) * | 2008-09-01 | 2010-03-04 | Canon Kabushiki Kaisha | Color processing apparatus and method thereof |
US9736337B2 (en) | 2011-06-30 | 2017-08-15 | Hewlett-Packard Development Company, L.P. | Color profile adjustment |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008044732A1 (en) * | 2006-10-11 | 2008-04-17 | Nikon Corporation | Image processing device, image processing method, and image processing program |
JP5195430B2 (en) * | 2006-11-22 | 2013-05-08 | 株式会社ニコン | Image processing method, image processing program, image processing apparatus, camera |
US7945094B2 (en) * | 2008-01-16 | 2011-05-17 | Eastman Kodak Company | Method for chromatic adaptation of images |
US8488195B2 (en) * | 2010-04-06 | 2013-07-16 | Artifex Software Inc. | System and method for improving color management of color spaces in electronic documents |
US9535448B2 (en) | 2011-11-16 | 2017-01-03 | Jean-Pierre Key | Chromatic mainframe |
US9055283B2 (en) * | 2013-03-15 | 2015-06-09 | Apple Inc. | Methods for display uniform gray tracking and gamma calibration |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020003903A1 (en) * | 1998-11-13 | 2002-01-10 | Engeldrum Peter G. | Method and system for fast image correction |
US6459425B1 (en) * | 1997-08-25 | 2002-10-01 | Richard A. Holub | System for automatic color calibration |
US6462748B1 (en) * | 2000-02-25 | 2002-10-08 | Microsoft Corporation | System and method for processing color objects in integrated dual color spaces |
US6504950B1 (en) * | 1998-05-27 | 2003-01-07 | Fujitsu Limited | Terminal and input/output characteristic measurement method and calculation apparatus for display device |
US6603483B1 (en) * | 1999-11-15 | 2003-08-05 | Canon Kabushiki Kaisha | Color management and proofing architecture |
US6791716B1 (en) * | 2000-02-18 | 2004-09-14 | Eastmas Kodak Company | Color image reproduction of scenes with preferential color mapping |
US20040228525A1 (en) * | 2003-05-17 | 2004-11-18 | Uwe-Jens Krabbenhoft | Method for color transformation by way of color profiles |
US20050047684A1 (en) * | 1999-11-24 | 2005-03-03 | Baum Daniel R. | Producing printing images having personalized features |
US20050134879A1 (en) * | 2003-11-27 | 2005-06-23 | Logo Beteiligungsges. Mbh | Process for the generation of a color profile for a digital camera |
US20050225784A1 (en) * | 2004-04-07 | 2005-10-13 | Jacob Steve A | Method of defining a device color profile for a color output device |
US20050248786A1 (en) * | 2004-05-06 | 2005-11-10 | Tobie C D | Method and system for correcting color rendering devices |
US20050249403A1 (en) * | 2004-05-05 | 2005-11-10 | Canon Kabushiki Kaisha | Generation of color measured data from transform-based color profiles |
US20060007455A1 (en) * | 2004-06-25 | 2006-01-12 | Global Graphics Software, Inc. | Method for increasing the efficiency of color management in job ticket workflows |
US7227666B1 (en) * | 2000-09-01 | 2007-06-05 | Adobe Systems Incorporated | Dynamic selection of rendering intent for color proofing transforms |
-
2005
- 2005-06-23 US US11/159,731 patent/US7605823B2/en not_active Expired - Fee Related
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459425B1 (en) * | 1997-08-25 | 2002-10-01 | Richard A. Holub | System for automatic color calibration |
US6504950B1 (en) * | 1998-05-27 | 2003-01-07 | Fujitsu Limited | Terminal and input/output characteristic measurement method and calculation apparatus for display device |
US20020003903A1 (en) * | 1998-11-13 | 2002-01-10 | Engeldrum Peter G. | Method and system for fast image correction |
US6603483B1 (en) * | 1999-11-15 | 2003-08-05 | Canon Kabushiki Kaisha | Color management and proofing architecture |
US20050047684A1 (en) * | 1999-11-24 | 2005-03-03 | Baum Daniel R. | Producing printing images having personalized features |
US6791716B1 (en) * | 2000-02-18 | 2004-09-14 | Eastmas Kodak Company | Color image reproduction of scenes with preferential color mapping |
US6462748B1 (en) * | 2000-02-25 | 2002-10-08 | Microsoft Corporation | System and method for processing color objects in integrated dual color spaces |
US7227666B1 (en) * | 2000-09-01 | 2007-06-05 | Adobe Systems Incorporated | Dynamic selection of rendering intent for color proofing transforms |
US20040228525A1 (en) * | 2003-05-17 | 2004-11-18 | Uwe-Jens Krabbenhoft | Method for color transformation by way of color profiles |
US20050134879A1 (en) * | 2003-11-27 | 2005-06-23 | Logo Beteiligungsges. Mbh | Process for the generation of a color profile for a digital camera |
US20050225784A1 (en) * | 2004-04-07 | 2005-10-13 | Jacob Steve A | Method of defining a device color profile for a color output device |
US20050249403A1 (en) * | 2004-05-05 | 2005-11-10 | Canon Kabushiki Kaisha | Generation of color measured data from transform-based color profiles |
US20050248786A1 (en) * | 2004-05-06 | 2005-11-10 | Tobie C D | Method and system for correcting color rendering devices |
US20060007455A1 (en) * | 2004-06-25 | 2006-01-12 | Global Graphics Software, Inc. | Method for increasing the efficiency of color management in job ticket workflows |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091116A1 (en) * | 2005-10-21 | 2007-04-26 | Innolux Display Corp. | System and method for creating an ICC profile of an LCD |
US20070165945A1 (en) * | 2006-01-13 | 2007-07-19 | Ati Technologies Inc. | Method and apparatus for white balancing digital images |
US7876970B2 (en) * | 2006-01-13 | 2011-01-25 | Qualcomm Incorporated | Method and apparatus for white balancing digital images |
US20100053381A1 (en) * | 2008-09-01 | 2010-03-04 | Canon Kabushiki Kaisha | Image processing apparatus and method thereof |
US20100054589A1 (en) * | 2008-09-01 | 2010-03-04 | Canon Kabushiki Kaisha | Color processing apparatus and method thereof |
US8164650B2 (en) * | 2008-09-01 | 2012-04-24 | Canon Kabushiki Kaisha | Image processing apparatus and method thereof |
US8290262B2 (en) | 2008-09-01 | 2012-10-16 | Canon Kabushiki Kaisha | Color processing apparatus and method thereof |
US9736337B2 (en) | 2011-06-30 | 2017-08-15 | Hewlett-Packard Development Company, L.P. | Color profile adjustment |
US10334142B2 (en) | 2011-06-30 | 2019-06-25 | Hewlett-Packard Development Company, L.P. | Color profile adjustment |
Also Published As
Publication number | Publication date |
---|---|
US7605823B2 (en) | 2009-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7605823B2 (en) | ICC consistent chromatic adaptation | |
US7761790B2 (en) | System and method for creating XML files from an edited document | |
US7664783B2 (en) | File management program, data structure, and file management device | |
US7478325B2 (en) | Methods for providing an accurate visual rendition of a text element formatted with an unavailable font | |
US6226636B1 (en) | System for retrieving images using a database | |
US20080154930A1 (en) | Variable length file header apparatus and system | |
US7408556B2 (en) | System and method for using device dependent fonts in a graphical display interface | |
EP0961481A2 (en) | Image processing apparatus and method and storage medium | |
US20060212794A1 (en) | Method and system for creating a computer-readable image file having an annotation embedded therein | |
US10204089B2 (en) | Conversion tool for XPS and openXPS documents | |
US9448971B2 (en) | Content management system that renders multiple types of data to different applications | |
US8411106B2 (en) | Converting digital values corresponding to colors of an image from a source color space to a destination color space | |
US7594169B2 (en) | Compressing, and extracting a value from, a page descriptor format file | |
US9396174B1 (en) | Inserting and using metadata within a portable document format document | |
US20040205462A1 (en) | System having a single, robust, universal workflow for the creation, printing, and binding of hardcopy books, and for the accessibility and delivery of electronic books | |
US9158493B2 (en) | Page description language package file preview | |
US7952756B1 (en) | Methods and systems for encoding over-range color values using in-range values | |
US6198543B1 (en) | Color table look-up using compressed image data | |
US7437483B1 (en) | System and method for transferring a compressed data file to a peripheral device | |
US20110307532A1 (en) | File processing apparatus, file processing method, and computer program product | |
Hodge et al. | Formats for digital preservation: A review of alternatives and issues | |
Frey | File formats for digital masters | |
Parekh | Digitization: An overview of issues | |
JP2004064464A (en) | Image processing method and device, and storage medium | |
Zedler et al. | I-Media: An integrated Media server and Media database as a basic component of a cross Media publishing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, MISSOURI Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:STOKES, MICHAEL D.;BOURGOIN, MICHAEL A.;GOLDING, LAURENCE J.;REEL/FRAME:016222/0349;SIGNING DATES FROM 20050615 TO 20050616 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20211020 |