archiwizery i kompresory danych (7 str)


TEMAT: archiwizery i kompresory danych

1. Czym jest program kompresujący, czym różni się od archiwizera?

Krótko mówiąc program kompresujący to taki program, który potrafi zmniejszyć objętość danych. Oczywiście, musi istnieć możliwość przywrócenia tak skompresowanych danych do pierwotnej postaci, inaczej cała operacja nie miałaby sensu.
Dane zazwyczaj są pobierane z pliku (wejściowego) i do pliku (wyjściowego) zapisywane, choć np. popularne w UNIXach programy compress, gzip, czy tar mogą przetwarzać dane strumieniowo (np. dane są przekazywane z programu "X" do kompresora, a skompresowane dane są przekazywane dalej, do programu "Y"; wszystko to odbywa sie równocześnie).

Program archiwizujący łączy kilka plików w jeden (który może byc potem skompresowany). Trzeba zaznaczyć, ze kompresując wstępnie zarchiwizowane pliki danych (zwłaszcza odpowiednio pogrupowane) uzyskuje się lepszy stopień kompresji niż przy rozdrobnionych, pojedynczych plikach.
"Czysty" program kompresujacy tworzy więc jeden skompresowany plik wyjściowy dla każdego pliku wejściowego. Przykładem czystego czystego kompresora jest GZIP, czystego archiwizera TAR, a połączonego archiwizera-kompresora ARJ. Panuje jednak pewna dowolność w nazewnictwie - każdy program, ktory wiąże się z kompresją danych określa sie mianem "kompresora", "pakera", czy "archiwizera".

2. Po co kompresować?

Jeszcze kilka lat temu najpopopularniejszym nośnikiem danych była dyskietka. Na pewno każdy pamięta jak kłopotliwe było przeniesienie od kolegi dłuższego programu, czy większej ilości danych. W dodatku po przyniesieniu do domu okazywało się, ze nasz twardy dysk jest zapchany.
Co można było zrobić? Albo skasować część danych (szkoda!!!) albo je skompresować. O wiele mniej czasu zajmuje też kompresja, zapis, odczyt i dekompresja danych na 10 dyskietkach niż zapis+odczyt "surowych" danych z 40 dyskietek. Obecnie, w epoce kilkugigabajtowych dysków twardych (+ wygodna kieszeń) oraz popularności CD-ROMów takie zastosowanie kompresji jest coraz mniej popularne (ale wciąż stosowane - oszczędność kosztów nośnika). Podstawowym zastosowaniem kompresji wydaje się teraz być transmisja danych w sieciach, a w szczegolności w Internecie. Jest to związane z ograniczoną szybkością połączeń (szczególnie modemowych) i lawinowo rosnącą liczbą użytkowników Internetu - przepustowość łącz Internetu rośnie wolniej niż ich wykorzystanie. Jednym ze sposobów radzenia sobie z tłokiem na liniach jest oczywiście kompresja danych. Korzyści z kompresji dostrzegli producenci modemów implementując w swoich produktach specjalny protokół kompresji - V.42bis.

3. Jaki z kompresorów wybrać i w jakim celu?

Różne kompresory w różnym stopniu radzą sobie z różnymi typami danych. W dodatku ceną za lepszy stopień kompresji jest zawsze dłuższy czas "pakowania". Najlepsze pod względem stopnia kompresji programy kompresują b. długo, a często równie długo dekompresują dane. Szybkość działania zależy także od użytych opcji i parametrów - prawie każdy dobry program pozwala na regulację czasu kompresji kosztem objętości wynikowych archiwów.
Maniacy kompresji będą ściągać każdą nową alpha-wersję ulubionego programu, ludzie ceniący bezpieczeństo danych używają wersji "oficjalnych". Istnieją wielkie kobyły z graficznymi interface'ami (zazwyczaj pod W95) jak i surowe, ale za to krótkie i działające równie sprawnie programiki. Przy wyborze użytkownicy opierają się także na liczbie dostępnych opcji, rozpowszechnieniu standardu archiwów, łatwości obsługi, czy osobistych preferencjach.


OBJĘTOŚĆ TWORZONYCH ARCHIWÓW ZALEŻY OD TYPU KOMPRESOWANYCH DANYCH

0x01 graphic

Im niżej znajdują się dane na tym wykresie, tym mniej będą zajmowały po kompresji. Jak widać najlepiej kompresują się teksty, pliki MIDI, nieźle pliki wykonywalne, natomiast nie ma sensu kompresja archiwów stworzonych przez inne programy i wcześniej skompresowanych formatów graficznych i muzycznych jak GIF, JPEG, MPEG czy RealAudio.

