Gráficos por Computadora

Algoritmos de Compresión de Imágenes: Con Pérdida vs. Sin Pérdida

Una exploración matemática y algorítmica sobre la compresión de imágenes, incluyendo la transformada de coseno discreta de JPEG, DEFLATE de PNG y WebP.

El Mecanismo de la Compresión de Imágenes

La compresión de imágenes reduce el coste de almacenamiento y transmisión de imágenes digitales. Es un componente crítico de la arquitectura web, representando un balance entre la fidelidad visual y los tiempos de carga de las páginas.

Compresión con Pérdida (Lossy) y la Transformada de Coseno Discreta

Los algoritmos con pérdida logran reducciones de tamaño extremas descartando permanentemente detalles que son menos perceptibles para el ojo humano. El formato JPEG es el principal ejemplo.

El proceso de compresión JPEG consta de varios pasos matemáticos clave:

  1. Conversión de Espacio de Color: La imagen se convierte de RGB a YCbCr (Luminancia y canales de crominancia). Dado que el ojo humano es más sensible a la luz (Luminancia) que al color (Crominancia), los canales de crominancia se pueden submuestrear para reducir su resolución a la mitad.
  2. Transformada de Coseno Discreta (DCT): La imagen se divide en bloques de 8x8 píxeles. La DCT convierte estos valores espaciales de píxeles en coeficientes de frecuencia, aislando los detalles finos de los degradados suaves.
  3. Cuantificación: Este es el paso clave donde ocurre la pérdida. Los coeficientes DCT se dividen por una matriz de cuantificación y se redondean a enteros, eliminando los detalles de alta frecuencia al convertirlos a cero.
  4. Codificación de Entropía: El resultado se comprime de forma sin pérdida usando la codificación Huffman.

Compresión sin Pérdida (Lossless): Conservando cada Píxel

La compresión sin pérdida permite reconstruir la imagen original de forma idéntica byte a byte. Es ideal para gráficos, capturas con texto y logotipos. El formato PNG es el más utilizado.

El formato PNG se basa en el algoritmo DEFLATE, que combina dos técnicas:

Antes de comprimir, PNG aplica un paso de **filtrado** espacial que predice el color de un píxel basándose en sus vecinos y guarda sólo la diferencia (delta), lo que facilita enormemente el trabajo de DEFLATE.

WebP: Lo Mejor de Ambos Mundos

Desarrollado por Google, WebP es un formato moderno que soporta compresión con y sin pérdida. Utiliza codificación predictiva basada en el códec de vídeo VP8 para predecir bloques de píxeles a partir de sus vecinos. WebP sin pérdida ofrece archivos un 26% más pequeños que PNG, y con pérdida resulta un 25-34% más pequeño que los JPEGs equivalentes.