Skip to content
Main menu
  • Main page
  • Discover
  • Unexpected connections
  • Topics
  • Random article
  • Search
Your library
  • Saved articles
  • Recent discoveries
  • Rabbit-hole trails
Topic areas
  • Computer Science
  • Mathematics
  • Physics
  • Engineering
  • Biology
  • Economics
  • Curiosities
WikiholeDeeper into Wikipedia
EnglishEN
  • Saved
  • History

  • Article text and media come live from Wikipedia via the official MediaWiki API and are available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply. Each article links to its source and revision.
  • WikiHole is an independent project and is not affiliated with the Wikimedia Foundation.
  • How ranking works
  • All topics
  • Reading history
  • Random article
  • MediaWiki API

Adaptive scalable texture compression

  • Article
  • Rabbit hole
  • Read
  • View history
Tools
Actions
  • Read
  • View history
General
  • Recent changes
  • Related articles
  • Random discovery
This article
Reading time
6 min
Topic
Computer Science
Quality
C-class
Views
289 in 14 days
Last edited
3 Nov 2026
Print/export
  • Printable version
In other projects
  • Wikidata item
From Wikipedia, the free encyclopedia
Rabbit hole:
  1. Adaptive scalable texture compression

Adaptive scalable texture compression (ASTC) is a lossy block-based texture compression algorithm developed by Jørn Nystad et al. of ARM Ltd. and AMD.1

Full details of ASTC were first presented publicly at the High Performance Graphics 2012 conference, in a paper by Olson et al. entitled "Adaptive Scalable Texture Compression".2

ASTC was adopted as an official extension for both OpenGL and OpenGL ES by the Khronos Group on 6 August 2012.3

Loading the rest of the article…

Recent changes

Rabbit hole

Where Adaptive scalable texture compression leads. Every connection below has a source: a link in this article, a shared Wikipedia category, or CirrusSearch text similarity. Articles already on your trail are left out.

Contents
  • (Top)
  • Hardware support
  • Overview
  • Technical features
  • Supported color formats
  • 2D block footprints and bit rates
  • 3D block footprints and bit rates
  • Universal ASTC
  • See also
  • References
  • External links
  • Recent changes
  • Rabbit hole
Contents
Contents12 sections
  • (Top)
  • Hardware support
  • Overview
  • Technical features
  • Supported color formats
  • 2D block footprints and bit rates
  • 3D block footprints and bit rates
  • Universal ASTC
  • See also
  • References
  • External links
  • Recent changes
  • Rabbit hole
Study aids for Adaptive scalable texture compression

Terminology

ASTC
Adaptive scalable texture compression (ASTC) is a lossy block-based texture compression algorithm developed by Jørn Nystad et al. of ARM Ltd. and AMD.

Terms the article defines in bold, quoted in context.

Categories:
  • Lossy compression algorithms
  • Texture compression
  • AMD technologies
  • Data compression

801 words · 17 references · revision 1383586878 · CC BY-SA 4.0

General
  • Recent changes
  • Related articles
  • Random discovery
This article
Reading time
6 min
Topic
Computer Science
Quality
C-class
Views
289 in 14 days
Last edited
3 Nov 2026

Key concepts

  • Lossy compression1
  • Texture compression1
  • Algorithm1
  • ARM Holdings1
  • Advanced Micro Devices1
  • OpenGL1
  • OpenGL ES1
  • Khronos Group1
  • Radeon1
  • Apple silicon1

The articles this one links to most, weighted towards the introduction.

Print/export
  • Printable version
In other projects
  • Wikidata item

Hardware support

Vendor/productProfileGeneration
AMD Radeon?
Apple GPUsLDR onlyA8 through A124
FullSince A134
Arm MaliFullSince Mali-T620/T720/T8205
Imagination PowerVRFullSince Series6XT6
Intel GPUsFull7From Skylake8 ; Removed in Arc / Gen12.59
Nvidia Tegra?Since Kepler10
Qualcomm AdrenoFullLDR since 4xx series,11 at least 7xx series support GL_KHR_texture_compression_astc_hdr extension on Android 13

On Linux, all Gallium 3D drivers have a software fallback since 2018, so ASTC can be used on any AMD Radeon GPU.12

Overview

Example image prior to compression
Detail from example image, after compression at 8, 3.56 and 2 bits/pixel

The method of compression is an evolution of Color Cell Compression with features including numerous closely spaced fractional bit rates, multiple color formats, support for high-dynamic-range (HDR) textures, and real 3D texture support.

The stated primary design goal for ASTC is to enable content developers to have better control over the space/quality tradeoff inherent in any lossy compression scheme. With ASTC, the ratio between adjacent bit rates is of the order of 25%, making it less expensive to increase quality for a given texture.

