PVRTC

PVRTC (PowerVR Texture Compression) och PVRTC2 är en familj av förlustformat, texturkomprimeringsformat med fast hastighet som används i PowerVR :s MBX (endast PVRTC), SGX och Rogue-teknologier. PVRTC-algoritmen finns dokumenterad i Simon Fenneys artikel " Texture Compression using Low-Frequency Signal Modulation " som presenterades på Graphics Hardware 2003 .

Dessa skiljer sig från blockbaserade texturformat som S3TC och Ericsson Texture Compression (ETC) genom att den komprimerade bilden representeras av två bilder med lägre upplösning som bilinjärt uppskalas och sedan blandas enligt låg precision, vikter per pixel. De skiljer sig också genom att de stöder ARGB- data i både 4-bpp- och 2-bpp-lägen.

PVRTC är det komprimerade texturformatet som används i Nokia N9 och alla generationer av iPhone , iPod Touch och iPad . Det stöds också i vissa Android-enheter som använder PowerVR GPU:er.

Datastruktur

I både PVRTC och PVRTC2 lagras texturdata i block (men observera att avkodningen av valfri 2x2 uppsättning texels kräver åtkomst till 4 av dessa block.) Ett datablock upptar alltid 64 bitar (8 byte) lagrings-/minnesutrymme och sålunda, i 4-bitarsläge (4bpp), kommer det att finnas ett block för varje 4×4 pixlar. I 2-bitarsläge (2-bpp) kommer det att finnas ett block för varje 8×4 pixlar.

Till exempel skulle en 1024×1024 4-bpp PVRTC-textur ha 65 536 block och ta 524 288 byte lagrings-/minnesutrymme. I vissa hårdvaruimplementationer är blocken ordnade i en variant av Morton order .

Med PVRTC finns det sex olika variabler lagrade i varje block: Modulationsdata (32 bitar), punch-through alpha flag (1 bit), färg A (15 bitar), färg A ogenomskinlig flagga (1 bit), färg B (14 bitar) ) och färg B ogenomskinlig flagga (1 bit).

Med PVRTC2 finns det sex olika variabler lagrade i ett block: Modulationsdata (32 bitar), moduleringsflagga (1 bit), färg B (14 bitar), hårdövergångsflagga (1 bit), färg A (15 bitar) och opacitetsflagga (1 bit).

Även om i PVRTC opacitetsflaggorna kan ställas in oberoende för A & B-färgerna, i PVRTC2 måste färg A och färg B båda vara i samma format (dvs. antingen båda RGB eller båda RGBA).

Se även