S3TC ( S3 Texture Compression ) [1] (numit și DXTn sau DirectX Texture Compression - DXTC ) este o metodă de comprimare a texturii dezvoltată inițial de Iourcha și colab. la S3 Graphics [2] pentru a fi utilizată în acceleratorul de grafică pe computer Savage 3D .
Metoda de compresie este surprinzător de similară cu cea publicată anterior Color Cell Compression [3] . DXTC este un format de compresie de textură cu pierderi, cu o dimensiune de ieșire fixă. Datorită algoritmului de compresie, formatul S3TC a devenit un format de comprimare a texturii utilizat pe scară largă pentru grafica computerizată 3D accelerată de hardware. De la integrarea S3TC în Microsoft DirectX 6.0 și OpenGL 1.3, acest format de compresie a devenit extrem de răspândit. Există cel puțin 5 variante de format S3TC (de la DXT1 la DXT5 inclusiv). [patru]
Formatul DXT1 oferă cea mai puternică compresie dintre toate variantele S3TC: fiecare bloc de 16 pixeli este convertit la 64 de biți. De asemenea, utilizează două valori diferite de culoare RGB pe 16 biți (5:6:5) și un tabel de căutare 4x4 pe 2 biți. DXT1 nu acceptă canale alfa.
Când utilizați formatul DXT3, fiecare bloc de 16 pixeli este convertit în 128 de biți: 64 de biți de date de canal alfa și 64 de biți de date de culoare. Formatul DXT3 este potrivit pentru imagini și texturi cu o schimbare bruscă a canalului alfa, adică transparență.
Când se utilizează formatul DXT5, fiecare bloc de 16 pixeli este convertit în 128 de biți: 64 de biți de date de canal alfa și 64 de biți de date de culoare. Formatul DXT5 este potrivit pentru imagini și texturi cu modificări netede și graduale în canalul alfa.
Dacă , atunci alte șase valori alfa sunt calculate astfel încât , , , , și .
În caz contrar, dacă , patru valori alfa sunt calculate astfel încât , , , și unde și .
ID codec FOURCC | Bloc de compresie | Descriere | Alfa premultiplicată | Rata compresiei | Texturi acceptate |
---|---|---|---|---|---|
DXT1 | BC1 | Alfa / Opac de 1 bit | N / A | 6:1 (pentru imaginea sursă pe 24 de biți) | non-alfa simplu |
DXT2 | BC2 | alfa explicit | da | 4:1 | alfa ascuțită |
DXT3 | BC2 | alfa explicit | Nu | 4:1 | alfa ascuțită |
DXT4 | BC3 | Alfa interpolat | da | 4:1 | gradient alfa |
DXT5 | BC3 | Alfa interpolat | Nu | 4:1 | gradient alfa |
Avantaje:
Defecte: