爱立信纹理压缩

爱立信纹理压缩（，缩写ETC）是一种有损纹理压缩技术，2005年初由愛立信研究院参与研发。它最初是以iPACKMAN为名开发，基于早期的被称为PACKMAN的压缩方案。

ETC1 
最早的ETC1压缩方案提供了24位元RGB数据的6倍压缩率。但不支持压缩含有Alpha通道的图像，尽管有方法变相实现。 

ETC1采用4x4像素数据的组，将每组压缩为单个64位字（word）。4×4像素组首先分为两个4×2块——无论水平或垂直。每一半都定下一个基色——使用4/4/4 RGB；或者给其中一个5/5/5 RGB，另一个则是基于该基色的3/3/3位的偏移。每个4×2区域还有一个3位的亮度范围选择。每个像素基于基色追加偏移。

该格式是适用于移动电话等嵌入式设备的OpenGL ES图形标准扩展的一部分，并已被科纳斯组织批准供浏览器上的WebGL图形标准使用。

Android 2.2版（Froyo）起含有ETC1的支持。

ETC2和EAC 
ETC2方案以向后兼容的方式扩展ETC1，以提供更高质量的RGB压缩以及RGBA（RGB加alpha）压缩，单通道 (R11) 和双通道（RG11）数据。

以下ETC2编解码器是OpenGL ES 3.0和OpenGL 4.3中的必备元素：

 GL_COMPRESSED_RGB8_ETC2 — 压缩RGB888数据，ETC1后继者。
 GL_COMPRESSED_RGBA8_ETC2_EAC — 压缩RGBA8888数据，完全支持alpha通道。
 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 — 压缩是完全透明或完全不透明的像素的RGBA数据。

EAC与ETC1/ETC2的原理相同，但用于单通道或双通道数据。以下四个EAC编解码器是OpenGL ES 3.0和OpenGL 4.3的必备元素：

 GL_COMPRESSED_R11_EAC — 单通道无符号数据
 GL_COMPRESSED_SIGNED_R11_EAC — 单通道签名数据
 GL_COMPRESSED_RG11_EAC — 双通道无符号数据
 GL_COMPRESSED_SIGNED_RG11_EAC — 双通道签名数据

RGBA和RG11格式将每个4x4块以128比特编码，其余是以每个块64比特来编码。对RGBA来说，RGB通道在常规的64比特块中编码，而Alpha通道得到专用的64比特块。RG11格式的编码方式类似，每个组件有一个64位块。

名为etcpack的用于压缩和解压缩ETC1/ETC2纹理的实用程序可在GitHub上的Ericsson处以代码形式免费下载。

平滑方案 
平滑方案（Smooth Profile）仅用于纸张。类似ETC2平面模式，但使用更多函数来提供平滑的纹理。

参见 
 （S3TC）
 自适应可伸缩纹理压缩（ASTC）

参考资料

外部链接 
 Github上的爱立信ETCPACK 
 ARM的ETC1和ETC2纹理压缩工具 
 ARM处理ETC1中alpha通道的示例代码
 Khronos纹理文件格式（使用ETC1压缩） 
 rg_etc1  ，单个C++源文件中的快速、高质量、ZLIB许可的ETC1块打包器/解包器]]
 etcpak  ，一种极快的爱立信纹理压缩实用程序，用于 Bartosz Taudul的快速资产准备工作

图像压缩