Method for storing and retrieving data that conserves memory bandwidth
First Claim
1. A method for storing a block of data comprised of N rows and M columns, comprising:
- transposing the block of data by 90°
to thereby produce a transposed block of data comprised of M rows and N columns; and
, storing the transposed block of data;
retrieving the transposed block of data using one or more fetch commands, with the number of fetch commands required to retrieve the transposed block of data being less than the number of fetch commands required to retrieve the same data if stored in its original form.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for storing a block of data consisting of N rows and M columns, which includes the step of transposing the block of data by 90° to thereby produce a transposed block of data consisting of M rows and N columns, and, the step of storing the transposed block of data. The transposed block of data is preferably retrieved by using one or more fetch commands, with the number of fetch commands required to retrieve the transposed block of data being less than the number of fetch commands required to retrieve the same data if stored in its original form, thereby reducing memory bandwidth. In a presently contemplated implementation, the block of data is a reference macroblock of decoded MPEG video data that is used in motion compensation operations, and each of the fetch commands is an A×B fetch command, where A represents the number of columns of data and B represents the number of rows of data to be fetched in response thereto, and wherein further, A>B.
17 Citations
15 Claims
-
1. A method for storing a block of data comprised of N rows and M columns, comprising:
-
transposing the block of data by 90°
to thereby produce a transposed block of data comprised of M rows and N columns; and
,storing the transposed block of data;
retrieving the transposed block of data using one or more fetch commands, with the number of fetch commands required to retrieve the transposed block of data being less than the number of fetch commands required to retrieve the same data if stored in its original form. - View Dependent Claims (2, 3, 4, 5, 6, 7)
the processor is a multimedia processor that includes a number of function units that are commonly coupled to a system bus that is coupled to a memory; and
,the transposed block of data is stored in the memory.
-
-
8. A method for storing MPEG video data including a plurality of macroblocks originally formatted to include N rows and M columns, comprising:
-
transposing each of the macroblocks by 90°
to thereby produce transposed macroblocks each having M rows and N columns; and
,storing the transposed macroblocks;
retrieving a selected one of the transposed macroblocks to be used as a reference macroblock in a motion compensation operation using one or more fetch commands, with the number of fetch commands required to retrieve the transposed macroblock of data being less than the number of fetch commands required to retrieve the same macroblock of data if stored in its original form. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
the processor is a multimedia processor that includes a number of function units that are commonly coupled to a system bus that is coupled to a memory; and
,the transposed data is stored in the memory.
-
-
13. A processor that implements the method set forth in claim 8.
-
14. The processor as set forth in claim 8, wherein:
-
the processor is a multimedia processor that includes a number of function units that are commonly coupled to a system bus that is coupled to a memory; and
,the transposed data is stored in the memory.
-
-
15. The processor as set forth in claim 14, wherein the memory comprises an SDRAM.
Specification