WO2005109319A1 - Transform for destination space which includes a black channel - Google Patents

Transform for destination space which includes a black channel Download PDF

Info

Publication number
WO2005109319A1
WO2005109319A1 PCT/US2005/015972 US2005015972W WO2005109319A1 WO 2005109319 A1 WO2005109319 A1 WO 2005109319A1 US 2005015972 W US2005015972 W US 2005015972W WO 2005109319 A1 WO2005109319 A1 WO 2005109319A1
Authority
WO
WIPO (PCT)
Prior art keywords
color
value
space
black
values
Prior art date
Application number
PCT/US2005/015972
Other languages
French (fr)
Inventor
John S. Haikin
Todd D. Newman
Original Assignee
Canon Kabushiki Kaisha
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US10/841,184 external-priority patent/US7103217B2/en
Priority claimed from US11/039,492 external-priority patent/US7489815B2/en
Application filed by Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Priority to JP2007511663A priority Critical patent/JP4559471B2/en
Publication of WO2005109319A1 publication Critical patent/WO2005109319A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control

Definitions

  • the present invention relates to a color management method for the conversion of colors to color values in a device space that includes a black channel, such as CMYK.
  • color management systems utilize color transforms to convert colors from device-dependent to device-independent color spaces, and vice versa.
  • RGB red, green, and blue light
  • printers will often utilize mixtures of cyan, magenta, yellow and black inks (CMYK) to print colors.
  • CMYK cyan, magenta, yellow and black inks
  • the RGB values are converted into a device-independent color appearance space, and then the colors in the device-independent color space are converted to CMYK values. In this way, the colors can be accurately mapped and reproduced between different devices.
  • color transforms are created by measuring the output of a specific device at a plurality of known inputs.
  • a color transform for a CMYK printer can be computed by measuring color patches printed by the printer at a plurality of CMYK values. The measurements are taken by a color measuring device, such as a colorimeter or a spectrophotometer, and the measurements are in a device-independent color space, such as CIEXYZ, CIELab, CIECAM, or CIELuv. With these measurements, a color management system is able to predict what device-independent color a printer will produce at a specific value of CMYK.
  • a one-to-one unique mapping from a device-independent color appearance space to CMYK space is not mathematically possible, nor is even desirable since this under-specification provides flexibility in selecting ink values.
  • this flexibility can lead to potentially unsatisfactory conversions, since certain levels of black ink may produce visually unsatisfactory colors. For instance, neutral colors, such as grays, typically look better with higher amounts of black ink, even though mathematically accurate conversions can be found with low amounts of black ink.
  • saturated non-neutral colors appear sharper with lower amounts of black ink. As such, it may be desirable to reproduce the black ink characteristics of a source device in a CMYK device so that colors produced by the two devices appear more similar.
  • black ink it may be desirable to control the amount of black ink for other reasons. For instance, it may be desirable to always use the most amount of black ink possible, as black ink is generally the least expensive. Alternatively, it may be beneficial to use less black ink and more colored ink, as this may improve the results in a color trapping process.
  • a K value is selected based on the lightness and neutrality of a target color value, and thereafter CMY values are obtained based on the selected K value and the target value.
  • a target internal color value is received and one of a plurality of CMY lookup tables is selected based on a lightness value and neutrality of the target internal color value.
  • Each CMY lookup table maps from CMY space to internal color space for a fixed value of K, and the selected table contains the target color.
  • a CMY value is interpolated from the selected lookup table and the target internal color value.
  • the interpolated CMY value and the associated K value from the selected table is provided as the converted CMYK color value.
  • the CMY table is selected by first, determining the neutrality of the target internal color value, and then selecting the CMY lookup table associated with the largest value of K which contains the target internal color value in the case that the target internal color value is determined to be neutral, and selecting the CMY lookup table associated with the smallest value of K which contains the target internal color value in the case that the target internal color value is determined to be non- neutral:
  • the step of interpolating the CMY value is further accomplished by computing an error in the color appearance space value corresponding to the interpolated CMY value. The computed error is then compared to a predetermined error threshold.
  • the interpolated CMY value is provided, in the case that the predetermined threshold is met. In the case that the predetermined error threshold is not met, a new CMY lookup table is selected, and a new CMY value is interpolated from the newly selected lookup table and the target internal color value.
  • the interpolation may be achieved using Newton's method and Jacobians.
  • the plurality of CMY lookup tables is created by obtaining measurement data in a color appearance space format for a plurality of CMYK values for a CMYK device, and by populating a plurality of three-dimensional CMY to color appearance space lookup tables, wherein each table contains color appearance space measurement values that correspond to a specific value of K.
  • the measurement data may be obtained by measuring the output of the CMYK device with a color measuring device, or the measurement data may be obtained by converting a plurality of CMYK color samples into color appearance space values with a preexisting color transform associated with the CMYK device.
  • a color management system according to the above aspects is also provided.
  • a black weight is obtained for the color in the source device color space, and this black weight is used in calculating destination values for a destination device.
  • the black weight is calculated from the source black channel if the source device includes a black channel, and from color purity of the source device color if it does not include a black channel.
  • colors are converted from one of a plurality of source device color spaces to a destination color space that includes a black channel.
  • the conversion includes obtaining a black weight of a source pixel in the source device color space.
  • the black weight is obtained based on a black channel in the source color space if the source color space includes a black channel, and is obtained based on color purity if they source color space does not include a black channel.
  • the source pixel is transformed into a color in color appearance space, and a destination color value is calculated based on the color in color appearance space and the obtained black weight.
  • the black weight in the source color space is used more effectively, as a "hint" for the black channel in the destination space; and thus the amount of black used in the source device is more accurately reflected in the amount of black used in the destination device. Moreover, since black weight is calculated even if the source does not include a black channel, flexibility is achieved in accommodating varied source spaces.
  • the black weight is obtained from a relative purity of the source pixel in the trichromatic color space. In the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
  • the CMYK values are calculated by first selecting a K value based on the obtained black weight, and then computing the C, M, and Y values based on the selected K value and the color in color appearance space.
  • C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, the LUT used having been chosen on the basis of the selected K value.
  • a color management system for converting colors from one of a plurality of source device color spaces to a destination color space.
  • the system includes a source device module for calculating a black weight of a source pixel in the source device color space, and for transforming the source pixel into a color in color appearance space.
  • the black weight is calculated based on a black channel in the source color space if the source color space includes a black channel, and is calculated based on color purity if the source color space does not include a black channel.
  • the system includes a destination device module for calculating CMYK values from the color in color appearance space and the black weight. The black weight is passed directly from the source device module to the destination device module.
  • black weight is determined based on the degree of neutrality of the color value is the source device color space.
  • Figure 1 is a block diagram depicting the operation of a color management system according to the first aspect described herein.
  • Figure 2 is a block diagram depicting the creation of K-based lookup tables in the first aspect.
  • Figure 3 is a flowchart depicting a process for the conversion of color appearance space values to CMYK in the first aspect.
  • Figure 4 is a flowchart depicting a process for interpolating CMY values for neutral colors in the first aspect.
  • Figure 5 is a flowchart depicting a process for interpolating CMY values for non-neutral colors in the first aspect.
  • Figure 6 is a block diagram depicting a color management system that accentuates features of the second aspect described herein.
  • Figure 7 is a block diagram depicting the color management system of the second aspect.
  • Figure 8 is a block diagram depicting the creation of plural K-based CMY lookup tables in the second aspect.
  • Figure 9 is a flowchart depicting a process for the conversion of a color appearance space value to a CMYK value in the second aspect.
  • Figure 10 is a flowchart depicting a process for interpolating a CMYK value from a selected lookup table in the second aspect.
  • Figure 11 is a block diagram depicting a color management system that accentuates features of the third aspect described herein.
  • Figure 12 is a flowchart depicting a process for conversion of color values to a destination device color space according to the third aspect.
  • the first aspect provides a color management method for converting color appearance space values to CMYK values, wherein control is maintained over the K channel.
  • this aspect invention is implemented in a computing environment.
  • a representative computing system may include computing equipment, peripherals and digital devices.
  • the computing equipment includes a host processor which comprises a personal computer (hereinafter "PC"), preferably an IBM PC-compatible computer having a windowing environment such as Microsoft Windows 98, Windows 2000, Windows Me, Windows XP, or Windows NT, or other windowing systems such as LINUX.
  • the host processor may be an Apple computer or other non-windows based computers.
  • the computing equipment also includes a color monitor, including a display screen, a keyboard for entering text data and user commands, and a pointing device.
  • the pointing device preferably comprises a mouse for pointing and for manipulating objects displayed on the display screen.
  • the computing equipment also includes computer-readable memory media such as a computer fixed disk and a floppy disk drive.
  • a floppy disk drive provides a means whereby the computing equipment can access information, such as image data, computer-executable process steps, application programs, etc. stored on removable memory media.
  • information can also be retrieved through other means such as a USB storage device connected to a USB port, or through a network interface.
  • a CD-ROM drive and/or a DVD drive may be included so that the computing equipment can access information stored on removable CD-ROM and DVD media.
  • Various peripheral devices are generally used in the computing system.
  • color bubble jet printers and color laser printers which form color images on a recording medium such as paper or transparencies or the like are typically employed.
  • the printers form color images using cyan, magenta, yellow and black inks.
  • the internal architecture of the host processor of the computing equipment includes a central processing unit (CPU) which interfaces with a computer bus.
  • CPU central processing unit
  • Also interfacing with computer bus are a fixed disk, a network interface, a random access memory (RAM) for use as a main run-time transient memory, a read only memory (ROM), a floppy disk interface, a display interface for the monitor, a keyboard interface for the keyboard, a mouse interface for the pointing device, a scanner interface for the scanner, a printer interface for the printers, and a digital camera interface for the digital camera.
  • RAM random access memory
  • ROM read only memory
  • floppy disk interface a display interface for the monitor
  • keyboard interface for the keyboard
  • mouse interface for the pointing device
  • scanner interface for the scanner
  • printer interface for the printers
  • digital camera interface for the digital camera
  • the RAM interfaces with the computer bus so as to provide information stored in the RAM to the CPU during execution of software programs such as an operating system, application programs, such as a color management module, and device drivers. More specifically, the CPU first loads computer-executable process steps from the fixed disk, or another storage device, into a region of the RAM. The CPU can then execute the stored process steps from the RAM in order to execute the loaded computer-executable process steps. Data such as color images, color measurements, color transforms, or other information can be stored in the RAM, so that the data can be accessed by CPU during the execution of ⁇ computer-executable process steps need to access and/or modify the data.
  • software programs such as an operating system, application programs, such as a color management module, and device drivers. More specifically, the CPU first loads computer-executable process steps from the fixed disk, or another storage device, into a region of the RAM. The CPU can then execute the stored process steps from the RAM in order to execute the loaded computer-executable process steps. Data such as color images, color measurements, color transform
  • the fixed disk contains the operating system, and application programs, such as a color management system program.
  • the fixed disk also contains a digital camera driver, a monitor driver, a printer driver, a scanner driver, and other device drivers.
  • the fixed disk also includes image files, other files, transform-based device profiles as described further herein, and color management modules.
  • the color management method of this first aspect is preferably performed by computer-executable process steps which are stored on the fixed disk execution by the CPU, such as in one of the application programs, a printer driver, or in an operating system. In addition, it could also be performed by software or hardware contained within a printer. The process steps for converting color appearance space values to CMYK values, with control on the K channel, are described in more detail below.
  • FIG. 1 depicts a color management system in which the destination device is a CMYK device.
  • Color management module (CMM) 100 utilizes source device transform 102 to convert device-dependent color values output by source device 101 into an internal color appearance space.
  • the color appearance space can be implemented in many different formats, including CIELab, CIECAM, and CIELuv.
  • CMM 100 also typically performs color processing operations, such as gamut mapping, on the color data in the color appearance space.
  • CMM 100 uses color appearance space to CMYK transform 103 to convert color appearance space values into CMYK values that can be used by CMYK device 104.
  • This first aspect presents a method for a color appearance space to CMYK conversion that maintains control over the K (black ink) channel. Maintaining control over the K channel in this conversion is beneficial because neutral colors, such as grays, typically look better with higher amounts of black ink, and saturated non-neutral colors appear sharper with low amounts of black ink. Since the CMYK color space is overspecified, i.e. different amounts of black ink (K) can be used with varying amounts of cyan, magenta, and yellow (CMY) to produce the same color, more than one definition exists when converting from color appearance space to CMYK space. Simply put, a 4 to 3 CMYK to color appearance space transform cannot be inverted to produce the reverse transform.
  • CMYK color samples 201 are supplied to CMYK to color appearance space transform 202.
  • Transform 202 is the forward (i.e., CMYK to color appearance space) transform associated with the device for which the color appearance space to CMYK conversion is desired. In effect, running CMYK color samples through transform 202 creates 'psuedo color measurements' for the associated CMYK device.
  • each entry in one of LUTs 203 maps a color defined by its CMY color components to a color in color appearance space.
  • each LUT 203 also stores the smallest and largest lightness value of the color appearance space values contained therein. For instance, for a CIECAM (Jab) color appearance space, the smallest and largest J value is stored. For a CIELab color appearance space, the smallest and largest L values would be stored.
  • LUTs 203 can be stored on a fixed disk for future use. Alternatively, LUTs 203 can be recreated each time they are needed in order to conserve disk space. Of course, there are many acceptable ways of arranging and accessing LUTs 203 in a storage medium.
  • CMY to color appearance space LUTs 203 can be inverted to generate the desired conversion.
  • Figure 3 shows a flowchart depicting this process. Initially, in step S301 a target color appearance space value (target color value) is obtained.
  • This target color value represents a color appearance space value that is to be converted to CMYK. For instance, the target color value could represent one pixel of an image file.
  • step S302 the neutrality and lightness of the target color value are determined.
  • the neutrality of the target color value is defined with reference to a predetermined distance from the neutral axis.
  • a neutral color can be defined as a color value where the absolute value of both the a and b channels is less than some predetermined amount.
  • a neutral color is defined as any internal color value for which
  • step S303 it is decided if the target color value is neutral or not. If the target color value is neutral, the one of the 51 LUTs with the highest K value that may contain the target color is selected in step S305. Likewise, in step S303, if the target color value is non-neutral, the one of the 51 LUTs with the lowest K value that may contain the target color is selected in step S304. In steps S304 and S305, the target color value can be determined to possibly be contained in the LUT if the lightness of the target color value falls within the lightness range stored with the LUT.
  • CMY value is interpolated from the selected table, based on the target color value, in steps S306 and S307 respectively.
  • the interpolation process will be discussed in more detail below.
  • Figure 4 depicts the process by which step S306 interpolates a CMY value from the selected table, based on a neutral target color value.
  • the interpolation process used is Newton's method.
  • an initial guess for CMY is made in step S401.
  • the initial guess for CMY is (0.3, 0.3, 0.3) where C, M, and Y range from 0.0 to 1.0. This corresponds to CMY percentages of 30% for each channel.
  • step S402 the CMY guess (gC, gM,gY) is applied to the selected LUT and a color appearance space value is obtained.
  • the LUT would be a CMY to Lab LUT.
  • the CMY guess will return a Lab guess value (gL, ga, gb).
  • the obtained Lab guess value is then compared to the target color value (tL, ta, tb).
  • the error is calculated and stored. The error is defined as the Euclidean distance between the Lab guess and the target color value
  • step S404 the calculated error is compared to a predetermined error threshold, which in this example is set at 0.001. If the calculated error is less than the predetermined error threshold, the interpolation is considered to be accurate, and step S404 proceeds to step S409. It should be noted that, for this calculation, it is sufficient to use the square of the error and the square of the threshold. This eliminates the need to compute a square root, thereby improving speed without sacrificing accuracy.
  • step S409 the current guess for CMY is supplied to step S308 in Figure 3, as the interpolated CMY value.
  • step S404 proceeds to step S405.
  • step S405 it is determined if ten guesses have already been made. Note that 10 guesses is a preferred number for the iteration. Larger or smaller values can be used, provided that convergence is achieved. If ten guess have not yet been made, step S405 proceeds to steps S406 and S407. In these steps, the Jacobian (j), or three-dimensional derivative, of the LUT is calculated at the point of the current CMY guess. The calculated Jacobian and error are then used to calculate a new guess.
  • the new guess for CMY is then computed by adding x to the previous guess. The process then returns to step S402, and the new guess for CMY is applied to the LUT.
  • step S405 proceeds to step S408.
  • step S409 This process continues until the error threshold is met and the interpolated CMY value is provided in step S409. It is possible that all possible LUTs will be tried and that the error threshold will not be met. If this is the case, the CMY guess that returned the smallest error, along with the K associated with the table, is used as the interpolated value.
  • step S308 the interpolated CMY value, together with the associated K from the table from which the CMY value was interpolated, are provided as the converted CMYK value in step S308. The entire process is repeated for each target color value that is to be converted to CMYK.
  • the process of converting color appearance space values to CMYK values with control on the K channel that is described above can be used in a color management system.
  • the process described above could be used in place of transform 103 shown in Figure 1.
  • this first aspect can be used to convert color appearance space values to CMYK values as process steps in a printer driver, or in the printer itself.
  • This second aspect provides a color management system for converting color values from a source device color space to a destination device color space that includes a black (K) channel using black weight information of the source device color value.
  • the color management system of this second aspect is implemented in a computing environment, such as in a color management module (CMM) contained in a device driver or computer operating system.
  • the color management system is typically arranged as executable code stored and a computer-readable memory medium.
  • a CMM utilizes this code to perform color conversion from a source device color space to destination device color space for rendering to a destination device, such as a CMYK printer.
  • This second aspect concerns the conversion of colors from a source device color space to destination device color space that includes a K channel. It concerns in particular a conversion in which black weight information of the source device is used to select the amount of black used in the destination device. Black weight is calculated for both source devices including a K channel and source devices not including a K channel. By obtaining the black weight of a pixel in the source device color space and utilizing this black weight in the calculation of the destination color value, this second aspect effectively uses the black weight in the source color space as a "hint" for the black channel in the destination space, and thus is able to more accurately reflect the amount of black used in the source device in the destination device. Moreover, since black weight is calculated even if the source does not include a black channel, flexibility is achieved in accommodating varied source spaces.
  • FIG. 6 depicts a color management system that is a useful comparison for accentuating features of this second aspect.
  • CMM 600 utilizes source device transform 602 to convert device-dependent color values output by source device 601 into an internal color appearance space.
  • the color appearance space can be implemented in many different formats, including CIELab, CIECAM, and CIELuv.
  • CMM 600 also typically performs color processing operations, such as gamut mapping, on the color data in the color appearance space.
  • gamut-mapping module 603 maps the color appearance space data onto the gamut of destination device 605. This gamut- mapped color appearance space data is then transformed into the destination device color space using destination device transform 604.
  • Figure 7 depicts the color management system of this second aspect.
  • Source device module 701 converts a color pixel from the source device color space into a color in color appearance space, and this color appearance space data is then mapped to the gamut of the destination device by gamut mapping module 702.
  • Source device module 701 also computes black weight information for each pixel in the source device color space. Black weight can be understood (with some loss of technical accuracy) as the lightness of a color pixel in the black plane.
  • source device module 701 determines black weight from the amount of black colorant used in the source image and by the physical characteristics of the source device and medium. More specifically, source device module 701 converts the K value of a source pixel into a device-independent lightness value using the source device's color transform.
  • the black weight of a source pixel from a source color space that includes a K channel is essentially the lightness of the source K channel in color appearance space.
  • source device module 701 determines black weight from the color purity of a pixel in the source device color space.
  • Color purity of a device colorant space is the distance of the pixel from the device neutral axis.
  • color purity (CP) may be calculated using the following equation:
  • source device module 701 would compute the black weight of a pixel with RGB values of (0.80, 0.10, 0.20) as 0.125.
  • source device module 701 computes the black weight of the source pixel
  • the black weight information is passed directly to destination device module 703 "out-of-band". That is, the black weight information skips intermediate modules and/or objects, such as gamut mapping module 702, and is obtained by destination device module 703 directly from source device module 701.
  • One method for providing the black weight information from the source device module 701 to the destination device module 703 directly is to make use of the Component Object Model (COM) system in MICROSOFT ® WINDOWS ® .
  • COM Component Object Model
  • the destination device module uses COM, performs a "Querylnterface" call on the source device module to obtain a pointer to an interface to provide the black weight information.
  • the destination device module calls a "GetBlackWeightlnformation" method in the interface to get the computed black weight data. It is recommended that the black weight information be represented as an array of floating point numbers, one per picture element or color in the color data being processed.
  • the floating point numbers should range between 0.0 and 1.0, 1.0 representing complete black and 0.0 representing no black.
  • destination device module 703 selects a K value for each pixel in the destination device color space based on the black weight information. For example, the destination device module may use the destination device transform to convert the black weight value to a destination color space K value. Then, the destination device module computes the remaining channels for the destination color space (such as CMY for a CMYK space) based on the selected K value and the gamut-mapped color appearance space data. It should be noted that if the destination device module queries for black information and none is received, or if the "Querylnterface" call does not result in an interface for black weight information, conversion to the destination color space proceeds in the conventional manner. In this way, the destination device module of this second aspect remains compatible with source device modules that do not compute black weight information, or do not provide a suitable COM interface.
  • the destination device module if the destination device module is not able to obtain black information, such as after an unsuccessful query or if the "Querylnterface" call does not result in an interface for black weight information, conversion to the destination color space may proceed in accordance with the above-described first aspect.
  • the destination device module if the destination device module is not able to obtain black weight information from the source device module, then the destination device module computes the target CMYK olor in destination device space in accordance with steps S302 through step S308 shown in Figure 3, based on neutrality of the color value in color appearance space.
  • the first step in converting the gamut-mapped color appearance space data to CMYK values is the creation of a plurality of three-dimensional (3-D) CMY to color appearance space lookup tables (LUT). Each 3-D LUT is keyed to a constant value of K.
  • Figure 8 depicts one method of creating the LUTs.
  • CMYK color samples 801 are supplied to CMYK to color appearance space transform 802.
  • Transform 802 is the forward transform (i.e., CMYK to color appearance space) associated with the device for which the color appearance space to CMYK conversion is desired. In effect, running CMYK color samples through transform 802 creates "pseudo color measurements" for the associated CMYK device.
  • each entry in the LUTs maps a color defined by its CMY color components to a color in color appearance space.
  • each LUT also stores the smallest and largest lightness value of the color appearance space values contained therein. For instance, for a CIECAM (Jab) color appearance space, the smallest and largest J value is stored. For a CIELab color appearance space, the smallest and largest L values would be stored.
  • the LUTs can be stored on a fixed disk for future use. Also, the LUTs can be recreated each time they are needed in order to conserve disk space. Of course, there are many acceptable ways of arranging and accessing the LUTs in a storage medium.
  • FIG. 9 shows a flowchart depicting this process.
  • the flow sequence shown in Figure 9 is stored as executable code on a computer-readable memory medium, which is executed by a processor to effect the sequence shown in the figure. Briefly, these steps effect a conversion by first receiving black weight information. Next, one of the plurality of CMY lookup tables is selected based on the black weight information. Finally, a CMYK value is provided based on interpolation from the selected lookup table.
  • black weight information is obtained from the source device module.
  • a K value is computed based on the black weight information and one of the plural LUTs associated with the computed K value is selected.
  • the black weight information represents the percentage of K desired in the destination device.
  • the black weight information is multiplied by 255 (which is the maximum value of the range of K) and the LUT whose K value is closest to the product is selected.
  • CMY value is interpolated from the selected LUT.
  • Figure 10 depicts this process in more detail.
  • an initial guess for CMY is made.
  • the initial guess for CMY may be (0.3, 0.3, 0.3) where C, M, and Y range from 0.0 to 1.0, and in which this guess is used for all pixels regardless of value. This corresponds to CMY percentages of 30% for each channel.
  • the CMY guess (gC, gM,gY) is applied to the selected LUT to obtain the corresponding color appearance space value.
  • the LUT would be a CMY to Lab LUT.
  • the color appearance space is in a Jab format
  • the LUT would be a CMY to Jab LUT.
  • the CMY guess will correspond to a Lab guess value (gL, ga, gb) in the selected LUT.
  • the obtained Lab guess value is then compared to the target color value ( L, ta, tb) in SI 003, and the error is calculated and stored.
  • the error is defined as the Euclidean distance between the Lab guess value and the target color value
  • SI 004 the calculated error is compared to a predetermined error threshold, which in this example is equal to 0.001. If the calculated error is less than the predetermined error threshold, the interpolation is considered to be accurate and the process proceeds to SI 009. Note that the square of the error and the square of the threshold may be used for this calculation. This eliminates the need to compute a square root, thereby improving speed without sacrificing accuracy.
  • SI 009 the current guess for CMY is supplied to S904 in Figure 9, as the interpolated CMY value.
  • SI 004 it is determined if ten iterations have already been made. Note that ten iterations is a preferred number for the iterations. Larger or smaller values can be used, provided that reasonable convergence is achieved. If ten iterations have not yet been made, the process proceeds to SI 006.
  • SI 006 the Jacobian (j), or three-dimensional derivative, of the LUT is calculated at the point of the current iteration of CMY value.
  • SI 007 the calculated Jacobian and error are used to calculate a new iteration for CMY value.
  • the new CMY value for this iteration is computed by adding x to the previous iteration.
  • the process then returns to SI 002, and the new CMY value is applied to the currently selected LUT.
  • the interpolated CMY value can calculated in other ways as well. For example, a range of CMY values may be interpolated from LUTs with K values near the K value of the selected LUT in S903. This range of interpolated CMY values, including the CMY value interpolated from the selected LUT in S903, may be averaged to produce a final interpolated CMY value.
  • the destination device module converts color values in color appearance space to color values in destination CMYK space based in part on black weight information supplied from the source device module if black weight information is available, and if black weight information is not available from the source device module, based on neutrality of the color value in color appearance space as described in the first aspect.
  • black weight interface which provides black weight information to the destination device module regardless of whether it is available from the source device module. If the source device module provides black weight information, then the black weight interface provides it to the destination device module which thereupon converts a color value from color appearance space to the destination device space.
  • the black weight interface calculates a best estimate of black weight based on neutrality of the color value in color appearance space. Neutrality may be based on lightness and colorfulness of the color value in color appearance space.
  • the calculated black weight information is provided to the destination device module, which utilizes the black weight information in the same way as if it had been provided from the source device module in its conversion of the color value from color appearance space to destination device space.
  • a color management system is illustrated in Figure 11. As shown there, a color value in source device color space is transformed by transform module 1102 into a color appearance color space and thereafter gamut mapped by gamut mapping module 1103. The gamut mapped color appearance space data is transformed by destination device transform module 1104 so as to obtain a color value in destination device color space.
  • the destination device transform module 1104 relies on black weight information provided by black weight interface 1104a, which obtains the black weight information from source device transform module 1102, if it is available from source device module 1102, or which calculates black weight information if it is not available from source device module 1102 based on lightness and colorfulness of the color value in color appearance space.
  • each of the modules might be provided in an object-oriented framework or a plug-in framework.
  • Each such module is expected to provide a minimal functionality, but extended functionality might or might not be provided.
  • source device transform module 1102 is expected to provide minimal functionality of converting color values from source device color space into color appearance space.
  • source device transform module 1102 might not provide for calculation of black weight information and might not provide for provision of such information to destination device transform module 1104.
  • gamut mapping module 1103 is expected to provide minimal functionality of gamut mapping, but in an objected-oriented or plug- in architecture, the precise nature and implementation of such minimal functionality is transparent to other objects in the system.
  • destination device transform module 1104 depends on black weight interface 1104a to provide black weight information; black weight interface 1104a, in turn, obtains black weight information from source device transform module 1102, if it is available, whereas it calculates a best estimate of a likely black weight value if it is not.
  • destination device transform module 1104 transforms color values through use of a plurality of three dimensional lookup tables (3-D LUTs) that map CMY values in destination device color space to color appearance space. Each 3-D LUT is keyed to a constant value of K, as depicted hereinabove with respect to the first and second aspects.
  • Each 3-D LUT is a forward transform (i.e., from CMYK space for the destination device to a color appearance space); accordingly, to obtain a destination device color value in the destination device color space, given a color value in color appearance space, a selected one or ones of the 3- D LUTs must be inverted.
  • inverse interpolation according to the first and second aspects is employed.
  • black weight information is utilized.
  • black weight information is obtained from black weight interface 1104a, which either obtains it from the source device transform module 1102, or calculates a best estimate of a likely value, as mentioned above.
  • black weight information bypasses gamut mapping module 1103, thereby preserving black weight information in spite of the effects of gamut mapping.
  • FIG 12 is a flow diagram illustrating a process according to this third aspect.
  • step SI 201 a color value in source device color space is received by source device transform 1102.
  • Step SI 202 calculates black weight based on the color value in the source device color space. Although any metric can be used to obtain black weight information, it is preferred to obtain black weight information according to the functionality of source device module 701 of the second aspect described hereinabove.
  • source device transform 1102 calculates black weight differently in dependence on whether the source device color space includes a black K channel (such as CMYK color space) or whether it does not (such as RGB color space).
  • source device transform 1102 calculates black weight based on a conversion of the K value of a source pixel into a device-independent lightness value using the source device's color transform. For source color spaces that do not include a K channel, then source device transform module 1102 determines black weight from color purity of a pixel in the source device color space, with black weight being calculated in dependence on color purity. Both of these alternatives are discussed more fully above in connection with the second aspect.
  • step SI 203 the source device transform module 1102 transforms the color value from source device color space into a color appearance color space.
  • gamut mapping module 1103 gamut-maps the color value in color appearance space so as to account for differences between the gamut of the source device 1101 and the destination device 1105.
  • the particular gamut mapping algorithm utilized by gamut mapping module 1103 may be selected from any known or yet-to-be developed gamut mapping algorithm, and may also be selected based on a user's designation of rendering intent.
  • the gamut-mapped color value in color appearance space is thereafter transformed by destination device transform 1104 into a color value in destination device color space. Steps SI 205 through S1210 describe this process.
  • black weight interface 1104a determines whether black weight information is available from source device transform module 1102.
  • One preferred method for making this determination is through use of a COM query to source device transform module 1102. For example, an IQuerylnterface method is called on the source device transform module 1102 and its results inspected to determine whether source device transform module 1102 is able to provide black weight information.
  • Another method for determining whether black weight information is available is to obtain a candidate value for black weight information from the source device transform module 1102, and then to compare the candidate value against a default, but invalid, value for black weight information, such as -1. If the candidate value is equal to the invalid default value then black weight information is not available, whereas if it differs from the invalid default value, then black weight information is available.
  • step SI 206 since it was determined that black weight info ⁇ nation is available from the source device transform module 1102, black weight interface 1104a obtains black weight from the source device module 1102.
  • One method for providing the black weight information from the source device transform module 1102 is to make use of the Component Object Model (COM) system as described above in the second aspect.
  • COM is preferred, as indicated above, since it provides a simple default mechanism in the case that source device transform module 1102 is a legacy module that does not calculate black weight or otherwise is not in a position to provide black weight to the destination device transform module 1104.
  • COM Component Object Model
  • step SI 205 determines that black weight information is not available, then flow branches to step SI 207 in which black weight interface 1104a calculates a best estimate of a likely value for black weight, based on the color value provided from gamut mapping module 1103 which is currently represented in color appearance space.
  • black weight interface 1104a calculates black weight information based on neutrality of the color value in color appearance space. Neutrality may be inferred from the combined values of lightness and colorfulness of the color value.
  • black weight information For highly neutral colors (that is, color values that lack any significant colorfulness), the black weight information should closely correspond to a value of 1 regardless of the color's lightness, since such colors are most preferably rendered primarily with black colorant and not with colored colorants. Conversely, for highly colorful values, the black weight should correspond closely to a value of 0 since such colors should be rendered with nearly no black colorant but rather with primarily colored colorants. Between these two extremes, black weight interface 1104a calculates the black weight based on a combination. For example, for darker colors with some colorfulness, the black weight information is calculated to a value somewhat less than 1 but close to 1 since it is likely that such colors should be rendered primarily from black colorant with only small amounts of colored colorants.
  • black weight interface 1104a provides the black weight information to destination device transform 1104, and flow advances to step SI 208 in which the black weight information is used.
  • the destination device transform module 1104 determines a K value from the black weight.
  • the black weight which ranges from 0 to 1
  • these K values range from 0 to 255, so the black weight is simply multiplied by 255 to obtain a target K value for output on the destination device.
  • step S1209 selects one or more of the 3-D CMY LUTs for inverse interpolation. Good results have been obtained by simply selecting the single 3-D CMY LUT that has a K value closest to the target K value. More precise results can be obtained, at the expense of computational effort, by selecting the two 3-D CMY LUTs whose K values bracket the target K value.
  • step S1210 based on the selected LUT or LUTs, destination device transform module 1104 interpolates to invert the selected LUT or LUTs and thereby obtain the CMY values in destination device color coordinates. If only a single LUT was interpolated for inversion, then the K value for destination device color space is identical to the K value of the selected LUT. On the other hand, if multiple LUTs were selected, then the K value may be selected by alternate means, such as by using the target K value calculated in step S1207.
  • Step S1211 outputs the CMYK color value in destination device color space for rendering by destination device 1105.

