Efficient and high speed 2D data transpose engine for SOC application
AssigneeLSI Corporation
InventorsHo-Ming Leung, Gary Chang, Wern-Yan Koe
Life of this patent
Estimating the term…
Abstract
An apparatus comprising a buffer circuit, a rotation circuit and a memory. The buffer may be configured to store original image data in one or more sub-matrices. The rotation circuit may be configured to (i) produce rotated data and (ii) store the rotated data in a transposed matrix. The memory may be configured to position the rotated data in the transposed matrix. The transposed matrix comprises final image data rotated by a predetermined angle from the original image data.
Claims16
An apparatus comprising:
- a buffer circuit configured to store original image data in a plurality of sub-matrices, wherein said sub-matrices (i) comprise uniform divisions of said original image data and (ii) are configured to be rotated independently of said original image data;
- a rotation circuit comprising a plurality of memory registers and a plurality of multiplexers configured to (i) produce rotated data for each of said sub-matrices by independently rotating each of said sub-matrices by a predetermined angle in response to a plurality of selection signals corresponding to said plurality of multiplexers, (ii) maintain said sub-matrices in a predetermined position, wherein said predetermined position comprises the portion of said original image data corresponding to each of said sub-matrices, and (iii) store said rotated data in a transposed matrix, wherein each of said sub-matrices remains in said predetermined position;
- and
- a memory comprising a plurality of memory banks, wherein (i) said memory banks are configured to position said rotated data in said transposed matrix, (ii) storage of said rotated data in said plurality of memory banks is configured such that simultaneous read operations of said rotated data do not access any one of said memory banks at the same time, and (iii) said transposed matrix comprises final image data rotated by said predetermined angle from said original image data.
An apparatus comprising:
- means for storing original image data in a plurality of sub-matrices, wherein said sub-matrices (i) comprise uniform divisions of said original image data and (ii) are configured to be rotated independently of said original image data;
- means for (i) providing rotated data via a plurality of memory registers and a plurality of multiplexers for each of said sub-matrices by independently rotating each of said sub-matrices by a predetermined angle in response to a plurality of selection signals corresponding to said plurality of multiplexers, wherein said predetermined angle comprises ninety degrees, and (ii) maintaining said sub-matrices in a predetermined position, wherein said predetermined position comprises the portion of said original image data corresponding to each of said sub-matrices;
- means for storing said rotated data in a transposed matrix, wherein (i) each of said sub-matrices remains in said predetermined position, (ii) said rotated data is stored in a memory comprising a plurality of memory banks, and (iii) said plurality of memory banks are configured such that simultaneous read operations of said rotated data do not access any one of said memory banks at the same time;
- and
- means for positioning said rotated data in said transposed matrix, wherein said transposed matrix comprises final image data rotated by said predetermined angle from said original image data.
A method for transposing two-dimensional data, comprising the steps of:
- (A) storing original image data in plurality of sub-matrices, wherein said sub-matrices (i) comprise uniform divisions of said original image data and (ii) are configured to be rotated independently of said original image data;
- (B) generating rotated data via a plurality of memory registers and a plurality of multiplexers in response to said original stored image data for each of said sub-matrices by (i) independently rotating each of said sub-matrices by a predetermined angle in response to a plurality of selection signals corresponding to said plurality of multiplexers, wherein said predetermined angle comprises ninety degrees, and (ii) maintaining said sub-matrices in a predetermined position, wherein said predetermined position comprises the portion of said original image data corresponding to each of said sub-matrices;
- (C) storing said rotated data in a transposed matrix, wherein (i) each of said sub-matrices remains in said predetermined position, (ii) said rotated data is stored in a memory comprising a plurality of memory banks, and (iii) said plurality of memory banks are configured such that simultaneous read operations of said rotated data do not access any one of said memory banks at the same time;
- and
- (D) positioning said rotated data in said transposed matrix, wherein said transposed matrix comprises final image data rotated by said predetermined angle from said original image data.
Dependencies are inferred from the claim text.