System and method for converting over-range colors
AssigneeAdobe Systems Incorporated
InventorsManish S. Kulkarni, Lars U. Borg
Life of this patent
Estimating the term…
Abstract
A method includes dividing an input range of color values of a first color space into a plurality of sub-ranges, wherein at least one of the sub-ranges comprises an over-range color value. The method also includes determining for each sub-range a level of accuracy in converting color values within each sub-range. The method further includes determining a processing step to be applied to input color values in each sub-range based on the determined level of accuracy.
Claims25
A method comprising:
- dividing, by operation of a computer, an input range of color component values of a first color space into a plurality of sub-ranges, wherein the plurality of sub-ranges includes one or more sub-ranges having a plurality of in-range values and one or more sub-ranges having a plurality of over-range values;
- determining, by operation of a computer, for each sub-range a level of accuracy for converting color component values within the sub-range, wherein the level of accuracy for each sub-range corresponds to a number of data points for the sub-range to be used in at least one dimension of a multi-dimensional look-up table for mapping color values in the first color space to corresponding color values in a second color space, with at least one sub-range having a plurality of over-range values including a plurality of data points;
- generating a one-dimensional look up table (1D LUT) based on the determined levels of accuracy for the sub-ranges, wherein the 1D LUT includes data points corresponding to the input color range and values correlating with the determined level accuracy for each sub-range, such that a slope of line segments mapping the points to the values corresponds to the levels of accuracy;
- generating a multi-dimensional look up table for converting input color values in the first color space to corresponding color values in the second color space, wherein generating a multi-dimensional look up table comprises:
- applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space;
- and
- applying one or more processing operations that convert colors from the first color space to the second color space;
- and
- identifying, by operation of a computer, one or more processing operations for converting input color values in the first color space to color values in the second color space based upon the determined levels of accuracy, wherein the processing operations include:
- using the 1D LUT and the multi-dimensional look-up table for mapping of specific color values in the first color space to corresponding color values in the second color space according to the determined levels of accuracy for each sub-range including the at least one sub-range having a plurality of over-range values, wherein each dimension of the multi-dimensional look-up table includes a plurality of grid points corresponding to over-range values, with the number of grid points corresponding to over-range values being identified based on the determined levels of accuracy for the one or more sub-ranges having a plurality of over-range values;
- and
- calculating interpolated color values corresponding to input color values in the first color space that do not match the specific color values.
A method comprising:
- receiving, by operation of a computer, an input color value in a first color space, wherein the input color value is outside of a range of in-range color values in the first color space, the input color value is within a particular sub-range of color values in the first color space, and the particular sub-range of color values includes a plurality of color values in the first color space;
- and
- converting, by operation of a computer, the input color value to a corresponding output color value in a second color space using a one-dimensional look up table (1D LUT) defining a pre-determined accuracy level associated with each of a plurality of sub-ranges including the particular sub-range, wherein the pre-determined accuracy level associated with the particular sub-range corresponds to a number of data points for the particular sub-range used in at least one of dimension of a multi-dimensional look-up table for mapping color values in the first color space to corresponding color values in the second color space and the multi-dimensional look up table is generated by applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space and applying one or more processing operations that convert colors from the first color space to the second color space, and converting the input color value to a corresponding output color value in the second color space includes applying the 1D LUT to the input color values and identifying interpolated color values based on the data points in the multi-dimensional look-up table, with each dimension of the multi-dimensional look-up table including a plurality of grid points corresponding to over-range values, and with the number of grid points corresponding to over-range values for the particular sub-range being identified based on the pre-determined accuracy level associated with the particular sub-range.
A computer program product, encoded on a non-transitory computer-readable storage medium, operable to cause a data processing apparatus to perform operations comprising:
- dividing an input color range of a first color space into a plurality of sub-ranges, wherein the plurality of sub-ranges includes one or more sub-ranges having a plurality of in-range values and one or more sub-ranges includes a plurality of over-range colors;
- determining for each sub-range a level of accuracy in converting colors having component values within the sub-range, wherein the level of accuracy for each sub-range corresponds to a number of data points for the sub-range to be used in at least one of dimension of a multi-dimensional look-up table for mapping color values in the first color space to corresponding color values in a second color space, with at least one sub-range having a plurality of over-range values including a plurality of data points;
- generating a one-dimensional look up table (1D LUT) based on the determined levels of accuracy for the sub-ranges, wherein the 1D LUT includes data points corresponding to the input color range and values correlating with the determined level accuracy for each sub-range, such that a slope of line segments mapping the points to the values corresponds to the levels of accuracy;
- generating a multi-dimensional look up table for converting input color values in the first color space to corresponding color values in the second color space, wherein generating a multi-dimensional look up table comprises:
- applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space;
- and
- applying one or more processing operations that convert colors from the first color space to the second color space;
- and
- defining one or more processing operations to be applied to input color values in each sub-range, wherein the processing operations for each sub-range are based, at least in part, on the data points in the 1D LUT corresponding to the input color range and values corresponding to the determined level of accuracy for the sub-range and include identifying interpolated color values, from a multi-dimensional look-up table generated by applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space and applying one or more processing operations that convert colors from the first color space to the second color space, with the interpolated color values corresponding to input color values that do not match the data points for the sub-range, with each dimension of the multi-dimensional look-up table including a plurality of grid points corresponding to over-range values, with the number of grid points corresponding to over-range values being identified based on the determined levels of accuracy for the one or more sub-ranges having a plurality of over-range values.
A computer program product, encoded on a non-transitory computer-readable storage medium, operable to cause a data processing apparatus to perform operations comprising:
- receiving an input color value in a first color space, wherein the input color value is outside of a range of in-range color values in the first color space, the input color value is within a particular sub-range of color values in the first color space, and the particular sub-range of color values includes a plurality of color values in the first color space;
- and
- converting the input color value to a corresponding output color value in a second color space using a one-dimensional look up table (1D LUT) defining a pre-determined accuracy level associated with each of a plurality of sub-ranges including the particular sub-range, wherein the pre-determined accuracy level associated with the particular sub-range corresponds to a number of data points for the particular sub-range used in at least one of dimension of a multi-dimensional look-up table for mapping color values in the first color space to corresponding color values in the second color space and the multi-dimensional look up table is generated by applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space and applying one or more processing operations that convert colors from the first color space to the second color space, and converting the input color value to a corresponding output color value in the second color space includes applying the 1D LUT to the input color values and identifying interpolated color values based on the data points in the multi-dimensional look-up table, with each dimension of the multi-dimensional look-up table including a plurality of grid points corresponding to over-range values, and with the number of grid points corresponding to over-range values for the particular sub-range being identified based on the pre-determined accuracy level associated with the particular sub-range.
A system comprising:
- a memory operable to store accuracy data and data defining conversion processing operations;
- and
- a processor coupled to the memory operable to:
- divide an input range of color values of a first color space into a plurality of sub-ranges, wherein the plurality of sub-ranges includes one or more sub-ranges having a plurality of in-range values and one or more of the sub-ranges includes a plurality of over-range color values;
- determine for each sub-range a level of accuracy in converting color values within each sub-range, wherein the level of accuracy for each sub-range corresponds to a number of data points for the sub-range to be used in at least one of dimension of a multi-dimensional look-up table for mapping color values in the first color space to corresponding color values in a second color space;
- generate a one-dimensional look up table (1D LUT) based on the determined levels of accuracy for the sub-ranges, wherein the 1D LUT includes data points corresponding to the input color range and values correlating with the determined level accuracy for each sub-range, such that a slope of line segments mapping the points to the values corresponds to the levels of accuracy;
- generate a multi-dimensional look up table for converting input color values in the first color space to corresponding color values in the second color space, wherein generating a multi-dimensional look up table comprises:
- applying an inverse of the 1D LUT to a regularly spaced multi-dimensional grid of colors values in the first color space;
- and
- applying one or more processing operations that convert colors from the first color space to the second color space;
- and
- define a processing operation to be applied to input color values in each sub-range, wherein the processing operation for each sub-range is based, at least in part, on the 1D LUT defining the determined level of accuracy and includes identifying interpolated color values, from the multi-dimensional look-up table, corresponding to input color values that do not match the data points for the sub-range, with each dimension of the multi-dimensional look-up table including a plurality of grid points corresponding to over-range values, with the number of grid points corresponding to over-range values being identified based on the determined levels of accuracy for the one or more sub-ranges having a plurality of over-range values.
Dependencies are inferred from the claim text.