WO2005065092A2 - Dynamic generation of color look-up tables - Google Patents

Dynamic generation of color look-up tables Download PDF

Info

Publication number
WO2005065092A2
WO2005065092A2 PCT/US2004/038938 US2004038938W WO2005065092A2 WO 2005065092 A2 WO2005065092 A2 WO 2005065092A2 US 2004038938 W US2004038938 W US 2004038938W WO 2005065092 A2 WO2005065092 A2 WO 2005065092A2
Authority
WO
WIPO (PCT)
Prior art keywords
dependent
data points
independent
data
data point
Prior art date
Application number
PCT/US2004/038938
Other languages
French (fr)
Other versions
WO2005065092A3 (en
Inventor
Cameron Altenhof-Long
Siu-Kei Tin
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
Application filed by Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of WO2005065092A2 publication Critical patent/WO2005065092A2/en
Publication of WO2005065092A3 publication Critical patent/WO2005065092A3/en
Priority to US11/978,525 priority Critical patent/US7575170B2/en
Priority to US11/978,522 priority patent/US7588188B2/en
Priority to US11/980,317 priority patent/US7770796B2/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 system for dynamically generating, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device-independent color spaces.
  • color management systems rely on predetermined look-up tables for the conversion of color image data between device-dependent and device-independent color spaces.
  • Such predetermined look-up tables are often created by the developer of a color management module for a given color device, such as a printer. Accordingly, a user is generally unable to modify them or update them if the color characteristics ofthe color device are different from, or have changed from, the representation ofthe color device by the look-up tables.
  • CMYK patches consist of sampling ofthe CMYK space in a well-defined manner so that a rectangular grid (with non-uniform spacing in C, M, Y and K) is formed. Each patch is then measured with a colorimeter or spectrophotometer. The measurements, which are typically in CIEXYZ values, then form a Look-Up Table (LUT), with which an empirical model ofthe printer can be built using an interpolation method of one's choice, resulting in the forward look-up table.
  • LUT Look-Up Table
  • the second known approach does not assume any subdivision at all, but is instead based on the technique of scattered data interpolation.
  • a classical example is the technique of Shepard interpolation, or inverse weighted method.
  • this method several points surrounding the input point are chosen and each assigned a weight, usually inversely proportional to the distance, and the interpolant is taken as the weighted average ofthe neighboring points.
  • the choice of neighboring points is paramount to performance ofthe result. While too few neighboring points would render the interpolant inaccurate and non-smooth, too many points would impose a high computational cost, as the weights are typically non-linear functions and costly to compute, thereby rendering the second approach less feasible in a dynamic, run-time environment.
  • the present invention addresses the foregoing problems by providing a color management system which dynamically generates, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device- independent color spaces, by using fewer interpolation points, but still resulting in a smooth interpolant.
  • a look-up table which converts color image data from a device-independent color space to a device-dependent color space.
  • the look-up table is created by determining a range of lightness values corresponding to a lightness value of a target data point in device-independent color space, searching a predetermined set of data points in device-independent color space to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device- dependent component values within a predetermined tolerance level ofthe component values of a previously-determined device-dependent data point, performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space, and entering the interpolated device-dependent data point into a look-up table entry corresponding to the device-independent target data point.
  • the look-up table is populated in a particular order starting with a black data point at the center ofthe table, populating the rest ofthe neutral axis, populating outward along the a-axis, and then populating all data points outward along the b-axis.
  • the predetermined set of data points is preferably obtained from a list of data point pairs, each data point pair containing a device-independent data point and a corresponding device- dependent data point, where the list of data points is obtained by sampling a forward look-up table according to a predetermined schedule. Also preferably in the searching step, the tolerance level is increased until eight data points are selected.
  • a color management system which dynamically generates, based on provided color measurement data, an inverse transformation look-up table for transforming color image data from a device-independent to a device-dependent color space, by using fewer number of interpolation points while still resulting in a smooth interpolant.
  • a look-up table which converts color image data from a device-dependent color space to a device-independent color space.
  • the look-up table is created by determining an upper black component value which is a predetermined amount above a target black component value of a device-dependent target data point, and a lower black component value which is a predetermined amount below the target black component value ofthe device-dependent target data point, accessing a color measurement data table which contains device- independent component values in respective correspondence to device- dependent data points, selecting, from the color measurement data table, an upper set of device-dependent data points which are within the vicinity ofthe device-dependent target data point at the upper black component value, and a lower set of device-dependent data points which are within the vicinity ofthe device-dependent target data point at the lower black component value, creating a first new set of device-dependent data points, each of which having a black component value equal to the upper black component value and having a combination of color component values corresponding to a respective one of the selected lower
  • the color measurement data table is based on device- independent color data measured from a device-dependent colorant test target.
  • the first and second interpolation steps are preferably performed by using a three-dimensional tetrahedral interpolation method.
  • the third interpolation step is preferably performed by using a four-dimensional tetrahedral interpolation method.
  • a color management system which dynamically generates, based on provided color measurement data, a forward transformation look-up table for transforming color image data from a device-independent to a device-dependent color spaces by using fewer interpolation points but still resulting in a smooth interpolant.
  • a color management method for converting color image data between a device-independent color space and a device-dependent color space.
  • the method includes the steps of generating a forward look-up table which converts color image data from the device-dependent color space to the device-independent color space, the forward look-up table being generated based on measured device-independent component values corresponding to device-dependent color target samples, and sampling the forward look-up table for device-dependent data points according to a sampling schedule, to obtain corresponding device-independent data points, and placing the device- dependent data points and corresponding device-independent data points in a data pair Ust.
  • the method further includes generating an inverse look-up table which converts color image data from the device-independent color space to the device-dependent color space, by, for each one of a plurality of target data points in device-independent color space, determining a range of lightness values corresponding to a lightness value for each target data point, searching the data pair list to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device-dependent component values within a predetermined tolerance level ofthe component values of a previously- determined device-dependent data point, performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space, and entering the interpolated device-dependent data point into an entry in the inverse look-up table corresponding to the device-independent target data point.
  • the method also includes converting a device-independent target data point to the device-dependent color space by accessing the nearest device-independent data point entries in the inverse look-up table relative to the device-independent target data point, and performing a cubic interpolation on the device-dependent data points obtained from the inverse look-up table which correspond to the nearest device-independent data point entries.
  • the look-up table is populated in a particular order starting with a black data point at the center ofthe table, populating the neutral axis, populating outward along the a-axis, and then populating all data points outward along the b-axis.
  • the list of data point pairs is preferably obtained by sampling a forward look-up table according to a predetermined graduated schedule. Also preferably in the searching step, the predetermined tolerance level is increased until eight data points are selected.
  • a color management system which dynamically generates, based on provided color measurement data, an inverse transformation look-up table for transforming color image data from a device-independent to a device-dependent color space, by using fewer number of interpolation points but still resulting in a smooth interpolant.
  • Figure 1 is a representative view of a computing environment in which the present invention may be implemented.
  • Figure 2 is a detailed block diagram for explaining the internal architecture ofthe computer equipment shown in the computing environment of Figure 1.
  • Figure 3 is a block diagram for explaining the operation of a color management module according to one embodiment ofthe present invention.
  • Figures 4A and 4B are block diagrams for explaining the use of lookup tables which are generated by the color management module shown in Figure 3.
  • Figure 5 is a flowchart for providing a detailed explanation of one embodiment ofthe present invention.
  • Figure 6 is a flowchart for providing a detailed explanation ofthe step of generating a forward look-up table shown in Figure 5.
  • Figure 7 is a diagram for depicting the use of a super-grid in the generation of a forward look-up table according to one embodiment ofthe present invention.
  • Figure 8 is a flowchart for providing a detailed explanation ofthe step of generating a table of data points shown in Figure 5.
  • Figure 9 is a diagram which depicts a sampling schedule in the generation of a table of data points according to one embodiment ofthe present invention.
  • Figure 10 is a flowchart for providing a detailed explanation of an order of table population during the step of generating an inverse look-up table shown in Figure 5.
  • Figure 11 is a graph which depicts the order of table population during the step of generating an inverse look-up table shown in Figure 5.
  • Figure 12 is a flowchart for providing a detailed explanation of determining a device-dependent value for a populated data point during the step of generating an inverse look-up table shown in Figure 5.
  • Figure 13 is a block diagram for explaining the selection of neighboring data points for use in the determination of a device-dependent value for a populated data point during the step of generating an inverse lookup table shown in Figure 5.
  • the present invention is generally directed to a color management system which dynamically generates, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device-independent color spaces, by using fewer number of interpolation points but still resulting in a smooth interpolant. In this manner, high-quality transformation look-up tables can be generated from measurement data when needed, without resulting in the excessive use of computational resources.
  • the present invention may be implemented in an color management module, such as in a color management software application module for use in a general purpose computer. It can be appreciated that the present invention is not limited to the aforementioned embodiments and that the present invention may be implemented in other forms as well, such as in a programmed color management device.
  • FIG. 1 is a view showing the external appearance of a representative computing system including computing equipment, peripherals and digital devices which may be used in connection with the practice ofthe present invention.
  • Computing equipment 40 includes host processor 41 which comprises a personal computer (hereinafter "PC"), preferably a personal computer having a windows-based operating system, although it may be another type computer having a non- windows-based operating system.
  • PC personal computer
  • color monitor 43 including display screen 42, keyboard 46 for entering text data and user commands, and pointing device 47.
  • Pointing device 47 preferably comprises a mouse for pointing and for manipulating objects displayed on display screen 42.
  • Computing equipment 40 includes a computer-readable memory medium such as computer fixed disk 45 and/or floppy disk drive 44.
  • Floppy disk drive 44 provides a means whereby computing equipment 40 can access information, such as image data, computer-executable process steps, application programs, etc. stored on removable memory media.
  • a similar CD-ROM interface (not shown) may be provided for computing equipment 40 through which computing equipment 40 can access information stored on removable CD-ROM media.
  • Printer 50 is a printer, preferably a color bubble jet printer, which forms color images on a recording medium such as paper or transparencies or the like.
  • the invention is usable with other printers, however, so long as the printer is capable of being interfaced to computing equipment 40.
  • digital color scanner 70 is provided for scanning documents and images into computing equipment 40 and digital color camera 60 is provided for sending digital images to computing equipment 40.
  • computing equipment 40 may acquire digital image data from other sources such as a digital video camera or from a local area network or the Internet via network interface bus 80.
  • FIG. 2 is a detailed block diagram showing the internal architecture of host processor 41 of computing equipment 40.
  • host processor 41 includes central processing unit (CPU) 113 which interfaces with computer bus 114. Also interfacing with computer bus 114 are fixed disk 45, network interface 109, random access memory (RAM) 116 for use as main memory, read only memory (ROM) 117, floppy disk interface 119, display interface 120 to monitor 43, keyboard interface 122 to keyboard 46, mouse interface 123 to pointing device 47, scanner interface 124 to scanner 70, printer interface 125 to printer 50, and digital camera interface 126 to digital camera 60.
  • CPU central processing unit
  • RAM random access memory
  • ROM read only memory
  • Main memory 116 interfaces with computer bus 114 so as to provide RAM storage to CPU 113 during execution of software programs such as an operating system, application programs and device drivers. More specifically, CPU 113 loads computer-executable process steps from fixed disk 45, another storage device, or some other source such as a network, into a region of main memory 116. CPU 113 then executes the stored process steps from main memory 116 in order to execute software programs such as an operating system, application programs and device drivers. Data such as color images can be stored in main memory 116, where the data can be accessed by CPU 113 during the execution of computer-executable process steps which use or alter the data.
  • fixed disk 45 contains operating system 130, which is preferably a windows-based operating system although other types of operating systems may be used, application programs 131, such as image processing applications that include a color management module, and plural device drivers, including a digital camera driver 132, monitor driver 133, printer driver 134, scanner driver 135, and other device drivers 136.
  • Fixed disk 45 also includes image files 137, other files 138, device color profiles 139, which are discussed in more detail below, device IT8 color data files 140, which are also discussed in more detail below, and color management module 141 in which the present invention may be implemented.
  • the functions of color management module 141 are preferably provided in the form of computer-executable process steps.
  • color management module 141 may be alternatively integrated in other forms, such as a preprogrammed dedicated color management device, or an application program for performing processing of color image data, such as one of application programs 131.
  • "J" bucket table 142 is also included on fixed disk 45 which is used in the implementation ofthe invention during the generation of an inverse, device-independent to device-dependent, transformation look-up table. The details of "J" bucket table 142 are discussed in more detail below.
  • FIG. 3 is a block diagram which depicts the implementation ofthe invention in a color management module according to one embodiment ofthe invention.
  • a color management module 141 is used to generate forward (device-dependent to device-independent) look-up table 152 and inverse (device-independent to device-dependent) look-up table 158 based on color measurement data contained in device IT/8 color data file 150.
  • device IT/8 color data file 150 is shown in Figure 3
  • color measurement data can be obtained from other sources such as one of device color profiles 139, or directly from measurement of a standardized color measurement target, such an IT8.7/3 target, corresponding to a particular color device such as a color printer.
  • an IT8.7/3 target typically contains a reasonably detailed sampling of all the CMYK (device-dependent) values at various levels of C, M, Y and K.
  • a custom target with uniform sampling ofthe C, M, Y and K channels can be used.
  • a spectrophotometer or colorimeter can be used to measure the XYZ value of each patch, and the XYZ value can be converted to the Jab value using the CIECAM02 model.
  • a table of color measurement data comprised of corresponding pairs of CMYK and Jab values is created.
  • device IT/8 color data file 150 it is assumed that such a table of color measurement data is contained in device IT/8 color data file 150.
  • device IT/8 color data file 150 is accessed by color management module 141 and then super-grid interpolation 151 is applied to the color measurement data contained in device IT/8 color data file 150 to generate forward look-up table 152.
  • the CMY sampling grids are generally different on each level of K in the color measurement data of device IT/8 color data file 150, and therefore a technique of super-grid sampling is used in super-grid interpolation 151 in order to obtain a more accurate and smooth transformation when using forward look-up table 152.
  • the technique of super-grid sampling according to one embodiment ofthe present invention is discussed in more detail below.
  • Forward look-up table 152 is then sampled on a repeated basis using a predetermined sampling schedule in order to generate a list of CMYK-Jab data pairs with a desired spacing between sampled CMYK data points.
  • the list of CMYK-Jab data pairs is referred to herein as "J"-bucket data table 154, and its construction and use are discussed in more detail below.
  • the list of CMYK- Jab data pairs contained in "J"-bucket data table 154 is then sampled using determined Jab target points to create inverse look-up table 158 by using nearby point selection and interpolation 156.
  • nearby point selection and interpolation 156 populates inverse look-up table 158 in a specific predetermined order and, for each table entry to be populated, determines an appropriate interpolated device-dependent (CMYK) value to correspond to the device-independent (Jab) target value ofthe table entry.
  • CYK device-dependent
  • This determination is made according to the present invention by using a scattered data approach in which a predetermined number of neighboring interpolation points are selected from "J" bucket table 142 based on the target device-independent data point and then a particular form of weighted interpolation is utilized on the selected neighboring interpolation points.
  • the present invention has the advantage of smooth blending of points on the one hand, and on the other hand of retaining a reasonably small number of neighboring interpolation points so that dynamic run-time computation does not become overly expensive. Accordingly, the present invention generates a more accurate forward look-up table 152 and inverse look-up table 158 from color measurement data in a dynamic run-time environment without excessive use of computational resources.
  • the foregoing techniques of selecting neighboring interpolation points and of performing a weighted interpolation on such selected points are discussed in more detail below.
  • FIGs 4A and 4B are block diagrams which depict the use of forward look-up table 152 and inverse look-up table 158 which were generated by color management module 141 as shown in Figure 3.
  • forward look-up table 152 is used to convert device-dependent image data 160 (in CMYK), such as data corresponding to an image that is in the color space of a color printer, to device-independent image data 162 (in Jab), such as image data in a standardized device-independent color space.
  • Figure 4B depicts the use of inverse look-up table 158 to convert device-independent image data 164 (in Jab), such as data corresponding to an image that is in a standardized device-independent color space, to device-dependent image data 166 (in CMYK), such as image data in the color space of a color printer.
  • the look-up tables that are created in on a dynamic, as-needed basis by color management module 141 can be immediately used by color management module 141 to perform color processing on color image data, such as to prepare the image data for printing on a color printer corresponding to the look-up tables.
  • Figure 5 is a flowchart for explaining an overall example ofthe implementation ofthe present invention to dynamically generate look-up tables based on color measurement data for a color printer, and then to use the generated inverse look-up table to transform image data to device-dependent image data for printing on the color printer.
  • step S501 color measurement data is obtained in step S501, the color measurement data corresponding in this example to a color printer.
  • the color measurement data can be obtained from device IT/8 color data file 150, or from another source.
  • step S502 a forward look-up table is generated by using a super-grid interpolation on the color measurement data. The details of step S502 are explained in more detail below with respect to Figures 6 and 7.
  • a "J" bucket data table is then generated in step S503 by applying a predetermined sampling schedule to repeatedly sample the generated forward look-up table. The details of step S503 are explained in more detail below with respect to Figures 8 and 9.
  • An inverse look-up table is then generated by using a scattered-data interpolation in which a predetermined number of neighboring data points are selected for each target device-independent data point according to certain criteria, and then the selected neighboring data points are weight interpolated to obtain the corresponding target device-dependent data point value.
  • the details of step S504 are explained in more detail below with respect to Figures 10 through 13.
  • step S505 the generated inverse look-up table is used to transform image data into device-dependent image data by applying a modified cubic interpolation for neighboring values obtained from the inverse look-up table.
  • the modified technique is used because ofthe fact that the spacing ofthe a and b components in the inverse look-up table depends on the given value of J.
  • Equation 1 [0047] Then the interpolant device-dependent value is defined by the formula shown below in Equation 2, where the equation should be interpreted as a vector equation, because there are 4 components, C, M, Y, K. The process then ends at step S506.
  • CMYK (1 - wj) * (1 - wa 0 ) *(1 - wb 0 ) * LUT(i,j 0 ,k 0 ) + (1- wj)*(l- wa 0 )*wb 0 *LUT(i,j 0 ,k o + 1) + (1- wj)*wa 0 *(1- wb 0 )*LUT(i,j 0 + l,k 0 ) + (1 - wj) * wa 0 * wb 0 * LUT(i,j 0 + U 0 + 1) + wj*(l-wa)*(l-wb x )*LUT(i+l,j x ,k x ) + wj* ⁇ - wa l )*wb ⁇ *LUT(i+ ⁇ ,j x ,k + 1) + wj * wa ⁇ * (1 - wb x ) * LUT ⁇
  • the super-grid interpolation ofthe color measurement data table starts by choosing a target device- dependent data point corresponding to an entry ofthe forward look-up table, and then determining an upper black component value (K) and a lower black component value (K) based on a predetermined spacing with respect to the black component value ofthe target device-dependent data point (step S601).
  • the upper black component value corresponds to the nearest, higher K-level of data points in the color measurement data table which are immediately above the black component value ofthe target device-dependent data point.
  • the lower black component value corresponds to the nearest, lower K-level of data points in the color measurement data which are immediately below the black component value ofthe target device-dependent data point.
  • step S602 the color measurement data table is accessed in order to obtain an appropriate selection of data points at the K-levels corresponding to the upper and lower black component values.
  • An illustration ofthe aforementioned K-levels in the color measurement data table is provided in Figure 7. As seen in Figure 7, upper black component value 180 and lower black component value 170 are shown within the color measurement data table of device IT/8 color data file 150. It can be seen that the spacing ofthe CMY data points at these different K-levels are different because the CMY sampling grids ofthe color target used to create the color measurement data table are generally different on each level of K.
  • Device- dependent data target point 200 is shown to be spaced between the K-levels, and CMY data points 201 and 202 are shown to reside at upper black component value 180, while CMY data points 203, 204, 205 are shown to reside at lower black component value 180, within the color measurement data table.
  • end points are also shown at each ofthe K-levels.
  • an upper set of neighboring device-dependent data points (201, 202, 203) are selected from the color measurement data table which are within the vicinity of device-dependent target data point 200 at upper black component value 180, and a lower set of device-dependent data points (204, 205) are selected which are within the vicinity of device- dependent target data point 200 at lower black component value 170 (step S603).
  • the number of data points selected within the vicinity of device- dependent target data point 200 can be determined by a preset number of nearest data points, by a restricted range within CMY space from which the data points are selected, or in some other manner.
  • a super-grid is created by making a super-set of all selected data points at both the upper and lower K-levels.
  • a first new set of device-dependent data points is created at the K-level for upper black component value 180, each new data point having a black component value equal to upper black component value 180 and having a combination of color component values corresponding to a respective one ofthe selected lower set of device-dependent data points.
  • the new upper data points correspond to lower device-dependent data points 204, 205.
  • a second new set of device- dependent data points is created at the K-level for lower black component value 170, each new data point having a black component value equal to lower black component value 170 and having a combination of color component values corresponding to a respective one ofthe selected upper set of device- dependent data points.
  • the new lower data points correspond to upper device-dependent data points 201, 202, 203. Accordingly, in the example of Figure 7, a super-set of seven device- dependent data points (including the end points) will be used at each K-level to determine an interpolated device-independent (Jab) value for the device- dependent target data point 200.
  • Jab device-independent
  • only the originals ofthe selected upper and lower sets of device-dependent data points have corresponding device-independent (Jab) values in the color measurement data table.
  • the number of "super-set" data points shown in Figure 7 is for illustrative purposes, and it should be appreciated that a different number (other than seven) of data points can be used as a super-set at each K-level.
  • step S606 For each of the first new set of device-dependent data points at upper black component level 180, an interpolation is performed between the device-independent (Jab) component values corresponding to the existing selected upper set of device-dependent data points, in order to obtain an interpolated device-independent data point for the new device-dependent data point at upper black component level 180 (step S606).
  • step S607 For each of the second new set of device-dependent data points at lower black component level 170, an interpolation is performed between the device- independent (Jab) component values corresponding to the existing selected lower set of device-dependent data points, in order to obtain an interpolated device-independent data point for the new device-dependent data point at lower black component level 170 (step S607).
  • the interpolation method performed in steps S606 and S607 is a three-dimensional tetrahedral interpolation.
  • CMYK- Jab data point pairs are now available at the K-level immediately above device-dependent target data point 200, and a super-set of CMYK- Jab data point pairs are now available at the K- level immediately below device-dependent target data point 200, wherein each set of seven data point pairs are aligned with respect to each other in CMY space, thereby accounting for the differences in the spacing ofthe CMY sampling grids at each K-level inherent in the color measurement data from the color measurement target.
  • an interpolated device-independent data point is calculated for device-dependent target data point 200 by performing an interpolation between the super-set of CMYK- Jab data point pairs at the upper K-level and the superset of CMYK-Jab data point pairs at the lower K-level (step S608).
  • the interpolation method performed in step S608 is a four- dimensional tetrahedral interpolation. The process then ends in step S609.
  • FIG. 8 is a flowchart which explains in more detail step S503 of Figure 5 in which the "J" bucket data table is generated.
  • step S801 a predetermined sampling schedule is applied to repeatedly sample the forward look-up table generated in step S502, thereby obtaining a device-independent (Jab) data point corresponding to each sampled device-dependent data point according to the sampling schedule.
  • Figure 9 depicts an example of a scheduling sample that may be used according to one embodiment ofthe invention during the generation ofthe "J" bucket data table.
  • column 210 represents the lightness component (K) ofthe device-dependent (CMYK) data points
  • column 211 represents the color components ofthe device-dependent (CMYK) data points
  • column 212 represents the desired sampling step according to the ranges provided under columns 210 and 211.
  • the spacing ofthe sample points is varied depending on a given location in the lightness range (K) and the chroma range (CMY). It can be seen in Figure 9 that sampling in the first 20% ofthe lightness range is more frequent than in the last 55% ofthe lightness range.
  • the sampling step frequency is every 1% for data points having a K value in the first 20% ofthe lightness range and CMY values in the first 10% ofthe chroma range.
  • the sampling step frequency is every 10% for data points having a K value beyond 45% ofthe lightness range, regardless ofthe CMY values.
  • step S802 the forward look-up table generated in step S502 is further repeatedly sampled to obtain a device-independent (Jab) data point corresponding to each sampled device-dependent data point along the primary color (CMY) and secondary color (RGB) ranges.
  • the sampling step for this sampling of primary and secondary colors is every 1% from 0% to 100%.
  • each pair of sampled device-dependent data point and corresponding device-independent data point obtained in steps S801 and S802 are placed into the "J" bucket data table (step S803).
  • the "J" bucket data table is comprised of CMYK- Jab data pairs obtained from the generated forward look-up table by using desired sampling steps within the forward look-up table.
  • the "J" bucket data table can then be used in an efficient manner during generation ofthe inverse look-up table.
  • the maximum and minimum device-independent chroma values (a and b) of all sampled device-independent data points is stored for each level of lightness (J).
  • the stored chroma values are stored in a 2-dimensional array ab_bounds[101][4], so that for each 0 ⁇ J ⁇ 100:
  • ab_bounds[J][0] the point in the J-bucket with maximum a on this J level
  • ab_bounds[J][l] the point in the J-bucket with minimum a on this J level
  • ab_bounds[J][2] the point in the J-bucket with maximum b on this J level
  • ab_bounds[J][3] the point in the J-bucket with minimum b on this J level.
  • Figure 1 is a flowchart for providing a detailed explanation of an order of table population which is used during step S504 of generating an inverse look-up table as shown in Figure 5.
  • the calculation ofthe device- dependent data point values entered into the populated table entries is explained in detail with respect to Figures 12 and 13.
  • Figure 11 generally depicts a "path" ofthe order of population ofthe inverse look-up table. As seen in Figure 11, data points are populated from the center, then up the J-axis, then outward along the a-axis, and finally outward along the b-axis.
  • the populated data point 217 depicted in Figure 11 illustrates that all data points having a J-value less than point 215, an a-value less than point 216, and a k-value less than point 217 have already been populated.
  • step SI 001 the center ofthe inverse look-up table is populated with a corresponding device-dependent value.
  • the example of an inverse look-up table described herein has 17 entry points for each color component.
  • the (i, 8, 8) entry points are populated, where 1 ⁇ i ⁇ 16, in the order of increasing i-values.
  • step S1003 all table entries corresponding to device-independent data points along the negative-a axis are populated.
  • the negative a-axis ofthe inverse look-up table (i, j, 8) where 0 ⁇ j ⁇ 7, in the order of decreasing j.
  • step SI 004 all table entries corresponding to device-independent data points along the positive-a axis are populated.
  • the positive a-axis ofthe inverse look-up table (i, j, 8) where 9 ⁇ j ⁇ 16, in the order of increasing j.
  • step SI 005 all table entries corresponding to device-independent data points outward along the negative-b axis are populated.
  • O ⁇ i ⁇ 16, O ⁇ j ⁇ 16 populate all points having negative-b values ofthe inverse look-up table (i, j, k) where 0 ⁇ k ⁇ 7, in the order of decreasing k.
  • step SI 006 all table entries corresponding to device-independent data points outward along the positive-b axis are populated.
  • step SI 006 In particular, for each O ⁇ i ⁇ 16, O ⁇ j ⁇ 16, populate all points having positive-b values ofthe inverse look-up table (i, j, k) where 9 ⁇ k ⁇ 16, in the order of increasing k. The process then ends in step SI 007.
  • FIG. 12 is a flowchart for explaining the calculation ofthe device- dependent data point values entered into the populated table entries during the generation of an inverse look-up table shown in step S504 of Figure 5.
  • a device-independent data point value is determined for a target entry ofthe inverse look-up table based on the stored maximum and minimum chroma values. This is because, as mentioned above with respect to step S804 of Figure 8, the chroma range (a,b) ofthe color printer gamut varies with each lightness level (J). So, in accordance with the population order discussed above, each particular device-independent target value is determined according to the particular location ofthe table entry being populated. In particular, for a given (i j,k), where O ⁇ i j,k ⁇ 16, the corresponding Jab value os given by Equation 3 set forth below.
  • a range of lightness (J) values is determined based on the lightness (J) value ofthe target Jab point value (step SI 202).
  • the goal is to find a predetermined number of neighboring points in the "J" bucket data table near the target Jab point in each ofthe 8 coordinate octants.
  • the predetermined number of neighboring points is eight, one for each octant, although other numbers can be used. Accordingly, each data point pair in the J-bucket data table having a device-independent data point J- value within the determined range of lightness (J) values is identified (step SI 203).
  • the determined range is J-3 to J+3, where J is the lightness value ofthe target Jab point value.
  • J is the lightness value ofthe target Jab point value.
  • other values of determined J-range can be used, and the J-range can be either predetermined or determined "on-the-fly" in real time.
  • Figure 13 is a diagram spatially depicting device-independent data points (222 to 229) selected from the J-bucket data table which are within the determined range of lightness (J) values, along with their respective locations in the eight Jab coordinate octants surrounding target Jab point value 221.
  • one nearest data point to target Jab point value 221 in each octant is selected for use in interpolation to calculate a device-dependent data value corresponding to target Jab point value 221.
  • the data point pairs from the "J" bucket data table in each of these ranges can be identified initially prior to the beginning ofthe first search, so that they are readily available for all subsequent searches.
  • Jab point it is first checked if the range of particular J values has been constructed previously. If not, then the range is constructed by a brute force search through the whole "J" bucket data table, and the result is stored so it can be re-used later when another target Jab point with the same J value occurs.
  • the tolerance level (TOL) is preferably 0.05 ofthe maximum device value, which is 255, in each ofthe C, M, Y, K channels, although other values for TOL can be used, and the TOL value can be dynamically determined "on-the-fly" in real time. More precisely, the following condition of Equation 4 must also be satisfied in step SI 203:
  • the smaller tolerance on the K channel calls for greater smoothness in this channel. If not all eight points (one from each octant) can be found, then the selection process of step SI 203 is repeated with a higher TOL that is 0.05 higher than the previous one, but with the extra condition that if a point has already been chosen in the octant from the previous iteration, it will not be replaced (even if the current point may be closer in distance, the smaller TOL is favored). If again not all eight points can be found, the process of step S1203 is repeated with a higher TOL until TOL exceeds 0.95. At the end ofthe process, we will have possibly from 1 to eight points chosen.
  • the calculated device-dependent data value (CMYK) is then entered into the target entry ofthe inverse look-up table in correspondence with the target Jab point value (step SI 205). The process then ends at step SI 206. In this manner, all table entries ofthe inverse look-up table are populated in a predetermined order with device-dependent (CMYK) values.
  • the invention provides a way to benefit from: (1) the advantages of scattered data interpolation methods, which include robustness to errors of individual data points, and freedom from any assumption regarding the geometric arrangement of points; and (2) the advantage of efficiency of computation, which involves a relatively small number of interpolation points.

