fbpx
Wikipedia

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]

Hardware support edit

Vendor/product Profile Generation
AMD Radeon ?
Apple GPUs LDR only A8 through A12[4]
Full Since A13[4]
Arm Mali Full Since Mali-T620/T720/T820[5]
Imagination PowerVR Full Since Series6XT[6]
Intel GPUs Full[7] From Skylake[8] ; Removed in Arc / Gen12.5[9]
Nvidia Tegra ? Since Kepler[10]
Qualcomm Adreno Full LDR 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 edit

 
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, S3TC, and ETC2 when measured at 2 and 3.56 bits per texel.[2] For HDR textures, it produces results comparable to BC6H at 8 bits per texel.[2]

Supported color formats edit

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 count RGBA interpretation Description
1 L Luminance-only: RGB set to same value in decoded buffer, alpha set to 1
2 LA Luminance with transparency
2 L+A Luminance with uncorrelated transparency
3 RGB Full color, alpha set to 1
3 RG+B Full color with uncorrelated blue (not actually used for color purposes)
4 RGBA Full color with transparency
4 RGB+A Full 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 edit

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 footprint Bit rate Increment
4×4 8.00 25%
5×4 6.40 25%
5×5 5.12 20%
6×5 4.27 20%
6×6 3.56 14%
8×5 3.20 20%
8×6 2.67 5%
10×5 2.56 20%
10×6 2.13 7%
8×8 2.00 25%
10×8 1.60 25%
10×10 1.28 20%
12×10 1.07 20%
12×12 0.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 edit

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 footprint Bit rate Increment
3×3×3 4.74 33%
4×3×3 3.56 33%
4×4×3 2.67 33%
4×4×4 2.00 25%
5×4×4 1.60 25%
5×5×4 1.28 50%
5×5×5 1.02 20%
6×5×5 0.85 20%
6×6×5 0.71 20%
6×6×6 0.59

Block footprints are presented as width × height × depth.

Universal ASTC edit

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 edit

References edit

  1. ^ "Adaptive Scalable Texture Compression (ASTC) technology developed by ARM and AMD".
  2. ^ a b c "Adaptive Scalable Texture Compression" (PDF). HPG 2012. Retrieved 2012-06-27.
  3. ^ "Khronos Releases ATSC Next-Generation Texture Compression Specification". The Khronos Group Inc. 2012-08-06. Retrieved 2012-08-06.
  4. ^ a b "Metal Feature Set Tables" (PDF). Apple Inc. 2020-10-21. Retrieved 2021-08-31.
  5. ^ "Arm Mali GPU Datasheet" (PDF). Arm Limited. 2021. Retrieved 2021-08-31.
  6. ^ "Imagination's new generation PowerVR Series6XT architecture delivers up to 50% higher performance and advanced power management". Imagination Technologies. 2014-01-06. Retrieved 2021-08-21.
  7. ^ "Intel Skylake Adds ASTC Texture Compression, Open-Source Support Coming". Phoronix. 2015-05-20. Retrieved 2021-08-31.
  8. ^ . Archived from the original on 2017-07-20.
  9. ^ Michael 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.

External links edit

  • 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

adaptive, scalable, texture, compression, astc, lossy, block, based, texture, compression, algorithm, developed, jørn, nystad, full, details, astc, were, first, presented, publicly, high, performance, graphics, 2012, conference, paper, olson, entitled, adaptiv. Adaptive scalable texture compression ASTC is a lossy block based texture compression algorithm developed by Jorn 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 Contents 1 Hardware support 2 Overview 3 Supported color formats 4 2D block footprints and bit rates 5 3D block footprints and bit rates 6 Universal ASTC 7 See also 8 References 9 External linksHardware support editVendor product Profile Generation AMD Radeon Apple GPUs LDR only A8 through A12 4 Full Since A13 4 Arm Mali Full Since Mali T620 T720 T820 5 Imagination PowerVR Full Since Series6XT 6 Intel GPUs Full 7 From Skylake 8 Removed in Arc Gen12 5 9 Nvidia Tegra Since Kepler 10 Qualcomm Adreno Full LDR 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 edit nbsp Example image prior to compression nbsp Detail from example image after compression at 8 3 56 and 2 bits pixelThe 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 S3TC and ETC2 when measured at 2 and 3 56 bits per texel 2 For HDR textures it produces results comparable to BC6H at 8 bits per texel 2 Supported color formats editASTC 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 count RGBA interpretation Description 1 L Luminance only RGB set to same value in decoded buffer alpha set to 1 2 LA Luminance with transparency 2 L A Luminance with uncorrelated transparency 3 RGB Full color alpha set to 1 3 RG B Full color with uncorrelated blue not actually used for color purposes 4 RGBA Full color with transparency 4 RGB A Full 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 editASTC 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 footprint Bit rate Increment 4 4 8 00 25 5 4 6 40 25 5 5 5 12 20 6 5 4 27 20 6 6 3 56 14 8 5 3 20 20 8 6 2 67 5 10 5 2 56 20 10 6 2 13 7 8 8 2 00 25 10 8 1 60 25 10 10 1 28 20 12 10 1 07 20 12 12 0 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 editASTC 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 footprint Bit rate Increment 3 3 3 4 74 33 4 3 3 3 56 33 4 4 3 2 67 33 4 4 4 2 00 25 5 4 4 1 60 25 5 5 4 1 28 50 5 5 5 1 02 20 6 5 5 0 85 20 6 6 5 0 71 20 6 6 6 0 59 Block footprints are presented as width height depth Universal ASTC editUASTC 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 edit3DcReferences edit Adaptive Scalable Texture Compression ASTC technology developed by ARM and AMD a b c Adaptive Scalable Texture Compression PDF HPG 2012 Retrieved 2012 06 27 Khronos Releases ATSC Next Generation Texture Compression Specification The Khronos Group Inc 2012 08 06 Retrieved 2012 08 06 a b Metal Feature Set Tables PDF Apple Inc 2020 10 21 Retrieved 2021 08 31 Arm Mali GPU Datasheet PDF Arm Limited 2021 Retrieved 2021 08 31 Imagination s new generation PowerVR Series6XT architecture delivers up to 50 higher performance and advanced power management Imagination Technologies 2014 01 06 Retrieved 2021 08 21 Intel Skylake Adds ASTC Texture Compression Open Source Support Coming Phoronix 2015 05 20 Retrieved 2021 08 31 Graphics API Developer s Guide For 6th Generation Intel Core Processors Archived from the original on 2017 07 20 Michael Larabel 2021 10 07 Intel Removes ASTC Hardware From Gen12 5 Graphics Phoronix Retrieved 2022 07 10 Vulkan API PDF Qualcomm Adreno OpenGL ES Developer Guide PDF Qualcomm 2015 05 01 Retrieved 2021 08 31 Mesa dev PATCH 0 7 ASTC texture compression for all Gallium drivers Lists freedesktop org 23 July 2018 Retrieved 2022 09 01 Khronos Data Format Specification v1 1 rev 9 registry khronos org Khronos Releases ASTC Next Generation Texture Compression Specification The Khronos Group 6 August 2012 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 UASTC Texture Specification GitHub KTX GPU Texture Container Format The Khronos Group 16 April 2021 External links editHigh 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 Retrieved from https en wikipedia org w index php title Adaptive scalable texture compression amp oldid 1195769523, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.