IP Library › Granted Patent US 10,068,308
Granted Patent B2
US 10,068,308 · App. 15/167,798 · Granted Sep 4, 2018

Lossy depth compression of multi-sample pixels

Inventor: Larry Seiler (Boylston, MA)
Assignee: Intel Corporation
G06T1/20G06T1/60G06T11/001G06T15/04G06T11/40G06T15/08G06T17/20
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 10,068,308
App. No.
15/167,798
Granted
Sep 4, 2018
Kind
B2
Abstract

Described herein are technologies related to facilitating lossy compression for multi-sampled depth data of computer graphics that maximizes the apparent quality of pixels while avoiding a corresponding burden on memory and processor bandwidth. The technologies described herein provide high-quality multi-sampling for pixels or groups of pixels that are covered by a small number of triangles, and provides a guaranteed minimum quality for pixels that are covered by a large number of triangles.

Claims (48)

1. A graphics processor comprising:

a memory; and

one or more graphics cores configured to operate with the memory to process computer graphics to:

obtain metadata that specifies compression storage state of depth values of a pixel block, the pixel block including both normal and coverage samples;

based on the obtained meta-data value, determine whether a pixel is stored with a separate depth per sample for the normal samples or is stored as Z-plane data covering one or more normal or coverage samples of the pixel, wherein the Z-plane data provides depths derived from one or more Z-planes at sample locations;

select Z-planes to discard based upon a Z-plane being associated with only coverage samples;

determine whether the pixel block is capable of being stored using the one or more Z-planes;

when the pixel block is determined as being capable, compress and store the Z-plane data; and

when the pixel block is determined as being incapable, divide the pixel block and test recursively to determine when the divided pixel block becomes capable of being stored using the one or more Z-planes or only a 1-pixel block remains.

2. The graphics processor as recited in claim 1 , wherein the one or more graphics cores is further configured to specify a single pixel using a Z-plane of the one or more Z-planes together with a mask that specifies whether each sample in the pixel uses a clear depth or the depth derived from the Z-plane.

3. The graphics processor as recited in claim 1 , wherein the one or more graphics cores is further configured to specify the pixel block using two or more Z-planes of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or a clear depth value.

4. The graphics processor as recited in claim 1 , wherein the one or more graphics cores is further configured to specify the pixel block using two or more of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or an invalid value, indicating that there is no depth value at that sample.

5. The graphics processor as recited in claim 1 , wherein the one or more graphics cores is further configured to store a depth value per normal sample when a set of Z-planes that cover normal samples cannot be stored in a memory footprint of a compressed pixel.

6. The graphics processor as recited in claim 1 , wherein the one or more graphics cores is further configured to:

determine that the block of pixels are incapable of being stored using Z-planes;

in response to that determination, repeatedly divide the block of pixels until only a 1-pixel block remains;

when only the 1-pixel block remains, determine that the 1-pixel bock is incapable of being stored using one or more Z-planes; and

store depth values at normal samples.

7. The graphics processor as recited in claim 1 , wherein a pixel block format is selected from a group consisting of Z-plane formats of 2×1 pixels per block, 2×2 pixels per block, and 4×4 pixels per block.

8. One or more non-transitory computer-readable media storing instructions thereon that, when executed by one or more processors, direct the one or more processors to perform operations comprising:

obtaining metadata that specifies compression storage state of depth values of a pixel block, the pixel block including both normal and coverage samples; and

based on the obtained meta-data value, determining whether a pixel is stored with a separate depth per sample for the normal samples or is stored as Z-plane data covering one or more normal or coverage samples of the pixel, wherein the Z-plane data provides depths derived from one or more Z-planes at sample locations;

selecting Z-planes to discard based upon a Z-plane being associated with only coverage samples;

determining whether the pixel block is capable of being stored using the one or more Z-planes;

when the pixel block is determined as being capable, compressing and storing the Z-plane data; and

when the pixel block is determined as being incapable, dividing the pixel block and testing recursively to determine when the divided pixel block becomes capable of being stored using the one or more Z-planes or only a 1-pixel block remains.

9. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

specifying a single pixel using a Z-plane of the one or more Z-planes together with a mask that specifies whether each sample in the pixel uses a clear depth or the depth derived from the Z-plane.

10. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

specifying the pixel block using two or more Z-planes of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or a clear depth value.

11. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

specifying the pixel block using two or more Z-planes of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or an invalid value, indicating that there is no depth value at that sample.

12. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

selecting Z-planes to discard based upon a Z-plane being associated with only coverage samples.

13. The one or more non-transitory computer-readable media of claim 12 , the operations further comprising:

storing a depth value per normal sample when a set of Z-planes that cover normal samples cannot be stored in a memory footprint of a compressed pixel.

14. A computer graphics system comprising:

a memory; and

a graphics processor, the graphics processor configured to:

obtain metadata that specifies compression storage state of depth values of a pixel block, the pixel block including both normal and coverage samples;

based on the obtained metadata value, determine whether a pixel is stored with a separate depth per sample for the normal samples or is stored as Z-plane data covering one or more normal or coverage samples of the pixel, wherein the Z-plane data provides depths derived from one or more Z-planes at sample locations; and

select Z-planes to discard based upon a Z-plane being associated with only coverage samples, determine whether the pixel block is capable of being stored using the one or more Z-planes, when the pixel block is determined as being capable, compress and store the Z-plane data, and when the pixel block is determined as being incapable, divide the pixel block and test recursively to determine when the divided pixel block becomes capable of being stored using the one or more Z-planes or only a 1-pixel block remains.

15. The system of claim 14 ,

wherein the graphics processor is further configured to specify a single pixel using a Z-plane of the one or more Z-planes together with a mask that specifies whether each sample in the pixel uses a clear depth or the depth derived from the used Z-plane.

16. The system of claim 14 ,

wherein the graphics processor is further configured to specify the pixel block using two or more Z-planes of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or a clear depth value.

17. The system of claim 14 ,

wherein the graphics processor is further configured to specify the pixel block using two or more Z-planes of the one or more Z-planes together with a mask per sample that selects one of the used Z-planes or an invalid value, indicating that there is no depth value at that sample.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: SEILER, LARRY
To: INTEL CORPORATION
Reel/Frame 038801/0193 →
Continuity (1)
Related Publication 20170345120A1 · Nov 30, 2017