Адаптивная масштабируемая сжатие текстур ( АНТК ) является потерями на основе блоков сжатия текстур алгоритм , разработанный Йорн Nystad и соавт. компании ARM Ltd. и AMD . [1]
Полная информация об ASTC была впервые публично представлена на конференции High Performance Graphics 2012 в статье Olson et al. под названием «Адаптивное масштабируемое сжатие текстур». [2]
ASTC был принят в качестве официального расширения для OpenGL и OpenGL ES группой Khronos 6 августа 2012 г. [3]
Поддержка оборудования [ править ]
Оба профиля (LDR и Full) поддерживаются в последних версиях Mali , включая Mali-T620, Mali-T720, Mali-T760, Mali-T820 / T830 и Mali-T860 / T880.
SoC Tegra на базе Kepler и Maxwell от Nvidia . [4]
Intel графических процессоров в Skylake и более поздних процессоров. [5]
В Linux все драйверы Gallium 3D имеют резервное программное обеспечение с 2018 года, поэтому ASTC можно использовать на любом графическом процессоре AMD Radeon. [6]
Обзор [ править ]
Метод сжатия представляет собой эволюцию сжатия цветных ячеек с функциями, включая множество близко расположенных дробных битрейтов, несколько цветовых форматов, поддержку текстур с расширенным динамическим диапазоном (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 бит, но с переменным размером блока в диапазоне от 4 × 4 текселей до 12 × 12 текселей. Таким образом, доступные битовые скорости варьируются от 8 бит на тексель до 0,89 бит на тексель с небольшими шагами между ними.
Отпечаток блока | Битрейт | Инкремент |
---|---|---|
4 × 4 | 8.00 | 25% |
5 × 4 | 6,40 | 25% |
5 × 5 | 5,12 | 20% |
6 × 5 | 4,27 | 20% |
6 × 6 | 3,56 | 14% |
8 × 5 | 3.20 | 20% |
8 × 6 | 2,67 | 5% |
10 × 5 | 2,56 | 20% |
10 × 6 | 2,13 | 7% |
8 × 8 | 2,00 | 25% |
10 × 8 | 1,60 | 25% |
10 × 10 | 1,28 | 20% |
12 × 10 | 1.07 | 20% |
12 × 12 | 0,89 |
В приведенной выше таблице столбец «Приращение» показывает дополнительную память, необходимую для хранения текстуры с использованием этой скорости передачи данных, по сравнению со следующей наименьшей скоростью. Посадочные места блока представлены как ширина × высота.
Отпечатки 3D-блоков и скорость передачи данных [ править ]
3D-текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, как для 2D, но с переменным размером блока в диапазоне от 3 × 3 × 3 текселей до 6 × 6 × 6 текселей. Таким образом, доступные битовые скорости варьируются от 4,74 бит на тексель до 0,59 бит на тексель с небольшими шагами между ними.
Отпечаток блока | Битрейт | Инкремент |
---|---|---|
3 × 3 × 3 | 4,74 | 33% |
4 × 3 × 3 | 3,56 | 33% |
4 × 4 × 3 | 2,67 | 33% |
4 × 4 × 4 | 2,00 | 25% |
5 × 4 × 4 | 1,60 | 25% |
5 × 5 × 4 | 1,28 | 25% |
5 × 5 × 5 | 1.02 | 20% |
6 × 5 × 5 | 0,85 | 20% |
6 × 6 × 5 | 0,71 | 20% |
6 × 6 × 6 | 0,59 |
Посадочные места блока представлены как ширина × высота × глубина.
См. Также [ править ]
- 3Dc
Ссылки [ править ]
- ^ «Технология адаптивного масштабируемого сжатия текстур (ASTC), разработанная ARM® и AMD» .
- ^ a b c «Адаптивное масштабируемое сжатие текстур» (PDF) . HPG 2012 . Проверено 27 июня 2012 .
- ^ "Khronos выпускает спецификацию сжатия текстур нового поколения ATSC" . The Khronos Group Inc. 2012-08-06 . Проверено 6 августа 2012 .
- ^ "Vulkan API" (PDF) .
- ^ «Руководство разработчика API графики для процессоров Intel® Core ™ 6-го поколения» .
- ^ https://lists.freedesktop.org/archives/mesa-dev/2018-July/200867.html
Внешние ссылки [ править ]
- Высокопроизводительная графика 2012
- Сжатие текстур ASTC: ARM расширяет границы возможностей графических технологий
- ARM представляет подробности сжатия текстур ASTC на конференции HPG
- Оценочный кодек ASTC от ARM
- Спецификация полнопрофильного расширения Khronos ASTC
- Спецификация текстуры UASTC (Universal ASTC)