bzip2
bzip2 – algorytm i program komputerowy będącego jedną z jego implementacji, do bezstratnej kompresji danych. Jest on 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
Program kompresuje bloki danych o rozmiarach od 100 do 900 kilobajtów, w skokach co 100 kilobajtów. Każdy blok jest transformowany za pomocą transformaty Burrowsa-Wheelera, następnie przekształcany przez algorytm Move To Front, a w końcu kompresowany za pomocą algorytmu Huffmana.
Bzip2 osiąga znacznie lepsze (zwykle o 10%–20%) wyniki niż algorytmy strumieniowe typu deflate.
Program potrzebuje do 8 megabajtów pamięci do kompresji i do 4 do dekompresji. Jest dostępny także wolniejszy, lecz zużywający mniej pamięci tryb dekompresji, który potrzebuje 2,5 megabajta. Dane te dotyczą bloków 900 kilobajtowych, 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
- Strona bzip2 (ang.)
- Parallel BZIP2 (implementacja na architektury SMP) (ang.)