ASTC File Format
Understand what an ASTC file stores, why the format is common on mobile GPUs, and how to export ASTC to PNG for inspection.
ASTC format essentials
- Fixed 128-bit block architecture & 14 standard 2D footprints: ASTC (Adaptive Scalable Texture Compression) compresses each texel block into exactly 128 bits (16 bytes), allowing hardware to access individual blocks directly in video memory. It supports 14 standard 2D block footprints from high-quality 4×4 (8.00 bpp) to compact 12×12 (0.89 bpp), enabling granular tradeoffs between image fidelity and memory footprint.
- 16-byte container header & dimensional boundaries: Standard .astc files begin with the 4-byte magic number 0x5CA1AB13, followed by 1 byte each for block dimensions (X, Y, Z) and 3 bytes each for texture dimensions (X, Y, Z in little-endian). Standard 2D textures have depth = 1, while 3D volumetric textures use depth > 1 (in-browser encoding supports 2D and height-divisible vertical slice 3D atlas mode).
- In-browser inspection & PNG export: Client-side decoders unpack 128-bit 2D ASTC blocks into standard RGBA8 raster pixels for visual inspection and PNG export (dedicated HDR float decoding and 3D volume preview are not supported); direct .astc container imports into game engines like Unity require engine-specific asset pipeline loaders.
Related tools
Use the site ASTC viewer and encoder to validate the format, export PNG, or re-encode the texture.
Official Specifications & References
For complete details on ASTC 128-bit block layouts, endpoint encoding, and mobile GPU hardware support, consult the official primary specifications:
- Khronos Data Format Specification (ASTC Section) — Official Khronos specification for ASTC block encoding and 2D/3D footprint formats
- Arm ASTC Texture Compression Guide — Official Arm developer guide on mobile GPU architecture and block size tradeoffs