EN JA ZH ES

Algoritmos de compresión de imagen en profundidad - DCT, transformada wavelet y codificación predictiva

· 9 min de lectura

Principios fundamentales de la compresión de imágenes - Eliminación de redundancia y visión humana

La compresión de imágenes reduce el tamaño de los archivos eliminando la redundancia en los datos de imagen. Las imágenes sin comprimir contienen datos enormes - una imagen de 4000x3000px a 24 bits de color ocupa 36MB en bruto, reducible a 2-5MB con compresión JPEG.

Tipos de redundancia en datos de imagen:

  • Redundancia espacial: Los píxeles adyacentes frecuentemente tienen colores similares (cielo azul, paredes blancas). Explotar esta correlación registrando solo diferencias reduce los datos
  • Redundancia estadística: Las frecuencias de valores son desiguales. La codificación de entropía asigna secuencias de bits cortas a valores frecuentes y secuencias largas a valores raros
  • Redundancia visual (psicovisual): Los ojos humanos son insensibles a componentes de alta frecuencia (texturas finas) y cambios sutiles de crominancia. Eliminar información imperceptible apenas afecta la calidad percibida - el principio de la compresión con pérdida

Clasificación de algoritmos: Sin pérdida (PNG Deflate, WebP Lossless) logra ratios 2:1-3:1 con reconstrucción perfecta. Con pérdida (JPEG DCT, WebP VP8, AVIF AV1) logra 10:1-50:1+ eliminando información imperceptible. La compresión moderna sigue un pipeline de tres etapas: Transformación, Cuantización y Codificación de Entropía, cada una eliminando diferentes tipos de redundancia.

DCT (Transformada Coseno Discreta) - Tecnología central detrás de JPEG

La DCT es la transformación matemática en el núcleo de la compresión JPEG. Convierte imágenes del dominio espacial (valores de píxel) al dominio de frecuencia (intensidades de componentes de frecuencia), permitiendo la eliminación eficiente de componentes de alta frecuencia invisibles al ojo humano.

Flujo de procesamiento DCT en JPEG:

  • División en bloques: Divide la imagen en bloques de 8x8 píxeles procesados independientemente. El tamaño 8x8 equilibra eficiencia computacional y de compresión
  • Transformada DCT: Aplica DCT 2D a cada bloque, convirtiéndolo en 64 coeficientes de frecuencia. El coeficiente superior izquierdo (componente DC) representa el brillo promedio del bloque; el inferior derecho representa altas frecuencias
  • Cuantización: Divide cada coeficiente por los valores de la tabla de cuantización, truncando decimales. Las frecuencias más altas usan divisores mayores, anulando muchos coeficientes de alta frecuencia. Esta etapa con pérdida se controla mediante ajustes de calidad
  • Escaneo zigzag: Reordena los 64 coeficientes de baja a alta frecuencia en patrón zigzag, concentrando los ceros al final del array
  • Codificación de entropía: Combina codificación de longitud de ejecución (contando ceros consecutivos) con codificación Huffman para el flujo de bits final

La DCT es reversible - la DCT inversa (IDCT) reconstruye perfectamente los valores originales antes de la cuantización. La cuantización es el único paso con pérdida en todo el pipeline JPEG.

Transformada wavelet - Base de JPEG 2000 y compresión de próxima generación

La transformada wavelet fue desarrollada para superar las limitaciones de la DCT. Se usa en JPEG 2000, algunos modos de HEIF e imágenes médicas (DICOM). Mientras la DCT procesa bloques fijos de 8x8, la transformada wavelet descompone imágenes completas en múltiples resoluciones.

Cómo funciona la transformada wavelet:

  • Descomposición multirresolución: Separa la imagen en componentes de aproximación (baja frecuencia) y detalle (alta frecuencia). El filtrado horizontal y vertical produce cuatro subbandas: LL, LH, HL, HH
  • Descomposición recursiva: Aplica recursivamente la misma descomposición a la subbanda LL. Típicamente 3-5 niveles, representando jerárquicamente desde la estructura gruesa hasta el detalle fino
  • Cuantización y codificación: Cuantiza los coeficientes de subbanda y comprime con codificación avanzada como EBCOT

Ventajas sobre la DCT: Sin artefactos de bloque (procesa la imagen completa), visualización progresiva (transmite de baja a alta resolución incrementalmente), codificación ROI (preserva selectivamente la calidad en regiones específicas). JPEG 2000 usa wavelet CDF 9/7 (con pérdida) y wavelet CDF 5/3 (sin pérdida) con coeficientes de filtro optimizados para imágenes.

Codificación predictiva y predicción intra - Compresión de alta eficiencia AV1/HEVC

La codificación predictiva predice los valores de píxeles actuales a partir de píxeles adyacentes ya procesados, codificando solo el residuo de predicción (diferencia). Predicciones más precisas producen residuos más pequeños y mayor compresión. Este es el núcleo de la compresión AVIF (AV1) y HEIF (HEVC).

Mecanismo de predicción intra:

  • Modos de predicción direccional: AV1 tiene 56 modos direccionales (HEVC tiene 35). Extrapola píxeles de bloques adyacentes en varios ángulos (horizontal, vertical, diagonal 45/22.5 grados) al bloque actual. Seleccionar modos que coincidan con las direcciones de los bordes minimiza los residuos
  • Predicción DC: El modo más simple que predice todo el bloque con el promedio de píxeles adyacentes. Efectivo para regiones uniformes
  • CfL (Chroma from Luma): Tecnología específica de AV1 que predice la crominancia desde el canal de luminancia. La alta correlación luma-croma reduce drásticamente los residuos de croma

