PVRTC a PVRTC2 (PowerVR Texture Compression) jsou rodinou ztrátových algoritmů pro kompresi textur používaných v technologiích souvisejících s architekturami PowerVR , SGX a Rogue. Teoretické zdůvodnění fungování algoritmu bylo popsáno v práci Simona Fenneyho ( anglicky Simon Fenney ) "Texture Compression using Low-Frequency Signal Modulation" ( anglicky. Texture Compression using Low-Frequency Signal Modulation ) [1] a publikováno dne Grafický hardware 2003 [2] .
Hlavní rozdíl mezi PVRTC a formáty komprese textury S3TC a Ericsson Texture Compression (ETC) spočívá v tom, že používá bilineární upscaling a prolnutí dvou obrázků s nízkým rozlišením. Kromě toho PVRTC podporuje 2 bity na pixel (2bpp) a 4 bity na pixel (4bpp) ARGB data.
PVRTC se používá v zařízeních na bázi Nokia N9 , ve všech generacích zařízení iOS ( iPhone , iPod Touch a iPad ) a v některých zařízeních Android s GPU PowerVR [3] .
V PVRTC a PVRTC2 je textura reprezentována jako bloky, které zabírají 64 bitů (v režimu 4bpp bude jeden blok zabírat 4x4 pixely, v 2bpp - 8x4). V některých implementacích se k blokům přistupuje pomocí Mortonovy křivky . Každý blok ukládá šest proměnných: v PVRTC jsou to modulační data (32 bitů), příznak alfa (1 bit), barva A (15 bitů), příznak průhlednosti barvy A (1 bit), barva B (14 bitů) a barevný transparentní příznak B (1 bit); v PVRTC2 modulační data (32 bitů), příznak modulace (1 bit), barva B (15 bitů), příznak tvrdého přechodu (1 bit), barva A (15 bitů) a příznak průhlednosti (1 bit). V PVRTC lze příznaky průhlednosti barev nastavit nezávisle, zatímco v PVRTC2 musí být barvy A a B ve stejném formátu (buď RGB nebo RGBA).