US9947071B2

Texture pipeline with online variable rate dictionary compression

Summary by NHIP

Variable rate texture compression

The method analyzes texture blocks to independently select compression types including flat, planar, wavelet, or spline formats based on pixel content. Metadata maps uncompressed addresses to compressed dictionary values, allowing duplicate blocks to reference identical data entries.

Claim Score by NHIP

Read claim 14, the broadest

Abstract

A graphics system supports variable rate compression and decompression of texture data and color data. An individual block of data is analyzed to determine a compression data type from a plurality of different compression data types having different compression lengths. The compression data types may include a compression data type for a block having a constant (flat) pixel value over n×n pixels, compression data type in which a subset of 3 or 4 values represents a plane or gradient, and wavelet or other compression type to represent higher frequency content. Additionally, metadata indexing provides information to map between an uncompressed address to a compressed address. To reduce the storage requirement, the metadata indexing permits two or more duplicate data blocks to reference the same piece of compressed data.

US9947071B2, drawing sheet 1
Sheet 1 of 9

Term

9 yearsleft in the term

Expires 20 September 2035, including 95 days of term adjustment.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

19 claims: 2 independent, 17 dependent

  1. 1
    A method of variable rate compression of pixel or texel color values in a texture pipeline of graphics processing system, comprising:analyzing a set of blocks of color values of one of a texture and an image, wherein the one of the texture and the image is divided into the set of blocks of color values, each of the blocks of color values comprising a region of n×n pixels or texels (n being a natural number);for each individual block of color values, independently determining an associated data type of a plurality of data types based on the individual block of color values, each of the plurality of data types having a different compressed length with each data type having an associated compression type, the plurality of data types comprising a flat data type, a planar data type, and one of a wavelet data type and a spline data type;for each block of color values, compressing color data of each block based on the determined associated data type, the determined associated data type being one of the flat data type, the planar data type, the wavelet data type, or a spline data type;for each compressed block of color values, generating metadata defining a mapping between an uncompressed texture address space of each block to a compressed texture address space and which indicates the data type of each block;and decompressing a block of pixels by accessing a dictionary value and using the dictionary value to generate uncompressed color data for a plurality of data blocks.
  2. 14
    Broadest claimClaim Score 30, narrow(NHIP)A graphics processing unit, comprising:a texture pipeline including: a compressor to perform variable rate compression of blocks of data of a texture by: analyzing the blocks of data of the texture, the texture being divided into the blocks of data, each of the blocks of data comprising a region of n×n pixels or texels (n being a natural number);for each individual block of data, independently determining an associated data type of a plurality of data types based on the individual block of data, each of the plurality of data types having a different compressed length with each data type having an associated compression type, the plurality of data types comprising a flat data type, a planar data type, and one of a wavelet data type and a spline data type;for each block of data, compressing data of each block based on the determined associated data type, the determined associated data type being one of the flat data type, the planar data type, the wavelet data type, or a spline data type;and a decompressor to perform decompression of the compressed data by accessing a dictionary value and using the dictionary value to generate uncompressed color data for a plurality of data blocks.