bzip2
Aktualna wersja stabilna | 1.0.8 (13 lipca 2019) [±] |
---|---|
Rodzaj | Archiwizer |
Strona internetowa |
bzip2 – algorytm i program komputerowy implementujący algorytm bzip, służący do bezstratnej kompresji danych. Program jest dostępny na licencji analogicznej do licencji BSD.
Bzip2 jest popularny w systemach Unix i Linux. Zwykle jest używany do kompresji archiwów tar, często używanych do rozpowszechniania oprogramowania. Nowe wersje RPM korzystają z bzip2 (poprzednio gzip) do kompresji archiwum cpio. Obecnie bzip2 zastępuje się przez wydajniejsze i szybsze w dekompresji algorytmy takie jak LZMA pochodzące z programu 7-Zip.
Algorytm
[edytuj | edytuj kod]Program kompresuje bloki danych o rozmiarach od 100 do 900 kB, w skokach co 100 kB. Każdy blok jest transformowany za pomocą transformaty Burrowsa-Wheelera, następnie przekształcany przez algorytm Move To Front i kompresowany za pomocą RLE. Ostatnim etapem jest kodowanie entropii za pomocą algorytmu Huffmana.
Bzip2 osiąga znacznie lepsze (zwykle o 10–20%) wyniki niż algorytmy strumieniowe typu deflate.
Program potrzebuje do 8 MB pamięci do kompresji i do 4 MB do dekompresji. Jest dostępny także wolniejszy, lecz zużywający mniej pamięci tryb dekompresji, który potrzebuje 2,5 MB. Dane te dotyczą bloków 900 kB, dla mniejszych rozmiarów bloków zużycie pamięci jest proporcjonalnie mniejsze.
Bzip2 używa własnych algorytmów sortowania bloków do transformaty Burrowsa-Wheelera, które są zazwyczaj bardziej efektywne od standardowych.
Linki zewnętrzne
[edytuj | edytuj kod]- Strona bzip2 (ang.)
- Parallel BZIP2 (implementacja na architektury SMP) (ang.)