IP Library Granted Patent US 12,488,516
Granted Patent B2
US 12,488,516 · App. 18/525,715 · Granted Dec 2, 2025

Multi-output decoder for texture decompression

Inventors: Kenneth Rovers (St. Albans, GB); Yoong Chert Foo (London, GB)
Assignee: Imagination Technologies Limited
G06T11/001G06T9/00G06T15/04H04N19/436H04N19/44
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,488,516
App. No.
18/525,715
Granted
Dec 2, 2025
Kind
B2
Abstract

A decoder decodes a plurality of texels from a received block of texture data encoded according to the Adaptive Scalable Texture Compression (ASTC) format. A parameter decode unit decodes configuration data for the received block of texture data, a colour decode unit decodes colour endpoint data for the plurality of texels in dependence on the configuration data, a weight decode unit decodes interpolation weight data for each of the plurality of texels in dependence on the configuration data, and at least one interpolator unit calculates a colour value for each of the plurality of texels using the interpolation weight data for that texel and a pair of colour endpoints from the colour endpoint data. At least one of the parameter decode unit, colour decode unit and weight decode unit decodes intermediate data from the received block that is common to the decoding of a subset of texels of that block and uses that decoded data as part of the decoding of at least two of the plurality of texels.

Claims (37)

1 . A decoder configured to decode a plurality of texels of a p by q sub-block of texels from a block of texture data encoded according to the Adaptive Scalable Texture Compression (ASTC) format, the decoder being configured to:

identify a maximum of (p+1)(q+1) weights of a weight grid;

interpolate sets of weights of the identified maximum of (p+1)(q+1) weights so as to generate a respective final weight for each of the plurality of texels; and

decode each of the plurality of texels in dependence on the respective final weight for each of the plurality of texels.

2 . The decoder of claim 1 , the decoder being configured to:

scale the coordinates of each of the plurality of texels to the dimensions of the weight grid.

3 . The decoder of claim 2 , the decoder being configured to:

use the re-scaled coordinates of each of the plurality of texels to select a respective set of weights for each of the plurality of texels.

4 . The decoder of claim 3 , wherein a weight of the identified maximum of (p+1)(q+1) weights can be comprised by the respective set of weights for more than one of the plurality of texels.

5 . The decoder of claim 3 , the decoder being configured to:

interpolate the respective set of weights for each of the plurality of texels in order to calculate a respective final weight for each of the plurality of texels.

6 . The decoder of claim 5 , wherein said interpolations are dependent on the respective re-scaled coordinates of each of the plurality of texels.

7 . The decoder of claim 2 , the decoder being configured to:

use the re-scaled coordinates of at least one of the plurality of texels to identify the maximum of (p+1)(q+1) weights of the weight grid.

8 . The decoder of claim 1 , wherein each set of weights of the identified maximum of (p+1)(q+1) weights comprises four weights.

9 . The decoder of claim 1 , wherein the block of texture data represents an n by m block of texels, where p≤n and q≤m.

10 . The decoder of claim 9 , wherein the number of weights comprised by the weight grid is less than the number of texels comprised by the n by m block of texels.

11 . The decoder of claim 9 , wherein the p by q sub-block of texels comprises n t texels, where 2≤n t ≤nm.

12 . The decoder of claim 1 , where p=q=2.

13 . The decoder of claim 1 , wherein the plurality of texels of the p by q sub-block of texels are adjacent.

14 . The decoder of claim 1 , wherein the decoder is configured to decode the plurality of texels in parallel.

15 . The decoder of claim 1 , the decoder being configured to decode each of the identified maximum of (p+1)(q+1) weights of the weight grid from the block of texture data.

16 . The decoder of claim 1 , wherein decoding each of the plurality of texels in dependence on the respective final weight for each of the plurality of texels comprises, for each the plurality of texels:

determining a colour value for that texel by interpolating between a respective pair of colour endpoints using the final weight for that texel.

17 . The decoder of claim 1 , wherein the block of texture data is single-plane.

18 . The decoder of claim 1 , wherein the block of texture data is dual-plane, and the decoder is configured to:

identify a maximum of (p+1)(q+1) weights per-plane;

interpolate sets of weights of the identified weights so as to generate a respective final weight per-plane for each of the plurality of texels; and

decode each of the plurality of texels in dependence on the respective final weight per-plane for each of the plurality of texels.

