IP Library Granted Patent US 12,488,506
Granted Patent B2
US 12,488,506 · App. 18/203,270 · Granted Dec 2, 2025

Compression and decompression of sub-primitive presence indications for use in a rendering system

Inventor: Simon Fenney (St. Albans, GB)
Assignee: Imagination Technologies Limited
G06T9/00G06T15/06G06T2210/21
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,506
App. No.
18/203,270
Granted
Dec 2, 2025
Kind
B2
Abstract

Compressed data is decompressed to determine sub-primitive presence indications for intersection testing in a rendering system. Entropy encoded data is read from a block of compressed sub-primitive presence indications data and entropy decoding determines a block of entropy decoded data values. Spatial recorrelation on the block of entropy decoded values determines sub-primitive presence indications. For each line of entropy decoded values in a first dimension: for the entropy decoded values in the line: (i) a predicted value is determined for the entropy decoded value based on other entropy decoded values in the line, and (ii) the entropy decoded value is replaced with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value. For each line of entropy decoded values in a second dimension: for the entropy decoded values in the line: (i) a predicted value for the entropy decoded value is determined based on other entropy decoded values in the line, and (ii) the entropy decoded value is replaced with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value.

Claims (76)

1 . A method of decompressing compressed data to determine one or more sub-primitive presence indications for use in a rendering system, the method comprising:

receiving a block of compressed data for a block of sub-primitive presence indications;

reading entropy encoded data from the block of compressed data;

performing entropy decoding on the entropy encoded data to determine a block of entropy decoded data values; and

performing spatial recorrelation on the block of entropy decoded values to determine one or more of the sub-primitive presence indications in the block of sub-primitive presence indications, said performing spatial recorrelation comprising:

(a) for each of a plurality of lines of entropy decoded values in a first dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value, and

(b) for each of a plurality of lines of entropy decoded values in a second dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value.

2 . The method of claim 1 , wherein said one or more entropy decoded values in a line in the first dimension for which predicted values are determined are alternate entropy decoded values in that line in the first dimension, and wherein said one or more entropy decoded values in a line in the second dimension for which predicted values are determined are alternate entropy decoded values in that line in the second dimension.

3 . The method of claim 1 , wherein said one or more other entropy decoded values in the line on which the determination of a predicted value is based are adjacent to the entropy decoded value for which the predicted value is determined.

4 . The method of claim 1 , wherein said plurality of lines of entropy decoded values in a first dimension comprises all of the lines of entropy decoded values in the first dimension within the block of entropy decoded values, and wherein said plurality of lines of entropy decoded values in a second dimension comprises all of the lines of entropy decoded values in the second dimension within the block of entropy decoded values.

5 . The method of claim 1 , wherein each of the presence indications indicates a presence state which is one of: (i) fully present, (ii) fully absent, and (iii) partially present.

6 . The method of claim 5 , wherein a partially present presence state is represented by a value of zero in the block of sub-primitive presence indications.

7 . The method of claim 5 , wherein either:

a fully present presence state is represented by a value of one and a fully absent presence state is represented by a value of two in the block of sub-primitive presence indications; or

a fully present presence state is represented by a value of two and a fully absent presence state is represented by a value of one in the block of sub-primitive presence indications.

8 . The method of claim 1 , wherein said replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value comprises performing a summation calculation using a modulo-3 operation to determine the value of the sum of the entropy decoded value and the determined predicted value for the entropy decoded value.

9 . The method of claim 1 , wherein said determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line is performed using a Predict function which operates in accordance with:

Predict

(

L

,

R

)

=