Abstract

Three color management approaches are presented. First, CMY values are interpolated from CMYs to color appearance space (CAS) lookup tables, each table associated with a K value. One of CMY lookup tables is selected based on a lightness value and neutrality of a target color value. Next a CMY value is interpolated from the selected lookup table and the target color value so form a converted CMYK with the associated K value. Second, a black weight is obtained (S1202), and calculating destination values based on a transformed color in CAS and the black weight. If the source device color space (SDCS) does not include a black channel, the black weight is obtained from a color purity (S1207). If the SDCS includes a K channel, the black weight is obtained from the K channel (S1206). Third, black weight is obtained form the source module if it is available there, or is calculated based on neutrality and colorfulness of the color in CAS if it is not available at the source module.

Description

TRANSFORM FOR DESTINATION SPACE WHICH INCLUDES A BLACK CHANNEL
BACKGROUND
Field
[0001] The present invention relates to a color management method for the conversion of colors to color values in a device space that includes a black channel, such as CMYK.
Description Of The Related Art
[0002] Typically, color management systems utilize color transforms to convert colors from device-dependent to device-independent color spaces, and vice versa. This is beneficial because different devices display colors in different ways. For example, display devices often display colors as a mixture of red, green, and blue light (RGB), while printers will often utilize mixtures of cyan, magenta, yellow and black inks (CMYK) to print colors. It is beneficial to maintain color fidelity across these two different devices, so that an image displayed on a RGB display appears the same when it is printed on a CMYK printer. To maintain this color fidelity, the RGB values are converted into a device-independent color appearance space, and then the colors in the device-independent color space are converted to CMYK values. In this way, the colors can be accurately mapped and reproduced between different devices.
[0003] This mapping is typically achieved with color transforms. Conventionally, color transforms are created by measuring the output of a specific device at a plurality of known inputs. For example, a color transform for a CMYK printer can be computed by measuring color patches printed by the printer at a plurality of CMYK values. The measurements are taken by a color measuring device, such as a colorimeter or a spectrophotometer, and the measurements are in a device-independent color space, such as CIEXYZ, CIELab, CIECAM, or CIELuv. With these measurements, a color management system is able to predict what device-independent color a printer will produce at a specific value of CMYK.
[0004] However, color management systems ordinarily rely on a conversion in the reverse direction, from a three-dimensional device-independent color value to a four-dimensional CMYK device-dependent value, and this conversion is complicated by the additional degree of freedom provided in the black (K) channel. As with other color spaces having four or more color components, the CMYK space is under-specified from the perspective of the three dimensions of the device-independent color space. In other words, the same color in the device-independent space can theoretically be produced using different amounts of black ink (K) with varying amounts of cyan, magenta, and yellow (CMY). Therefore, a one-to-one unique mapping from a device-independent color appearance space to CMYK space is not mathematically possible, nor is even desirable since this under-specification provides flexibility in selecting ink values. However, this flexibility can lead to potentially unsatisfactory conversions, since certain levels of black ink may produce visually unsatisfactory colors. For instance, neutral colors, such as grays, typically look better with higher amounts of black ink, even though mathematically accurate conversions can be found with low amounts of black ink. On the other hand, saturated non-neutral colors appear sharper with lower amounts of black ink. As such, it may be desirable to reproduce the black ink characteristics of a source device in a CMYK device so that colors produced by the two devices appear more similar.
[0005] In addition, it may be desirable to control the amount of black ink for other reasons. For instance, it may be desirable to always use the most amount of black ink possible, as black ink is generally the least expensive. Alternatively, it may be beneficial to use less black ink and more colored ink, as this may improve the results in a color trapping process.
[0006] Attempts have been made to control the K level in conversions to CMYK device space, such as conversions from RGB device space or from another CMYK device space. However, these attempts have not satisfactorily addressed the problems associated with controlling the K level in a conversion from color appearance space to CMYK space. Other attempts have been made to treat the conversion of neutral and non-neutral color appearance space values differently, but have generally been unsatisfactory. Moreover, all such prior attempts do not adequately address the possibility that the source device space might be a device space (such as RGB) that does not include a black channel, or might be a device space (such as CMYK) that does. SUMMARY
[0007] In one aspect, a K value is selected based on the lightness and neutrality of a target color value, and thereafter CMY values are obtained based on the selected K value and the target value.
[0008] According to this aspect, a target internal color value is received and one of a plurality of CMY lookup tables is selected based on a lightness value and neutrality of the target internal color value. Each CMY lookup table maps from CMY space to internal color space for a fixed value of K, and the selected table contains the target color. Next a CMY value is interpolated from the selected lookup table and the target internal color value. Finally, the interpolated CMY value and the associated K value from the selected table is provided as the converted CMYK color value.
[0009] According to more preferred aspects, the CMY table is selected by first, determining the neutrality of the target internal color value, and then selecting the CMY lookup table associated with the largest value of K which contains the target internal color value in the case that the target internal color value is determined to be neutral, and selecting the CMY lookup table associated with the smallest value of K which contains the target internal color value in the case that the target internal color value is determined to be non- neutral:
[0010] By interpolating CMY values from one of a plurality of CMY lookup tables keyed to a specific value of K, and selecting the CMY lookup table based on the lightness and neutrality of the target internal color value, it becomes possible to control the output K value in a color appearance space-to- CMYK conversion, with greater accuracy. In this way, both neutral and non- neutral colors can be reproduced with better accuracy and higher quality. [0011] According to more preferred aspects, the step of interpolating the CMY value is further accomplished by computing an error in the color appearance space value corresponding to the interpolated CMY value. The computed error is then compared to a predetermined error threshold. The interpolated CMY value is provided, in the case that the predetermined threshold is met. In the case that the predetermined error threshold is not met, a new CMY lookup table is selected, and a new CMY value is interpolated from the newly selected lookup table and the target internal color value.
[0012] The interpolation may be achieved using Newton's method and Jacobians.
[0013] According to more preferred aspects, the plurality of CMY lookup tables is created by obtaining measurement data in a color appearance space format for a plurality of CMYK values for a CMYK device, and by populating a plurality of three-dimensional CMY to color appearance space lookup tables, wherein each table contains color appearance space measurement values that correspond to a specific value of K.
[0014] The measurement data may be obtained by measuring the output of the CMYK device with a color measuring device, or the measurement data may be obtained by converting a plurality of CMYK color samples into color appearance space values with a preexisting color transform associated with the CMYK device.
[0015] A color management system according to the above aspects is also provided. [0016] According to a second aspect, to transform a color from one of a plurality of source device color spaces to a destination color space that includes a black channel, a black weight is obtained for the color in the source device color space, and this black weight is used in calculating destination values for a destination device. For flexibility, the black weight is calculated from the source black channel if the source device includes a black channel, and from color purity of the source device color if it does not include a black channel.
[0017] Thus, according this second aspect, colors are converted from one of a plurality of source device color spaces to a destination color space that includes a black channel. The conversion includes obtaining a black weight of a source pixel in the source device color space. The black weight is obtained based on a black channel in the source color space if the source color space includes a black channel, and is obtained based on color purity if they source color space does not include a black channel. The source pixel is transformed into a color in color appearance space, and a destination color value is calculated based on the color in color appearance space and the obtained black weight.
[0018] By obtaining the black weight of a pixel in the source device color space and utilizing this black weight in the calculation of the destination color value, the black weight in the source color space is used more effectively, as a "hint" for the black channel in the destination space; and thus the amount of black used in the source device is more accurately reflected in the amount of black used in the destination device. Moreover, since black weight is calculated even if the source does not include a black channel, flexibility is achieved in accommodating varied source spaces. [0019] According to more preferred aspects, in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space. In the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
[0020] In the case that the destination device is a CMYK device, the CMYK values are calculated by first selecting a K value based on the obtained black weight, and then computing the C, M, and Y values based on the selected K value and the color in color appearance space. As an alternative, in the case that the destination device is a CMYK device, C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, the LUT used having been chosen on the basis of the selected K value.
[0021] A color management system is also provided, for converting colors from one of a plurality of source device color spaces to a destination color space. The system includes a source device module for calculating a black weight of a source pixel in the source device color space, and for transforming the source pixel into a color in color appearance space. The black weight is calculated based on a black channel in the source color space if the source color space includes a black channel, and is calculated based on color purity if the source color space does not include a black channel. In addition, the system includes a destination device module for calculating CMYK values from the color in color appearance space and the black weight. The black weight is passed directly from the source device module to the destination device module. [0022] In a third aspect, which is in other ways similar to the second aspect, black weight is determined based on the degree of neutrality of the color value is the source device color space.
[0023] This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiment thereof in connection with the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 is a block diagram depicting the operation of a color management system according to the first aspect described herein.
[0025] Figure 2 is a block diagram depicting the creation of K-based lookup tables in the first aspect.
[0026] Figure 3 is a flowchart depicting a process for the conversion of color appearance space values to CMYK in the first aspect.
[0027] Figure 4 is a flowchart depicting a process for interpolating CMY values for neutral colors in the first aspect.
[0028] Figure 5 is a flowchart depicting a process for interpolating CMY values for non-neutral colors in the first aspect.
[0029] Figure 6 is a block diagram depicting a color management system that accentuates features of the second aspect described herein. [0030] Figure 7 is a block diagram depicting the color management system of the second aspect.
[0031] Figure 8 is a block diagram depicting the creation of plural K-based CMY lookup tables in the second aspect.
[0032] Figure 9 is a flowchart depicting a process for the conversion of a color appearance space value to a CMYK value in the second aspect.
[0033] Figure 10 is a flowchart depicting a process for interpolating a CMYK value from a selected lookup table in the second aspect.
[0034] Figure 11 is a block diagram depicting a color management system that accentuates features of the third aspect described herein.
[0035] Figure 12 is a flowchart depicting a process for conversion of color values to a destination device color space according to the third aspect.
DETAILED DESCRIPTION
[A First Aspect]
[0036] The first aspect provides a color management method for converting color appearance space values to CMYK values, wherein control is maintained over the K channel. [0037] Typically, this aspect invention is implemented in a computing environment. A representative computing system may include computing equipment, peripherals and digital devices. The computing equipment includes a host processor which comprises a personal computer (hereinafter "PC"), preferably an IBM PC-compatible computer having a windowing environment such as Microsoft Windows 98, Windows 2000, Windows Me, Windows XP, or Windows NT, or other windowing systems such as LINUX. In the alternative, the host processor may be an Apple computer or other non-windows based computers. The computing equipment also includes a color monitor, including a display screen, a keyboard for entering text data and user commands, and a pointing device. The pointing device preferably comprises a mouse for pointing and for manipulating objects displayed on the display screen.
[0038] The computing equipment also includes computer-readable memory media such as a computer fixed disk and a floppy disk drive. A floppy disk drive provides a means whereby the computing equipment can access information, such as image data, computer-executable process steps, application programs, etc. stored on removable memory media. In the alternative, information can also be retrieved through other means such as a USB storage device connected to a USB port, or through a network interface. Also, a CD-ROM drive and/or a DVD drive may be included so that the computing equipment can access information stored on removable CD-ROM and DVD media.
[0039] Various peripheral devices are generally used in the computing system. For example, color bubble jet printers and color laser printers, which form color images on a recording medium such as paper or transparencies or the like are typically employed. Preferably, the printers form color images using cyan, magenta, yellow and black inks. [0040] The internal architecture of the host processor of the computing equipment includes a central processing unit (CPU) which interfaces with a computer bus. Also interfacing with computer bus are a fixed disk, a network interface, a random access memory (RAM) for use as a main run-time transient memory, a read only memory (ROM), a floppy disk interface, a display interface for the monitor, a keyboard interface for the keyboard, a mouse interface for the pointing device, a scanner interface for the scanner, a printer interface for the printers, and a digital camera interface for the digital camera.
[0041] The RAM interfaces with the computer bus so as to provide information stored in the RAM to the CPU during execution of software programs such as an operating system, application programs, such as a color management module, and device drivers. More specifically, the CPU first loads computer-executable process steps from the fixed disk, or another storage device, into a region of the RAM. The CPU can then execute the stored process steps from the RAM in order to execute the loaded computer-executable process steps. Data such as color images, color measurements, color transforms, or other information can be stored in the RAM, so that the data can be accessed by CPU during the execution of < computer-executable process steps need to access and/or modify the data.
[0042] The fixed disk contains the operating system, and application programs, such as a color management system program. The fixed disk also contains a digital camera driver, a monitor driver, a printer driver, a scanner driver, and other device drivers. The fixed disk also includes image files, other files, transform-based device profiles as described further herein, and color management modules. [0043] The color management method of this first aspect is preferably performed by computer-executable process steps which are stored on the fixed disk execution by the CPU, such as in one of the application programs, a printer driver, or in an operating system. In addition, it could also be performed by software or hardware contained within a printer. The process steps for converting color appearance space values to CMYK values, with control on the K channel, are described in more detail below.
[0044] Figure 1 depicts a color management system in which the destination device is a CMYK device. Color management module (CMM) 100 utilizes source device transform 102 to convert device-dependent color values output by source device 101 into an internal color appearance space. The color appearance space can be implemented in many different formats, including CIELab, CIECAM, and CIELuv. CMM 100 also typically performs color processing operations, such as gamut mapping, on the color data in the color appearance space. CMM 100 uses color appearance space to CMYK transform 103 to convert color appearance space values into CMYK values that can be used by CMYK device 104.
[0045] This first aspect presents a method for a color appearance space to CMYK conversion that maintains control over the K (black ink) channel. Maintaining control over the K channel in this conversion is beneficial because neutral colors, such as grays, typically look better with higher amounts of black ink, and saturated non-neutral colors appear sharper with low amounts of black ink. Since the CMYK color space is overspecified, i.e. different amounts of black ink (K) can be used with varying amounts of cyan, magenta, and yellow (CMY) to produce the same color, more than one definition exists when converting from color appearance space to CMYK space. Simply put, a 4 to 3 CMYK to color appearance space transform cannot be inverted to produce the reverse transform. [0046] As such, in a first step a plurality of lookup tables (LUTs) are created, each mapping CMY to color appearance space. Each table is a 3D LUT keyed to a constant value of K. Figure 2 depicts one method by which these tables can be created. CMYK color samples 201 are supplied to CMYK to color appearance space transform 202. Transform 202 is the forward (i.e., CMYK to color appearance space) transform associated with the device for which the color appearance space to CMYK conversion is desired. In effect, running CMYK color samples through transform 202 creates 'psuedo color measurements' for the associated CMYK device.
[0047] These measurements are then put into the LUT 203 corresponding to the K value of the sample. With the K value constant, each entry in one of LUTs 203 maps a color defined by its CMY color components to a color in color appearance space. In this first aspect, 51 LUTs are created, where the K value of the LUTs range in decimal values of K=0 to K=255 in steps of 5. More or fewer tables could be used, depending on the desired degree of control over the K channel. Along with the associated K value, each LUT 203 also stores the smallest and largest lightness value of the color appearance space values contained therein. For instance, for a CIECAM (Jab) color appearance space, the smallest and largest J value is stored. For a CIELab color appearance space, the smallest and largest L values would be stored.
[0048] The method for creating the 51 CMY to color appearance space LUTs depicted by Figure 2 may be unnecessary if actual color measurements for the desired CMYK device are available. Such measurements could simply be grouped into different LUTs based on K value. Again, the smallest and largest lightness value contained in each LUT would also be stored. [0049] Once created, LUTs 203 can be stored on a fixed disk for future use. Alternatively, LUTs 203 can be recreated each time they are needed in order to conserve disk space. Of course, there are many acceptable ways of arranging and accessing LUTs 203 in a storage medium.
[0050] The CMY to color appearance space LUTs 203 can be inverted to generate the desired conversion. Figure 3 shows a flowchart depicting this process. Initially, in step S301 a target color appearance space value (target color value) is obtained. This target color value represents a color appearance space value that is to be converted to CMYK. For instance, the target color value could represent one pixel of an image file.
[0051] Next, in step S302, the neutrality and lightness of the target color value are determined. For Jab, Lab, and Luv color appearance spaces, the lightness is simply the J or L value. The neutrality of the target color value is defined with reference to a predetermined distance from the neutral axis. For instance, in a Jab color appearance space, J is the neutral axis where a=b=0. A neutral color can be defined as a color value where the absolute value of both the a and b channels is less than some predetermined amount. As one preferred technique, a neutral color is defined as any internal color value for which |a| < 3 and |b| < 3, where the a and b channels range from -100 to 100. If the absolute value of either the a or b channel is greater than three, the color is determined to be non-neutral.
[0052] In step S303, it is decided if the target color value is neutral or not. If the target color value is neutral, the one of the 51 LUTs with the highest K value that may contain the target color is selected in step S305. Likewise, in step S303, if the target color value is non-neutral, the one of the 51 LUTs with the lowest K value that may contain the target color is selected in step S304. In steps S304 and S305, the target color value can be determined to possibly be contained in the LUT if the lightness of the target color value falls within the lightness range stored with the LUT.
[0053] Next, whether the target color value is neutral or non-neutral, a CMY value is interpolated from the selected table, based on the target color value, in steps S306 and S307 respectively. The interpolation process will be discussed in more detail below.
[0054] Figure 4 depicts the process by which step S306 interpolates a CMY value from the selected table, based on a neutral target color value. The interpolation process used is Newton's method. First, an initial guess for CMY is made in step S401. Preferably, the initial guess for CMY is (0.3, 0.3, 0.3) where C, M, and Y range from 0.0 to 1.0. This corresponds to CMY percentages of 30% for each channel.
[0055] In step S402, the CMY guess (gC, gM,gY) is applied to the selected LUT and a color appearance space value is obtained. In the case that the color appearance space, and therefore the target color value, is in a Lab format, the LUT would be a CMY to Lab LUT. Similarly, if the color appearance space is in a Jab format, the LUT would be a CMY to Jab LUT. For a Lab color appearance space, the CMY guess will return a Lab guess value (gL, ga, gb). The obtained Lab guess value is then compared to the target color value (tL, ta, tb). In step S403, the error is calculated and stored. The error is defined as the Euclidean distance between the Lab guess and the target color value
[0056] In step S404, the calculated error is compared to a predetermined error threshold, which in this example is set at 0.001. If the calculated error is less than the predetermined error threshold, the interpolation is considered to be accurate, and step S404 proceeds to step S409. It should be noted that, for this calculation, it is sufficient to use the square of the error and the square of the threshold. This eliminates the need to compute a square root, thereby improving speed without sacrificing accuracy. In step S409, the current guess for CMY is supplied to step S308 in Figure 3, as the interpolated CMY value.
[0057] If the calculated error is more than the predetermined error threshold, step S404 proceeds to step S405. In step S405, it is determined if ten guesses have already been made. Note that 10 guesses is a preferred number for the iteration. Larger or smaller values can be used, provided that convergence is achieved. If ten guess have not yet been made, step S405 proceeds to steps S406 and S407. In these steps, the Jacobian (j), or three-dimensional derivative, of the LUT is calculated at the point of the current CMY guess. The calculated Jacobian and error are then used to calculate a new guess.
[0058] The new guess is calculated by first computing a Newtonian step delta (d) according to the following equation: (d) = (tL - gL, ta - ga, tb - gb)
A Newtonian step is then calculated by solving the following equation for x, where j is the calculated Jacobian. j - x = (d)
The new guess for CMY is then computed by adding x to the previous guess. The process then returns to step S402, and the new guess for CMY is applied to the LUT.
[0059] If, on the other hand, ten guesses (i.e. iterations) have already been made without meeting the predetermined error threshold, step S405 proceeds to step S408. At this point it is determined that, even though the target color value could have possibly been contained in the selected LUT, a CMY value could not be found that maps to the target color value with the desired accuracy. As such, step S408 selects the LUT with the next lowest K value, as compared to the previously selected LUT. For instance, if in step S305 the K=225 LUT was selected, step S408 would now select the K=220 LUT. The process then returns to step S401 in order to perform an interpolation on the newly selected LUT.
[0060] This process continues until the error threshold is met and the interpolated CMY value is provided in step S409. It is possible that all possible LUTs will be tried and that the error threshold will not be met. If this is the case, the CMY guess that returned the smallest error, along with the K associated with the table, is used as the interpolated value.
[0061] Figure 5 depicts the process for interpolating CMY values for non- neutral colors in step S307. This process is the same as that depicted in Figure 4, except that in step S508, the LUT with the next highest K value is selected, as compared to the previously selected LUT. For instance, if in step S304 K=15 LUT was selected, step S508 would now select the K=20 LUT.
[0062] Finally, returning to Figure 3, the interpolated CMY value, together with the associated K from the table from which the CMY value was interpolated, are provided as the converted CMYK value in step S308. The entire process is repeated for each target color value that is to be converted to CMYK.
[0063] The process of converting color appearance space values to CMYK values with control on the K channel that is described above can be used in a color management system. For instance, the process described above could be used in place of transform 103 shown in Figure 1. In addition, this first aspect can be used to convert color appearance space values to CMYK values as process steps in a printer driver, or in the printer itself.
[A Second Aspect]
[0064] This second aspect provides a color management system for converting color values from a source device color space to a destination device color space that includes a black (K) channel using black weight information of the source device color value.
[0065] The color management system of this second aspect is implemented in a computing environment, such as in a color management module (CMM) contained in a device driver or computer operating system. The color management system is typically arranged as executable code stored and a computer-readable memory medium. A CMM utilizes this code to perform color conversion from a source device color space to destination device color space for rendering to a destination device, such as a CMYK printer.
[0066] This second aspect concerns the conversion of colors from a source device color space to destination device color space that includes a K channel. It concerns in particular a conversion in which black weight information of the source device is used to select the amount of black used in the destination device. Black weight is calculated for both source devices including a K channel and source devices not including a K channel. By obtaining the black weight of a pixel in the source device color space and utilizing this black weight in the calculation of the destination color value, this second aspect effectively uses the black weight in the source color space as a "hint" for the black channel in the destination space, and thus is able to more accurately reflect the amount of black used in the source device in the destination device. Moreover, since black weight is calculated even if the source does not include a black channel, flexibility is achieved in accommodating varied source spaces.
[0067] Figure 6 depicts a color management system that is a useful comparison for accentuating features of this second aspect. CMM 600 utilizes source device transform 602 to convert device-dependent color values output by source device 601 into an internal color appearance space. The color appearance space can be implemented in many different formats, including CIELab, CIECAM, and CIELuv. , CMM 600 also typically performs color processing operations, such as gamut mapping, on the color data in the color appearance space. For example, gamut-mapping module 603 maps the color appearance space data onto the gamut of destination device 605. This gamut- mapped color appearance space data is then transformed into the destination device color space using destination device transform 604.
[0068] Figure 7 depicts the color management system of this second aspect. Source device module 701 converts a color pixel from the source device color space into a color in color appearance space, and this color appearance space data is then mapped to the gamut of the destination device by gamut mapping module 702. Source device module 701 also computes black weight information for each pixel in the source device color space. Black weight can be understood (with some loss of technical accuracy) as the lightness of a color pixel in the black plane.
[0069] For source devices that include a K channel, such as a CMYK color space, source device module 701 determines black weight from the amount of black colorant used in the source image and by the physical characteristics of the source device and medium. More specifically, source device module 701 converts the K value of a source pixel into a device-independent lightness value using the source device's color transform. The black weight of a source pixel from a source color space that includes a K channel is essentially the lightness of the source K channel in color appearance space.
[0070] For source devices that do not include a K channel, such as a RGB color space, source device module 701 determines black weight from the color purity of a pixel in the source device color space. Color purity of a device colorant space is the distance of the pixel from the device neutral axis. For a trichromatic color space, such as RGB, color purity (CP) may be calculated using the following equation:
HighestValue(RGB) - SmallestValue(RGB) HighestValue(RGB)
For example, for a pixel whose color coordinates are RGB = (0.80, 0.10, 0.20), the largest value, R, is 0.80 and the smallest value, G, is 0.10. Hence, color purity, CP, is (0.80 - 0.10) / 0.80 = .875. This relatively high value for color purity tends to indicate a low amount of black is present in that pixel. To represent this color purity as black weight, color purity is subtracted from 1. BlackWeight = (1 - CP)
Thus, source device module 701 would compute the black weight of a pixel with RGB values of (0.80, 0.10, 0.20) as 0.125.
[0071] Once source device module 701 computes the black weight of the source pixel, the black weight information is passed directly to destination device module 703 "out-of-band". That is, the black weight information skips intermediate modules and/or objects, such as gamut mapping module 702, and is obtained by destination device module 703 directly from source device module 701. One method for providing the black weight information from the source device module 701 to the destination device module 703 directly is to make use of the Component Object Model (COM) system in MICROSOFT® WINDOWS®. Using COM, the destination device module performs a "Querylnterface" call on the source device module to obtain a pointer to an interface to provide the black weight information. Next, the destination device module calls a "GetBlackWeightlnformation" method in the interface to get the computed black weight data. It is recommended that the black weight information be represented as an array of floating point numbers, one per picture element or color in the color data being processed. The floating point numbers should range between 0.0 and 1.0, 1.0 representing complete black and 0.0 representing no black.
[0072] Once the black weight information is received, destination device module 703 selects a K value for each pixel in the destination device color space based on the black weight information. For example, the destination device module may use the destination device transform to convert the black weight value to a destination color space K value. Then, the destination device module computes the remaining channels for the destination color space (such as CMY for a CMYK space) based on the selected K value and the gamut-mapped color appearance space data. It should be noted that if the destination device module queries for black information and none is received, or if the "Querylnterface" call does not result in an interface for black weight information, conversion to the destination color space proceeds in the conventional manner. In this way, the destination device module of this second aspect remains compatible with source device modules that do not compute black weight information, or do not provide a suitable COM interface.
[0073] Alternatively, if the destination device module is not able to obtain black information, such as after an unsuccessful query or if the "Querylnterface" call does not result in an interface for black weight information, conversion to the destination color space may proceed in accordance with the above-described first aspect. In particular, if the destination device module is not able to obtain black weight information from the source device module, then the destination device module computes the target CMYK olor in destination device space in accordance with steps S302 through step S308 shown in Figure 3, based on neutrality of the color value in color appearance space.
[0074] The following paragraphs will describe one process for converting the gamut-mapped color appearance space data to destination device color values in the case that the destination device is a CMYK device. The first step in converting the gamut-mapped color appearance space data to CMYK values is the creation of a plurality of three-dimensional (3-D) CMY to color appearance space lookup tables (LUT). Each 3-D LUT is keyed to a constant value of K. Figure 8 depicts one method of creating the LUTs. CMYK color samples 801 are supplied to CMYK to color appearance space transform 802. Transform 802 is the forward transform (i.e., CMYK to color appearance space) associated with the device for which the color appearance space to CMYK conversion is desired. In effect, running CMYK color samples through transform 802 creates "pseudo color measurements" for the associated CMYK device.
[0075] These pseudo-measurements are then placed in the LUT corresponding to the K value of the sample, so as to create plural CMY LUTs 803. With the K value constant, each entry in the LUTs maps a color defined by its CMY color components to a color in color appearance space. In this second aspect, 51 LUTs are created, where the K value of the LUTs range in decimal values of K=0 to K=255 in steps of 5. More or fewer tables could be used, depending on the desired degree of control over the K channel. Along with the associated K value, each LUT also stores the smallest and largest lightness value of the color appearance space values contained therein. For instance, for a CIECAM (Jab) color appearance space, the smallest and largest J value is stored. For a CIELab color appearance space, the smallest and largest L values would be stored.
[0076] The method for creating the 51 CMY to color appearance space LUTs depicted by Figure 8 might be unnecessary, such as a situation where actual color measurements for the desired CMYK device are available. Such actual measurements could simply be grouped into different LUTs based on K value. Again, the smallest and largest lightness values contained in each LUT would also be stored.
[0077] Once created, the LUTs can be stored on a fixed disk for future use. Also, the LUTs can be recreated each time they are needed in order to conserve disk space. Of course, there are many acceptable ways of arranging and accessing the LUTs in a storage medium.
[0078] The three-dimensional CMY to color appearance space LUTs can be inverted to generate the desired conversion. Figure 9 shows a flowchart depicting this process. The flow sequence shown in Figure 9 is stored as executable code on a computer-readable memory medium, which is executed by a processor to effect the sequence shown in the figure. Briefly, these steps effect a conversion by first receiving black weight information. Next, one of the plurality of CMY lookup tables is selected based on the black weight information. Finally, a CMYK value is provided based on interpolation from the selected lookup table.
[0079] Thus, in S901, black weight information is obtained from the source device module. Next, in S902, a K value is computed based on the black weight information and one of the plural LUTs associated with the computed K value is selected. The black weight information represents the percentage of K desired in the destination device. The black weight information is multiplied by 255 (which is the maximum value of the range of K) and the LUT whose K value is closest to the product is selected. Thus, the process selects the one of the plurality of lookup tables with a K value percentage that is closest to the black weight. For example, a black weight of 0.55 corresponds to the K = 140 LUT as 0.55 * 255 = 140.25.
[0080] Next, in S903, a CMY value is interpolated from the selected LUT. Figure 10 depicts this process in more detail. First, in S1001, an initial guess for CMY is made. For example, the initial guess for CMY may be (0.3, 0.3, 0.3) where C, M, and Y range from 0.0 to 1.0, and in which this guess is used for all pixels regardless of value. This corresponds to CMY percentages of 30% for each channel.
[0081] In SI 002, the CMY guess (gC, gM,gY) is applied to the selected LUT to obtain the corresponding color appearance space value. For example, if the color appearance space, and therefore the target color value, is in Lab format, the LUT would be a CMY to Lab LUT. Similarly, if the color appearance space is in a Jab format, the LUT would be a CMY to Jab LUT. For a Lab color appearance space, the CMY guess will correspond to a Lab guess value (gL, ga, gb) in the selected LUT. The obtained Lab guess value is then compared to the target color value ( L, ta, tb) in SI 003, and the error is calculated and stored. The error is defined as the Euclidean distance between the Lab guess value and the target color value
[0082] In SI 004, the calculated error is compared to a predetermined error threshold, which in this example is equal to 0.001. If the calculated error is less than the predetermined error threshold, the interpolation is considered to be accurate and the process proceeds to SI 009. Note that the square of the error and the square of the threshold may be used for this calculation. This eliminates the need to compute a square root, thereby improving speed without sacrificing accuracy. In SI 009, the current guess for CMY is supplied to S904 in Figure 9, as the interpolated CMY value.
[0083] However, if the calculated error is greater than the predetermined error threshold when compared in SI 004, the process proceeds from SI 004 to SI 005. In SI 005, it is determined if ten iterations have already been made. Note that ten iterations is a preferred number for the iterations. Larger or smaller values can be used, provided that reasonable convergence is achieved. If ten iterations have not yet been made, the process proceeds to SI 006. In SI 006, the Jacobian (j), or three-dimensional derivative, of the LUT is calculated at the point of the current iteration of CMY value. In SI 007, the calculated Jacobian and error are used to calculate a new iteration for CMY value.
[0084] The new CMY value is calculated by first computing a Newtonian step delta (d) according to the following equation: (d) = (tL - gL, ta - ga, tb - gb)
Next, a Newtonian step is calculated by solving the following equation for x, where j is the calculated Jacobian. j ' X = ( )
Next, the new CMY value for this iteration is computed by adding x to the previous iteration. The process then returns to SI 002, and the new CMY value is applied to the currently selected LUT.
[0085] If, on the other hand, ten iterations have already been made without meeting the predetermined error threshold, the process proceeds from SI 005 to SI 008. At this point, the CMY value with the smallest error is selected from the previous ten iterations. Then, in S 1009, the current iteration value for CMY is supplied to S904 in Figure 9, as the interpolated CMY value.
[0086] Reverting to Figure 9, in S904, the interpolated CMY value from SI 009 and the K value of the currently selected LUT are supplied as the CMYK value. This value is then output for rendering by a CMYK device, such as by printing. The process is repeated for all pixels in the image. Caching of values can be implemented to speed processing in the case of highly repetitive color values in the source image, such as is found in computer graphic images.
[0087] The interpolated CMY value can calculated in other ways as well. For example, a range of CMY values may be interpolated from LUTs with K values near the K value of the selected LUT in S903. This range of interpolated CMY values, including the CMY value interpolated from the selected LUT in S903, may be averaged to produce a final interpolated CMY value.
[0088] The above process of converting color appearance space values to CMYK values with control on the K channel is described in the context of a color management system. In addition, this second aspect can be used to convert color appearance space values to CMYK values as process steps in a printer driver, or in the printer itself.
[A Third Aspect]
[0089] In the above-described second aspect, the destination device module converts color values in color appearance space to color values in destination CMYK space based in part on black weight information supplied from the source device module if black weight information is available, and if black weight information is not available from the source device module, based on neutrality of the color value in color appearance space as described in the first aspect. One way that this third aspect differs from the second aspect, therefore, is in the provision of a black weight interface which provides black weight information to the destination device module regardless of whether it is available from the source device module. If the source device module provides black weight information, then the black weight interface provides it to the destination device module which thereupon converts a color value from color appearance space to the destination device space. On the other hand, if the source device module does not provide black weight information, then the black weight interface calculates a best estimate of black weight based on neutrality of the color value in color appearance space. Neutrality may be based on lightness and colorfulness of the color value in color appearance space. The calculated black weight information is provided to the destination device module, which utilizes the black weight information in the same way as if it had been provided from the source device module in its conversion of the color value from color appearance space to destination device space. A more detailed explanation is provided below.
[0090] A color management system according to this third aspect is illustrated in Figure 11. As shown there, a color value in source device color space is transformed by transform module 1102 into a color appearance color space and thereafter gamut mapped by gamut mapping module 1103. The gamut mapped color appearance space data is transformed by destination device transform module 1104 so as to obtain a color value in destination device color space. The destination device transform module 1104 relies on black weight information provided by black weight interface 1104a, which obtains the black weight information from source device transform module 1102, if it is available from source device module 1102, or which calculates black weight information if it is not available from source device module 1102 based on lightness and colorfulness of the color value in color appearance space.
[0091] The above architecture recognizes that each of the modules might be provided in an object-oriented framework or a plug-in framework. Each such module is expected to provide a minimal functionality, but extended functionality might or might not be provided. Thus, for example, source device transform module 1102 is expected to provide minimal functionality of converting color values from source device color space into color appearance space. However, as extended functionality, source device transform module 1102 might not provide for calculation of black weight information and might not provide for provision of such information to destination device transform module 1104. Likewise, gamut mapping module 1103 is expected to provide minimal functionality of gamut mapping, but in an objected-oriented or plug- in architecture, the precise nature and implementation of such minimal functionality is transparent to other objects in the system. Accordingly, from the perspective of the destination device transform module 1104, black weight information might not be provided from source device transform module 1102, even though destination device transform module 1104 can depend on the minimal functionality of color conversion performed by source device transform module 1102. Thus, according to this third aspect, destination device transform module 1104 depends on black weight interface 1104a to provide black weight information; black weight interface 1104a, in turn, obtains black weight information from source device transform module 1102, if it is available, whereas it calculates a best estimate of a likely black weight value if it is not. The source of the black weight information is therefore transparent to destination device transform module 1104, which is consequently able to proceed in its functionality using a consistent implementation that does not ordinarily change regardless of the source of black weight information, and which does not ordinarily depend on knowledge of the source. [0092] In particularly preferred implementations, destination device transform module 1104 transforms color values through use of a plurality of three dimensional lookup tables (3-D LUTs) that map CMY values in destination device color space to color appearance space. Each 3-D LUT is keyed to a constant value of K, as depicted hereinabove with respect to the first and second aspects. Each 3-D LUT is a forward transform (i.e., from CMYK space for the destination device to a color appearance space); accordingly, to obtain a destination device color value in the destination device color space, given a color value in color appearance space, a selected one or ones of the 3- D LUTs must be inverted. For this purpose, inverse interpolation according to the first and second aspects is employed.
[0093] To identify the selected one or ones of the 3-D LUTs that are interpolated, black weight information is utilized. In this third aspect, black weight information is obtained from black weight interface 1104a, which either obtains it from the source device transform module 1102, or calculates a best estimate of a likely value, as mentioned above. Preferably, black weight information bypasses gamut mapping module 1103, thereby preserving black weight information in spite of the effects of gamut mapping.
[0094] Figure 12 is a flow diagram illustrating a process according to this third aspect. In step SI 201 a color value in source device color space is received by source device transform 1102. Step SI 202 calculates black weight based on the color value in the source device color space. Although any metric can be used to obtain black weight information, it is preferred to obtain black weight information according to the functionality of source device module 701 of the second aspect described hereinabove. Thus, in step SI 202, source device transform 1102 calculates black weight differently in dependence on whether the source device color space includes a black K channel (such as CMYK color space) or whether it does not (such as RGB color space). If the source device color space includes a black K channel, then source device transform 1102 calculates black weight based on a conversion of the K value of a source pixel into a device-independent lightness value using the source device's color transform. For source color spaces that do not include a K channel, then source device transform module 1102 determines black weight from color purity of a pixel in the source device color space, with black weight being calculated in dependence on color purity. Both of these alternatives are discussed more fully above in connection with the second aspect.
[0095] Thereafter, flow advances to step SI 203 in which the source device transform module 1102 transforms the color value from source device color space into a color appearance color space. In step SI 204, gamut mapping module 1103 gamut-maps the color value in color appearance space so as to account for differences between the gamut of the source device 1101 and the destination device 1105. The particular gamut mapping algorithm utilized by gamut mapping module 1103 may be selected from any known or yet-to-be developed gamut mapping algorithm, and may also be selected based on a user's designation of rendering intent.
[0096] The gamut-mapped color value in color appearance space is thereafter transformed by destination device transform 1104 into a color value in destination device color space. Steps SI 205 through S1210 describe this process.
[0097] In step S1205, black weight interface 1104a determines whether black weight information is available from source device transform module 1102. One preferred method for making this determination is through use of a COM query to source device transform module 1102. For example, an IQuerylnterface method is called on the source device transform module 1102 and its results inspected to determine whether source device transform module 1102 is able to provide black weight information. Another method for determining whether black weight information is available is to obtain a candidate value for black weight information from the source device transform module 1102, and then to compare the candidate value against a default, but invalid, value for black weight information, such as -1. If the candidate value is equal to the invalid default value then black weight information is not available, whereas if it differs from the invalid default value, then black weight information is available.
[0098] Flow then branches in dependence on whether black weight information is available from source device transform module 1102, to step SI 206 if black weight information is available, and to step SI 207 if it is not. In step SI 206, since it was determined that black weight infoπnation is available from the source device transform module 1102, black weight interface 1104a obtains black weight from the source device module 1102. One method for providing the black weight information from the source device transform module 1102 is to make use of the Component Object Model (COM) system as described above in the second aspect. COM is preferred, as indicated above, since it provides a simple default mechanism in the case that source device transform module 1102 is a legacy module that does not calculate black weight or otherwise is not in a position to provide black weight to the destination device transform module 1104. Naturally, other methods may be utilized for providing the black weight to the destination device transform module.
[0099] On the other hand, if in step SI 205 the black weight interface 1104a determines that black weight information is not available, then flow branches to step SI 207 in which black weight interface 1104a calculates a best estimate of a likely value for black weight, based on the color value provided from gamut mapping module 1103 which is currently represented in color appearance space. Preferably, black weight interface 1104a calculates black weight information based on neutrality of the color value in color appearance space. Neutrality may be inferred from the combined values of lightness and colorfulness of the color value. For highly neutral colors (that is, color values that lack any significant colorfulness), the black weight information should closely correspond to a value of 1 regardless of the color's lightness, since such colors are most preferably rendered primarily with black colorant and not with colored colorants. Conversely, for highly colorful values, the black weight should correspond closely to a value of 0 since such colors should be rendered with nearly no black colorant but rather with primarily colored colorants. Between these two extremes, black weight interface 1104a calculates the black weight based on a combination. For example, for darker colors with some colorfulness, the black weight information is calculated to a value somewhat less than 1 but close to 1 since it is likely that such colors should be rendered primarily from black colorant with only small amounts of colored colorants. On the other hand, for slightly hued bright colors, whose color values have a very high lightness, even a slight amount of colorfulness should result in a low black weight somewhat above 0 but close to 0, since it is likely that such colors should be rendered with only small amounts of black colorant and should rather be rendered mostly with colored colorants.
[0100] Regardless of the source of black weight information (i.e., whether it is provided from source device transform module 1102 or calculated based on a most likely value), black weight interface 1104a provides the black weight information to destination device transform 1104, and flow advances to step SI 208 in which the black weight information is used. [0101] In step S1208, the destination device transform module 1104 determines a K value from the black weight. Although other techniques may be used, a straight-forward technique is preferred, where the black weight (which ranges from 0 to 1) is scaled by the range in K values of the plural 3-D CMY LUTs. In this third aspect, these K values range from 0 to 255, so the black weight is simply multiplied by 255 to obtain a target K value for output on the destination device.
[0102] Based on the target K value, step S1209 selects one or more of the 3-D CMY LUTs for inverse interpolation. Good results have been obtained by simply selecting the single 3-D CMY LUT that has a K value closest to the target K value. More precise results can be obtained, at the expense of computational effort, by selecting the two 3-D CMY LUTs whose K values bracket the target K value.
[0103] In step S1210, based on the selected LUT or LUTs, destination device transform module 1104 interpolates to invert the selected LUT or LUTs and thereby obtain the CMY values in destination device color coordinates. If only a single LUT was interpolated for inversion, then the K value for destination device color space is identical to the K value of the selected LUT. On the other hand, if multiple LUTs were selected, then the K value may be selected by alternate means, such as by using the target K value calculated in step S1207.
[0104] Step S1211 outputs the CMYK color value in destination device color space for rendering by destination device 1105.
[0105] The invention has been described above with respect to particular illustrative aspects. It is understood that the invention is not limited to the above-described aspects and that various changes and modifications may be made by those skilled in the relevant art without departing from the spirit and scope of the invention.

