stringtranslate.com

Compresión de textura Ericsson

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

ETC1

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

ETC1 toma grupos de 4x4 de datos de píxeles y los comprime en una sola palabra de 64 bits. El grupo de píxeles de 4×4 se divide primero en dos trozos de 4×2, ya sea horizontal o verticalmente. A cada mitad se le asigna un color base, ya sea usando 4/4/4 RGB o dándole a una de ellas un 5/5/5 RGB y haciendo que la otra tenga un desplazamiento de 3/3/3 bits de esa base. Cada región de 4×2 también tiene una selección de rango de brillo de 3 bits. Luego, cada píxel se desplaza del color base agregando uno de los cuatro valores con signo al color base para su mitad del grupo 4×4.

Este formato forma 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 Khronos Group para su uso en el estándar de gráficos WebGL para gráficos de la World Wide Web en el lado del navegador. [ cita necesaria ]

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

ETC2

El esquema 'ETC2' amplía ETC1 de forma compatible con versiones anteriores para proporcionar compresión RGB de mayor calidad, [6] así como compresión de RGBA (RGB plus 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.

CAO

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 están codificados en 128 bits por bloque de 4x4, mientras que el resto están codificados en 64 bits por bloque. Para RGBA, los canales RGB están codificados en un bloque normal de 64 bits, mientras que el canal A obtiene su propio bloque de 64 bits. Los formatos RG11 se codifican de manera 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 su descarga gratuita en forma de código desde Ericsson en GitHub. [9]

Ver 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 manejar 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 Archivadas el 11 de octubre de 2010 en Wayback Machine , (Froyo)
  6. ^ Artículo 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