PVRTC og PVRTC2 (PowerVR Texture Compression) er en familie af tabsgivende teksturkomprimeringsalgoritmer, der bruges i teknologier relateret til PowerVR , SGX og Rogue-arkitekturerne. Den teoretiske begrundelse for driften af algoritmen blev beskrevet i arbejdet af Simon Fenney ( engelsk Simon Fenney ) "Texture Compression using Low-Frequency Signal Modulation" ( engelsk. Texture Compression using Low-Frequency Signal Modulation ) [1] og udgivet den Grafikhardware 2003 [2] .
Den største forskel mellem PVRTC og S3TC og Ericsson Texture Compression (ETC) teksturkomprimeringsformater er, at den bruger bilineær opskalering og blanding af to billeder med lav opløsning. Derudover understøtter PVRTC 2 bits pr. pixel (2bpp) og 4 bits pr. pixel (4bpp) ARGB -data.
PVRTC bruges i Nokia N9 -baserede enheder , i alle generationer af iOS-enheder ( iPhone , iPod Touch og iPad ) og i nogle Android -enheder med PowerVR GPU [3] .
I PVRTC og PVRTC2 er teksturen repræsenteret som blokke, der optager 64 bit (i 4bpp-tilstand vil en blok optage 4x4 pixels, i 2bpp - 8x4). I nogle implementeringer tilgås blokke ved hjælp af en Morton-kurve . Hver blok gemmer seks variabler: i PVRTC er disse moduleringsdata (32 bit), punch-through alpha flag (1 bit), farve A (15 bit), farve A gennemsigtighedsflag (1 bit), farve B (14 bit) og et farvegennemsigtigt flag B (1 bit); i PVRTC2, modulationsdata (32 bit), modulationsflag (1 bit), farve B (15 bit), hard overgangsflag (1 bit), farve A (15 bit) og gennemsigtighedsflag (1 bit). I PVRTC kan farvegennemsigtighedsflag indstilles uafhængigt, mens i PVRTC2 skal farver A og B være i samme format (enten RGB eller RGBA).