Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Podobne dokumenty
Transformaty. Kodowanie transformujace

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Kompresja dźwięku w standardzie MPEG-1

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

Transformata Fouriera

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

4 Zasoby językowe Korpusy obcojęzyczne Korpusy języka polskiego Słowniki Sposoby gromadzenia danych...

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Cyfrowe przetwarzanie i kompresja danych

Szereg i transformata Fouriera

Przekształcenie Fouriera obrazów FFT

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

Technika audio część 2

Akwizycja i przetwarzanie sygnałów cyfrowych

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

1. Modulacja analogowa, 2. Modulacja cyfrowa

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

FFT i dyskretny splot. Aplikacje w DSP

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Analiza obrazów - sprawozdanie nr 2

Kwantyzacja wektorowa. Kodowanie różnicowe.

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

O sygnałach cyfrowych

Kompresja video (MPEG)

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Ćwiczenie 3. Właściwości przekształcenia Fouriera

Lista. Przestrzenie liniowe. Zadanie 1 Sprawdź, czy (V, +, ) jest przestrzenią liniową nadr :

Prawdopodobieństwo i statystyka

Sygnał a informacja. Nośnikiem informacji mogą być: liczby, słowa, dźwięki, obrazy, zapachy, prąd itp. czyli różnorakie sygnały.

Akwizycja i przetwarzanie sygnałów cyfrowych

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0,

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 2 AiR III

Teoria sterowania - studia niestacjonarne AiR 2 stopień

Kodowanie podpasmowe

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Wykład 2: Szeregi Fouriera

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Zjawisko aliasingu. Filtr antyaliasingowy. Przecieki widma - okna czasowe.

Macierze. Rozdział Działania na macierzach

Akwizycja i przetwarzanie sygnałów cyfrowych

Przetwarzanie obrazów wykład 6. Adam Wojciechowski

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Podstawy Automatyki

Analiza obrazu. wykład 5. Marek Jan Kasprowicz Uniwersytet Rolniczy 2008

Procedura modelowania matematycznego

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW.

3. FUNKCJA LINIOWA. gdzie ; ół,.

5. Rozwiązywanie układów równań liniowych

Teoria przetwarzania A/C i C/A.

TRANSFORMATA FALKOWA 2D. Oprogramowanie Systemów Obrazowania 2016/2017

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Mechanika Kwantowa. Maciej J. Mrowiński. 24 grudnia Funkcja falowa opisująca stan pewnej cząstki ma następującą postać: 2 x 2 )

Podstawy Przetwarzania Sygnałów

Kompresja danych DKDA (7)

Zaawansowane metody numeryczne

Opis efektów kształcenia dla modułu zajęć

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

Równanie Schrödingera

9. Dyskretna transformata Fouriera algorytm FFT

TERAZ O SYGNAŁACH. Przebieg i widmo Zniekształcenia sygnałów okresowych Miary sygnałów Zasady cyfryzacji sygnałów analogowych

Diagnostyka obrazowa

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ

Wykład 6: Reprezentacja informacji w układzie optycznym; układy liniowe w optyce; podstawy teorii dyfrakcji

Spis treści. Metody nieparametryczne. Transformacja Fouriera

x(n) x(n-1) x(n-2) D x(n-n+1) h N-1

Generowanie sygnałów na DSP

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Właściwości sygnałów i splot. Krzysztof Patan

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

Symulacja sygnału czujnika z wyjściem częstotliwościowym w stanach dynamicznych

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Zadania z Analizy Funkcjonalnej I Które z poniższych przestrzeni metrycznych są przestrzeniami unormowanymi?

Przetwarzanie sygnałów

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Akwizycja i przetwarzanie sygnałów cyfrowych

Algebra liniowa. 1. Macierze.

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

Kompresja obrazów w statycznych - algorytm JPEG

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

KOMPUTEROWE SYSTEMY POMIAROWE

