Rodzaje kompresji danych

Rodzaje kompresji danych
Poniżej przedstawiamy podział kompresji danych oraz najpopularniejsze algorytmy kompresji.

I. Bezstratna – z postaci skompresowanej można odzyskać identyczną postać pierwotną. Algorytmy kompresji bezstratnej dobrze kompresują "typowe" dane, czyli takie w których występuje znaczna nadmiarowość informacji (redundancja). Jednak pewne rodzaje danych są bardzo trudne lub niemożliwe do skompresowania. To: strumienie liczb losowych (niemożliwe do skompresowania), strumienie liczb pseudolosowych (trudne do skompresowania, choć teoretycznie łatwe), dane skompresowane za pomocą tego samego lub innego algorytmu (w praktyce trudne)

  1. Najczęściej używane metody kompresji bezstratnej można podzielić na słownikowe i statystyczne, choć wiele metod lokuje się pośrodku:
    metody słownikowe poszukują dokładnych wystąpień danego ciągu znaków, np. zastępują angielski powtarzający się rodzajnik „the” krótszą ilością bitów niż jest potrzebna na zakodowanie 4 niezwiązanych znaków.
    metody statystyczne używają mniejszej ilości bitów dla częściej występujących symboli, w przypadku praktycznie wszystkich oprócz najprostszych metod, prawdopodobieństwa zależą od kontekstu. A więc np. dla "h" występującego po "t" używają mniejszej ilości bitów niż dla innych znaków w tym kontekście.

  2. Popularne metody kompresji bezstratnej
    - kodowanie Shannona, Shannona-Fano, Huffmana, arytmetyczne
    - LZ77, LZ78 i pochodne (LZSS, LZP, LZW, LZMW)
    - Run-Length Encoding (RLE, kodowanie długości serii)
    - PPM (Prediction by Partial Matching)
    - transformata Burrowsa-Wheelera, Move To Front

II. Stratna - dokładne odzyskanie postaci pierwotnej jest niemożliwe, jednak główne właściwości zostają zachowane. To nieodwracalna metoda zmniejszenia ilości danych poprzez usunięcie przez koder-dekoder mniej istotnych danych dla zmysłów człowieka, dopuszczająca przy odtwarzaniu (dekompresji) skompresowanego sygnału, takie zniekształcenie sygnału w porównaniu do sygnału pierwotnego, powoduje że jego percepcja przez człowieka (słuch, wzrok) będzie odbierana jako identyczna lub zbliżona do oryginału, ewentualnie będzie od niego odbiegać, lecz za świadomą zgodą użytkownika.

Zaletą kompresji stratnej jest uzyskiwanie wysokiego stopnia kompresji, o wiele wyższego niż w metodach kompresji bezstratnej. Zwykle kompresję stratną stosuje się do dźwięków, obrazów i ruchomych obrazów, jak np. film.

Najpopularniejsze algorytmy kompresji stratnej to:

  1. Obraz
    - JPEG, podstawa algorytmu MPEG, oparty na DCT i dający relatywnie słabe rezultaty.
    - JPEG2000, oparty na falkach, dający znacznie lepsze wyniki

  2. Wideo
    - DivX/XviD, przy odpowiednich warunkach może skompresować zawartość płyty DVD na zwykłą CD, bez widocznych różnic.
    - MPEG, jedną z jego odmian stosuje się przy filmach na DVD, bardzo wysoka jakość, połączona z większymi objętościowo plikami (100 MB DivX = ok. 350 MB MPEG).
    - Real Video, niską jakość obrazu rekompensuje mała objętość dzięki czemu wykorzystywany jest przy transmisjach na żywo.

  3. Dźwięk
    - MP3, najpopularniejsze kodowanie stratne audio, oparte na MDCT, stosuje model psychoakustyczny Instytutu Fraunhoffera i firmy Thomson.
    - Ogg Vorbis, oparte na MDCT
    - RealAudio, rekompensuje straty jakości małą objętością, jest stosowany głównie do transmisji na żywo.

M.U.