Wavelet transform

kompresja Wavelet jest formą kompresji danych dobrze nadającą się do kompresji obrazu (czasami także kompresji wideo i kompresji audio). Godnymi uwagi implementacjami są JPEG 2000, DjVu i ECW dla obrazów nieruchomych, CineForm i BBC Dirac. Celem jest przechowywanie danych obrazu w jak najmniejszej przestrzeni w pliku. Kompresja falkowa może być bezstratna lub stratna. Kodowanie falkowe jest odmianą kodowania dyskretnej transformacji cosinusa (DCT), która używa falek zamiast algorytmu opartego na blokach DCT.

stosując transformatę falkową, metody kompresji falkowej są odpowiednie do reprezentowania przejściowych, takich jak dźwięki perkusji w audio lub komponenty wysokiej częstotliwości w dwuwymiarowych obrazach, na przykład obraz gwiazd na nocnym niebie. Oznacza to, że przejściowe elementy sygnału danych mogą być reprezentowane przez mniejszą ilość informacji niż w przypadku zastosowania innej transformacji, takiej jak bardziej rozpowszechniona Dyskretna transformata cosinusa.

Dyskretna transformata falkowa została z powodzeniem zastosowana do kompresji sygnałów elektrokardiografu (EKG) w tej pracy wykorzystuje się wysoką korelację między odpowiednimi współczynnikami falkowymi sygnałów kolejnych cykli sercowych, wykorzystując przewidywanie liniowe.

kompresja falkowa nie jest dobra dla wszystkich rodzajów danych: charakterystyka sygnału przejściowego oznacza dobrą kompresję falkową, podczas gdy gładkie, okresowe sygnały są lepiej kompresowane innymi metodami, szczególnie tradycyjną kompresją harmoniczną (dziedzina częstotliwości, jak transformaty Fouriera i pokrewne).

Zobacz Diary of an X264 Developer: the problems with wavelets (2010) w celu omówienia praktycznych kwestii obecnych metod wykorzystujących wavelets do kompresji wideo.

MethodEdit

najpierw zastosowana jest transformata falkowa. Daje to tyle współczynników, ile jest pikseli na obrazie (tzn. nie ma jeszcze kompresji, ponieważ jest to tylko transformacja). Współczynniki te można następnie łatwiej skompresować, ponieważ informacje są statystycznie skoncentrowane w zaledwie kilku współczynnikach. Zasada ta nazywa się kodowaniem transformacji. Następnie współczynniki są skwantyzowane, a wartości skwantyzowane są zakodowane entropią i / lub zakodowaną długością biegu.

kilka zastosowań 1D i 2D kompresji falkowej wykorzystuje technikę zwaną „footprints wavelet”.

Ocenaedit

Wymaganie kompresji obrazuedit

w przypadku większości naturalnych obrazów gęstość widma o niższej częstotliwości jest wyższa. W rezultacie informacje o sygnale niskiej częstotliwości (sygnale odniesienia) są na ogół zachowywane, podczas gdy informacje w sygnale szczegółowym są odrzucane. Z punktu widzenia kompresji i rekonstrukcji obrazu falownik powinien spełniać następujące kryteria podczas wykonywania kompresji obrazu:

  • możliwość przekształcenia bardziej oryginalnego obrazu w Sygnał odniesienia.
  • najwyższa wierność rekonstrukcji na podstawie sygnału odniesienia.
  • nie powinno prowadzić do artefaktów na obrazie zrekonstruowanym z samego sygnału odniesienia.

wymóg wariancji przesunięcia i zachowania dzwonkaedit

Wavelet image compression system obejmuje filtry i decymację, więc można go opisać jako liniowy system wariacji przesunięcia. Poniżej znajduje się typowy diagram transformacji falkowej:

typowy diagram transformacji falkowej.png

układ transformacji zawiera dwa filtry analizy (filtr dolnoprzepustowy h 0 (n) {\displaystyle H_{0} (n)}

{\displaystyle h_{0}(n)}

i filtr górnoprzepustowy H 1 (n) {\displaystyle h_{1} (n)}

H_{1}(n)

), proces decymacji, proces interpolacji i dwa filtry syntezy ( g 0 (n) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

i g 1 ( n) {\displaystyle g_{1} (n)}

{\displaystyle g_{1} (n)}

). System kompresji i rekonstrukcji zazwyczaj obejmuje komponenty o niskiej częstotliwości, czyli filtry analizujące h 0 (n) {\displaystyle h_{0} (n)}

{\displaystyle h_{0} (n)}

dla kompresji obrazu i filtrów syntezy g 0 ( n ) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

do rekonstrukcji. Aby obliczyć taki układ, możemy wprowadzić impuls δ (n-n i) {\displaystyle \delta (n-n_{i})}

{\displaystyle \delta (n-n_{i})}

i obserwuj jego rekonstrukcję h (N-N i) {\displaystyle h(N-n_{i})}

{\displaystyle h (n-n_{i})}

; optymalnymi falkami są te, które przynoszą minimalną zmienność przesunięcia i sidelobe do h(n − N i ) {\displaystyle h (n-n_{i})}

{\displaystyle h (n-n_{i})}

. Nawet jeśli Falka ze ścisłą wariancją przesunięcia nie jest realistyczna, możliwe jest wybranie Falki z niewielką wariancją przesunięcia. Na przykład, możemy porównać zmienność Przesunięcia dwóch filtrów:

filtry Biortogonalne do kompresji obrazu falkowego
Długość współczynniki filtrowania
Filtr Falkowy 1 H0 9 .852699, .377402, -.110624, -.023849, .037828 1.068
G0 7 .788486, .418092, -.040689, -.064539 1.701
Filtr Falkowy 2 H0 6 .788486, .047699, -.129078 0.701
G0 10 .615051, .133389, -.067237, .006989, .018914 2.068

