Kodowanie i kompresja informacji - Wykład 12 [10] 24 maja 2010
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie.
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki 1 Wybierz zbiór filtrów do rozkładu źródła {x n }.
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki 1 Wybierz zbiór filtrów do rozkładu źródła {x n }. 2 Używajac filtrów oblicz sygnały podpasm {y k,n }.
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki 1 Wybierz zbiór filtrów do rozkładu źródła {x n }. 2 Używajac filtrów oblicz sygnały podpasm {y k,n }. 3 Zdziesiatkuj wyjście filtra.
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki 1 Wybierz zbiór filtrów do rozkładu źródła {x n }. 2 Używajac filtrów oblicz sygnały podpasm {y k,n }. 3 Zdziesiatkuj wyjście filtra. 4 Zakoduj zdziesiatkowane wyjście.
Wprowadzenie Rozłożenie informacji na części (pasma) i kodowanie ich oddzielnie. Podstawowy schemat kodowania ma 4 kroki 1 Wybierz zbiór filtrów do rozkładu źródła {x n }. 2 Używajac filtrów oblicz sygnały podpasm {y k,n }. 3 Zdziesiatkuj wyjście filtra. 4 Zakoduj zdziesiatkowane wyjście. Odkodowywanie jest odwrotnościa kodowania.
Przykład Weźmy następujacy ciag wartości {x n }: 10 14 10 12 14 8 14 12 10 8 10 12
Przykład Weźmy następujacy ciag wartości {x n }: 10 14 10 12 14 8 14 12 10 8 10 12 Jeśli zastosowalibyśmy schemat DPCM to otrzymalibyśmy ciag: 10 4 4 2 2 6 6 2 2 2 2 2
Przykład Weźmy następujacy ciag wartości {x n }: 10 14 10 12 14 8 14 12 10 8 10 12 Jeśli zastosowalibyśmy schemat DPCM to otrzymalibyśmy ciag: 10 4 4 2 2 6 6 2 2 2 2 2 Jeśli pominiemy pierwsza wartość to różnice sa między -6 a 6.
Przykład Weźmy następujacy ciag wartości {x n }: 10 14 10 12 14 8 14 12 10 8 10 12 Jeśli zastosowalibyśmy schemat DPCM to otrzymalibyśmy ciag: 10 4 4 2 2 6 6 2 2 2 2 2 Jeśli pominiemy pierwsza wartość to różnice sa między -6 a 6. Dla kwantyzatora równomiernego o M wartościach (przedziale kwantyzacji = 12/M) maksymalny bład kwantyzacji wynosi 6/M.
Przykład Rozbijmy teraz sygnał źródłowy na dwa pasma według wzorów: y n = x n + x n 1 2 z n = x n y n = x n x n 1 2
Przykład Rozbijmy teraz sygnał źródłowy na dwa pasma według wzorów: y n = x n + x n 1 2 z n = x n y n = x n x n 1 2 Odpowiednie ciagi {y n } i {z n } wynosza wówczas 10 12 12 11 13 11 11 13 11 10 9 11 0 2 2 1 1 3 3 1 1 1 1 1
Przykład Rozbijmy teraz sygnał źródłowy na dwa pasma według wzorów: y n = x n + x n 1 2 z n = x n y n = x n x n 1 2 Odpowiednie ciagi {y n } i {z n } wynosza wówczas 10 12 12 11 13 11 11 13 11 10 9 11 0 2 2 1 1 3 3 1 1 1 1 1 Teraz stosujac schemat DPCM do ciagu {y n } otrzymamy ciag 10 2 0 1 2 2 0 2 2 1 1 2
Przykład Rozbijmy teraz sygnał źródłowy na dwa pasma według wzorów: y n = x n + x n 1 2 z n = x n y n = x n x n 1 2 Odpowiednie ciagi {y n } i {z n } wynosza wówczas 10 12 12 11 13 11 11 13 11 10 9 11 0 2 2 1 1 3 3 1 1 1 1 1 Teraz stosujac schemat DPCM do ciagu {y n } otrzymamy ciag 10 2 0 1 2 2 0 2 2 1 1 2 Dla kwantyzatora o poziomie M wymaganym rozmiarem kroku będzie = 4/M co daje maksymalny bład kwantyzacji 2/M.
Przykład Ciag {z n } możemy przesłać bezpośrednio korzystajac z kwantyzatora o poziomie M z długościa kroku = 6/M co daje bład 3/M.
Przykład Ciag {z n } możemy przesłać bezpośrednio korzystajac z kwantyzatora o poziomie M z długościa kroku = 6/M co daje bład 3/M. Przy tej samej ilości bitów na próbkę (zależna od M) możemy zakodować y n i z n z mniejszym błędem. Maksymalny bład kwantyzacji w odtwarzanym ciagu to 5/M zamiast 6/M.
Przykład Ciag {z n } możemy przesłać bezpośrednio korzystajac z kwantyzatora o poziomie M z długościa kroku = 6/M co daje bład 3/M. Przy tej samej ilości bitów na próbkę (zależna od M) możemy zakodować y n i z n z mniejszym błędem. Maksymalny bład kwantyzacji w odtwarzanym ciagu to 5/M zamiast 6/M. Ale liczba elementów zwiększyła się dwukrotnie co w efekcie daje podwojenie liczby przesyłanych bitów.
Przykład Możemy tego uniknać wysyłajac tylko co drugi (parzysty element). stad y 2n = x 2n + x 2n 1 2 x 2n = y 2n + z 2n z 2n = x 2n x 2n 1 2 x 2n 1 = y 2n z 2n
Przykład Możemy tego uniknać wysyłajac tylko co drugi (parzysty element). stad y 2n = x 2n + x 2n 1 2 x 2n = y 2n + z 2n z 2n = x 2n x 2n 1 2 x 2n 1 = y 2n z 2n Stad możemy odtworzyć cały ciag oryginalny przesyłajac tyle samo bitów ile dla oryginalnego ciagu. Efektem jest mniejsze zniekształcenie.
Przykład Możemy tego uniknać wysyłajac tylko co drugi (parzysty element). stad y 2n = x 2n + x 2n 1 2 x 2n = y 2n + z 2n z 2n = x 2n x 2n 1 2 x 2n 1 = y 2n z 2n Stad możemy odtworzyć cały ciag oryginalny przesyłajac tyle samo bitów ile dla oryginalnego ciagu. Efektem jest mniejsze zniekształcenie. Oba wysyłane podciagi miały inne charakterystyki i inne metody zakodowania.
Filtry Układy które wyodrębniaja składowe o odpowiednich częstotliwościach nazywamy filtrami. Mamy trzy rodzaje filtrów:
Filtry Układy które wyodrębniaja składowe o odpowiednich częstotliwościach nazywamy filtrami. Mamy trzy rodzaje filtrów: dolnoprzepustowe przepuszczaja tylko częstotliwości poniżej ustalonej częstotliwości f 0.
Filtry Układy które wyodrębniaja składowe o odpowiednich częstotliwościach nazywamy filtrami. Mamy trzy rodzaje filtrów: dolnoprzepustowe przepuszczaja tylko częstotliwości poniżej ustalonej częstotliwości f 0. górnoprzepustowe przepuszczaja tylko częstotliwości powyżej ustalonej częstotliwości f 0.
Filtry Układy które wyodrębniaja składowe o odpowiednich częstotliwościach nazywamy filtrami. Mamy trzy rodzaje filtrów: dolnoprzepustowe przepuszczaja tylko częstotliwości poniżej ustalonej częstotliwości f 0. górnoprzepustowe przepuszczaja tylko częstotliwości powyżej ustalonej częstotliwości f 0. środkowoprzepustowe przepuszczaja tylko częstotliwości między f 1 a f 2.
Filtry Układy które wyodrębniaja składowe o odpowiednich częstotliwościach nazywamy filtrami. Mamy trzy rodzaje filtrów: dolnoprzepustowe przepuszczaja tylko częstotliwości poniżej ustalonej częstotliwości f 0. górnoprzepustowe przepuszczaja tylko częstotliwości powyżej ustalonej częstotliwości f 0. środkowoprzepustowe przepuszczaja tylko częstotliwości między f 1 a f 2. Filtry rzeczywiste maja nieostre granice przejścia (odcięcia).
Filtry Reguła Nyquista Jeśli sygnały maja tylko składowe o częstotliwościach między f 1 a f 2 to aby odtworzyć dokładnie sygnał musimy próbkować sygnał z częstościa przynajmniej 2(f 2 f 1 ) próbek na sekundę.
Filtry Reguła Nyquista Jeśli sygnały maja tylko składowe o częstotliwościach między f 1 a f 2 to aby odtworzyć dokładnie sygnał musimy próbkować sygnał z częstościa przynajmniej 2(f 2 f 1 ) próbek na sekundę. Filtrowanie cyfrowe Suma ważona bieżacego i poprzednich wejść filtra i ewentualnie także wyjść filtra. y n = N a i x n i + i=0 M b i y n i i=1 Wartości {a i } i {b j } nazywamy współczynnikami filtra.
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0.
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0....
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0.... Takie wyjście nazywamy reakcja impulsowa filtra (oznaczamy zwykle jako {h n }.
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0.... Takie wyjście nazywamy reakcja impulsowa filtra (oznaczamy zwykle jako {h n }. Jeśli znamy reakcję impulsowa to znamy też współczynniki filtra.
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0.... Takie wyjście nazywamy reakcja impulsowa filtra (oznaczamy zwykle jako {h n }. Jeśli znamy reakcję impulsowa to znamy też współczynniki filtra. W przykładzie z poczatku wykładu mieliśmy filtr uśredniajacy (dolnoprzepustowy) 2-rzędowy z reakcja impulsowa 1/2 1/2 0 0... i różnicowy (górnoprzepustowy) z reakcja 1/2 1/2 0 0...
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0.... Takie wyjście nazywamy reakcja impulsowa filtra (oznaczamy zwykle jako {h n }. Jeśli znamy reakcję impulsowa to znamy też współczynniki filtra. W przykładzie z poczatku wykładu mieliśmy filtr uśredniajacy (dolnoprzepustowy) 2-rzędowy z reakcja impulsowa 1/2 1/2 0 0... i różnicowy (górnoprzepustowy) z reakcja 1/2 1/2 0 0... Z kolei dla filtru z a 0 = 1 i b 1 = 0, 9 reakcja impulsowa jest postaci h n = (0.9) n.
Przykład Weźmy filtr o współczynnikach a 0 = 1.25 i a 1 = 0.5 i ciag wejściowy {x n } taki, że x 0 = 1 a pozostałe wyrazy sa równe 0. Wyjściem jest ciag {y n }: 1.25 0.5 0 0.... Takie wyjście nazywamy reakcja impulsowa filtra (oznaczamy zwykle jako {h n }. Jeśli znamy reakcję impulsowa to znamy też współczynniki filtra. W przykładzie z poczatku wykładu mieliśmy filtr uśredniajacy (dolnoprzepustowy) 2-rzędowy z reakcja impulsowa 1/2 1/2 0 0... i różnicowy (górnoprzepustowy) z reakcja 1/2 1/2 0 0... Z kolei dla filtru z a 0 = 1 i b 1 = 0, 9 reakcja impulsowa jest postaci h n = (0.9) n. Filtry dzielimy na filtry o skończonej i nieskończonej reakcji.
Przykład (2) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 0, 9. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 0, 9 y 2 = a 0 x 2 + b 1 y 1 = 0, 81 y n = (0, 9) n.
Przykład (2) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 0, 9. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 0, 9 y 2 = a 0 x 2 + b 1 y 1 = 0, 81 y n = (0, 9) n. To samo, w bardziej zwartej postaci, możemy zapisać jako: { 0 dla n < 0 h n = (0, 9) n dla n 0.
Przykład (2) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 0, 9. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 0, 9 y 2 = a 0 x 2 + b 1 y 1 = 0, 81 y n = (0, 9) n. To samo, w bardziej zwartej postaci, możemy zapisać jako: { 0 dla n < 0 h n = (0, 9) n dla n 0. Możemy otrzymać x n z h n korzystajac ze zwiazku y n = M k=0 h kx n k.
Przykład (3) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 2. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 2 y 2 = a 0 x 2 + b 1 y 1 = 4 y n = 2 n.
Przykład (3) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 2. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 2 y 2 = a 0 x 2 + b 1 y 1 = 4 y n = 2 n. To samo, w bardziej zwartej postaci, możemy zapisać jako: { 0 dla n < 0 h n = 2 n dla n 0.
Przykład (3) Rozważmy filtr, dla którego a 0 = 1 a b 1 = 2. Dla wejścia 1 0 0... otrzymujemy: y 0 = a 0 x 0 + b 1 y 1 = 1 y 1 = a 0 x 1 + b 1 y 0 = 2 y 2 = a 0 x 2 + b 1 y 1 = 4 y n = 2 n. To samo, w bardziej zwartej postaci, możemy zapisać jako: { 0 dla n < 0 h n = 2 n dla n 0. Choć filtry IIR bywaja niestabilne (daja nieograniczone wyjście przy skończonym wejściu), to niektóre z nich maja lepsze parametry odcięcia niż filtry FIR.
Filtry Pojedyncze filtry bardzo często łaczymy w kaskady (struktura drzewiasta).
Filtry Pojedyncze filtry bardzo często łaczymy w kaskady (struktura drzewiasta). Filtry dobieramy do sygnału.
Filtry Pojedyncze filtry bardzo często łaczymy w kaskady (struktura drzewiasta). Filtry dobieramy do sygnału. Podział może być na pasma nienakładajace się lub nakładajace.
Filtry Pojedyncze filtry bardzo często łaczymy w kaskady (struktura drzewiasta). Filtry dobieramy do sygnału. Podział może być na pasma nienakładajace się lub nakładajace. Redukcja próbek na wyjściu odpowiada redukcji rozmiaru częstotliwości (dziesiatkowanie).
Budowa banku filtrów
filtry W przypadku kodowania podpasmowego zwykle stosujemy filtry QMF (quadrature mirror filters).
filtry W przypadku kodowania podpasmowego zwykle stosujemy filtry QMF (quadrature mirror filters). Maja one następujac a własność: jeżeli reakcja impulsowa filtra dolnoprzepustowego jest zadana jako {h n } to reakcja filtra górnoprzepustowego jest dana jako: {( 1) n h N 1 n }. Powszechnie stosowane sa filtry Johnstona, w których: h N 1 n = h n n = 0, 1,..., N 2 1.
filtry (2) Współczynniki 8-rzędowego filtra dolnoprzepustowego Johnstona h 0, h 7 0, 00938715 h 1, h 6 0, 06942827 h 2, h 5 0, 07065183 h 3, h 4 0, 48998080
filtry (3) Współczynniki 8-rzędowego filtra dolnoprzepustowego Smitha-Barnwella h 0 0, 0348975582178515 h 1 0, 01098301946253854 h 2 0, 06286453934951963 h 3 0, 223907720892568 h 4 0, 556856993531445 h 5 0, 357976304997285 h 6 0, 02390027056113145 h 7 0, 07594096379188282
Funkcja przeniesienia modułu 8-rzędowy filtr Johnstona
Funkcja przeniesienia modułu 8-rzędowy filtr Johnstona 8-rzędowy filtr Smitha-Barnwella
Schemat blokowy systemu kodowania podpasmowego
Zastosowanie kodowanie mowy G.722 Zalecenie G.772 organizacji ITU-I dotyczy techniki szerokopasmowego kodowania sygnału mowy, opartej na kodowaniu podpasmowym. Kodowanie pracuje w trybach 64, 56 i 48kbps.
Zastosowanie kodowanie mowy G.722 Zalecenie G.772 organizacji ITU-I dotyczy techniki szerokopasmowego kodowania sygnału mowy, opartej na kodowaniu podpasmowym. Kodowanie pracuje w trybach 64, 56 i 48kbps. Jako ochronę przed aliasingiem stosowany jest filtr antyaliasingowy 7kHz (nie 8kHz, ze względu na charakterystykę filtra) przy próbkowaniu 16 000/s.
Zastosowanie kodowanie mowy G.722 Zalecenie G.772 organizacji ITU-I dotyczy techniki szerokopasmowego kodowania sygnału mowy, opartej na kodowaniu podpasmowym. Kodowanie pracuje w trybach 64, 56 i 48kbps. Jako ochronę przed aliasingiem stosowany jest filtr antyaliasingowy 7kHz (nie 8kHz, ze względu na charakterystykę filtra) przy próbkowaniu 16 000/s. Każda próbka jest kodowana przy użyciu 14-bitowego, jednolitego kwantyzatora i przepuszczana przez bank 24-rzędowych filtrów FIR. Wynik filtrów jest redukowany o współczynnik 2 i kodowany przy użyciu ADPCM (6 bitów na próbkę, z możliwościa odrzucenia 1 lub 2 niższe pasmo i 2 bity wyższe).
Zastosowanie kodowanie dźwięku MPEG Trzy schematy kodowania: Layer 1, Layer 2, Layer 3, każdy kolejny bardziej skomplikowany i dajacy lepsza kompresję. Kodery zgodne w górę.
Zastosowanie kodowanie dźwięku MPEG Trzy schematy kodowania: Layer 1, Layer 2, Layer 3, każdy kolejny bardziej skomplikowany i dajacy lepsza kompresję. Kodery zgodne w górę. Kodery Layer 1 i 2 używaja banku 32 filtrów (32 podpasma o szerokości f s /64, gdzie f s to częstotliwość próbkowania równa 32 000, 44 100 lub 48 000).
Zastosowanie kodowanie dźwięku MPEG Trzy schematy kodowania: Layer 1, Layer 2, Layer 3, każdy kolejny bardziej skomplikowany i dajacy lepsza kompresję. Kodery zgodne w górę. Kodery Layer 1 i 2 używaja banku 32 filtrów (32 podpasma o szerokości f s /64, gdzie f s to częstotliwość próbkowania równa 32 000, 44 100 lub 48 000). Wyjście kwantyzowane przy użyciu równomiernego kwantyzatora ze zmienna liczba bitów (model psychoakustyczny własności ludzkiego ucha).
Zastosowanie kodowanie dźwięku MPEG Trzy schematy kodowania: Layer 1, Layer 2, Layer 3, każdy kolejny bardziej skomplikowany i dajacy lepsza kompresję. Kodery zgodne w górę. Kodery Layer 1 i 2 używaja banku 32 filtrów (32 podpasma o szerokości f s /64, gdzie f s to częstotliwość próbkowania równa 32 000, 44 100 lub 48 000). Wyjście kwantyzowane przy użyciu równomiernego kwantyzatora ze zmienna liczba bitów (model psychoakustyczny własności ludzkiego ucha). W Layer 1 i 2 ramki zawieraja odpowiednio 384 i 1152 próbki (ma to wady przy dużej zmienności sygnału i zostało poprawione w 3).
Zastosowanie kompresja obrazów Obraz dzielimy za pomoca filtrów (najlepiej separowalnych, aby można stosować je oddzielnie w każdym z wymiarów) górno i dolno przepustowych, a następnie dziesiatkujemy wyjście o czynnik 2.
Zastosowanie kompresja obrazów Obraz dzielimy za pomoca filtrów (najlepiej separowalnych, aby można stosować je oddzielnie w każdym z wymiarów) górno i dolno przepustowych, a następnie dziesiatkujemy wyjście o czynnik 2. W każdym kroku zwykle rozkładamy tylko jeden z 4 otrzymanych podobrazów (podobrazy o wysokiej częstotliwości maja większość współczynników bliskich zeru).
Schematy typu analiza-synteza Główna idea Zamiast otrzymywać jakieś przybliżenia kolejnych wartości sygnału źródłowego modelujemy sygnał wejściowy i przesyłamy parametry modelu. Odbiornik na podstawie otrzymanych parametrów syntetyzuje sygnał źródłowy.
Schematy typu analiza-synteza Główna idea Zamiast otrzymywać jakieś przybliżenia kolejnych wartości sygnału źródłowego modelujemy sygnał wejściowy i przesyłamy parametry modelu. Odbiornik na podstawie otrzymanych parametrów syntetyzuje sygnał źródłowy. Metoda stosowana najczęściej do kompresji mowy. Stosujemy model symulujacy działanie narzadu mowy wysyłajac takie parametry jak dźwięczność czy bezdźwięczność, szybkość przepływu powietrza czy naprężenie strun głosowych.
Schemat systemu Sygnał wzbudzenia, najczęściej dwóch różnych typów: szum lub pewna ustalona częstotliwość dźwięku.
Schemat systemu Sygnał wzbudzenia, najczęściej dwóch różnych typów: szum lub pewna ustalona częstotliwość dźwięku. Filtr model narzadu mowy.
Schemat systemu Sygnał wzbudzenia, najczęściej dwóch różnych typów: szum lub pewna ustalona częstotliwość dźwięku. Filtr model narzadu mowy. Pierwsze prace nad mówiacymi maszynami sięgaja XVIII wieku!
Głoska dźwięczna
Głoska bezdźwięczna
Schemat model syntezy mowy
Schemat wokoder odbiornika
Schematy typu analiza-synteza w kodowaniu obrazów Sa prowadzone badania nad zastosowaniem tego typu schematów w kompresji obrazów, jednak modele tego typu nie doczekały się jeszcze implementacji na szersza skalę (przykład: generowanie modelu twarzy mówiacego, zamiast przesyłania samych obrazów).
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele.
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele. Pewne zniekształcenia między klatkami sa słabo widoczne (np. niewyraźne krawędzie) a niektóre bardzo silnie (np. zmiany jasności powodujace migotanie).
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele. Pewne zniekształcenia między klatkami sa słabo widoczne (np. niewyraźne krawędzie) a niektóre bardzo silnie (np. zmiany jasności powodujace migotanie). W predykcji następnych klatek możemy wykorzystać poprzednie.
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele. Pewne zniekształcenia między klatkami sa słabo widoczne (np. niewyraźne krawędzie) a niektóre bardzo silnie (np. zmiany jasności powodujace migotanie). W predykcji następnych klatek możemy wykorzystać poprzednie. Operacja predykcji musi uwzględniać jednak ruch obiektów.
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele. Pewne zniekształcenia między klatkami sa słabo widoczne (np. niewyraźne krawędzie) a niektóre bardzo silnie (np. zmiany jasności powodujace migotanie). W predykcji następnych klatek możemy wykorzystać poprzednie. Operacja predykcji musi uwzględniać jednak ruch obiektów. Aby zapobiec akumulacji błędów co jakiś czas rezygnujemy z predykcji (co ileś klatek albo gdy zmiany między klatkami sa zbyt duże).
Kompresja wideo W większości sekwencji video kolejne klatki obrazu różnia się niewiele. Pewne zniekształcenia między klatkami sa słabo widoczne (np. niewyraźne krawędzie) a niektóre bardzo silnie (np. zmiany jasności powodujace migotanie). W predykcji następnych klatek możemy wykorzystać poprzednie. Operacja predykcji musi uwzględniać jednak ruch obiektów. Aby zapobiec akumulacji błędów co jakiś czas rezygnujemy z predykcji (co ileś klatek albo gdy zmiany między klatkami sa zbyt duże). Kompresja całych klatek opiera się na algorytmach kompresji obrazu.
Kompensacja ruchu Weźmy dwie kolejne klatki. Obie sa bardzo podobne.
Kompensacja ruchu Ale ich nałożenie (XOR) daje obraz dużo bardziej skomplikowany. Jak więc zastosować predykcję?
Kompensacja ruchu Kolejna klatkę dzielimy na jednakowe kwadraty i szukamy na poprzedniej fragmentu najbardziej podobnego. Przesyłamy wektor przesunięcia i różnicę między kwadratami.
Podstawowe elementy algorytmów Aby zachować kompromis pomiędzy jakościa danych a kompresja podzielono klatki zostały podzielone na tzw. grupy obrazów (GOP). W ramach grupy obrazów występuje: co najmniej jedna (zwykła dokładnie jedna) ramka typu I,
Podstawowe elementy algorytmów Aby zachować kompromis pomiędzy jakościa danych a kompresja podzielono klatki zostały podzielone na tzw. grupy obrazów (GOP). W ramach grupy obrazów występuje: co najmniej jedna (zwykła dokładnie jedna) ramka typu I, pewna liczba ramek typu P,
Podstawowe elementy algorytmów Aby zachować kompromis pomiędzy jakościa danych a kompresja podzielono klatki zostały podzielone na tzw. grupy obrazów (GOP). W ramach grupy obrazów występuje: co najmniej jedna (zwykła dokładnie jedna) ramka typu I, pewna liczba ramek typu P, opcjonalnie pewna liczba ramek typu B.
Rodzaje ramek Typ I obraz zakodowany podobnie jak w standardzie JPEG, bez wykorzystania informacji z innych obrazów.
Rodzaje ramek Typ I obraz zakodowany podobnie jak w standardzie JPEG, bez wykorzystania informacji z innych obrazów. Typ P obraz zakodowany jako różnica pomiędzy poprzednia ramka typu P lub I, a bieżac a.
Rodzaje ramek Typ I obraz zakodowany podobnie jak w standardzie JPEG, bez wykorzystania informacji z innych obrazów. Typ P obraz zakodowany jako różnica pomiędzy poprzednia ramka typu P lub I, a bieżac a. Typ B obraz zakodowany z wykorzystaniem najbliższych (w obie strony!) dwóch ramek typu P lub I.
Rodzaje ramek Typ I obraz zakodowany podobnie jak w standardzie JPEG, bez wykorzystania informacji z innych obrazów. Typ P obraz zakodowany jako różnica pomiędzy poprzednia ramka typu P lub I, a bieżac a. Typ B obraz zakodowany z wykorzystaniem najbliższych (w obie strony!) dwóch ramek typu P lub I. Typowa sekwencja dla MPEG-1: I B B B P B B B P B B B P B B B P przesyłana w kolejności: I P B B B P B B B P B B B P B B B (czasami ramka I może być poprzedzona w bloku ramka B zakodowana tylko w jedna strona ).
Wnioski Błędy z ramek typu B nie propaguja się.
Wnioski Błędy z ramek typu B nie propaguja się. Każdy GOP musi zawierać co najmniej jedna ramkę typu I.
Wnioski Błędy z ramek typu B nie propaguja się. Każdy GOP musi zawierać co najmniej jedna ramkę typu I. Aby rozpoczać odtwarzanie strumienia należy poczekać na pierwsza ramkę typu I.
Wnioski Błędy z ramek typu B nie propaguja się. Każdy GOP musi zawierać co najmniej jedna ramkę typu I. Aby rozpoczać odtwarzanie strumienia należy poczekać na pierwsza ramkę typu I. Kodowanie ramek typu B jest najbardziej złożone obliczeniowo i pamięciowo.
Wnioski Błędy z ramek typu B nie propaguja się. Każdy GOP musi zawierać co najmniej jedna ramkę typu I. Aby rozpoczać odtwarzanie strumienia należy poczekać na pierwsza ramkę typu I. Kodowanie ramek typu B jest najbardziej złożone obliczeniowo i pamięciowo. Liczby ramek poszczególnych typów ustalane sa jako kompromis pomiędzy wydajnościa, kompresja i przydatnościa do konkretnego zastosowania.
Algorytmy kompresji video Algorytmy symetryczne wideokonferencje Algorytmy kompresji i dekompresji musza być szybkie przesyłanie obrazu on-line.
Algorytmy kompresji video Algorytmy symetryczne wideokonferencje Algorytmy kompresji i dekompresji musza być szybkie przesyłanie obrazu on-line. Algorytmy asymetryczne przechowywanie filmów Algorytmy kompresji moga być czaso- i zasobochłonne, natomiast dekompresja musi być szybka. Standardy MPEG-1, MPEG-2, MPEG-4.
Kompresja stratna Podsumowanie Istnieje wiele technik upraszczania sygnałów z niewielkim ich zniekształcaniem.
Kompresja stratna Podsumowanie Istnieje wiele technik upraszczania sygnałów z niewielkim ich zniekształcaniem. Większość ma silne podstawy matematyczne.
Kompresja stratna Podsumowanie Istnieje wiele technik upraszczania sygnałów z niewielkim ich zniekształcaniem. Większość ma silne podstawy matematyczne. Kompresja stratna może być skutecznie stosowana tylko do pewnych rodzajów danych w których zniekształcenia nie wpływaja na odbiór danych.
Korekcja błędów - przykład ISBN International Standard Book Number 9-cio cyfrowy numer nadawany ksiażkom (3 części: kraj pochodzenia, wydawca, nr publikacji).
Korekcja błędów - przykład ISBN International Standard Book Number 9-cio cyfrowy numer nadawany ksiażkom (3 części: kraj pochodzenia, wydawca, nr publikacji). Dla kontroli dodajemy 10 cyfrę, tak aby była spełniona równość 10 i=1 i x i = 0 ( mod 11)
Korekcja błędów - przykład ISBN International Standard Book Number 9-cio cyfrowy numer nadawany ksiażkom (3 części: kraj pochodzenia, wydawca, nr publikacji). Dla kontroli dodajemy 10 cyfrę, tak aby była spełniona równość 10 i=1 i x i = 0 ( mod 11) Czasami jako ostatnia cyfra pojawia się X i oznacza ona 10.
Korekcja błędów - przykład ISBN International Standard Book Number 9-cio cyfrowy numer nadawany ksiażkom (3 części: kraj pochodzenia, wydawca, nr publikacji). Dla kontroli dodajemy 10 cyfrę, tak aby była spełniona równość 10 i=1 i x i = 0 ( mod 11) Czasami jako ostatnia cyfra pojawia się X i oznacza ona 10. Dowolne przekłamanie jednej cyfry jesteśmy zawsze w stanie wykryć.
Detekcja i korekcja błędów Dodanie do kodu dodatkowej informacji umożliwiajacej wykrycie albo korektę określonej liczby błędów.
Detekcja i korekcja błędów Dodanie do kodu dodatkowej informacji umożliwiajacej wykrycie albo korektę określonej liczby błędów. Kody stałej długości przekształcamy na dłuższe w celu dodania tych informacji.
Detekcja i korekcja błędów Dodanie do kodu dodatkowej informacji umożliwiajacej wykrycie albo korektę określonej liczby błędów. Kody stałej długości przekształcamy na dłuższe w celu dodania tych informacji. Chcemy aby dodatkowy narzut bitów był jak najmniejszy.
Detekcja i korekcja błędów Dodanie do kodu dodatkowej informacji umożliwiajacej wykrycie albo korektę określonej liczby błędów. Kody stałej długości przekształcamy na dłuższe w celu dodania tych informacji. Chcemy aby dodatkowy narzut bitów był jak najmniejszy. Współczynnik informacji Dla kodu K długości n współczynnikiem informacji nazywamy wartość 1 log K n gdzie K oznacza liczbę słów kodowych należacych do K.
Przykłady Kody parzystości Do n bitów informacji dodajemy 1 bit w ten sposób aby liczba jedynek w kodzie była parzysta. Wykrywanie jednego błędu. Współczynnik informacji: n n+1
Przykłady Kody parzystości Do n bitów informacji dodajemy 1 bit w ten sposób aby liczba jedynek w kodzie była parzysta. Wykrywanie jednego błędu. Współczynnik n informacji: n+1 Kody powtórzeniowe Każdy bit powtarzamy n razy. Współczynnik informacji: 1 n.
Przykłady Kody parzystości Do n bitów informacji dodajemy 1 bit w ten sposób aby liczba jedynek w kodzie była parzysta. Wykrywanie jednego błędu. Współczynnik n informacji: n+1 Kody powtórzeniowe Każdy bit powtarzamy n razy. Dla n = 2k wykrywanie k błędów, korekta k 1 błędów. Współczynnik informacji: 1 n.
Przykłady Kody parzystości Do n bitów informacji dodajemy 1 bit w ten sposób aby liczba jedynek w kodzie była parzysta. Wykrywanie jednego błędu. Współczynnik n informacji: n+1 Kody powtórzeniowe Każdy bit powtarzamy n razy. Dla n = 2k wykrywanie k błędów, korekta k 1 błędów. Dla n = 2k + 1 wykrywanie k + 1 błędów, korekta k błędów. Współczynnik informacji: 1. n
Odległość Hamminga Definicja Dla dwóch kodów a = a 1 a 2... a n i b = b 1 b 2... b n odległościa Hamminga nazywamy ilość pozycji na których a i b się różnia.
Odległość Hamminga Definicja Dla dwóch kodów a = a 1 a 2... a n i b = b 1 b 2... b n odległościa Hamminga nazywamy ilość pozycji na których a i b się różnia. Dla kodów binarnych odległość Hamminga może być zapisana wzorem d(a, b) = n a i XOR b i i=1
Odległość Hamminga Definicja Dla dwóch kodów a = a 1 a 2... a n i b = b 1 b 2... b n odległościa Hamminga nazywamy ilość pozycji na których a i b się różnia. Dla kodów binarnych odległość Hamminga może być zapisana wzorem d(a, b) = n a i XOR b i i=1 Odległość Hamminga jest metryka dla kodów długości n.
Odległość Hamminga wykorzystanie Minimalna odległość kodu Dla zbioru słów kodowych K minimalna odległościa kodu K nazywamy minimalna odległość Hamminga między dwoma różnymi słowami z tego kodu.
Odległość Hamminga wykorzystanie Minimalna odległość kodu Dla zbioru słów kodowych K minimalna odległościa kodu K nazywamy minimalna odległość Hamminga między dwoma różnymi słowami z tego kodu. Detekcja błędów Kod K wykrywa t błędów wtedy i tylko wtedy kiedy jego minimalna odległość jest większa niż t.
Odległość Hamminga wykorzystanie Minimalna odległość kodu Dla zbioru słów kodowych K minimalna odległościa kodu K nazywamy minimalna odległość Hamminga między dwoma różnymi słowami z tego kodu. Detekcja błędów Kod K wykrywa t błędów wtedy i tylko wtedy kiedy jego minimalna odległość jest większa niż t. Korekta błędów Kod K koryguje t błędów wtedy i tylko wtedy kiedy jego minimalna odległość jest większa niż 2t.
Przykład Kod parzystości Wszystkie kody maja parzysta liczbę jedynek więc minimalna odległość tego kodu wynosi 2 (dla 1 mielibyśmy nieparzysta liczbę jedynek). Stad kod wykrywa tylko 1 bład.
Przykład Kod parzystości Wszystkie kody maja parzysta liczbę jedynek więc minimalna odległość tego kodu wynosi 2 (dla 1 mielibyśmy nieparzysta liczbę jedynek). Stad kod wykrywa tylko 1 bład. Kod powtórzeniowy Kod powtarza bit n razy więc mamy tylko dwa słowa kodowe 0... 0 i 1... 1. Minimalna odległość dla tego kodu wynosi n. Kod koryguje (n 1)/2 błędów.