HOME

TheInfoList



OR:

Ericsson Texture Compression (ETC) is a
lossy In information technology, lossy compression or irreversible compression is the class of data compression methods that uses inexact approximations and partial data discarding to represent the content. These techniques are used to reduce data size ...
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 ...
technique developed in collaboration with
Ericsson Research (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
in early 2005. It was originally developed under the name iPACKMAN and based on an earlier compression scheme called PACKMAN.


ETC1

The original 'ETC1' compression scheme provides 6x compression of
24-bit Notable 24-bit machines include the CDC 924 – a 24-bit version of the CDC 1604, CDC lower 3000 series, SDS 930 and SDS 940, the ICT 1900 series, the Elliott 4100 series, and the Datacraft minicomputers/Harris H series. The term SWORD is ...
RGB The RGB color model is an additive color model in which the red, green and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three addi ...
data. It does not support the compression of images with Alpha components, although there are work-arounds for this. ETC1 takes 4x4 groups of
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a raster image, or the smallest point in an all points addressable display device. In most digital display devices, pixels are the smal ...
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 Brightness is an attribute of visual perception in which a source appears to be radiating or reflecting light. In other words, brightness is the perception elicited by the luminance of a visual target. The perception is not linear to luminance, ...
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 OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accel ...
graphics standard extensionsOES_compressed_ETC1_RGB8_texture
A description of the ETC1- compression algorithm and texture format in OpenGL ES extension registry
for embedded devices such as
mobile phone A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive calls over a radio frequency link whil ...
s and has been approved by the
Khronos Group The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation ...
for use in the
WebGL WebGL (Short for Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated ...
graphics standard for browser-side World Wide Web graphics. Android version 2.2 (Froyo) includes support for ETC1.Release notes for Android 2.2
, (Froyo)


ETC2 and EAC

The 'ETC2' scheme expands ETC1 in a backwards-compatible way to provide higher quality RGB compression, as well as compression of RGBA (RGB plus alpha), single channel (R11) and dual channel (RG11) data. The following ETC2 codecs are mandatory in OpenGL ES 3.0 and OpenGL 4.3: * GL_COMPRESSED_RGB8_ETC2 — Compresses RGB888 data, the followup of ETC1. * GL_COMPRESSED_RGBA8_ETC2_EAC — Compresses RGBA8888 data with full alpha support. * GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 — Compresses RGBA data where pixels are either fully transparent or fully opaque.
sRGB sRGB is a standard RGB (red, green, blue) color space that HP and Microsoft created cooperatively in 1996 to use on monitors, printers, and the World Wide Web. It was subsequently standardized by the International Electrotechnical Commission ( ...
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: * GL_COMPRESSED_R11_EAC — one channel unsigned data * GL_COMPRESSED_SIGNED_R11_EAC — one channel signed data * GL_COMPRESSED_RG11_EAC — two channel unsigned data * GL_COMPRESSED_SIGNED_RG11_EAC — two channel signed data The RGBA and RG11 formats are encoded in 128 bits per 4x4 block, while the rest are encoded in 64 bits per block. For RGBA, the RGB channels are encoded in a regular 64-bit block, while the A channel gets its own 64-bit block. RG11 formats are encoded similarly, with one 64-bit block per component. A software utility called etcpack for compression and decompression of ETC1/ETC2 textures is available for free download in code form from Ericsson on GitHub.Ericsson ETCPACK on Github
/ref>


See also

*
S3 Texture Compression 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 accelerat ...
(S3TC) * Adaptive Scalable Texture Compression (ASTC)


References

{{reflist


External links


Ericsson ETCPACK on github

ETC1 & ETC2 Texture Compression Tool from ARM

Sample code for handling alpha channels in ETC1 from ARM

The Khronos Texture file format (which uses ETC1 compression)

rg_etc1
A fast, high quality, ZLIB-licensed ETC1 block packer/unpacker in a single C++ source file
etcpak
an extremely fast Ericsson Texture Compression utility for rapid assets preparation by Bartosz Taudul
etc2comp
a fast Ericsson Texture Compression program. Texture compression