0 + 0 = 0, = 1, = 1, = 0.

Informacja o przestrzeniach Hilberta

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Katedra Elektrotechniki Teoretycznej i Informatyki

Transkrypt:

1 Kodowanie podpasmowe Kompresja Danych Streszczenie Studia Dzienne Wykład 13, 18.05.2006 1.1 Transformaty, próbkowanie i filtry Korzystamy z faktów: Każdą funkcję okresową można reprezentować w postaci nieskończonego szeregu funkcji sinusoidalnych (szeregi Fouriera): f(t) = a 0 + a n cos(nω 0 t) + b n sin(nω 0 t), n=1 n=1 gdzie ω 0 = 2π/T, a T to okres funkcji f. Co więcej, współczynniki a i, b i można wyliczyć z funkcji f. Inaczej mówiąc, funkcja f może być reprezentowana w bazie funkcji cos(nω 0 t), sin(nω 0 t) dla t = 1, 2,... Bardziej zwarta postać tej reprezentacji: f(t) = c n e inω0t, gdzie i = 1 (zamianę tych postaci uzyskujemy w oparciu o tożsamość e iφ = cos φ + i sin φ). A wartości c n wyliczamy ze wzoru c n = 1 T T 0 f(t)e inω 0t dt. Funkcję nieokresową możemy reprezentować jak powyżej w przedziale [a, b], zakładając, że jest ona okresowa, czyli poza przedziałem [a, b] zachodzi własność f(x) = f(x + T ) gdzie T = b a albo... dokładnie w bazie mocy continuum (transformata Fouriera) f(t) = 1 F (ω)e iωt dω, 2π 1

gdzie F (ω) = f(t)e iωt dt jest współczynnikiem przy funkcji e iωt. CZYLI: zbiór funkcji g(ω) = e iωt dla wszystkich ω R stanowi bazę. W praktyce kodowania mamy do czynienia nie z funkcjami ciągłymi, ale spróbkowanymi, czyli ciągami wartości o ustalonej długości N. Dla nich stosujemy rozkład na N składowych charakteryzujących cykliczność o długościach 1, 2, 3,..., N (dyskretna transformata Fouriera; DCT jest zastosowaniem dyskretnej transformaty Fouriera). Dla cyfrowej reprezentacji sygnałów analogowych kluczowe jest: Twierdzenie 1 (twierdzenie o próbkowaniu (Nyquist)). Niech f będzie funkcja, której transormata Fouriera jest równa 0 dla częstości większych niż W. Wówczas, funkcję f można odtworzyć z wartości w punktach f(i/(2w )) dla liczb całkowitych i. Inaczej mówiac, wystarczy próbkować funkcję f z częstotliwościa (2W ). Powyższy wynik ma też przydatne uogólnienie: Twierdzenie 2??? Niech f będzie funkcja, której transormata Fouriera jest równa 0 dla częstości większych niż W 1 i częstotliwości mniejszych niż W 2. Wówczas, wystarczy próbkować funkcję f z częstotliwościa (2(W 1 W 2 )). ALE NIE DLA WSZYSTKICH W 1 i W 2... Po co nam ten rozkład w dziedzinie częstotliwości (pierwsze przybliżenie)? niektóre częstotliwości nie są dostrzegane przez człowieka (np. dźwięk o częstotliwościach poniżej 20Hz i powyżej 20KHz); można je pominąć! w typowych danych dźwiękowych czy obrazach: tylko pewien zakres częstotliwości istotnie wpływa na kształt danych (odpowiadają mu duże współczynniki); jeśli chcemy reprezentować sygnał (funkcję) Porównanie idei kodowania transformującego (np. JPEG) i podpasmowego: Kodowanie transformujące: kodujemy współczynniki reprezentacji w bazie częstotliwości. Kodowanie podpasmowe: dzielimy sygnał na wiele sygnałów (pasm) powstałych przez usunięcie z sygnału składowych reprezentującyh częstotliwości spoza ustalonego zakresu. Następnie kodujemy poszczególne sygnały w oryginalnej reprezentacji (czasowej, przestrzennej) wykorzystując ich specyfikę, oraz specyfikę percepcji (ludzkiej) dla różnych częstotliwości. 2

