# US 10,373,288 B2 · Transpose of image data between a linear and a Y-tiled storage format

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,373,288 B2
- Document ID: US10373288B2
- Status: Granted
- Kind: B2
- Application number: 15/487,815
- Filed: 2017-04-14
- Published: 2017-08-03
- Granted: 2019-08-06
- Earliest claimed: 2017-04-14
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Yuting Yang; Guei-Yuan Lueh; Lei Shen; John R. Hartwig; Kin-Hang Cheung
- Web page: https://patentgrep.com/patent/US10373288B2

## CPC

- G06T 1/60: Memory management
- G06F 3/14: Digital output to display device {; Cooperation and interconnection of the display device with other functional units}
- G09G 5/363: {Graphics controllers}
- G09G 5/397: Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay (G09G5/02 takes precedence)
- H04N 5/76: Television signal recording
- G09G 2354/00: Aspects of interface with display user
- G09G 2360/121: using a cache memory
- G09G 2370/12: Use of DVI or HDMI protocol in interfaces along the display data pipeline
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems, apparatus, articles, and methods are described including operations to transpose image data between a linear-type storage format and a Y-tiled-type storage format.

## Claims

### Claim 1

A computer-implemented method, comprising:
reading image data from a source memory, wherein the source memory has a source storage format, wherein the reading of the source memory is in a pattern adapted for the source memory;
transposing the image data from the source storage format to a destination storage format different from the source storage format, wherein one of the source storage format and the destination storage format have a linear-type storage format and the other of the source storage format and the destination storage format have a Y-tiled-type storage format; and
writing image data into a destination memory, wherein the destination memory has the destination storage format, wherein the reading of the destination memory is in a pattern adapted for the destination memory;
wherein during the series of reading-transposing-writing operations on the image all of the space associated with a plurality of cache line source accesses is utilized without redundant accesses during the reading of image from the source memory and all of the space associated with a plurality of cache line destination accesses is utilized without redundant accesses during the writing of image data into the destination memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data in the Y-tiled-type storage format via a matrix pattern adapted for the source memory,
wherein the transposing comprises transposing the matrix pattern into a vector pattern adapted for the destination memory, and
wherein writing image data into the destination memory comprises writing image data in the linear-type storage format.

### Claim 3 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data in linear-type storage format via a vector pattern adapted for the source memory,
wherein the transposing comprises transposing the vector pattern into a matrix pattern adapted for the destination memory, and
wherein writing image data into the destination memory comprises writing image data in the Y-tiled-type storage format.

### Claim 4 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data from four contiguous data blocks of the source memory into sixteen cache lines, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern, and
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into eight contiguous data lines of the destination memory, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern.

### Claim 5 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data from eight contiguous data lines of the source memory into sixteen cache lines, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern, and
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into four contiguous data blocks of the destination memory, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern.

### Claim 6 (depends on 1)

The method of claim 1, wherein the source memory and the destination memory may share the same physical storage device.

### Claim 7 (depends on 1)

The method of claim 1, wherein a plurality of cache line source accesses are performed during the reading of image data from the source memory, wherein all of the space associated with the cache line source accesses is utilized during the writing of image data into the destination memory.

### Claim 8 (depends on 1)

The method of claim 1, wherein a plurality of cache line destination accesses are performed during the writing of image data into the destination memory, and wherein all of the space associated with the cache line destination accesses is utilized during the writing of image data into the destination memory.

### Claim 9 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data in the Y-tiled-type storage format via a matrix pattern adapted for the source memory,
wherein the transposing comprises transposing the matrix pattern into a vector pattern adapted for the destination memory,
wherein writing image data into the destination memory comprises writing image data in the linear-type storage format,
wherein reading image data from the source memory comprises reading image data from four contiguous data blocks of the source memory into sixteen cache lines, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern, and
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into eight contiguous data lines of the destination memory, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern,
wherein the source memory and the destination memory may share the same physical storage device,
wherein a plurality of cache line source accesses are performed during the reading of image data from the source memory, wherein all of the space associated with the cache line source accesses is utilized during the writing of image data into the destination memory, and
wherein a plurality of cache line destination accesses are performed during the writing of image data into the destination memory, and wherein all of the space associated with the cache line destination accesses is utilized during the writing of image data into the destination memory.

