Claims
- 1. A pruned radial interpolator for interpolating between interpolation data values using input data values each having d components to generate output data values, each of said interpolation data values includes a plurality of interpolation data value bits, said d components of said input data values represented by d sets of bits each partitioned to form d sets of higher order bits and d sets of lower order bits, said d sets of higher order bits used for selecting 2.sup.d of said interpolation data values, said pruned radial interpolator comprising:
- a first multiplexer having a first multiplexer output, said first multiplexer configured for receiving said 2.sup.d of said interpolation data values, said first multiplexer for selecting a first one of said 2.sup.d of said interpolation data values responsive to a first value determined from said d sets of lower order bits; and
- a first adder having a first input, a second input, and an output, said first input coupled to said first multiplexer output, said second input configured to receive a second one of said 2.sup.d of said interpolation data values selected using said d sets of upper order bits.
- 2. The pruned radial interpolator as recited in claim 1, further comprising:
- a second adder having a first input, a second input, and an output, said first input of said second adder coupled to said output of said first adder; and
- a second multiplexer having a second multiplexer output, said second multiplexer configured for receiving said 2.sup.d of said interpolation data values, said second multiplexer for selecting a third one of said 2.sup.d of said interpolation data values responsive to a second value determined from said d sets of lower order bits, said second multiplexer output coupled to said second input of said second adder with the order of connection of said interpolation data value bits of said third one of said 2.sup.d of said interpolation data values accomplishing a multiplication by 2.
- 3. The pruned radial interpolator as recited in claim 2, further comprising:
- a third adder having a first input, a second input, and an output;
- a third multiplexer having a third multiplexer output, said third multiplexer configured for receiving said 2.sup.d of said interpolation data values, said third multiplexer for selecting a fourth one of said 2.sup.d of said interpolation data values responsive to a third value determined from said d sets of lower order bits, said third multiplexer output coupled to said first input of said third adder with the order of connection of said interpolation data value bits of said fourth one of said 2.sup.d of said interpolation data values accomplishing a multiplication by 4;
- a fourth multiplexer having a fourth multiplexer output, said fourth multiplexer configured for receiving said 2.sup.d of said interpolation data values, said fourth multiplexer for selecting a fifth one of said 2.sup.d of said interpolation data values responsive to a fourth value determined from said d sets of lower order bits, said fourth multiplexer output coupled to said second input of said third adder with the order of connection of said interpolation data value bits of said fifth one of said 2.sup.d of said interpolation data values accomplishing a multiplication by 8; and
- a fourth adder having a first input, a second input, and an output, said first input of said fourth adder coupled to said output of said second adder, said second input of said fourth adder coupled to said output of said third adder.
- 4. The pruned radial interpolator as recited in claim 3, wherein:
- lb.sub.1, lb.sub.2, lb.sub.3, . . . , lb.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 a value of i ranging, correspondingly, from 3 to 0, computation of each of said fourth, said third, said second, and said first values, each designated as, v(i) uses said d sets of lower order bits according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+2.sup.d-3 .times.lb.sub.3 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for each of said values of i from, respectively, 3 to 0.
- 5. The pruned radial interpolator as recited in claim 4 , further comprising:
- an additional (D-1) replications of said pruned radial interpolator where each of said interpolation data values includes D interpolation data value components, each of said pruned radial interpolator and said (D-1) replications of said pruned radial interpolator for interpolating between one of said D interpolation data value components of said interpolation data values to generate said output data values with each of said output data values including D output data value components.
- 6. The pruned radial interpolator as recited in claim 5, wherein:
- 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.
- 7. The pruned radial interpolator as recited in claim 6, wherein:
- a printing device includes said pruned radial interpolator for performing a color space conversion.
- 8. The pruned radial interpolator as recited in claim 7, wherein:
- D equals 3 and d equals 3, 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.
- 9. The pruned radial interpolator as recited in claim 7, wherein:
- D equals 4 and d equals 3, 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.
- 10. A pruned radial interpolator for interpolating between interpolation data values using input data values each having d components to generate output data values, each of said interpolation data values includes a plurality of interpolation data value bits, said d components of said input data values represented by d sets of bits each partitioned to form d sets of lower order bits with each of said d sets of lower order bits having n of said bits, said pruned radial interpolator comprising:
- n multiplexers each configured to receive said interpolation data values and one of a set of control inputs, each of said multiplexers having a multiplexer output, each of said multiplexers for selecting one of said interpolation data values responsive to said one of said set of control inputs; and
- a means for adding, each of said multiplexer output connected to said means for adding to accomplish a multiplication of each of selected of said interpolation data values by 2.sup.i respectively, for one of a value of i ranging from n-1 to 1, by ordering connections of said plurality of interpolation data value bits to said means for adding.
- 11. The pruned radial interpolator as recited in claim 10, wherein:
- each of said multiplexers includes a configuration to receive 2.sup.d of said interpolation data values;
- said set of control inputs includes n values determined from said d sets of lower order bits; and
- said means for adding includes n adders each having a first input, a second input, and an output, said first input of a first one of said n adders connected to a first one of said multiplexer output and said second input of said first one of said n adders configured to receive one of said 2.sup.d of said interpolation data values selected using d sets of higher order bits partitioned from said d sets of bits, each of (n-1) of said output of (n-1) of said n adders, including said output of said first one of said n adders, connected to one of said first inputs of a different one of said n adders, other than said first one of said n adders, each of (n-1) of n of said multiplexer output, other than said first one of said multiplexer output, connected to one of said second inputs of (n-1) of said adders, other than said second input of said first one of said n adders.
- 12. The pruned radial interpolator as recited in claim 11, wherein:
- lb.sub.1, lb.sub.2, lb.sub.3, . . . , lb.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 said value of i ranging, correspondingly, from n-1 to 0, computation of said n values, each designated as v(i), uses said d sets of lower order bits according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+2.sup.d-3 .times.lb.sub.3 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for each of said values of i; and
- said multiplication of each of said selected of said 2.sup.d of said interpolation data values by 2.sup.i occurs for a one of said value of i corresponding to that used for computation of said one of n values used for selection of the corresponding one of said 2.sup.d of said interpolation data values.
- 13. The pruned radial interpolator as recited in claim 12, further comprising:
- an additional (D-1) replications of said pruned radial interpolator where each of said interpolation data values includes D interpolation data value components, each of said pruned radial interpolator and said (D-1) replications of said pruned radial interpolator for interpolating between one of said D interpolation data value components of said interpolation data values to generate said output data values with each of said output data values including D output data value components.
- 14. The pruned radial interpolator as recited in claim 13, wherein:
- 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.
- 15. The pruned radial interpolator as recited in claim 14, wherein:
- a printing device includes said pruned radial interpolator for performing a color space conversion.
- 16. The pruned radial interpolator as recited in claim 15, wherein:
- D equals 3 and d equals 3, 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.
- 17. The pruned radial interpolator as recited in claim 15, wherein:
- D equals 4 and d equals 3, 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.
- 18. A 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 higher order bits and d sets of lower order bits with each of said d sets of lower order bits having n of said bits, said d sets of higher order bits used for selecting 2.sup.d of said interpolation data values, said radial interpolator comprising:
- a multiplexer having a multiplexer output and 2.sup.d of multiplexer inputs, said multiplexer configured to receive said 2.sup.d of interpolation data values through said 2.sup.d of multiplexer inputs, said multiplexer for selecting a one of said 2.sup.d of interpolation data values responsive to a first one of n values determined from said d sets of lower order bits; and
- 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 inputs arranged for receiving one of said 2.sup.d of interpolation data values and having each of said second inputs coupled to said multiplexer output of said multiplexer, said multiplexer and said set of 2.sup.d adders forming a stage.
- 19. The radial interpolator as recited in claim 18, wherein:
- lb.sub.1, lb.sub.2, lb.sub.3, . . . , lb.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 a value of i ranging, correspondingly, from n-1 to 0, computation of said n values, each designated as v(i), uses said d sets of lower order bits according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+2.sup.d-3 .times.lb.sub.3 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for each of said values of i, said first one of said n values corresponds to v(i) for said value of i equal to n-1.
- 20. The radial interpolator as recited in claim 19, further comprising:
- (n-1) additional of said multiplexer; and
- correspondingly, (n-1) additional of said set of 2.sup.d adders, corresponding of said (n-1) additional of said multiplexer and said (n-1) additional of said set of 2.sup.d adders forming (n-1) additional of said stage, each of said 2.sup.d multiplexer inputs of each of said (n-1) additional of said multiplexer coupled to one of 2.sup.d of said adder outputs of one of said stage, each of said multiplexer outputs of said (n-1) additional of said multiplexer coupled to each of said first inputs of corresponding of said set of 2.sup.d adders, each of said second inputs of said (n-1) additional of said set of 2.sup.d adders coupled to 2.sup.d of said outputs of another of said set of 2.sup.d adders.
- 21. The radial interpolator as recited in claim 20, further comprising:
- an additional (D-1) replications of said radial interpolator where each of said interpolation data values includes D interpolation data value components, each of said radial interpolator and said (D-1) replications of said radial interpolator for interpolating between one of said D interpolation data value components of said interpolation data values to generate said output data values with each of said output data values including D output data value components.
- 22. The radial interpolator as recited in claim 21, wherein:
- 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.
- 23. The radial interpolator as recited in claim 22, wherein:
- a printing device includes said pruned radial interpolator for performing a color space conversion.
- 24. 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 each of said d sets of lower order bits having n bits, said d sets of lower order bits designated as lb.sub.1, lb.sub.2, . . . , lb.sub.d with the bit position of each bit of said d sets of lower order bits designated from the most significant of said lower order bits to the least significant of said lower order bits by a value of i ranging, correspondingly, from n-1 to 0, a method of radial interpolation, comprising the steps of:
- selecting 2.sup.d of said interpolation data values using said d sets of higher order bits,
- computing a first value according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for said value of i equal to n-1);
- selecting a one of said 2.sup.d of said interpolation data values using said first value; and
- computing a first set of 2.sup.d sums by summing said one of said 2.sup.d of said interpolation data values with each of said 2.sup.d of said interpolation data values.
- 25. The method of radial interpolation as recited in claim 24, further comprising the steps of:
- computing a second value according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for said value of i equal to (n-2);
- selecting a one of said first set of 2.sup.d sums using said second value;
- computing a second set of 2.sup.d sums by summing said one of said first set of 2.sup.d sums with each of said first set of 2.sup.d sums;
- computing a third value according to v(i)+2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for said value of i equal to (n-3);
- selecting a one of said second set of 2.sup.d sums using said third value;
- computing a third set of 2.sup.d sums by summing said one of said second set of 2.sup.d sums with each of said second set of 2.sup.d sums;
- computing a fourth value according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for said value of i equal to (n-4);
- selecting a one of said third set of 2.sup.d sums using said fourth value;
- computing a fourth set of 2.sup.d sums by summing said one of said third set of 2.sup.d sums with each of said third set of 2.sup.d sums; and
- dividing a one of said fourth set of 2.sup.d sums by 16.
- 26. The method of radial interpolation as recited in claim 25, further comprising:
- with said method of radial interpolation for performing a color space conversion printing using said one of said fourth set of 2.sup.d sums by divided 16, where 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.
- 27. 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 each of said d sets of lower order bits having n bits, said d sets of lower order bits designated as lb.sub.1, lb.sub.2, . . . , lb.sub.d with the bit position of each bit of said d sets of lower order bits designated from the most significant of said lower order bits to the least significant of said lower order bits by a value of i ranging, correspondingly, from n-1 to 0, a method of pruned radial interpolation, comprising the steps of:
- computing n values according to v(i)=2.sup.d-1 .times.lb.sub.1 (i)+2.sup.d-2 .times.lb.sub.2 (i)+ . . . +2.sup.d-d .times.lb.sub.d (i) for said value of i ranging from (n-1) to 0;
- selecting (n+1) of said interpolation data values using said n values and said d sets of higher order bits with n of said (n+1) of said interpolation data values designated as P{v(i)} for i ranging from (n-1) to 0 and a one of said interpolation data values, selected using said d sets of higher order bits, designated as P{0}; and
- computing an interpolation result from said selected (n+1) of said interpolation data values according to (2.sup.n-1 .times.P{v((n-1))}+2.sup.n-2 .times.P{v((n-2))}+ . . . +2.sup.0 .times.P{v(0)}+P{0}).div.2.sup.n.
- 28. The method of pruned radial interpolation as recited in claim 27, further comprising:
- with said method of pruned radial interpolation for performing a color space conversion, printing using said interpolation result where 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.
- 29. The method of pruned radial interpolation as recited in claim 28, wherein:
- D equals 3 and d equals 3, 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.
- 30. The method of pruned radial interpolation as recited in claim 28, wherein:
- D equals 4 and d equals 3, 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.
CROSS REFERENCE TO RELATED APPLICATIONS
This application includes subject matter related to the co-pending application entitled: "TETRAHEDRAL AND PRUNED TETRAHEDRAL INTERPOLATION" having attorney's docket number 10970160-1, the co-pending patent application entitled: "COMMON PRUNED RADIAL AND PRUNED TETRAHEDRAL INTERPOLATION HARDWARE IMPLEMENTATION" having attorney's docket number 10970157-1, the co-pending patent application entitled "NON-SYMMETRIC RADIAL AND PRUNED RADIAL INTERPOLATION" having attorney's docket number 10970158-1, the co-pending patent application entitled: "NON-SYMMETRIC TETRAHEDRAL AND PRUNED TETRAHEDRAL INTERPOLATION" having attorney's docket number 10970156-1, and the co-pending patent application entitled "COMMON NON-SYMMETRIC PRUNED RADIAL AND NON-SYMMETRIC PRUNED TETRAHEDRAL INTERPOLATION HARDWARE IMPLEMENTATION" having attorney's docket number 10971846-1, each incorporated by reference herein and filed even date herewith.
US Referenced Citations (13)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0366309A2 |
May 1990 |
EPX |