Do rozkładu sygnału na pasma używa się filtrów. Jak działa filtr idealny : filtr dolnoprzepustowy: usuwa składowe o częstotliwościach powyżej W. filtr górnoprzepustowy: usuwa składowe o częstotliwościach poniżej W. filtr środkowoprzepustowy: usuwa składowe o częstotliwościach spoza przedziału [W 1, W 2 ]. Filtry rzeczywiste charakteryzujemy poprzez funkcję odwzorowującą w jakim stopniu składowe o poszczególnych częstotliwościach są przenoszone. Są to zazwyczaj funkcje ciągłe, które przenoszą również (w mniejszym stopniu) składowe o częstotliwościach które powinny być usunięte; redukują (częściowo) siłę sygnału o częstotliwościach, które powinny być przenoszone. Fakty wykorzystywane przy kodowaniu poszczególnych pasm: twierdzenie o próbkowaniu: pozwala na dziesiątkowanie (rozrzedzanie) ciągu danych; różnice w słyszalności dla różnych częstotliwości; logarytmiczna skala rozróżnialności głośności (siły sygnału); maskowanie w bazie częstotliwości: silny dźwięk o pewnej częstotliwości maskuje dźwięki o innych częstotliwościach występujące w tym samym momencie maskowanie w czasie: silny sygnał o częstotliwości f w momencie t powoduje niesłyszalność innych sygnałów w pewnym przedziale czasowym wokół t i podobnych częstotliwościach. Na czym polega dziesiątkowanie (przykład): dany jest sygnał f spróbkowany z częstotliwością W ; użyliśmy filtru, który usunął z sygnału częstotliwości większe od V dla V takiego, że V < W/2 i dla i > 1; uzyskaliśmy sygnał g; wobec tego do odtworzenia sygnału wystarczy próbkowanie go z częstością 2V < W/2 i 1 dla i > 1; czyli wystarczy pozostawić jedną (np. pierwszą) z każdych kolejnych 2 i 1 wartości sygnału g. 3

Po co jeszcze potrzebujemy filtrów: przy próbkowaniu sygnału z częstotliwością 2W, jego składowe o częstotliwościach większych od W powodują zniekształcenia zwane aliasingiem. aliasing polega na tym, że sygnał o zbyt dużej częstotliwości odtwarzany jest jako sygnał o częstotliwości mniejszej (p. cofające się koła w samochodach). dlatego: zazwyczaj przed kodowaniem usuwa się (za pomocą odpowiedniego filtru) z sygnału składowe o częstotliwościach większych od połowy częstotliwości prókowania. powyższy krok nazywany jest anty-liasingiem. 1.2 Kodowanie podpasmowe Ogólny schemat kodowania podpasmowego: 1. Wybierz zbiór filtrów. 2. Używając filtrów, rozłóż sygnał wejściowy na sygnały podpasm. 3. rozrzedzanie (dziesiątkowanie) sygnałów (jeśli częstotliwość większa od tej która wystarcza do odtworzenia rozważanych częstotliwości, wybieramy tylko co p-tą próbkę) 4. kwantyzacja sygnałów, lub kodowanie różnicowe i kwantyzacja: niektóre sygnały mogą być mniej zauważalne (np. te o większych częstotliwościach): stosujemy dla nich mniej dokładną kwantyzację; wynikowe sygnały mogą mieć różne własności statystyczne: możemy każdy z nich inaczej kodować; efekt maskowania: niektóre składowe możemy pomijać w określonych przedziałach. 5. kodowanie wynikowych sygnałów. Uwaga: w praktyce metodę powyższą stosujemy osobno dla kolejnych bloków danych o ustalonej długości; w metodach adaptacyjnych pewne parametry dla kolejnych bloków są ustalane na podstawie bloków poprzednich. UWAGA: gdyby filtry działały idealnie (usuwały częstotliwości spoza ustalonego przedziału i przenosiły bez zmian pozostałe częstotliwości), dekodowanie mogłoby polegać jedynie na odtworzeniu poszczególnych podpasm i zsumowaniu ich. Ogólny schemat dekodowania: 4

