1. Reducción de la paleta: Los GIF se limitan a un máximo de 256 colores. Este es un primer paso crucial. El algoritmo analiza los colores del mapa de bits y selecciona los 256 colores más representativos para crear una paleta de colores. Cualquier color en el mapa de bits original que no coincida exactamente con uno de estos 256 colores se aproxima al color más cercano en la paleta. Aquí es donde una pérdida de información visual menor * puede ocurrir *, dependiendo de la complejidad de la imagen, aunque no se considera la compresión con pérdida de la misma manera que JPEG. Cuanto menos colores, mejor será la compresión.
2. LZW Compresión: Después de reducir la imagen a su paleta, la compresión real ocurre. LZW es un algoritmo basado en el diccionario. Funciona construyendo un diccionario de repeticiones de secuencias de color. En lugar de almacenar cada píxel individualmente, almacena punteros a estas secuencias en el diccionario. Cuanto más largas son las secuencias de repetición, más eficiente será la compresión.
Imagine una simple línea horizontal de píxeles rojos. En lugar de almacenar "rojo, rojo, rojo, rojo ...", LZW podría almacenar algo como "secuencia una repetida 4 veces", donde "la secuencia A" se define en su diccionario interno como "rojo". Esto reduce significativamente la cantidad de datos necesarios para representar la imagen.
3. Almacenando los datos: El archivo GIF final contiene:
* encabezado: Información sobre la imagen, como sus dimensiones y paleta.
* Table de color global (paleta): Los 256 colores utilizados en la imagen.
* Datos de imagen: Los datos de píxeles comprimidos, utilizando las secuencias codificadas por LZW.
Por qué GIF no es ideal para todas las imágenes:
* Paleta de colores limitada: La limitación de 256 colores hace que los GIF no sean adecuados para imágenes con gradientes lisos o muchos colores. A menudo parecen bloqueos o postergados.
* Sin canal alfa: Los GIF no admiten inherentemente la transparencia más allá de un solo color de transparencia global. Si bien GIF89A permite píxeles transparentes, solo admite un color transparente.
* No es ideal para fotografía: Debido a su naturaleza con pérdida en la fase de reducción de color y la paleta de colores limitados, los GIF no son la mejor opción para las fotos. Resultarían en una pérdida significativa de calidad de imagen en comparación con JPEG o PNG.
En resumen, la compresión de GIF funciona reduciendo significativamente la información de color y luego utilizando un algoritmo basado en el diccionario (LZW) para codificar eficientemente los datos de píxeles restantes, logrando un tamaño de archivo más pequeño a costo de perder la precisión de color a veces. Es un método sin pérdidas en términos de los datos * después de la cuantificación del color *, pero la reducción de color inicial introduce una pérdida menor dependiendo de la complejidad de la imagen.