stringtranslate.com

Compresión de texturas de Ericsson

Ericsson Texture Compression ( ETC ) es una técnica de compresión de textura con pérdida desarrollada en colaboración con Ericsson Research a principios de 2005. Originalmente se desarrolló con el nombre de iPACKMAN [1] y se basaba en un esquema de compresión anterior llamado iPACKMAN . [ 2]

ETC1

El esquema de compresión original 'ETC1' proporciona una compresión de 6x de datos RGB de 24 bits . No admite la compresión de imágenes con componentes Alpha, aunque existen soluciones alternativas para esto. [3]

ETC1 toma grupos de datos de píxeles de 4x4 y los comprime en una sola palabra de 64 bits. El grupo de píxeles de 4x4 se divide primero en dos bloques de 4x2, ya sea horizontal o verticalmente. A cada mitad se le asigna un color base, ya sea utilizando RGB 4/4/4 o asignando a uno de ellos un RGB 5/5/5 y haciendo que el otro tenga una diferencia de 3/3/3 bits con respecto a esa base. Cada región de 4x2 también tiene una selección de rango de brillo de 3 bits. Luego, cada píxel se diferencia del color base agregando uno de los cuatro valores con signo al color base de su mitad del grupo de 4x4.

Este formato es parte de las extensiones del estándar de gráficos OpenGL ES [4] para dispositivos integrados como teléfonos móviles y ha sido aprobado por el Grupo Khronos para su uso en el estándar de gráficos WebGL para gráficos de la World Wide Web del lado del navegador. [ cita requerida ]

La versión 2.2 de Android (Froyo) incluye soporte para ETC1. [5] [3]

ETC2

El esquema 'ETC2' expande ETC1 de una manera compatible con versiones anteriores para proporcionar una compresión RGB de mayor calidad, [6] así como compresión de RGBA (RGB más alfa).

Los siguientes códecs ETC2 son obligatorios en OpenGL ES 3.0 [7] y OpenGL 4.3: [8]

También están disponibles variantes sRGB de los códecs anteriores.

CAE

EAC se basa en los mismos principios que ETC1/ETC2, pero se utiliza para datos de uno o dos canales. Los siguientes cuatro códecs EAC se incluyen como obligatorios en OpenGL ES 3.0 y OpenGL 4.3:

Codificación

Los formatos RGBA y RG11 se codifican en 128 bits por bloque de 4x4, mientras que el resto se codifica en 64 bits por bloque. En el caso de RGBA, los canales RGB se codifican en un bloque normal de 64 bits, mientras que el canal A tiene su propio bloque de 64 bits. Los formatos RG11 se codifican de forma similar, con un bloque de 64 bits por componente.

Software

Una utilidad de software llamada ETCPACK para la compresión y descompresión de texturas ETC1/ETC2 está disponible para descarga gratuita en forma de código desde Ericsson en GitHub. [9]

Véase también

Referencias

  1. ^ iPACKMAN: Compresión de texturas de alta calidad y baja complejidad para teléfonos móviles -- Jacob Ström (Ericsson Research), Tomas Akeinine-Möller (Universidad de Lund)
  2. ^ PACKMAN: Compresión de texturas para teléfonos móviles – Jacob Ström (Ericsson Research), Tomas Akeinine-Möller (Universidad de Lund).
  3. ^ ab "Código de muestra para el manejo de canales alfa en ETC1 desde ARM". Archivado desde el original el 27 de octubre de 2011. Consultado el 3 de noviembre de 2011 .
  4. ^ OES_compressed_ETC1_RGB8_texture, una descripción del algoritmo de compresión ETC1 y el formato de textura en el registro de extensión OpenGL ES
  5. ^ Notas de la versión para Android 2.2 Archivado el 11 de octubre de 2010 en Wayback Machine , (Froyo)
  6. ^ Documento sobre ETC2: Compresión de texturas mediante combinaciones no válidas
  7. ^ "Especificación de OpenGL ES versión 3.0" (PDF) . Archivado desde el original (PDF) el 6 de marzo de 2016. Consultado el 7 de agosto de 2012 .
  8. ^ Especificación de OpenGL versión 4.3
  9. ^ Ericsson ETCPACK en Github

Enlaces externos