### Claim 10 (depends on 1)

The method of claim 1, wherein reading image data from the source memory comprises reading image data in linear-type storage format via a vector pattern adapted for the source memory,
wherein the transposing comprises transposing the vector pattern into a matrix pattern adapted for the destination memory,
wherein writing image data into the destination memory comprises writing image data in the Y-tiled-type storage format,
wherein reading image data from the source memory comprises reading image data from eight contiguous data lines of the source memory into sixteen cache lines, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern,
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into four contiguous data blocks of the destination memory, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern,
wherein the source memory and the destination memory may share the same physical storage device,
wherein a plurality of cache line source accesses are performed during the reading of image data from the source memory, wherein all of the space associated with the cache line source accesses is utilized during the writing of image data into the destination memory, and
wherein a plurality of cache line destination accesses are performed during the writing of image data into the destination memory, and wherein all of the space associated with the cache line destination accesses is utilized during the writing of image data into the destination memory.

### Claim 11

At least one non-transitory machine readable medium comprising a plurality of instructions that in response to being executed on a computing device, cause the computing device to:
reading image data from a source memory, wherein the source memory has a source storage format, wherein the reading of the source memory is in a pattern adapted for the source memory;
transposing the image data from the source storage format to a destination storage format different from the source storage format, wherein one of the source storage format and the destination storage format have a linear-type storage format and the other of the source storage format and the destination storage format have a Y-tiled-type storage format; and
writing image data into a destination memory, wherein the destination memory has the destination storage format, wherein the writing of the destination memory is in a pattern adapted for the destination memory;
wherein during the series of reading-transposing-writing operations on the image all of the space associated with a plurality of cache line source accesses is utilized without redundant accesses during the reading of image from the source memory and all of the space associated with a plurality of cache line destination accesses is utilized without redundant accesses during the writing of image data into the destination memory.

### Claim 12 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein reading image data from the source memory comprises reading image data in the Y-tiled-type storage format via a matrix pattern adapted for the source memory,
wherein the transposing comprises transposing the matrix pattern into a vector pattern adapted for the destination memory, and
wherein writing image data into the destination memory comprises writing image data in the linear-type storage format.

### Claim 13 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein reading image data from the source memory comprises reading image data in linear-type storage format via a vector pattern adapted for the source memory,
wherein the transposing comprises transposing the vector pattern into a matrix pattern adapted for the destination memory, and
wherein writing image data into the destination memory comprises writing image data in the Y-tiled-type storage format.

### Claim 14 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein reading image data from the source memory comprises reading image data from four contiguous data blocks of the source memory into sixteen cache lines, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern, and
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into eight contiguous data lines of the destination memory, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern.

### Claim 15 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein reading image data from the source memory comprises reading image data from eight contiguous data lines of the source memory into sixteen cache lines, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern, and
wherein writing image data to the destination memory comprises writing image data from the sixteen cache lines into four contiguous data blocks of the destination memory, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern.

### Claim 16 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein a plurality of cache line source accesses are performed during the reading of image data from the source memory, wherein all of the space associated with the cache line source accesses is utilized during the writing of image data into the destination memory, and
wherein a plurality of cache line destination accesses are performed during the writing of image data into the destination memory, and wherein all of the space associated with the cache line destination accesses is utilized during the writing of image data into the destination memory.

### Claim 17

