Komprese textury - Texture compression

Komprese textury je specializovaná forma komprese obrazu určená k ukládání map textury v systémech 3D počítačové grafiky . Na rozdíl od konvenčních algoritmů komprese obrazu jsou algoritmy komprese textury optimalizovány pro náhodný přístup .

Kompromisy

Ve svém seminárním článku o kompresi textur Beers, Agrawala a Chaddha uvádějí čtyři funkce, které mají tendenci odlišovat kompresi textury od jiných technik komprese obrazu. Jedná se o tyto funkce:

Rychlost dekódování
Je velmi žádoucí, aby bylo možné vykreslovat přímo z komprimovaných dat textury, a proto, aby nedošlo k ovlivnění výkonu vykreslování, musí být dekomprese rychlá.
Náhodný přístup
Protože předpovídání pořadí, ve kterém vykreslovací modul přistupuje k texelům, by bylo obtížné, musí jakékoli schéma komprese textury umožňovat rychlý náhodný přístup k dekomprimovaným datům textury. To má tendenci vylučovat mnoho známějších schémat komprese obrazu, jako je JPEG nebo kódování délky .
Míra komprese a vizuální kvalita
Ve vykreslovacím systému může být ztrátová komprese tolerovatelnější než v jiných případech použití. Některé knihovny komprese textur, například crunch, umožňují vývojářům flexibilně obchodovat s poměrem komprese a vizuální kvality pomocí metod, jako je optimalizace rychlosti zkreslení (RDO).
Rychlost kódování
Komprese textury je tolerantnější k asymetrickým rychlostem kódování / dekódování, protože proces kódování se často provádí pouze jednou během procesu vytváření aplikace.

Vzhledem k výše uvedenému zahrnuje většina algoritmů komprese textury nějakou formu ztrátové vektorové kvantifikace malých rychlostí pixelů bloků pixelů do malých bloků pevné velikosti kódovacích bitů, někdy s dalšími dodatečnými kroky před zpracováním a následným zpracováním. Blokové zkrácení je velmi jednoduchým příkladem této rodiny algoritmů.

Vzhledem k tomu, že jejich vzory přístupu k datům jsou dobře definované, může být dekomprese textury prováděna za běhu během vykreslování jako součást celkového grafického kanálu , což snižuje celkovou šířku pásma a potřeby úložiště v celém grafickém systému. Stejně jako texturové mapy lze komprimaci textur také použít ke kódování jiných druhů vykreslovací mapy, včetně bump map a normálních povrchových map . Kompresi textury lze také použít společně s dalšími formami zpracování map, jako jsou mapy MIP a anizotropní filtrování .

Dostupnost

Některé příklady praktických systémů komprese textury jsou S3 Texture Compression (S3TC), PVRTC , Ericsson Texture Compression (ETC) a Adaptive Scalable Texture Compression (ASTC); tyto mohou být podporovány speciálními funkčními jednotkami v moderních grafických procesorových jednotkách .

OpenGL a OpenGL ES, jak jsou implementovány na mnoha grafických akcelerátorových kartách a mobilních grafických procesorech, mohou podporovat několik běžných druhů komprese textur - obvykle pomocí rozšíření prodejců.

Kompresi textury lze použít ke snížení využití paměti za běhu, na rozdíl od komprese textury určené ke snížení velikosti stahování nebo disku. U 64bitového hardwaru pro iPhone a iPad lze použít RenderReduce Framework, aby se výrazně snížilo využití paměti. Data textury jsou často největším zdrojem využití paměti v mobilní aplikaci.

Viz také

Reference

externí odkazy