1. dekodowanie poszczególnych ciągów skwantyzowanych (algorytm bezstratny); 2. odtworzenie wartości (przybliżonych) poszczególnych podpasm (dekodowanie DPCM lub dekodowanie odpowiedniego algorytmu kwantyzacji); 3. zagęszczenie (uzupełnienie ciągów zerami) tak, aby uzyskać częstotliwość ciągu wejściowego; 4. zastosowanie filtrów syntezujących (odpowiednio dopasowanych do filtrów stosowanych w trakcie kodowania). 1.3 Jak wygladaj a filtry? (spróbkowany) sygnał x 1, x 2,... (wejścia) jest przekształcany przez filtr na sygnał y 1, y 2,... wg reguły N M y n = a i x n i + b i y n i gdzie wartości {a i } i {b i } nazywane są współczynnikami filtra. Podział filtrów: i=0 FIR (finite impulse filters): współczynniki {b i } są zerowe, czyli wyjście zależy tylko od wejścia; i=1 IIR (infinite impulse filters): {b i } nie są zerowe. Reakcja impulsowa filtra nazywamy ciąg h 1, h 2,... uzyskamy w wyniku zastosowania filtra do sygnału 1, 0, 0,... czyli x 1 = 1 i x i = 0 dla i > 1. Fakt 1 Reakcja impulsowa jednoznacznie definiuje filtr wg wzoru: M y n = h k x n k, k=0 gdzie M jest ustalona stała dla FIR oraz M = dla IIR (można przyjać, że x i = 0 dla i 0). Przykład... czyli jak to się dzieje, że filtr zdefiniowany jako funkcja liniowa wycina wybrane częstotliwości. Dany ciąg x 1,..., x 12 : Użyjemy dwóch filtrów: 10 14 10 12 14 8 14 12 10 8 10 12 5

y n = (x n + x n 1 )/2, czyli filtr o reakcji impulsowej 0.5, 0.5, 0, 0,..., inaczej h 0 = h 1 = 0.5 oraz h i = 0 dla pozostałych wartości i; z n = (x n x n 1 )/2, czyli filtr o reakcji impulsowej 0.5, 0.5, 0, 0,..., inaczej h 0 = 1, h 1 = 1, h i = 0 dla pozostałych wartości i. Obserwacje: do odtworzenia ciągu {x i } nie potrzebujemy nieparzystych wartości z ciągów {y i } i {z i }, ponieważ: y 2n + z 2n = x 2n y 2n z 2n = x 2n 1 (uzyskaliśmy to dzięki odpowiedniemu dopasowaniu do siebie filtrów y i z); ciąg {y i } wygląda następująco: a ciąg {z i } tak: 10 12 12 11 13 11 11 13 11 10 9 11 10 2 0 1 2 2 0 2 2 1 1 2 czyli {y n } to ciąg bardziej gładki od x n (można np. zastosować DPCM), a {z n } to ciąg o małym zakresie wartości (kwantyzacja skalarna dla oryginalnych wartości da niewielki błąd). Obserwacji c.d.: filtr y n jest filtrem dolnoprzepustowym (zachowuje niskie częstości), z n jest filtrem górnoprzepustowym (zachowuje wysokie częstości). eksperyment potwierdzający rolę filtrów y n i z n : efekt ich działania na ciągach 1, 1, 1,... (stałym) i 1, 1, 1, 1,... (ciąg o okresie częstości dwukrotnie mniejszej od częstości próbkowania). Jak wygląda filtr odwrotny (syntezujący)? dane są ciągi {y i } oraz {z i } takie, że y i = (x 2i + x 2i 1 )/2 oraz z i = (x 2i x 2i 1 )/2; jak odtworzyć ciąg {x i }? przypomnijmy wzory: x 2i = y i + z i oraz x 2i 1 = y i z i ; jeśli ciągi y i i z i przepleciemy : y 1, z 1, y 2, z 2,... i oznaczymy wynikowy ciąg przez {v i } to: x 2i = v 2i 1 + v 2i oraz x 2i 1 = v 2i 1 v 2i 6

