WikiDer > PVRTC - Википедия

PVRTC - Wikipedia

PVRTC (PowerVR Texture Compression) и PVRTC2 - это семейство с потерями и фиксированной скоростью. сжатие текстуры форматы, используемые в PowerVRMBX (только PVRTC), SGX и Rogue. Алгоритм PVRTC описан в статье Саймона Фенни "Сжатие текстур с использованием низкочастотной модуляции сигнала"который был представлен на Графическое оборудование 2003.

Они отличаются от форматов текстур на основе блоков, таких как S3TC и Сжатие текстур Ericsson (ETC) в том смысле, что сжатое изображение представлено двумя изображениями с более низким разрешением, которые билинейно масштабируются, а затем смешиваются в соответствии с низкой точностью, попиксельными весами. Они также отличаются тем, что поддерживают ARGB данные как в режимах 4-bpp, так и 2-bpp.

PVRTC - это сжатый формат текстур, используемый в Nokia N9 и все поколения iPhone, Ipod Touch, и iPad. Также поддерживается[1] в некоторых устройствах Android, использующих графические процессоры PowerVR.

Структура данных

И в PVRTC, и в PVRTC2 данные текстуры хранятся в блоках (но обратите внимание, что для декодирования любого набора текселей 2x2 требуется доступ к 4 из этих блоков). Блок данных всегда занимает 64 бита (8 байтов) пространства хранения / памяти и таким образом, в 4-битном режиме (4bpp) будет один блок на каждые 4 × 4 пикселя. В 2-битном режиме (2-bpp) будет один блок на каждые 8 ​​× 4 пикселя.

Например, текстура PVRTC 1024 × 1024 4 бит на пиксель будет иметь 65 536 блоков и занимать 524 288 байт пространства хранения / памяти. В некоторых аппаратных реализациях блоки расположены в варианте Приказ Мортона.

В PVRTC есть шесть различных переменных[2] в каждом блоке хранятся: данные модуляции (32 бита), сквозной альфа-флаг (1 бит), цвет A (15 бит), флаг непрозрачности цвета A (1 бит), цвет B (14 бит) и флаг непрозрачности цвета B ( 1 бит).

В PVRTC2 есть шесть различных переменных[3] хранятся в одном блоке: данные модуляции (32 бита), флаг модуляции (1 бит), цвет B (14 бит), флаг жесткого перехода (1 бит), цвет A (15 бит) и флаг непрозрачности (1 бит).

Хотя в PVRTC флаги непрозрачности могут быть установлены независимо для цветов A и B, в PVRTC2 оба цвета A и B должны быть в одном и том же формате (т.е. либо RGB, либо оба RGBA).

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

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