Claims

WHAT IS CLAIMED IS:
1. A color management method for converting internal color values to CMYK color values, wherein the method utilizes a color transform that converts CMYK color values to internal color values, the color transform being arranged as a plurality of three-dimensional CMY space to internal color space lookup tables, each associated to a different K value, the method comprising the steps of: receiving a target internal color value; selecting one of the plurality of CMY lookup tables that contains the target internal color value based on a lightness value and neutrality of the target internal color value; interpolating a CMY value from the selected lookup table and the target internal color value; providing the interpolated CMY value and the associated K value from the selected table as the converted CMYK color value.
2. A color management method according to claim 1, wherein the selection step further includes the steps of: determining the neutrality of the target internal color value; selecting the CMY lookup table associated with the largest value of K which contains the target internal color value in the case that the target internal color value is determined to be neutral; and selecting the CMY lookup table associated with the smallest value of K which contains the target internal color value in the case that the target internal color value is determined to be non-neutral.
3. A color management method according to claim 2, wherein the target internal color value is determined to be non-neutral if its value is greater than a predetermined distance from the neutral axis, and wherein the target internal color value is determined to be neutral if its value is less than a predetermined distance from the neutral axis.
4. The method according to claim 2, wherein the interpolating step further includes the steps of: computing an error in the interpolated CMY value; comparing the computed error to a predetermined error threshold; providing the interpolated CMY value, in the case that the predetermined threshold is met; selecting a new CMY lookup table, in the case that the predetermined error threshold is not met, and interpolating a new CMY value from the newly selected lookup table and the target internal color value;
5. The method according to claim 4, wherein the interpolation is achieved using Newton's method and Jacobians.
6. The method according to claim 5, wherein the target internal color value is in a CIELab format.
7. The method according to claim 5, wherein the target internal color value is in a CIECAM format.
8. The method according to claim 5, wherein the target internal color value is in a CIELuv format.
9. The method according to claim 4, wherein the plurality of CMY space to internal color space lookup tables is created with the following steps: obtaining measurement data in an internal color space format for a plurality of CMYK values for a CMYK device; populating the plurality of three-dimensional CMY to internal color space lookup tables, wherein each table contains internal color space measurement values that correspond to CMY values at a specific value of K.
10. The method according to claim 9, wherein the measurement data is obtained by measuring the output of the CMYK device with a color measuring device.
11. The method according to claim 9, wherein the measurement data is obtained by converting a plurality of CMYK color samples into internal color space values with a preexisting color transform associated with the CMYK device.
12. The method according to claim 9, wherein 51 CMY to color appearance space lookup tables are created, the 51 tables corresponding to K values from digital values of 0 to 255 in steps of 5.
13. An apparatus for converting internal color values to CMYK color values, wherein the apparatus utilizes a color transform that converts CMYK color values to internal color values, the color transform being arranged as a plurality of three-dimensional CMY lookup tables, each associated to a different K value, the apparatus comprising: a program memory for storing process steps executable to perform a method according to any of Claims 1 to 12; and a processor for executing the process steps stored in said program memory.
14. Computer-executable process steps stored on a computer readable medium, said computer-executable process steps for converting internal color values to CMYK color values, wherein the process steps utilize a color transform that converts CMYK color values to internal color values, the color transform being arranged as a plurality of three-dimensional CMY lookup tables, each associated to a different K value, said computer-executable process steps comprising process steps executable to perform a method according to any of Claims 1 to 12.
15. A computer-readable medium which stores computer- executable process steps, the computer-executable process steps for converting internal color values to CMYK color values, wherein the computer-executable process steps utilize a color transform that converts CMYK color values to internal color values, the color transform being arranged as a plurality of three- dimensional CMY lookup tables, each associated to a different K value, said computer-executable process steps comprising process steps executable to perform a method according to any of Claims 1 to 12.
16. A color management method for converting colors from one of a plurality of source device color spaces to a destination color space that includes a black channel, the method comprising the steps of: obtaining a black weight of a source pixel in the source device color space, wherein the black weight is obtained based on a black channel in the source color space if the source color space includes a black channel, and is obtained based on color purity if the source color space does not include a black channel; transforming the source pixel into a color in color appearance space; and calculating a destination space color value based on the color in color appearance space and the obtained black weight.
17. The color management method according to claim 16, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
18. The color management method according to claim 16, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
19. The color management method according to claims 18 or 19, wherein the destination color space is CMYK, and wherein the calculating step further includes the steps of: selecting a K value based on the obtained black weight; and computing the C, M, and Y values based on the selected K value and the color in color appearance space.
20. The color management method according to claim 19, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the selected K value.
21. A color management system for converting colors from one of a plurality of source device color spaces to a destination color space that includes a black channel, the system comprising: a source device module for calculating a black weight of a source pixel in the source device color space, and for transforming the source pixel into a color in color appearance space, wherein the black weight is calculated based on a black channel in the source color space if the source color space includes a black channel, and is calculated based on color purity if the source color space does not include a black channel; a destination device module for calculating a destination color value from the color in color appearance space and the black weight.
22. The color management system according to claim 21, wherein the black weight is passed directly from the source device module to the destination device module.
23. The color management system according to claim 22, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
24. The color management system according to claim 22, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K channel of the source pixel into a device-independent lightness value.
25. The color management system according to claims 23 or 24, wherein the destination color space is CMYK, and wherein the destination device module calculates the CMYK values by first selecting a K value based on the obtained black weight, and then computing the C, M, and Y values based on the selected K value and the color in color appearance space.
26. The color management system according to claim 15, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the selected K value.
27. Computer-executable process steps stored on a computer readable medium, said computer-executable process steps for converting colors from one of a plurality of source device color spaces to a destination color space that includes a black channel, the computer-executable process steps comprising: obtaining a black weight of a source pixel in the source device color space, wherein the black weight is obtained based on a black channel in the source color space if the source color space includes a black channel, and is obtained based on color purity if the source color space does not include a black channel; transforming the source pixel into a color in color appearance space; and calculating a destination color value based on the color in color appearance space and the obtained black weight.
28. The computer-executable process steps according to claim 27, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
29. The computer-executable process steps according to claim 27, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
30. The computer-executable process steps according to claims 28 or 29, wherein the destination color space is CMYK, and wherein the calculating step further includes the steps of: selecting a K value based on the obtained black weight; and computing the C, M, and Y values based on the selected K value and the color in color appearance space.
31. The computer-executable process steps according to claim 30, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the selected K value.
32. A computer-readable medium which stores computer- executable process steps, the computer-executable process steps for converting colors from one of a plurality of source device color spaces to a destination color space that includes a black channel, the computer-executable process steps comprising: obtaining a black weight of a source pixel in the source device color space, wherein the black weight is obtained based on a black channel in the source color space if the source color space includes a black channel, and is obtained based on color purity if the source color space does not include a black channel; transforming the source pixel into a color in color appearance space; and calculating a destination color value based on the color in color appearance space and the obtained black weight.
33. The computer-readable medium according to claim 32, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
34. The computer-readable medium according to claim 32, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
35. The computer-readable medium according to claims 33 or 34, wherein the destination color space is CMYK, and wherein the calculating step further includes the steps of: selecting a K value based on the obtained black weight; and computing the C, M, and Y values based on the selected K value and the color in color appearance space.
36. The color management method according to claim 35, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the selected K value.
37. A color management method for converting a color value from a color appearance space to a destination color space that includes a black channel, the method comprising the steps of: obtaining a black weight for the color value, wherein the black weight is obtained from a source device transform module if available from the source device transform module, and, if not, is calculated based on lightness and colorfulness of the color value in the color appearance space; and calculating a destination space color value based on the color value in color appearance space and the obtained black weight.
38. The color management method according to claim 37, further comprising the step of transforming a color value for a source pixel from source device color space to a color value corresponding to the color value in the color appearance color space using the source device transform module.
39. The color management method according to claim 38, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
40. The color management method according to Claim 38, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
41. The color management method according to claims 39 or 40, wherein the destination color space is CMYK, and wherein the calculating step further includes the steps of: selecting a target K value based on the obtained black weight; and computing the C, M, Y and K values based on the target K value and the color in color appearance space.
42. The color management method according to claim 41, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the target K value.
43. A color management system for converting a color value from a color appearance space to a destination color space that includes a black channel, the system comprising: a destination device module which includes a black weight interface that obtains a black weight from a source device transform module if available from the source device transform module, and, if not, that calculates a black weight based on lightness and colorfulness of the color value in the color appearance space; wherein the destination device module calculates a destination color value from the color value in color appearance space and the black weight.
44. The color management system according to claim 43, wherein the black weight is passed directly from the source device module to the destination device module.
45. The color management system according to Claim 43, further comprising a source device transform module for transforming a source pixel in a source device color space into a color value corresponding to the color value in the color appearance space.
46. The color management system according to claim 45, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained from a relative purity of the source pixel in the trichromatic color space.
47. The color management method according to claim 45, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained by converting the K value of the source pixel into a device-independent lightness value.
48. The color management system according to claims 46 or 47, wherein the destination color space is CMYK, and wherein the destination device module calculates the CMYK values by first selecting a target K value based on the obtained black weight, and then computing the C, M, Y and K values based on the target K value and the color in color appearance space.
49. The color management system according to claim 46, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the target K value.
50. Computer-executable process steps stored on a computer readable medium, said computer-executable process steps for converting colors from one of a plurality of source device color spaces to a destination color space that includes a black channel, the computer-executable process steps comprising: obtaining a black weight for the color value, wherein the black weight is obtained from a source device transform module if available from the source device transform module and, if not, is calculated based on lightness and colorfulness of the color value in the color appearance space; and calculating a destination color value based on the color value in color appearance space and the obtained black weight.
51. The computer-executable process steps according to Claim 50, further comprising the step of transforming a color value for a source pixel from source device color space to a color value corresponding to the color value in the color appearance color space using the source device transform module.
52. The computer-executable process steps according to claim 50, wherein in the case that the type of the source device color space is a trichromatic color space, the black weight is obtained based on a minimum value of the trichromatic color components.
53. The computer-executable process steps according to claim 50, wherein in the case that the type of the source device color space is a device space including a K channel, the black weight is obtained based on the K value and based on a minimum value of remaining color components.
54. The computer-executable process steps according to claims 51 or 52, wherein the destination color space is CMYK, and wherein the calculating step further includes the steps of: selecting a target K value based on the obtained black weight; and computing the C, M, Y and K values based on the target K value and the color in color appearance space.
55. The computer-executable process steps according to claim 54, wherein the C, M, and Y values are computed by interpolation from a CMY to color appearance space LUT, wherein the LUT is chosen on the basis of the target K value.
56. A computer-readable medium which stores computer- executable process steps according to any of Claims 50 to 55, for converting a color value in a color appearance space to a destination color space that includes a black channel.
PCT/US2005/015972 2004-05-06 2005-05-06 Transform for destination space which includes a black channel WO2005109319A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007511663A JP4559471B2 (en) 2004-05-06 2005-05-06 Color processing apparatus and method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/841,184 US7103217B2 (en) 2004-05-06 2004-05-06 Color appearance space to CMYK mapping
US10/841,184 2004-05-06
US11/039,492 2005-01-18
US11/039,492 US7489815B2 (en) 2005-01-18 2005-01-18 Source device to destination device transform using black weight

