Claims
- 1. A machine used for multiplication, comprising:
a. a first input number represented in a finite-precision numeric format in which:
i. negation is a low-cost operation ii. multiplication by a power of two is a low-cost operation which can be implemented substantially by shifting a group of bits in a number representation b. a first weight substantially equal to a member of the set consisting of cos(2π/3)and cos(π/3) c. means for computing a first product equal to the product of said first input and said first weight, said first means substantially comprising:
i. a negation operation, if said first weight is substantially equal to cos(2π/3) ii. a shifting operation whereby said first product may be computed with low-cost operations rather than with an expensive multiplication operation.
- 2. The machine of claim 1 used for computing a three-point transform which is a member of the set of transforms consisting of three-point discrete Fourier transforms, three-point inverse discrete Fourier transforms, three-point discrete cosine transforms, three-point inverse discrete cosine transforms, three-point discrete sine transforms, and three-point inverse discrete sine transforms.
- 3. The machine of claim 2 in which said three-point transform is used for computing a transform of size larger than three which is a member of the set of transforms consisting of discrete Fourier transforms of size larger than three, inverse discrete Fourier transforms of size larger than three, discrete cosine transforms of size larger than three, inverse discrete cosine transforms of size larger than three, sine transforms of size larger than three, and inverse sine transforms of size larger than three.
- 4. The machine of claim 1 used for computing a transform of size greater than three which is a member of the set of transforms consisting of discrete Fourier transforms of size greater than three, inverse discrete Fourier transforms of size greater than three, discrete cosine transforms of size greater than three, inverse discrete cosine transforms of size greater than three, discrete sine transforms of size greater than three, and inverse discrete sine transforms of size greater than three.
- 5. The machine of claim 1 in which:
a. said first weight is scaled by a first scaling factor b. said first scaling factor permits low-cost multiplication of a number by said first scaling factor, for instance, low-cost multiplication implemented with a small number of shifting, negation, and addition operations c. said first product is the product of said first input number, said first weight, and said first scaling factor whereby a scaled version of the product of said first input number and said first weight can be computed using low-cost operations rather than an expensive multiplication operation.
- 6. The machine of claim 1 in which said shifting operation of said means for computing said first product is implemented by hard-wired connection, for instance, by hard-wired connection of bit storage elements in a first digital register to the corresponding shifted bit storage elements in a second digital register, whereby said shifting operation can have no cost in a dedicated computing circuit.
- 7. A machine used for multiplication, comprising:
a. a first input number represented in a finite-precision numeric format in which:
i. negation is a low-cost operation ii. multiplication by a power of two is a low-cost operation which can be implemented substantially by shifting a group of bits in a number representation b. a first weight substantially equal to a member of the set consisting of cos(−2π/5) and cos(−3π/5) c. a second weight substantially equal to a member of the set consisting of cos(−4π/5) and cos(−π/5) d. means for computing a first product equal to the product of said first input number and one member of a first weight set consisting of said first weight and said second weight e. means for computing a second product equal to the product of said first input number and the other member of said first weight set using said first product whereby said first product may be used for low-cost computation of said second product.
- 8. The machine of claim 7 in which said means for computing said second product using said first product comprises:
a. means for computing a first intermediate product equal to the product of said first input number and a third weight substantially equal to minus one half, said means comprising a negation operation and a shifting operation b. means for subtracting said first product from said first intermediate product to produce said second product whereby computing said second product requires one shifting operation, one negation operation, and one subtraction operation.
- 9. The machine of claim 7 in which said means for computing said second product using said first product comprises:
a. a shifting operation for computing a first intermediate product equal to the product of said first input number and a third weight substantially equal to plus one half b. means for adding said first product to said first intermediate product to produce a second intermediate product c. means for negating said second intermediate product to produce said second product whereby computing said second product requires one shifting operation, one addition operation, and one negation operation.
- 10. The machine of claim 7 used for computing a five-point transform which is a member of the set of transforms consisting of five-point discrete Fourier transforms, five-point inverse discrete Fourier transforms, five-point discrete cosine transforms, five-point inverse discrete cosine transforms, five-point discrete sine transforms, and five-point inverse discrete sine transforms.
- 11. The machine of claim 10 in which said five-point transform is used for computing a transform of size larger than five which is a member of the set of transforms consisting of discrete Fourier transforms of size larger than five, inverse discrete Fourier transforms of size larger than five, discrete cosine transforms of size larger than five, inverse discrete cosine transforms of size larger than five, sine transforms of size larger than five, and inverse sine transforms of size larger than five.
- 12. The machine of claim 7 used for computing a transform of size greater than five which is a member of the set of transforms consisting of discrete Fourier transforms of size greater than five, inverse discrete Fourier transforms of size greater than five, discrete cosine transforms of size greater than five, inverse discrete cosine transforms of size greater than five, discrete sine transforms of size greater than five, and inverse discrete sine transforms of size greater than five.
- 13. The machine of claim 7 in which:
a. said first weight is scaled by a first scaling factor b. said second weight is scaled by said first scaling factor c. said first scaling factor permits low-cost multiplication of a number by said first scaling factor, for instance, low-cost multiplication implemented with a small number of shifting, negation, and addition operations d. said first product is the product of said first input number, said first weight, and said first scaling factor e. said second product is the product of said second input number, said second weight, and said first scaling factor whereby a scaled version of the product of said first input number and said first weight and a scaled version of the product of said first input number and said second weight can be computed using low-cost operations and a shared result rather than using two separate expensive multiplication operations.
- 14. The machine of claim 7 in which:
a. said means for computing said first product using said second product comprises shifting means b. said shifting means is implemented by hard-wired connection, for instance, by hard-wired connection of bit storage elements in a first digital register to the corresponding shifted bit storage elements in a second digital register whereby said shifting means can have no cost in a dedicated computing circuit.
- 15. A machine used for multiplication:
a. which can be used to compute the product of a first input number and a weight substantially equal to a member of the set consisting of cos(−2π/3) and cos(−π/3) b. which is not a general multiplier capable of computing the product of a first input number which can take on any value allowed by its finite-precision numeric format and a second input number which can take on any of a multiplicity of values allowed by its finite-precision numeric format c. which can be used to compute a first transform of size three which is a member of the set of transforms consisting of discrete Fourier transforms of size three, inverse discrete Fourier transforms of size three, discrete cosine transforms of size three, inverse discrete cosine transforms of size three, sine transforms of size three, and inverse sine transforms of size three d. which can be used to compute a first transform of size five which is a member of the set of transforms consisting of discrete Fourier transforms of size five, inverse discrete Fourier transforms of size five, discrete cosine transforms of size five, inverse discrete cosine transforms of size five, sine transforms of size five, and inverse sine transforms of size five whereby said machine can be used for computing said first transform of size three and for computing said first transform of size five, whereby said machine can be re-used in computing transforms of size three or greater in which three, five, or three and five are factors.
- 16. The machine of claim 15 which is a constant multiplier.
- 17. The constant multiplier of claim 16 which is used:
a. to compute the product of a first input number and a first weight coefficient substantially equal to a member of the set consisting of cos(−2π/3) and cos(−π/3) in three-point transforms b. to compute the product of a second input number and a weight substantially equal to a member of the set consisting of said first weight coefficient and the negative of said first weight coefficient in five-point transforms whereby said constant multiplier can be re-used in computing transforms with sizes that have factors three, five, or factors three and five.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The invention is related to SHARED MULTIPLICATION IN SIGNAL PROCESSING TRANSFORMS submitted as a separate application to the US PTO by Charles D. Murphy and having application Ser. No. 09/976,920 and filing date Oct. 15, 2001.