IP Library Granted Patent US 8,120,617
Granted Patent B2
US 8,120,617 · App. 11/042,106 · Granted Feb 21, 2012

Color conversion with many input channels

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,120,617
App. No.
11/042,106
Granted
Feb 21, 2012
Kind
B2
Abstract

A method and apparatus for color conversion useful for color devices having a large number of input channels, for example CMYK color printers having additional inks used to enhance the color printer's gamut. The color conversion is performed using a strata collection of look-up tables that stratify an n-dimensional color space into sets of lower dimensional subspaces. For lower dimension subspaces, the associated look-up tables may be closed, while for a higher dimension subspace, an associated look-up table may be open, leaving gaps in the subspace not enclosed by a look-up table. A color management module using the strata collection for color conversion may determine if a color conversion is for a color value that falls within a gap. If so, the color management module may use a relatively complex interpolation process. If not, the color management module may use a relatively simple interpolation process.

Claims (80)

1. A method of generating a set of LUTs that span a unit hypercube in an n (n≧5) dimensional input color space, each LUT outputting output color data in a m-dimensional output color space, the method comprising:

using a processor coupled to a memory to define in the memory a set of strata collections for the n-dimensional color space,

wherein, for each dimension k where k=3 to n dimensions, defining a strata collection of n-choose-k LUTs, each LUT having k-dimensional inputs and outputs, and

wherein the grid structure for higher dimension LUTs is less dense than lower dimension LUTs,

wherein each LUT in the strata collection of n-choose-k LUTs is either a closed LUT or an open LUT,

wherein each grid structure of a closed LUT and each grid structure of an open LUT is defined by k one-dimensional sampling grids:

Samp i : x 1 , x 2 , . . . , x d(i)

d(i)≧1 is the number of steps for the ith channel sampling,

wherein the closed LUT is a LUT with the additional requirement that for each Samp i , x 1 =0, x d(i) =1, and d(i)≧2,

wherein the open LUT is a LUT with the additional requirement that for each Samp i , x 1 >0, x d(i) =1, and

wherein for a k-dimensional subspace, an open LUT of such subspace leaves a gap in such subspace between the open LUT of such subspace and an open or closed LUT for a lower dimensional subspace of such subspace, and

populating the LUTs in the memory with values from the output color space.

2. The method of claim 1 , wherein for k=3, each LUT is closed.

3. The method of claim 2 , wherein the grid structure for each LUT is uniform.

4. The method of claim 1 , wherein for k=4, at least one LUT is closed and all other LUTs are open.

5. The method of claim 4 , wherein the grid structure for each closed LUT is uniform and the grid structure for each open LUT is nonuniform.

6. The method of claim 5 , wherein the placement of nodes in the nonuniform grid structure is determined by a pre-defined table.

7. The method of claim 5 , wherein the placement of nodes in the nonuniform grid structure is determined by a user-supplied array of values in the n-dimensional color space.

8. The method of claim 1 , wherein for k>4, all of the LUTs are open.

9. The method of claim 8 , wherein the grid structure for each closed LUT is uniform and the grid structure for each open LUT is nonuniform.

10. The method of claim 9 , wherein the placement of nodes in the nonuniform grid structure is determined by a pre-defined table.

11. The method of claim 9 , wherein the placement of nodes in the nonuniform grid structure is determined by a user-supplied array of values in the n-dimensional color space.

12. A method of color conversion using the strata collection generated in any of claims 1 to 11 , the color conversion method comprising:

interpolating output color values for input color values within closed LUTs and interior portions of open LUTs using a first interpolation process; and

interpolating output color values for input color values within a gap between an open LUT and a lower dimensional subspace, using a second interpolation process that is more computationally complex than the first interpolation process.

13. Computer-executable instructions stored on a non-transitory computer readable medium, the computer-executable instructions executable to generate a set of LUTs that span a unit hypercube in an n-dimensional color space, each LUT mapping from the n-dimensional color space to a second color space using a method according to any of claims 1 to 11 .

14. Computer-executable instructions stored on a non-transitory computer readable medium, said computer-executable instructions for color conversion using the strata collection generated in any of claims 1 through 11 , the computer-executable instructions comprising: interpolating output color values for input color values within closed LUTs and interior portions of open LUTs using a first interpolation process; and interpolating output color values for input color values within spaces between an open LUT and a lower dimensional subspace, using a second interpolation process that is more computationally complex than the first interpolation process.

15. A non-transitory computer-readable medium having computer-executable instructions stored thereon, the computer-executable instructions executable to generate a set of LUTs that span a unit hypercube in an n-dimensional color space, each LUT mapping from the n-dimensional color space to a second color space using a method according to any of claims 1 to 11 .

16. A non-transitory computer-readable medium having computer-executable instructions stored thereon, said computer-executable instructions for color conversion using the strata collection generated in any of claims 1 through 11 , the computer-executable instructions comprising: interpolating output color values for input color values within closed LUTs and interior portions of open LUTs using a first interpolation process; and interpolating output color values for input color values within a gap between an open LUT and a lower dimensional subspace, using a second interpolation process that is more computationally complex than the first interpolation process.

17. An apparatus for generating a set of LUTs that span a unit hypercube in an n-dimensional color space, each LUT mapping from the n-dimensional color space to a second color space, the apparatus comprising:

a processor; and

a program memory coupled to the processor and having programming instructions executable by the processor stored therein, the programming instructions executable to perform a method according to any of claims 1 to 11 .