Publications (1)

Publication Number Publication Date
WO2005109319A1 true WO2005109319A1 (en) 2005-11-17

Family

ID=35320409

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/015972 WO2005109319A1 (en) 2004-05-06 2005-05-06 Transform for destination space which includes a black channel

Country Status (2)

Country Link
JP (1) JP4559471B2 (en)
WO (1) WO2005109319A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7855802B2 (en) 2006-04-06 2010-12-21 Canon Kabushiki Kaisha Time-efficient generation of color look-up table

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553199A (en) * 1994-05-03 1996-09-03 Eastman Kodak Company Method and apparatus for calibrating a four color printer
US5719956A (en) * 1994-10-17 1998-02-17 Fuji Xerox Co., Ltd. Image processing apparatus with separate color conversion for CMY signals and K signal
US6118550A (en) * 1997-02-19 2000-09-12 Kyocera Mita Corporation Image processing apparatus
US6281984B1 (en) * 1997-03-25 2001-08-28 International Business Machines Corporation Enhanced system, method and program for converting an externally defined four dimensional colorant (CMYK) into an equivalent four dimensional colorant defined in terms of the four inks (C′M′Y′K′) that are associated with a given printer
US20010033330A1 (en) * 2000-02-04 2001-10-25 Garoutte Maurice V. System for automated screening of security cameras

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987168A (en) * 1997-03-25 1999-11-16 International Business Machines Corporation System, method, and program for converting three dimensional colorants to more than three dimensional colorants
US7053910B2 (en) * 2001-07-30 2006-05-30 Canon Kabushiki Kaisha Reducing metamerism in color management systems
JP2003209709A (en) * 2002-01-17 2003-07-25 Canon Inc Image processing apparatus, method, storage medium, and program
JP3870143B2 (en) * 2002-09-27 2007-01-17 キヤノン株式会社 Information processing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553199A (en) * 1994-05-03 1996-09-03 Eastman Kodak Company Method and apparatus for calibrating a four color printer
US5719956A (en) * 1994-10-17 1998-02-17 Fuji Xerox Co., Ltd. Image processing apparatus with separate color conversion for CMY signals and K signal
US6118550A (en) * 1997-02-19 2000-09-12 Kyocera Mita Corporation Image processing apparatus
US6281984B1 (en) * 1997-03-25 2001-08-28 International Business Machines Corporation Enhanced system, method and program for converting an externally defined four dimensional colorant (CMYK) into an equivalent four dimensional colorant defined in terms of the four inks (C′M′Y′K′) that are associated with a given printer
US20010033330A1 (en) * 2000-02-04 2001-10-25 Garoutte Maurice V. System for automated screening of security cameras

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7855802B2 (en) 2006-04-06 2010-12-21 Canon Kabushiki Kaisha Time-efficient generation of color look-up table