czyli ciąg..., x 0, x 2, x 4, x 6,... uzyskamy poprzez zastosowanie do ciągu {v i }: filtra f o współczynnikach h 0 = h 1 = 1 (i h i = 0 dla pozostałych i) oraz usunięciu co drugiego elementu; ORAZ filtra g o współczynnikach h 0 = 1 i h 1 = 1; przeplecenie parzystych elementów z ciągów wyjściowych filtrów f i g. 1.4 Filtry bardziej ogólnie... Filtr (zdefiniowany przez współczynniki h i ) jako nieskończona transformata o macierzy H: macierz transformaty: wiersz 0 zawiera współczynniki h i (h i w i-tej kolumnie dla wszystkich całkowitych i); wiersz j to przesunięcie o j w prawo wiersza 0; wtedy iloczyn takiej macierzy przez wektor danych x da wynik zastosowania filtra y. Pytanie: kiedy filtrowanie jest operacją odwracalną?? Tylko gdy Hx = 0 x = 0. Czyli tylko dla nieciekawych filtrów. DF.A. Niech {g i } i {f i } to para filtrów taka, że wystarczy brać parzyste elementy z obu ciągów wynikowych (żeby odtworzyć ciąg wejściowy): niech (nieskończone) macierze G i F reprezentują oba filtry; wtedy przekształcenie przez nie zdefiniowane odpowiada: usunięciu nieparzystych wierszy z obu macierzy; przeplatamy wiersze parzyste. w powyższy sposób uzyskujemy macierz H, która definiuje przekształcenie dające w wyniku ciągi wynikowe obu filtrów f i g. Obserwacja: każdy wiersz macierzy przekształcenia definiującego filtr FIR (ze stałą liczbą niezerowych wartości h i ) ma skończoną liczbę wartości niezerowych. Przypomnienie: macierz (nieskończoną) A nazywamy ortonormalną gdy AA T = I. Twierdzenie 3 Jeśli macierz przekształcenia H odpowiadajacego parze filtrów {f i } i {g i } jest ortonormalna, a także ortonormalna jest macierz H T to przekształcenie to pozwoli odtworzyć sygnał wejściowy. 7

Jak to udowodnić: analogia do transformat. Wniosek: mamy już jakieś kryterium dla oceny, czy podana para filtrów jest dobra (pozwala odtworzyć sygnał). A teraz podamy konkretną metodę tworzenia filtra do pary. Twierdzenie 4 Niech h (zdefiniowany przez współczynniki {h i }) będzie filtrem spełniajacym warunek h i h i+2k = σ k gdzie σ k = 0 dla k 0 i σ 0 = 1 (p. ortonormalność). Niech g będzie filtrem zdefiniowanym przez następujace współczynniki i g k = ( 1) k h 1 k. Wtedy h i g tworza ortonormalny bank filtrów, co w szczególności oznacza, że sa para filtrów pozwalajac a odtworzyć sygnał oryginalny, za pomoca macierzy będac a transpozycja macierzy utworzonej wg DF.A. A jak tworzyć większe (nie dwu-elementowe) banki filtrów?... tym nie zajmiemy się, ale do kompresji falkowej wystarczą nam takie banki dwu-elementowe. 8