obserwując reakcje impulsowe obu filtrów, możemy stwierdzić, że drugi filtr jest mniej czuły na położenie wejściowe (tzn. jest mniej przesunięty).

inną ważną kwestią dla kompresji i rekonstrukcji obrazu jest oscylacyjne zachowanie systemu, które może prowadzić do poważnych niepożądanych artefaktów w zrekonstruowanym obrazie. Aby to osiągnąć, filtry falkowe powinny mieć duży stosunek piku do sidelobe.

do tej pory dyskutowaliśmy o jednowymiarowej transformacji systemu kompresji obrazu. Problem ten można rozszerzyć do dwóch wymiarów, podczas gdy proponuje się bardziej ogólny termin – zmienna wieloskalowa transformacja -.

wyprowadzenie odpowiedzi impulsowejedit

jak wspomniano wcześniej, odpowiedź impulsowa może być wykorzystana do oceny systemu kompresji/rekonstrukcji obrazu.

dla sekwencji wejściowej x ( n ) = δ ( n − n i ) {\displaystyle x(n)=\delta (n-n_{i})}

{\displaystyle x(n)=\delta (n-n_{i})}

, Sygnał odniesienia r 1 (n) {\displaystyle r_{1} (n)}

{\displaystyle r_{1} (n)}

po jednym poziomie rozkładu jest x (n ) ∗ h 0 (n) {\displaystyle x (n) * H_{0} (n)}

{\displaystyle x (n) * H_{0}(n)}

przechodzi przez dziesiątkowanie przez współczynnik dwa, podczas gdy h 0 (n) {\displaystyle h_{0} (n)}

{\displaystyle h_{0}(n)}

jest filtrem dolnoprzepustowym. Podobnie następny Sygnał odniesienia r 2 (n) {\displaystyle r_{2} (n)}

{\displaystyle r_{2} (n)}

otrzymuje się przez r 1 ( n ) ∗ h 0 ( n ) {\displaystyle r_{1} (n)*h_{0} (n)}

{\displaystyle r_{1} (n) * H_{0}(n)}

przechodzi przez dziesiątkowanie przez współczynnik dwa. Po poziomach rozkładu L (i decymacji), odpowiedź analizy uzyskuje się przez zachowanie jednego z każdego 2 L {\displaystyle 2^{L}}

2^{L}

próbki: h A (L) (n , n i) = f h 0 ( L) (n − n i / 2 L) {\displaystyle h_{a}^{(l)} (n,n_{i})=f_{H0}^{(l)} (n-n_{i}/2^{L})}

{\displaystyle h_{a}^{(l)}(n,n_{i})=f_{H0}^{(L)} (n-n_{i} / 2^{L})}

.

z drugiej strony, aby zrekonstruować sygnał x (n), możemy rozważyć Sygnał odniesienia R L ( n) = δ ( n − n j) {\displaystyle r_{l}(n)=\delta (n-n_{j})}

{\displaystyle r_{l}(n)=\delta (N-n_{j})}

. Jeśli detal sygnalizuje d i (n) {\displaystyle d_{i} (n)}

{\displaystyle d_{i}(n)}

są równe zeru dla 1 ≤ i ≤ l {\displaystyle 1\leq i\leq L}

{\displaystyle 1\leq i\leq l}

, a następnie Sygnał odniesienia na poprzednim etapie ( L − 1 {\displaystyle L-1}

L-1

etap) to R L − 1 ( n ) = g 0 ( N − 2 n j ) {\displaystyle R_{L-1}(n)=g_{0}(N-2n_{j})}

{\displaystyle r_{L-1}(n)=g_{0}(n-2n_{j})}

, który otrzymuje się przez interpolację r L (n) {\displaystyle r_{l} (n)}

{\displaystyle r_{l}(n)}

i splotem z g 0 (n) {\displaystyle g_{0} (n)}

{\displaystyle g_{0} (n)}

. Podobnie, procedura jest iterowana w celu uzyskania sygnału odniesienia r(n) {\displaystyle r(n)}

r (n)

na etapie L − 2 , L − 3 , . . . . ,1 {\displaystyle L-2, L-3,….,1}

{\displaystyle L-2, L-3,...,1}

. Po iteracjach L oblicza się odpowiedź impulsową syntezy: h s (L) (n , N i) = f G 0 ( L) (n / 2 L − N j) {\displaystyle h_{s}^{(L)} (n,n_{i})=f_{G0}^{(L)} (n/2^{L} – n_{j})}

{\displaystyle h_{S}^{(L)}(n,n_{i})=f_{g0}^{(L)} (n / 2^{L} - n_{j})}

, który odnosi się do sygnału odniesienia r L (n) {\displaystyle r_{l} (n)}

{\displaystyle r_{l} (n)}

i zrekonstruowany sygnał.

aby uzyskać ogólny system analizy/syntezy poziomu L, odpowiedzi analizy i syntezy są łączone jak poniżej:

h I S ( L ) ( n , n ) = woda k f h 0 ( L ) ( k − N / 2 L ) f G 0 ( L ) ( N / 2 L − k ) {\styl wyświetlania h_{MP}^{(L)}(n,n_{i})=\suma _{k}f_{H0}^{(L)}(k-n_{i}/2^{l})f_{G0}^{(L)}(n/2 ^{l}-k)}

{\ styl wyświetlania h_{MP}^{(L)} (n,n_{i}) = \ suma _{k}f_{h0}^{(L)} (k-n_{i} / 2^{L})f_ {G0}^{(L)} (N/2^{L}-k)}