DXTn Compression

Since quite a lot of the search strings leading people to this blog are related to DXT compression, I feel obliged to link the best papers on the subject I’ve had the pleasure to read (but, unfortunately, not to implement). Both are published on Intel’s site, both are written by an id Software programmer called J.M.P van Waveren; for some reason, googling “waveren site:intel.com” doesn’t find both of them, although other search strings find each of them individually.

One of them is called Real-Time DXT CompressionВ and presents a heavily optimized SSE2 DXT compressor, the other is called Real-Time Texture Streaming & Decompression and presentsВ a similarly SSE2-ified JPEG-alike scheme. Since Intel’s webmasters can’t be trusted to keep the URLs alive, you’ll be better off looking by keywords for them at site:intel. Both achieve very impressive rates - e.g. 200 MPixels/sec RGB to DXT1 compression and 190 MPixels/sec DCT decompression, bothВ on a beefy Conroe chip.

Go ahead, dig in the SIMD intrinsics of your [employer’s] platform of choice. You have no excuse to load zlibbed DXTs anymore. (I hope no one is loading uncompressed TGA or BMPs in 2007, right? RIGHT?)

3 Responses to “DXTn Compression”

  1. icastano Says:

    For higher quality compression (non real-time) a good source of information is the source code of the NVIDIA Texture Tools:

    http://code.google.com/p/nvidia-texture-tools/

    The algorithms used in the library are based on Simon Brown’s squish:

    http://www.sjbrown.co.uk/?article=dxt

    You can also find a white paper with more details about the algorithm in the CUDA SDK example that I wrote:

    http://developer.download.nvidia.com/compute/cuda/sdk/website/samples.html#dxtc

  2. Ivan-Assen Ivanov Says:

    Thanks for the links - nice to have them in this post, for future visitors.

    We evaluated the CUDA-based tools for our pipeline, and it was about twice as fast as the old-ish NVDXT we use, on our 8600GTs. Some of the build machines are still with 6600s, and we aren’t limited by DXT compression in our asset pipeline (we cache everything and each daily build compresses only the textures changed for the day, which aren’t that many), so we decided the additional speed isn’t worth the hassle of supporting two sets of tools and detecting which to use. Maybe on our round of hardware upgrades, when we’ll get rid of all the 6600s and we replace them with even faster CUDA-capable cards…

  3. DXTn Compression Says:

    […] This is the cached version of http://assen.shtrak.com/?p=71 We are neither affiliated with the authors of this page nor responsible for its content. […]

Leave a Reply