Bezsprzecznie najpopularniejszym formatem archiwizacji danych jest obecnie ZIP (praktycznie standard kompresji w Internecie). Liczba wykorzytujących go aplikacji jest bardzo duża i stale się powiększa. Można się czasem również spotkać ze starszymi formatami: ARC, LZH/LHA, ZOO, czy popularnym i rozwijanym do dzisiaj ARJ. W systemach UNIXowych standardem jest GZIP, TAR i COMPRESS. Coraz częściej można spotkać archiwa rosyjskiego RARa; popularność tego programu stale rośnie, tym bardziej, że autorzy wypuścili szereg wersji dla różnych systemów.

0x01 graphic

Najważniejsze komendy archiwizerów
na przykladzie programu ARJ

Oto krótki opis działania najważniejszych komend programu ARJ.
Wybrałem ten program celowo, ponieważ stosowana w nim składnia komend jest zgodna ze standardem używanym w większości poważnych archiwizerów obsługiwanych z linii komend (OTOH, archiwizery obługiwane z linii komend zaczęły odchodzić do lamusa).

Po opanowaniu tych komend (a przynajmniej szczególnie podstawowych) obsługa innych archiwizerów nie powinna sprawić nikomu większych trudności - zazwyczaj wystarczy przystosować się do nieco innej składni poleceń i nowego zestawu opcji.

Z doświadczenia wiem, że komendy "update" i "freshen" są rzadko stosowane, nawet jeśli ich użycie jest bardziej uzasadnione albo wygodne niż "add". A szkoda.

Ogólny schemat zapodania parametrów wygląda następująco:

arj <komenda> [-opcje] <nazwa_archiwum> [pliki] [sciezka]

gdzie:

<komenda>

- jednoliterowy skrót komendy (normalnie obowiązkowy)

[-opcje]

- dodatkowo określają sposób zachowania archiwizera (nieobowiązkowe). Opcje są zazwyczaj poprzedzone znakiem "-"

<nazwa archiwum>

- jeśli nie poda się rozszerzenia, domyślnie zostanie przyjęte .arj

[pliki]

- których dotyczy wybrana komenda

[scieżka]

- ścieżka docelowa, tam zostaną zapisane wyniki komendy "extract". Domyślną ścieżka jest aktualny katalog.

Przykład: arj a -r docs.arj *.doc

a

- komenda Add (dodaj do archiwum)

-r

- opcja "archiwizacja z podkatalogami"

docs.arj

- to nazwa archiwum, które zostanie utworzone

*.doc

- do archiwum zostana dodane wszystkie pliki w aktualnym katalogu i podkatalogach tego katalogu z rozszerzeniem .doc

A teraz opis standardowych komend:

a - Add (dodaj do archiwum)

Do archiwum zostaną bezwarunkowo dodane wymienione jako parametr pliki. Jeśli w archiwum istnieją zbiory o nazwach takich samych, jakie mają pliki dodawane, to zostaną one nadpisane.
Jeśli archiwum o podanej nazwie nie istnieje, to zostanie utworzone.

u - Update (uzupełnij archiwum)

Działa podobnie jak komenda Add. Jedyna różnica polega na tym, ze przy uzupełnianiu archiwum, w wypadku konfliktu nazw plików, zostaną nadpisane tylko te pliki w archiwum, które mają starszą datę modyfikacji od plików dodawanych. Dzięki temu można mieć pewność, że w archiwum znajdują się najnowsze wersje zbiorów.

f - Freshen (odśwież archiwum)

Z grupy plików podanych jako parametr sprawdzane są tylko te, które mają taką samą nazwę, jak te, istniejące już w archiwum. Jeśli pliki w archiwum mają starszą datę modyfikacji, zostaną nadpisane. Krótko mówiąc, w archiwum zostaną odświeżone pliki, które ostatnio zmieniliśmy.
Tej komendy można używać tylko na istniejącym archiwum.

m - Move (przenieś)

Komenda działa dokładnie tak samo jak komenda Add, z tym, że po dodaniu plików do archiwum zostaną one skasowane.

e - Extract ("rozpakuj")

Wskazane w archiwum pliki zostaną rozpakowane do podanego katalogu. Jeśli katalog docelowy nie zostanie podany, to zawartość archiwum zostanie rozpakowana do aktualnego katalogu. Jeśli nie zostaną wskazane żadne pliki to rozpakowana zostanie cała zawartość archiwum.
Podkreślam: wskazane pliki zostaną rozpakowane do jednego katalogu, ta komenda nie uwzględnia struktury katalogów archiwum. Jeśli chce się odtworzyć wszystkie katalogi należy użyć komendy x (eXtract with full pathnames).

