IP Library Granted Patent US 12,307,724
Granted Patent B2
US 12,307,724 · App. 18/515,397 · Granted May 20, 2025

Image data decompression using difference values between data values and origin values for image data channels

Inventors: Paul Higginbottom (Sydney, AU); Mark Jackson Pulver (Sydney, AU); Seyed Ahamed (Sydney, AU)
Assignee: Imagination Technologies Limited
G06T9/00G06F7/50G06F7/727G06T3/40
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,307,724
App. No.
18/515,397
Granted
May 20, 2025
Kind
B2
Abstract

A decompression method determines image element values from compressed data representing a block of image element values relating to a respective one or more channels. For each of the channels, an indication of a first number of bits representing difference values between the data values and an origin value for the channel is read from the compressed data. For each of the channels, a second number of bits is obtained, wherein representations of the difference values for each of the channels are included in the compressed data using the second number of bits for that channel. The obtained second numbers of bits for the respective channels are used to read the representations of the difference values for the image element values being decompressed. Based on the representations of the difference values, a difference value is determined in accordance with the first number of bits for the channel. For each of the one or more channels, the data value relating to the channel for each of the image element values being decompressed is determined using: (i) the origin value for the channel, and (ii) the determined difference value for the channel for the image element value.

Claims (39)

1. A computer-implemented method of performing decompression to determine one or more data values from compressed data, the method comprising:

reading, from the compressed data, representations of difference values for the one or more data values being decompressed, each difference value representing a difference between the respective data value and an origin value, wherein the representations of the difference values are included in the compressed data using a second number of bits;

based on the representations of the difference values read from the compressed data and a first number of bits for representing the difference values for the one or more data values, determining, for each of the one or more data values being decompressed, a difference value in accordance with said first number of bits; and

determining each of the one or more data values being decompressed using: (i) the origin value, and (ii) the determined difference value for the data value.

2. The method of claim 1 , further comprising receiving an indication of the first number of bits for representing the difference values for the one or more data values.

3. The method of claim 1 , wherein said determined difference value for a data value has said first number of bits.

4. The method of claim 1 , wherein said determining, for each of the one or more data values being decompressed, a difference value in accordance with said first number of bits comprises adding zero, one or more least significant bits to the representations of the difference values read from the compressed data to thereby determine the difference values having said first number of bits.

5. The method of claim 4 , wherein the zero, one or more least significant bits which are added to the representations of the difference values read from the compressed data are all zeros.

6. The method of claim 4 , wherein the zero, one or more least significant bits which are added to the representations of the difference values read from the compressed data are all ones.

7. The method of claim 4 , wherein the zero, one or more least significant bits which are added to the representations of the difference values read from the compressed data are equal to a corresponding zero, one or more most significant bits of the origin value.

8. The method of claim 4 , wherein the zero, one or more least significant bits which are added to the representations of the difference values read from the compressed data are random or pseudo-random bits.

9. The method of claim 4 , wherein the zero, one or more least significant bits which are added to the representations of the difference values read from the compressed data are different for different ranges of origin values or for different ranges of difference values.

10. The method of claim 1 , wherein the second number of bits is determined to ensure that the compressed data satisfies a target level of compression for compressing the one or more data values.

11. The method of claim 1 , further comprising using the first number of bits to determine the second number of bits in accordance with a predetermined scheme.

12. The method of claim 11 , wherein the second number of bits is determined to ensure that the compressed data satisfies a target level of compression for compressing the one or more data values, and wherein said using the first number of bits to determine the second number of bits in accordance with the predetermined scheme comprises determining whether representing the difference values with the determined first number of bits would satisfy the target level of compression,

wherein if it is determined that representing the difference values with the determined first number of bits would satisfy the target level of compression then the second number of bits equals the first number of bits, and

wherein if it is determined that representing the difference values with the determined first number of bits would not satisfy the target level of compression then the second number of bits is less than the first number of bits.

13. The method of claim 1 , further comprising reading an indication of said second number of bits from the compressed data.

14. The method of claim 1 , wherein said determining the data value being decompressed comprises either: (i) summing the origin value and the determined difference value for the data value, or (ii) subtracting the determined difference value for the data value from the origin value.

15. The method of claim 1 , wherein said determining the data value being decompressed comprises combining the origin value and the determined difference value for the data value using modular arithmetic.

16. The method of claim 1 , wherein the compressed data comprises a plurality of origin values, wherein an indication is included in the compressed data to indicate which of the plurality of origin values each of the difference values has been determined from,

wherein said determining the data value being decompressed comprises using: (i) the origin value indicated by the indication for the determined difference value for the data value, and (ii) the determined difference value for the data value.

17. The method of claim 1 , wherein the compressed data is in a compressed block of data comprising:

a header portion, which has a fixed size, and which comprises an indication of the origin value and the indication of the first number of bits; and

a body portion, which has a variable size, and which comprises the representations of the difference values,

