Adaptive scalable texture compression: Difference between revisions

Content deleted Content added
WikiCleanerBot (talk | contribs)
m v2.03b - Bot T20 CW#61 - WP:WCW project (Reference before punctuation)
formatting, including proper multiplication symbol
Line 1:
'''Adaptive Scalable Texture Compression''' ('''ASTC''') is a [[lossy compression|lossy]] block-based [[texture compression]] [[algorithm]] developed by Jørn Nystad et al. of [[ARM Holdings|ARM Ltd.]] and [[Advanced Micro Devices|AMD]].<ref>{{cite web |url=https://www.arm.com/products/multimedia/mali-technologies/adaptive-scalable-texture-compression.php |title=Adaptive Scalable Texture Compression (ASTC) technology developed by ARM® and AMD}}</ref>
 
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".<ref name=astc_paper>{{cite web|url=https://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/readings/nystad12_astc.pdf|title=Adaptive Scalable Texture Compression |publisher=HPG 2012 |date= |accessdate=2012-06-27}}</ref>
 
ASTC was adopted as an official extension for both [[OpenGL]] and [[OpenGL ES]] by the [[Khronos Group]] on 6 August 2012.<ref>{{cite web|url=http://www.khronos.org/news/press/khronos-releases-atsc-next-generation-texture-compression-specification|title=Khronos Releases ATSC Next-Generation Texture Compression Specification|publisher=The Khronos Group Inc.|date=2012-08-06|accessdate=2012-08-06}}</ref>
 
== Hardware support ==
Both profiles (LDR and Full) are supported on the latest [[Mali (GPU)|Mali]] versions, including the Mali™Mali-T620, Mali-T720, Mali-T760, Mali-T820/T830 and Mali-T860/T880.
 
Nvidia's [[Kepler (microarchitecture)|Kepler]] and [[Maxwell (microarchitecture)|Maxwell]]-based [[Tegra]] SoCs.<ref>{{cite web |url=http://on-demand.gputechconf.com/siggraph/2015/presentation/SIG1501-Piers-Daniell.pdf |title=Vulkan API}}</ref>
 
[[Intel HD and Iris Graphics|Intel GPUs]] in [[Skylake (microarchitecture)|Skylake]] and later processors. <ref>{{cite web |url=https://software.intel.com/en-us/articles/6th-gen-graphics-api-dev-guide|title=Graphics API Developer’s Guide For 6th Generation Intel® Core™ Processors}}</ref>
 
On Linux, all Gallium 3D drivers have a software fallback since 2018, so ASTC can be used on any AMD Radeon GPU.<ref>https://lists.freedesktop.org/archives/mesa-dev/2018-July/200867.html</ref>
Line 54:
== 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 4x44×4 texels up to 12x1212×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.
 
{| class="wikitable"
Line 62:
! Increment
|- style="text-align:center;"
| 4x44×4 || 8.00 || 25%
|- style="text-align:center;"
| 5x45×4 || 6.40 || 25%
|- style="text-align:center;"
| 5x55×5 || 5.12 || 20%
|- style="text-align:center;"
| 6x56×5 || 4.27 || 20%
|- style="text-align:center;"
| 6x66×6 || 3.56 || 14%
|- style="text-align:center;"
| 8x58×5 || 3.20 || 20%
|- style="text-align:center;"
| 8x68×6 || 2.67 || 5%
|- style="text-align:center;"
| 10x510×5 || 2.56 || 20%
|- style="text-align:center;"
| 10x610×6 || 2.13 || 7%
|- style="text-align:center;"
| 8x88×8 || 2.00 || 25%
|- style="text-align:center;"
| 10x810×8 || 1.60 || 25%
|- style="text-align:center;"
| 10x1010×10 || 1.28 || 20%
|- style="text-align:center;"
| 12x1012×10 || 1.07 || 20%
|- style="text-align:center;"
| 12x1212×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 x× 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 3x3x33×3×3 texels up to 6x6x66×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.
 
{| class="wikitable"
Line 103:
! Increment
|- style="text-align:center;"
| 3x3x33×3×3 || 4.74 || 33%
|- style="text-align:center;"
| 4x3x34×3×3 || 3.56 || 33%
|- style="text-align:center;"
| 4x4x34×4×3 || 2.67 || 33%
|- style="text-align:center;"
| 4x4x44×4×4 || 2.00 || 25%
|- style="text-align:center;"
| 5x4x45×4×4 || 1.60 || 25%
|- style="text-align:center;"
| 5x5x45×5×4 || 1.28 || 25%
|- style="text-align:center;"
| 5x5x55×5×5 || 1.02 || 20%
|- style="text-align:center;"
| 6x5x56×5×5 || 0.85 || 20%
|- style="text-align:center;"
| 6x6x56×6×5 || 0.71 || 20%
|- style="text-align:center;"
| 6x6x66×6×6 || 0.59 ||
|}
 
Block footprints are presented as width x× height x× depth.
 
== See also ==
* [[3Dc]]
* [[Ericsson Texture Compression]] (ETC)
* [[PVRTC]]
* [[S3TC]]
 
== References ==
{{reflist|30em}}
 
== External links ==