STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW
Transkrypt
STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW
STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW 1 sek wideo – 160 Mbit Źródło Kompresja 2 min muzyki (44 100 próbek/sek, 16 bitów/próbkę) 84 Mbit Kanał transmisji Dekompresja Odbiorca 1. Metody bezstratne 2. Metody stratne 1 Kodowanie predykcyjne r p ( n) i s ( n i ) i 1 np. z autokorelacji i s ( n i ) s ( n) n r normalizujemy, aby czyli i i NADAWCA 1 r i 1 d ( n) s ( n) p ( n) i 1 i i s ( n) p ( n) d ( n) ODBIORCA 2 Kodowanie entropowe EC od ang. Entropy Coding s(n) s m m1 M Ilość informacji stowarzyszona z komunikatami sm : m 1,..., M wynosi I (m) log 2 pm , gdzie pm jest prawdopodobieństwem wystąpienia sm , a jej miarą jest ilość bitów. Średnia ilość bitów potrzebnych do bezstratnego zakodowania komunikatu (entropia) jest wartością oczekiwaną M H pm log 2 pm m 1 3 Alfabet Morse’a Samuel Finley Breese MORSE (1791-1872) – amerykański malarz i wynalazca 1837 – aparat telegraficzny 1840 - alfabet telegraficzny 1844 – pierwsza na świecie linia Baltimore - Washington e a n i s h r u v f l w ą p d j b x c 1 bit t m g k y z 2 bity o q ó 3 bity ch 4 bity 4 Sprawność kodowania M H pm log 2 pm m 1 Oczekiwana ilość bitów M H w bm pm m 1 gdzie pm jest prawdopodobieństwem komunikatu zakodowanego przez symbol posiadający bm bitów. Sprawność kodowania H 100% Hw może być co najwyżej równa 100%, bo entropia jest dolną granicą średniej liczby bitów wymaganych do reprezentacji komunikatów. 5 Kodowanie ze zmienną długością słowa VLC ang. Variable Length Coding sm pm -1 0 1 2 1/8 1/4 3/8 1/4 H 18 log 2 18 14 log 2 14 83 log 2 83 14 log 2 1 4 1,9 6 Przykład algorytmu kodowania metodą Huffmana 1952 rok Symbol Prawdopodobieństwo Prawdopodobieństwo Prawdopodobieństwo 1 3/8 3/8 5/8 1 0 1/4 3/8 1 3/8 0 2 1/4 1 1/4 0 -1 1/8 0 7 Kontynuacja przykładu kodu Huffmana Symbol -1 Prawdopodobieństwo 0,125 Kod binarny 110 Przeciętna ilość bitów na symbol Sprawność kodowania 0 1 2 0,250 0,375 0,250 10 0 111 H w 1 83 2 14 3( 14 18 ) 2 1,9 100% 95% 2 111|111|110|0|0|10|0|0|110 2 2 -1 1 1 0 1 1 -1 100 % sprawność kodowania gdy prawdopodobieństwa są potęgami 1/2 8 Kolejny przykład kodowania Huffmana e [0,076] a [0,073] c [0,037] d(1)[0,030] } e [0,076] e a [0,073] c d b (1)[0,075] db (1)[0,038] c (0)[0,037] } a [0,076] (0)[0,073] a c d b(1)[0,148] } e (0)[0,076] b(0)[0,008] Symbol a Prawdopodobieństwo 0,073 Kod binarny 10 b c d e 0,008 0,037 0,030 0,076 1110 110 1111 0 9 Prosty przykład kodu Huffmana pm gęstość prawdopodobieństwa zmiennej losowej sm m Fm pi i 1 Znak dystrybuanta Prawdopodobieństwo Kod Huffmana ♂ 0,95 1 ♀ 0,02 00 ☺ 0,03 01 H = 0,335 bit/symbol H w 1,05 bit/symbol Sprawność tylko 31,9% 10 Kod Huffmana sekwencji symboli Sekwencja symboli Iloczyn prawdopodobieństw Kod Huffmana H = 0,611 bit/symbol ♂♂ ♂♀ ♂☺ ♀♂ ♀♀ ♀☺ 0,9025 1 0,0190 000 H w 1,222 0,0285 011 sprawność 50 % 0,0190 0010 0,0004 001100 0,0006 001110 ☺♂ ☺♀ ☺☺ 0,0285 010 0,0006 001101 0,0009 001111 bit/symbol Poprzednio: H = 0,335 bit/symbol H w 1,05 31,9% 11 Tworzenie sekwencji elementów dla kodowania arytmetycznego ♂ ♀ 0,95 0 ♀♂ ♀♀♂ 0,969 Ilość bitów potrzebna do zakodowania komunikatu jest częścią całkowitą 1 log 2 pn 0,97 1 ♀♀ ♀☺ 0,969 0,95 ☺ 0,9694 0,97 ♀♀♀ ♀♀☺ 0,96938 0,9694 0,969388 12 Przykład kodowania arytmetycznego H w 1,5008 40,7 % Sekwencja symboli Iloczyn prawdopodobieństw Granice przedziału Wartość środkowa w kodzie dziesiętnym Wartość środkowa w kodzie binarnym ♂♂ ♂♀ ♂☺ ♀♂ 0,9025 0 – 0,9025 0,45125 0,0111001110000101 0,0190 0,9025 – 0,9215 0,912 0,1110100101111000 0,0285 0,9215 – 0,95 0,93575 0,1110111110001101 0,0190 0,95 – 0,969 0,9595 0,1111010110100001 ♀♀ ♀☺ ☺♂ ☺♀ ☺☺ 0,0004 0,969 – 0,9694 0,9692 0,1111100000011101 0,0006 0,9694 – 0,97 0,9697 0,1111100000111110 0,0285 0,97 – 0,9985 0,98425 0,1111101111110111 0,0006 0,9985 – 0,9991 0,9988 0,1111111110110001 0,0009 0,9991 - 1 0,99955 0,1111111111100010 0 111010 111011 111101 1111100000011 11111000001 111110 11111111101 11111111111 1 log 2 pn 1,15 6,72 6,13 6,72 13,29 11,70 6,13 11,70 11,12 13 Kodowanie ciągów RLC ang. Run Length Coding v, r gdzie v (od ang. value) powtarzający się symbol r (od ang. run) liczba powtórzeń 1111000111111110001111000000111111111111 1,1 0,1 1,2 0,1 1,1 1 kod 1111 0,2 1,3 0 kod 000 14 Metody kompresji stratnej SYGNAŁ Kodowanie stratne Dekodowanie SYGNAŁ nieco inny 15 Kwantyzacja skalarna swy SQ ang. Scalar Quantization swe Kwantyzacja równomierna i nierównomierna si 2 si 1 si si 2 si 1 si si 1 si 1 si 2 poziomy reprezentacyjne si 2 s i Q( s) si si 3 s (i ) progi decyzyjne poziom reprezentacyjny lub kod gdzie i si , si 1 są rozdzielnymi zbiorami pokrywającymi podzbiór liczb rzeczywistych. Kwantyzacja strefowa 16 Kwantowanie wektorowe Przykład gdy s, si 2 Książka kodowa Q( s ) si np. działanie w/g reguły d s, si d s, s j j 1,..., M M- ilość elementów książki kodowej 17 Kodowanie transformatowe T - transformacja K-1 - dekodowanie Q - kwantowanie K – kodowanie bezstratne Q-1 - dekwantyzacja IT- transformacja odwrotna 18 Transformacje częstotliwościowe krótkoczasowa 2 jft Fouriera sˆ( f ) w(t ) s (t )e dt w(t ) s (t ) cos( 2jf ) j sin( 2jf ) dt kosinusowa s( f ) s(t ) cos(2tf ) dt falkowa 1 ~ s a , b a t b s(t ) a dt 19 Dyskretna transformacja kosinusowa DCT od ang. Discrete Cosine Transform s (k ) gdzie N 1 2 (2n 1)k c(k ) s (n) cos N 2 N n 0 1 2 c(k ) 1 k 0,1, , N 1 dla k 0 dla k 0 Transformacja odwrotna s ( n) 2 N 1 (2n 1)k c ( k ) s ( k ) cos N k 0 2N 20 DCT dla bloków po 8 próbek Dzieląc sygnał na bloki po 8 próbek posługujemy się transformacją 7 s (k ) 0,5 c(k ) s (n) cos(2n 1)k / 16 n 0 2 1 0 -1 -2 0 5 10 15 20 25 30 35 40 45 50 21 Banki filtrów cyfrowych 1 s z Kwantyzacja z 2 2 2 1 2 z 1 Kwantyzacja s 2 z 1 2s 2 2 z 1 2 z 1 s 22 Sygnał audio: 44 100 próbek/sekundę po 16 bitów daje 705 600 bitów/s w jednym kanale Sygnał telefoniczny: Filtrowanie do 4 kHz, Próbkowanie 8000 próbek/sekundę, Zamiana próbek na 13-bitowe pakiety strumień 104 kbit/s, KOMPRESJA do 13 kbit/s. Kompresja 705 600 / 13 000 ~ 54,28 23 Kompresja audio w GSM Sygnał dzielony na bloki po 20 ms, Każdy blok kodowany na 260 bitach, Biblioteka wzorców (sygnałów wzorcowych) i 104 bity na sygnał wzorcowy, 156 bitów opisuje różnicę między wzorcem a oryginałem. 260 bit 1 13 kbit/s 20 ms 24