Patent ID: 6973469

Claim:
A method of performing a two-dimensional discrete cosine transform (DCT) using a microprocessor having an instruction set that includes single-instruction multiple-data (SIMD) floating point instructions, wherein the method comprises: receiving a two-dimensional block of integer data having C columns and R rows, wherein each of the R rows contains a set of C row data values, wherein the block of integer data is indicative of a portion of an image, wherein each of C and R is an even integer; and for each row, loading the entire set of C row data values of the row into a set of C/2 registers of the microprocessor; converting the C row data values into floating point form, wherein each of the registers holds two of the floating point row data values, wherein said converting is accomplished using a packed integer word to floating-point conversion (pi2fw) instruction; and performing a plurality of weighted-rotation operations on the values in the registers, wherein the weighted-rotation operations are performed using SIMD floating point instructions; altering the arrangement of values in the registers; performing a second plurality of weighted-rotation operations on the values in the registers; again altering the arrangement of the values in the registers; performing a third plurality of weighted-rotation operations on the values in the registers; yet again altering the arrangement of the values in the registers; performing a fourth plurality of weighted-rotation operations on the values in the registers to obtain C intermediate floating point values; and storing the C intermediate floating point values into a next available row of an intermediate buffer.