Adaptiv skalbar texturkompression
Adaptiv skalbar texturkomprimering ( ASTC ) är en förlustbaserad blockbaserad texturkompressionsalgoritm utvecklad av Jørn Nystad et al. av ARM Ltd. och AMD .
Fullständiga detaljer om ASTC presenterades först offentligt vid konferensen High Performance Graphics 2012, i en artikel av Olson et al. med titeln "Adaptive Scalable Texture Compression".
ASTC antogs som en officiell förlängning för både OpenGL och OpenGL ES av Khronos Group den 6 augusti 2012.
Hårdvarustöd
Säljare/produkt | Profil | Generation |
---|---|---|
AMD Radeon | ? | |
Apple GPU:er | Endast LDR | A8 till A12 |
Full | Sedan A13 | |
Arm Mali | Full | Sedan Mali-T620/T720/T820 |
Imagination PowerVR | Full | Sedan Series6XT |
Intel GPU:er | Full | Från Skylake ; Borttagen i Arc / Gen12.5 |
Nvidia Tegra | ? | Sedan Kepler |
Qualcomm Adreno | Endast LDR [ bättre källa behövs ] | Sedan 4xx-serien |
På Linux har alla Gallium 3D-drivrutiner en reservprogramvara sedan 2018, så ASTC kan användas på vilken AMD Radeon GPU som helst.
Översikt
Komprimeringsmetoden är en utveckling av färgcellskomprimering med funktioner som inkluderar många täta bithastigheter, flera färgformat, stöd för texturer med högt dynamiskt omfång (HDR) och stöd för äkta 3D-textur.
Det angivna primära designmålet för ASTC är att göra det möjligt för innehållsutvecklare att ha bättre kontroll över utrymmet/kvalitetsavvägningen som är inneboende i varje förlustbringande komprimeringssystem. Med ASTC är förhållandet mellan intilliggande bithastigheter i storleksordningen 25 %, vilket gör det billigare att öka kvaliteten för en given textur.
Att koda olika tillgångar kräver ofta olika färgformat. ASTC tillåter ett brett urval av ingångsformat, inklusive endast luminans, luminans-alfa, RGB, RGBA och lägen optimerade för ytnormaler. Designern kan alltså välja det optimala formatet utan att behöva stödja flera olika komprimeringsscheman.
Valen av bithastighet och färgformat begränsar inte varandra, så att det är möjligt att välja mellan ett stort antal kombinationer.
Trots denna flexibilitet uppnår ASTC bättre toppsignal-brus-förhållanden än PVRTC , S3TC och ETC2 när de mäts vid 2 och 3,56 bitar per texel . För HDR-texturer ger den resultat som är jämförbara med BC6H vid 8 bitar per texel.
Färgformat som stöds
Kodningsformat | Beskrivning |
---|---|
L | Endast för luminans |
LA | Luminans med transparens |
L+A | Luminans med okorrelerad transparens |
X+Y | Ytnormaler |
RGB | Fullfärg |
XY+Z | Ytnormaler med okorrelerat Z |
RGBA | Fullfärg med genomskinlighet |
RGB+A | Fullfärg med okorrelerad transparens |
Var och en av dessa kan kodas som lågt eller högt dynamiskt område. Kodaren väljer färgformat oberoende för varje block i bilden.
2D-blockavtryck och bithastigheter
ASTC-texturer komprimeras med en fast blockstorlek på 128 bitar, men med ett variabelt blockfotavtryck som sträcker sig från 4×4 texel upp till 12×12 texel. De tillgängliga bithastigheterna sträcker sig alltså från 8 bitar per texel ner till 0,89 bitar per texel, med fina steg emellan.
Block fotavtryck | Bithastighet | Ökning |
---|---|---|
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 |
I tabellen ovan visar kolumnen "Inkrement" det extra lagringsutrymme som krävs för att lagra en textur med denna bithastighet, jämfört med den näst minsta. Blockfotspår presenteras som bredd × höjd.
3D-blockavtryck och bithastigheter
ASTC 3D-texturer komprimeras med en fast blockstorlek på 128 bitar, som för 2D, men med ett variabelt blockfotavtryck som sträcker sig från 3×3×3 texel upp till 6×6×6 texel. De tillgängliga bithastigheterna sträcker sig alltså från 4,74 bitar per texel ner till 0,59 bitar per texel, med fina steg emellan.
Block fotavtryck | Bithastighet | Ökning |
---|---|---|
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 | 25 % |
5×5×5 | 1.02 | 20 % |
6×5×5 | 0,85 | 20 % |
6×6×5 | 0,71 | 20 % |
6×6×6 | 0,59 |
Blockfotspår presenteras som bredd × höjd × djup.
Se även
externa länkar
- Högpresterande grafik 2012
- ASTC Texture Compression: ARM trycker på kuvertet i grafikteknik
- ARM avslöjar detaljer om ASTC Texture Compression vid HPG Conference
- ASTC Evaluation Codec från ARM
- Khronos ASTC Full Profile Extension Specification
- UASTC (Universal ASTC) texturspecifikation