Jump to content

Texture compression: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Gigacephalus (talk | contribs)
tidying
Added german translation link.
Line 29: Line 29:
{{compu-graphics-stub}}
{{compu-graphics-stub}}


[[de:Texturkomprimierung]]
[[es:Compresión de texturas]]
[[es:Compresión de texturas]]

Revision as of 08:18, 12 January 2012

Texture compression is a specialized form of image compression designed for storing texture maps in 3D computer graphics rendering systems. Unlike conventional image compression algorithms, texture compression algorithms are optimized for random access.

How it works

In their seminal paper on texture compression [1], Beers, Agrawala and Chaddha list four features that tend to differentiate texture compression from other image compression techniques. These features are:

  • Decoding Speed: It is highly desirable to be able to render directly from the compressed texture data and so, in order not to impact rendering performance, decompression must be fast.
  • Random Access: Since predicting the order that a renderer accesses texels would be 'difficult', any texture compression scheme must allow fast random access to decompressed texture data. This tends to rule out image compression schemes such as JPEG or Run-length encoding.
  • Compression Rate and Visual Quality: In a rendering system, lossy compression can be more tolerable than for other use cases.
  • Encoding Speed: Texture compression is more tolerant of asymmetric encoding/decoding rates as the encoding process is often done only once during the application authoring process.

Given the above, most texture compression algorithms involve some form of fixed-rate lossy vector quantization of small fixed-size blocks of pixels into small fixed-size blocks of coding bits, sometimes with additional extra pre-processing and post-processing steps. Block Truncation Coding is a very simple example of this family of algorithms.

Because their data access patterns are well-defined, texture decompression may be executed on-the-fly during rendering as part of the overall graphics pipeline, reducing overall bandwidth and storage needs throughout the graphics system. As well as texture maps, texture compression may also be used to encode other kinds of rendering map, including bump maps and surface normal maps. Texture compression may also be used together with other forms of map processing such as MIP maps and anisotropic filtering.

Availability

Some examples of practical texture compression systems are S3 Texture Compression, PVRTC and Ericsson Texture Compression.

OpenGL and OpenGL ES, as implemented on many video accelerator cards and mobile GPUs, can support multiple common kinds of texture compression - generally through the use of vendor extensions.

See also

References

  1. ^ Andrew Beers (1996), "Rendering from Compressed Textures", Computer Graphics, Proc. SIGGRAPH: 373–378 {{citation}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)