Claims
- 1. A common non-symmetric pruned radial and non-symmetric pruned tetrahedral 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 common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator comprising:
- a first set of 2.sup.n -1 multiplexers each configured for receiving one of a first set of control inputs and having a multiplexer output where n equals the greatest of said n.sub.1, n.sub.2, n.sub.3, . . . n.sub.d, each of said multiplexers of said first set for selecting from said interpolation data values responsive to said one of said first set of control inputs;
- a second set of 2.sup.n -2 multiplexers each having a multiplexer output, each of said multiplexer output of said second set coupled to one of said multiplexers of said first set of multiplexers, said second set of multiplexers to supply 2.sup.n -2 of said first set of control inputs by each of said second set of multiplexers selecting between one of a first set of values and one of a second set of values, responsive to one of a second set of control inputs, where determining said first set of values includes using a first function and determining said second set of values includes using a second function and a third function; and
- a means for adding configured for receiving said multiplexer output of said first set of multiplexers.
- 2. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 1, further comprising:
- a first set of 2.sup.n n-1 control input computation blocks with each of said control input computation blocks of said first set coupled to one of said multiplexers of said second set, said first set of control input computation blocks for using said first function to generate 2.sup.n -n-1 of said first set of values; and
- a second set of 2.sup.n -2 control input computation blocks with each of said control input computation blocks of said second set coupled to one of said multiplexers of said second set, said second set of control input computation blocks for using said second function and said third function to generate said second set of values.
- 3. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 2, wherein:
- each of said multiplexers of said first set includes 2.sup.d of multiplexer inputs for receiving 2.sup.d of said interpolation data values;
- each of said multiplexers of said second set includes a first multiplexer input and a second multiplexer input configured for receiving, respectively, said one of said first set of values and said one of said second set of values; and
- each of said multiplexers of said second set includes a configuration for using said one of said second set of control inputs to select between performing non-symmetric pruned radial interpolation and non-symmetric pruned tetrahedral interpolation.
- 4. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 3, 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 second set of values includes using g(N, i)=(v(i).vertline..about.m(i)) & N and h(N,i)=v(i).vertline.N for, respectively, said second function and said third 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.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 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 ;
- computation of 2.sup.n -n-1 of said first set of values includes using f(N, i)=v(i).vertline.(N & .about.m(i)) for said first function; and
- computation of n-1 of said first set of values includes using v(i) for said values of i ranging from n-2 to 0; and
- computation of one of said first set of control inputs includes using v(i) for one of said values of i equal to n-1.
- 5. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 4, 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 of said adders each have said first input and said second input coupled to one of said multiplexer output of said first set of multiplexers;
- said first input of one of said adders includes a configuration for receiving one of said interpolation data values selected using d sets of higher order bits partitioned from said d sets of bits and having said second input coupled to one of said multiplexer output of said first set of 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.
- 6. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 5, 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.
- 7. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 6, wherein:
- a printing device includes said common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator for performing a color space conversion.
- 8. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 7, 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.
- 9. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 7, 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.
- 10. A common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator for interpolating between interpolation data values using input data values each having three components to generate output data values, said components represented by three sets of bits each partitioned to form three sets of lower order bits, each having, respectively, n.sub.1, n.sub.2, n.sub.3 of said bits, and three sets of higher order bits, said common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator comprising:
- a first multiplexer having a first multiplexer output and configured for receiving a first control input and said interpolation data values, said first multiplexer for selecting from said interpolation data values responsive to said first control input;
- a second multiplexer having a second multiplexer output and configured for receiving a second control input and said interpolation data values, said second multiplexer for selecting from said interpolation data values responsive to said second control input;
- a third multiplexer having a third multiplexer output and configured for receiving a third control input and said interpolation data values, said third multiplexer for selecting from said interpolation data values responsive to said third control input;
- a fourth multiplexer having a fourth multiplexer output coupled to said second multiplexer to supply said second control input, said fourth multiplexer for selecting from a first value determined from a first function and a second value determined from a second function and a third function;
- a fifth multiplexer having a fifth multiplexer output coupled to said third multiplexer to supply said third control input, said fifth multiplexer for selecting from a third value determined from said first function and a fourth value determined from said second function and said third function; and
- a means for adding coupled to said first, said second, and said third multiplexer output and configured for receiving one of said interpolation data values determined from said three sets of higher order bits.
- 11. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 10, further comprising:
- a first control input computation block for generating said first value and coupled to said fourth multiplexer;
- a second control input computation block for generating said second value and coupled to said fourth multiplexer;
- a third control input computation block for generating said third value and coupled to said fifth multiplexer; and
- a fourth control input computation block for generating said fourth value and coupled to said fifth multiplexer.
- 12. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 11, wherein:
- said means for adding includes a first, a second, and a third adder each having a first input, a second input, and an output, said first input of said first adder coupled to said first multiplexer output, said second input of said first adder arranged for receiving said one of said interpolation data values determined from said three sets of higher order bits, said first input of said second adder coupled to said second multiplexer output, said second input of said second adder coupled to said third multiplexer output, said first and said second input of said third adder coupled to, respectively, said output of said first adder and said output of said second adder.
- 13. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 12, wherein:
- 1b.sub.1, 1b.sub.2, 1b.sub.3 designate said three 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 each ranging, correspondingly, from n.sub.1 -1 to 0, n.sub.2 -1 to 0, n.sub.3 -1 to 0;
- computation of said first value includes using v(i) for a value of i equal to 2, where v(i)=m(i) & (2.sup.2 .times.1b.sub.1 (i)+2.sup.1 .times.1b.sub.2 (i)+2.sup.0 .times.1b.sub.3 (i)), where m(i)=2.sup.2 .times.Mask.sub.1 (i)+2.sup.1 .times.Mask.sub.2 (i)+2.sup.0 .times.Mask.sub.3 (i) with 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 and for j ranging from 1 to 3;
- computation of said second value includes using g(N, i)=(v(i).vertline..about.m(i)) & N for said second function with a value of N equal to 3 and said value of i equal to 2;
- computation of said third value includes using f(N, i)=v(i).vertline.(N & .about.m(i)) for said first function with said value of N equal to 3 and said value of i equal to 2; and
- computation of said fourth value includes using h(N, i)=v(i).vertline.N for said third function with said value of N equal to 3 and said value of i equal to 2.
- 14. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 13, wherein:
- eight interpolation data values selected using said three sets of higher order bits form said interpolation data values received by each of said first, said second, and said third multiplexers.
- 15. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 14, 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 three components of said input data values corresponds to a dimension of an input color space.
- 16. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 15, wherein:
- a printing device includes said common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator for performing a color space conversion.
- 17. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 16, wherein:
- D equals 3 and 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.
- 18. The common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolator as recited in claim 16, wherein:
- D equals 4 and 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 Ser. No. 08/989,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/989,962 entitled "NON-SYMMETRIC RADIAL AND PRUNED RADIAL INTERPOLATION" and the co-pending patent application Ser. No. 08/990,000 entitled: "NON-SYMMETRIC TETRAHEDRAL AND PRUNED TETRAHEDRAL INTERPOLATION" each incorporated by reference herein and filed on Dec. 12, 1997.
US Referenced Citations (13)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0366309A2 |
May 1990 |
EPX |