Сжатие текстуры

редактировать

Сжатие текстур - это специальная форма сжатия изображений, предназначенная для хранения текстурных карт в 3D компьютерная графика системы визуализации. В отличие от обычных алгоритмов сжатия изображений, алгоритмы сжатия текстур оптимизированы для произвольного доступа.

Содержание
  • 1 Компромиссы
  • 2 Доступность
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Компромиссы

В своей основополагающей статье о сжатии текстур Бирс, Агравала и Чадда перечисляют четыре особенности, которые, как правило, отличают сжатие текстур от других методов сжатия изображений. Это следующие функции:

Скорость декодирования
Крайне желательно иметь возможность рендеринга непосредственно из сжатых данных текстуры, поэтому, чтобы не влиять на производительность рендеринга, распаковка должна быть быстрой.
Произвольный доступ
Поскольку предсказать порядок, в котором средство визуализации обращается к текселям, было бы сложно, любая схема сжатия текстур должна обеспечивать быстрый произвольный доступ к распакованным данным текстуры. Это исключает многие более известные схемы сжатия изображений, такие как JPEG или кодирование длин серий.
Скорость сжатия и визуальное качество
В системе визуализации сжатие с потерями может быть более терпимым, чем для других случаев использования. Некоторые библиотеки сжатия текстур, такие как crunch, позволяют разработчику гибко выбирать между степенью сжатия и визуальным качеством, используя такие методы, как оптимизация скорости-искажения (RDO).
Скорость кодирования
Сжатие текстур более терпимо к асимметричным скоростям кодирования / декодирования, поскольку процесс кодирования часто выполняется только один раз в процессе разработки приложения.

Учитывая вышеизложенное, большинство алгоритмов сжатия текстур включают некоторую форму фиксированной скорости с потерями векторное квантование небольших блоков пикселей фиксированного размера в небольшие блоки битов кодирования фиксированного размера, иногда с дополнительной дополнительной предварительной обработкой и этапами постобработки. Блочное усечение кодирования - очень простой пример этого семейства алгоритмов.

Поскольку их шаблоны доступа к данным четко определены, распаковка текстуры может выполняться на лету во время рендеринга как часть общего графического конвейера, что снижает общую пропускную способность и потребности в хранилище на всем протяжении графическая система. Помимо текстурных карт, сжатие текстур может также использоваться для кодирования других типов карт рендеринга, включая карты рельефа и карты нормалей поверхности. Сжатие текстур также может использоваться вместе с другими формами обработки карт, такими как карты MIP и анизотропная фильтрация.

Доступность

Некоторые примеры практических систем сжатия текстур: S3 Texture Compression (S3TC), PVRTC, Ericsson Texture Compression (ETC) и Adaptive Scalable Texture Compression (ASTC); они могут поддерживаться специальными функциональными блоками в современных графических процессорах..

OpenGL и OpenGL ES, реализованные на многих видеокартах видеоускорителей и мобильных графических процессорах, могут поддерживать несколько распространенных видов сжатия текстур - как правило, за счет использования поставщика расширения.

Сжатие текстур может применяться для уменьшения использования памяти во время выполнения, в отличие от сжатия текстур, предназначенного для уменьшения загрузки или размера диска. Данные текстуры часто являются крупнейшим источником использования памяти в мобильном приложении.

См. Также
Ссылки
Внешние ссылки

.

Последняя правка сделана 2021-06-10 03:40:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте