Adaptivní škálovatelná komprese textury - Adaptive Scalable Texture Compression - Wikipedia
Adaptivní škálovatelná komprese textury (ASTC) je ztrátový blokové komprese textury algoritmus vyvinutý Jørnem Nystadem a kol. z ARM Ltd. a AMD.[1]
Všechny podrobnosti o ASTC byly poprvé veřejně představeny na konferenci High Performance Graphics 2012 v příspěvku Olsona et al. s názvem „Adaptivní škálovatelná komprese textury“[2]
ASTC byl přijat jako oficiální rozšíření pro oba OpenGL a OpenGL ES podle Skupina Khronos dne 6. srpna 2012.[3]
Hardwarová podpora
Oba profily (LDR a Full) jsou podporovány na nejnovější verzi Mali verze, včetně Mali ™ -T620, Mali-T720, Mali-T760, Mali-T820 / T830 a Mali-T860 / T880.
Nvidia Kepler a Maxwell -na základě Tegra SoC.[4]
Intel GPU v Skylake a novější procesory. [5]
V systému Linux mají všechny ovladače Gallium 3D od roku 2018 záložní software, takže ASTC lze použít na jakémkoli GPU AMD Radeon.[6]
Přehled


Metoda komprese je vývojem Komprese barevných buněk s funkcemi včetně mnoha těsně rozmístěných zlomkových bitových rychlostí, více barevných formátů, podpory textur s vysokým dynamickým rozsahem (HDR) a skutečné podpory 3D textur.
Uvedeným primárním cílem designu pro ASTC je umožnit vývojářům obsahu mít lepší kontrolu nad kompromisem prostor / kvalita obsaženým v jakémkoli schématu ztrátové komprese. U ASTC je poměr mezi sousedními bitovými rychlostmi řádově 25%, což zlevňuje zvyšování kvality pro danou strukturu.
Kódování různých podkladů často vyžaduje různé barevné formáty. ASTC umožňuje širokou škálu vstupních formátů, včetně jasu pouze, jasu alfa, RGB, RGBA a režimů optimalizovaných pro normály povrchu. Návrhář tak může zvolit optimální formát, aniž by musel podporovat více různých schémat komprese.
Možnosti bitové rychlosti a barevného formátu se navzájem neomezují, takže je možné vybírat z velkého počtu kombinací.
Přes tuto flexibilitu dosahuje ASTC lepších špičkových poměrů signálu k šumu než PVRTC, S3TC, a ETC2 při měření na 2 a 3,56 bitů na texel.[2] U textur HDR produkuje výsledky srovnatelné s BC6H při 8 bitech na texel.[2]
Podporované barevné formáty
Formát kódování | Popis |
---|---|
L | Pouze jas |
Los Angeles | Jas s průhledností |
L + A | Jas s nekorelovanou průhledností |
X + Y | Normály povrchu |
RGB | Plná barva |
XY + Z | Normály povrchu s nekorelovaným Z |
RGBA | Plná barva s průhledností |
RGB + A | Plná barva s nekorelovanou průhledností |
Každý z nich může být kódován jako nízký nebo vysoký dynamický rozsah. Kodér vybírá barevné formáty nezávisle pro každý blok v obraze.
Stopy 2D bloku a bitové rychlosti
Textury ASTC jsou komprimovány pomocí pevné velikosti bloku 128 bitů, ale s proměnnou stopou bloku v rozmezí od 4 x 4 texels až po 12 x 12 texels. Dostupné bitové rychlosti se tak pohybují od 8 bitů na texel až po 0,89 bitů na texel, s jemnými kroky mezi nimi.
Blokovat stopu | Přenosová rychlost | Přírůstek |
---|---|---|
4x4 | 8.00 | 25% |
5x4 | 6.40 | 25% |
5x5 | 5.12 | 20% |
6x5 | 4.27 | 20% |
6x6 | 3.56 | 14% |
8x5 | 3.20 | 20% |
8x6 | 2.67 | 5% |
10x5 | 2.56 | 20% |
10x6 | 2.13 | 7% |
8x8 | 2.00 | 25% |
10x8 | 1.60 | 25% |
10x10 | 1.28 | 20% |
12x10 | 1.07 | 20% |
12x12 | 0.89 |
Ve výše uvedené tabulce ukazuje sloupec „Přírůstek“ další úložiště potřebné k uložení textury pomocí této bitové rychlosti ve srovnání s nejbližší nejmenší. Blokové stopy jsou prezentovány jako šířka x výška.
3D bloky a bitové rychlosti
3D textury ASTC jsou komprimovány pomocí pevné velikosti bloku 128 bitů, jako u 2D, ale s variabilní stopou bloku v rozsahu od 3x3x3 texelů do 6x6x6 texelů. Dostupné bitové rychlosti se tak pohybují od 4,74 bitů na texel až po 0,59 bitů na texel, s jemnými kroky mezi nimi.
Blokovat stopu | Přenosová rychlost | Přírůstek |
---|---|---|
3x3x3 | 4.74 | 33% |
4x3x3 | 3.56 | 33% |
4x4x3 | 2.67 | 33% |
4x4x4 | 2.00 | 25% |
5x4x4 | 1.60 | 25% |
5x5x4 | 1.28 | 25% |
5x5x5 | 1.02 | 20% |
6x5x5 | 0.85 | 20% |
6x6x5 | 0.71 | 20% |
6x6x6 | 0.59 |
Blokové stopy jsou prezentovány jako šířka x výška x hloubka.
Viz také
Reference
- ^ „Technologie Adaptive Scalable Texture Compression (ASTC) vyvinutá společnostmi ARM® a AMD“.
- ^ A b C „Adaptivní škálovatelná komprese textury“ (PDF). HPG 2012. Citováno 2012-06-27.
- ^ „Khronos uvádí specifikaci komprese textury nové generace ATSC“. Společnost Khronos Group Inc. 06.08.2012. Citováno 2012-08-06.
- ^ „Vulkan API“ (PDF).
- ^ „Příručka pro vývojáře Graphics API pro procesory Intel® Core ™ 6. generace“.
- ^ https://lists.freedesktop.org/archives/mesa-dev/2018-July/200867.html