Super Packer

From Atariki

Jump to: navigation, search

Grafika:Super_packer.gif

Super Packer to jeden z pierwszych programów do pakowania plików binarnych przeznaczonych dla 8-bitowego Atari, który prezentował zupełnie inne podejście do kompresji plików niż istniejące wcześniej crunchery. Super Packer pozwala na zachowanie struktury oryginalnego pliku po spakowaniu. Jego kolejną zaletą jest możliwość kompresji programów, które wymagały do pracy DOSa.

Działanie programu można podzielić na kilka etapów. Jednym z nich jest wczytanie pliku do względnie niewielkiego bufora programu. Po tej operacji na ekranie możemy obejrzeć całą strukturę wczytanego pliku. Widzimy w jakie obszary pamięci ładuje się program, który będziemy poddawać kompresji. Każdy z segmentów pliku możemy poddać kompresji. Program umożliwia użycie trzech metod kompresji: RLE, LZ77 oraz Huffman. Przy każdym z pakowanych segmentów możemy wybrać typ kompresji, zastosowany przez packer. Domyślnym ustawieniem programu jest użycie wszystkich trzech sposobów w kolejności: RLE->LZ77->Huffman. Dodatkowo program może przeprowadzić test czy dane po spakowaniu nie okazały się dłuższe od danych wejściowych.

Oprócz swojego głównego zastosowania (kompresja) program bardzo dobrze może służyć jako bardzo wygodny w użyciu linker. Ma dość wygodny i intuicyjny interface. Jego niewątpliwą wadą jest dość mały bufor przeznaczony na dane wejściowe. Do działania program wymaga 64KB pamięci RAM i nie korzysta z żadnych rozszerzeń pamięci.

Autorem programu jest Jiří Bernášek z BeWeSoft. Super Packer powstał w 1993 roku. Był jednym z pierwszych programów stosujących odmienne podejście do procesu kompresji plików binarnych, a to tego tak zaawansowane algorytmy kompresji (wcześniejsze programy tego typu pozwalały jedynie na kompresje algorytmem RLE). Zyskał wielką popularność na polskiej scenie (w połowie lat 90. XX w.). Stosunkowo prosta była modyfikacja procedury dekompresującej, dzięki czemu przy dekompresji nie zawsze trzeba było oglądać "pasków" występujących podczas dekompresji segmentu danych.

Program oferuje 3 metody kompresji: RLE, LZ77, Static Huffman. O ile RLE i Huffman działają dość szybko, jednak implementacja LZ77 jest dość wolna (wolniejsza od "Crunchera 5.0" pracującego z "offset" ustawionym na 4). Ta najwolniejsza metoda jest w większości przypadków najbardziej skuteczna. Na szczęście autor umożliwił wybór metody kompresji użytkownikowi. Program ma wspaniałe możliwości edycji pliku binarnego (dodawanie bloków, init-ów, runów, procedur przepisujących). Jiří przeznaczył na słownik dla LZ77 bufor o wielkości 4 KB. Program niestety nie wykorzystuje pamięci pod systemem operacyjnym, mamy do dyspozycji około 30 KB bufora (od MEMLO do $97DC), zatem dla niektórych (dłuższych) programów bufor może być niewystarczający, co prawda autor wspomina o możliwości dzielenia pliku na kilka części i pakowaniu oddzielnie każdej z nich, wtedy należy usunąć z każdej (z wyjątkiem pierwszej) z tak spakowanej części dekompresor . To oczywiście wymagana większego nakładu pracy.

Super Packer ma również możliwość relokacji procedury dekompresującej pod dowolny adres. Program ten posiada wiele zalet ma dość intuicyjny i wygodny interfejs i można uznać, iż pomimo kilku drobnych wad jest bardzo ciekawym rozwiązaniem. Jeżeli chodzi o podobną filozofię w podejściu do kompresji plików binarnych, to oprócz SuperPacker-a w 1995 roku pojawił się DJ Packer, a w 1996 roku Fox wypuścił swojego FlashPacka.

Linki

Personal tools