Encoding
The algorithm that is used for S3TC is actually a very simple one. S3TC breaks a texture map into 4x4 texels. For opaque textures, each texel is represented by a 2 bit code. Accompanying each 4x4 texel block are two representative 16 bit colors in RGB565 format. With these two representative color, two more colors are derived by interpolating the two repsentative colors uniformaly, forming a 4 color look-up table. Each bit of the 4x4 texel block is then encoded using the 4 bit color look-up table. In total 64 bits are used for the 16 texels, yielding and average of 4 bits per texel. If the texture has transparencies, one of the 4 colors of the lookup table is used to indicate transparency and the derived color then just becomes the average of the 2 representative colors.
Below is a figure showing the original block, the color look-up table and the compressed block.
But does image quality suffer with S3TC?
Next: Image Quality »
Skip Ahead![]() 1 Introduction 2 Higher Resolution Textures 3 More Benefits 4 S3 Texture Compression Algorithm 5 Image Quality 6 Implementation, Support, and The Future of S3TC |