热门问题
时间线
聊天
视角

愛立信紋理壓縮

来自维基百科,自由的百科全书

Remove ads

愛立信紋理壓縮(英語:Ericsson Texture Compression,縮寫ETC)是一種有損紋理壓縮技術,2005年初由愛立信研究院參與研發。它最初是以iPACKMAN[1]為名開發,基於早期的被稱為PACKMAN的壓縮方案。 [2]

ETC1

最早的ETC1壓縮方案提供了24位元RGB數據的6倍壓縮率。但不支持壓縮含有Alpha通道的圖像,儘管有方法變相實現。 [3]

ETC1採用4x4像素數據的組,將每組壓縮為單個64位字(word)。4×4像素組首先分為兩個4×2塊——無論水平或垂直。每一半都定下一個基色——使用4/4/4 RGB;或者給其中一個5/5/5 RGB,另一個則是基於該基色的3/3/3位的偏移。每個4×2區域還有一個3位的亮度範圍選擇。每個像素基於基色追加偏移。

該格式是適用於移動電話等嵌入式設備的OpenGL ES圖形標準擴展[4]的一部分,並已被科納斯組織批准供瀏覽器上的WebGL圖形標準使用。

Android 2.2版(Froyo)起含有ETC1的支持。 [5]

[3]ETC2和EAC

ETC2方案以向後兼容的方式擴展ETC1,以提供更高質量的RGB壓縮[6]以及RGBA(RGB加alpha)壓縮,單通道 (R11) 和雙通道(RG11)數據。

以下ETC2編解碼器是OpenGL ES 3.0[7]和OpenGL 4.3中的必備元素:[8]

  • 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處以代碼形式免費下載。[9]

Remove ads

平滑方案

平滑方案(Smooth Profile)僅用於紙張[10]。類似ETC2平面模式,但使用更多函數來提供平滑的紋理。

參見

參考資料

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads