PVRTC
PVRTCPVRTC(PowerVR Texture Compression) 및 PVRTC2는 PowerVR의 MBX(PVRTC만 해당), SGX 및 Rogue 테크놀로지에 사용되는 손실률이 높은 고정 레이트의 텍스처 압축 형식 패밀리입니다.PVRTC 알고리즘은 Graphics Hardware 2003에서 발표된 Simon Fenney의 논문 "Texture Compression using Low-Frequency Signal Modulation"에 설명되어 있습니다.
이는 S3TC 및 ETC(Ericsson Texture Compression)와 같은 블록 기반 텍스처 형식과는 다릅니다. 압축된 이미지는 2개의 저해상도 이미지로 표시되며, 2개의 이미지는 초기 업스케일링된 다음 저정밀 픽셀당 가중치에 따라 혼합됩니다.또한 ARGB 데이터는 4-bpp 모드와 2-bpp 모드 모두에서 지원된다는 점도 다릅니다.
PVRTC는 Nokia N9 및 모든 세대의 iPhone, iPod Touch 및 iPad에서 사용되는 압축 텍스처 형식입니다.PowerVR GPU를 사용하는 특정 Android 장치에서도 지원됩니다[1].
data 구조
PVRTC와 PVRTC2에서는 텍스처 데이터가 블록에 저장됩니다(단, 2x2 텍스트 세트의 디코딩에는 이들 블록 중 4개에 대한 액세스가 필요합니다).데이터 블록은 항상 64비트(8바이트)의 스토리지/메모리 공간을 차지하기 때문에 4비트 모드(4bpp)에서는 4×4픽셀마다 하나의 블록이 있습니다.2비트 모드(2-bpp)에서는 8×4픽셀마다 1개의 블록이 있습니다.
예를 들어 1024×1024 4-bpp PVRTC 텍스처는 65,536개의 블록을 가지며 524,288바이트의 스토리지/메모리 공간을 사용합니다.일부 하드웨어 구현에서 블록은 Morton 순서로 배열됩니다.
PVRTC에서는 각 블록에 변조 데이터(32비트), 펀치 스루 알파 플래그(1비트), 컬러 A(15비트), 컬러 A 불투명 플래그(1비트), 컬러 B(14비트) 및 컬러 B 불투명 플래그(1비트)의 6가지 변수가[2] 저장됩니다.
PVRTC2에서는 변조 데이터(32비트), 변조 플래그(1비트), 컬러 B(14비트), 하드 전환 플래그(1비트), 컬러 A(15비트) 및 불투명도 플래그(1비트)의 6가지 변수가[3] 하나의 블록에 저장됩니다.
PVRTC에서는 불투명도 플래그를 A 및B 색상에 대해 개별적으로 설정할 수 있지만 PVRTC2에서는 A 및 B 색상은 모두 같은 형식(즉, RGB 또는 양쪽 RGBA)이어야 합니다.