With OpenGL ES 3.0
and OpenGL 4.3
there is now mandatory texture compression support in the form of ETC2, the Ericsson Texture Compression method.
The slides pertaining to the mandated ETC2 support in the latest GL standards from SIGGRAPH 2012 have now been uploaded. ETC1/ETC2 was designed by Ericsson Research and this means of texture compression is quite interesting. ETC2 also isn't covered by patents like the notorious for open-source but widely-used S3TC
This past week the Khronos Group also unveiled ASTC as a means of next-generation royalty-free texture compression
. The Adaptive Scalable Texture Compression (ASTC) though isn't yet mandated by the latest OpenGL specification.
ETC2 is higher quality than its predecessor and also introduces support for alpha pixels and R-/RG- textures. As mentioned already, ETC2 texture compression support is mandatory with OpenGL 4.3 and OpenGL ES 3.0. Graphics texture compression reduces memory usage and avoids congesting the bus, thereby trying to avoid a performance bottleneck.
ETC2 and other means of texture compression allows for more textures to fit in video memory, leads to less traffic on the bus for higher performance and lower power consumption, and it becomes cheaper to transit textures over networks. ETC1 has been available for years and has shipped in Google's Android since 2.2-Froyo, but until this week was not mandated as part of the OpenGL ES specification. ETC1 had limitations of not supporting alpha and RG-textures, but that's been addressed by this latest version. ETC2 is the same bit-rate as ETC1 but with enhanced quality. Ericsson Research states that ETC2 is about 1.0 dB better than ETC1, 0.8 dB better than S3TC/DXTC, and 1.6 dB better than PVR-TC texture compression. The Khronos ASTC texture compression is slightly better than ETC2.
Here's some sample images of the original source, S3TC, ETC1, and ETC2. ETC2 definitely delivers superior quality to ETC1 and is comparable to S3 Texture Compression.
ETC2 is backwards compatible with ETC1.
Ericsson has made available a compression for handling ETC1/ETC2/EAC.
Compared to the new Khronos ASTC texture compression method, ETC2/EAC codecs are now mandatory with the GL/GLES specifications while ASTC is optional for now, ETC2 is backwards compatible with ETC1, implemented in silicon ETC2 is likely smaller than ASTC, and ETC2 has punch-through alpha support. To the advantage of ASTC there is support for more bit rates (ETC2 is limited to 4 bits per pixel) and ASTC has slightly higher quality (about half a dB compared to ETC2).