wherein the compressed block of data has a base address, and wherein the header portion starts at a first address defined by the base address, with the data of the header portion running in a first direction from the first address, and wherein the body portion starts at a second address defined by the base address, with the data of the body portion running in a second direction from the second address, wherein the first direction is opposite to the second direction in address space.

18. The method of claim 1 , further comprising:

determining one or more error correction indications based on the determined data values of the one or more data values being decompressed;

reading one or more error correction indications from the compressed data; and

comparing the determined one or more error correction indications with the one or more error correction indications read from the compressed data to determine whether there are errors in the determined data values of the one or more data values being decompressed.

19. A decompression unit configured to perform decompression to determine one or more data values from compressed data, the decompression unit comprising:

difference value determination logic configured to:

read representations of difference values for the one or more data values being decompressed from the compressed data, each difference value representing a difference between the respective data value and an origin value, wherein the representations of the difference values are included in the compressed data using a second number of bits, and

based on the representations of the difference values read from the compressed data and a first number of bits for representing the difference values for the one or more data values, determine, for each of the one or more data values being decompressed, a difference value in accordance with said first number of bits; and

data value determination logic configured to determine each of the one or more data values being decompressed using: (i) the origin value, and (ii) the determined difference value for the data value.

20. A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when executed at a computer system, cause the computer system to perform a method of performing decompression to determine one or more data values from compressed data, the method comprising:

reading, from the compressed data, representations of difference values for the one or more data values being decompressed, each difference value representing a difference between the respective data value and an origin value, wherein the representations of the difference values are included in the compressed data using a second number of bits;

based on the representations of the difference values read from the compressed data and a first number of bits for representing the difference values for the one or more data values, determining, for each of the one or more data values being decompressed, a difference value in accordance with said first number of bits; and

determining each of the one or more data values being decompressed using: (i) the origin value, and (ii) the determined difference value for the data value.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (6)
GB 1912183 · Aug 23, 2019 · national
GB 1912184 · Aug 23, 2019 · national
GB 1912795 · Sep 5, 2019 · national
GB 1912800 · Sep 5, 2019 · national
GB 2004715 · Mar 31, 2020 · national
GB 2004716 · Mar 31, 2020 · national
Continuity (3)
Continuation 17720188 · Apr 13, 2022
Continuation 17000550 · Aug 24, 2020
Related Publication 20240087171A1 · Mar 14, 2024
References Cited (39)
US 8836548B1 · Chandra · 2014 [cited by applicant]
US 10230982B2 · Takami et al. · 2019 [cited by applicant]
US 11335031B2 · Higginbottom et al. · 2022 [cited by applicant]
US 11423579B2 · Higginbottom et al. · 2022 [cited by applicant]
US 11823419B2 · Higginbottom · 2023 [cited by examiner]
US 11823420B2 · Higginbottom et al. · 2023 [cited by applicant]
US 20060220984A1 · Miyasaka · 2006 [cited by applicant]
US 20070297501A1 · Hussain et al. · 2007 [cited by applicant]
US 20090257485A1 · Youn · 2009 [cited by applicant]
US 20120014597A1 · Matsunaga · 2012 [cited by applicant]
US 20130010864A1 · Teng · 2013 [cited by applicant]
US 20130176431A1 · Ogawa et al. · 2013 [cited by applicant]
US 20140348437A1 · Okamoto · 2014 [cited by applicant]
US 20140362909A1 · Chen et al. · 2014 [cited by applicant]
US 20140369614A1 · Fenney et al. · 2014 [cited by applicant]
US 20150178951A1 · Kelly · 2015 [cited by applicant]
US 20160234501A1 · Minaee et al. · 2016 [cited by applicant]
US 20170177227A1 · Zhang et al. · 2017 [cited by applicant]
US 20170278215A1 · Appu et al. · 2017 [cited by applicant]
US 20170345187A1 · Sato et al. · 2017 [cited by applicant]
US 20180014021A1 · Midtskogen et al. · 2018 [cited by applicant]
US 20180160129A1 · Kalevo et al. · 2018 [cited by applicant]
US 20180247388A1 · Chan · 2018 [cited by applicant]
US 20180293778A1 · Appu et al. · 2018 [cited by applicant]
US 20190246117A1 · Hugosson et al. · 2019 [cited by applicant]
US 20210074026A1 · Higginbottom et al. · 2021 [cited by applicant]
CN 1512784A · 2004 [cited by applicant]
CN 1993976A · 2007 [cited by applicant]
CN 101283580A · 2008 [cited by applicant]
CN 101562749A · 2009 [cited by applicant]
CN 102984517A · 2013 [cited by applicant]
CN 107547903A · 2018 [cited by applicant]
CN 109600618A · 2019 [cited by applicant]
CN 109640101A · 2019 [cited by applicant]
CN 110214338A · 2019 [cited by applicant]
EP 3059964A1 · 2016 [cited by applicant]
GB 2575434A · 2020 [cited by applicant]
JP 2007020046A · 2007 [cited by applicant]
JP 2017050752A · 2017 [cited by applicant]