x - eXtract with full pathnames ("rozpakuj" z uwzględnieniem ścieżek)

Działa podobnie jak komenda e (Extract), z tym, że odtworzona zostanie oryginalna sturkutura katalogów zapisana w archiwum.
Lepiej używać do dekompresji właśnie tej komendy (a nie e - Extract).

d - Delete (skasuj)

Kasuje ze wskazanego archiwum wymienione pliki lub grupy plików.

l - List (wyświetl)

v - Verbose (wyświetl ze szczegółami)

Komenda list, jak nietrudno się domyślić, wyświetla zawartość archiwum, a więc znajdujące się w archiwum pliki, ich oryginalną długość, stopień i rodzaj kompresji, datę ostatniej modyfikacji.
Verbose wyświetla zazwyczaj więcej szczegółowych informacji (np. pełne ścieżki zbiorów).

t - Test (testuj)

Testowana jest poprawność zapisu wskazanych plików w archiwum. Jeśli nie wskaże się żadnych plików, testowane jest całe archiwum.
Niektóre archiwizery pozwalają w pewnych sytuacjach na naprawę niewielkich uszkodzeń archiwum (patrz: recovery records)

c - Comment (dołącz komentarz)

Pozwala na dołączenie do archiwum komentarza, który będzie wyświetlany przy korzystaniu z archiwum (np. przy listowaniu zawartości albo dekompresji). Komentarze można też dodawać do pojedynczych plików znajdujących się w archiwum (zostaną one wyświetlone przy listowaniu jego zawartości).

Najczęściej spotykane opcje:

-r - Recurse subdirectories (uwzględnij podkatalogi)

Przy operacji dodawania do archiwum archiwizer zagłębi się rekurencyjnie w podkatalogi określonego przez użytkownika katalogu. Oznacza to, że spakowane zostaną wszystkie zbiory w katalogu, który wybraliśmy, a także w podkatalogach tego katalogu, podkatalogach tych katalogów, itd.

W tych przykładach zarchiwizowane zostaną pliki oznaczone podkreśloną czcionką:

arj a filez *.txt (bez podkatalogów)

--|

|--FOODIR <DIR>

| |

| |--SUBDEEP <DIR>

| | |

| | |--sub_a.txt

| | --zapper.wic

| |

| |--foo1.txt

| |--foo2.txt

| --wix.zip

|

|--file1.dat

|--file2.txt

--file3.txt

arj a -r filez *.txt (z podkatalogami)

--|

|--FOODIR <DIR>

| |

| |--SUBDEEP <DIR>

| | |

| | |--sub_a.txt

| | --zapper.wic

| |

| |--foo1.txt

| |--foo2.txt

| --wix.zip

|

|--file1.dat

|--file2.txt

--file3.txt

-v[rozmiar] - multi Volume archive (dziel archiwum na części)

Utworzone archiwum zostanie podzielone na części, których wielkość określona będzie parametrem [rozmiar]. Dzięki temu można podzielić archiwum, które można nagrać na wielu dyskietkach (zresztą do tego przede wszystkim ta opcja służy).

Przykłady:

arj a -v1440 multi *.*

Archiwum o nazwie multi zostanie podzielone na części, które zmieszczą się na dyskietkach 1.44 MB.

arj a -va multi *.* a:\

W tym przykładzie zamiast parametru rozmiar używamy litery a (jak Auto). ARJ automatycznie dostosuje wielkość poszczególnych części tworzonego archiwum do ilości wolnego miejsca na dyskietkach w stacji A (zostaniemy poproszeni o włożenie kolejnych dyskietek).

-m[kompresja] - compression Method (schemat kompresj)

Ta opcja określa "siłę" kompresji. Parametr [kompresja] musi się mieścić w zakresie 0-5. Im mniejsza liczba tym gorsza kompresja (ale szybszy czas działania programu).
Przy 5-tce wydusimy z programu max. możliwości, ale zysk na objętości archiwum nie jest większy niż kilka procent od trybu normalnego. Czas kompresji dłuższy nawet do dwóch razy.
3-ka to tryb normalny (używany standardowo przez ARJ). Kompromis między szybkością działania i stopniem kompresji.
1-ka - max. szybkość, trochę kompresja słabsza niż w trybie normalnym.
0 - Sama archiwizacja bez kompresji.

-g[hasło] - Garble with password (zabezpiecz hasłem)

