대표
청구항
▼
What is claimed is: 1. A computer-implemented method for using a color table, the color table defining a mapping from a source color space representing colors in source color coordinates to a destination color space representing colors in destination color coordinates, the color table defining for each of a domain of source colors in the source color space a corresponding destination color in the destination color space, the method comprising: receiving an input color represented in the source color space; determining a location of the input color in a ...
What is claimed is: 1. A computer-implemented method for using a color table, the color table defining a mapping from a source color space representing colors in source color coordinates to a destination color space representing colors in destination color coordinates, the color table defining for each of a domain of source colors in the source color space a corresponding destination color in the destination color space, the method comprising: receiving an input color represented in the source color space; determining a location of the input color in a cell of the color table in terms of cell coordinate values in a cell coordinate system, each corner of the cell representing a source color and a corresponding destination color, each coordinate value corresponding to a dimension of the source color space; determining an order of the cell coordinate values; determining a processing order of the dimensions of the source color space according to the order of the cell coordinate values; and using the cell coordinate values in the processing order to calculate an output color represented in the destination color space, making no more interpolation calculations than the number of source color space dimensions multiplied by the number of destination color space dimensions, including detecting when adjacent source color coordinates in the processing order have identical values and in response performing a single interpolation calculation for all the detected adjacent source color coordinates to calculate a single contribution to the calculated output color. 2. The method of claim 1, wherein determining an order comprises determining an order of the cell coordinate values from large to small. 3. The method of claim 1, wherein determining an order comprises determining an order of the cell coordinate values from small to large. 4. The method of claim 1, wherein using the cell coordinate values in the processing order to calculate an output color comprises: determining whether a cell coordinate value of zero has been reached and establishing that an early termination condition has been reached when a cell coordinate value of zero has been reached; interpolating a contribution to the output color from each cell coordinate value associated with the input color until a termination condition is reached, while excluding previously processed cell coordinates; and adding the interpolated contributions to generate an output color corresponding to the input color. 5. The method of claim 4, further comprising establishing that a termination condition has been reached when all cell coordinate values associated with the input color have been processed. 6. The method of claim 1, wherein using the cell coordinate values in the processing order to calculate an output color comprises: interpolating, in parallel, contributions to all destination color coordinates associated with the output color from each source color coordinate associated with the input color. 7. The method of claim 1, wherein using the cell coordinate values in the processing order to calculate an output color comprises: interpolating a contribution to one destination color coordinate associated with the output color from each source color coordinate associated with the input color; and repeating the interpolating step for all remaining destination color coordinates associated with the output color. 8. The method of claim 1, wherein using the cell coordinate values in the processing order to calculate an output color further comprises: if the input color corresponds to a source color represented in a cell corner, assigning the destination color coordinates associated with the output color to be equal to the destination color coordinates for the destination color corresponding to the source color. 9. The method of claim 1, wherein each cell has a cell coordinate system with a same range of coordinate values. 10. The method of claim 1, wherein the source color space and the destination color space are selected from the group of color spaces consisting of RGB, CMY, L*a*b*, YCC, L*u*v*, Yxy, HSV, CMYK, MCYK, RGBW, hexachrome, and spectral data color spaces. 11. The method of claim 1, wherein the cell coordinate system is aligned with at least one edge of a cell of the color table. 12. A computer-implemented method for using a color table to determine an output color in a destination color space based on an input color in a source color space, the color table defining a mapping from the source color space representing colors in source color coordinates to a destination color space representing colors in destination color coordinates, the color table defining for each of a domain of source colors in the source color space a corresponding destination color in the destination color space, the method comprising: receiving an input color represented in the source color space; determining a cell of the color table that encloses the input color, each corner of the cell representing a source color and a corresponding destination color and one corner of the cell being the cell origin; determining a location of the input color within the cell in terms of cell coordinate values in a cell coordinate system having an origin coinciding with the cell origin, each coordinate value corresponding to a dimension of the source color space; setting the destination color of the cell origin to be an initial output color; selecting the highest cell coordinate value for the input color; obtaining the destination color at the corner of the cell that is opposite to the cell origin for the source color space dimension corresponding to the selected cell coordinate value; interpolating a contribution to the output color using the selected cell coordinate value and the destination colors at the origin and at the opposite corner; adding the interpolated contribution to the output color, determining a final output color by repeating the steps of selecting, obtaining, interpolating and adding, while using the corner opposite to the cell origin as a new cell origin and excluding processed cell coordinate values, at each step determining whether a cell coordinate value of zero has been reached and terminating when a cell coordinate value of zero has been reached. 13. A computer program product, tangibly stored on a computer-readable medium, for using a color table, the color table defining a mapping from a source color space representing colors in source color coordinates to a destination color space representing colors in destination color coordinates, the color table defining for each of a domain of source colors in the source color space a corresponding destination color in the destination color space, comprising instructions operable to cause a programmable processor to: receive an input color represented in the source color space; determine a location of the input color in a cell of the color table in terms of cell coordinate values in a cell coordinate system, each corner of the cell representing a source color and a corresponding destination color, each coordinate value corresponding to a dimension of the source color space; determine an order of the cell coordinate values; determine a processing order of the dimensions of the source color space according to the order of the cell coordinate values; and use the cell coordinate values in the processing order to calculate an output color represented in the destination color space, making no more interpolation calculations than the number of source color space dimensions multiplied by the number of destination color space dimensions, including detecting when adjacent source color coordinates in the processing order have identical values and in response performing a single interpolation calculation for all the detected adjacent source color coordinates to calculate a single contribution to the calculated output color. 14. The computer program product of claim 13, wherein the instructions to determine an order comprise instructions to determine an order of the cell coordinate values from large to small. 15. The computer program product of claim 13, wherein the instructions to determine an order comprises instructions to determine an order of the cell coordinate values from small to large. 16. The computer program product of claim 13, wherein the instructions to use the cell coordinate values in the processing order to calculate an output color comprise instructions to: determine whether a cell coordinate value of zero has been reached and establish that an early termination condition has been reached when a cell coordinate value of zero has been reached; interpolate a contribution to the output color from each cell coordinate value associated with the input color until a termination condition is reached, while excluding previously processed cell coordinates; and add the interpolated contributions to generate an output color corresponding to the input color. 17. The computer program product of claim 16, further comprising instructions to establish that a termination condition has been reached when all cell coordinate values associated with the input color have been processed. 18. The computer program product of claim 13, wherein the instructions to use the cell coordinate values in the processing order to calculate an output color comprise instructions to: interpolate, in parallel, contributions to all destination color coordinates associated with the output color from each source color coordinate associated with the input color. 19. The computer program product of claim 13, wherein the instructions to use the cell coordinate values in the processing order to calculate an output color comprise instructions to: interpolate a contribution to one destination color coordinate associated with the output color from each source color coordinate associated with the input color; and repeat the interpolating step for all remaining destination color coordinates associated with the output color. 20. The computer program product of claim 13, wherein the instructions to use the cell coordinate values in the processing order to calculate an output color further comprise instructions to: assign the destination color coordinates associated with the output color to be equal to the destination color coordinates for the destination color corresponding to the source color if the input color corresponds to a source color represented in a cell corner. 21. The computer program product of claim 13, wherein each cell has a cell coordinate system with a same range of coordinate values. 22. The computer program product of claim 13, wherein the source color space and the destination color space are selected from the group of color spaces consisting of RGB, CMY, L*a*b*, YCC, L*u*v*, Yxy, RSV, CMYK, MCYK, RGBW, hexachrome, and spectral data color spaces. 23. The computer program product of claim 13, wherein the cell coordinate system is aligned with at least one edge of a cell of the color table. 24. A computer program product, tangibly stored on a computer-readable medium, for using a color table to determine an output color in a destination color space based on an input color in a source color space, the color table defining a mapping from the source color space representing colors in source color coordinates to a destination color space representing colors in destination color coordinates, the color table defining for each of a domain of source colors in the source color space a corresponding destination color in the destination color space, comprising instructions operable to cause a programmable processor to: receive an input color represented in the source color space; determine a cell of the color table that encloses the input color, each corner of the cell representing a source color and a corresponding destination color and one corner of the cell being the cell origin; determine a location of the input color within the cell in terms of cell coordinate values in a cell coordinate system having an origin coinciding with the cell origin, each coordinate value corresponding to a dimension of the source color space; set the destination color of the cell origin to be an initial output color, select the highest cell coordinate value for the input color; obtain the destination color at the corner of the cell that is opposite to the cell origin for the source color space dimension corresponding to the selected cell coordinate value; interpolate a contribution to the output color using the selected cell coordinate value and the destination colors at the origin and at the opposite corner; add the interpolated contribution to the output color; determine a final output color by repeating the steps of select, obtain, interpolate and add, while using the corner opposite to the cell origin as a new cell origin and excluding processed cell coordinate values, at each step determining whether a cell coordinate value of zero has been reached and terminating when a cell coordinate value of zero has been reached.