# US 11,308,649 B2 · Pixel storage for graphical frame buffers

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

- Number: US 11,308,649 B2
- Document ID: US11308649B2
- Status: Granted
- Kind: B2
- Application number: 17/148,490
- Filed: 2021-01-13
- Published: 2021-05-06
- Granted: 2022-04-19
- Earliest claimed: 2018-04-25
- Assignees: Avago Technologies International Sales Pte. Limited
- Applicants: Avago Technologies International Sales Pte. Limited
- Inventors: Richard Hayden Wyman; Brian Francis Schoner; David Chao Hua Wu; Timothy James Mamtora
- Web page: https://patentgrep.com/patent/US11308649B2

## CPC

- G06T 9/00: Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00)
- G06T 1/60: Memory management
- G09G 5/363: {Graphics controllers}
- G09G 5/395: Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen (G09G5/399 takes precedence)
- H04N 19/90: using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- G09G 2340/02: Handling of images in compressed format, e.g. JPEG, MPEG
- G09G 2350/00: Solving problems of bandwidth in display systems
- G09G 2360/18: Use of a frame buffer in a display terminal, inclusive of the display panel
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- 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

A device implementing the subject pixel storage for graphical frame buffers may include at least one processor configured to obtain a plurality of data units containing a plurality of pixels stored in memory, each of the plurality of data units including a first pixel of the plurality of pixels packed in succession with at least a portion of a second pixel of the plurality of pixels, in which the plurality of pixels is represented by a number of bits, obtain a group of pixels from the plurality of pixels, and store the group of pixels using a targeted number of bits. A method and computer program product implementing the subject pixel storage for graphical frame buffers is also provided.

## Claims

### Claim 1

A device, comprising:
one or more processors configured to cause:
receiving a plurality of data units comprising a plurality of pixels stored in memory, a first one of the plurality of data units comprising a first pixel of the plurality of pixels packed in succession with at least a portion of a second pixel of the plurality of pixels, the plurality of pixels being represented by a number of bits;
obtaining a group of pixels from the plurality of pixels; and
storing the group of pixels using a targeted number of bits,
wherein:
a second one of the plurality of data units comprises other portion of the second pixel of the plurality of pixels; and
the other portion of the second pixel of the plurality of pixels is absent from the first one of the plurality of data unit, and
wherein the one or more processors are configured to cause:
retrieving a block of pixel data from the memory;
removing one or more padding bits from the block of pixel data;
processing the block of pixel data;
adding at least one padding bit to the block of pixel data; and
storing the block of pixel data with the added at least one padding bit to the memory.

### Claim 2 (depends on 1)

The device of claim 1, wherein the one or more processors are configured to cause:
obtaining a block of compressed pixel data from a first frame buffer in the memory;
decompressing the block of compressed pixel data into a block of uncompressed pixel data;
processing the block of uncompressed pixel data;
compressing the processed block of uncompressed pixel data into a block of compressed pixel data using the targeted number of bits; and
storing the block of compressed pixel data to a second frame buffer in the memory.

### Claim 3 (depends on 2)

The device of claim 2, wherein the block of compressed pixel data comprises corresponding pixels of the block of uncompressed pixel data.

### Claim 4 (depends on 1)

The device of claim 1, wherein the one or more processors are configured to cause:
selecting a pixel format for the group of pixels based on a storage format;
packing the group of pixels per the selected pixel format;
determining that pixels of the group of pixels require padding to be added to conform to the pixel format;
adding padding to the pixels of the group of pixels per the pixel format; and
storing the pixels of the group of pixels.

### Claim 5 (depends on 1)

The device of claim 1, wherein the targeted number of bits is different than the number of bits.

### Claim 6 (depends on 1)

The device of claim 1, wherein the one or more processors are configured to cause:
applying a lossy compression operation to the plurality of pixels; and
generating the group of pixels as compressed data using the targeted number of bits based on the applied lossy compression operation.

### Claim 7 (depends on 6)

The device of claim 6, wherein the one or more processors are configured to cause:
determining a statistical redundancy between pixels of the group of pixels using the applied lossy compression operation; and
removing one or more units of information from the group of pixels based on the statistical redundancy to reduce the group of pixels to a size that corresponds to the targeted number of bits.

### Claim 8 (depends on 1)

The device of claim 1, wherein the one or more processors are configured to cause:
storing the plurality of pixels as uncompressed pixel data based on a selected pixel format that corresponds to the number of bits; and
storing the group of pixels as compressed pixel data based on the targeted number of bits, and
wherein the one or more processors are configured to cause storing the plurality of pixels and the group of pixels in different frame buffers.

### Claim 9 (depends on 1)

The device of claim 1, wherein the one or more processors are configured to cause:
determining the targeted number of bits based on a predetermined compression ratio, the predetermined compression ratio being a ratio of the number of bits corresponding to the group of pixels to the targeted number of bits.

### Claim 10 (depends on 1)

