Articulo de referencia

FXT1

FXT1 es un esquema de compresión de texturas para gráficos 3D , inventado por el proveedor de hardware 3dfx Interactive y ofrecido como un estándar rival de código abierto a S3T...

FXT1 es un esquema de compresión de texturas para gráficos 3D , inventado por el proveedor de hardware 3dfx Interactive y ofrecido como un estándar rival de código abierto a S3TC en septiembre de 1999, un año después de que S3TC fuera adoptado por Microsoft como parte de DirectX . El soporte limitado de hardware de los proveedores ha sido una barrera para su aceptación. [ 1 ] [ 2 ] [ 3 ] Cabe destacar que, a pesar de ser de código abierto, FXT1 no fue adoptado por Nintendo para GameCube, ni por Sony para PlayStation 3, en ambos casos perdiendo frente al estándar establecido S3TC. Otra posible razón de su falta de adopción es que el modo CC_MIXED (ver más abajo) probablemente infringe la patente S3TC ( US 5956431 Sistema y método para compresión de imágenes basada en bloques de tasa fija con valores de píxeles inferidos ). 

FXT1 utiliza cuatro algoritmos de compresión diferentes, elegidos a nivel de bloque para optimizar la calidad visual. [ 1 ] Tener que seleccionar una ruta óptima para cada textura garantizó que FXT1 fuera relativamente lento en la compresión, lo que lo hizo inadecuado para la compresión en tiempo real en aplicaciones. [ 2 ]

El documento técnico original no seguía las normas científicas establecidas, sino que se trataba de una presentación comercial. La falta de orientación teórica por parte de los inventores podría haber sido la causa de una mala optimización del código de selección del esquema de compresión, y a pesar de un rendimiento potencialmente mejor gracias a los cuatro esquemas de compresión disponibles en lugar de uno (como en S3TC), FXT1 no mostró ninguna mejora de calidad con respecto a S3TC, siendo inferior a este en la mayoría de los casos de prueba.

En retrospectiva, FXT1 podría haber tenido más éxito si 3dfx hubiera dedicado más esfuerzo a examinar la optimización [ 2 ] del modo de compresión CC_MIXED [ 1 ] , más similar a S3TC [ 2 ] , y hubiera eliminado los otros tres códecs del estándar. Posteriormente , Nvidia [ 4 ] [ 5 ] adquirió 3dfx, y continuó dando soporte a S3TC como su herramienta de compresión preferida [ 6 ] .

algoritmos de compresión

En el documento técnico original se describen cuatro algoritmos de compresión diferentes: [ 1 ] [ 2 ]

CC_MIXED (similar a otros S3TC)
Un bloque de 4x4 texeles se representa mediante dos bits por texel para texturas opacas. Además, cada bloque contiene dos colores de 16 bits almacenados en formato RGB 565. Estos dos colores RGB 565, junto con dos colores adicionales (creados mediante interpolación entre los dos primeros), conforman los colores primarios de este bloque de texeles y su tabla de búsqueda de cuatro colores asociada. Se utiliza un índice de 2 bits para determinar qué color de la tabla de búsqueda se asignará a cada texel del bloque de 4x4. Las texturas transparentes se crean haciendo transparente uno de los cuatro colores.
CC_HI (óptima resolución espacial)
Un bloque de 4x8 texeles se representa mediante tres bits por texel para texturas opacas y transparentes. Cada bloque almacena dos colores de 15 bits en formato RGB 555. Estos dos colores RGB 555, junto con cinco colores adicionales (creados mediante interpolación entre ellos), conforman los colores primarios de este bloque. Además, se define un octavo color como el color transparente. Un índice de 3 bits determina qué color de la tabla de búsqueda de 8 entradas se utilizará para cada texel del bloque de 4x8.
CC_CHROMA (ideal para áreas de color complejas)
Un bloque de 4×8 texeles se representa mediante dos bits por texel para texturas opacas. Cada bloque almacena cuatro colores de 15 bits en formato RGB 555. Los cuatro colores se utilizan directamente, sin interpolación, para formar una tabla de búsqueda de cuatro entradas. El índice de 2 bits asignado a cada texel del bloque se utiliza para determinar cuál de los cuatro colores corresponde a cada texel. Cabe destacar que Colors4 solo se aplica a texturas opacas, ya que no admite transparencia.
CC_ALPHA (proporciona el mejor control sobre transparencias alfa complejas a cuatro bits por texel)
Un bloque de 4x8 texeles se representa con dos bits por texel para texturas opacas y transparentes. Cada bloque almacena tres colores de 20 bits en formato 5555. El primer y el segundo color de 20 bits se utilizan para los colores primarios del bloque izquierdo de 4x4, mientras que el segundo y el tercero se utilizan para los colores primarios del bloque derecho de 4x4. Se crean dos colores adicionales en cada bloque mediante interpolación entre los dos colores primarios. A cada texel del bloque se le asigna un índice de 2 bits y se utiliza una tabla de búsqueda para determinar qué color se aplica a cada uno.

Véase también

Referencias

  1. 1 2 3 4
    • Documento técnico sobre compresión de texturas 3dfx FXT1
  2. 1 2 3 4 5
    • Berillo, Aleksey (2001). Compresión de texturas S3TC y FXT1 en Digit-life.
  3. S2TC: Una posible solución alternativa para la situación de la patente S3TC. Archivado el 13 de mayo de 2016 en Wayback Machine en phoronix.
  4. Documentos presentados ante la SEC , Formulario 8-K: Quiebra o administración judicial. Archivado el 27 de agosto de 2017 en Wayback Machine , actualizado el 21 de octubre de 2002, consultado el 28 de agosto de 2024.
  5. "3dfx anuncia tres iniciativas importantes para proteger a los acreedores y maximizar el valor para los accionistas" . 15 de diciembre de 2000. Archivado del original el 5 de abril de 2001. Consultado el 28 de agosto de 2024 .
  6. David Chrait (2015). "Uso de la compresión de texturas ASTC para recursos de juegos" . developer.nvidia.com . Archivado del original el 29 de marzo de 2015. Consultado el 28 de agosto de 2024 .