Also Published As

Publication number Publication date
JP4559471B2 (en) 2010-10-06
JP2007537629A (en) 2007-12-20

Similar Documents

Publication Publication Date Title
US7505625B2 (en) Color appearance space to CMYK mapping
US7663641B2 (en) Gamut mapping utilizing cusp points and three-dimensional boundary surfaces
EP1102478B1 (en) Color management and proofing architecture
US5343311A (en) Indexed processing of color image data
US6421142B1 (en) Out-of-gamut color mapping strategy
US7623266B2 (en) Gamut mapping with saturation intent
US6204939B1 (en) Color matching accuracy inside and outside the gamut
US6897988B1 (en) Image processing apparatus, image processing method, and storage medium for color matching
US6185004B1 (en) Self-calibration for color image reproduction system
JPH0877341A (en) Equipment and method for color image processing
JP2004032749A (en) Method for image processing
US6160644A (en) Scanner calibration technique to overcome tone inversion
KR100887000B1 (en) Color processing apparatus, color processing method, and recording medium
US20020067848A1 (en) Principal axis look-up for color correction
US20050248785A1 (en) Hybrid gamut mapping
US7483170B2 (en) Generation of color measured data from transform-based color profiles
JP2001211341A (en) Adjusting method for color appearance model, image processor, and storage medium
WO2006036424A2 (en) Color appearance space to cmyk mapping using relative purity
US7489815B2 (en) Source device to destination device transform using black weight
US5786907A (en) High speed color compensation system
US7656414B2 (en) System and method for determination of gray for CIE color conversion using chromaticity
US5751926A (en) Function approximation using a centered cubic packing with tetragonal disphenoid extraction
Tastl et al. ICC color management and CIECAM02
WO2005109319A1 (en) Transform for destination space which includes a black channel
US7679782B2 (en) System and method for extracting grayscale data in accordance with a prescribed tolerance function

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007511663

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase