S3TC Texture Compression
What can S3TC Texture Compression do?
||S3TC texture compression allows more
and larger - more detailed - textures to be stored in a smaller memory area and, at the
same time, significantly decreases the bandwidth required to access them.
of Texture Compression
Smaller, less detailed texture maps typically result in surfaces that look blurry or blocky while larger textures let applications provide more surface detail. Using S3TC texture compression developers can implement a greater variety of textures to be used simultaneously, permitting more varied detail within any given scene. When texturing out of local frame buffer memory - the memory on the graphics card - compression frees enough memory to increase the display resolution or to allow for triple buffering. Higher resolution provides a smoother, more detailed look, while triple buffering improves accelerator performance by letting the rendering engine to begin to draw a new scene without having to wait for the displays vertical sync. Using triple buffering can result in increases in the frame rate by as much as 30%.
The free memory available when using compressed textures provides for the use of Mip-maps even with the added memory storage required. (Mip-maps can help to reduce aliasing artifacts visible on textured surfaces used to give the effect of distance. Without the use of Mip-maps, a pixel on an object in the distance may rely on association with texels from the original texture map. Low-pass filtering is used to retain the information without creating unwanted artifacts. Real time filtering is costly, so staged Mip-map levels can be used that are pre-adjusted filtered images lowering the filtering complexity.
Using Mip-maps can increase performance by keeping memory accesses sequential and allowing longer bursts. Without mip-maps, as objects move farther away, pixels are sampled less frequently making memory accesses more random and increasing the likelihood of shorter, less efficient bursts and page break penalties.
The S3 texture compression scheme (S3TC) was designed and developed specifically
for texture maps. Textures are compressed to a fixed size equal to four bits per texel
(texture pixels) for opaque textures or eight bits per texel for complex transparent
textures. The quality of the textures even after compression is quite good - athough this
is currently under hot debate.
While other compression techniques exist, many simple schemes using inexpensive decoders have inferior quality, or a smaller compression factor, or both.
S3TC is the basis for the compressed texture formats used in DirectX 6.0. Microsoft has licensed S3TC from S3 and is making it available to both the ISV and IHV communities through the forthcoming DirectX 6.0 API. Software developers can expect a broad level of support for texture maps compressed in this format. With Microsofts support for this standard is also the fact that it is easy to build into any graphics hardware. So you might expect it to be universally available before long. Software developers may soon ship applications with all of their textures compressed, since a DirectX API will always be available to decompress these in software when the target hardware does not support S3TC.
In an 8MB frame buffer, an application running at 800x600x16 double-buffered with a
16-bit z-buffer will have 5.25MBs of memory left over for texture storage. If S3TC
is used, those 5.25MBs will be able to store the equivalent of 31.5MBs of texture.
Developers could switch to triple buffering and still have the equivalent of 26MBs of
texture storage. Or they could quadruple the resolution of all the textures, convert them
all to Mip-maps and still have the equivalent of 3.5MBs of texture storage left over.
Using S3TC compressed textures, applications can use a wider variety of textures, higher resolution textures and still increase performance by cutting the read bandwidth required, or increase performance by switching to triple buffering and mip-mapping, or use a combination of all of these. This could greatly increase the realism of computer generated 3D
S3TC saves memory storage space and lowers system bandwidth requirements. S3TC provides a compression scheme that delivers high image quality with a simple decoder, easily implemented in hardware.
Here is a summary of the benefits:
- Adopted by Microsoft as a DirectX 6.0 industry standard, its easy for software developers to use
- Reduction in memory storage allows for more and larger textures yielding better image quality
- Reduced texture read bandwidth requirements improves overall system performance
- Good compression ratio of up to 6:1
- Block based, fixed compression rate with random access easily implemented in hardware.
- Decompression in hardware is simple and fast
- Excellent quality often better than palletized, JPEG or uncompressed RGB 5:6:5
- Simple transparent pixels can be encoded at no extra cost
- Complex transparencies and smooth alpha are also supported
- High quality, simple to use tools for encoding are available
What does all this mean for the AOpen Navigator PA70? Well, before we look at benchmarks, let have a gander at image quality.