S3TC (S3 Texture Compression) (также называется DXTn или DirectX Texture Compression — DXTC) — метод сжатия текстур, первоначально разработанный Iourcha и др. из S3 Graphics для использования в компьютерном графическом ускорителе Savage 3D.
Метод сжатия поразительно похож на ранее опубликованный Color Cell Compression. DXTC — это формат сжатия текстур с потерями, с фиксированным размером выходных данных. Благодаря алгоритму сжатия, формат S3TC стал широко использованным форматом сжатия текстур для трехмерной компьютерной графики с аппаратным ускорением. После интеграции S3TC в состав Microsoft DirectX 6.0 и OpenGL 1.3 этот формат сжатия получил исключительно широкое распространение. Существует не менее 5 разновидностей формата S3TC (от DXT1 до DXT5 включительно).
Кодеки
DXT1 Формат DXT1 из всех разновидностей S3TC обеспечивает самое сильное сжатие: каждый блок из 16 пикселей преобразуется в 64 бита. Также используются два различных 16-битных значения цветов RGB (5:6:5) и 2-битная таблица подстановок 4х4. DXT1 не поддерживает альфа-каналы.
DXT3 При использовании формата DXT3 каждый блок из 16 пикселей преобразуется в 128 бит: 64 бита данных альфа-канала и 64 бита данных цвета. Формат DXT3 подходит для изображений и текстур с резким изменением альфа-канала, то есть прозрачности.
DXT5 При использовании формата DXT5 каждый блок из 16 пикселей преобразуется в 128 бит: 64 бита данных альфа-канала и 64 бита данных цвета. Формат DXT5 подходит для изображений и текстур с плавным, постепенным изменением альфа-канала.
Если , то шесть других альфа значения вычисляются таким образом, что , , , , , и .
В противном случае, если , четыре альфа значения рассчитываются таким образом, что , , , и где и .
Сравнение форматов S3TC Таблица кодеков.
Идентификатор кодека FOURCC Сжатие блоков Описание Premultiplied Alpha Степень сжатия Поддерживаемые текстуры DXT1 BC1 1-bit Alpha / Opaque N/A 6:1(for 24 bit source image) Simple non-alpha DXT2 BC2 Explicit alpha Yes 4:1 Sharp alpha DXT3 BC2 Explicit alpha No 4:1 Sharp alpha DXT4 BC3 Interpolated alpha Yes 4:1 Gradient alpha DXT5 BC3 Interpolated alpha No 4:1 Gradient alpha
Преимущества: Размер файлов существенно меньше по сравнению с PNG. Неплохое качество, мало наложений (артефакты не слишком заметны). Высокая скорость компрессии/декомпрессии изображений. Аппаратное ускорение обработки графическими процессорами реализовано в огромном количестве видеоадаптеров. Аппаратная поддержка применяется практически повсеместно на настольных ПК и постепенно охватывает устройства на базе Android.
Недостатки: Качество ниже, чем при использовании PNG (поскольку формат S3TC предусматривает сжатие с потерями).
См. также Сжатие текстур Текстурный атлас Альфа-канал
DirectDraw Surface PVRTC
Примечания
Литература Microsoft Developer Network article on Block Compression in Direct3D 10 Comparison between S3TC and FXT1 texture compression О технологии компрессии текстур S3TC A fast, SSE2-enabled DXT1/5 compressor by Intel
* Категория:Компьютерная графика Категория:Алгоритмы сжатия с потерями