Claims
- 1. A non-symmetric pruned radial interpolator for interpolating between interpolation data values using input data values each having d components to generate output data values, said d components represented, correspondingly, by d sets of bits each partitioned to form d sets of lower order bits each having, respectively, n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d of said bits, said non-symmetric pruned radial interpolator comprising:
- a set of 2.sup.n -1 multiplexers where n equals the greatest of said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d, each of said multiplexers for receiving one of a set of control inputs and having a multiplexer output, said set of 2.sup.n -1 multiplexers for selecting from said interpolation data values responsive to said set of control inputs;
- a set of 2.sup.n -n-1 control input computation blocks with each of said control input computation blocks coupled to one of said multiplexers, said set of 2.sup.n -n-1 control input computation blocks to supply 2.sup.n -n-1 of said set of control inputs, where determining said 2.sup.n -n-1 of said set of control inputs includes using a first function; and
- a means for adding said interpolation data values selected by said set of 2.sup.n -1 multiplexers.
- 2. The non-symmetric pruned radial interpolator as recited in claim 1, wherein:
- each of said multiplexers of said set of 2.sup.n -1 multiplexers for receiving 2.sup.d of said interpolation data values to select one of said 2.sup.d of said interpolation data values.
- 3. The non-symmetric pruned radial interpolator as recited in claim 2, wherein:
- 1b.sub.1, 1b.sub.2, 1b.sub.3, . . . 1b.sub.d designate said d sets of lower order bits with a bit position of each bit of said d sets of lower order bits designated from a most significant of said lower order bits to a least significant of said lower order bits by corresponding values of i.sub.1, i.sub.2, i.sub.3 . . . i.sub.d each ranging, correspondingly, from n.sub.1 -1 to 0, n.sub.2 -1 to 0, n.sub.3 -1 to 0, . . . n.sub.d -1 to 0, computation of said 2.sup.n -n-1 of said set of control inputs includes using f(N, i)=v(i).vertline.(N & .about.m(i)) for said first function, where m(i)=2.sup.d-1 .times.Mask.sub.1 (i)+2.sup.d-2 .times.Mask.sub.2 (i)+2.sup.d-3 .times.Mask.sub.3 (i)+ . . . +2.sup.d-d .times.Mask.sub.d (i), each of Mask.sub.j =2.sup.k -1 for one value of k selected from said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d and for j ranging from 1 to d, v(i)=m(i) & (2.sup.d-1 .times.1b.sub.1 (i)+2.sup.d-2 .times.1b.sub.2 (i)+2.sup.d-3 .times.1b.sub.3 (i)+ . . . +2.sup.d-d .times.1b.sub.d (i)) for values of i ranging from n-1 to 0, and where N includes values ranging from 1 to 2.sup.d ; and
- computation of n of said set of control inputs includes using v(i) for said values of i ranging from n-1 to 0.
- 4. The non-symmetric pruned radial interpolator as recited in claim 3, wherein:
- said means for adding includes 2.sup.n -1 adders each having a first input, a second input, and an output;
- 2.sup.n-1 -1 of said adders each have said first input and said second input coupled to one of said multiplexer output of said multiplexers;
- said first input of one of said adders for receiving one of said 2.sup.d interpolation data values selected using d sets of higher order bits partitioned from said d sets of bits and said second input couples to one of said multiplexer output of said set of 2.sup.n -1 multiplexers; and
- 2.sup.n -(2.sup.n-1 -1) of said adders each have said first input and said second input coupled to said output of another of said adders.
- 5. The non-symmetric pruned radial interpolator as recited in claim 4, wherein:
- each of said interpolation data values includes D interpolation data value components; and
- each of said D interpolation data value components corresponds to a dimension of an output color space and each of said d components of said input data values corresponds to a dimension of an input color space.
- 6. The non-symmetric pruned radial interpolator as recited in claim 5, wherein:
- a printing device includes said non-symmetric pruned radial interpolator for
- performing a color space conversion.
- 7. The non-symmetric pruned radial interpolator as recited in claim 6, wherein:
- D equals 3, d equals 3, and n equals 4, said output color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space and said input color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space.
- 8. The non-symmetric pruned radial interpolator as recited in claim 6, wherein:
- D equals 4, d equals 3, and n equals 4, said output color space includes a CMYK color space and said input color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space.
- 9. A non-symmetric radial interpolator for interpolating between interpolation data values using input data values each having d components to generate output data values, said d components represented, correspondingly, by d sets of bits each partitioned to form d sets of lower order bits each having, respectively, n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d of said bits, said non-symmetric radial interpolator comprising:
- a set of 2.sup.d multiplexers with each of said multiplexers having a multiplexer output and with each of said multiplexers to receive a control input and said interpolation data values;
- a set of 2.sup.d adders with each of said adders having a first input, a second input, and an output, said set of 2.sup.d adders having each of said first input of said adders arranged for receiving one of said interpolation data values and having each of said second inputs coupled to one of said multiplexer output; and
- a set of 2.sup.d control input computation blocks with each of said control input computation blocks coupled to one of said multiplexers to supply said control input.
- 10. The non-symmetric radial interpolator as recited in claim 9, wherein:
- partitioning of said d sets of bits forms d sets of higher order bits used for selecting 2.sup.d of said interpolation data values;
- each of said multiplexers to receive said 2.sup.d of said interpolation data values for selecting one of said 2.sup.d of said interpolation data values responsive to said control input;
- each of said first input of said adders to receive one of said 2.sup.d of said interpolation data values; and
- said set of 2.sup.d multiplexers, said set of 2.sup.d adders, and said set of 2.sup.d control input computation blocks form a stage.
- 11. The non-symmetric radial interpolator as recited in claim 10, wherein:
- n equals the greatest of said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d ; and
- 1b.sub.1, 1b.sub.2, 1b.sub.3, . . . , 1b.sub.d designate said d sets of lower order bits with a bit position of each bit of said d sets of lower order bits designated from a most significant of said lower order bits to a least significant of said lower order bits by corresponding values of i.sub.1, i.sub.2, i.sub.3 . . . i.sub.d each ranging, correspondingly, from n.sub.1 -1, n.sub.2 -1, n.sub.3 -1, . . . n.sub.d -1 to 0 computation of 2.sup.d of said control input by said set of 2.sup.d control input computation blocks includes using f (N, i)=v(i).vertline.(N & .about.m(i)), where m(i)=2.sup.d-1 .times.Mask.sub.1 (i)+2.sup.d-2 .times.Mask.sub.2 (i)+2.sup.d-3 .times.Mask.sub.3 (i)+ . . . +2.sup.d-d .times.Mask.sub.d (i), each of Mask.sub.j =2.sup.k -1 for one value of k selected from said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d and for j ranging from 1 to d, v(i)=m(i) & (2.sup.d-1 .times.1b.sub.1 (i)+2.sup.d-2 .times.1b.sub.2 (i)+2.sup.d-3 .times.1b.sub.3 (i)+ . . . +2.sup.d-d .times.1b.sub.d (i)) for i equal to one of said i.sub.1, i.sub.2, i.sub.3 . . . i.sub.d corresponding to n, and where N ranges from 1 to 2.sup.d.
- 12. The non-symmetric radial interpolator as recited in claim 11, further comprising:
- an additional n-1 of said set of 2.sup.d multiplexers;
- an additional n-1 of said set of 2.sup.d adders; and
- an additional n-1 of said set of 2.sup.d control input computation blocks, corresponding of said n-1 additional of said set of 2.sup.d multiplexers, said set of 2.sup.d adders, and said set of 2.sup.d control input computation blocks connected to form an additional n-1 of said stage with each of said multiplexers of said additional of said set of 2.sup.d multiplexers coupled to said output of another one of said set of 2.sup.d adders and each of said first input of said adders of said additional of said set of 2.sup.d adders coupled to one of said output of another one of said set of 2.sup.d adders.
- 13. The non-symmetric radial interpolator as recited in claim 12, wherein:
- each of said interpolation data values includes D interpolation data value components; and
- each of said D interpolation data value components corresponds to a dimension of an output color space and each of said d components of said input data values corresponds to a dimension of an input color space.
- 14. The non-symmetric radial interpolator as recited in claim 13, wherein:
- a printing device includes said non-symmetric radial interpolator for performing a color space conversion.
- 15. A method of non-symmetric pruned radial interpolation with interpolation data values for selection using input data values each having d components, said d components represented by d sets of bits each partitioned to form d sets of higher order bits and d sets of lower order bits with said d sets of lower order bits each having, respectively, n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d of said bits, said d sets of lower order bits designated as 1b.sub.1, 1b.sub.2, . . . , 1b.sub.d with a bit position of each bit of said d sets of lower order bits designated from a most significant of said lower order bits to a least significant of said lower order bits by corresponding values of i.sub.1, i.sub.2, i.sub.3 . . . , i.sub.d each ranging, correspondingly, from n.sub.1 -1 to 0, n.sub.2 -1 to 0, n.sub.3 -1 to 0, . . . n.sub.d -1 to 0, comprising the steps of:
- computing a first set of 2.sup.n -n-1 values using f (N, i)=v(i).vertline.(N & .about.m(i)), where m(i)=2.sup.d-1 .times.Mask.sub.1 (i)+2.sup.d-2 .times.Mask.sub.2 (i)+2.sup.d-3 .times.Mask.sub.3 (i)+ . . . +2.sup.d-d .times.Mask .sub.d (i), each of Mask.sub.j =2.sup.k -1 for one value of k selected from said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d and for j ranging from 1 to d, v(i)=m(i) & (2.sup.d-1 .times.1b.sub.1 (i)+2.sup.d-2 .times.1b.sub.2 (i)+2.sup.d-3 .times.1b.sub.3 (i)+ . . . +2.sup.d-d .times.1b.sub.d (i) for values of i ranging from n-1 to 0 with n equal to the greatest of said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d, and where N includes values ranging from 1 to 2.sup.d ;
- selecting at least the minimum of 2.sup.n and 2.sup.d of said interpolation data values using ones of said first set of 2.sup.n -n-1 values, v(i) for said value of i ranging from n-1 to 0, and said d sets of higher order bits; and
- adding a second set of said interpolation data values formed from said interpolation data values from said step of selecting to generate a sum.
- 16. The method of non-symmetric pruned radial interpolation as recited in claim 15, further comprising the step of:
- dividing said sum by 2.sup.n.
- 17. The method of non-symmetric pruned radial interpolation as recited in claim 16, wherein:
- said second set of said interpolation data values includes multiple ones of said interpolation data values from said step of selecting selected using said ones of said first set of 2.sup.n -n-1 values repeated in said first set of 2.sup.n -n-1 values; and
- each of said interpolation data values includes D components that each correspond to a dimension of an output color space and each of said d components of said input data values corresponds to a dimension of an input color space.
- 18. The method of non-symmetric pruned radial interpolation as recited in claim 17, wherein:
- said method of non-symmetric pruned radial interpolation operates in a printing device to perform a color space conversion.
- 19. The method of non-symmetric pruned radial interpolation as recited in claim 18, wherein:
- D equals 3, d equals 3, and n equals 4, said output color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space and said input color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space.
- 20. The method of non-symmetric pruned radial interpolation as recited in claim 18, wherein:
- D equals 4, d equals 3, and n equals 4, said output color space includes a CMYK color space and said input color space includes a color space selected from the group consisting of a RGB, a Lab, a XYZ, a HSV, a Luv, a HLS, and a CMY color space.
- 21. A method of non-symmetric radial interpolation with interpolation data values for selection using input data values each having d components, said d components represented by d sets of bits each partitioned to form d sets of higher order bits and d sets of lower order bits with said d sets of lower order bits each having, respectively, n.sub.1, n.sub.2, n3, . . . n.sub.d of said bits, said d sets of lower order bits designated as 1b.sub.1, 1b.sub.2, . . , 1b.sub.d with a bit position of each bit of said d sets of lower order bits designated from a most significant of said lower order bits to a least significant of said lower order bits by corresponding values of i.sub.1, i.sub.2, i.sub.3, . . . i.sub.d each ranging, correspondingly, from n.sub.1 -1 to 0, n.sub.3 -1 to 0, n.sub.2 -1 to 0, . . . n.sub.d -1 to 0, comprising the steps of:
- computing a first set of 2.sup.d values according to f (N, i)=v(i).vertline.(N & .about.m(i)), where m(i)=2.sup.d-1 .times.Mask.sub.1 (i)+2.sup.d-2 .times.Mask.sub.2 (i)+2.sup.d-3 .times.Mask.sub.3 (i)+ . . . +2.sup.d-d .times.Mask.sub.d (i), each of Mask.sub.j =2.sup.k -1 for one value of k selected from said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d and for j ranging from 1 to d, v(i)=m(i) & (2.sup.d-1 .times.1b.sub.1 (i)+2.sup.d-2 .times.1b.sub.2 (i)+2.sup.d-3 .times.1b.sub.3 (i)+ . . . +2.sup.d-d .times.1b.sub.d (i)) for i equal to n-1 with n equal to the greatest of said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d, and where N ranges from 1 to 2.sup.d ;
- selecting a first set of 2.sup.d pairs of said interpolation data values using each of said first set of 2.sup.d values and a corresponding value of N; and
- computing a first set of 2.sup.d sums from said first set of 2.sup.d pairs.
- 22. The method of non-symmetric radial interpolation as recited in claim 21, further comprising the steps of:
- computing a second, a third, and a fourth set of 2.sup.d values according to f(N, i)=v(i).vertline.(N & .about.m(i)), for i equal, respectively, to n-2, n-3, and n-4, and where N ranges from 1 to 2.sup.d ;
- selecting a second set of 2.sup.d pairs from said first set of 2.sup.d sums using each of said second set of 2.sup.d values and a value of N corresponding to each of said second set of 2.sup.d values;
- computing a second set of 2.sup.d sums from said second set of 2.sup.d pairs;
- selecting a third set of 2.sup.d pairs from said second set of 2.sup.d sums using each of said third set of 2.sup.d values and said value of N;
- computing a third set of 2.sup.d sums from said third set of 2.sup.d pairs;
- selecting a fourth set of 2.sup.d pairs from said third set of 2.sup.d sums using each of said third set of 2.sup.d values and said value of N;
- computing a fourth set of 2.sup.d sums from said fourth set of 2.sup.d pairs; and
- dividing each of said fourth set of 2.sup.d sums by 16.
- 23. The method of non-symmetric radial interpolation as recited in claim 22, wherein:
- each of said interpolation data values includes D components that each correspond to a dimension of an output color space and each of said d components of said input data values corresponds to a dimension of an input color space.
- 24. The method of non-symmetric radial interpolation as recited in claim 23, wherein:
- said method of non-symmetric radial interpolation operates in a printing device to perform a color space conversion.
CROSS REFERENCE TO RELATED APPLICATIONS
This application includes subject matter related to the co-pending application Ser. No. 08/928,929 entitled: "RADIAL AND PRUNED RADIAL INTERPOLATION", the co-pending patent application Ser. No. 08/989,961 entitled: "TETRAHEDRAL AND PRUNED TETRAHEDRAL INTERPOLATION", the co-pending patent application Ser. No. 08/990,016 entitled: "COMMON PRUNED RADIAL AND PRUNED TETRAHEDRAL INTERPOLATION HARDWARE IMPLEMENTATION", the co-pending patent application Ser. No. 08/990,000 entitled: "NON-SYMMETRIC TETRAHEDRAL AND PRUNED TETRAHEDRAL INTERPOLATION", and the co-pending patent application Ser. No. 08/989/998 entitled "COMMON NON-SYMMETRIC PRUNED RADIAL AND NON-SYMMETRIC PRUNED TETRAHEDRAL INTERPOLATION HARDWARE IMPLEMENTATION", each incorporated by reference herein and filed, Dec. 12, 1997.
US Referenced Citations (14)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0366309A2 |
May 1990 |
EPX |