ASTC Format: The Ultimate Texture Compression Guide
ASTC (Adaptive Scalable Texture Compression) is the most advanced and flexible texture compression format available today. Developed by ARM and adopted as an official Khronos standard, ASTC provides unprecedented control over quality and compression ratios, making it the ideal choice for modern mobile and desktop graphics.
What is ASTC?
ASTC is a lossy block-based texture compression format designed to replace older formats like ETC, PVRTC, and DXT/BCn. It was specifically designed to provide a single, unified format that works across all platforms and supports a wide range of quality/size trade-offs.
Unlike previous formats with fixed compression ratios, ASTC allows developers to choose from 14 different 2D block sizes (from 4×4 to 12×12) and multiple quality levels, offering fine-grained control over the balance between visual quality and memory consumption.
ASTC supports LDR (Low Dynamic Range) and HDR (High Dynamic Range) content, 1-4 color channels, and both 2D and 3D textures. This versatility makes it suitable for virtually any texture type in modern graphics applications.
Key Features of ASTC
Flexible Block Sizes
14 different 2D block sizes from 4×4 (8 bpp) to 12×12 (0.89 bpp), allowing precise control over compression ratio and quality
Adjustable Quality
Multiple encoding quality levels (fast, medium, thorough, exhaustive) to balance encoding time and visual fidelity
HDR Support
Native support for High Dynamic Range textures, essential for modern PBR (Physically Based Rendering) workflows
Hardware Efficient
Designed for efficient hardware decompression with minimal power consumption and memory bandwidth usage
ASTC Block Sizes Explained
ASTC's block size determines the compression ratio and quality. Smaller blocks preserve more detail but offer less compression:
| Block Size | Bits/Pixel | Quality | Best Use Case |
|---|---|---|---|
| 4x4 | 8.00 | Highest | Detailed textures, normal maps |
| 5x5 | 5.12 | High | High-quality color textures |
| 6x6 | 3.56 | Medium-High | Balanced quality/size (recommended default) |
| 8x8 | 2.00 | Medium | Background textures, UI elements |
| 12x12 | 0.89 | Lower | Maximum compression for large textures |
Encoding Quality Levels
ASTC encoders support multiple quality presets that affect encoding time and output quality:
Fast
~1-2 secondsFastest encoding with good quality. Suitable for rapid iteration during development.
Medium
~5-10 secondsBalanced quality and speed. Recommended for most use cases and production builds.
Thorough
~30-60 secondsHigh quality compression with more exhaustive search. Good for hero assets and final builds.
Exhaustive
~2-5 minutesMaximum quality with very slow encoding. Use for critical assets where quality is paramount.
Advantages of ASTC
Universal Platform Support
Supported on all modern mobile GPUs (OpenGL ES 3.2+, Vulkan), replacing multiple platform-specific formats with a single solution.
Unmatched Flexibility
14 block sizes and multiple quality levels provide more control than any other compression format, optimizing for each texture type.
Superior Quality
Advanced compression algorithms produce better visual quality than ETC, PVRTC, or DXT at comparable bitrates.
Modern Features
HDR support, 3D textures, and optimal encoding for PBR materials make ASTC future-proof for modern rendering techniques.
ASTC vs Other Formats
How ASTC compares to traditional texture compression formats:
vs ETC1/ETC2
ETC is Android's legacy format with fixed 4:1 compression (ETC1) or 8:1 (ETC2 RGBA).
ASTC Advantage: ASTC offers better quality at the same bitrate and supports more compression ratios (0.89-8 bpp vs 4-8 bpp)
vs PVRTC
PVRTC is iOS's legacy format with 2 or 4 bits per pixel compression.
ASTC Advantage: ASTC provides better quality, more flexibility, and avoids PVRTC's block boundary artifacts
vs DXT/BCn
DXT/BCn is the desktop standard with 4-8 bits per pixel for different formats.
ASTC Advantage: ASTC matches or exceeds BCn quality while offering lower bitrates (down to 0.89 bpp) for mobile
How to Use ASTC Format
Using ASTC in your projects is straightforward with our online tools:
Encoding to ASTC
- Upload your source image (PNG, JPG) - works with any dimensions
- Select block size based on your quality/size requirements (6×6 is recommended for most cases)
- Choose encoding quality (medium for development, thorough/exhaustive for production)
- Download the .astc file and integrate into your project
Decoding ASTC Files
- Upload your .astc file to inspect its contents
- View decompressed texture with block size and format information
- Export to PNG for editing or quality verification
Best Practices
- Use 6×6 blocks as a starting point (3.56 bpp) - it provides excellent quality/size balance for most textures
- Choose smaller blocks (4×4, 5×5) for detail-critical textures like normal maps or UI text
- Use larger blocks (8×8, 10×10, 12×12) for backgrounds, skyboxes, or textures viewed from a distance
- Test different quality levels - 'medium' is often sufficient, use 'thorough' or 'exhaustive' only for hero assets
- Consider using different block sizes for different texture types in the same application to optimize memory usage
- Always preview compressed textures on target devices - quality perception varies by content and viewing conditions
Conclusion
ASTC represents the pinnacle of texture compression technology, offering unparalleled flexibility, quality, and platform support. Its adaptive nature allows developers to fine-tune compression for each asset, optimizing the balance between visual fidelity and memory consumption.
Whether you're developing for mobile, desktop, or console platforms, ASTC provides a future-proof solution that scales from low-end devices to high-end graphics. Our online ASTC tools make it easy to experiment with different settings and find the perfect configuration for your project's needs.
Further Reading & References
Deep dive into ASTC with these authoritative resources:
- ASTC Specification (Khronos) - Official ASTC format specification and technical reference
- ARM ASTC Evaluation Codec - Reference encoder implementation and documentation from ARM
- Adaptive Scalable Texture Compression (Wikipedia) - Comprehensive overview of ASTC technology and adoption
- ASTC: The Ultimate Texture Compression - ARM developer documentation on ASTC best practices
- Unity ASTC Compression Guide - Practical guide to using ASTC in game engines