IP Library Granted Patent US 12,034,934
Granted Patent B2
US 12,034,934 · App. 18/123,148 · Granted Jul 9, 2024

Guaranteed data compression

Inventors: Ilaria Martinelli (Watford, GB); Jeff Bond (Barry, GB); Simon Fenney (St. Albans, GB); Peter Malcolm Lacey (Buckinghamshire, GB); Gregory Clark (Hemel Hempstead, GB)
Assignee: Imagination Technologies Limited
H04N19/132G06T1/20H04N19/176H04N19/42H04N19/89
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,034,934
App. No.
18/123,148
Granted
Jul 9, 2024
Kind
B2
Abstract

A method of converting 10-bit pixel data (e.g. 10:10:10:2 data) into 8-bit pixel data involves converting the 10-bit values to 7-bits or 8-bits and generating error values for each of the converted values. Two of the 8-bit output channels comprise a combination of a converted 7-bit value and one of the bits from the fourth input channel. A third 8-bit output channel comprises the converted 8-bit value and the fourth 8-bit output channel comprises the error values. In various examples, the bits of the error values may be interleaved when they are packed into the fourth output channel.

Claims (41)

1. A method of converting 10-bit format pixel data into 8-bit format data, the method comprising, for a pixel:

generating an error value for each of the 10-bit input data channels by comparing, for each of a first subset of channels, a first number of least significant bits (LSBs) of the input data channel and a same first number of bits derived from a truncated version of the channel, and for each of a second, non-overlapping subset of channels, a second number of LSBs of the input data channel and a same second number of bits derived from a truncated version of the channel; and

outputting an 8-bit channel comprising the error values.

2. The method according to claim 1 , wherein each of truncated versions of the channels in the first subset comprise 7 bits and each of the truncated versions of the channels in the second subset comprise 8 bits.

3. The method according to claim 1 , wherein generating an error value for each of the 10-bit input data channels by comparing, for each of the first subset of channels, a first number of LSBs of the input data channel and a same first number of bits derived from the truncated version of the channel, and for each of the second subset of channels, a second number of LSBs of the input data channel and a same second number of bits derived from the truncated version of the channel comprises:

generating an error value for each of the 10-bit input data channels by combining using an XOR logic block, for each of the first subset of channels, three LSBs of the input data channel and three bits derived from the truncated version of the channel, and for each of the second subset of channels, two LSBs of the input data channel and two bits derived from the truncated version of the channel.

4. The method according to claim 1 , wherein the first number of bits derived from each of the truncated versions of the channels in the first subset comprise the three most significant bits (MSBs) of the truncated version of the channel and the second number of bits derived from each of the truncated versions of the channels in the second subset comprise the two MSBs of the truncated version of the channel.

5. The method according to claim 1 , further comprising:

prior to generating the error values, expanding, using bit replication, each of the truncated versions of the channels to 10 bits,

and wherein the first number of bits derived from each of the truncated versions of the channels in the first subset comprise the three LSBs of the expanded truncated version of the channel and the second number of bits derived from each of the truncated versions of the channels in the second subset comprise the two LSBs of the expanded truncated version of the channel.

6. The method according to claim 1 , wherein the truncated versions of the channels are encoded using Gray coding.

7. The method according to claim 1 , further comprising outputting, for each of the channels in the first subset, an 8-bit channel comprising the truncated version of the channel with a different appended bit from a further input data channel appended as an MSB.

8. The method according to claim 1 , wherein the 10-bit pixel data comprises RGBA pixel data.

9. A method of compressing 10-bit format pixel data comprising:

converting 10-bit format pixel data into 8-bit format data using the method as set forth in claim 1 ; and

compressing a block of 8-bit format data using a lossless compression method to generate a first compressed data block.

10. The method according to claim 9 , further comprising:

assessing the first compressed data block against a target compression threshold;

in response to determining that the first compressed data block satisfies the target compression threshold, outputting the first compressed data block; and

in response to determining that the first compressed data block does not satisfy the target compression threshold, discarding one or more bits from the 8-bit channel comprising the error values in the block of 8-bit format data to generate a reduced size block of data and compressing the reduced size block of data using the lossless compression method to generate a second compressed data block, wherein the second compressed data block is smaller than the first compressed data block.

11. The method according to claim 10 , further comprising:

outputting the second compressed data block.

12. The method according to claim 10 , further comprising:

assessing the second compressed data block against the target compression threshold;

in response to determining that the second compressed data block satisfies the target compression threshold, outputting the second compressed data block; and

in response to determining that the second compressed data block does not satisfy the target compression threshold, outputting, instead of the second compressed data block, a third compressed data block generated from the block of 8-bit format data, wherein the third compressed data block is generated using a lossy compression technique, and wherein the lossy compression technique is arranged to ensure that the third compressed data block satisfies the target compression threshold.

13. A method of converting 8-bit format pixel data into 10-bit format data, the method comprising:

using bit replication to increase each of the input data channels except the last channel to 10-bit channels;

for each of a first subset of the channels, modifying a first number of least significant bits (LSBs) by combining them with corresponding bits from the last channel to generate corresponding 10-bit output channels and for each of a second subset of channels, modifying a second number of LSBs by combining them with corresponding bits from the last channel to generate a corresponding 10-bit output channel.

14. The method according to claim 13 , further comprising:

Gray decoding the 2-bit last output channel.

15. A data decompression unit arranged to convert 8-bit format pixel data into 10-bit format data, the hardware comprising:

bit replication logic arranged, for a pixel, to use bit replication to increase each of the input data channels except a last channel to 10-bit channels;

hardware logic arranged, for each of the first subset of the channels, to modify a first number of least significant bits (LSBs) by combining them with corresponding bits from the last channel to generate corresponding 10-bit output channels and for each of a second subset of channels, to modify a second number of LSBs by combining them with corresponding bits from the last channel to generate a corresponding 10-bit output channel.

16. The data decompression unit of claim 15 , wherein the data compression unit is embodied in hardware on an integrated circuit.

17. A non-transitory computer readable storage medium having stored thereon computer executable code that when executed causes at least one processor to perform the method as set forth in claim 1 .

18. A non-transitory computer readable storage medium having stored thereon a computer readable dataset description of an integrated circuit that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture a data decompression unit as set forth in claim 15 .

19. An integrated circuit manufacturing system comprising:

a computer readable storage medium having stored thereon a non-transitory computer readable dataset description of an integrated circuit that describes a data decompression unit as set forth in claim 15 ;

a layout processing system configured to process the integrated circuit description so as to generate a circuit layout description of an integrated circuit embodying the data compression unit; and

an integrated circuit generation system configured to manufacture the data compression unit according to the circuit layout description.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (1)
GB 1810791 · Jun 29, 2018 · national
Continuity (4)
Continuation 17713307 · Apr 5, 2022
Continuation 16931949 · Jul 17, 2020
Continuation 16457960 · Jun 29, 2019
Related Publication 20230232009A1 · Jul 20, 2023