Adaptive Scalable Texture Compression (ASTC)

Adaptive Scalable Texture Compression (ASTC) technology developed by Arm and AMD has been adopted as an official extension to both the OpenGL® and OpenGL® ES graphics APIs. ASTC is a major step forward in terms of image quality, reducing memory bandwidth and thus energy use.

ASTC offers a number of advantages over existing texture compression schemes:

  • Flexibility, with bit rates from 8 bits per pixel (bpp) down to less than 1 bpp. This allows content developers to fine-tune the tradeoff of space against quality.
  • Support for 1 to 4 color channels, together with modes for uncorrelated channels for use in mask textures and normal maps.
  • Support for both low dynamic range (LDR) and high dynamic range (HDR) images.
  • Support for both 2D and 3D images.
  • Interoperability: Developers can choose any combination of features that suits their needs.

ASTC specification includes two profiles: LDR and Full. Both of these are supported on the 2nd generation of Mali-T600 series, the Mali-T700 and Mali-T800 series. The smaller LDR Profile supports 2D low dynamic range images only. It is designed to be easy to integrate with existing hardware designs that already deal with compressed 2D images in other formats. The LDR Profile is a strict subset of the Full Profile, which also includes the 3D textures and high dynamic range support.

ASTC Technical Documentation

You can find additional documentation about ASTC in the Arm Connected Community:

For technical details on ASTC, please refer to the blog posts by Tom Olson and Sean Ellis.

Who supports ASTC technology?

ASTC is widely supported by all major hardware vendors and it is free to use. Google’s Android Extension Pack (GL_ANDROID_extension_pack_es31a) also requires support for ASTC. If you are a game developer, Unreal Engine 4 and Unity 5 already support ASTC and for those of you building your own game engine, you can clone the GitHub repository to start using ASTC yourself. 

A number of Arm developer tools also support ASTC such as: 

  • Mali GPU Texture Compression Tool – can compress and decompress textures to ASTC, show the preview and let you experiment with different parameters and block sizes.
  • OpenGL ES Emulator – an OpenGL ES library for desktop PCs lets you experiment with ASTC textures even where they are not supported in hardware.
  • Mali Graphics Debugger – can trace, capture and visualize ASTC textures used by your application.