An apparatus, comprising:
a processor configured to:
read image data from a source memory, wherein the source memory has a source storage format, wherein the read of the source memory is in a pattern adapted for the source memory;
transpose the image data from the source storage format to a destination storage format different from the source storage format, wherein one of the source storage format and the destination storage format have a linear-type storage format and the other of the source storage format and the destination storage format have a Y-tiled-type storage format; and
write image data into a destination memory, wherein the destination memory has the destination storage format, wherein the write of the destination memory is in a pattern adapted for the destination memory;
wherein during the series of reading-transposing-write operations on the image all of the space associated with a plurality of cache line source accesses is utilized without redundant accesses during the read of image from the source memory and all of the space associated with a plurality of cache line destination accesses is utilized without redundant accesses during the write of image data into the destination memory.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the read of image data from the source memory comprises a read of image data in the Y-tiled-type storage format via a matrix pattern adapted for the source memory,
wherein the transpose comprises a transpose of the matrix pattern into a vector pattern adapted for the destination memory, and
wherein the write of image data into the destination memory comprises a write of image data in the linear-type storage format.

### Claim 19 (depends on 17)

The apparatus of claim 17, wherein the read of image data from the source memory comprises a read of image data in linear-type storage format via a vector pattern adapted for the source memory,
wherein the transpose comprises a transpose of the vector pattern into a matrix pattern adapted for the destination memory, and
wherein the write of image data into the destination memory comprises a write of image data in the Y-tiled-type storage format.

### Claim 20 (depends on 17)

The apparatus of claim 17, wherein the read of image data from the source memory comprises a read of image data from four contiguous data blocks of the source memory into sixteen cache lines, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern, and
wherein the write of image data to the destination memory comprises a write of image data from the sixteen cache lines into eight contiguous data lines of the destination memory, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern.

### Claim 21 (depends on 17)

The apparatus of claim 17, wherein the read of image data from the source memory comprises a read of image data from eight contiguous data lines of the source memory into sixteen cache lines, wherein each data line comprises one row of one hundred and twenty-eight bytes of image data and is associated with the vector pattern, and
wherein the write of image data to the destination memory comprises a write of image data from the sixteen cache lines into four contiguous data blocks of the destination memory, wherein each data block comprises eight rows of thirty-two bytes of image data and is associated with the matrix pattern.

### Claim 22 (depends on 17)

The apparatus of claim 17, wherein a plurality of cache line source accesses are performed during the read of image data from the source memory, wherein all of the space associated with the cache line source accesses is utilized during the write of image data into the destination memory, and
wherein a plurality of cache line destination accesses are performed during the write of image data into the destination memory, and wherein all of the space associated with the cache line destination accesses is utilized during the write of image data into the destination memory.

### Claim 23

A system comprising:
a display;
a processor, wherein the processor is communicatively coupled to the display, wherein the processor configured to:
read image data from a source memory, wherein the source memory has a source storage format, wherein the read of the source memory is in a pattern adapted for the source memory;
transpose the image data from the source storage format to a destination storage format different from the source storage format, wherein one of the source storage format and the destination storage format have a linear-type storage format and the other of the source storage format and the destination storage format have a Y-tiled-type storage format; and
write image data into a destination memory, wherein the destination memory has the destination storage format, wherein the write of the destination memory is in a pattern adapted for the destination memory;
wherein during the series of reading-transposing-write operations on the image all of the space associated with a plurality of cache line source accesses is utilized without redundant accesses during the read of image from the source memory and all of the space associated with a plurality of cache line destination accesses is utilized without redundant accesses during the write of image data into the destination memory.

### Claim 24 (depends on 23)

The system of claim 23, wherein the read of image data from the source memory comprises a read of image data in the Y-tiled-type storage format via a matrix pattern adapted for the source memory,
wherein the transpose comprises a transpose of the matrix pattern into a vector pattern adapted for the destination memory, and
wherein the write of image data into the destination memory comprises a write of image data in the linear-type storage format.

### Claim 25 (depends on 23)

The system of claim 23, wherein the read of image data from the source memory comprises a read of image data in linear-type storage format via a vector pattern adapted for the source memory,
wherein the transpose comprises a transpose of the vector pattern into a matrix pattern adapted for the destination memory, and
wherein the write of image data into the destination memory comprises a write of image data in the Y-tiled-type storage format.
