PVRTC (PowerVR Texture Compression) and PVRTC2 are a family of lossy, fixed-rate
texture compression
Texture compression is a specialized form of image compression designed for storing texture maps in 3D computer graphics rendering systems. Unlike conventional image compression algorithms, texture compression algorithms are optimized for random ac ...
formats used in
PowerVR
PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and for video encoding, decoding, associated image processing and DirectX, OpenGL ES, OpenVG, and OpenCL accelera ...
's MBX (PVRTC only), SGX and Rogue technologies. The PVRTC algorithm is documented in Simon Fenney's paper
Texture Compression using Low-Frequency Signal Modulation that was presented a
Graphics Hardware 2003
These differ from block-based texture formats such as
S3TC S3 Texture Compression (S3TC) (sometimes also called DXTn, DXTC, or BCn) is a group of related lossy texture compression algorithms originally developed by Iourcha et al. of S3 Graphics, Ltd. for use in their Savage 3D computer graphics accelerato ...
and
Ericsson Texture Compression
Ericsson Texture Compression (ETC) is a lossy texture compression technique developed in collaboration with Ericsson Research in early 2005. It was originally developed under the name iPACKMAN and based on an earlier compression scheme called PACKM ...
(ETC) in that the compressed image is represented by two lower resolution images which are bilinearly upscaled and then blended according to low precision, per-pixel weights. They also differ in that they support
ARGB
RGBA stands for red green blue alpha. While it is sometimes described as a color space, it is actually a three-channel RGB color model supplemented with a fourth ''alpha channel''. Alpha indicates how opaque each pixel is and allows an image to ...
data in both 4-bpp and 2-bpp modes.
PVRTC is the compressed texture format used in the
Nokia N9
The Nokia N9 (codename '' Lankku'') is a flagship smartphone developed by Nokia, running on the Linux-based MeeGo mobile operating system. Announced in June 2011 and released in September, it was the first and only device from Nokia with MeeGo, ...
and all generations of the
iPhone,
iPod Touch
The iPod Touch (stylized as iPod touch) is a discontinued line of iOS-based mobile devices designed and marketed by Apple Inc. with a touchscreen-controlled user interface. As with other iPod models, the iPod Touch can be used as a music pl ...
, and
iPad
The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, operating s ...
. It is also supported in certain Android devices, that use PowerVR GPUs.
Data structure
In both PVRTC and PVRTC2, texture data is stored in blocks (but note that the decoding of any 2x2 set of texels requires access to 4 of these blocks.) A data block always occupies 64 bits (8 bytes) of storage/memory space and thus, in 4-bit mode (4bpp), there will be one block for each 4×4 pixels. In 2-bit mode (2-bpp), there will be one block for every 8×4 pixels.
For example, a 1024×1024 4-bpp PVRTC texture would have 65,536 blocks and take 524,288 bytes of storage/memory space. In some hardware implementations, the blocks are arranged in a variant of
Morton order
In mathematical analysis and computer science, functions which are Z-order, Lebesgue curve, Morton space-filling curve, Morton order or Morton code map multidimensional data to one dimension while preserving locality of the data points. It i ...
.
With PVRTC there are six different variables stored in each block: Modulation data (32 bits), punch-through alpha flag (1 bit), color A (15 bits), color A opaque flag (1 bit), color B (14 bits) and color B opaque flag (1 bit).
With PVRTC2 there are six different variables
[http://withimagination.imgtec.com/wp-content/uploads/2013/01/A-PVRTC2-data-word.jpg ] stored to one block: Modulation data (32 bits), modulation flag (1 bit), color B (14 bits), hard transition flag (1 bit), color A (15 bits) and opacity flag (1 bit).
Although in PVRTC the opacity flags can be set independently for the A & B colours, in PVRTC2, Color A and Color B must both be in same format (i.e. either both RGB or both RGBA).
See also
*
Texture compression
Texture compression is a specialized form of image compression designed for storing texture maps in 3D computer graphics rendering systems. Unlike conventional image compression algorithms, texture compression algorithms are optimized for random ac ...
*
Adaptive Scalable Texture Compression (ASTC)
References
{{Reflist
Simon Fenney's 3D Graphics PagesTaking texture compression to a new dimension with PVRTC2PVRTC: the most efficient texture compression standard for the mobile graphics world
Texture compression