Encoding different assets often requires different color formats. ASTC allows a wide choice of input formats, including luminance-only, luminance-alpha, RGB, RGBA, and modes optimized for surface normals. The designer can thus choose the optimal format without having to support multiple different compression schemes.

The choices of bit rate and color format do not constrain each other, so that it's possible to choose from a large number of combinations.

Despite this flexibility, ASTC achieves better peak signal-to-noise ratios than PVRTC, , and when measured at 2 and 3.56 bits per . For HDR textures, it produces results comparable to BC6H at 8 bits per texel.

Technical features

The algorithm decouples the resolution of the weight grid from the texels, allowing each block to have a grid of up to 64 weights. These weights are then interpolated to determine the values for each texel using bilinear or trilinear interpolation.2

In dual-plane mode, two separate weight values are specified for each texel. One color channel can be designated as the second plane and interpolated using an independent weight grid, selected via a 2-bit component selector. This is particularly useful for uncorrelated channels like alpha.13 Void-extent blocks are also available to efficiently encode constant color areas.13

A fundamental component of ASTC is Bounded Integer Sequence Encoding (BISE), a low-level coding scheme that allows sequences of data values to be represented using a fractional number of bits per value.2 This is used for efficient non-power-of-two quantization of both color endpoints and weights.

ASTC also supports multi-partitioning, allowing a block to be divided into up to four spatial subsets, each with its own color endpoints.2 For high-dynamic-range (HDR) textures, it uses a pseudo-logarithmic representation to maintain consistent precision across a wide range of values.2

Supported color formats

ASTC supports anywhere from 1 to 4 channels. In modes with 2–4 channels, one of the channels can be treated as "uncorrelated" and be given a separate gradient for prediction. In any case, the data is decoded as RGBA.13

Channel countRGBA interpretationDescription
1LLuminance-only: RGB set to same value in decoded buffer, alpha set to 1
2LALuminance with transparency
2L+ALuminance with uncorrelated transparency
3RGBFull color, alpha set to 1
3RG+BFull color with uncorrelated blue (not actually used for color purposes)
4RGBAFull color with transparency
4RGB+AFull color with uncorrelated transparency

Each of these may be encoded as low or high dynamic range. The encoder selects color formats independently for each block in the image.

In practice, ASTC may be used to represent data other than color. For example, the L+A format may be used to represent "X+Y", a normal map with uncorrelated components; the "RG+B" format can be used to represent XY+Z.14 The astc-encoder software supplied by ARM supports "X+Y" generation with the -normal option. The shader is expected to treat the decoded output as a swizzled texture.15

2D block footprints and bit rates

ASTC textures are compressed using a fixed block size of 128 bits, but with a variable block footprint ranging from 4×4 texels up to 12×12 texels. The available bit rates thus range from 8 bits per texel down to 0.89 bits per texel, with fine steps in between.

Block footprintBit rateIncrement
4×48.0025%
5×46.4025%
5×55.1220%
6×54.2720%
6×63.5614%
8×53.2020%
8×62.675%
10×52.5620%
10×62.137%
8×82.0025%
10×81.6025%
10×101.2820%
12×101.0720%
12×120.89

In the above table, the "Increment" column shows the additional storage required to store a texture using this bit rate, as compared to the next smallest. Block footprints are presented as width × height.

3D block footprints and bit rates

ASTC 3D textures are compressed using a fixed block size of 128 bits, as for 2D but with a variable block footprint ranging from 3×3×3 texels up to 6×6×6 texels. The available bit rates thus range from 4.74 bits per texel down to 0.59 bits per texel, with fine steps in between.

Block footprintBit rateIncrement
3×3×34.7433%
4×3×33.5633%
4×4×32.6733%
4×4×42.0025%
5×4×41.6025%
5×5×41.2825%
5×5×51.0220%
6×5×50.8520%
6×6×50.7120%
6×6×60.59

Block footprints are presented as width × height × depth.

Universal ASTC

UASTC (Universal ASTC) is a subset of ASTC specified by Binomial. The format is used in their Basis Universal "supercompressed" GPU texture format, which adds extra compression over compressed texture formats such as UASTC and ETC1S and allows for efficient conversion from UASTC/ETC1S to compressed texture formats directly usable by GPUs.16 UASTC, as part of Basis Universal, is part of the KTX (Khronos Texture) file format.17

See also

  • 3Dc