19 . A method of decoding a plurality of texels of a p by q sub-block of texels from a block of texture data encoded according to the Adaptive Scalable Texture Compression (ASTC) format, the method comprising:

identifying a maximum of (p+1)(q+1) weights of a weight grid;

interpolating sets of weights of the identified maximum of (p+1)(q+1) weights so as to generate a respective final weight for each of the plurality of texels; and

decoding each of the plurality of texels in dependence on the respective final weight for each of the plurality of texels.

20 . A non-transitory computer readable medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture a decoder configured to decode a plurality of texels of a p by q sub-block of texels from a block of texture data encoded according to the Adaptive Scalable Texture Compression (ASTC) format, the decoder being configured to:

identify a maximum of (p+1)(q+1) weights of a weight grid;

interpolate sets of weights of the identified maximum of (p+1)(q+1) weights so as to generate a respective final weight for each of the plurality of texels; and

decode each of the plurality of texels in dependence on the respective final weight for each of the plurality of texels.

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 1706852 · Apr 28, 2017 · national
Continuity (4)
Continuation 18101506 · Jan 25, 2023
Continuation 17161449 · Jan 28, 2021
Continuation 15965892 · Apr 28, 2018
Related Publication 20240095975A1 · Mar 21, 2024
References Cited (36)
US 6597363B1 · Duluk, Jr. · 2003 [cited by examiner]
US 8593476B2 · Demos · 2013 [cited by examiner]
US 8982950B1 · Gaddy · 2015 [cited by examiner]
US 20050169499A1 · Rodriguez · 2005 [cited by examiner]
US 20090021521A1 · Sorgard · 2009 [cited by examiner]
US 20090174721A1 · Sprangle · 2009 [cited by applicant]
US 20120213435A1 · Donovan · 2012 [cited by examiner]
US 20120281006A1 · Nystad · 2012 [cited by examiner]
US 20130033513A1 · Rasmusson · 2013 [cited by examiner]
US 20130084018A1 · Nystad · 2013 [cited by examiner]
US 20140193081A1 · Nystad · 2014 [cited by examiner]
US 20140210840A1 · Ellis · 2014 [cited by examiner]
US 20160366449A1 · Stessen · 2016 [cited by examiner]
US 20170078677A1 · Park et al. · 2017 [cited by applicant]
US 20170301112A1 · Nelam · 2017 [cited by examiner]
US 20180182353A1 · Chen · 2018 [cited by examiner]
US 20180247608A1 · Chen · 2018 [cited by examiner]
US 20180276787A1 · Chen · 2018 [cited by examiner]
US 20210150777A1 · Rovers · 2021 [cited by examiner]
US 20230169701A1 · Rovers · 2023 [cited by examiner]
US 20230224456A1 · Panusopone · 2023 [cited by examiner]
US 20240095975A1 · Rovers · 2024 [cited by examiner]
CN 102687175A · 2012 [cited by applicant]
CN 105608729A · 2016 [cited by applicant]
CN 106056535A · 2017 [cited by applicant]
CN 106471545A · 2017 [cited by applicant]
CN 103533364B · 2019 [cited by applicant]
EP 3026633A1 · 2016 [cited by applicant]
GB 2491689B · 2014 [cited by applicant]
WO 2011065886A1 · 2011 [cited by applicant]
Nystad et al., “Adaptive Scalable Texture Compression,” EGGH High Performance Graphics 2012 Proceedings of the Fourth ACM SIGGRAPH / Eurographics conference on High-Performance Graphics, Jun. 2012, pp. 105-114. [cited by applicant]
Wennersten et al., “Table-based Alpha Compression,” Eurographics 2009; vol. 28, No. 2, pp. 687-695, 2009. [cited by applicant]
(*Note: NPL in parent apn). [cited by applicant]
Ellis et al; “ASTC Specification”; Retrieved from the Internet: URL:https://github.com/ARM-software/astc-encoder/blob/master/Documentation/ASTC%20Specification%201.0.pdf; Jul. 19, 2012; pp. 1-31. [cited by applicant]
Rovers et al; “On Improving the Performance Per Area of ASTC with a Multi-output Decoder”; 2016 IEEE 23nd Symposium On Computer Arithmetic; Jul. 24, 2017; pp. 58-59. [cited by applicant]
Rovers et al; “On Improving the Performance Per Area of ASTC with a Multi-output Decoder”; 2017 IEEE 24th Symposium On Computer Arithmetic; Jul. 25, 2017; pp. 1-27. [cited by applicant]