The device of claim 1, wherein the targeted number of bits corresponds to a multiple of a burst length used in transmitting data to memory.

### Claim 11 (depends on 1)

The device of claim 1, wherein the retrieved block of pixel data comprises uncompressed pixel data.

### Claim 12 (depends on 11)

The device of claim 11,
wherein:
the retrieving the block of pixel data comprises retrieving the block of pixel data from a first frame buffer in the memory; and
the storing the block of pixel data comprises storing the processed block of pixel data with the added at least one padding bit to a second frame buffer in the memory; and
wherein the one or more processors are configured to cause:
determining, before the removing, that a pixel format of the block of pixel data comprises the one or more padding bits; and
determining, before the adding, that the pixel format of the block of pixel data requires the at least one padding bit for storage.

### Claim 13

A method, comprising:
receiving a plurality of data units comprising a plurality of pixels stored in memory, a first one of the plurality of data units comprising a first pixel of the plurality of pixels packed in succession with at least a portion of a second pixel of the plurality of pixels, the plurality of pixels being represented by a number of bits;
obtaining a group of pixels from the plurality of pixels; and
storing the group of pixels using a targeted number of bits,
wherein:
a second one of the plurality of data units comprises other portion of the second pixel of the plurality of pixels; and
the other portion of the second pixel of the plurality of pixels is absent from the first one of the plurality of data unit, and
wherein the method comprises:
retrieving a block of pixel data from the memory;
removing one or more padding bits from the block of pixel data;
processing the block of pixel data;
adding at least one padding bit to the block of pixel data; and
storing the block of pixel data with the added at least one padding bit to the memory.

### Claim 14 (depends on 13)

The method of claim 13, comprising:
obtaining a block of compressed pixel data from a first frame buffer in the memory;
decompressing the block of compressed pixel data into a block of uncompressed pixel data;
processing the block of uncompressed pixel data;
compressing the processed block of uncompressed pixel data into a block of compressed pixel data using the targeted number of bits; and
storing the block of compressed pixel data to a second frame buffer in the memory.

### Claim 15 (depends on 13)

The method of claim 13, comprising:
selecting a pixel format for the group of pixels based on a storage format;
packing the group of pixels per the selected pixel format;
determining that pixels of the group of pixels require padding to be added to conform to the pixel format;
adding padding to the pixels of the group of pixels per the pixel format; and
storing the pixels of the group of pixels.

### Claim 16 (depends on 13)

The method of claim 13, wherein:
the retrieved block of pixel data comprises uncompressed pixel data;
the retrieving the block of pixel data comprises retrieving the block of pixel data from a first frame buffer in the memory; and
the storing the block of pixel data comprises storing the processed block of pixel data with the added at least one padding bit to a second frame buffer in the memory.

### Claim 17

A computer program product comprising instructions stored in a tangible computer-readable storage medium, the instructions comprising:
instructions for receiving a plurality of data units comprising a plurality of pixels stored in memory, a first one of the plurality of data units comprising a first pixel of the plurality of pixels packed in succession with at least a portion of a second pixel of the plurality of pixels, the plurality of pixels being represented by a number of bits;
instructions for obtaining a group of pixels from the plurality of pixels; and
instructions for storing the group of pixels using a targeted number of bits,
wherein:
a second one of the plurality of data units comprises other portion of the second pixel of the plurality of pixels; and
the other portion of the second pixel of the plurality of pixels is absent from the first one of the plurality of data unit, and
wherein the instructions comprise:
instructions for retrieving a block of pixel data from the memory;
instructions for removing one or more padding bits from the block of pixel data;
instructions for processing the block of pixel data;
instructions for adding at least one padding bit to the block of pixel data; and
instructions for storing the block of pixel data with the added at least one padding bit to the memory.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the instructions comprise:
instructions for obtaining a block of compressed pixel data from a first frame buffer in the memory;
instructions for decompressing the block of compressed pixel data into a block of uncompressed pixel data;
instructions for processing the block of uncompressed pixel data;
instructions for compressing the processed block of uncompressed pixel data into a block of compressed pixel data using the targeted number of bits; and
instructions for storing the block of compressed pixel data to a second frame buffer in the memory,
wherein the block of compressed pixel data comprises corresponding pixels of the block of uncompressed pixel data.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein the instructions comprise:
instructions for selecting a pixel format for the group of pixels based on a storage format;
instructions for packing the group of pixels per the selected pixel format;
instructions for determining that pixels of the group of pixels require padding to be added to conform to the pixel format;
instructions for adding padding to the pixels of the group of pixels per the pixel format; and
instructions for storing the pixels of the group of pixels.

### Claim 20 (depends on 17)

The computer program product of claim 17, wherein the instructions comprise:
instructions for determining, before the removing, that a pixel format of the block of pixel data comprises the one or more padding bits; and
instructions for determining, before the adding, that the pixel format of the block of pixel data requires the at least one padding bit for storage.
