Co się stało z bzip1?

40

bzip2 był de facto standardem dla dość silnej kompresji już od wielu lat. Do bzip2tej pory pisałem polecenie tysiące razy, co mnie zastanawia - co się stało z bzip lub bzip1? Wydaje się, że Google niewiele mi o tym mówi i wygląda na to, że może to być ciekawa lekcja historii.

d33tah
źródło

Odpowiedzi:

32

Wygląda na to, że oryginał bzipzostał wyciągnięty około 1998 r. Z powodu problemów patentowych z zastosowaną kompresją arytmetyczną. Trochę kopania (tak naprawdę tylko czytania Wikipedii) pokazuje zarchiwizowany link do bzip2strony z tego okresu .

Oto odpowiednia sekcja szczegółowo tę i inne różnice:

Jak to się ma do twojej poprzedniej oferty (bzip-0.21)?

bzip2 to przerobiona i przeprojektowana wersja 0.21. Wygląda powierzchownie dość podobnie, ale został prawie całkowicie przepisany (kilka razy :-). Ważne różnice to:

  • Bez patentu! (Mam nadzieję; patrz oświadczenie powyżej). bzip-0,21 zastosował kodowanie arytmetyczne; bzip2 wykorzystuje kodowanie Huffmana, które z punktu widzenia patentu jest ogólnie uważane za nieproblemowe. Oba programy oparte są na transformacji Burrowsa-Wheelera, ale o ile mi wiadomo, nie jest to również opatentowane.

  • Szybciej, szczególnie przy dekompresji. bzip2 dekompresuje o ponad 50% szybciej niż 0,21, głównie z powodu zastosowania kodowania Huffmana. Poprawiłem też szybkość kompresji, choć nie tak bardzo - być może kompresuje się o 30% szybciej niż 0,21.

  • Odzyskiwanie po błędach nośnika. Oba programy kompresują dane w blokach, domyślnie o długości 900 KB. W przypadku bzip2 każdy blok jest obsługiwany całkowicie niezależnie, przenosi własną sumę kontrolną i jest ograniczony 48-bitową sekwencją. Tak więc, jeśli masz uszkodzony skompresowany plik, bzip2 może wyodrębnić skompresowane bloki, wykryć, które z nich są nieuszkodzone i rozpakować je.

  • Tryb testowy. Możesz przetestować integralność skompresowanych plików bez konieczności ich dekompresji. Powinienem był umieścić to w 0,21, naprawdę, ale byłem zbyt leniwy (+ wypalony z hakowaniem, zanim go wypuściłem).

  • Obsługuje bardzo powtarzalne pliki znacznie lepiej. Takie pliki są najgorszym przypadkiem dla każdego kompresora sortującego bloki. bzip2 działa dla takich plików około dziesięć razy szybciej niż 0,21.

  • Wsparcie dla mniejszych maszyn. bzip2 może dekompresować dowolny plik, który tworzy w 2300k, co oznacza, że ​​możesz dekompresować pliki na komputerach 4-megapikselowych. Szczytowe użycie pamięci podczas kompresji jest również zmniejszone o około 900 tys. W porównaniu z 0,21 do około 6400 tys.

  • Lepsza obsługa flag. W szczególności obsługiwane są długie flagi (- podobne - to), co ułatwia korzystanie z nich.

  • Jednowierszowy komunikat startowy, który wydrukowano 0,21, zniknął. To była najbardziej narzekana funkcja 0.21. Nawet mnie to dzisiaj wkurza .

Nie dystrybuuję już 0,21, ponieważ powoduje to utrudnienia związane z patentami, co gwarantuje, że program nigdy nie będzie powszechnie używany. Szkoda, ponieważ jest to przydatny program i wydaje się, że wiele osób go lubi. Jeśli używasz już 0,21, zaktualizuj do wersji bzip2. Niestety nie mogę sprawić, aby bzip2 był w stanie dekompresować pliki .bz 0.21, ponieważ spowodowałoby to, że unikanie patentów byłoby bezcelowe. Wiem, że zmiana formatów plików jest bolesna; od teraz postaram się wprowadzić dalsze zmiany w sposób zgodny z poprzednimi wersjami.

Jest to również link do wersji bzipkodu źródłowego przeznaczonej wyłącznie do dekompresji dla każdego, kto chce się nim bawić.

Graeme
źródło
5
Prawdopodobnie mam gdzieś oryginalny bzip na niektórych archiwach kopii zapasowych. Używałem go intensywnie i uważałem, że przejście na bzip2 jest denerwujące. W większości plików bzip uzyskał lepszy współczynnik kompresji.
Jules