Kompresja informacji w sieciach

Kompresja pozwala nawet dziesięciokrotnie zwiększyć przepływność istniejącej sieci telekomunikacyjnej, jednak pod warunkiem zastosowania metody o odpowiedniej skuteczności i z niewielkim opóźnieniem w procesie translacji.

Kompresja pozwala nawet dziesięciokrotnie zwiększyć przepływność istniejącej sieci telekomunikacyjnej, jednak pod warunkiem zastosowania metody o odpowiedniej skuteczności i z niewielkim opóźnieniem w procesie translacji.

Gdy zapotrzebowanie aplikacji na szerokość pasma rośnie szybciej niż przepływność w sieciach WAN, coraz ważniejsze jest dla operatorów udostępnianie większych przepływności w istniejącej infrastrukturze sieciowej. Zagęszczanie informacji jest metodą podwyższania przepływności użytkowej w sieciach teleinformatycznych (i oczywiście jednym ze sposobów zwiększenia pojemności systemów serwerowych, bazodanowych, archiwizacyjnych itp.).

Rodzaje kompresji

W pojęciu ogólnym kompresja informacji źródłowej może być stratna lub bezstratna. Bezstratna kompresja informacji redukuje objętość przesyłanego zbioru informacji w taki sposób, aby jej treść nie uległa żadnej zmianie po operacji dekompresji. Jej przeciwieństwem są algorytmy kompresji stratnej, które w wyniku przetworzenia informacji (kompresji i dekompresji) nie dają identycznego zbioru danych po stronie odbiorczej.

Kompresja informacji w sieciach

Skuteczność kompresji danych (aplikacje)

Podczas kompresji stratnej z transmitowanego zbioru usuwa się pewne informacje - uznane przez mechanizm kompresji za zbędne - przy czym skasowane fragmenty danych źródłowych są nieodwracalnie stracone. Metody kompresji stratnej są użyteczne w procesie zmniejszania objętości większości plików dźwiękowych i obrazowych, dla których taka dokładność nie jest wcale potrzebna, nie można jej natomiast stosować w przekazach danych, plikach programowych czy w odniesieniu do ważnych aplikacji specjalistycznych (obrazy medyczne, mapy terenowe i inne).

Większość algorytmów dotyczących kompresji obrazu, dźwięku i głosu ma z natury charakter kompresji stratnej. Nie jest to wcale przeszkodą w rejestracji i odbiorze tak zmienionych sygnałów, gdyż czułość ludzkiego ucha i oka ma ograniczoną rozdzielczość, niewielkie straty w odbieranej informacji pozostają więc niezauważalne przez zmysły człowieka. Eliminowanie niedostrzegalnych dla oka i ucha elementów powoduje jednak, że sumaryczna wielkość przesyłanej informacji jest mniejsza, pasmo potrzebne do jej przesłania - węższe, a kanał transmisyjny potrzebny do jej przesłania jest wykorzystany bardziej efektywnie.

W komunikacji multimedialnej (głos z danymi) przez sieci transportowe zwykle brak rozróżnienia, które elementy można przesyłać ze stratami, a które bez strat, co praktycznie oznacza, że podstawowym sposobem kompresji w sieciach pozostaje wyłącznie bezstratna kompresja informacji. Bezstratne technologie kompresji dzielą się obecnie na dwie kategorie, różniące się sposobem tworzenia tablic kompresji wg algorytmów kompresji statystycznej lub podstawieniowej.

Kompresja informacji w sieciach

Proces kodowania metodą Huffmana (dla 6 znaków o różnym prawdopodobieństwie)

Działanie algorytmów kompresji bezstratnej polega na wyszukiwaniu i eliminowaniu z komprymowanego zbioru powtórzeń danych cyfrowych bądź ich zastępowaniu w procesie konwersji symbolami lub kodami reprezentującymi tę samą informację w sposób skrócony. Do najczęściej spotykanych sposobów kompresji bezstratnej zalicza się: redukcję liczby spacji; redukcję ciągu powtarzających się znaków jednym kodem z liczbą powtórzeń; kodowanie słowem kluczowym wg tablicy zawierającej najczęściej powtarzające się sekwencje danych (niekoniecznie znaków); kodowanie wg metody Huffmana oraz adaptacyjne kodowanie Lempel-Ziv. Programowe algorytmy bezstratnej kompresji danych wprowadzają opóźnienia, utrudniające prowadzenie transmisji w czasie rzeczywistym.

Najbardziej popularna do tej pory kompresja statystyczna oblicza w początkowej fazie kompresji (lub korzysta z gotowych szablonów wzorcowych) częstość występowania poszczególnych symboli znaków w zbiorze wejściowym, a następnie przypisuje im odpowiednio krótsze kody kompresji - ważne dla całego zbioru podlegającego kompresji. Liczba bitów konwersji przypisana poszczególnym komprymowanym znakom jest określana matematycznie na zasadzie prawdopodobieństwa ich występowania. Skuteczność tego rodzaju kompresji jest tym większa, im częściej w procesie kompresji pojawiają się znaki o przypisanych im krótszych kodach, niż miały one w oryginalnej postaci źródłowej.

