Сжатие текстур 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, но с дополнительными функциями для получения гладкой текстуры.
Смотрите также
Рекомендации
- ^ iPACKMAN: высококачественное сжатие несложных текстур для мобильных телефонов - Якоб Стрём (Ericsson Research), Томас Акейнин-Мёллер (Лундский университет)
- ^ PACKMAN: сжатие текстур для мобильных телефонов - Якоб Стрём (Ericsson Research), Томас Акейнин-Мёллер (Лундский университет).
- ^ «Пример кода для обработки альфа-каналов в ETC1 от ARM». Архивировано из оригинал на 2011-10-27. Получено 2011-11-03.
- ^ OES_compressed_ETC1_RGB8_texture, Описание алгоритма сжатия ETC1 и формата текстур в реестре расширений OpenGL ES
- ^ Примечания к выпуску Android 2.2 В архиве 2010-10-11 на Wayback Machine, (Фройо)
- ^ Статья о ETC2: Сжатие текстуры с использованием недопустимых комбинаций
- ^ Спецификация OpenGL ES версии 3.0
- ^ Спецификация OpenGL версии 4.3
- ^ Ericsson ETCPACK на Github
- ^ Сжатие текстуры карт освещения с использованием функций сглаживания профиля - Джим Расмуссон, Якоб Стрем, Пер Веннерстен (Ericsson Research), Майкл Доггетт, Томас Акенин-Мёллер (Лундский университет)
внешняя ссылка
- Ericsson ETCPACK на github
- Инструмент сжатия текстур ETC1 и ETC2 от ARM
- Пример кода для обработки альфа-каналов в ETC1 от ARM
- Формат файлов Khronos Texture (который использует сжатие ETC1)
- rg_etc1, Быстро, качественно, Под лицензией ZLIB Упаковщик / распаковщик блоков ETC1 в одном исходном файле на C ++
- etcpak, чрезвычайно быстрая утилита сжатия текстур от Ericsson для быстрой подготовки ресурсов от Бартоша Таудула