Real-Time Texture Streaming & Decompression

Published: 09/09/2011, Last Updated: 09/09/2011


Textures are digitized images drawn onto geometric shapes to add visual detail. In today's computer graphics a tremendous amount of detail is mapped onto geometric shapes during rasterization. Especially uniquely textured environments require huge amounts of texture data. Not only textures with colors are used but also textures specifying surface properties like specular reflection or fine surface details in the form of normal or bump maps. All these textures can consume large amounts of storage space and bandwidth. Fortunately compression can be used to reduce the storage and bandwidth requirements.

There are compressed texture formats like DXT or S3TC that can be decompressed in hardware during rasterization on current graphics cards. However, these formats are optimized for decompression in hardware and as such typically do not result in the best possible compression ratios. Graphics applications may use vast amounts of texture data that is not displayed all at once but streamed from disk as the view point moves or the rendered scene changes. Strong compression may be required to deal with such vast amounts of texture data to keep storage and bandwidth requirements within acceptable limits. As these textures are streamed from disk they have to be decompressed on the fly before they can be used for rendering on current graphics cards.

There are several formats like GIF, PNG and JPEG-LS for lossless compression of images. Lossless (reversible) image compression techniques preserve the information so that exact reconstruction of the image is possible from the compressed data. In other words there is no loss in quality when an image is compressed to one of these formats. However, these compression formats typically also do not result in compression ratios that are high enough to store vast amounts of texture data. In this article several different lossy compression formats and streaming solutions are evaluated for rendering textures from very large texture databases. Furthermore a compression format similar to JPEG and an SIMD optimized threaded pipeline is introduced to achieve high speed streaming of textures.

Download [1.53MB PDF]


Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804