Claims
- 1. A 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 non-symmetric pruned tetrahedral interpolator comprising:
- a first 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 configured for receiving one of a set of control inputs and having a multiplexer output, each of said multiplexers of said first set for selecting from said interpolation data values responsive to said one of said set of control inputs;
- a second set of 2.sup.n -2 control input computation blocks with each of said control input computation blocks coupled to one of said multiplexers, said second set of 2.sup.n -2 control input computation blocks to supply 2.sup.n -2 of said set of control inputs, where determining said 2.sup.n -2 of said set of control inputs includes using a first function and a second function; and
- a means for adding configured for receiving said multiplexer output of said first set.
- 2. The non-symmetric pruned tetrahedral interpolator as recited in claim 1, wherein:
- each of said multiplexers of said first set includes a configuration 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 tetrahedral interpolator as recited in claim 2, 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 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 -2 of said set of control inputs includes using g (N,i)=(v(i).vertline..about.m(i)) & N and h (N,i)=v(i).vertline.N for, respectively, said first function and said second 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.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 values of i ranging from n-1 to 0, and where N includes values ranging from 1 to 2.sup.d ; and
- computation of one of said set of control inputs includes using v(i) for one of said values of i equal to n-1.
- 4. The non-symmetric pruned tetrahedral 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 first set of multiplexers;
- said first input of one of said adders includes a configuration 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 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.
- 5. The non-symmetric pruned tetrahedral 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 tetrahedral interpolator as recited in claim 5, wherein:
- a printing device includes said non-symmetric pruned tetrahedral interpolator for performing a color space conversion.
- 7. The non-symmetric pruned tetrahedral 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 tetrahedral 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 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 non-symmetric tetrahedral interpolator comprising:
- a first set of 2.sup.d multiplexers with each of said multiplexers having a multiplexer output and configured to receive one of a first set of control inputs and said interpolation data values;
- a second set of 2.sup.d multiplexers with each of said multiplexers having a multiplexer output and configured to receive one of a second set control inputs and said interpolation data values;
- a third set of 2.sup.d adders with each of said adders having a first input, a second input, and an output, said third set of 2.sup.d adders having each of said first input of said adders coupled to one of said multiplexer output of said first set and having each of said second input coupled to one of said multiplexer output of said second set;
- a fourth set of 2.sup.d control input computation blocks with each of said control input computation blocks coupled to one of said multiplexers of said first set to supply said first set of control inputs determined using a first function; and
- a fifth set of 2.sup.d control input computation blocks with each of said control input computation blocks coupled to one of said multiplexers of said second set to supply said second set of control inputs determined using a second function.
- 10. The non-symmetric tetrahedral 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 of said first set and said second set includes a configuration 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, respectively, said one of said first set control inputs and said one of said second set control inputs; and
- said first set and said second set of 2.sup.d multiplexers, said third set of 2.sup.d adders, and said fourth set and said fifth set of 2.sup.d control input computation blocks form a stage.
- 11. The non-symmetric tetrahedral 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
- 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 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 said first set of control inputs and said second set of control inputs by, respectively, said fourth set and said fifth set of control input computation blocks includes using g (N,i)=(v(i).vertline..about.m(i)) & N and h (N,i)=v(i).vertline.N for, respectively, said first function and said second 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.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 a value of 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 tetrahedral interpolator as recited in claim 11, further comprising:
- an additional n-1 of said first set of 2.sup.d multiplexers;
- an additional n-1 of said second set of 2.sup.d multiplexers;
- an additional n-1 of said third set of 2.sup.d adders;
- an additional n-1 of said fourth set of 2.sup.d control input computation blocks;
- an additional n-1 of said fifth set of 2.sup.d control input computation blocks, and; corresponding of said n-1 additional of said first set and said second set of 2.sup.d multiplexers, said third set of 2.sup.d adders, said fourth set of 2.sup.d control input computation blocks, and said fifth 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 first set and said second set of 2.sup.d multiplexers coupled to said output of one of said third set of 2.sup.d adders of another of said stage.
- 13. The non-symmetric tetrahedral 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 tetrahedral interpolator as recited in claim 13, wherein:
- a printing device includes said non-symmetric tetrahedral interpolator for performing a color space conversion.
- 15. 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, . . . nd of said 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 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, a method of non-symmetric pruned tetrahedral interpolation, comprising the steps of:
- computing a first set of 2.sup.n -2 values using g (N,i)=(v(i).vertline..about.m(i)) & N and h (N,i)=v(i).vertline.N, 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.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 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 -2 values, v(i) for one of said values of i equal to n-1, 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 tetrahedral interpolation as recited in claim 15, further comprising the steps of:
- dividing said sum by 2.sup.n ; and
- with said method of non-symmetric pruned tetrahedral interpolation for performing a color space conversion, printing using said sum divided by 2.sup.n.
- 17. The method of non-symmetric pruned tetrahedral 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 -2 values repeated in said first set of 2.sup.n-2 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 tetrahedral interpolation as recited in claim 17, 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.
- 19. The method of non-symmetric pruned tetrahedral interpolation as recited in claim 17 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 I-ISV, 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. 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 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 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, a method of non-symmetric tetrahedral interpolation, comprising the steps of:
- computing a first set of 2.sup.d values according to g (N,i)=(v(i).vertline..about.m(i)) & N and a second set of 2.sup.d values according to h (N,i)=v(i).vertline.N, 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.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 a value of 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
- selecting a first set of 2.sup.d pairs of said interpolation data values using said first set and said second set of 2.sup.d values; and
- computing a first set of 2.sup.d sums from said first set of 2.sup.d pairs.
- 21. The method of non-symmetric tetrahedral interpolation as recited in claim 20, further comprising the steps of:
- computing a third, a fifth, and a seventh set of 2.sup.d values according to said g (N,i)=(v(i).vertline..about.m(i)) & N, for said value of i equal, respectively, to n-2, n-3, and n-4, and where N ranges from 1 to 2.sup.d ;
- computing a fourth, a sixth, and an eighth set of 2.sup.d values according to said h(N,i)=v(i).vertline.N, for said value of 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 third set and said fourth 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 fifth set and said sixth set of 2.sup.d values;
- 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 seventh set and said eighth set of 2.sup.d values;
- computing a fourth set of 2.sup.d sums from said fourth set of 2.sup.d pairs; dividing a one of said fourth set of 2.sup.d sums by 16; and
- with said method of non-symmetric tetrahedral interpolation for performing a color space conversion, printing using said one of said fourth set of 2.sup.d sums by divided by 16.
- 22. The method of non-symmetric tetrahedral interpolation as recited in claim 21, 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.
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/989,998 entitled "COMMON NON-SYMMETRIC PRUNED RADIAL AND NON-SYMMETRIC PRUNED TETRAHEDRAL INTERPOLATION HARDWARE IMPLEMENTATION", 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 |