3 poin oleh GN⁺ 2025-02-03 | 1 komentar | Bagikan ke WhatsApp
  • BZip3 adalah penerus BZip2, yang menawarkan rasio kompresi dan performa lebih tinggi.
  • Menggunakan order-0 context mixing entropy coder, kode Burrows-Wheeler transform yang cepat, serta pass RLE dan Lempel Ziv+Prediction berbasis pencocokan string gaya LZ77 dan pemodelan konteks gaya PPM.
  • Sangat unggul untuk kompresi teks atau kode.
  • Benchmark kode sumber Perl
    • Setelah mengunduh dan mengekstrak semua versi Perl5, dilakukan pengujian kompresi file .tar menggunakan berbagai kompresor.
    • BZip3 menunjukkan performa kompresi yang lebih baik dibanding kompresor lain dalam berbagai pengaturan.
    • Dalam waktu dekompresi juga, BZip3 menunjukkan performa unggul melalui pemrosesan paralel.
  • Penyangkalan
    • Tidak bertanggung jawab atas kehilangan data akibat penggunaan BZip3.
    • Performa BZip3 sangat bergantung pada compiler, dan build x64 Linux clang13 dapat mencapai kompresi hingga 17MiB/s per thread serta dekompresi 23MiB/s.
    • Diuji di berbagai arsitektur: x86, x86_64, armv6, armv7, aarch64, mips, sparc, dan lainnya.
  • Lisensi
    • BZip3 dilisensikan di bawah LGPLv3.
    • Kode Burrows-Wheeler transform dan LZP menggunakan lisensi Apache 2.0.
    • Komponen lain saat compile-time dan runtime mengikuti lisensinya masing-masing.

1 komentar

 
GN⁺ 2025-02-03
Komentar Hacker News
  • Sudah beberapa kali mengimplementasikan Burrows-Wheeler Transform, tetapi intuisi tentang mengapa ini bekerja masih sulit dipahami
    • Algoritma ini selalu mengesankan
  • Membagikan hasil benchmark kompresi untuk kode sumber Perl
    • Membandingkan waktu kompresi dan dekompresi serta penggunaan memori xz, bzip2, bzip3, zstd
    • Perbedaan penggunaan memorinya patut diperhatikan: 8M vs 18301M
  • Penulis yang membuat program dalam bahasa pemrograman sulit bernama Malbolge benar-benar luar biasa
  • Dulu pernah mengompresi ulang data dengan bzip, tetapi belakangan sadar bahwa format ini menjadi usang dan sulit didekompresi
    • Sekarang menggunakan format yang tidak efisien tetapi akan bertahan lama
  • Peningkatan BWT sangat bagus
    • Ada potensi besar untuk peningkatan kompresi "jarak jauh"
    • Perlu cara yang efisien untuk menemukan kemiripan dalam set data multi-GB
  • Ada permintaan kecil agar ditambahkan header atau blok ekor yang mencatat efisiensi kompresi
    • bzip2 tidak melakukannya, tetapi gzip melakukannya
  • Aneh bahwa bzip3 masih belum tercantum dalam benchmark kompresi teks besar
  • Ada pertanyaan tentang perbandingan dengan kompresor berbasis BWT
  • Diusulkan ide untuk lebih dulu mengompresi pengulangan panjang pada input, lalu hanya memproses blok literal melalui BWT
    • Metode ini mungkin lebih buruk daripada pemodelan konteks dasar pada PPM atau Brotli
  • Algoritma kompresi tingkat tinggi adalah bidang yang sangat khusus
    • Menggunakan zstd atau brotli pada pengaturan rendah dapat mengurangi transfer jaringan atau penyimpanan sehingga mempercepat proses
    • Dengan kapasitas RAM modern, zstd dan brotli dapat memanfaatkan kecocokan jarak jauh