Apa yang terjadi dengan bzip1?

40

bzip2 telah menjadi standar de facto untuk kompresi yang cukup kuat selama bertahun-tahun. Saya sendiri telah mengetik bzip2perintah ribuan kali sejauh ini, yang membuat saya bertanya-tanya - apa yang terjadi dengan bzip, atau bzip1? Google sepertinya tidak banyak memberi tahu saya tentang hal itu dan sepertinya itu bisa menjadi pelajaran sejarah yang menarik.

d33tah
sumber

Jawaban:

32

Tampaknya dokumen asli bzipditarik sekitar tahun 1998 karena masalah paten dengan kompresi aritmatika yang digunakan. Sedikit penggalian (benar-benar hanya membaca Wikipedia) muncul diarsipkan tautan ke bzip2situs web dari sekitar waktu ini .

Berikut adalah bagian yang relevan merinci perbedaan ini dan lainnya:

Bagaimana kaitannya dengan penawaran Anda sebelumnya (bzip-0.21)?

bzip2 adalah versi 0.21 yang ditulis ulang dan direkayasa ulang. Ini terlihat sangat mirip, tetapi hampir seluruhnya ditulis ulang (beberapa kali :-). Perbedaan penting adalah:

  • Bebas paten! (Saya harap; lihat pernyataan di atas). bzip-0.21 menggunakan kode aritmatika; bzip2 menggunakan Huffman coding, yang umumnya dianggap tidak bermasalah dari sudut pandang paten. Kedua program didasarkan pada transformasi Burrows-Wheeler, tetapi, setahu saya, itu juga tidak dipatenkan.

  • Lebih cepat, terutama saat dekompresi. bzip2 mendekompresi lebih dari 50% lebih cepat dari 0,21, sebagian besar karena penggunaan pengkodean Huffman. Saya juga telah meningkatkan kecepatan kompresi, meskipun tidak terlalu banyak - mungkin kompresinya 30% lebih cepat dari 0,21.

  • Pemulihan dari kesalahan media. Kedua program kompres data dalam blok, secara default, panjang 900k. Dengan bzip2, setiap blok ditangani sepenuhnya secara independen, membawa checksum sendiri, dan dibatasi oleh urutan 48-bit. Jadi, jika Anda memiliki file terkompresi yang rusak, bzip2 dapat mengekstrak blok terkompresi, mendeteksi yang tidak rusak, dan mendekompresnya.

  • Mode uji. Anda dapat menguji integritas file terkompresi tanpa harus mendekompresnya. Saya seharusnya meletakkan ini di 0,21, sungguh, tetapi terlalu malas (+ terbakar dengan peretasan pada saat saya merilisnya).

  • Menangani file yang sangat berulang jauh lebih baik. File-file tersebut adalah kasus terburuk untuk kompresor penyortiran blok. bzip2 berjalan kira-kira sepuluh kali lebih cepat dari 0,21 untuk file seperti itu.

  • Dukungan untuk mesin yang lebih kecil. bzip2 dapat mendekompres file apa pun yang dibuatnya dalam 2300k, yang berarti Anda dapat mendekompres file pada mesin 4-meg. Penggunaan memori puncak selama kompresi juga berkurang sekitar 900k dibandingkan dengan 0,21, menjadi sekitar 6400k.

  • Penanganan bendera yang lebih baik. Khususnya, bendera panjang (--seperti --ini) didukung, yang membuatnya lebih mudah digunakan.

  • Pesan startup satu baris yang dicetak 0,21, hilang. Ini adalah fitur yang paling dikeluhkan 0.21. Itu bahkan mengganggu saya saat ini.

Saya tidak lagi mendistribusikan 0,21, karena hal itu akan melanggengkan masalah paten, yang memastikan bahwa program tidak akan pernah digunakan secara luas. Sayang sekali, karena ini program yang bermanfaat, dan banyak orang sepertinya menyukainya. Jika Anda sudah menggunakan 0,21, harap tingkatkan ke bzip2. Sayangnya, saya tidak dapat membuat bzip2 dapat mendekompresi file .bz 0,21, karena itu akan membuat latihan penghindaran paten menjadi sia-sia. Saya tahu mengubah format file itu menyakitkan; mulai sekarang, saya akan mencoba dan membuat perubahan lebih lanjut dengan cara yang kompatibel mundur.

Juga merupakan tautan ke versi bzipkode sumber hanya dekompresi untuk siapa pun yang ingin bermain dengannya.

Graeme
sumber
5
Saya mungkin punya bzip asli pada beberapa arsip cadangan di suatu tempat. Saya biasa menggunakannya secara luas, dan menemukan beralih ke bzip2 mengganggu. Pada kebanyakan file, bzip memperoleh rasio kompresi yang lebih baik.
Jules