{

L

when

L

=

R

0

otherwise

and wherein said replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value is performed in accordance with:

d 2i+1 :=p 2i+1 +Predict( d 2i ,d 2i+2 )mod 3,

wherein L is a first other entropy decoded value in the line, R is a second other entropy decoded value in the line, d 2i is the (2i) th entropy decoded value in the line, d 2i+1 is the (2i+1) th entropy decoded value in the line, and d 2i+2 is the (2i+2) th entropy decoded value in the line, and i is an integer.

10 . The method of claim 9 , wherein if d 2i+1 is the final entropy decoded value in the line, such that data does not exist in the block of entropy decoded values, then the value of d 2i is used in place of d 2i+2 in the Predict function.

11 . The method of claim 1 , wherein either:

the lines of entropy decoded values in the first dimension within the block of entropy decoded values are rows of entropy decoded values within the block of entropy decoded values, and the lines of entropy decoded values in the second dimension within the block of entropy decoded values are columns of entropy decoded values within the block of entropy decoded values; or

the lines of entropy decoded values in the first dimension within the block of entropy decoded values are columns of entropy decoded values within the block of entropy decoded values, and the lines of entropy decoded values in the second dimension within the block of entropy decoded values are rows of entropy decoded values within the block of entropy decoded values.

12 . The method of claim 1 , wherein said performing spatial recorrelation further comprises, prior to (a) and (b):

(c) for each of a plurality of lines of entropy decoded values in the first dimension within a sub-block of entropy decoded values within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value; and

(d) for each of a plurality of lines of entropy decoded values in the second dimension within the sub-block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value; and

(e) interleaving the entropy decoded values from the sub-block with entropy decoded values in the block of entropy decoded values which have not yet been spatially recorrelated.

13 . The method of claim 1 , wherein said performing entropy decoding on the entropy encoded data to determine a block of entropy decoded data values comprises:

reading, from the entropy encoded data, for each subset of a plurality of subsets of encoded data values, an indication that identifies a number of bits that is used for each of the encoded data values in the subset; and

parsing the encoded data values in the entropy encoded data based on the identified numbers of bits to thereby interpret the encoded data values.

14 . The method of claim 13 , wherein each of the subsets of encoded data values is a 2×2 subset of encoded data values.

15 . The method of claim 1 , wherein said performing entropy decoding on the entropy encoded data to determine a block of entropy decoded data values comprises performing Huffman decoding or run length decoding.

16 . The method of claim 1 , further comprising:

receiving an indication of a sample position within the block of sub-primitive presence indications for which a presence indication is to be determined; and

determining a presence indication for the sample position using one or more of the determined sub-primitive presence indications in the block of sub-primitive presence indications.

17 . The method of claim 16 , wherein the rendering system is a ray tracing system and wherein the method further comprises using the determined presence indication at the sample position to determine the presence of a primitive at a point of intersection with a ray as part of performing intersection testing for the ray in the ray tracing system.

18 . The method of claim 1 , wherein the rendering system is a ray tracing system or a rasterization system.

19 . A decompression unit configured to decompress compressed data to determine one or more sub-primitive presence indications for use in a rendering system, the decompression unit being configured to receive a block of compressed data for a block of sub-primitive presence indications, the decompression unit comprising:

an entropy decoding module configured to perform entropy decoding on entropy encoded data that has been read from the block of compressed data to determine a block of entropy decoded data values; and

a spatial recorrelation module configured to perform spatial recorrelation on the block of entropy decoded values to determine one or more of the sub-primitive presence indications in the block of sub-primitive presence indications, said performing spatial recorrelation comprising:

(a) for each of a plurality of lines of entropy decoded values in a first dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value, and

(b) for each of a plurality of lines of entropy decoded values in a second dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value.

20 . 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, configures the integrated circuit manufacturing system to manufacture a decompression unit configured to decompress compressed data to determine one or more sub-primitive presence indications for use in a rendering system, the decompression unit being configured to:

receive a block of compressed data for a block of sub-primitive presence indications;

read entropy encoded data from the block of compressed data;

perform entropy decoding on the entropy encoded data to determine a block of entropy decoded data values; and

perform spatial recorrelation on the block of entropy decoded values to determine one or more of the sub-primitive presence indications in the block of sub-primitive presence indications, said performing spatial recorrelation comprising:

(a) for each of a plurality of lines of entropy decoded values in a first dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value; and

(b) for each of a plurality of lines of entropy decoded values in a second dimension within the block of entropy decoded values:

for one or more of the entropy decoded values in the line: (i) determining a predicted value for the entropy decoded value based on one or more other entropy decoded values in the line, and (ii) replacing the entropy decoded value with a value of a sum of the entropy decoded value and the determined predicted value for the entropy decoded value.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2023
From: FENNEY, SIMON
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 065222/0945 →