Abstract

Creating a look-up table which converts color image data from a device-independent color space to a device-dependent color space, by determining a range of lightness values corresponding to a lightness value of a target data point in device-independent color space, searching a predetermined set of data points in device-independent color space to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device-dependent component values within a predetermined tolerance level of the component values of a previously-determined device-dependent data point, performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space, and entering the interpolated device-dependent data point into a look-up table entry corresponding to the device-independent target data point.

Description

DYNAMIC GENERATION OF COLOR LOOK-UP TABLES
BACKGROUND OF LTHE INVENTION
Field OfThe Invention
[0001] The present invention relates to a color management system for dynamically generating, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device-independent color spaces.
Description OfThe Related Art
[0002] Typically, color management systems rely on predetermined look-up tables for the conversion of color image data between device-dependent and device-independent color spaces. Such predetermined look-up tables are often created by the developer of a color management module for a given color device, such as a printer. Accordingly, a user is generally unable to modify them or update them if the color characteristics ofthe color device are different from, or have changed from, the representation ofthe color device by the look-up tables.
[0003] In order to generate a forward look-up table for converting from device-dependent to device-independent color space, an IT8.7/3 target containing CMYK patches is widely used in the art. The CMYK patches consist of sampling ofthe CMYK space in a well-defined manner so that a rectangular grid (with non-uniform spacing in C, M, Y and K) is formed. Each patch is then measured with a colorimeter or spectrophotometer. The measurements, which are typically in CIEXYZ values, then form a Look-Up Table (LUT), with which an empirical model ofthe printer can be built using an interpolation method of one's choice, resulting in the forward look-up table.
[0004] However, the inversion ofthe printer model to generate an inverse look-up table for converting from device-independent to device-dependent color space presents more difficulties. Given an input color in CIELAB or more generally, a color appearance space, there is a question of whether this color is within the printer gamut. There is also the issue regarding the arrangement of points in the color appearance space. While the CMYK values can be arranged to fall on a rectangular grid, as is done in the IT8.7/3 target, the same cannot be said ofthe resulting printed colors as they are situated in the color appearance space. In general, they are scattered in the color appearance space with no particular pattern.
[0005] In this regard, there are generally two known approaches to the inversion problem regarding scattered points. One approach is to use a geometric subdivision ofthe printer gamut using elementary 3-dimensional solids, such as tetrahedra. A subdivision ofthe printer gamut in the device- independent (color appearance) space can be induced from the corresponding subdivision ofthe device-dependent (CMYK) space. This approach has the advantage of computational simplicity. In the case of a tetrahedron, only four points are used in an interpolation. On the other hand, the result depends heavily on a just few points, which means that a measurement error will have a significant deleterious effect on the result. In addition, the interpolant also tends to be not very smooth because ofthe low number of points involved.
[0006] The second known approach does not assume any subdivision at all, but is instead based on the technique of scattered data interpolation. A classical example is the technique of Shepard interpolation, or inverse weighted method. In this method, several points surrounding the input point are chosen and each assigned a weight, usually inversely proportional to the distance, and the interpolant is taken as the weighted average ofthe neighboring points. In this approach, the choice of neighboring points is paramount to performance ofthe result. While too few neighboring points would render the interpolant inaccurate and non-smooth, too many points would impose a high computational cost, as the weights are typically non-linear functions and costly to compute, thereby rendering the second approach less feasible in a dynamic, run-time environment.
SUMMARY OF LTHE INVENTION
[0007] The present invention addresses the foregoing problems by providing a color management system which dynamically generates, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device- independent color spaces, by using fewer interpolation points, but still resulting in a smooth interpolant.
[0008] According to one embodiment ofthe invention, a look-up table is created which converts color image data from a device-independent color space to a device-dependent color space. The look-up table is created by determining a range of lightness values corresponding to a lightness value of a target data point in device-independent color space, searching a predetermined set of data points in device-independent color space to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device- dependent component values within a predetermined tolerance level ofthe component values of a previously-determined device-dependent data point, performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space, and entering the interpolated device-dependent data point into a look-up table entry corresponding to the device-independent target data point.
[0009] Preferably, the look-up table is populated in a particular order starting with a black data point at the center ofthe table, populating the rest ofthe neutral axis, populating outward along the a-axis, and then populating all data points outward along the b-axis. Also, the predetermined set of data points is preferably obtained from a list of data point pairs, each data point pair containing a device-independent data point and a corresponding device- dependent data point, where the list of data points is obtained by sampling a forward look-up table according to a predetermined schedule. Also preferably in the searching step, the tolerance level is increased until eight data points are selected.
[0010] By virtue of this arrangement, a color management system is provided which dynamically generates, based on provided color measurement data, an inverse transformation look-up table for transforming color image data from a device-independent to a device-dependent color space, by using fewer number of interpolation points while still resulting in a smooth interpolant.
[0011] According to another embodiment ofthe invention, a look-up table is created which converts color image data from a device-dependent color space to a device-independent color space. The look-up table is created by determining an upper black component value which is a predetermined amount above a target black component value of a device-dependent target data point, and a lower black component value which is a predetermined amount below the target black component value ofthe device-dependent target data point, accessing a color measurement data table which contains device- independent component values in respective correspondence to device- dependent data points, selecting, from the color measurement data table, an upper set of device-dependent data points which are within the vicinity ofthe device-dependent target data point at the upper black component value, and a lower set of device-dependent data points which are within the vicinity ofthe device-dependent target data point at the lower black component value, creating a first new set of device-dependent data points, each of which having a black component value equal to the upper black component value and having a combination of color component values corresponding to a respective one of the selected lower set of device-dependent data points, creating a second new set of device-dependent data points, each of which having a black component value equal to the lower black component value and having a combination of color component values corresponding to a respective one ofthe selected upper set of device-dependent data points, interpolating, for each ofthe first new set of device-dependent data points, device-independent component values that correspond to immediately adjacent device-dependent data points from the selected upper set of device-dependent data points, to obtain an interpolated device-independent data point at the upper black component level, interpolating, for each ofthe second new set of device-dependent data points, between device-independent component values that correspond to immediately adjacent device-dependent data points from the selected lower set of device- dependent data points, to obtain an interpolated device-independent data point for the corresponding new device-dependent data points, and interpolating between the device-independent component values which correspond to each ofthe selected upper set of device-dependent data points, the first new set of device-dependent data points, the selected lower set of device-dependent data points and the second new set of device-dependent data points, to obtain an interpolated device-independent data point corresponding to the device- dependent target data point.
[0012] Preferably, the color measurement data table is based on device- independent color data measured from a device-dependent colorant test target. The first and second interpolation steps are preferably performed by using a three-dimensional tetrahedral interpolation method. The third interpolation step is preferably performed by using a four-dimensional tetrahedral interpolation method.
[0013] By virtue of this arrangement, a color management system is provided which dynamically generates, based on provided color measurement data, a forward transformation look-up table for transforming color image data from a device-independent to a device-dependent color spaces by using fewer interpolation points but still resulting in a smooth interpolant.
[0014] According to yet another embodiment ofthe invention, a color management method is provided for converting color image data between a device-independent color space and a device-dependent color space. The method includes the steps of generating a forward look-up table which converts color image data from the device-dependent color space to the device-independent color space, the forward look-up table being generated based on measured device-independent component values corresponding to device-dependent color target samples, and sampling the forward look-up table for device-dependent data points according to a sampling schedule, to obtain corresponding device-independent data points, and placing the device- dependent data points and corresponding device-independent data points in a data pair Ust. The method further includes generating an inverse look-up table which converts color image data from the device-independent color space to the device-dependent color space, by, for each one of a plurality of target data points in device-independent color space, determining a range of lightness values corresponding to a lightness value for each target data point, searching the data pair list to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device-dependent component values within a predetermined tolerance level ofthe component values of a previously- determined device-dependent data point, performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space, and entering the interpolated device-dependent data point into an entry in the inverse look-up table corresponding to the device-independent target data point. Lastly, the method also includes converting a device-independent target data point to the device-dependent color space by accessing the nearest device-independent data point entries in the inverse look-up table relative to the device-independent target data point, and performing a cubic interpolation on the device-dependent data points obtained from the inverse look-up table which correspond to the nearest device-independent data point entries.
[0015] Preferably, the look-up table is populated in a particular order starting with a black data point at the center ofthe table, populating the neutral axis, populating outward along the a-axis, and then populating all data points outward along the b-axis. Also, the list of data point pairs is preferably obtained by sampling a forward look-up table according to a predetermined graduated schedule. Also preferably in the searching step, the predetermined tolerance level is increased until eight data points are selected.
[0016] By virtue of this arrangement, a color management system is provided which dynamically generates, based on provided color measurement data, an inverse transformation look-up table for transforming color image data from a device-independent to a device-dependent color space, by using fewer number of interpolation points but still resulting in a smooth interpolant.
[0017] This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding ofthe 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
[0018] Figure 1 is a representative view of a computing environment in which the present invention may be implemented.
[0019] Figure 2 is a detailed block diagram for explaining the internal architecture ofthe computer equipment shown in the computing environment of Figure 1.
[0020] Figure 3 is a block diagram for explaining the operation of a color management module according to one embodiment ofthe present invention.
[0021] Figures 4A and 4B are block diagrams for explaining the use of lookup tables which are generated by the color management module shown in Figure 3.
[0022] Figure 5 is a flowchart for providing a detailed explanation of one embodiment ofthe present invention.
[0023] Figure 6 is a flowchart for providing a detailed explanation ofthe step of generating a forward look-up table shown in Figure 5. [0024] Figure 7 is a diagram for depicting the use of a super-grid in the generation of a forward look-up table according to one embodiment ofthe present invention.
[0025] Figure 8 is a flowchart for providing a detailed explanation ofthe step of generating a table of data points shown in Figure 5.
[0026] Figure 9 is a diagram which depicts a sampling schedule in the generation of a table of data points according to one embodiment ofthe present invention.
[0027] Figure 10 is a flowchart for providing a detailed explanation of an order of table population during the step of generating an inverse look-up table shown in Figure 5.
[0028] Figure 11 is a graph which depicts the order of table population during the step of generating an inverse look-up table shown in Figure 5.
[0029] Figure 12 is a flowchart for providing a detailed explanation of determining a device-dependent value for a populated data point during the step of generating an inverse look-up table shown in Figure 5.
[0030] Figure 13 is a block diagram for explaining the selection of neighboring data points for use in the determination of a device-dependent value for a populated data point during the step of generating an inverse lookup table shown in Figure 5.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0031] The present invention is generally directed to a color management system which dynamically generates, based on provided color measurement data, forward and inverse transformation look-up tables for transforming color image data between device-dependent and device-independent color spaces, by using fewer number of interpolation points but still resulting in a smooth interpolant. In this manner, high-quality transformation look-up tables can be generated from measurement data when needed, without resulting in the excessive use of computational resources. The present invention may be implemented in an color management module, such as in a color management software application module for use in a general purpose computer. It can be appreciated that the present invention is not limited to the aforementioned embodiments and that the present invention may be implemented in other forms as well, such as in a programmed color management device.
[0032] Figure 1 is a view showing the external appearance of a representative computing system including computing equipment, peripherals and digital devices which may be used in connection with the practice ofthe present invention. Computing equipment 40 includes host processor 41 which comprises a personal computer (hereinafter "PC"), preferably a personal computer having a windows-based operating system, although it may be another type computer having a non- windows-based operating system. Provided with computing equipment 40 are color monitor 43 including display screen 42, keyboard 46 for entering text data and user commands, and pointing device 47. Pointing device 47 preferably comprises a mouse for pointing and for manipulating objects displayed on display screen 42.
[0033] Computing equipment 40 includes a computer-readable memory medium such as computer fixed disk 45 and/or floppy disk drive 44. Floppy disk drive 44 provides a means whereby computing equipment 40 can access information, such as image data, computer-executable process steps, application programs, etc. stored on removable memory media. A similar CD-ROM interface (not shown) may be provided for computing equipment 40 through which computing equipment 40 can access information stored on removable CD-ROM media.
[0034] Printer 50 is a printer, preferably a color bubble jet printer, which forms color images on a recording medium such as paper or transparencies or the like. The invention is usable with other printers, however, so long as the printer is capable of being interfaced to computing equipment 40. In addition, digital color scanner 70 is provided for scanning documents and images into computing equipment 40 and digital color camera 60 is provided for sending digital images to computing equipment 40. Of course, computing equipment 40 may acquire digital image data from other sources such as a digital video camera or from a local area network or the Internet via network interface bus 80.
[0035] Figure 2 is a detailed block diagram showing the internal architecture of host processor 41 of computing equipment 40. As shown in Figure 2, host processor 41 includes central processing unit (CPU) 113 which interfaces with computer bus 114. Also interfacing with computer bus 114 are fixed disk 45, network interface 109, random access memory (RAM) 116 for use as main memory, read only memory (ROM) 117, floppy disk interface 119, display interface 120 to monitor 43, keyboard interface 122 to keyboard 46, mouse interface 123 to pointing device 47, scanner interface 124 to scanner 70, printer interface 125 to printer 50, and digital camera interface 126 to digital camera 60.
[0036] Main memory 116 interfaces with computer bus 114 so as to provide RAM storage to CPU 113 during execution of software programs such as an operating system, application programs and device drivers. More specifically, CPU 113 loads computer-executable process steps from fixed disk 45, another storage device, or some other source such as a network, into a region of main memory 116. CPU 113 then executes the stored process steps from main memory 116 in order to execute software programs such as an operating system, application programs and device drivers. Data such as color images can be stored in main memory 116, where the data can be accessed by CPU 113 during the execution of computer-executable process steps which use or alter the data.
[0037] As also shown in Figure 2, fixed disk 45 contains operating system 130, which is preferably a windows-based operating system although other types of operating systems may be used, application programs 131, such as image processing applications that include a color management module, and plural device drivers, including a digital camera driver 132, monitor driver 133, printer driver 134, scanner driver 135, and other device drivers 136. Fixed disk 45 also includes image files 137, other files 138, device color profiles 139, which are discussed in more detail below, device IT8 color data files 140, which are also discussed in more detail below, and color management module 141 in which the present invention may be implemented. The functions of color management module 141 are preferably provided in the form of computer-executable process steps. As mentioned above, the functions of color management module 141 maybe alternatively integrated in other forms, such as a preprogrammed dedicated color management device, or an application program for performing processing of color image data, such as one of application programs 131. Finally, also included on fixed disk 45 is "J" bucket table 142 which is used in the implementation ofthe invention during the generation of an inverse, device-independent to device-dependent, transformation look-up table. The details of "J" bucket table 142 are discussed in more detail below.
[0038] Figure 3 is a block diagram which depicts the implementation ofthe invention in a color management module according to one embodiment ofthe invention. As seen in Figure 3, a color management module 141 is used to generate forward (device-dependent to device-independent) look-up table 152 and inverse (device-independent to device-dependent) look-up table 158 based on color measurement data contained in device IT/8 color data file 150. In this regard, although device IT/8 color data file 150 is shown in Figure 3, color measurement data can be obtained from other sources such as one of device color profiles 139, or directly from measurement of a standardized color measurement target, such an IT8.7/3 target, corresponding to a particular color device such as a color printer.
[0039] In the example of a printer, an IT8.7/3 target typically contains a reasonably detailed sampling of all the CMYK (device-dependent) values at various levels of C, M, Y and K. Alternatively, a custom target with uniform sampling ofthe C, M, Y and K channels can be used. After the target is printed, a spectrophotometer or colorimeter can be used to measure the XYZ value of each patch, and the XYZ value can be converted to the Jab value using the CIECAM02 model. In this manner, a table of color measurement data comprised of corresponding pairs of CMYK and Jab values is created. For purposes of explanation ofthe embodiment shown in Figure 3, it is assumed that such a table of color measurement data is contained in device IT/8 color data file 150.
[0040] As seen in Figure 3, device IT/8 color data file 150 is accessed by color management module 141 and then super-grid interpolation 151 is applied to the color measurement data contained in device IT/8 color data file 150 to generate forward look-up table 152. The CMY sampling grids are generally different on each level of K in the color measurement data of device IT/8 color data file 150, and therefore a technique of super-grid sampling is used in super-grid interpolation 151 in order to obtain a more accurate and smooth transformation when using forward look-up table 152. The technique of super-grid sampling according to one embodiment ofthe present invention is discussed in more detail below. [0041] Forward look-up table 152 is then sampled on a repeated basis using a predetermined sampling schedule in order to generate a list of CMYK-Jab data pairs with a desired spacing between sampled CMYK data points. The list of CMYK-Jab data pairs is referred to herein as "J"-bucket data table 154, and its construction and use are discussed in more detail below. The list of CMYK- Jab data pairs contained in "J"-bucket data table 154 is then sampled using determined Jab target points to create inverse look-up table 158 by using nearby point selection and interpolation 156. In this regard, nearby point selection and interpolation 156 populates inverse look-up table 158 in a specific predetermined order and, for each table entry to be populated, determines an appropriate interpolated device-dependent (CMYK) value to correspond to the device-independent (Jab) target value ofthe table entry. This determination is made according to the present invention by using a scattered data approach in which a predetermined number of neighboring interpolation points are selected from "J" bucket table 142 based on the target device-independent data point and then a particular form of weighted interpolation is utilized on the selected neighboring interpolation points. In this manner, the present invention has the advantage of smooth blending of points on the one hand, and on the other hand of retaining a reasonably small number of neighboring interpolation points so that dynamic run-time computation does not become overly expensive. Accordingly, the present invention generates a more accurate forward look-up table 152 and inverse look-up table 158 from color measurement data in a dynamic run-time environment without excessive use of computational resources. The foregoing techniques of selecting neighboring interpolation points and of performing a weighted interpolation on such selected points are discussed in more detail below.
[0042] Figures 4A and 4B are block diagrams which depict the use of forward look-up table 152 and inverse look-up table 158 which were generated by color management module 141 as shown in Figure 3. In Figure 4 A, it is seen that forward look-up table 152 is used to convert device-dependent image data 160 (in CMYK), such as data corresponding to an image that is in the color space of a color printer, to device-independent image data 162 (in Jab), such as image data in a standardized device-independent color space.
[0043] Similarly, Figure 4B depicts the use of inverse look-up table 158 to convert device-independent image data 164 (in Jab), such as data corresponding to an image that is in a standardized device-independent color space, to device-dependent image data 166 (in CMYK), such as image data in the color space of a color printer. In this manner, the look-up tables that are created in on a dynamic, as-needed basis by color management module 141 can be immediately used by color management module 141 to perform color processing on color image data, such as to prepare the image data for printing on a color printer corresponding to the look-up tables.
[0044] Figure 5 is a flowchart for explaining an overall example ofthe implementation ofthe present invention to dynamically generate look-up tables based on color measurement data for a color printer, and then to use the generated inverse look-up table to transform image data to device-dependent image data for printing on the color printer.
[0045] Turning to Figure 5, color measurement data is obtained in step S501, the color measurement data corresponding in this example to a color printer. As discussed above with respect to Figure 3, the color measurement data can be obtained from device IT/8 color data file 150, or from another source. Next, in step S502, a forward look-up table is generated by using a super-grid interpolation on the color measurement data. The details of step S502 are explained in more detail below with respect to Figures 6 and 7. A "J" bucket data table is then generated in step S503 by applying a predetermined sampling schedule to repeatedly sample the generated forward look-up table. The details of step S503 are explained in more detail below with respect to Figures 8 and 9. An inverse look-up table is then generated by using a scattered-data interpolation in which a predetermined number of neighboring data points are selected for each target device-independent data point according to certain criteria, and then the selected neighboring data points are weight interpolated to obtain the corresponding target device-dependent data point value. The details of step S504 are explained in more detail below with respect to Figures 10 through 13.
[0046] In step S505, the generated inverse look-up table is used to transform image data into device-dependent image data by applying a modified cubic interpolation for neighboring values obtained from the inverse look-up table. The modified technique is used because ofthe fact that the spacing ofthe a and b components in the inverse look-up table depends on the given value of J. In particular, if the input Jab has the J value lying between I and 1+1 level of the LUT, a value lying between jo and j0 + 1 on ith J-level, between
Figure imgf000018_0001
and ' j + 1 on the (i+l)st J-level (bearing in mind that the spacing of a and b in the LUT depends on the value of i), and b value lying between k0 and k0 + 1 on the ith J-level, kλ and k + 1 on the (i+l)st J-level, then we define weights according to Equation 1 set forth below, where J(i) denotes the J value ofthe ith grid point on the J-axis, a(ij) denotes the a value of the jth grid point on the a-axis at the ith J-level, and similarly b(i j) denotes the b value of the jth grid point on the b-axis at the ith J-level. wj = J - J(i) wa0 = a - a(i 0)
Figure imgf000018_0002
wb0 = b - b{i,k0) wbλ = b - b(i + \,kx )
Equation 1 [0047] Then the interpolant device-dependent value is defined by the formula shown below in Equation 2, where the equation should be interpreted as a vector equation, because there are 4 components, C, M, Y, K. The process then ends at step S506.
CMYK = (1 - wj) * (1 - wa 0) *(1 - wb 0) * LUT(i,j0 ,k0 ) + (1- wj)*(l- wa0)*wb0*LUT(i,j0,ko + 1) + (1- wj)*wa0 *(1- wb0)*LUT(i,j0 + l,k0) + (1 - wj) * wa0 * wb0 * LUT(i,j0 + U0 + 1) + wj*(l-wa)*(l-wbx)*LUT(i+l,jx,kx) + wj*{\- wal)*wbϊ *LUT(i+\,jx,k + 1) + wj * waλ * (1 - wbx ) * LUT{i + l,y, + 1, kx )
+ wj * waλ * wbx * LUT(i + \,jx + \,kx + 1)
Equation 2
[0048] The generation ofthe forward look-up table depicted in step S502 is explained in more detail in the flowchart of Figure 6. As seen in Figure 6, the super-grid interpolation ofthe color measurement data table (contained, for example, in device IT/8 color data file 150) starts by choosing a target device- dependent data point corresponding to an entry ofthe forward look-up table, and then determining an upper black component value (K) and a lower black component value (K) based on a predetermined spacing with respect to the black component value ofthe target device-dependent data point (step S601). The upper black component value corresponds to the nearest, higher K-level of data points in the color measurement data table which are immediately above the black component value ofthe target device-dependent data point. Similarly, the lower black component value corresponds to the nearest, lower K-level of data points in the color measurement data which are immediately below the black component value ofthe target device-dependent data point.
[0049] Next, in step S602, the color measurement data table is accessed in order to obtain an appropriate selection of data points at the K-levels corresponding to the upper and lower black component values. An illustration ofthe aforementioned K-levels in the color measurement data table is provided in Figure 7. As seen in Figure 7, upper black component value 180 and lower black component value 170 are shown within the color measurement data table of device IT/8 color data file 150. It can be seen that the spacing ofthe CMY data points at these different K-levels are different because the CMY sampling grids ofthe color target used to create the color measurement data table are generally different on each level of K. Device- dependent data target point 200 is shown to be spaced between the K-levels, and CMY data points 201 and 202 are shown to reside at upper black component value 180, while CMY data points 203, 204, 205 are shown to reside at lower black component value 180, within the color measurement data table. In addition, end points are also shown at each ofthe K-levels.
[0050] Returning to Figure 6, an upper set of neighboring device-dependent data points (201, 202, 203) are selected from the color measurement data table which are within the vicinity of device-dependent target data point 200 at upper black component value 180, and a lower set of device-dependent data points (204, 205) are selected which are within the vicinity of device- dependent target data point 200 at lower black component value 170 (step S603). The number of data points selected within the vicinity of device- dependent target data point 200 can be determined by a preset number of nearest data points, by a restricted range within CMY space from which the data points are selected, or in some other manner. [0051] Next, a super-grid is created by making a super-set of all selected data points at both the upper and lower K-levels. In particular, in step S604, a first new set of device-dependent data points is created at the K-level for upper black component value 180, each new data point having a black component value equal to upper black component value 180 and having a combination of color component values corresponding to a respective one ofthe selected lower set of device-dependent data points. In the example depicted in Figure 7, the new upper data points correspond to lower device-dependent data points 204, 205. In a similar manner, in step S605, a second new set of device- dependent data points is created at the K-level for lower black component value 170, each new data point having a black component value equal to lower black component value 170 and having a combination of color component values corresponding to a respective one ofthe selected upper set of device- dependent data points. In the example depicted in Figure 7, the new lower data points correspond to upper device-dependent data points 201, 202, 203. Accordingly, in the example of Figure 7, a super-set of seven device- dependent data points (including the end points) will be used at each K-level to determine an interpolated device-independent (Jab) value for the device- dependent target data point 200. Of course, only the originals ofthe selected upper and lower sets of device-dependent data points have corresponding device-independent (Jab) values in the color measurement data table. Of course, the number of "super-set" data points shown in Figure 7 is for illustrative purposes, and it should be appreciated that a different number (other than seven) of data points can be used as a super-set at each K-level.
[0052] In this regard, for each ofthe first new set of device-dependent data points at upper black component level 180, an interpolation is performed between the device-independent (Jab) component values corresponding to the existing selected upper set of device-dependent data points, in order to obtain an interpolated device-independent data point for the new device-dependent data point at upper black component level 180 (step S606). Similarly, for each of the second new set of device-dependent data points at lower black component level 170, an interpolation is performed between the device- independent (Jab) component values corresponding to the existing selected lower set of device-dependent data points, in order to obtain an interpolated device-independent data point for the new device-dependent data point at lower black component level 170 (step S607). Preferably, the interpolation method performed in steps S606 and S607 is a three-dimensional tetrahedral interpolation.
[0053] In this manner, a super-set of CMYK- Jab data point pairs are now available at the K-level immediately above device-dependent target data point 200, and a super-set of CMYK- Jab data point pairs are now available at the K- level immediately below device-dependent target data point 200, wherein each set of seven data point pairs are aligned with respect to each other in CMY space, thereby accounting for the differences in the spacing ofthe CMY sampling grids at each K-level inherent in the color measurement data from the color measurement target.
[0054] Next, an interpolated device-independent data point is calculated for device-dependent target data point 200 by performing an interpolation between the super-set of CMYK- Jab data point pairs at the upper K-level and the superset of CMYK-Jab data point pairs at the lower K-level (step S608). Preferably, the interpolation method performed in step S608 is a four- dimensional tetrahedral interpolation. The process then ends in step S609. By virtue ofthe foregoing steps, a more accurate interpolated device-independent data point is obtained for each device-dependent target data point entry in the forward look-up table, thereby ensuring a more appropriate mapping from device-dependent color space (CMYK) to device-independent color space (Jab) when subsequently using the forward look-up table during color processing of image data. [0055] Figure 8 is a flowchart which explains in more detail step S503 of Figure 5 in which the "J" bucket data table is generated. In step S801, a predetermined sampling schedule is applied to repeatedly sample the forward look-up table generated in step S502, thereby obtaining a device-independent (Jab) data point corresponding to each sampled device-dependent data point according to the sampling schedule. In this regard, Figure 9 depicts an example of a scheduling sample that may be used according to one embodiment ofthe invention during the generation ofthe "J" bucket data table. As seen in Figure 9, column 210 represents the lightness component (K) ofthe device-dependent (CMYK) data points, column 211 represents the color components ofthe device-dependent (CMYK) data points, and column 212 represents the desired sampling step according to the ranges provided under columns 210 and 211. In this manner, the spacing ofthe sample points is varied depending on a given location in the lightness range (K) and the chroma range (CMY). It can be seen in Figure 9 that sampling in the first 20% ofthe lightness range is more frequent than in the last 55% ofthe lightness range. For example, the sampling step frequency is every 1% for data points having a K value in the first 20% ofthe lightness range and CMY values in the first 10% ofthe chroma range. In contrast, the sampling step frequency is every 10% for data points having a K value beyond 45% ofthe lightness range, regardless ofthe CMY values.
[0056] In step S802, the forward look-up table generated in step S502 is further repeatedly sampled to obtain a device-independent (Jab) data point corresponding to each sampled device-dependent data point along the primary color (CMY) and secondary color (RGB) ranges. Preferably the sampling step for this sampling of primary and secondary colors is every 1% from 0% to 100%. Next, each pair of sampled device-dependent data point and corresponding device-independent data point obtained in steps S801 and S802 are placed into the "J" bucket data table (step S803). Thus, the "J" bucket data table is comprised of CMYK- Jab data pairs obtained from the generated forward look-up table by using desired sampling steps within the forward look-up table. The "J" bucket data table can then be used in an efficient manner during generation ofthe inverse look-up table.
[0057] In addition to the sampled data point pairs mentioned above, the maximum and minimum device-independent chroma values (a and b) of all sampled device-independent data points is stored for each level of lightness (J). According to one embodiment ofthe invention, the stored chroma values are stored in a 2-dimensional array ab_bounds[101][4], so that for each 0<J<100:
ab_bounds[J][0] = the point in the J-bucket with maximum a on this J level ab_bounds[J][l] = the point in the J-bucket with minimum a on this J level ab_bounds[J][2] = the point in the J-bucket with maximum b on this J level ab_bounds[J][3] = the point in the J-bucket with minimum b on this J level.
[0058] These stored chroma values represent the chroma range at each level of lightness for the corresponding color device, and are subsequently used during the generation ofthe inverse look-up table. The process then ends at step S805.
[0059] Figure 1 is a flowchart for providing a detailed explanation of an order of table population which is used during step S504 of generating an inverse look-up table as shown in Figure 5. The calculation ofthe device- dependent data point values entered into the populated table entries is explained in detail with respect to Figures 12 and 13. Figure 11 generally depicts a "path" ofthe order of population ofthe inverse look-up table. As seen in Figure 11, data points are populated from the center, then up the J-axis, then outward along the a-axis, and finally outward along the b-axis. So, for example, the populated data point 217 depicted in Figure 11 illustrates that all data points having a J-value less than point 215, an a-value less than point 216, and a k-value less than point 217 have already been populated.
[0060] Turning to Figure 10, in step SI 001 the center ofthe inverse look-up table is populated with a corresponding device-dependent value. In particular, the example of an inverse look-up table described herein has 17 entry points for each color component. In such an example, the (0, 8, 8) entry ofthe inverse look-up table is populated with the CMYK value ofthe black point, which represents J=a=b=0 in the Euclidean distance ofthe Jab space. Of course, it should be appreciated that different-sized look-up tables are also supported by the present invention. For example, for a look-up table having 32 entry points for each color component, then the table entry (0,16,16) corresponds to J=a=b=0 in Jab space. Next, all table entries corresponding to device-independent data points along the neutral axis (a,b = 0) are populated (step SI 002). In particular, the (i, 8, 8) entry points are populated, where 1 <i≤ 16, in the order of increasing i-values. In step S1003, all table entries corresponding to device-independent data points along the negative-a axis are populated. In particular, for each O≤i≤ 16, populate the negative a-axis ofthe inverse look-up table (i, j, 8) where 0≤j≤7, in the order of decreasing j. In step SI 004, all table entries corresponding to device-independent data points along the positive-a axis are populated. In particular, for each O≤i≤ 16, populate the positive a-axis ofthe inverse look-up table (i, j, 8) where 9≤j≤ 16, in the order of increasing j.
[0061] Next, all table entries corresponding to device-independent data points outward along the negative-b axis are populated (step SI 005). In particular, for each O≤i≤ 16, O≤j≤ 16, populate all points having negative-b values ofthe inverse look-up table (i, j, k) where 0≤k≤7, in the order of decreasing k. Finally, all table entries corresponding to device-independent data points outward along the positive-b axis are populated (step SI 006). In particular, for each O≤i≤ 16, O≤j≤ 16, populate all points having positive-b values ofthe inverse look-up table (i, j, k) where 9≤k≤ 16, in the order of increasing k. The process then ends in step SI 007.
[0062] Figure 12 is a flowchart for explaining the calculation ofthe device- dependent data point values entered into the populated table entries during the generation of an inverse look-up table shown in step S504 of Figure 5. In step SI 201, a device-independent data point value is determined for a target entry ofthe inverse look-up table based on the stored maximum and minimum chroma values. This is because, as mentioned above with respect to step S804 of Figure 8, the chroma range (a,b) ofthe color printer gamut varies with each lightness level (J). So, in accordance with the population order discussed above, each particular device-independent target value is determined according to the particular location ofthe table entry being populated. In particular, for a given (i j,k), where O≤i j,k≤ 16, the corresponding Jab value os given by Equation 3 set forth below.
J = ι *100/16
Figure imgf000026_0001
Equation 3
[0063] Once the target Jab point value is determined for the particular table entry point, a range of lightness (J) values is determined based on the lightness (J) value ofthe target Jab point value (step SI 202). In general, The goal is to find a predetermined number of neighboring points in the "J" bucket data table near the target Jab point in each ofthe 8 coordinate octants. In the example discussed herein, the predetermined number of neighboring points is eight, one for each octant, although other numbers can be used. Accordingly, each data point pair in the J-bucket data table having a device-independent data point J- value within the determined range of lightness (J) values is identified (step SI 203). In the example discussed herein, the determined range is J-3 to J+3, where J is the lightness value ofthe target Jab point value. Of course, other values of determined J-range can be used, and the J-range can be either predetermined or determined "on-the-fly" in real time.
[0064] Figure 13 is a diagram spatially depicting device-independent data points (222 to 229) selected from the J-bucket data table which are within the determined range of lightness (J) values, along with their respective locations in the eight Jab coordinate octants surrounding target Jab point value 221. Preferably, one nearest data point to target Jab point value 221 in each octant is selected for use in interpolation to calculate a device-dependent data value corresponding to target Jab point value 221.
[0065] In addition, for maximum efficiency, the data point pairs from the "J" bucket data table in each of these ranges can be identified initially prior to the beginning ofthe first search, so that they are readily available for all subsequent searches. In detail, for any input Jab point, it is first checked if the range of particular J values has been constructed previously. If not, then the range is constructed by a brute force search through the whole "J" bucket data table, and the result is stored so it can be re-used later when another target Jab point with the same J value occurs.
[0066] Returning to Figure 12, ofthe data point pairs in the J-bucket data table having a device-independent data point J-value within the determined range of lightness (J) values (in step SI 203), only those data point pairs are selected which have corresponding device-dependent component (CMYK) values which are within a predetermined tolerance ofthe previously- determined CMYK value. This helps to control smoothness from point to point in the table entries ofthe inverse look-up table. In particular, the tolerance level (TOL) is preferably 0.05 ofthe maximum device value, which is 255, in each ofthe C, M, Y, K channels, although other values for TOL can be used, and the TOL value can be dynamically determined "on-the-fly" in real time. More precisely, the following condition of Equation 4 must also be satisfied in step SI 203:
I C of last populated point - C of point in question| < TOL *255 I M of last populated point - M of point in question| ≤ TOL *255 I Y of last populated point - Y of point in question| ≤ TOL *255 I K of last populated point - K of point in question| < TOL *255/2
Equation 4
[0067] In this regard, the smaller tolerance on the K channel calls for greater smoothness in this channel. If not all eight points (one from each octant) can be found, then the selection process of step SI 203 is repeated with a higher TOL that is 0.05 higher than the previous one, but with the extra condition that if a point has already been chosen in the octant from the previous iteration, it will not be replaced (even if the current point may be closer in distance, the smaller TOL is favored). If again not all eight points can be found, the process of step S1203 is repeated with a higher TOL until TOL exceeds 0.95. At the end ofthe process, we will have possibly from 1 to eight points chosen.
[0068] Next, in step SI 204, a weighted interpolation is performed on the device-dependent component values corresponding to the selected device- independent data points from step SI 203 in order to calculate a device- dependent data value corresponding to the target Jab point value. If only less than four data points are selected, the CMYK value corresponding to the closest point from the target Jab point value is used as the device-dependent data value (CMYK) corresponding to the target Jab point value. If the number of selected data points is from four to eight points, then we obtain the device- dependent data value (CMYK) is obtained by the Shepard interpolation method. In particular, if the ith chosen point has C, Mt YtK( as the CMYK value and P. = (J. , a ( ,bt ) as the Jab point in Jab space, and iO
corresponds to the point most distant from the input point P = (J,a,b) , then the device-dependent data value (CMYK) is obtained according to Equation 5, set forth below:
Z = || - .|| = /(J-J/.)2 + (α -α,)2 + (b -b1.)2 (Dn -D, W. = D k wκ C = ∑,. /CI.
Equation 5
[0069] The calculated device-dependent data value (CMYK) is then entered into the target entry ofthe inverse look-up table in correspondence with the target Jab point value (step SI 205). The process then ends at step SI 206. In this manner, all table entries ofthe inverse look-up table are populated in a predetermined order with device-dependent (CMYK) values. In particular, by judiciously choosing an optimal number of points from the eight neighboring octants, the invention provides a way to benefit from: (1) the advantages of scattered data interpolation methods, which include robustness to errors of individual data points, and freedom from any assumption regarding the geometric arrangement of points; and (2) the advantage of efficiency of computation, which involves a relatively small number of interpolation points.
[0070] The invention has been described with respect to particular illustrative embodiments. It is to be understood that the invention is not limited to the above-described embodiments and that various changes and modifications may be made by those of ordinary skill in the art without departing from the spirit and scope ofthe invention.

Claims

WHAT IS CLAIMED IS:
1. A method for creating a look-up table which converts color image data from a device-independent color space to a device-dependent color space, the method comprising the steps of: determining a range of lightness values corresponding to a lightness value of a target data point in device-independent color space; searching a predetermined set of data points in device-independent color space to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device-dependent component values within a predetermined tolerance level ofthe component values of a previously-determined device-dependent data point; performing a weighted interpolation on the device-dependent component values corresponding to the selected set of data points to calculate an interpolated data point which is in device-dependent color space; and entering the interpolated device-dependent data point into a lookup table entry corresponding to the device-independent target data point.
2. A method according to Claim 1, wherein the predetermined tolerance level is 0.05 times a maximum value of each device- dependent component value.
3. A method according to Claim 1 , wherein an interpolated device-dependent data point is calculated and entered into a look-up table entry corresponding to each of one of a predetermined number of device- independent target data points.
4. A method according to Claim 3, wherein the look-up table is indexed according to the components ofthe device-independent color space.
5. A method according to Claim 4, wherein the device- independent color space is Jab color space.
6. A method according to Claim 5, wherein the look-up table is populated in a predetermined sequence.
7. A method according to Claim 5, wherein the look-up table is populated in a predetermined sequence by entering interpolated device-dependent data points corresponding to a Jab data point for a black point, then corresponding to all Jab data points on a color neutral axis, then corresponding to all Jab data points on a negative-a axis, then corresponding to all Jab data points on a positive-a axis, then corresponding to all Jab data points having negative b-component values, and then corresponding to all Jab data points having positive b-component values.
8. A method according to Claim 1, wherein the predetermined set of data points comprise a list of data point pairs, each data point pair containing a device-independent data point and a corresponding device-dependent data point.
9. A method according to Claim 8, wherein the list of data point pairs is generated by sampling a forward look-up table which converts color image data from the device-dependent color space to the device-independent color space.
10. A method according to Claim 9, wherein the forward look-up table is sampled at predetermined device-dependent component intervals according to a graduated sampling schedule.
11. A method according to Claim 10, wherein the graduated sampling schedule is based on the value ofthe black component and on the values ofthe color components.
12. A method according to Claim 9, wherein the forward look-up table is further sampled at device-dependent component values corresponding to primary and secondary colors.
13. A method according to Claim 9, wherein during the sampling ofthe look-up table, a maximum value and a minimum value for a second component ofthe device-independent color space is stored for each level of a first component ofthe device-independent color space, and a maximum value and a minimum value for a third component ofthe device- independent color space is stored for each level of a first component ofthe device-independent color space.
14. A method according to Claim 13, wherein the stored maximum and minimum values for the second and third components ofthe device-independent color space are used to generate each target data point in device-independent color space.
15. A method according to Claim 1 , wherein in the searching step, the selected set of data points is a predetermined number of data points.
16. A method according to Claim 15, wherein the searching step is repeated using an increased predetermined tolerance level until the predetermined number of data points is selected.
17. A method according to Claim 1 , wherein all data points in the predetermined set of data points having a lightness value within the determined range of lightness values are stored in a memory in correspondence to the determined range of lightness values.
18. A method according to Claim 1 , wherein the target data point is surrounded by eight neighboring octant spaces, and wherein there are eight selected data points in the selected set of data points, each of which is in a respective octant space.
19. A method according to Claim 1 , wherein the weighted interpolation is based on the respective distances between the selected set of data points and the target data point.
20. A method according to Claim 1 , wherein the look-up table is used to convert a device-independent data point to a device-dependent data point using a cubic interpolation method.
21. A method according to Claim 20, wherein the cubic interpolation method is based on a non-uniform variation of color component spacing in device-independent color space between each lightness value level.
22. A method for creating a look-up table which converts color image data from a device-dependent color space to a device-independent color space, the method comprising the steps of: determining an upper black component value which is a predetermined amount above a target black component value of a device- dependent target data point, and a lower black component value which is a predetermined amount below the target black component value ofthe device- dependent target data point; accessing a color measurement data table which contains device- independent component values in respective correspondence to device- dependent data points; selecting, from the color measurement data table, an upper set of device-dependent data points which are within the vicinity ofthe device- dependent target data point at the upper black component value, and a lower set of device-dependent data points which are within the vicinity ofthe device- dependent target data point at the lower black component value; creating a first new set of device-dependent data points, each of which having a black component value equal to the upper black component value and having a combination of color component values corresponding to a respective one ofthe selected lower set of device-dependent data points; creating a second new set of device-dependent data points, each of which having a black component value equal to the lower black component value and having a combination of color component values corresponding to a respective one ofthe selected upper set of device-dependent data points; interpolating, for each ofthe first new set of device-dependent data points, device-independent component values that correspond to immediately adjacent device-dependent data points from the selected upper set of device-dependent data points, to obtain an interpolated device-independent data point at the upper black component level; interpolating, for each ofthe second new set of device-dependent data points, between device-independent component values that correspond to immediately adjacent device-dependent data points from the selected lower set of device-dependent data points, to obtain an interpolated device-independent data point for the corresponding new device-dependent data points; and interpolating between the device-independent component values which correspond to each ofthe selected upper set of device-dependent data points, the first new set of device-dependent data points, the selected lower set of device-dependent data points and the second new set of device-dependent data points, to obtain an inteφolated device-independent data point corresponding to the device-dependent target data point.
23. A color management method for converting color image data between a device-independent color space and a device-dependent color space, the method comprising the steps of: generating a forward look-up table which converts color image data from the device-dependent color space to the device-independent color space, the forward look-up table being generated based on measured device- independent component values corresponding to device-dependent color target samples; sampling the forward look-up table for device-dependent data points according to a sampling schedule, to obtain corresponding device- independent data points, and placing the device-dependent data points and corresponding device-independent data points in a data pair list; generating an inverse look-up table which converts color image data from the device-independent color space to the device-dependent color space, by, for each one of a plurality of target data points in device-independent color space: determining a range of lightness values corresponding to a lightness value for each target data point, searching the data pair list to obtain a selected set of data points, each selected data point having a lightness value within the determined range of lightness values and having corresponding device-dependent component values within a predetermined tolerance level ofthe component values of a previously-determined device-dependent data point, performing a weighted interpolation on the device- dependent component values corresponding to the selected set of data points to calculate an inteφolated data point which is in device-dependent color space, and entering the inteφolated device-dependent data point into an entry in the inverse look-up table corresponding to the device- independent target data point; and converting a device-independent target data point to the device- dependent color space by accessing the nearest device-independent data point entries in the inverse look-up table relative to the device-independent target data point, and performing a cubic inteφolation on the device-dependent data points obtained from the inverse look-up table which correspond to the nearest device-independent data point entries.
24. An apparatus for managing color data, comprising: a program memory for storing process steps executable to perform a method according to any of Claims 1 to 23; and a processor for executing the process steps stored in said program memory.
25. Computer-executable process steps stored on a computer readable medium, said computer-executable process steps for managing color data, said computer-executable process steps comprising process steps executable to perform a method according to any of Claims 1 to 23.
26. A computer-readable medium which stores computer- executable process steps, the computer-executable process steps to manage color data, said computer-executable process steps comprising process steps executable to perform a method according to any of Claims 1 to 23.
PCT/US2004/038938 2000-11-24 2004-11-22 Dynamic generation of color look-up tables WO2005065092A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/978,525 US7575170B2 (en) 2000-11-24 2007-10-29 POS-based digital image capturing and processing system using automatic object detection, spectral-mixing based illumination and linear imaging techniques
US11/978,522 US7588188B2 (en) 2000-11-24 2007-10-29 Pos-based digital image capturing and processing system using automatic object detection, spectral-mixing based illumination and linear imaging techniques
US11/980,317 US7770796B2 (en) 2000-11-24 2007-10-30 Device for producing a laser beam of reduced coherency using high-frequency modulation of the laser diode current and optical multiplexing of the output laser beam

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/740,395 2003-12-22
US10/740,395 US7263218B2 (en) 2003-12-22 2003-12-22 Dynamic generation of color look-up tables

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US09/990,585 Continuation-In-Part US7028899B2 (en) 1997-09-16 2001-11-21 Method of speckle-noise pattern reduction and apparatus therefore based on reducing the temporal-coherence of the planar laser illumination beam before it illuminates the target object by applying temporal phase modulation techniques during the transmission of the plib towards the target
US10/989,220 Continuation-In-Part US7490774B2 (en) 2000-11-24 2004-11-15 Hand-supportable imaging based bar code symbol reader employing automatic light exposure measurement and illumination control subsystem integrated therein

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10/186,268 Continuation-In-Part US7077319B2 (en) 2000-11-24 2002-06-27 Imaging engine employing planar light illumination and linear imaging
US11/305,895 Continuation-In-Part US7607581B2 (en) 2000-11-24 2005-12-16 Digital imaging-based code symbol reading system permitting modification of system features and functionalities

Publications (2)

Publication Number Publication Date
WO2005065092A2 true WO2005065092A2 (en) 2005-07-21
WO2005065092A3 WO2005065092A3 (en) 2006-09-21

Family

ID=34677869

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/038938 WO2005065092A2 (en) 2000-11-24 2004-11-22 Dynamic generation of color look-up tables

Country Status (2)

Country Link
US (1) US7263218B2 (en)
WO (1) WO2005065092A2 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7229146B2 (en) * 2002-04-08 2007-06-12 Agfa Graphics Nv System and method for characterizing a printing device
JP3960965B2 (en) * 2003-12-08 2007-08-15 オリンパス株式会社 Image interpolation apparatus and image interpolation method
JP2005210526A (en) * 2004-01-23 2005-08-04 Konica Minolta Photo Imaging Inc Image processing apparatus, method, and program, image pickup device, and image data outputting method and program
JP4721398B2 (en) * 2004-03-31 2011-07-13 キヤノン株式会社 Color processing apparatus and method
JP4343752B2 (en) * 2004-03-31 2009-10-14 キヤノン株式会社 Color processing apparatus and method
US7103217B2 (en) * 2004-05-06 2006-09-05 Canon Kabushiki Kaisha Color appearance space to CMYK mapping
US7613363B2 (en) * 2005-06-23 2009-11-03 Microsoft Corp. Image superresolution through edge extraction and contrast enhancement
US20070252848A1 (en) * 2006-04-27 2007-11-01 Kabushiki Kaisha Toshiba Color conversion apparatus and color conversion method
US7933469B2 (en) * 2006-09-01 2011-04-26 Texas Instruments Incorporated Video processing
US8432572B2 (en) * 2007-06-29 2013-04-30 Konica Minolta Laboratory U.S.A., Inc. Systems and methods of trapping for print devices
US8351076B2 (en) 2007-11-20 2013-01-08 Hewlett-Packard Development Company, L.P. Smoothed entries in a color transformation look-up table
US7903286B2 (en) * 2008-03-27 2011-03-08 Konica Minolta Systems Laboratory, Inc. Systems and methods for color conversion
US8570340B2 (en) 2008-03-31 2013-10-29 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for data compression
US8699042B2 (en) * 2008-06-12 2014-04-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for multi-mode color blending
US8537425B2 (en) * 2008-09-30 2013-09-17 Konica Minolta Laboratory U.S.A., Inc. Method for optimizing the search for trapping regions
US8379266B2 (en) * 2008-09-30 2013-02-19 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for generating luminance look-up table based on color component values
US9384427B2 (en) * 2008-12-16 2016-07-05 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimizing pixel based raster trapping
JP6733526B2 (en) * 2016-11-30 2020-08-05 セイコーエプソン株式会社 Color system conversion table generation method and color system conversion table generation program
US11057543B2 (en) 2018-03-12 2021-07-06 Hewlett-Packard Development Company, L.P. Updating a lookup table for an imaging system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5786908A (en) * 1992-01-15 1998-07-28 E. I. Du Pont De Nemours And Company Method and apparatus for converting image color values from a first to a second color space

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275413A (en) * 1978-03-30 1981-06-23 Takashi Sakamoto Linear interpolator for color correction
JPS57208765A (en) * 1981-06-18 1982-12-21 Dainippon Screen Mfg Co Ltd Signal interpolating method for memory device
US5481655A (en) * 1992-09-18 1996-01-02 Iris Graphics, Inc. System for matching a picture on a monitor to a printed picture
US5625378A (en) * 1993-05-28 1997-04-29 Eastman Kodak Company Method and apparatus for convex interpolation for color calibration
US5734800A (en) * 1994-11-29 1998-03-31 Pantone, Inc. Six-color process system
JP3333363B2 (en) * 1995-11-01 2002-10-15 シャープ株式会社 Image processing device
US6333743B1 (en) * 1997-10-23 2001-12-25 Silicon Graphics, Inc. Method and apparatus for providing image and graphics processing using a graphics rendering engine
US6204855B1 (en) * 1998-06-19 2001-03-20 Intel Corporation Computer system for interpolating a value for a pixel
US6335800B1 (en) * 1998-12-11 2002-01-01 Xerox Corporation Method of multidimensional interpolation for color transformations
US6184894B1 (en) * 1999-01-29 2001-02-06 Neomagic Corp. Adaptive tri-linear interpolation for use when switching to a new level-of-detail map
US6441923B1 (en) * 1999-06-28 2002-08-27 Xerox Corporation Dynamic creation of color test patterns based on variable print settings for improved color calibration
US6587117B1 (en) * 2000-06-29 2003-07-01 Micron Technology, Inc. Apparatus and method for adaptive transformation of fractional pixel coordinates for calculating color values
US7019868B2 (en) * 2000-12-19 2006-03-28 Sharp Laboratories Of Ameirca, Inc. Black generation method for CMYK color printer using multiple lookup tables and interpolation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5786908A (en) * 1992-01-15 1998-07-28 E. I. Du Pont De Nemours And Company Method and apparatus for converting image color values from a first to a second color space
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

Also Published As

Publication number Publication date
WO2005065092A3 (en) 2006-09-21
US20050135672A1 (en) 2005-06-23
US7263218B2 (en) 2007-08-28

Similar Documents

Publication Publication Date Title
US7263218B2 (en) Dynamic generation of color look-up tables
JP4247639B2 (en) Generate a color conversion profile for printing
US6088038A (en) Arrangement for mapping colors between imaging systems and method therefor
EP0681396B1 (en) Method and apparatus for calibrating a four color printer
US7123380B2 (en) Method and a device for determining multi-ink color separations
US6360007B1 (en) Dynamic optimized color lut transformations based upon image requirements
US7505625B2 (en) Color appearance space to CMYK mapping
US7706034B2 (en) Multi-Dimensional look-up table generation via adaptive node selection based upon color characteristics of an input image
US20070080974A1 (en) Arrangement for mapping colors between imaging systems and method therefor
JPH099089A (en) Improvement of color correction table
US6229915B1 (en) Method of converting data of a first colorimetric system to data of a second colorimetric system, including a mapping of out of boundary data
JP3083067B2 (en) Method and apparatus for determining color conversion coefficient
JPH1028231A (en) Automatic color correcting method and device therefor
KR20100025498A (en) Method for generating a color chart
WO2005109855A2 (en) Color characterization with enhanced purity
JP2002094816A (en) Image-processing device and its control method, and image-processing method
JPH11317883A (en) Re-proofreading conversion method of color picture reproducing system, its device and its medium
JP2002027276A (en) Method for optimizing color target for printer model
JP2000188697A (en) Image processing method, its device and its process step
JPH11317882A (en) System for reproducing color picture, color converting method its device and its medium
JP4061046B2 (en) Color image processing method
JP4077938B2 (en) Colorimetric value estimation method for color patch, device profile creation method using the method, and image processing apparatus
JP2004096751A (en) Color space conversion
JP3843920B2 (en) Color conversion table creation method, color conversion table creation device, and program
Dianat et al. Dynamic optimization algorithm for generating inverse printer map with reduced measurements

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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 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 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: A2

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 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
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