18. An apparatus for color conversion using the strata collection generated in any of claims 1 through 11 , the apparatus comprising:

a processor; and

a program memory coupled to the processor and having programming instructions executable by the processor stored therein, the programming instructions comprising:

interpolating output color values for input color values within closed LUTs and interior portions of open LUTs using a first interpolation process; and

interpolating output color values for input color values within gap between an open LUT and a lower dimensional subspace, using a second interpolation process that is more computationally complex than the first interpolation process.

19. An apparatus for color conversion using a set of LUTs that span a unit hypercube in an n (n≧5) dimensional input color space, each LUT outputting output color data in a m dimensional output color space, the apparatus comprising:

a storing unit constructed to store a set of strata collections for the n-dimensional color space,

wherein, for each dimension k where k=3 to n dimensions, a strata collection of n-choose-k LUTs is defined, each LUT having k dimensional inputs and outputs, and

wherein each LUT in the strata collection of n-choose-k LUTs is either a closed LUT or an open LUT,

wherein each grid structure of a closed LUT and each grid structure of an open LUT is defined by k one-dimensional sampling grids:

Samp i : x 1 , x 2 , . . . , x d(i)

d(i)≧1 is the number of steps for the ith channel sampling,

wherein the closed LUT is a LUT with the additional requirement that for each Samp i , x 1 =0, x d(i) =1, and d(i)≧2,

wherein the open LUT is a LUT with the additional requirement that for each Samp i , x 1 >0, x d(i) =1, and

wherein for a k-dimensional subspace, an open LUT of such subspace leaves a gap in such subspace between the open LUT of such subspace and an open or closed LUT for a lower dimensional subspace of such subspace,

wherein the apparatus further comprises:

a computing unit constructed to compute a number of active channels of input color data represented by the n-dimensional input color space;

a selecting unit constructed to select, based on the number of active channels, a stratum corresponding to the input color data form the set of strata collections; and

an interpolator constructed to interpolate output color data for the input color data.

20. A method for color conversion using a set of LUTs that span a unit hypercube in an n (n≧5) dimensional input color space, each LUT outputting output color data in a m dimensional output color space, the method comprising the steps of:

storing a set of strata collections for the n-dimensional color space in a storing unit,

wherein, for each dimension k where k=3 to n dimensions, a strata collection of n-choose-k LUTs is defined, each LUT having k dimensional inputs and outputs, and

wherein each LUT in the strata collection of n-choose-k LUTs is either a closed LUT or an open LUT,

wherein each grid structure of a closed LUT and each grid structure of an open LUT is defined by k one-dimensional sampling grids:

Samp i : x 1 , x 2 , . . . , x d(i)

d(i)≧1 is the number of steps for the ith channel sampling,

wherein the closed LUT is a LUT with the additional requirement that for each Samp i , x 1 =0, x d(i) =1, and d(i)≧2,

wherein the open LUT is a LUT with the additional requirement that for each Samp i , x 1 >0, x d(i) =1, and

wherein for a k-dimensional subspace, an open LUT of such subspace leaves a gap in such subspace between the open LUT of such subspace and an open or closed LUT for a lower dimensional subspace of such subspace,

wherein the method further comprises the steps of:

computing a number of active channels of input color data represented by the n-dimensional input color space;

selecting, based on the number of active channels, a stratum corresponding to the input color data from the set of strata collections; and

interpolating output color data for the input color data.

21. A non-transitory computer-readable memory medium having computer-executable process steps retrievably stored thereon, for color conversion using a set of LUTs that span a unit hypercube in an n (n≧5) dimensional input color space, each LUT outputting output color data in a m dimensional output color space, wherein said process steps comprise:

a storing step to store a set of strata collections for the n-dimensional color space,

wherein, for each dimension k where k=3 to n dimensions, a strata collection of n-choose-k LUTs is defined, each LUT having k dimensional inputs and outputs, and

wherein each LUT in the strata collection of n-choose-k LUTs is either a closed LUT or an open LUT,

wherein each grid structure of a closed LUT and each grid structure of an open LUT is defined by k one-dimensional sampling grids:

Samp i : x 1 , x 2 , . . . , x d(i)

d(i)≧1 is the number of steps for the ith channel sampling,

wherein the closed LUT is a LUT with the additional requirement that for each Samp i , x 1 =0, x d(i) =1, and d(i)≧2,

wherein the open LUT is a LUT with the additional requirement that for each Samp i , x 1 >0, x d(i) =1, and

wherein for a k-dimensional subspace, an open LUT of such subspace leaves a gap in such subspace between the open LUT of such subspace and an open or closed LUT for a lower dimensional subspace of such subspace,

wherein said process steps further comprise:

a computing step to compute a number of active channels of input color data represented by the n-dimensional input color space;

a selecting step to select, based on the number of active channels, a stratum corresponding to the input color data from the set of strata collections; and

an interpolating step to interpolate output color data for the input color data.

22. A method according to claim 1 , wherein with respect to the open LUT and the additional requirement of x 1 >0, not all the color spaces defined by k-dimensional inputs, which are input color spaces of the LUT, are covered.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2008
From: CANON KABUSHIKI KAISHA
To: CANON KABUSHIKI KAISHA; MICROSOFT CORPORATION
Reel/Frame 021379/0753 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2005
From: TIN, SIU-KEI; NEWMAN, TODD D.
To: CANON KABUSHIKI KAISHA
Reel/Frame 016234/0871 →