Por qué AV1 logra alta eficiencia: Tamaños de bloque variables (4x4 a 128x128, divididos recursivamente), 56 direcciones de predicción intra, selección adaptativa de tipo de transformada (DCT, ADST, Identity), filtros de bucle (deblocking, CDEF, Loop Restoration) y codificación de entropía ANS.

Codificación de entropía - Principios de codificación Huffman y aritmética

La codificación de entropía es la etapa final que elimina la redundancia estadística. Asigna secuencias de bits de longitud variable basadas en la probabilidad de ocurrencia de símbolos, acercándose al tamaño mínimo teórico (entropía de Shannon).

Principales métodos de codificación de entropía:

  • Codificación Huffman: Usada en JPEG. Asigna códigos prefijo de longitud variable basados en probabilidad. Los símbolos frecuentes obtienen códigos cortos (2 bits), los raros obtienen códigos largos (12 bits). Simple y rápida pero requiere mínimo 1 bit por símbolo, sin alcanzar el límite teórico
  • Codificación aritmética: Usada en JPEG 2000, H.264 CABAC. Representa toda la secuencia de símbolos como un único número en el intervalo 0-1. 5-10% mejor compresión que Huffman pero mayor costo computacional
  • ANS (Asymmetric Numeral Systems): Usada en AV1, Zstandard. Logra compresión de codificación aritmética a velocidad cercana a Huffman. Caracterizada por codificación/decodificación asimétrica (estructura LIFO)
  • Modelado de contexto: Actualiza dinámicamente los modelos de probabilidad basándose en símbolos circundantes. CABAC usa información de bloques adyacentes para predecir la probabilidad del símbolo actual, mejorando la eficiencia de codificación

Fórmula de entropía de Shannon: H = -Σ p(x) * log2(p(x)) representa el mínimo teórico de bits por símbolo. Probabilidad igual (50/50) produce 1 bit/símbolo; probabilidad 99/1 produce ~0.08 bits/símbolo permitiendo compresión dramática.

Métricas de calidad de compresión - Diferencias y uso de PSNR, SSIM y VMAF

Existen múltiples métricas para evaluar objetivamente la calidad de compresión, cada una midiendo diferentes aspectos. Seleccionar métricas apropiadas permite la optimización de parámetros de compresión y comparaciones justas entre formatos.

Principales métricas de calidad:

  • PSNR: Métrica clásica calculada a partir de diferencias de valores de píxel (MSE). PSNR = 10 * log10(MAX^2 / MSE) en dB, mayor es mejor. Generalmente 30dB+ es aceptable, 40dB+ es alta calidad. Simple y rápida pero no siempre coincide con la percepción humana (no detecta distorsión estructural)
  • SSIM: Imita el sistema visual humano, evaluando similitud de luminancia, contraste y estructura. Valores 0-1, siendo 1 idéntico. 0.95+ es perceptualmente equivalente. Más precisa perceptualmente que PSNR, la más usada para comparación de calidad de compresión
  • VMAF: Métrica basada en ML desarrollada por Netflix que combina múltiples características (VIF, DLM, Motion). Mayor correlación con evaluación subjetiva humana (MOS). Valores 0-100, 93+ es excelente. Más fuerte para video pero aplicable a imágenes fijas
  • Butteraugli: Métrica perceptual desarrollada por Google que modela la sensibilidad a frecuencias espaciales y efectos de enmascaramiento, detectando diferencias mínimas perceptibles por humanos. Usada en el control de calidad de JPEG XL

Selección práctica: SSIM para comparación masiva rápida, VMAF para la calidad perceptual más precisa, Butteraugli para ajuste automático de parámetros. Se recomienda combinar múltiples métricas para un juicio integral.

Artículos relacionados

Compresión de imágenes explicada - Cómo funcionan JPEG, PNG y WebP

Explicación técnica de los algoritmos de compresión de JPEG, PNG y WebP. Aprende las diferencias entre compresión con pérdida y sin pérdida, cuándo usar cada formato y cómo optimizar imágenes para la web.

Comparación de formatos de imagen - Características y casos de uso de JPEG/PNG/WebP/AVIF/GIF/BMP

Comparación completa de las características, eficiencia de compresión y casos de uso de los principales formatos de imagen. Desde formatos tradicionales hasta la nueva generación, con una guía de selección óptima según el uso.

Transformada Wavelet y JPEG 2000 - Análisis multirresolución para compresión de imágenes

Desde los principios de la transformada wavelet hasta los algoritmos de compresión JPEG 2000. Cubre DWT, codificación de subbandas y mecanismos EBCOT con ejemplos prácticos.

Fundamentos del análisis en dominio de frecuencia - Comprender la frecuencia espacial y el espectro

Explicación sistemática de los conceptos fundamentales del análisis de imágenes en el dominio de frecuencia. Cubre frecuencia espacial, transformada de Fourier, interpretación del espectro y aplicaciones del procesamiento frecuencial.

Compresión sin pérdida vs con pérdida - Cómo elegir la compresión de imagen correcta

Compara mecanismos, características y casos de uso de compresión sin pérdida y con pérdida para elegir el método de compresión óptimo para tus imágenes.

Filtrado de Fourier para eliminación de ruido - Procesamiento de imágenes en el dominio de frecuencia

Explicación sistemática de las técnicas de eliminación de ruido mediante la transformada de Fourier. Cubre filtros paso bajo, paso alto, filtros notch, filtro de Wiener e implementación en Python.

Términos relacionados