Сжатие текстур - это специальная форма сжатия изображений, предназначенная для хранения текстурных карт в 3D компьютерная графика системы визуализации. В отличие от обычных алгоритмов сжатия изображений, алгоритмы сжатия текстур оптимизированы для произвольного доступа.
В своей основополагающей статье о сжатии текстур Бирс, Агравала и Чадда перечисляют четыре особенности, которые, как правило, отличают сжатие текстур от других методов сжатия изображений. Это следующие функции:
Учитывая вышеизложенное, большинство алгоритмов сжатия текстур включают некоторую форму фиксированной скорости с потерями векторное квантование небольших блоков пикселей фиксированного размера в небольшие блоки битов кодирования фиксированного размера, иногда с дополнительной дополнительной предварительной обработкой и этапами постобработки. Блочное усечение кодирования - очень простой пример этого семейства алгоритмов.
Поскольку их шаблоны доступа к данным четко определены, распаковка текстуры может выполняться на лету во время рендеринга как часть общего графического конвейера, что снижает общую пропускную способность и потребности в хранилище на всем протяжении графическая система. Помимо текстурных карт, сжатие текстур может также использоваться для кодирования других типов карт рендеринга, включая карты рельефа и карты нормалей поверхности. Сжатие текстур также может использоваться вместе с другими формами обработки карт, такими как карты MIP и анизотропная фильтрация.
Некоторые примеры практических систем сжатия текстур: S3 Texture Compression (S3TC), PVRTC, Ericsson Texture Compression (ETC) и Adaptive Scalable Texture Compression (ASTC); они могут поддерживаться специальными функциональными блоками в современных графических процессорах..
OpenGL и OpenGL ES, реализованные на многих видеокартах видеоускорителей и мобильных графических процессорах, могут поддерживать несколько распространенных видов сжатия текстур - как правило, за счет использования поставщика расширения.
Сжатие текстур может применяться для уменьшения использования памяти во время выполнения, в отличие от сжатия текстур, предназначенного для уменьшения загрузки или размера диска. Данные текстуры часто являются крупнейшим источником использования памяти в мобильном приложении.
.