DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Claims 21-40 are pending under this Office action.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 21-40 are rejected under 35 U.S.C. 103 as being unpatentable over Fan, etc. (US 20110267629 A1) in view of Vakrat, etc. (US 20090185058 A1), further in view of Lee, etc. (US 20130222408 A1).
Regarding claim 21, Fan teaches that a method (See Fan: Figs. 1-2, and [0054], “Reference is now being made to FIG. 2 which is a block diagram of an example LUT generation system wherein various aspects of the present gamut mapping method are performed in a manner as described with respect to the flow diagrams of FIG. 1”) comprising:
generating, by a processing circuit (See Fan: Figs. 1-2, and [0020], “As discussed in the background section hereof, the device color stored for each grid point, g(q,i,j,k), where i, j, and k are grid indices and q specifies the colorant, (q=C, M, Y, or K), is determined from LAB data measured or calculated for a fixed set of CMYK values. The conventional approach attempts to determine values of the mapping function exactly at the grid points and assign them as the grid values. Specifically, it aims to measure f(q, x=i, y=j, z=k) and assign”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the rectangular grid points may be mapped to the sub-cube of the 3D color space, but a secondary art will be used to explicitly teach this sub-cube limitation), a representation of a first sub-cube of a three-dimensional representation of a color space comprising:
a first number of mapping points, responsive to an interpolation error of the first sub-cube exceeding a first threshold (See Fan: Figs. 1-2, and [0007], “In one example embodiment, the present method for generating an optimal color lookup table involves performing the following. First, a plurality of grid points of a color space of an output color device are defined. A plurality of vectors f, and g and a plurality of matrices C, J and W are defined. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device colorant q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify a Jacobian at (x,y,z). The matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. Next, values are determined for vector f based upon either a printer model at densely sampled locations in the device color space, or by printing and measuring color patches using the output color device. A total interpolation error energy is formulated based upon the values for vector f. As described herein further, embodiment are provided for the total interpolation error energy function. An embodiment is also provided wherein the total interpolation error energy is weighted for different colors. The weighted total interpolation error energy is minimized in a manner as also provided. A LUT is generated by determining g, the LUT entries that minimize the total interpolation error energy using either iterative numerical minimization or a linear equation solution”; m[0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”. Note that the number of grids are defined first, interpolation error is formulated and minimized, the error formulation is mapped to the threshold control); and
a second number of mapping points, responsive to the interpolation error not exceeding the first threshold (See Fan: Figs. 1-2, and [0013], “What is disclosed is novel system and method for generating an optimal color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors. A multi-dimension lookup table (LUT) is used to convert from device independent (LAB) color to device dependent (CMYK) color. The most direct method of doing this is to estimate the exact correspondence at grid points of the LUT, use tetrahedral interpolation to estimate all off-grid point correspondences, and accept all errors as an outcome. These errors will be higher in regions having high curvature. The present LUT optimization method considers off-grid point errors in assigning entries to the LUT. A 1-pass sparse-matrix based technique computes grid point values that provide a least mean square error solution for the entire printer gamut volume. The present method dramatically reduces errors, particularly in the areas of high curvature and near the gamut boundary”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the least mean square optimization in the entire space adjusts fewer points in lower error sub-cubes/region, and this will reduce the mapping points to a second number mapping points), wherein the second number is less than the first number; and
using, by the processing circuit, the representation of the first sub-cube for performing color conversion from a first color space to a second color space (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”).
However, Fan fails to explicitly disclose that a representation of a first sub-cube of a three-dimensional representation of a color space; and wherein the second number is less than the first number.
However, Vakrat teaches that a representation of a first sub-cube of a three-dimensional representation of a color space (See Vakrat: Fig. 3, and [0022], “The noise reduction component values NRC generated for each pixel of image NRLUTIN is provided to noise reduction unit 220. FIG. 3 illustrates one example of a 3D LUT. In one embodiment, the noise reduction components NRC are noise reduction factors and/or thresholds. In another embodiment, rather than noise reduction factors and/or thresholds, noise reduction components NRC are the index of the kernel used by the noise reduction filter. In one embodiment, for each pixel, a noise reduction factor and noise reduction threshold is output for each color component of each pixel in image NRLUTIN, yielding 6 values for each pixel. For example, if input image IN is an RGB image, the color components are R (red), G (green), and B (blue). If input image IN is a YUV image, the color components are Y, U, and V. In other embodiments, other three-dimensional color spaces may also be employed”; [0051], “In one embodiment, each pixel is represented as a 3-dimensional (3D) tuplet of input RGB values. The LUT can be represented as a cube, which contains a number of smaller cubes, the vertices of which are the entries, or "nodes", n of the LUT. Each node n contains the three output rgb value tuplet, p. If CYMK is used, each node n contains the four outputp values”; and [0053], “In Table 1, the values v, u and t represent the normalized input signal colors, red (R), green (G) and blue (B), respectively, inside the relevant sub-cube (see definition below)”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was effectively filed to modify Fan to have a representation of a first sub-cube of a three-dimensional representation of a color space as taught by Vakrat in order to achieve the better noise reduction without performing complex operations (See Vakrat: Fig. 1, and [0123], “At least one embodiment of device 400 provides at least the same quality of noise reduction or better noise reduction as prior art solutions with a less complex or computation demanding solution. As resolution of pictures goes higher, the prior art solutions may require significantly more computing resources, while in an embodiment of device 400 the use of computing resources is linear with the size of the picture, dependent only on the number of pixels that comprise input image IN”). Fan teaches a method and system that may generate a color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors by optimizing the off-grid point errors in assigning entries to the LUT; while Vakrat explicitly teaches a system and method that may reduce the noise by dividing the 3D color space into sub-cubes to generate a first sub-cube of a three-dimensional representation of a color space in order to generate 3D color LUT. Therefore, it is obvious to one of ordinary skill in the art to modify Fan by Vakrat to generate sub-cubes for the 3D representation of the color space. The motivation to modify Fan by Vakrat is “Use of known technique to improve similar devices (methods, or products) in the same way”.
However, Fan, modified by Vakrat, fails to explicitly disclose that wherein the second number is less than the first number.
However, Lee teaches that wherein the second number is less than the first number (See Lee: Fig. 9, and [0077], “In some implementations, the color mapping method 900 is made adaptive in order to find improved color mappings for displays depending on, for example, the current viewing conditions. A color mapping can refer to, for example, a table or function which relates one color space to another. A color mapping can be used to convert an image from one color space to another by, for example, transforming the colors of a source image to the colors of an output image that is to be displayed on a display device. The color mapping can be embodied in, for example, a multi-dimensional (e.g., three dimensional or 3D) lookup table (LUT). The 3D LUTs employed in color mapping are generally built for transformation between device-independent color spaces (for example, the widely-used sRGB color space) and device-dependent color spaces (which depend upon the primaries of the display device). In some implementations, a 3D LUT-based color mapping subdivides an RGB input color space into a number of vertices, where each vertex corresponds to a particular combination of the R, G, and B primaries (i.e., a particular color). In some implementations, the 3D LUT-based color mapping subdivides the RGB color space into (n.times.n.times.n)=n.sup.3 vertices, where n=9, n=17, or n=33, for example (other values can also be used for n). Then, the transformation between the input and output color spaces is defined on these points in the form of a 3D LUT”; and Fig. 13 and [0092], “Although the example LUT mixing process shown in FIG. 13 is described in terms of interpolating between three LUTs corresponding to "outdoor", "indoor with some front light", and "predominantly front light" conditions, respectively, any number (e.g., 2, 4, 5, 6, or more) of lighting conditions and corresponding LUTs can be used in other implementations. For example, three lighting conditions corresponding to "high", "medium," and "low" amounts of ambient light can be used. Further, in other implementations, the three (or other number) LUTs can be combined using mathematical or statistical techniques other than linear interpolation, such as nonlinear interpolation, spline interpolation, filtering, regression, and so forth”, Note that the adaptive color mapping LUT generation having three predetermined LUTs according to the lighting condition may have the final LUT with mapping points less than the total three LUT mapping points).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention was effectively filed to modify Fan to have wherein the second number is less than the first number as taught by Lee in order to reduce the color distortion in image by adaptive color processing (See Lee: Fig. 1, and [0030], “Particular implementations of the devices and methods described in this disclosure can be implemented to realize various potential advantages. For example, the display devices described herein can adapt their color mapping schemes to suit their current lighting environment. This adaptive color processing can reduce color distortion in images being viewed on the display device under a wide variety of lighting conditions. In this way, a more consistent viewing experience can be provided to a user”). Fan teaches a method and system that may generate a color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors by optimizing the off-grid point errors in assigning entries to the LUT; while Lee explicitly teaches a system and method that may generate color LUT adaptively based on the indoor or outdoor lighting conditions to reduce color distortion. Therefore, it is obvious to one of ordinary skill in the art to modify Fan by Lee to generate color LUT adaptively to reduce color distortion. The motivation to modify Fan by Lee is “Use of known technique to improve similar devices (methods, or products) in the same way”.
Regarding claim 22, Fan, Vakrat, and Lee teach all the features with respect to claim 21 as outlined above. Further, Lee teaches that the method as recited in claim 21, further comprising storing, in a lookup table by the processing circuit, at least the first number of mapping points and the second number of mapping points (See Lee: Fig. 9, and [0073], “At block 930, the color mapping method identifies two or more stored color mappings to combine. The stored color mappings can each correspond to, for example, a distinct lighting condition. For example, as discussed more fully herein, one of the stored color mappings may be designed for a common outdoor lighting environment. Such a color mapping can be designed, based upon the primaries of the display device when viewed in the outdoor lighting environment, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Additionally, and/or alternatively, one of the stored color mappings may be designed for use when the built-in light source is operating, for example under dark ambient lighting conditions. In such a case, the color mapping can be designed, based upon the primaries of the display device when viewed using the built-in light source, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Further, one of the stored color mappings may be designed for use under some combination of ambient light and light from the built-in light source. For example, in such a case, the color mapping can be designed to reduce or eliminate color distortion when performing color mapping in a lighting environment in which approximately half of the light for viewing the display device is ambient light and approximately half is light from the built-in light source. Again, such a color mapping can be designed based upon the primaries of the display device under such lighting conditions. Notwithstanding the foregoing options for stored color mappings, many other different stored color mappings could also be used”).
Regarding claim 23, Fan, Vakrat, and Lee teach all the features with respect to claim 22 as outlined above. Further, Fan teaches that the method as recited in claim 22, further comprising storing, in the lookup table by the processing circuit, a corresponding number of mapping points for one or more sub-cubes of the three-dimensional representation of the color space based on a formula that converts interpolation errors into numbers of mapping points (See Fan: Figs. 1-2, and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”; [0040], “where the superscript T represents a matrix transpose operation, the superscript (-1) represents a matrix inverse operation, W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, and f* represents the estimation of vector f”; and [0048], “The interpolation errors discussed above are most severe for colors near or at the surface of the gamut of a printer. In order to find CMYK formulations for these colors, the LUT must interpolate between some in gamut nodes and nodes that are outside the gamut of the printer. The CMYK formulations for the out of gamut nodes are usually determined by mapping the LAB of the out of gamut node to an LAB on the surface of the gamut, and then finding a CMYK formulation that can make it (there is generally only one) by iterative printing or from the printer model”. Note that the total interpolation error minimization (least mean square) directly determine the sub-cubes, mapping point density and mapping point value, and this is mapped to “a formula that converts interpolation errors into numbers of mapping points”).
Regarding claim 24, Fan, Vakrat, and Lee teach all the features with respect to claim 22 as outlined above. Further, Fan teaches that the method as recited in claim 22, further comprising performing, by a display controller, tetrahedral interpolation with a number of mapping points found in the lookup table to convert a source pixel to a target pixel (See Fan: Fig. 1, and [0052], “At step 108, a total interpolation error energy is formulated by calculating, for each color sample generated from step 106 using the interpolation coefficients associated with the color sampling point (x,y,z). The interpolation coefficients are determined by the relative positions between (x,y,z) and the grid points. This is the contribution of each grid node to the location (x,y,z) when a linear interpolation is performed. For a tetrahedral interpolation, at most four grid nodes, which are the ones forming the tetrahedron that contains (x,y,z), have non-zero contributions. If the interpolation was performed in a color space which is the same as the color space of the output color device, the total interpolation error energy is computed in a manner as shown by Eq. (3). Otherwise, the total interpolation error energy is computed as shown by Eq. (4), and the Jacobians need to be estimated at each sampling location (x,y,z). This can be done by fitting the f(q,x,y,z) data. The total interpolation error energy can be weighted for different colors. In such an embodiment, the total interpolation error energy is computed and minimized in accordance with the above-described embodiments”).
Regarding claim 25, Fan, Vakrat, and Lee teach all the features with respect to claim 21 as outlined above. Further, Fan teaches that the method as recited in claim 21, wherein:
a second threshold is less than the first threshold (See Fan: Figs. 1-2, and [0030], “Note that if the error term is not calculated using the Euclidian norm, but instead is calculated using a more complex color difference metric (such as CIE DE2000), the minimization may require a non-linear, iterative minimization approach. Such a technique requires a starting approximation which is then refined through successive iterations”; and [0042], “where W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, g* is the set of all possible g vectors and the vector producing the lowest total interpolation error energy e is g, and where f'(q,x,y,z) specifies the measured color”. Note that weighted multi-region error minimization and curvature handling supports multi-level thresholds and enables different error priority); and
the method further comprises generating, by the processing circuit, a representation of a second sub-cube of the three-dimensional representation of the color space comprising a third number of mapping points, responsive to an interpolation error of the second sub-cube not exceeding the second threshold, wherein the third number is less than the second number (See Fan: Figs. 1-2, and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”; and [0051], “At step 106, values are determined for vector f. This determination is based upon either a printer model at densely sampled locations in the device color space as discussed above with respect to the first approach, or by printing and measuring color patches using the output color device as discussed above with respect to the second approach”. Note that the variable per sub-cube optimization according to the error energy formula will arrive at different point counts or densities across sub-cubes, and this is mapped to the third or fourth number of mapping points).
Regarding claim 26, Fan, Vakrat, and Lee teach all the features with respect to claim 25 as outlined above. Further, Fan teaches that the method as recited in claim 25, further comprising using, by the processing circuit, the representation of the second sub-cube for performing color conversion from the first color space to the second color space (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”. Note that the color transformation is applied to all pixels and all sub-cubes are used in color space conversion).
Regarding claim 27, Fan, Vakrat, and Lee teach all the features with respect to claim 21 as outlined above. Further, Fan teaches that the method as recited in claim 21, wherein the first color space corresponds to a first display device different from a second display device corresponding to the second color space (See Fan: Figs. 1-2, and [0013], “] What is disclosed is novel system and method for generating an optimal color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors. A multi-dimension lookup table (LUT) is used to convert from device independent (LAB) color to device dependent (CMYK) color. The most direct method of doing this is to estimate the exact correspondence at grid points of the LUT, use tetrahedral interpolation to estimate all off-grid point correspondences, and accept all errors as an outcome. These errors will be higher in regions having high curvature. The present LUT optimization method considers off-grid point errors in assigning entries to the LUT. A 1-pass sparse-matrix based technique computes grid point values that provide a least mean square error solution for the entire printer gamut volume. The present method dramatically reduces errors, particularly in the areas of high curvature and near the gamut boundary”; and [0026], “If a distance for some other color space is preferred (for example, the device color space is CMYK and the error is preferred to be calculated in LAB space), Eq. (3) needs to be modified. Such a modification of the total interpolation error energy takes the form as follows”).
Regarding claim 28, Fan, Vakrat, and Lee teach all the features with respect to claim 21 as outlined above. Further, Fan, Vakrat, and Lee teach that an apparatus (See Fan: Figs. 1-2, and [0054], “Reference is now being made to FIG. 2 which is a block diagram of an example LUT generation system wherein various aspects of the present gamut mapping method are performed in a manner as described with respect to the flow diagrams of FIG. 1”) comprising:
circuitry configured (See Fan: Figs. 1-2, and [0059], “Reference is now being made to FIG. 3 which illustrates a block diagram of one example embodiment of a special purpose computer system for implementing one or more aspects of the present method as described with respect to the embodiments of the flow diagram of FIG. 1 and the block diagram of FIG. 2. Such a special purpose processor is capable of executing machine executable program instructions. The special purpose processor may comprise any of a micro-processor or micro-controller, an ASIC, an electronic circuit, or special purpose computer. Such a computer can be integrated, in whole or in part, with a xerographic system or a color management or image processing system, which includes a processor capable of executing machine readable program instructions for carrying out one or more aspects of the present method”) to:
generate (See Fan: Figs. 1-2, and [0020], “As discussed in the background section hereof, the device color stored for each grid point, g(q,i,j,k), where i, j, and k are grid indices and q specifies the colorant, (q=C, M, Y, or K), is determined from LAB data measured or calculated for a fixed set of CMYK values. The conventional approach attempts to determine values of the mapping function exactly at the grid points and assign them as the grid values. Specifically, it aims to measure f(q, x=i, y=j, z=k) and assign”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the rectangular grid points may be mapped to the sub-cube of the 3D color space, but a secondary art will be used to explicitly teach this sub-cube limitation) a representation of a first sub-cube of a three-dimensional representation of a color space (See Vakrat: Fig. 3, and [0022], “The noise reduction component values NRC generated for each pixel of image NRLUTIN is provided to noise reduction unit 220. FIG. 3 illustrates one example of a 3D LUT. In one embodiment, the noise reduction components NRC are noise reduction factors and/or thresholds. In another embodiment, rather than noise reduction factors and/or thresholds, noise reduction components NRC are the index of the kernel used by the noise reduction filter. In one embodiment, for each pixel, a noise reduction factor and noise reduction threshold is output for each color component of each pixel in image NRLUTIN, yielding 6 values for each pixel. For example, if input image IN is an RGB image, the color components are R (red), G (green), and B (blue). If input image IN is a YUV image, the color components are Y, U, and V. In other embodiments, other three-dimensional color spaces may also be employed”; [0051], “In one embodiment, each pixel is represented as a 3-dimensional (3D) tuplet of input RGB values. The LUT can be represented as a cube, which contains a number of smaller cubes, the vertices of which are the entries, or "nodes", n of the LUT. Each node n contains the three output rgb value tuplet, p. If CYMK is used, each node n contains the four outputp values”; and [0053], “In Table 1, the values v, u and t represent the normalized input signal colors, red (R), green (G) and blue (B), respectively, inside the relevant sub-cube (see definition below)”) comprising:
a first number of mapping points, responsive to an interpolation error of the first sub-cube exceeding a first threshold (See Fan: Figs. 1-2, and [0007], “In one example embodiment, the present method for generating an optimal color lookup table involves performing the following. First, a plurality of grid points of a color space of an output color device are defined. A plurality of vectors f, and g and a plurality of matrices C, J and W are defined. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device colorant q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify a Jacobian at (x,y,z). The matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. Next, values are determined for vector f based upon either a printer model at densely sampled locations in the device color space, or by printing and measuring color patches using the output color device. A total interpolation error energy is formulated based upon the values for vector f. As described herein further, embodiment are provided for the total interpolation error energy function. An embodiment is also provided wherein the total interpolation error energy is weighted for different colors. The weighted total interpolation error energy is minimized in a manner as also provided. A LUT is generated by determining g, the LUT entries that minimize the total interpolation error energy using either iterative numerical minimization or a linear equation solution”; m[0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”. Note that the number of grids are defined first, interpolation error is formulated and minimized, the error formulation is mapped to the threshold control); and
a second number of mapping points, responsive to the interpolation error not exceeding the first threshold (See Fan: Figs. 1-2, and [0013], “What is disclosed is novel system and method for generating an optimal color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors. A multi-dimension lookup table (LUT) is used to convert from device independent (LAB) color to device dependent (CMYK) color. The most direct method of doing this is to estimate the exact correspondence at grid points of the LUT, use tetrahedral interpolation to estimate all off-grid point correspondences, and accept all errors as an outcome. These errors will be higher in regions having high curvature. The present LUT optimization method considers off-grid point errors in assigning entries to the LUT. A 1-pass sparse-matrix based technique computes grid point values that provide a least mean square error solution for the entire printer gamut volume. The present method dramatically reduces errors, particularly in the areas of high curvature and near the gamut boundary”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the least mean square optimization in the entire space adjusts fewer points in lower error sub-cubes/region, and this will reduce the mapping points to a second number mapping points), wherein the second number is less than the first number (See Lee: Fig. 9, and [0077], “In some implementations, the color mapping method 900 is made adaptive in order to find improved color mappings for displays depending on, for example, the current viewing conditions. A color mapping can refer to, for example, a table or function which relates one color space to another. A color mapping can be used to convert an image from one color space to another by, for example, transforming the colors of a source image to the colors of an output image that is to be displayed on a display device. The color mapping can be embodied in, for example, a multi-dimensional (e.g., three dimensional or 3D) lookup table (LUT). The 3D LUTs employed in color mapping are generally built for transformation between device-independent color spaces (for example, the widely-used sRGB color space) and device-dependent color spaces (which depend upon the primaries of the display device). In some implementations, a 3D LUT-based color mapping subdivides an RGB input color space into a number of vertices, where each vertex corresponds to a particular combination of the R, G, and B primaries (i.e., a particular color). In some implementations, the 3D LUT-based color mapping subdivides the RGB color space into (n.times.n.times.n)=n.sup.3 vertices, where n=9, n=17, or n=33, for example (other values can also be used for n). Then, the transformation between the input and output color spaces is defined on these points in the form of a 3D LUT”; and Fig. 13 and [0092], “Although the example LUT mixing process shown in FIG. 13 is described in terms of interpolating between three LUTs corresponding to "outdoor", "indoor with some front light", and "predominantly front light" conditions, respectively, any number (e.g., 2, 4, 5, 6, or more) of lighting conditions and corresponding LUTs can be used in other implementations. For example, three lighting conditions corresponding to "high", "medium," and "low" amounts of ambient light can be used. Further, in other implementations, the three (or other number) LUTs can be combined using mathematical or statistical techniques other than linear interpolation, such as nonlinear interpolation, spline interpolation, filtering, regression, and so forth”, Note that the adaptive color mapping LUT generation having three predetermined LUTs according to the lighting condition may have the final LUT with mapping points less than the total three LUT mapping points); and
use the representation of the first sub-cube for performing color conversion from a first color space to a second color space (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”).
Regarding claim 29, Fan, Vakrat, and Lee teach all the features with respect to claim 28 as outlined above. Further, Lee teaches that the apparatus of claim 28, wherein the circuitry is configured to store, in a lookup table, at least the first number of mapping points and the second number of mapping points (See Lee: Fig. 9, and [0073], “At block 930, the color mapping method identifies two or more stored color mappings to combine. The stored color mappings can each correspond to, for example, a distinct lighting condition. For example, as discussed more fully herein, one of the stored color mappings may be designed for a common outdoor lighting environment. Such a color mapping can be designed, based upon the primaries of the display device when viewed in the outdoor lighting environment, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Additionally, and/or alternatively, one of the stored color mappings may be designed for use when the built-in light source is operating, for example under dark ambient lighting conditions. In such a case, the color mapping can be designed, based upon the primaries of the display device when viewed using the built-in light source, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Further, one of the stored color mappings may be designed for use under some combination of ambient light and light from the built-in light source. For example, in such a case, the color mapping can be designed to reduce or eliminate color distortion when performing color mapping in a lighting environment in which approximately half of the light for viewing the display device is ambient light and approximately half is light from the built-in light source. Again, such a color mapping can be designed based upon the primaries of the display device under such lighting conditions. Notwithstanding the foregoing options for stored color mappings, many other different stored color mappings could also be used”).
Regarding claim 30, Fan, Vakrat, and Lee teach all the features with respect to claim 29 as outlined above. Further, Fan teaches that the e apparatus of claim 29, wherein the circuitry is configured to store, in the lookup table, a corresponding number of mapping points for one or more sub-cubes of the three-dimensional representation of the color space based on a formula that converts interpolation errors into numbers of mapping points (See Fan: Figs. 1-2, and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”; [0040], “where the superscript T represents a matrix transpose operation, the superscript (-1) represents a matrix inverse operation, W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, and f* represents the estimation of vector f”; and [0048], “The interpolation errors discussed above are most severe for colors near or at the surface of the gamut of a printer. In order to find CMYK formulations for these colors, the LUT must interpolate between some in gamut nodes and nodes that are outside the gamut of the printer. The CMYK formulations for the out of gamut nodes are usually determined by mapping the LAB of the out of gamut node to an LAB on the surface of the gamut, and then finding a CMYK formulation that can make it (there is generally only one) by iterative printing or from the printer model”. Note that the total interpolation error minimization (least mean square) directly determine the sub-cubes, mapping point density and mapping point value, and this is mapped to “a formula that converts interpolation errors into numbers of mapping points”).
Regarding claim 31, Fan, Vakrat, and Lee teach all the features with respect to claim 29 as outlined above. Further, Fan teaches that the apparatus of claim 29, wherein the circuitry conveys mapping points found in the lookup table to a display controller configured to perform tetrahedral interpolation with the mapping points found in the table to convert a source pixel to a target pixel (See Fan: Fig. 1, and [0052], “At step 108, a total interpolation error energy is formulated by calculating, for each color sample generated from step 106 using the interpolation coefficients associated with the color sampling point (x,y,z). The interpolation coefficients are determined by the relative positions between (x,y,z) and the grid points. This is the contribution of each grid node to the location (x,y,z) when a linear interpolation is performed. For a tetrahedral interpolation, at most four grid nodes, which are the ones forming the tetrahedron that contains (x,y,z), have non-zero contributions. If the interpolation was performed in a color space which is the same as the color space of the output color device, the total interpolation error energy is computed in a manner as shown by Eq. (3). Otherwise, the total interpolation error energy is computed as shown by Eq. (4), and the Jacobians need to be estimated at each sampling location (x,y,z). This can be done by fitting the f(q,x,y,z) data. The total interpolation error energy can be weighted for different colors. In such an embodiment, the total interpolation error energy is computed and minimized in accordance with the above-described embodiments”).
Regarding claim 32, Fan, Vakrat, and Lee teach all the features with respect to claim 28 as outlined above. Further, Fan teaches that the apparatus as recited in claim 28, wherein:
a second threshold is less than the first threshold (See Fan: Figs. 1-2, and [0030], “Note that if the error term is not calculated using the Euclidian norm, but instead is calculated using a more complex color difference metric (such as CIE DE2000), the minimization may require a non-linear, iterative minimization approach. Such a technique requires a starting approximation which is then refined through successive iterations”; and [0042], “where W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, g* is the set of all possible g vectors and the vector producing the lowest total interpolation error energy e is g, and where f'(q,x,y,z) specifies the measured color”. Note that weighted multi-region error minimization and curvature handling supports multi-level thresholds and enables different error priority); and
the circuitry is configured to generate a representation of a second sub-cube of the three-dimensional representation of the color space comprising a third number of mapping points, responsive to an interpolation error of the second sub-cube not exceeding the second threshold, wherein the third number is less than the second number (See Fan: Figs. 1-2, and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”; and [0051], “At step 106, values are determined for vector f. This determination is based upon either a printer model at densely sampled locations in the device color space as discussed above with respect to the first approach, or by printing and measuring color patches using the output color device as discussed above with respect to the second approach”. Note that the variable per sub-cube optimization according to the error energy formula will arrive at different point counts or densities across sub-cubes, and this is mapped to the third or fourth number of mapping points).
Regarding claim 33, Fan, Vakrat, and Lee teach all the features with respect to claim 32 as outlined above. Further, Fan teaches that the apparatus as recited in claim 32, wherein the circuitry is configured to use the representation of the second sub-cube for performing color conversion from the first color space to the second color space (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”. Note that the color transformation is applied to all pixels and all sub-cubes are used in color space conversion).
Regarding claim 34, Fan, Vakrat, and Lee teach all the features with respect to claim 28 as outlined above. Further, Fan teaches that the apparatus as recited in claim 28, wherein the first color space corresponds to a first display device different from a second display device corresponding to the second color space (See Fan: Figs. 1-2, and [0013], “] What is disclosed is novel system and method for generating an optimal color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors. A multi-dimension lookup table (LUT) is used to convert from device independent (LAB) color to device dependent (CMYK) color. The most direct method of doing this is to estimate the exact correspondence at grid points of the LUT, use tetrahedral interpolation to estimate all off-grid point correspondences, and accept all errors as an outcome. These errors will be higher in regions having high curvature. The present LUT optimization method considers off-grid point errors in assigning entries to the LUT. A 1-pass sparse-matrix based technique computes grid point values that provide a least mean square error solution for the entire printer gamut volume. The present method dramatically reduces errors, particularly in the areas of high curvature and near the gamut boundary”; and [0026], “If a distance for some other color space is preferred (for example, the device color space is CMYK and the error is preferred to be calculated in LAB space), Eq. (3) needs to be modified. Such a modification of the total interpolation error energy takes the form as follows”).
Regarding claim 35, Fan, Vakrat, and Lee teach all the features with respect to claim 21 as outlined above. Further, Fan, Vakrat, and Lee teach that a system (See Fan: Figs. 1-2, and [0054], “Reference is now being made to FIG. 2 which is a block diagram of an example LUT generation system wherein various aspects of the present gamut mapping method are performed in a manner as described with respect to the flow diagrams of FIG. 1”) comprising:
a display controller (See Fan: Fig. 3, and [0060], “Special purpose computer system 300 includes processor 306 for executing machine executable program instructions for carrying out all or some of the present method. The processor is in communication with bus 302. The system includes main memory 304 for storing machine readable instructions. Main memory may comprise random access memory (RAM) to support reprogramming and flexible data storage. Buffer 366 stores data addressable by the processor. Program memory 364 stores machine readable instructions for performing the present method. A display interface 308 forwards data from bus 302 to display 310”); and
a processing circuit configured to provide a plurality of source pixels to the display controller (See Fan: Figs. 1-3, and [0059], “Reference is now being made to FIG. 3 which illustrates a block diagram of one example embodiment of a special purpose computer system for implementing one or more aspects of the present method as described with respect to the embodiments of the flow diagram of FIG. 1 and the block diagram of FIG. 2. Such a special purpose processor is capable of executing machine executable program instructions. The special purpose processor may comprise any of a micro-processor or micro-controller, an ASIC, an electronic circuit, or special purpose computer. Such a computer can be integrated, in whole or in part, with a xerographic system or a color management or image processing system, which includes a processor capable of executing machine readable program instructions for carrying out one or more aspects of the present method”); and
wherein the display controller is configured (See Fan: Fig. 3, and [0060], “Special purpose computer system 300 includes processor 306 for executing machine executable program instructions for carrying out all or some of the present method. The processor is in communication with bus 302. The system includes main memory 304 for storing machine readable instructions. Main memory may comprise random access memory (RAM) to support reprogramming and flexible data storage. Buffer 366 stores data addressable by the processor. Program memory 364 stores machine readable instructions for performing the present method. A display interface 308 forwards data from bus 302 to display 310. Secondary memory 312 includes a hard disk 314 and storage device 316 capable of reading/writing to removable storage unit 318, such as a floppy disk, magnetic tape, optical disk, etc. Secondary memory 312 may further include other mechanisms for allowing programs and/or machine executable instructions to be loaded onto the processor. Such mechanisms may include, for example, a storage unit 322 adapted to exchange data through interface 320 which enables the transfer of software and data. The system includes a communications interface 324 which acts as both an input and an output to allow data to be transferred between the system and external devices such as a color scanner (not shown). Example interfaces include a modem, a network card such as an Ethernet card, a communications port, a PCMCIA slot and card, etc. Software and data transferred via the communications interface are in the form of signals. Such signal may be any of electronic, electromagnetic, optical, or other forms of signals capable of being received by the communications interface. These signals are provided to the communications interface via channel 326 which carries such signals and may be implemented using wire, cable, fiber optic, phone line, cellular link, RF, memory, or other means known in the arts”) to:
generate (See Fan: Figs. 1-2, and [0020], “As discussed in the background section hereof, the device color stored for each grid point, g(q,i,j,k), where i, j, and k are grid indices and q specifies the colorant, (q=C, M, Y, or K), is determined from LAB data measured or calculated for a fixed set of CMYK values. The conventional approach attempts to determine values of the mapping function exactly at the grid points and assign them as the grid values. Specifically, it aims to measure f(q, x=i, y=j, z=k) and assign”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the rectangular grid points may be mapped to the sub-cube of the 3D color space, but a secondary art will be used to explicitly teach this sub-cube limitation) a representation of a first sub-cube of a three-dimensional representation of a color space (See Vakrat: Fig. 3, and [0022], “The noise reduction component values NRC generated for each pixel of image NRLUTIN is provided to noise reduction unit 220. FIG. 3 illustrates one example of a 3D LUT. In one embodiment, the noise reduction components NRC are noise reduction factors and/or thresholds. In another embodiment, rather than noise reduction factors and/or thresholds, noise reduction components NRC are the index of the kernel used by the noise reduction filter. In one embodiment, for each pixel, a noise reduction factor and noise reduction threshold is output for each color component of each pixel in image NRLUTIN, yielding 6 values for each pixel. For example, if input image IN is an RGB image, the color components are R (red), G (green), and B (blue). If input image IN is a YUV image, the color components are Y, U, and V. In other embodiments, other three-dimensional color spaces may also be employed”; [0051], “In one embodiment, each pixel is represented as a 3-dimensional (3D) tuplet of input RGB values. The LUT can be represented as a cube, which contains a number of smaller cubes, the vertices of which are the entries, or "nodes", n of the LUT. Each node n contains the three output rgb value tuplet, p. If CYMK is used, each node n contains the four outputp values”; and [0053], “In Table 1, the values v, u and t represent the normalized input signal colors, red (R), green (G) and blue (B), respectively, inside the relevant sub-cube (see definition below)”) comprising:
a first number of mapping points, responsive to an interpolation error of the first sub-cube exceeding a first threshold (See Fan: Figs. 1-2, and [0007], “In one example embodiment, the present method for generating an optimal color lookup table involves performing the following. First, a plurality of grid points of a color space of an output color device are defined. A plurality of vectors f, and g and a plurality of matrices C, J and W are defined. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device colorant q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify a Jacobian at (x,y,z). The matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. Next, values are determined for vector f based upon either a printer model at densely sampled locations in the device color space, or by printing and measuring color patches using the output color device. A total interpolation error energy is formulated based upon the values for vector f. As described herein further, embodiment are provided for the total interpolation error energy function. An embodiment is also provided wherein the total interpolation error energy is weighted for different colors. The weighted total interpolation error energy is minimized in a manner as also provided. A LUT is generated by determining g, the LUT entries that minimize the total interpolation error energy using either iterative numerical minimization or a linear equation solution”; m[0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”. Note that the number of grids are defined first, interpolation error is formulated and minimized, the error formulation is mapped to the threshold control); and
a second number of mapping points, responsive to the interpolation error not exceeding the first threshold (See Fan: Figs. 1-2, and [0013], “What is disclosed is novel system and method for generating an optimal color lookup table (LUT) that minimizes interpolation errors over the entire color space, including the off-grid colors. A multi-dimension lookup table (LUT) is used to convert from device independent (LAB) color to device dependent (CMYK) color. The most direct method of doing this is to estimate the exact correspondence at grid points of the LUT, use tetrahedral interpolation to estimate all off-grid point correspondences, and accept all errors as an outcome. These errors will be higher in regions having high curvature. The present LUT optimization method considers off-grid point errors in assigning entries to the LUT. A 1-pass sparse-matrix based technique computes grid point values that provide a least mean square error solution for the entire printer gamut volume. The present method dramatically reduces errors, particularly in the areas of high curvature and near the gamut boundary”; and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”. Note that the least mean square optimization in the entire space adjusts fewer points in lower error sub-cubes/region, and this will reduce the mapping points to a second number mapping points), wherein the second number is less than the first number (See Lee: Fig. 9, and [0077], “In some implementations, the color mapping method 900 is made adaptive in order to find improved color mappings for displays depending on, for example, the current viewing conditions. A color mapping can refer to, for example, a table or function which relates one color space to another. A color mapping can be used to convert an image from one color space to another by, for example, transforming the colors of a source image to the colors of an output image that is to be displayed on a display device. The color mapping can be embodied in, for example, a multi-dimensional (e.g., three dimensional or 3D) lookup table (LUT). The 3D LUTs employed in color mapping are generally built for transformation between device-independent color spaces (for example, the widely-used sRGB color space) and device-dependent color spaces (which depend upon the primaries of the display device). In some implementations, a 3D LUT-based color mapping subdivides an RGB input color space into a number of vertices, where each vertex corresponds to a particular combination of the R, G, and B primaries (i.e., a particular color). In some implementations, the 3D LUT-based color mapping subdivides the RGB color space into (n.times.n.times.n)=n.sup.3 vertices, where n=9, n=17, or n=33, for example (other values can also be used for n). Then, the transformation between the input and output color spaces is defined on these points in the form of a 3D LUT”; and Fig. 13 and [0092], “Although the example LUT mixing process shown in FIG. 13 is described in terms of interpolating between three LUTs corresponding to "outdoor", "indoor with some front light", and "predominantly front light" conditions, respectively, any number (e.g., 2, 4, 5, 6, or more) of lighting conditions and corresponding LUTs can be used in other implementations. For example, three lighting conditions corresponding to "high", "medium," and "low" amounts of ambient light can be used. Further, in other implementations, the three (or other number) LUTs can be combined using mathematical or statistical techniques other than linear interpolation, such as nonlinear interpolation, spline interpolation, filtering, regression, and so forth”, Note that the adaptive color mapping LUT generation having three predetermined LUTs according to the lighting condition may have the final LUT with mapping points less than the total three LUT mapping points); and
convert the plurality of source pixels, by accessing the representation of the first sub-cube, to a plurality of target pixels for conveying to a display device (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”).
Regarding claim 36, Fan, Vakrat, and Lee teach all the features with respect to claim 35 as outlined above. Further, Lee teaches that the system as recited in claim 35, wherein the display controller is configured to store, in a lookup table, at least the first number of mapping points and the second number of mapping points (See Lee: Fig. 9, and [0073], “At block 930, the color mapping method identifies two or more stored color mappings to combine. The stored color mappings can each correspond to, for example, a distinct lighting condition. For example, as discussed more fully herein, one of the stored color mappings may be designed for a common outdoor lighting environment. Such a color mapping can be designed, based upon the primaries of the display device when viewed in the outdoor lighting environment, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Additionally, and/or alternatively, one of the stored color mappings may be designed for use when the built-in light source is operating, for example under dark ambient lighting conditions. In such a case, the color mapping can be designed, based upon the primaries of the display device when viewed using the built-in light source, to reduce or eliminate color distortion when converting a device-independent digital color source image to a device-dependent digital color target image. Further, one of the stored color mappings may be designed for use under some combination of ambient light and light from the built-in light source. For example, in such a case, the color mapping can be designed to reduce or eliminate color distortion when performing color mapping in a lighting environment in which approximately half of the light for viewing the display device is ambient light and approximately half is light from the built-in light source. Again, such a color mapping can be designed based upon the primaries of the display device under such lighting conditions. Notwithstanding the foregoing options for stored color mappings, many other different stored color mappings could also be used”).
Regarding claim 37, Fan, Vakrat, and Lee teach all the features with respect to claim 36 as outlined above. Further, Fan teaches that the system as recited in claim 36, wherein the display controller is configured to store, in the lookup table, a corresponding number of mapping points for one or more sub-cubes of the three-dimensional representation of the color space based on a formula that converts interpolation errors into numbers of mapping points (See Fan: Figs. 1-2, and [0029], “where W is either a matrix which comprises a weighting function or an identity matrix such that all errors due to colors in vectors f and o are equally weighted, and where J is a matrix containing Jacobians specifying the color transformation, and C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied. Vector g can be determined by minimizing the total error. One example embodiment is as follows”; [0040], “where the superscript T represents a matrix transpose operation, the superscript (-1) represents a matrix inverse operation, W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, and f* represents the estimation of vector f”; and [0048], “The interpolation errors discussed above are most severe for colors near or at the surface of the gamut of a printer. In order to find CMYK formulations for these colors, the LUT must interpolate between some in gamut nodes and nodes that are outside the gamut of the printer. The CMYK formulations for the out of gamut nodes are usually determined by mapping the LAB of the out of gamut node to an LAB on the surface of the gamut, and then finding a CMYK formulation that can make it (there is generally only one) by iterative printing or from the printer model”. Note that the total interpolation error minimization (least mean square) directly determine the sub-cubes, mapping point density and mapping point value, and this is mapped to “a formula that converts interpolation errors into numbers of mapping points”).
Regarding claim 38, Fan, Vakrat, and Lee teach all the features with respect to claim 36 as outlined above. Further, Fan teaches that the system as recited in claim 36, wherein the display controller is configured to perform tetrahedral interpolation with a number of mapping points found in the lookup table to convert a source pixel to a target pixel (See Fan: Fig. 1, and [0052], “At step 108, a total interpolation error energy is formulated by calculating, for each color sample generated from step 106 using the interpolation coefficients associated with the color sampling point (x,y,z). The interpolation coefficients are determined by the relative positions between (x,y,z) and the grid points. This is the contribution of each grid node to the location (x,y,z) when a linear interpolation is performed. For a tetrahedral interpolation, at most four grid nodes, which are the ones forming the tetrahedron that contains (x,y,z), have non-zero contributions. If the interpolation was performed in a color space which is the same as the color space of the output color device, the total interpolation error energy is computed in a manner as shown by Eq. (3). Otherwise, the total interpolation error energy is computed as shown by Eq. (4), and the Jacobians need to be estimated at each sampling location (x,y,z). This can be done by fitting the f(q,x,y,z) data. The total interpolation error energy can be weighted for different colors. In such an embodiment, the total interpolation error energy is computed and minimized in accordance with the above-described embodiments”).
Regarding claim 39, Fan, Vakrat, and Lee teach all the features with respect to claim 35 as outlined above. Further, Fan teaches that the e system as recited in claim 35, wherein:
a second threshold is less than the first threshold (See Fan: Figs. 1-2, and [0030], “Note that if the error term is not calculated using the Euclidian norm, but instead is calculated using a more complex color difference metric (such as CIE DE2000), the minimization may require a non-linear, iterative minimization approach. Such a technique requires a starting approximation which is then refined through successive iterations”; and [0042], “where W is a diagonal matrix representing the weighting function, J is a matrix containing Jacobians specifying the color transformation, C is a matrix specifying interpolation coefficients as determined by the interpolation methods applied, g* is the set of all possible g vectors and the vector producing the lowest total interpolation error energy e is g, and where f'(q,x,y,z) specifies the measured color”. Note that weighted multi-region error minimization and curvature handling supports multi-level thresholds and enables different error priority); and
the display controller is configured to generate a representation of a second sub-cube of the three-dimensional representation of the color space comprising a third number of mapping points, responsive to an interpolation error of the second sub-cube not exceeding the second threshold, wherein the third number is less than the second number (See Fan: Figs. 1-2, and [0050], “At step 104, a plurality of grid points, a plurality of vectors f, and g, and a plurality of matrices C, J and W, are defined. The grid points are defined in a color space of an output color device. The component of vector f, given by: f(q,x,y,z), is a mapping function which maps the color at (x,y,z) to the output device color separation q. The component of vector g, given by: g(q,i,j,k), is the amount of colorant q at grid location (i,j,k) where (i,j,k) are grid indices. The elements of matrix C are the interpolation coefficients determined by the linear interpolation method. The elements of J specify the Jacobian at (x,y,z). Matrix W is a weighting matrix that determines the relative importance in color accuracy for different colors. It is determined by experience, and is known at this point”; and [0051], “At step 106, values are determined for vector f. This determination is based upon either a printer model at densely sampled locations in the device color space as discussed above with respect to the first approach, or by printing and measuring color patches using the output color device as discussed above with respect to the second approach”. Note that the variable per sub-cube optimization according to the error energy formula will arrive at different point counts or densities across sub-cubes, and this is mapped to the third or fourth number of mapping points).
Regarding claim 40, Fan, Vakrat, and Lee teach all the features with respect to claim 39 as outlined above. Further, Fan teaches that the system as recited in claim 39, wherein the display controller is configured to use the representation of the second sub-cube for performing color conversion from a first color space to a second color space (See Fan: Figs. 1-2, and [0017], “A "Device-Dependent Color Space" is a color space which is related to CIE XYZ through a transformation that depends on a specific measurement or color reproduction device. An Example of a device-dependent color space is monitor RGB space or printer CMYK space”; [0021], “However, this is difficult to achieve as the printed color can only be specified in output CMYK space, while the grid points are indexed in input device independent spaces. Measurement data are used to build the model and the grid point colors are obtained as follows”; and [0047], “It should be appreciated that for any of Eqs. (4), (5), (6), (7), (8), and (10), matrix J may transform from a device color space to a space, i.e., L*a*b*, for example, where the Euclidian distance is a more appropriate measure of the perceived color error”. Note that the color transformation is applied to all pixels and all sub-cubes are used in color space conversion).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GORDON G LIU whose telephone number is (571)270-0382. The examiner can normally be reached Monday - Friday 8:00-5:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Devona E Faulk can be reached at 571-272-7515. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/GORDON G LIU/Primary Examiner, Art Unit 2618