跳至內容

愛立信紋理壓縮

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

愛立信紋理壓縮(英語: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]

平滑方案[編輯]

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

參見[編輯]

參考資料[編輯]

  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. ^ 3.0 3.1 Sample code for handling alpha channels in ETC1 from ARM. [2011-11-03]. (原始內容存檔於2011-10-27). 
  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 網際網路檔案館存檔,存檔日期2010-10-11., (Froyo)
  6. ^ Paper about ETC2: Texture Compression using Invalid Combinations (PDF). [2021-09-27]. (原始內容存檔 (PDF)於2021-08-31). 
  7. ^ OpenGL ES Version 3.0 Specification (PDF). [2021-09-27]. (原始內容存檔 (PDF)於2016-03-06). 
  8. ^ OpenGL Version 4.3 Specification (PDF). [2021-09-27]. (原始內容存檔 (PDF)於2016-06-24). 
  9. ^ Ericsson ETCPACK on Github. [2021-09-27]. (原始內容存檔於2021-09-27). 
  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)

 

外部連結[編輯]