Rozszerzenie pliku .BZ2
Pliki z rozszerzeniem .BZ2 są kompresowane przy użyciu algorytmu BZIP2. To bezpłatne narzędzie o otwartym kodzie źródłowym, opracowane przez Juliana Sewarda, osiąga imponujące współczynniki kompresji, dzięki czemu idealnie nadaje się do zmniejszania dużych plików lub zestawów danych. W przeciwieństwie do formatów archiwów, takich jak ZIP , BZIP2 kompresuje tylko pojedyncze pliki. Na szczęście tworzenie i wyodrębnianie plików BZ2 jest proste w przypadku większości archiwizatorów plików obsługujących ten format. Wydajność BZIP2 zarówno w zakresie kompresji, jak i dekompresji uczyniła go popularnym wyborem do dystrybucji oprogramowania, tworzenia kopii zapasowych danych i transmisji internetowych.
O Archiwum BZIP2
Podobnie jak GZIP , BZ2 służy jako kompresor danych, ale brakuje mu wszechstronności archiwizatorów takich jak TAR czy ZIP. W przeciwieństwie do tych formatów, BZIP2 nie obsługuje kompresji wielu plików w jedno archiwum, ani nie oferuje funkcji szyfrowania ani dzielenia archiwów. W tradycji UNIX archiwizacja jest zwykle obsługiwana osobno, a BZIP2 jest używany wyłącznie do kompresji. Jednakże dekompresja za pomocą BZIP2 jest szczególnie wydajna, szczególnie w porównaniu z mniejszą szybkością kompresji. Aby zaradzić tej nierównowadze, w 2003 roku pojawiła się zmodyfikowana wersja o nazwie PBZIP2, wykorzystująca wielowątkowość w celu radykalnego skrócenia czasu kompresji w nowoczesnych systemach wieloprocesorowych i wielordzeniowych.
Informacje o historii formatu pliku archiwum .BZ2
Format pliku .BZ2, powiązany z kompresją BZIP2, ma swoje korzenie w pracach rozwojowych Juliana Sewarda pod koniec lat 90. XX wieku w społeczności UNIX. Na przestrzeni lat algorytm przeszedł kilka zmian w utrzymaniu, a Micah Snyder objął stanowisko opiekuna w czerwcu 2021 r. Wraz z tą ewolucją pojawiły się modyfikacje takie jak PBZIP2, wykorzystujące możliwości wielowątkowości w celu zwiększenia prędkości kompresji w nowoczesnych, wieloprocesorowych i systemy wielordzeniowe. Pomimo tych udoskonaleń, podstawowe zasady formatu .BZ2 pozostają oparte na efektywnym wykorzystaniu transformacji Burrowsa-Wheelera, transformacji przejścia do przodu i technik kodowania Huffmana.
Struktura Archiwum BZIP2
BZIP2 wykorzystuje kompresję opartą na blokach, zazwyczaj kompresując dane w blokach o rozmiarze od 100 do 900 kB. Wykorzystuje transformację Burrowsa – Wheelera do konwersji powtarzających się sekwencji znaków na ciągi identycznych liter, po których następuje transformacja ruchu do przodu i kodowanie Huffmana. Warto zauważyć, że jego poprzednik, bzip, do kompresji wykorzystywał kodowanie arytmetyczne zamiast Huffmana.
Metody kompresji BZIP2
Niestety, BZIP2 nie posiada różnorodnych technik kompresji, które można znaleźć w niektórych jego odpowiednikach. Zamiast tego opiera się na wyjątkowym, skrupulatnie opracowanym podejściu do kompresji danych. Technikę tę charakteryzuje:
- Sortowanie blokowe: BZIP2 dzieli dane na mniejsze bloki w celu indywidualnej kompresji.
- Transformacja Burrowsa-Wheelera: Ten krok zmienia kolejność danych w każdym bloku, aby poprawić efektywność kompresji poprzez identyfikację powtarzających się wzorców.
- Przejście wstecz: Algorytm następnie iteruje przekształcone dane wstecz, stosując kodowanie Huffmana w celu dalszej kompresji.
- Kodowanie ciągłe: Ta technika identyfikuje i koduje powtarzające się znaki w blokach danych w celu dodatkowej oszczędności miejsca.
Obsługiwane operacje w archiwum BZIP2
Aspose.ZIP ułatwia szereg operacji na archiwach plików .BZ2, w tym wyodrębnianie, kompresję, pakowanie plików, łączenie i konwersję archiwów. Użytkownicy mogą bezproblemowo wyodrębniać dane z archiwów .BZ2, kompresować pliki, łączyć archiwa i z łatwością konwertować pomiędzy różnymi formatami archiwów. Dodatkowo Aspose.ZIP obsługuje dzielenie dużych archiwów .BZ2 na kilka woluminów w celu poprawy możliwości zarządzania i wydajności przechowywania.
BZIP2 - Struktura wewnętrzna
Chociaż nie ma oficjalnej specyfikacji dla bzip2, nieformalna specyfikacja została uzyskana poprzez inżynierię wsteczną implementacji referencyjnej. Zasadniczo strumień .bz2 rozpoczyna się zwięzłym 4-bajtowym nagłówkiem, po którym następuje dowolna liczba skompresowanych bloków, płynnie zakończonym znacznikiem końca strumienia zawierającym 32-bitową sumę kontrolną CRC dla całego przetworzonego strumienia zwykłego tekstu. Warto zauważyć, że skompresowane bloki są wyrównane do poziomu bitów, bez potrzeby dodatkowego dopełniania. Ta uproszczona struktura podkreśla wydajność i prostotę formatu kompresji bzip2.
Po poddaniu kompresji RLE w początkowej fazie (patrz wyżej) maksymalna długość nieskompresowanego tekstu, który może zmieścić się w pojedynczym bloku 900 KB w bzip2, wynosi: około 46 MB (45 899 236 bajtów). Ten scenariusz ma miejsce, gdy cały nieskompresowany tekst składa się wyłącznie z powtarzających się wartości (w wyniku czego plik .bz2 ma zaledwie 46 bajtów). Nawet mniejsze pliki, o wielkości zaledwie 40 bajtów, można uzyskać, wykorzystując dane wejściowe składające się wyłącznie z wartości 251, co daje zdumiewający współczynnik kompresji wynoszący 1 147 480,9:1. To niezwykłe osiągnięcie ukazuje niesamowitą wydajność i wszechstronność algorytmu kompresji bzip2.
Popularność archiwum i wsparcia BZIP2
Archiwa .BZ2, choć nie są tak rozpowszechnione jak formaty .ZIP czy .7z , nadal znajdują zastosowanie w określonych zastosowaniach, szczególnie w środowiskach Unix i Linux. Oferują duże możliwości kompresji i są dobrze obsługiwane w różnych systemach operacyjnych i narzędziach programowych. Pomimo swojego niszowego statusu, archiwa BZIP2 pozostają niezawodnym wyborem do pakowania dystrybucji oprogramowania i tworzenia kopii zapasowych danych. Obsługa plików .BZ2 jest szeroko rozpowszechniona, a wiele narzędzi do archiwizacji i języków skryptowych oferuje wbudowaną funkcjonalność do ich tworzenia i rozpakowywania. Jednak w miarę pojawiania się nowszych algorytmów kompresji popularność i wykorzystanie archiwów BZIP2 może nadal ewoluować.
Przykłady użycia BZIP2
Aspose.ZIP przenosi kompresję Bzip2 na wyższy poziom. Wykorzystując moc przetwarzania równoległego procesora, Aspose.ZIP może podzielić obciążenie kompresją na wiele rdzeni. Przekłada się to na znacznie krótsze czasy kompresji, szczególnie w przypadku dużych zbiorów danych. Aktywacja kompresji równoległej za pomocą Aspose.ZIP jest tak prosta, jak ustawienie właściwości CompressionThreads na wartość większą niż 1
Parallel Compression for BZ2 Files
This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads = Environment.ProcessorCount });
}
Bzip2SaveOptions.CompressionThreads property
This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .
public int CompressionThreads { get; set; }
Dodatkowe informacje o archiwach BZIP2
- Organizacja BZIP
- Bzip2Archive metody, klasy i konstruktory
- Utwórz Tar.BZ2 online
Ludzie pytali
1. Czy BZIP2 jest bezpieczny? Czy może szyfrować pliki?
Rozwiązuje to powszechną obawę dotyczącą bezpieczeństwa danych. Ważne jest, aby wyjaśnić, że sam BZIP2 nie oferuje szyfrowania. Użytkownicy mogą potrzebować osobnego narzędzia do szyfrowania plików przed skompresowaniem ich za pomocą BZIP2. Na przykład silne hasła można wygenerować dla wcześniej utworzonych archiwów za pomocą oddzielnych narzędzi szyfrujących.
2. Jakie są zalety i ograniczenia stosowania kompresji BZIP2?
Główną zaletą BZIP2 jest jego zdolność do osiągania wysokich współczynników kompresji, ale może wymagać większych zasobów obliczeniowych i czasu w porównaniu do innych algorytmów. Ponadto archiwa BZIP2 nie obsługują przechowywania wielu plików w pojedynczym skompresowanym pliku .
3. Jaka jest różnica między BZIP2 a formatami archiwów, takimi jak ZIP lub TAR?
Jest to istotne, ponieważ BZIP2 kompresuje tylko pojedyncze pliki, w przeciwieństwie do ZIP i TAR, które mogą archiwizować wiele plików w jednym pakiecie. Aby rozwiązać to ograniczenie, możesz użyć interfejsów API Aspose.ZIP do dodawania plików do archiwów ZIP bez kompresji .