Współcześnie funkcjonują dwie odmiany kompresji statystycznej: kompresja realizowana wg algorytmów statycznych lub dynamicznych (czyli adaptacyjnych). W statycznej kompresji, takiej jak kompresja Huffmana, mamy do dyspozycji zdefiniowaną jedną tablicę dla całego pliku lub obiektu podlegającego kompresji. Nie zmienia się ona podczas procesu kompresji kompletnego zbioru danych.

Kompresja informacji w sieciach

Algorytmy kompresji bezstratnej

W dynamicznej kompresji statystycznej zawartość tablicy szablonów kodowych może być modyfikowana. Na zmianę zawartości tablicy kodowej wpływa przede wszystkim rzeczywista częstotliwość występowania takich samych znaków lub symboli w transmitowanym zbiorze, adaptacja tablicy zaś w dużym stopniu zależy od kontekstowej treści zbioru źródłowego - nawet w obrębie jednego języka narodowego (archaiczny, współczesny, techniczny, inne). Za pomocą kompresji statystycznej z dynamicznym kodowaniem kontekstowym opartym na wyrażeniach (takim jak PPM czy kodowanie arytmetyczne) uzyskuje się wyższy stopień kompresji niż podczas kodowania algorytmami statycznymi ze stałą tablicą. Ten sposób kodowania przynosi lepsze zbliżenie do granicy kompresji wyznaczonej prawem Shannona.

Patrząc od strony szybkości przetwarzania, nie jest to jednak najbardziej optymalny sposób kompresji, gdyż czas potrzebny do przeliczania tablic algorytmów kodowania kontekstowego rośnie wykładniczo wraz z liczbą kontekstów. Wada ta pomniejsza korzyści wynikające ze skuteczności kompresji i powoduje, że ta kompresja nie jest stosowana praktycznie w aplikacjach czasu rzeczywistego. Potwierdza się w ten sposób ogólna zasada, że im bardziej skuteczna kompresja informacji, tym więcej wymaga czasu, aby uzyskać mniejszą zajętość kanału transmisyjnego.

Kompresja informacji w sieciach

Drzewiasta struktura algorytmu Lempel-Ziv

Drugą kategorię bezstratnej kompresji informacji stanowią algorytmy kompresji podstawieniowej, operujące na ciągach znaków lub symboli danych znajdujących się w strumieniu informacji źródłowej. Algorytmy kompresji podstawieniowej działają na innej zasadzie niż oparte na prawdopodobieństwie powtarzania się pojedynczego znaku w zbiorze. Algorytm podstawieniowy wyszukuje ciąg identycznych sekwencji elementów w strumieniu danych i zastępuje je pojedynczym odnośnikiem lub specjalnym żetonem - identyfikującym powtarzającą się wielokrotnie sekwencję w strumieniu.

Zamiast obliczania prawdopodobieństwa występowania pojedynczego znaku w zbiorze (wymagającego odpowiednio długiego czasu przetwarzania), algorytm podstawieniowy zastępuje zidentyfikowane długie sekwencje prostym odnośnikiem wskazującym konkretny szablon w tablicy kompresji.

Ponieważ detekcja szablonów jest szybsza niż kontekstowe obliczanie prawdopodobieństwa w algorytmach dynamicznej kompresji, algorytmy te są współcześnie stosowane do kompresji pasma w sieciach z aplikacjami czasu rzeczywistego.

Większość współczesnych metod kompresji bezstratnej w sieci używa algorytmów podstawieniowych, które przy niewielkiej mocy przetwarzania dają zadowalający współczynnik kompresji. Mimo ciągłego ulepszania, tradycyjne rozwiązania kompresji podstawieniowej mają znaczące ograniczenia i nie mogą sprostać rosnącym wymaganiom aplikacji we współczesnym środowisku sieciowym.

Cechy kompresji

Kompresja informacji w sieciach

Cechy tradycyjnej kompresji plików i kompresji sieciowej

Jednym z wyróżników między wieloma sposobami kompresji jest położenie powtarzających się elementów w zbiorze. Identyczne symbole zdarzają się wielokrotnie wewnątrz każdego pliku, obiektu czy sesji transmisyjnej, lecz ich liczba wewnątrz pojedynczego pakietu (średnio w obrębie 1460 bajtów dla sieci pakietowych) jest niestety stosunkowo mała.

Ponadto, w wyniku fragmentacji informacji w sieciach pakietowych WAN, pakiety są zwykle transmitowane w trybie bezpołączeniowym - w otoczeniu innych pakietów pochodzących od wielu użytkowników. Powoduje to dalszy wzrost dystansu między powtarzającymi się elementami w pliku oraz istotnie komplikuje algorytm przeszukiwania powtarzających się wzorców kompresji konkretnego zbioru. Dodatkową trudność stanowi wzrost szybkości łącza WAN (więcej nowych aplikacji i większa liczba innych użytkowników). W wyniku takiego agregowania informacji z wielu źródeł jeszcze bardziej wzrasta dystans między poszukiwanymi wzorcami zbioru, istotnie pogarszając proces kompresji.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200