Che cosa è successo a bzip1?


40

bzip2 era stato di fatto uno standard per una compressione abbastanza forte già da molti anni. Io stesso ho digitato il bzip2comando migliaia di volte finora, il che mi fa meravigliare: cosa è successo a bzip o bzip1? Google non sembra parlarmene molto e sembra che potrebbe essere un'interessante lezione di storia.

Risposte:


32

Sembra che l'originale sia bzipstato tirato verso il 1998 a causa di problemi di brevetto con la compressione aritmetica utilizzata. Un po 'di scavo (in realtà solo leggendo Wikipedia) rivela un collegamento archiviato al bzip2sito web di questo periodo .

Ecco la sezione pertinente in dettaglio questa e altre differenze:

Come si collega alla tua offerta precedente (bzip-0.21)?

bzip2 è una versione riscritta e riprogettata di 0,21. Sembra superficialmente abbastanza simile, ma è stato quasi interamente riscritto (più volte :-). Le differenze importanti sono:

  • -Patent gratis! (Spero; vedi la dichiarazione sopra). bzip-0.21 utilizzava la codifica aritmetica; bzip2 utilizza la codifica Huffman, generalmente considerata non problematica dal punto di vista dei brevetti. Entrambi i programmi si basano sulla trasformazione di Burrows-Wheeler, ma, per quanto ne sappia, neanche questo è brevettato.

  • Più veloce, in particolare alla decompressione. bzip2 si decomprime più del 50% più velocemente di 0,21, principalmente a causa dell'uso della codifica Huffman. Ho anche migliorato la velocità di compressione, anche se non molto, forse comprime il 30% più velocemente di 0,21.

  • Ripristino da errori multimediali. Entrambi i programmi comprimono i dati in blocchi, per impostazione predefinita, 900k di lunghezza. Con bzip2, ogni blocco viene gestito in modo completamente indipendente, porta il proprio checksum ed è delimitato da una sequenza di 48 bit. Quindi, se hai un file compresso danneggiato, bzip2 può estrarre i blocchi compressi, rilevare quali non sono danneggiati e decomprimere quelli.

  • Modalità di prova. È possibile verificare l'integrità dei file compressi senza decomprimerli. Avrei dovuto metterlo in 0.21, davvero, ma ero troppo pigro (+ bruciato con l'hacking quando l'ho rilasciato).

  • Gestisce i file molto ripetitivi molto meglio. Tali file sono il caso peggiore per qualsiasi compressore di smistamento a blocchi. bzip2 viene eseguito circa dieci volte più veloce di 0,21 per tali file.

  • Supporto per macchine più piccole. bzip2 può decomprimere qualsiasi file creato in 2300k, il che significa che puoi decomprimere i file su macchine da 4 megapixel. Anche l'uso di memoria di picco durante la compressione è ridotto di circa 900k rispetto a 0,21, a circa 6400k.

  • Migliore gestione delle bandiere. In particolare, sono supportati flag lunghi (--like --questi), che ne facilitano l'utilizzo.

  • Il messaggio di avvio di una riga stampato in 0,21 è sparito. Questa era la caratteristica più lamentata di 0.21. Al giorno d'oggi mi dà persino fastidio .

Non sto più distribuendo 0.21, perché così facendo si perpetuano i problemi con i brevetti, il che garantisce che il programma non sarà mai ampiamente utilizzato. È un peccato, perché è un programma utile e a molte persone sembra piacere. Se usi già 0.21, esegui l'upgrade a bzip2. Purtroppo, non posso fare in modo che bzip2 sia in grado di decomprimere i file .bz di 0,21, poiché ciò renderebbe inutile l'esercizio di elusione dei brevetti. So che cambiare i formati di file è doloroso; d'ora in poi, proverò ad apportare ulteriori modifiche in modo compatibile con le versioni precedenti.

C'è anche un collegamento a una versione solo decompressiva del bzipcodice sorgente per chiunque voglia giocarci.


5
Probabilmente ho qualche bzip originale su alcuni archivi di backup da qualche parte. Lo usavo ampiamente e ho trovato fastidioso il passaggio a bzip2. Sulla maggior parte dei file, bzip ha ottenuto un miglior rapporto di compressione.
Jules il

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.