La compresión de datos es un conjunto de pasos para empaquetar los datos en un espacio más pequeño, al tiempo que permite volver a ver los datos originales. La compresión es un proceso bidireccional: un algoritmo de compresión puede utilizarse para reducir el tamaño de un paquete de datos, pero también puede ejecutarse en sentido contrario, para descomprimir el paquete a su forma original. La compresión de datos es útil en informática para ahorrar espacioen el disco o para reducir el ancho de banda utilizado al enviar datos (por ejemplo, a través de Internet).

¿Qué es la compresión de datos?

La compresión consiste en representar la información con menos bits aprovechando patrones, redundancias o características perceptuales de los datos. El objetivo puede ser conservar exactamente los datos originales (compresión sin pérdida) o permitir cierta pérdida de información irrelevante para el usuario a cambio de mayores tasas de reducción (compresión con pérdida).

Tipos principales

  • Compresión sin pérdida (lossless): permite reconstruir exactamente los datos originales. Es imprescindible en textos, programas, bases de datos y archivos que requieran integridad. Ejemplos: ZIP, gzip, PNG, FLAC.
  • Compresión con pérdida (lossy): sacrifica parte de la información poco perceptible para lograr mayores tasas de compresión. Es común en imágenes, audio y vídeo donde se prioriza la experiencia perceptual. Ejemplos: JPEG, MP3, AAC, H.264.

Principales algoritmos y técnicas

  • Codificación estadística: Huffman, codificación aritmética. Asignan códigos más cortos a símbolos más frecuentes.
  • Técnicas basadas en diccionarios: LZ77, LZ78, LZW. Reemplazan secuencias repetidas por referencias a entradas de un diccionario.
  • Transformaciones: Transformada de Burrows–Wheeler (BWT), transformadas de coseno/discreta usadas en JPEG y códecs de vídeo para concentrar energía en pocos coeficientes.
  • Compresión por predicción: se predice el siguiente valor y se codifica la diferencia (residuo). Muy usada en audio e imagen (por ejemplo, PNG usa predicción + DEFLATE).
  • Compresión perceptual: modelos psicoacústicos o psicovisuales que eliminan información no apreciable por el oído o la vista (MP3, AAC, JPEG, códecs de vídeo).
  • Algoritmos modernos: DEFLATE (gzip, PNG), Brotli (web), LZMA (7z), Brotli y Zstd (equilibrio velocidad/ratio), Bzip2 (BWT).

Medidas y métricas

  • Ratio de compresión: relación entre el tamaño original y el tamaño comprimido. Por ejemplo, ratio = tamaño original / tamaño comprimido. Un ratio de 4:1 indica que el archivo comprimido es cuatro veces más pequeño.
  • Porcentaje de ahorro: = (1 - tamaño_comprimido / tamaño_original) × 100 %. Ejemplo: original 10 MB, comprimido 2 MB → ahorro = (1 - 2/10)=0,8 → 80 %.
  • Velocidad: tiempo de compresión y descompresión. Importante en aplicaciones en tiempo real o transmisión en streaming.
  • Uso de memoria y CPU: algunos algoritmos requieren mucha memoria para altos ratios (LZMA, BWT).
  • Latencia y streaming: si se necesita transmitir datos mientras se comprime, se prefieren algoritmos que soporten procesamiento en bloques o streaming.

Ejemplos prácticos

  • Texto/JSON/CSV: compresión sin pérdida con gzip, Brotli o ZIP; suelen obtenerse ratios altos cuando hay repetición o estructuras predecibles.
  • Imágenes: PNG (lossless) para gráficos con áreas uniformes; JPEG (lossy) para fotografías con buen compromiso calidad/tamaño.
  • Audio: FLAC (lossless) para archivado, MP3/AAC/Opus (lossy) para streaming y almacenamiento con menor tamaño.
  • Vídeo: H.264/H.265/VP9/AV1 (lossy por defecto) para transmisión de vídeo; la elección depende de compatibilidad, calidad y eficiencia.
  • Archivos comprimidos: ZIP, 7z, tar.gz; 7z (LZMA) suele ofrecer mejores ratios a costa de más tiempo y memoria.

Caso práctico — cálculo rápido

Si tienes un archivo original de 12 MB y al comprimirlo queda en 3 MB:

  • Ratio = 12 / 3 = 4 → 4:1
  • Ahorro = (1 - 3/12) × 100 = 75 %

Ventajas y desventajas

  • Ventajas: ahorro de espacio, menor uso de ancho de banda, mejores tiempos de transferencia, posibilidad de cifrado + compresión.
  • Desventajas: tiempo de procesado, posible pérdida de calidad (en los métodos con pérdida), necesidad de elegir parámetros adecuados, compatibilidad entre herramientas/formatos.

Cuándo elegir lossless o lossy

  • Usa lossless si la integridad es crítica: código fuente, documentos legales, bases de datos, imágenes médicas, archivos de audio maestros.
  • Usa lossy cuando el consumo humano final es más importante que la fidelidad absoluta y se busca reducir significativamente el tamaño: distribución web de imágenes y vídeos, transmisión de audio, cámaras digitales destinadas a compartir contenido.

Consejos prácticos

  • Prueba varios formatos y niveles de compresión para encontrar el mejor compromiso entre tamaño y calidad.
  • Para web, usa formatos modernos: Brotli para texto (HTML/CSS/JS), WebP/AVIF para imágenes cuando sea posible.
  • Mantén copias originales si trabajas con compresión con pérdida y podrías necesitar la máxima calidad más adelante.
  • Considera el tiempo de descompresión en clientes/servidores y la compatibilidad con navegadores o reproductores.

La compresión de datos es una herramienta esencial en informática y comunicaciones. Conocer los distintos métodos, sus limitaciones y sus aplicaciones permite tomar decisiones informadas para optimizar almacenamiento y transferencia sin sacrificar lo que más importa: integridad o calidad perceptual.