Stencil Buffer Compression via Anchor Offsets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional one-bit delta stencil buffer compression techniques are limited in compressing stencil groups where stencil values vary by more than one, leading to no memory bandwidth, power, or performance advantage in certain rendering scenarios.

Innovation Solution

A method that selects anchors for batches of stencil values, computes offsets and an anchor delta, and stores these in memory as compressed stencil data instead of uncompressed data, allowing for compression across groups with varying stencil values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If one-bit delta stencil buffer compression is used, then memory bandwidth and power consumption are reduced for compressible stencil groups, but the number of compressible groups is limited to those with stencil value variation of exactly one

Engineering Contradiction:
Improvepower consumptionVSAvoidcompressibility of stencil groups
Core Design Contradiction:
Loss of energyVSAdaptability or versatility

Solution Approach 1:

The patent changes the compression parameter from strict delta=1 constraint to allowing delta>1 when accompanied by a delta flag. This enables the compression algorithm to handle stencil groups with greater value variation while maintaining compressed representation, thereby increasing adaptability without sacrificing the memory bandwidth and power consumption benefits

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The compression format becomes dynamic by introducing an optional delta flag that can be set or cleared based on the specific stencil group characteristics. This allows the system to adapt the compression representation flexibly - using the flag when delta>1 and omitting it when delta=1, optimizing both compressibility and efficiency

Inventive Principle:
Principle #15Dynamics

2Productivity

If one-bit delta stencil buffer compression is used, then memory access operations are reduced for compressible stencil groups, but processing operations must still be performed on individual stencil values

Engineering Contradiction:
Improvememory access efficiencyVSAvoidprocessing operation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the stencil buffer into groups of 16 samples, where compression is applied at the group level. This segmentation allows memory operations to be performed on compressed group data rather than individual values, significantly reducing memory access operations while maintaining the ability to process stencil values through the group structure

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If stencil values are stored uncompressed, then all processing operations can be performed on individual values, but memory bandwidth and processing capability are consumed at maximum capacity

Engineering Contradiction:
Improveprocessing flexibilityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent applies partial compression to only those stencil groups that are compressible (where stencil values vary by exactly one), leaving non-compressible groups uncompressed. This partial action approach optimizes memory bandwidth by compressing only the beneficial portions while maintaining full processing capability where needed, avoiding the excessive action of compressing all data regardless of suitability

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9390464B2Stencil buffer data compression
Publication Date: 2016.07.12 NVIDIA CORP
  • US9390464B2 patent drawing
  • US9390464B2 patent drawing
  • US9390464B2 patent drawing

AI summary

A raster operations (ROP) unit is configured to compress stencil values included in a stencil buffer. The ROP unit divides the stencil values into groups, subdivides each group into two halves, and selects an anchor value for each half. If the difference between each of the stencil values and the corresponding anchor lies within an offset range, and the difference between the two anchors lies within a delta range, then the group is compressible. For a compressible group, the ROP unit encodes the anchor value, offsets from anchors, and an anchor delta. This encoding enables the ROP unit to operate on the compressed group instead of the uncompressed stencil values, reducing the number of memory and computational operations associated with the stencil values. Consequently, the ROP unit reduces memory bandwidth use, reduces power consumption, and increases rendering rate compared to conventional ROP units that implement less flexible compression techniques.