Compresión Sin Pérdida: Definición, Algoritmos, Web Use
Compresión sin pérdida reduce archivos sin perder datos — original se reconstruye exactamente. Algoritmos: gzip, Brotli, Zstd, LZ4, xz.
¿Qué es compresión sin pérdida?
Compresión sin pérdida (lossless) es la práctica de reducir tamaño de archivo preservando cada bit de los datos originales — la descompresión reconstruye el archivo exactamente. El opuesto es compresión con pérdida (lossy, usada para imágenes, audio, video), que descarta datos permanentemente.
Lossless es el estándar para datos donde la accuracy bit-perfecta importa: texto, código fuente, ejecutables, bases de datos, archives y respuestas HTTP.
Cómo funciona compresión lossless
- Dictionary coding (LZ77/LZ78): reemplazar strings repetidos con referencias.
- Entropy coding (Huffman, arithmetic): asignar códigos bit más cortos a símbolos más frecuentes.
Algoritmos compresión lossless comunes
| Algoritmo | Velocidad | Ratio compresión | Mejor para |
|---|---|---|---|
| gzip / DEFLATE | Rápido | Moderado | HTTP, tar.gz, zip |
| Brotli | Medio | Mejor que gzip (~20%) | Respuestas HTTP |
| Zstandard (Zstd) | Muy rápido | Mejor que gzip | Real-time, log archives |
| LZ4 | Más rápido | Ratio menor | Streams real-time |
| xz / LZMA | Lento | Mejor ratio | Source archives |
| bzip2 | Lento | Mejor que gzip | Archives legacy |
| Snappy | Muy rápido | Ratio menor | BigTable, RPC |
Lossless vs lossy compression
| Aspecto | Lossless | Lossy |
|---|---|---|
| Reconstrucción | Bit-perfecta | Aproximada |
| Casos uso | Texto, código, datos | Imágenes, audio, video |
| Ejemplos | gzip, Brotli, PNG, FLAC | JPEG, MP3, H.264 |
| Ratio compresión | 2-10× | 10-100× |
| ¿Reversible? | Sí | No |
Compresión lossless en la web
GET / HTTP/1.1
Accept-Encoding: br, gzip, deflate
HTTP/1.1 200 OK
Content-Encoding: br
Content-Type: text/html| Encoding | Soporte navegador | Ratio compresión (HTML/JS) |
|---|---|---|
| gzip | Universal | ~70% reducción |
| Brotli | ~96% navegadores | ~75% reducción |
| Zstd | Chrome 122+, creciendo | Similar a Brotli, más rápido |
Cuándo usar qué compressor
Respuestas HTTP
Brotli para estático. Nivel 11 para estático; nivel 4-6 para dinámico.
Streaming real-time
LZ4 o Snappy.
Archives long-term
xz/LZMA o Zstd a nivel alto.
Logs in motion
Zstd con dictionary compartido.
Mejores prácticas compresión lossless
- Comprimir at build time cuando posible.
- Usar Brotli sobre gzip.
- No doble-comprimir.
- Elegir nivel para caso uso.
- Dictionaries compartidos para payloads similares.
- Medir ratio y CPU.
- Comprimir antes de encriptar.
- Cachear respuestas comprimidas.
Compresión en formatos populares
| Formato | Compresión | ¿Lossless? |
|---|---|---|
| PNG | DEFLATE | Sí |
| WebP | VP8/VP9 | Ambos modos |
| FLAC | Custom | Sí (audio) |
| ZIP | DEFLATE | Sí |
| tar.gz | gzip | Sí |
| Parquet | Snappy/gzip/Zstd | Sí |
FAQ: compresión lossless
¿Cuál es el mejor compressor lossless?
Depende del tradeoff. Mejor ratio: xz/LZMA. Mejor balance: Zstd.
¿Por qué mi archivo no se hace más pequeño tras comprimir?
Datos ya comprimidos no tienen redundancia explotable.
¿Debería comprimir JSON?
Sí — JSON tiene alta redundancia.
¿Qué sobre imágenes: PNG vs JPEG?
PNG es lossless. JPEG es lossy.
¿Es Brotli mejor que gzip?
Sí — típicamente 15-25% payloads más pequeños.
¿Puede compresión ayudar performance website?
Sí — HTML/CSS/JS comprimido reduce tiempo transferencia.
¿Relación entre compresión y encriptación?
Comprimir primero, luego encriptar.
Testea performance payloads comprimidos con LoadFocus
LoadFocus corre scripts JMeter y k6 que miden tamaños response y TTFB desde 25+ regiones. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.