3 puntos por GN⁺ 2025-02-03 | 1 comentarios | Compartir por WhatsApp
  • BZip3 es el sucesor de BZip2 y ofrece una mayor tasa de compresión y mejor rendimiento.
  • Usa un codificador entrópico de mezcla de contextos Order-0, código rápido de transformación Burrows-Wheeler, coincidencia de cadenas estilo LZ77 y pasadas de RLE y Lempel Ziv+Prediction basadas en modelado de contextos estilo PPM
  • Destaca en la compresión de texto o código.
  • Benchmark del código fuente de Perl
    • Después de descargar y descomprimir todas las versiones de Perl5, se probó la compresión de los archivos .tar usando varios compresores
    • BZip3 mostró mejor rendimiento de compresión frente a otros compresores en diversas configuraciones.
    • También en el tiempo de descompresión, BZip3 mostró un rendimiento sobresaliente mediante procesamiento en paralelo.
  • Descargo de responsabilidad
    • No se asume responsabilidad por la pérdida de datos derivada del uso de BZip3.
    • El rendimiento de BZip3 depende en gran medida del compilador, y la compilación x64 Linux clang13 puede alcanzar hasta 17MiB/s de compresión y 23MiB/s de descompresión por hilo.
    • Ha sido probado en varias arquitecturas: x86, x86_64, armv6, armv7, aarch64, mips, sparc, etc.
  • Licencia
    • BZip3 está licenciado bajo LGPLv3.
    • El código de Burrows-Wheeler transform y LZP tiene licencia Apache 2.0.
    • Otros componentes de configuración en tiempo de compilación y de ejecución siguen sus respectivas licencias.

1 comentarios

 
GN⁺ 2025-02-03
Comentarios en Hacker News
  • He implementado varias veces el Burrows-Wheeler Transform, pero sigue siendo difícil tener una intuición clara de por qué funciona
    • Este algoritmo siempre resulta impresionante
  • Comparte resultados de benchmarks de compresión sobre código fuente de Perl
    • Compara tiempos de compresión y descompresión, y uso de memoria de xz, bzip2, bzip3, zstd
    • La diferencia en uso de memoria es notable: 8M frente a 18301M
  • El autor que escribió un programa en un lenguaje de programación difícil llamado Malbolge es una persona realmente impresionante
  • En el pasado volvió a comprimir datos con bzip, pero después se dio cuenta de que ese formato se volvió obsoleto y que descomprimirlo terminó siendo difícil
    • Ahora usa formatos ineficientes que probablemente perduren por mucho tiempo
  • Las mejoras en BWT son excelentes
    • Cree que hay un gran potencial para mejorar la compresión de “larga distancia”
    • Hace falta encontrar similitudes de forma eficiente en conjuntos de datos de varios GB
  • Hay una pequeña petición de que se escriba un encabezado o bloque final que registre la eficiencia de compresión
    • bzip2 no lo hace, pero gzip sí
  • Resulta extraño que bzip3 todavía no aparezca listado en grandes benchmarks de compresión de texto
  • Hay una pregunta sobre la comparación con compresores basados en BWT
  • Se propone la idea de comprimir primero las repeticiones largas de la entrada y procesar con BWT solo los bloques literales
    • Este método podría ser peor que el modelado de contexto base de PPM o Brotli
  • Los algoritmos de alta compresión son un campo muy especializado
    • Usar zstd o brotli con configuraciones bajas puede reducir las transferencias por red o almacenamiento y así aumentar la velocidad
    • Con la cantidad de RAM moderna, zstd y brotli pueden aprovechar coincidencias de largo alcance