3 points par GN⁺ 2025-02-03 | 1 commentaires | Partager sur WhatsApp
  • BZip3 est le successeur de BZip2 et offre un meilleur taux de compression ainsi que de meilleures performances.
  • Il utilise un codeur entropique de mélange de contextes Order-0, un code rapide de transformation de Burrows-Wheeler, ainsi que des passes RLE et Lempel Ziv+Prediction basées sur l’appariement de chaînes de style LZ77 et la modélisation de contexte de style PPM.
  • Il excelle pour la compression de texte ou de code.
  • Benchmark du code source Perl
    • Après avoir téléchargé et décompressé toutes les versions de Perl5, des tests de compression ont été effectués sur les fichiers .tar avec différents compresseurs.
    • BZip3 montre de meilleures performances de compression que les autres compresseurs dans diverses configurations.
    • Pour le temps de décompression également, BZip3 affiche d’excellentes performances grâce au traitement parallèle.
  • Clause de non-responsabilité
    • Aucune responsabilité n’est assumée en cas de perte de données liée à l’utilisation de BZip3.
    • Les performances de BZip3 dépendent fortement du compilateur, et une build x64 Linux clang13 peut atteindre jusqu’à 17MiB/s en compression et 23MiB/s en décompression par thread.
    • Testé sur diverses architectures : x86, x86_64, armv6, armv7, aarch64, mips, sparc, etc.
  • Licence
    • BZip3 est distribué sous licence LGPLv3.
    • Le code de la transformation de Burrows-Wheeler et de LZP est sous licence Apache 2.0.
    • Les autres composants de compilation et d’exécution suivent leurs licences respectives.

1 commentaires

 
GN⁺ 2025-02-03
Avis Hacker News
  • J’ai implémenté le Burrows-Wheeler Transform plusieurs fois, mais il reste difficile d’avoir une intuition claire de pourquoi cela fonctionne
    • Cet algorithme est toujours impressionnant
  • Partage des résultats d’un benchmark de compression sur du code source Perl
    • Comparaison des temps de compression et de décompression ainsi que de l’usage mémoire de xz, bzip2, bzip3, zstd
    • La différence d’utilisation mémoire est notable : 8M contre 18301M
  • L’auteur qui a écrit un programme dans le langage de programmation difficile appelé Malbolge est vraiment remarquable
  • J’ai déjà recompressé des données avec bzip, avant de réaliser plus tard que ce format était devenu obsolète et difficile à décompresser
    • J’utilise désormais des formats inefficaces qui ont plus de chances de durer longtemps
  • Les améliorations autour de BWT sont excellentes
    • Je pense qu’il y a un fort potentiel pour améliorer la compression « longue portée »
    • Il faut pouvoir trouver efficacement les similarités dans des jeux de données de plusieurs Go
  • Petite demande : écrire un en-tête ou un bloc de fin qui enregistre l’efficacité de la compression
    • bzip2 ne le fait pas, mais gzip oui
  • Il est étrange que bzip3 ne figure pas encore dans les benchmarks de compression de gros textes
  • Question sur la comparaison avec des compresseurs basés sur BWT
  • L’idée est proposée de compresser d’abord les longues répétitions de l’entrée, puis de ne faire passer que les blocs littéraux par le BWT
    • Cette méthode pourrait être moins bonne que la modélisation de contexte de base de PPM ou Brotli
  • Les algorithmes de forte compression sont un domaine très spécialisé
    • Utiliser zstd ou brotli avec des réglages faibles peut accélérer les choses en réduisant les transferts réseau ou de stockage
    • Avec la quantité de RAM moderne, zstd et brotli peuvent exploiter des correspondances à longue distance