Archiwum zostanie zabezpieczone hasłem. Jego podanie będzie niezbędne przy dekompresji plików z takiego archiwum. Hasło powinno być długie i trudne do zgadnięcia.
Przykład: arj a -gast93ERtty1 foo *.*
Archiwum foo.arj zostanie zabezpieczone hasłem ast93ERtty1.

-w[katalog] - Working directory (katalog roboczy)

Katalog roboczy to katalog, który będzie używany przez program do tworzenia chwilowej kopii uzupełnianego archiwum, przechowywania zbiorów tymczasowych i "swapa".
Często w archiwizerach domyślnym katalogiem roboczym jest ten, w którym tworzy się archiwum. Jeśli tworzymy archiwum na wolnym nośniku, np. dyskietce, to spowolnienie pracy programu będzie mocno odczuwalne. Zapobiegnie temu ustawienie katalogu roboczego na twardym dysku albo jeszcze lepiej na RAM-dysku. W DOSie i Win 3.x pracę można znacznie przyspieszyć przez włączenie Smartdrive'a z buforowaniem zapisu.

0x01 graphic

Algorytm kompresji V.42bis - co to takiego?
na podstawie tekstu Alejo Hausnera

Algorytm kompresji V.42bis został wpowadzony przez CCITT (International Consultative Committee on Telephony and Telegraphy ) jako uzupełnienie protokołu korekcji błedów V.42 stosowanego w modemach.
Celem algorytmu V.42bis jest zwiększenie przepustowości modemu; w tym celu zastosowano kompresję LZW. Zazwyczaj odpowiednie oprogramowanie jest wbudowane w hardware modemu, ale może być także emulowane w oprogramowaniu modemów, które tego algorymtu kompresji nie obsługują sprzętowo (wystrzegajcie się takich modemów - owa emulacja bardzo obciąża procesor, nawet w szybkich komputerach).

Pewne typy danych kompresują sią lepiej, inne gorzej. np. dane już raz spakowane, prawdopodobnie nie zmniejszą swojej objętości przy ponownej kompresji, a nawet ich dlugość może wzrosnąć. Algorytm V.42bis radzi sobie z tym problemem monitorując na bieżąco "kompresowalność" przesyłanych danych i jeśli "stwierdzi", że nieskompresowane dane mają mniejszy rozmiar niż spakowane, wyłącza kompresję. Oczywiście dane sa wciąż monitorowane i jeśli V.42bis "uzna", że skompresowane dane zajmą mniej miejsca, kompresja zostanie wznowiona.
Kompresja V.42bis jest obwarowana wieloma patentami i licencjami, stąd właściwie nie istnieje publicznie dostępna implementacja tego algorytmu (stosowany praktycznie tylko w modemach).

BTW, jeśli jesteś posiadaczem modemu, który używa tego algorytmu kompresji (obecnie prawie każdy), powinieneś ustawić (jeśli jeszcze tego nie zrobiłeś) szybkość portu (DTE), przez który modem komunikuje sie z komputerem na ok. 4x większą niż szybkość tranmisji danych przez linię telefoniczną (DCE). Jeśli masz modem 14.4 ustaw szybkość portu na 56.8 kbps, jeśli 28.8 lub 33.6 - ustaw 115.2 kbps.
Dlaczego?
Ponieważ ilość danych jakie modem przekazuje do komputera może być większa niż ilość danych, które odbiera (po dekompresji wzrośnie ich objętość).
Dlaczego 4x?
Taki jest praktycznie max. stopień kompresji danych przy wykorzystaniu algorytmu V.42bis.
Co się stanie jeśli tego nie zrobię?
Nic. Po prostu nie wykorzystasz możliwości modemu; modem dostosuje się do przepustowości portu i dane będą płynęły do komputera wolniej niż mogłyby przy optymalnych ustawieniach

Praca pochodzi z serwisu www.e-sciagi.pl



Wyszukiwarka

Podobne podstrony:
19. Archiwizacja i kompresja danych, Semestr 1
08 archiw kompres danych
Kompresja danych (FAQ), Informatyka -all, INFORMATYKA-all
kompresja danych
podstawy pracy z bazą danych (4 str), Ekonomia
Kodowanie i kompresja danych
projekt bazy danych (4 str), Ekonomia, ekonomia
projekt bazy danych (4 str), Ekonomia
SII 16 Kompresja danych
Oracle Database 10g RMAN Archiwizacja i odzyskiwanie danych or10rm
Cw 5 Kompresja danych
Kompresja danych (FAQ), Informatyka -all, INFORMATYKA-all
kompresja danych
podstawy pracy z bazą danych (4 str), Ekonomia

więcej podobnych podstron