Kompresja danych

Transkrypt

Kompresja danych
Programy kompresujące i archiwizery
Program kompresujący to taki program, który potrafi zmniejszyć objętość danych. Musi istnieć możliwość
przywrócenia skompresowanych danych do pierwotnej postaci. Dane są pobierane z pliku wejściowego i
zapisywane do pliku wyjściowego.
Program archiwizujący łączy kilka plików w jeden (który może być potem skompresowany). Kompresując
wstępnie zarchiwizowane pliki danych uzyskuje się lepszy stopień kompresji niż przy rozdrobnionych,
pojedynczych plikach. Program kompresujący tworzy więc jeden skompresowany plik wyjściowy dla każdego
pliku wejściowego. Przykładem kompresora jest GZIP, a archiwizera TAR, a połączonego archiwizerakompresora ARJ. Istnieje jednak dowolność w nazewnictwie - każdy program, który wiąże się z kompresją
danych określa się mianem "kompresora", "pakera", czy "archiwizera".
Podstawowym zastosowaniem kompresji jest transmisja danych w sieciach, w Internecie. Jest to związane z
ograniczoną szybkością połączeń. Objętość tworzonych archiwów zależy od typu kompresowanych danych.
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.
Najpopularniejszym formatem
archiwizacji danych jest obecnie ZIP (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 ARJ. W systemach UNIXowych standardem jest GZIP, TAR i COMPRESS. Coraz
częściej można spotkać archiwa rosyjskiego RARa. Niektóre archiwizery pozwalają w pewnych sytuacjach na
naprawę niewielkich uszkodzeń archiwum recovery record.
Kompresję danych stosuje się nie tylko w komputerach, ale także w wielu urządzeniach elektronicznych, na
przykład telewizji HDTV, cyfrowym wideo czy PhotoDisc. Za twórcę i jednego z pierwszych "wynalazców"
kompresji uważa się Claude'a Shannona, który pracował nad komunikacją, informacją oraz sposobami przesyłania
i przechowywania danych. Są dwa rodzaje kompresji:
• ilościowa (bezstratna);
• jakościowa.
W pierwszym przypadku wielokrotna kompresja i dekompresja nie powodują utraty żadnej części informacji.
Dane są po prostu wiernie zakodowywane i rozkodowywane. Kompresję ilościową można realizować:
• statycznie - dane są przeglądane w całości, po czym w całości są kompresowane lub dekompresowane;
• dynamicznie - dane w miarę nadchodzenia kolejnych bitów) są kompresowane lub dekompresowane.
Kompresja jakościowa dopuszcza zmianę danych. Algorytmy należące do tej grupy pozwalają na utratę
szczegółów w zamian za duży stopień upakowania. Takie zjawisko jest dopuszczalne na przykład przy zapisie
obrazów lub dźwięków. Metodę taką zastosowano na przykład w formacie zapisu obrazów JPEG. Kompresja
danych polega na wykorzystywaniu uporządkowanych sekwencji bitów w pliku i ich zastępowaniu w archiwum
krótszymi.
Współczynnik kompresji jest miarą stosunku rozmiaru pliku pierwotnego do jego rozmiaru po kompresji. Dane na
dysku są kompresowane poprzez usunięcie nadmiarowych sekwencji bajtów. Pliki z wieloma powtarzającymi się
sekwencjami bajtów, na przykład pliki grafiki bitowej takie jak PaintBrush, kompresują się o wiele efektywniej
niż pliki bez takich sekwencji. Maksymalnym współczynnikiem kompresji jest 16:1. Metody kompresji danych są
często stosowane dla bazy danych. Używa się do tego kompresji Huffmana.
Kompresja fraktalna pozwala osiągnąć kompresję rzędu 0,0001.Twórca fraktali jest Benoit Mandelbrot (urodzony
w 1924 roku w Warszawie). Jako przykład posłuży lisic paproci, płatek śniegu. Listki składowe paproci składają
się z pomniejszonych liści, które podobne są do całości. Podobieństwo to opisuje się w formie przekształcenia
odwzorowującego cały fraktal na jego część. Obraz w postaci fraktalnej zajmuje o wiele mniej miejsca niż ten
sam rysunek zapisany piksel po pikselu. Poza tym daje się on dowolnie skalować (tak jak grafika wektorowa).
Format wykorzystujący kompresję fraktalami to IFS (Iterative Function Systems) firmy Iterative Systems.

Podobne dokumenty