References

  1. 1"Adaptive Scalable Texture Compression (ASTC) technology developed by ARM and AMD".
  2. 2"Adaptive Scalable Texture Compression" (PDF). HPG 2012. Retrieved 2012-06-27.
  3. 3"Khronos Releases ATSC Next-Generation Texture Compression Specification". The Khronos Group Inc. 2012-08-06. Retrieved 2012-08-06.
  4. 4"Metal Feature Set Tables" (PDF). Apple Inc. 2020-10-21. Retrieved 2021-08-31.
  5. 5"Arm Mali GPU Datasheet" (PDF). Arm Limited. 2021. Archived from the original (PDF) on 2021-06-24. Retrieved 2021-08-31.
  6. 6"Imagination's new generation PowerVR Series6XT architecture delivers up to 50% higher performance and advanced power management". . 2014-01-06. Archived from on 2021-08-31. Retrieved 2021-08-21.

External links

  • High Performance Graphics 2012
  • ASTC Texture Compression: ARM Pushes the Envelope in Graphics Technology
  • ARM Unveils Details of ASTC Texture Compression at HPG Conference
  • ASTC Evaluation Codec from ARM
  • Khronos ASTC Full Profile Extension Specification
S3TC
ETC2
texel
2
2
Imagination Technologies
the original
  • 7"Intel Skylake Adds ASTC Texture Compression, Open-Source Support Coming". Phoronix. 2015-05-20. Retrieved 2021-08-31.
  • 8"Graphics API Developer's Guide For 6th Generation Intel Core Processors". Archived from the original on 2017-07-20.
  • 9Michael Larabel (2021-10-07). "Intel Removes ASTC Hardware From Gen12.5+ Graphics". Phoronix. Retrieved 2022-07-10.
  • 10"Vulkan API" (PDF).
  • 11"Qualcomm Adreno OpenGL ES Developer Guide" (PDF). Qualcomm. 2015-05-01. Retrieved 2021-08-31.
  • 12"[Mesa-dev] [PATCH 0/7] ASTC texture compression for all Gallium drivers". Lists.freedesktop.org. 23 July 2018. Retrieved 2022-09-01.
  • 13"Khronos Data Format Specification v1.1 rev 9". registry.khronos.org.
  • 14"Khronos Releases ASTC Next-Generation Texture Compression Specification". The Khronos Group. 6 August 2012.
  • 15"Effective ASTC Encoding [astc-encoder/Docs/Encoding.md at 2042cfc1a507c0414fb41dce1603ed53c503a0da · ARM-software/astc-encoder]". GitHub. “The best way to store normal maps using ASTC is similar to the scheme used by BC5; store the X and Y components of a unit-length normal. The Z component of the normal can be reconstructed in shader code based on the knowledge that the vector is unit length. To encode this we need to store only two input components in the compressed data, and therefore use the rrrg coding swizzle to align the data with the ASTC luminance+alpha endpoint.”
  • 16"UASTC Texture Specification". GitHub.
  • 17"KTX - GPU Texture Container Format". The Khronos Group. 16 April 2021.
  • Created
    5 Jul 2012
    History
    83 edits
    53 contributors
    1 edit in the last 30 days
    Last edited
    3 Nov 2026

    83 revisions in total · 53 contributors · +395 / 0 bytes across 1 edits by 1 contributor in the last 30 days

    1. 3 Nov 2026, 14:44 UTCInternetArchiveBotRescuing 2 sources and tagging 0 as dead. #IABot (v2.0.9.6)+395diff
    2. 6 May 2026, 03:36 UTCSeriousZAdd Technical features section describing weight grid interpolation, dual-plane mode, BISE encoding, and multi-partitioning.+1,479diff
    3. 16 Aug 2025, 03:25 UTCInternetArchiveBotRescuing 0 sources and tagging 2 as dead.) #IABot (v2.0.9.5+148diff
    4. 15 Apr 2025, 12:13 UTCAnonymous contributor§ 3D block footprints and bit rates fix wrong increment value between 5×5×4 and 5×5×50diff
    5. 5 Dec 2024, 23:50 UTCIznoRepeatm§ External links add WP:TEMPLATECAT to remove from template; genfixes+30diff
    6. 15 Jan 2024, 04:13 UTCBelandmMOS:TMRULES or mojibake (via WP:JWB)−12diff
    7. 23 Oct 2023, 23:48 UTCAnonymous contributor§ 3D block footprints and bit rates0diff
    8. 14 Sept 2023, 08:25 UTCAnonymous contributorspeficied -> specified0diff

    View full revision history

    Created
    5 Jul 2012
    History
    83 edits
    53 contributors
    1 edit in the last 30 days
    Last edited
    3 Nov 2026

    Related articles are unavailable right now.

    Wikipedia is rate limiting us right now. Try again in a minute.