Super Packer
From Atariki
Wersja z dnia 19:21, 20 lis 2022 Seban (Dyskusja | wkład) (+link do art. z barymaga) ← Previous diff |
Wersja z dnia 22:27, 20 lis 2022 Seban (Dyskusja | wkład) (drobna reedycja moich bredni wklejonych tutaj kiedyś z barymaga.) Next diff → |
||
Linia 7: | Linia 7: | ||
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. | 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 depackera, dzięki czemu przy dekompresji nie zawsze trzeba było oglądać kolorowych, losowych "pasków". | + | 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. |
- | Po Super Packerze w 1995 roku pojawił się [[DJP|DJ Packer]], a w 1996 roku [[Fox]] wypuścił swojego [[FlashPack]]a. | + | |
- | Jest to program ze stajni [[BeWeSoft]], czeskiego programisty. Oferuje 3 metody kompresji: RLE, LZ77, Static Huffman. | + | 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 o wiele większego nakładu pracy. |
- | O ile RLE i Huffman działają dość szybko, to LZ77 (Lempel Ziv 1977 r.) jest tak bardzo wolny, że coś może człowieka trafić (wolniejsze od "Crunchera 5.0" na offsecie 4!). Jak zwykle metoda najwolniejsza jest najbardziej skuteczna, ale to już inna sprawa. 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, procedurek przepisujących). Niestety, moim zdaniem, zbyt mały bufor. | + | |
- | Bewe założył słownik dla LZ77 wielkości 4 KB, ale niestety nie wykorzystuje pamięci pod systemem operacyjnym... Mamy więc około 30 KB bufora (od MEMLO do $97dc)... To trochę mało... Autor wspomina o możliwości dzielenia pliku na kilka części i pakowaniu oddzielnie każdej z nich, potem należy usunąć z każdej depacker z wyjątkiem pierwszej... Dla mnie trochę za dużo zabawy... | + | |
- | Program ten jednak posiada wiele zalet i myślę, że mimo kilku drobnych wad nadaje się do użytku. Oczywiście ma możliwość relokowania depackera tam, gdzie się chce. | + | Super Packer ma również możliwość relokowania procedury dekompresującej pod dowolny adres. Program ten jednak posiada wiele zalet i można uznać, że mimo kilku drobnych wad jest bardo ciekawym rozwiązaniem. Po Super Packerze w 1995 roku pojawił się [[DJP|DJ Packer]], a w 1996 roku [[Fox]] wypuścił swojego [[FlashPack]]a. |
=== Linki === | === Linki === |
Wersja z dnia 22:27, 20 lis 2022
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 o wiele większego nakładu pracy.
Super Packer ma również możliwość relokowania procedury dekompresującej pod dowolny adres. Program ten jednak posiada wiele zalet i można uznać, że mimo kilku drobnych wad jest bardo ciekawym rozwiązaniem. Po Super Packerze w 1995 roku pojawił się DJ Packer, a w 1996 roku Fox wypuścił swojego FlashPacka.
Linki
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.