Адаптивное масштабируемое сжатие текстур

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

Адаптивное масштабируемое сжатие текстур (ASTC ) - это с потерями блочный алгоритм сжатия текстур , разработанный Йорном Нистадом и др. of ARM Ltd. и AMD.

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

ASTC был принят в качестве официального расширения для OpenGL и OpenGL ES Khronos Group 6 Август 2012.

Содержание
  • 1 Поддержка оборудования
  • 2 Обзор
  • 3 Поддерживаемые цветовые форматы
  • 4 Последовательность 2D-блоков и скорость передачи данных
  • 5 Посадочные места и скорости передачи данных 3D-блоков
  • 6 См. также
  • 7 Ссылки
  • 8 Внешние ссылки
Поддержка оборудования

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

SoC от Nvidia Kepler и Maxwell Tegra.

Intel GPU в Skylake и более поздние процессоры.

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

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

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

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

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

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

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

Поддерживаемые цветовые форматы
Формат кодированияОписание
LТолько яркость
LAЯркость с прозрачностью
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 глубина.

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