Back to Blog
Formats

ASTC Format: The Ultimate Texture Compression Guide

12 min read

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 SizeBits/PixelQualityBest Use Case
4x48.00HighestDetailed textures, normal maps
5x55.12HighHigh-quality color textures
6x63.56Medium-HighBalanced quality/size (recommended default)
8x82.00MediumBackground textures, UI elements
12x120.89LowerMaximum compression for large textures

Encoding Quality Levels

ASTC encoders support multiple quality presets that affect encoding time and output quality:

Fast

~1-2 seconds

Fastest encoding with good quality. Suitable for rapid iteration during development.

Medium

~5-10 seconds

Balanced quality and speed. Recommended for most use cases and production builds.

Thorough

~30-60 seconds

High quality compression with more exhaustive search. Good for hero assets and final builds.

Exhaustive

~2-5 minutes

Maximum 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

  1. Upload your source image (PNG, JPG) - works with any dimensions
  2. Select block size based on your quality/size requirements (6×6 is recommended for most cases)
  3. Choose encoding quality (medium for development, thorough/exhaustive for production)
  4. Download the .astc file and integrate into your project

Decoding ASTC Files

  1. Upload your .astc file to inspect its contents
  2. View decompressed texture with block size and format information
  3. 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: