Адаптивное масштабируемое сжатие текстур - Adaptive Scalable Texture Compression

Адаптивное масштабируемое сжатие текстур (ASTC) это с потерями блочный сжатие текстуры алгоритм разработан Jørn Nystad et al. из ARM Ltd. и AMD.[1]

Полная информация об ASTC была впервые публично представлена ​​на конференции High Performance Graphics 2012 в статье Olson et al. под названием «Адаптивное масштабируемое сжатие текстур»[2]

ASTC был принят как официальное расширение для обоих OpenGL и OpenGL ES посредством Хронос Групп 6 августа 2012 г.[3]

Поддержка оборудования

Оба профиля (LDR и Full) поддерживаются последней версией Мали версии, включая Mali ™ -T620, Mali-T720, Mali-T760, Mali-T820 / T830 и Mali-T860 / T880.

Nvidia's Кеплер и Максвелл -основан Тегра SoC.[4]

Графические процессоры Intel в Skylake и более поздние процессоры. [5]

В Linux все драйверы Gallium 3D имеют резервное программное обеспечение с 2018 года, поэтому ASTC можно использовать на любом графическом процессоре AMD Radeon.[6]

Обзор

Пример изображения до сжатия
Деталь из примера изображения после сжатия 8, 3,56 и 2 бит / пиксель

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

Заявленная основная цель проекта ASTC - дать разработчикам контента возможность лучше контролировать компромисс между пространством и качеством, присущий любой схеме сжатия с потерями. В ASTC соотношение между смежными битовыми скоростями составляет порядка 25%, что снижает затраты на повышение качества для данной текстуры.

Для кодирования разных ресурсов часто требуются разные цветовые форматы. ASTC поддерживает широкий выбор входных форматов, включая только яркость, альфа-яркость, RGB, RGBA и режимы, оптимизированные для нормалей поверхности. Таким образом, разработчик может выбрать оптимальный формат без необходимости поддерживать несколько различных схем сжатия.

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

Несмотря на такую ​​гибкость, ASTC обеспечивает лучшее отношение пикового сигнала к шуму, чем PVRTC, S3TC, и ETC2 при измерении при 2 и 3,56 бит на тексель.[2] Для текстур HDR он дает результаты, сопоставимые с BC6H при 8 битах на тексель.[2]

Поддерживаемые цветовые форматы

Формат кодированияОписание
LТолько яркость
ЛАЯркость с прозрачностью
L + AЯркость с некоррелированной прозрачностью
X + YНормали поверхности
RGBПолноцветный
XY + ZНормали к поверхности с некоррелированными Z
RGBAПолный цвет с прозрачностью
RGB + AПолный цвет с некоррелированной прозрачностью

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

Последовательность 2D-блоков и скорость передачи данных

Текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, но с переменным размером блока в диапазоне от 4x4 текселей до 12x12 текселей. Таким образом, доступные битовые скорости варьируются от 8 бит на тексель до 0,89 бит на тексел с небольшими шагами между ними.

Отпечаток блокаБитрейтПриращение
4x48.0025%
5x46.4025%
5x55.1220%
6x54.2720%
6x63.5614%
8x53.2020%
8x62.675%
10x52.5620%
10x62.137%
8x82.0025%
10x81.6025%
10x101.2820%
12x101.0720%
12x120.89

В приведенной выше таблице столбец «Приращение» показывает дополнительную память, необходимую для хранения текстуры с использованием этой скорости передачи данных, по сравнению со следующей наименьшей скоростью. Посадочные места блока представлены как ширина x высота.

Отпечатки 3D-блоков и скорость передачи данных

3D-текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, как для 2D, но с переменным размером блока в диапазоне от 3x3x3 текселей до 6x6x6 текселей. Таким образом, доступные битовые скорости варьируются от 4,74 бит на тексель до 0,59 бит на тексель с небольшими шагами между ними.

Отпечаток блокаБитрейтПриращение
3x3x34.7433%
4x3x33.5633%
4x4x32.6733%
4x4x42.0025%
5x4x41.6025%
5x5x41.2825%
5x5x51.0220%
6x5x50.8520%
6x6x50.7120%
6x6x60.59

Посадочные места блока представлены как ширина x высота x глубина.

Смотрите также

Рекомендации

  1. ^ «Технология адаптивного масштабируемого сжатия текстур (ASTC), разработанная ARM® и AMD».
  2. ^ а б c «Адаптивное масштабируемое сжатие текстур» (PDF). HPG 2012. Получено 2012-06-27.
  3. ^ "Khronos выпускает спецификацию сжатия текстур нового поколения ATSC". Khronos Group Inc. 2012-08-06. Получено 2012-08-06.
  4. ^ «Вулкан API» (PDF).
  5. ^ «Руководство разработчика графического API для процессоров Intel® Core ™ 6-го поколения».
  6. ^ https://lists.freedesktop.org/archives/mesa-dev/2018-July/200867.html

внешняя ссылка