Сжатие текстур Ericsson - Википедия - Ericsson Texture Compression

Сжатие текстур Ericsson (ТАК ДАЛЕЕ) это с потерями сжатие текстуры методика разработана в сотрудничестве с Ericsson Research в начале 2005 года. Первоначально он разрабатывался под названием iPACKMAN[1] и на основе более ранней схемы сжатия, называемой ПАКМАН.[2]

ETC1

Оригинальная схема сжатия ETC1 обеспечивает 6-кратное сжатие 24 бит RGB данные. Он не поддерживает сжатие изображений с помощью компонентов Alpha, хотя для этого есть обходные пути.[3]

ETC1 занимает 4x4 группы пиксель data и сжимает каждое в одно 64-битное слово. Группа пикселей 4 × 4 сначала делится на два фрагмента 4 × 2 - либо по горизонтали, либо по вертикали. Каждой половине присваивается базовый цвет - либо с использованием 4/4/4 RGB, либо путем присвоения одному из них 5/5/5 RGB, а другой должен быть смещен на 3/3/3 бита от этой базы. Каждая область 4 × 2 также имеет 3-битный диапазон яркости выбор. Затем каждый пиксель смещается от основного цвета путем добавления одного из четырех значений со знаком к базовому цвету для своей половины группы 4 × 4.

Этот формат является частью OpenGL ES стандартные расширения графики[4] для встроенных устройств, таких как мобильные телефоны и был одобрен Хронос Групп для использования в WebGL графический стандарт для графики World Wide Web на стороне браузера.[нужна цитата ]

Android версия 2.2 (Froyo) включает поддержку ETC1.[5]

ETC2 и EAC

Схема ETC2 расширяет ETC1 обратно совместимым способом для обеспечения более высокого качества сжатия RGB,[6] а также сжатие данных RGBA (RGB плюс альфа), одноканальных (R11) и двухканальных (RG11).

Следующие кодеки ETC2 являются обязательными в OpenGL ES 3.0.[7] и OpenGL 4.3:[8]

  • GL_COMPRESSED_RGB8_ETC2 - Сжимает данные RGB888, продолжение ETC1.
  • GL_COMPRESSED_RGBA8_ETC2_EAC - Сжимает данные RGBA8888 с полной альфа-поддержкой.
  • GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 - Сжимает данные RGBA, когда пиксели полностью или полностью непрозрачны.

sRGB также доступны варианты вышеперечисленных кодеков.

EAC построен на тех же принципах, что и ETC1 / ETC2, но используется для одно- или двухканальных данных. Следующие четыре кодека EAC включены в качестве обязательных в OpenGL ES 3.0 и OpenGL 4.3:

  • GL_COMPRESSED_R11_EAC - один канал беззнаковых данных
  • GL_COMPRESSED_SIGNED_R11_EAC - один канал подписанных данных
  • GL_COMPRESSED_RG11_EAC - двухканальные данные без знака
  • GL_COMPRESSED_SIGNED_RG11_EAC - двухканальные подписанные данные

Форматы RGBA и RG11 кодируются 128 битами на блок 4x4, а остальные - 64 битами на блок. Для RGBA каналы RGB кодируются в обычном 64-битном блоке, а канал A получает свой собственный 64-битный блок. Форматы RG11 кодируются аналогично, с одним 64-битным блоком на компонент.

Программная утилита под названием etcpack для сжатия и распаковки текстур ETC1 / ETC2 доступен для бесплатной загрузки в виде кода с сайта Ericsson на GitHub.[9]

Гладкий профиль

"Гладкий профиль" на бумаге[10] Только. Как ETC2 Planar Mode, но с дополнительными функциями для получения гладкой текстуры.

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

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

  1. ^ iPACKMAN: высококачественное сжатие несложных текстур для мобильных телефонов - Якоб Стрём (Ericsson Research), Томас Акейнин-Мёллер (Лундский университет)
  2. ^ PACKMAN: сжатие текстур для мобильных телефонов - Якоб Стрём (Ericsson Research), Томас Акейнин-Мёллер (Лундский университет).
  3. ^ «Пример кода для обработки альфа-каналов в ETC1 от ARM». Архивировано из оригинал на 2011-10-27. Получено 2011-11-03.
  4. ^ OES_compressed_ETC1_RGB8_texture, Описание алгоритма сжатия ETC1 и формата текстур в реестре расширений OpenGL ES
  5. ^ Примечания к выпуску Android 2.2 В архиве 2010-10-11 на Wayback Machine, (Фройо)
  6. ^ Статья о ETC2: Сжатие текстуры с использованием недопустимых комбинаций
  7. ^ Спецификация OpenGL ES версии 3.0
  8. ^ Спецификация OpenGL версии 4.3
  9. ^ Ericsson ETCPACK на Github
  10. ^ Сжатие текстуры карт освещения с использованием функций сглаживания профиля - Джим Расмуссон, Якоб Стрем, Пер Веннерстен (Ericsson Research), Майкл Доггетт, Томас Акенин-Мёллер (Лундский университет)

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