Podręcznik
5. Metody kompresji sygnałów
Często się zdarza, że w procesie transmisji sygnałów pomiarowych, ze względu na ograniczoną przepustowość kanału transmisyjnego, zachodzi konieczność zastosowania kompresji danych. Wspólną cechą wszystkich metod kompresji danych jest redukcja średniej bitowej (bit rate, [bps], [bpp]) cyfrowej postaci danych w celu przesłania ich za pośrednictwem cyfrowego kanału komunikacyjnego lub zapamiętania w pamięci cyfrowej. Kompresja danych jest ściśle związana z teorią informacji, a w szczególności z jej działem znanym powszechnie pod nazwą teorii zniekształceń: Rate-Distortion Theory [1][10].
Algorytmy kompresji danych dzieli się na dwie podstawowe grupy: kompresji bezstratnej i kompresji stratnej. W kompresji bezstratnej nie dopuszcza się żadnych strat informacji. W procesie kompresji stratnej dopuszcza się pewną utratę informacji, kontrolując jednocześnie jakość sygnału odtworzonego. Naturalnym sposobem oceny wierności rekonstrukcji jest rozważenie różnic pomiędzy sygnałem oryginalnym i zrekonstruowanym, czyli zniekształceń powstałych w wyniku zastosowania kompresji. Dla przypadku dyskretnego najbardziej popularną miarą zniekształceń jest błąd średniokwadratowy, definiowany jako średnia arytmetyczna z kwadratów różnic pomiędzy wartościami amplitud poszczególnych elementów ciągu.
Ważną grupę pośród metod kompresji danych stanowią metody służące do kompresji sygnałów. Termin „sygnał” w tym zastosowaniu dotyczy postaci zdyskretyzowanej w czasie oraz poddanej procesowi równomiernej kwantyzacji skalarnej, a więc postaci cyfrowej. Zakłada się przy tym, że na etapie wstępnego przetwarzania sygnału było spełnione twierdzenie o próbkowaniu, zaś kwantyzacja w amplitudzie dokonana z odpowiednio dużą rozdzielczością.
Najbardziej znanym, akademickim przykładem kompresji sygnału pomiarowego może być metoda adaptacyjnego próbkowania sygnału, z kontrolą pochodnej. Kolejny przykład to nierównomierne próbkowanie z wykorzystaniem metody aproksymacyjnej za pomocą wielomianów. Obecnie należy się skoncentrować na metodach kompresji realizowanych w sposób cyfrowy. Ogólnie można przyjąć, że każda z wyżej wymienionych metod może być zrealizowana metodą eliminacji nadmiarowych próbek sygnału cyfrowego, uprzednio spróbkowanego i skwantowanego [22].
Dynamiczny rozwój techniki komputerowej doprowadził do stanu, gdy zakres metod przydatnych do praktycznej realizacji znacznie się poszerzył. Powstały metody hybrydowe łączące w sobie całe grupy sposobów kompresji. Zdaniem autorów najbardziej efektywnymi z punktu widzenia kompresji sygnałów są te metody hybrydowe (stratne), które określane są mianem kwantyzacji wektorowej współczynników transformat, łączące tradycyjne kodowanie transformacyjne z kwantyzacją wektorową i alokacją bitów.
Ujmując rzecz chronologicznie analizę metod transformacyjnych należałoby rozpocząć od metody kompresji określanej mianem kodowania transformacyjnego z kwantyzacją skalarną. Kodowanie transformacyjne jako rodzaj kodowania blokowego zaliczyć można do grupy metod quasi-wektorowych. Sam proces kwantyzacji tradycyjnie dokonywany jest oddzielnie dla każdego współczynnika transformaty, czyli na skalarach. Transformacja sprawia, że w ramach pojedynczego bloku danych wartość każdego współczynnika zależy od wszystkich danych wejściowych należących do tego samego bloku. Występuje efekt stopniowej, zależnej od rodzaju użytej transformaty, dekorelacji danych. Jednakże, mimo dobrych rezultatów uzyskiwanych przy kodowaniu transformacyjnym, ciągle brak jest ogólnej teorii dowodzącej, że dekorelująca transformacja jest najlepsza w sensie minimalizacji całkowitego błędu powstałego przy kodowaniu z zadaną efektywnością. Ponadto przetworzona w ten sposób informacja jest zwykle znacznie bardziej „upakowana” w wyniku koncentracji energii w obrębie fragmentu otrzymanego zbioru współczynników (własność niezmiernie cenna z punktu widzenia kompresji sygnału).
Biorąc pod uwagę jeden z fundamentalnych wniosków z teorii Shannona mówiący, że „zawsze lepszą efektywność uzyska się kodując całe bloki - wektory niż pojedyncze próbki, skalary” oraz fakt występowania bloków (wektorów) danych w przypadku transformat, naturalną konsekwencję stanowi próba połączenia obydwu wspomnianych wyżej metod, co w efekcie doprowadza do powstania wektorowej kwantyzacji współczynników transformaty.
Pozostaje kwestia doboru rodzaju transformaty. Największe znaczenie praktyczne mają: Dyskretna Transformata Fouriera (DFT) oraz Dyskretna Transformata Kosinusowa (DCT). Obydwie transformaty nie są optymalne w sensie dekorelacji danych, ale mają tę zaletę, że sposób ich obliczania nie zależy od danych wejściowych. Dzięki temu, przy obliczaniu odwrotnej transformaty nie są potrzebne żadne informacje pomocnicze. Druga przyczyna jest bardziej prozaiczna, DFT jest najbardziej popularną transformatą w dziedzinie Cyfrowego Przetwarzania Sygnału (analiz widmowych w szczególności) oraz istnieje szybki algorytm do jej numerycznego wyznaczania, który w sposób niemalże bezpośredni można użyć również do obliczeń DCT. Dyskretna Transformata Kosinusowa zawiera cechy transformacji w dziedzinę częstotliwości i jest równoważna DFT po dokonaniu symetryzującego rozszerzenia (podwojenia) zbioru próbek wejściowych. Ponadto ma ona tę przewagę, że daje wynik rzeczywisty. Stąd jej większa popularność w stosunku do DFT.
W dziedzinie kompresji sygnałów, podobnie jak w przypadku analizy czasowo-częstotliwościowej przoduje Dyskretna Transformata Falkowa (DWT). Jej zalety to: wysoka zdolność koncentracji energii (EPE), jednoczesna lokalizacja w czasie i częstotliwości, możliwość dopasowania kształtu falek do kształtu sygnału, zdolność analizy wielorozdzielczej.
Kwantyzacja wektorowa (VQ) jest metodą kodowania źródła, która umożliwia zastąpienie wektora (bloku) danych wejściowych za pomocą jednego spośród elementów specjalnego słownika. Prawidłowość w doborze właściwych elementów tego słownika stanowi fundamentalne zadanie w procesie projektowania kwantyzatorów wektorowych. Idea kwantyzacji wektorowej usprawiedliwia intuicyjne wysnucie wniosku, że sposób ten jest szczególnie efektywny w przypadku występowania zależności korelacyjnej między poszczególnymi składowymi wektorów. Jest to prawdą, lecz błędnym jest twierdzenie odwrotne jakoby kwantyzacja wektorowa nie wnosiła nic w sensie efektywności w przypadku wektorów o składowych nieskorelowanych. Z teorii kodowania źródłowego Shannona wynika jednoznacznie, że kwantyzacja wektorowa ma przewagę nad skalarną zarówno w sensie jakości jak i efektywności nawet w tym przypadku. Za wybitny przykład liniowej transformaty dekorelującej dane może tu posłużyć transformata Karhunena - Loeve’go (KLT). Okazuje się, że zastosowanie kwantyzacji skalarnej w stosunku do współczynników tej transformaty nie jest metodą umożliwiającą osiągnięcie optimum, w sensie efektywności, jakie daje kwantyzacja wektorowa. Tym bardziej stwierdzenie to jest słuszne, w odniesieniu do transformat dających tylko „częściową dekorelację” danych.
[1] Tłumaczenie polskie nie jest ścisłe. Określenie rate ma charakter wieloznaczny. W tym tekście można go utożsamić z pojęciem średniej bitowej (liczby bitów przypadającej na kwant sygnału lub jednostkę czasu). Funkcja RD ma kształt hiperboli.