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[1] and based on an earlier compression scheme called PACKMAN.[2]

ETC1

The original 'ETC1' compression scheme provides 6x compression of 24-bit RGB data. It does not support the compression of images with Alpha components, although there are work-arounds for this.[3]

ETC1 takes 4x4 groups of pixel data and compresses each into a single 64-bit word. The 4×4 pixel group is first divided into two 4×2 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 4×2 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 4×4 group.

This format is a part of the OpenGL ES graphics standard extensions[4] for embedded devices such as mobile phones and has been approved by the Khronos Group for use in the WebGL graphics standard for browser-side World Wide Web graphics.

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

ETC2 and EAC

The 'ETC2' scheme expands ETC1 in a backwards-compatible way to provide higher quality RGB compression[6] as well as compression of RGBA data (RGB plus alpha).

The following ETC2 codecs are mandatory in OpenGL ES 3.0[7] and OpenGL 4.3:[8]

sRGB variants of the above codecs are also available.

EAC is built on the same principles as ETC1/ETC2 but is used for one- or two-channel data. The following four EAC codecs are included as mandatory in OpenGL ES 3.0 and OpenGL 4.3:

A software package called etcpack for compression and decompression of ETC1/ETC2 textures used to be available for free download for usage with Khronos APIs.[9]

Smooth Profile

The 'Smooth Profile' is on the paper[10] only. Like ETC2 Planar Mode but using more function to provide smooth texture.

See also

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. Sample code for handling alpha channels in ETC1 from ARM
  4. OES_compressed_ETC1_RGB8_texture, A description of the ETC1- compression algorithm and texture format in OpenGL ES extension registry
  5. Release notes for Android 2.2, (Froyo)
  6. Paper about ETC2: Texture Compression using Invalid Combinations
  7. OpenGL ES Version 3.0 Specification
  8. OpenGL Version 4.3 Specification
  9. ectpack on Github
  10. Texture Compression of Light Maps using Smooth Profile Functions -- Jim Rasmusson, Jacob Ström, Per Wennersten (Ericsson Research), Michael Doggett, Tomas Akenine-Möller (Lund University)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.