Ericsson Texture Compression

Ericsson Texture Compression (ETC) is a texture compression technique developed in collaboration with Ericsson Research in early 2005. It was originally developed under the name iPACKMAN [1] and based on an earlier compression scheme called PACKMAN.[2]

The original 'ETC1' compression scheme provides 6x compression of 24 bit RGB data. It does not support the compression of images with Alpha components. The 'ETC2' scheme expands ETC1 in a backwards-compatible way to provide higher quality RGB compression, as well as compression of RGBA data (RGB plus alpha).

ETC1 takes 4x4 groups of pixel data and compresses each into a single 64 bit word. The 4x4 pixel group is first divided into two 4x2 chunks - either horizontally or vertically. Each half is given a base color - either using 4/4/4 RGB or by giving one of them a 5/5/5 RGB and having the other be a 3/3/3 bit offset from that base. Each 4x2 region also has a 3 bit brightness range selection. Each pixel is then offset from the base color by adding one of four signed values to the base color for its half of the 4x4 group.

This format is a part of the OpenGL ES graphics standard extensions[3] for embedded devices such as cellphones and has been approved by the Khronos Group for use in the WebGL graphics standard for browser-side world-wide web graphics.

A software package called etcpack for compression and decompression of ETC1 textures is available for free download for usage with Khronos APIs.[4]

Android version 2.2 (Froyo) includes support for ETC1.[5]

External links

References

  1. ^ iPACKMAN: High-Quality, Low-Complexity Textures Compression for Mobile Phones -- Jacob Ström (Ericsson Research), Tomas Akeinine-Möller (Lund University)
  2. ^ PACKMAN: Texture Compression for Mobile Phones -- Jacob Ström (Ericsson Research), Tomas Akeinine-Möller (Lund University).
  3. ^ OES_compressed_ETC1_RGB8_texture, A description of the ETC1- compression algorithm and texture format in OpenGL ES extension registry
  4. ^ Ericsson Texture Compression Tool etcpack (for ETC1)
  5. ^ Release notes for Android 2.2, (Froyo)