Михаил Пселл
- 1 year ago
- 0
- 0
PVRTC и PVRTC2 (PowerVR Texture Compression) — семейство алгоритмов сжатия текстур с потерей качества, используемое в технологиях, связанных с архитектурой PowerVR , SGX и Rogue. Теоретическое обоснование работы алгоритма было описано в работе Саймона Феннея ( англ. Simon Fenney ) «Сжатие текстур с помощью низкочастотной модуляции сигнала» ( англ. Texture Compression using Low-Frequency Signal Modulation ) и опубликовано на Graphics Hardware 2003 .
Основным отличием PVRTC от форматов сжатия текстур S3TC и (ETC) заключается в том, что в нём используется билинейное увеличение и смешение двух изображений низкого разрешения. В дополнение к этому, PVRTC поддерживает данные в вариантах 2 бита на пиксель (2bpp) и 4 бита на пиксель (4bpp).
PVRTC используется в устройствах на базе Nokia N9 , во всех поколениях устройств iOS ( iPhone , iPod Touch и iPad ) и в некоторых устройствах Android с GPU PowerVR .
В PVRTC и PVRTC2 текстура представлена в виде блоков, занимающих 64 бита (в режиме 4bpp один блок будет занимать 4×4 пикселя, в 2bpp — 8×4). В некоторых реализациях доступ к блокам осуществляется с помощью кривой Мортона . В каждом блоке хранится шесть переменных: в PVRTC — это данные модуляции (32 бит), флаг punch-through alpha (1 бит), цвет A (15 бит), флаг прозрачности цвета A (1 бит), цвет B (14 бит) и флаг прозрачности цвета B (1 бит); в PVRTC2 — данные модуляции (32 бит), флаг модуляции (1 бит), цвет B (15 бит), флаг hard transition (1 бит), цвет A (15 бит) и флаг прозрачности (1 бит). В PVRTC флаги прозрачности цветов можно задавать независимо, когда как в PVRTC2 цвета A и B должны быть в одинаковом формате (либо RGB, либо RGBA).