i kodowania Entropia, nierówność Krafta, kodowanie optymalne Marcin Jenczmyk m.jenczmyk@knm.katowice.pl 17 kwietnia 2015 M. Jenczmyk Spotkanie KNM i kodowania 1 / 20
Niech S = {x 1,..., x q } oznacza alfabet, zbiór zdarzeń, a P = {p 1,..., p q } będzie stowarzyszonym z nim zbiorem prawdopodobieństw takim, że P(x i ) = p i oraz q p i = 1. M. Jenczmyk Spotkanie KNM i kodowania 2 / 20
Niech S = {x 1,..., x q } oznacza alfabet, zbiór zdarzeń, a P = {p 1,..., p q } będzie stowarzyszonym z nim zbiorem prawdopodobieństw takim, że P(x i ) = p i oraz q p i = 1. Ponadto załóżmy, że źródło S jest źródłem bez pamięci, tzn. że kolejne znaki są generowane niezależnie od siebie. M. Jenczmyk Spotkanie KNM i kodowania 2 / 20
Informacja Ilością informacji stowarzyszonej z zdarzeniem nazywamy funkcję I określoną na zbiorze zdarzeń, zadaną wzorem dla pewnego k > 0 oraz k 1. I (x) = log k P(x) M. Jenczmyk Spotkanie KNM i kodowania 3 / 20
Informacja Ilością informacji stowarzyszonej z zdarzeniem nazywamy funkcję I określoną na zbiorze zdarzeń, zadaną wzorem dla pewnego k > 0 oraz k 1. I (x) = log k P(x) W zależności od podstawy logarytmu ilość informacji może być mierzona w różnych jednostkach. Dla k = 2 jednostką informacji jest bit, dla k = e nat, a dla k = 10 Hartley. M. Jenczmyk Spotkanie KNM i kodowania 3 / 20
M. Jenczmyk Spotkanie KNM i kodowania 4 / 20
Entropia Entropią stowarzyszoną z źródłem S = {x 1,..., x q } nazywamy funkcję H(S) = H(p 1,..., p q ) = q P(x i ) log P(x i ) = q P(x i )I (x i ). Funkcja ta jest wartością oczekiwaną ilości informacji ujawnianej przez źródło. M. Jenczmyk Spotkanie KNM i kodowania 5 / 20
Przykład Rozważmy źródło S = {x 1, x 2, x 3 } takie, że P(x 1 ) = 1 2, a P(x 2 ) = P(x 3 ) = 1 4. Wówczas I (x 1 ) = log 1 2 = log 2 = 1, I (x 2 ) =I (x 3 ) = log 1 4 = log 4 = 2, a entropia żródła wynosi H(S) = 1 2 I (x 1) + 1 4 I (x 2) + 1 4 I (x 3) = 1 2 + 1 2 + 1 2 = 3 2. M. Jenczmyk Spotkanie KNM i kodowania 6 / 20
M. Jenczmyk Spotkanie KNM i kodowania 7 / 20
Twierdzenie Dla dowolnego zbioru prawdopodobieństw p 1,..., p q zachodzi oszacowanie ( 1 0 = H(1, 0,..., 0) H(p 1,..., p q ) H q,..., 1 ) = log q. q M. Jenczmyk Spotkanie KNM i kodowania 8 / 20
Dowód. Ponieważ q p i = 1, to p q = 1 q 1 p i oraz H(p 1,..., p q ) = H(p 1,..., p q 1 ) q 1 q 1 q 1 = p i log p i 1 log 1 p i p i. M. Jenczmyk Spotkanie KNM i kodowania 9 / 20
Dowód. Ponieważ q p i = 1, to p q = 1 q 1 p i oraz H(p 1,..., p q ) = H(p 1,..., p q 1 ) q 1 q 1 q 1 = p i log p i 1 log 1 p i p i. Funkcja może mieć ekstremum w punkcie, gdy q 1 H = (log p i + log e) + log 1 p i + log e p i q 1 = log p i + log 1 p i = log p q = 0, p i M. Jenczmyk Spotkanie KNM i kodowania 9 / 20
Dowód (cd.) Tak się dzieje gdy log p q p i = 0 p q p i = 1 p i = p q = 1 q. M. Jenczmyk Spotkanie KNM i kodowania 10 / 20
Dowód (cd.) Tak się dzieje gdy log p q p i = 0 p q p i = 1 p i = p q = 1 q. W badanym punkcie 2 H = log e(p i + p q ) = log e p i p i p q p i ( 1 p i + 1 p q ) = 2q log e M. Jenczmyk Spotkanie KNM i kodowania 10 / 20
Dowód (cd.) Tak się dzieje gdy log p q p i = 0 p q p i = 1 p i = p q = 1 q. W badanym punkcie 2 H = log e(p i + p q ) = log e p i p i p q p i ( 1 p i + 1 p q ) = 2q log e oraz 2 H = log e = q log e. p i p j p q M. Jenczmyk Spotkanie KNM i kodowania 10 / 20
Dowód (cd.) Macierz drugich pochodnych w badanym punkcie jest postaci 2q log e q log e... q log e q log e 2q log e... q log e...... q log e q log e... q log e M. Jenczmyk Spotkanie KNM i kodowania 11 / 20
Dowód (cd.) Macierz drugich pochodnych w badanym punkcie jest postaci 2q log e q log e... q log e q log e 2q log e... q log e...... q log e q log e... q log e Macierz ta jest ujemnie określona, więc punkt jest maksimum entropii. M. Jenczmyk Spotkanie KNM i kodowania 11 / 20
Kodowanie Kodowaniem elementów alfabetu S = {x 1,..., x q } o prawdopodobieństwach P = {p 1,..., p q } przy użyciu alfabetu C = {c 1,..., c n } nazywamy proces przyporządkowania elementom S elementów lub ciągów znaków (słów kodowych) alfabetu C. M. Jenczmyk Spotkanie KNM i kodowania 12 / 20
Kodowanie Kodowaniem elementów alfabetu S = {x 1,..., x q } o prawdopodobieństwach P = {p 1,..., p q } przy użyciu alfabetu C = {c 1,..., c n } nazywamy proces przyporządkowania elementom S elementów lub ciągów znaków (słów kodowych) alfabetu C. Przykład (kod binarny) Elementy alfabetu Słowa kodowe s 1 00 s 2 01 s 3 10 s 4 11 M. Jenczmyk Spotkanie KNM i kodowania 12 / 20
E Kod jednoznacznie dekodowalny Kod nazywamy jednoznacznie dekodowalnym, jeśli istnieje tylko jeden sposób podziału ciągu słów kodu c i1, c i2,..., c ik na oddzielne słowa kodu, tzn. jeśli c i1, c i2,..., c ik = c j1, c j2,..., c jk to l = 1,..., k zachodzi c il = c jl. M. Jenczmyk Spotkanie KNM i kodowania 13 / 20
E Kod jednoznacznie dekodowalny Kod nazywamy jednoznacznie dekodowalnym, jeśli istnieje tylko jeden sposób podziału ciągu słów kodu c i1, c i2,..., c ik na oddzielne słowa kodu, tzn. jeśli c i1, c i2,..., c ik = c j1, c j2,..., c jk to l = 1,..., k zachodzi c il = c jl. Kod prefixowy Kod nazywamy kodem prefixowym, jeśli żadne słowo kodowe nie jest przedrostkiem innego słowa kodowego. M. Jenczmyk Spotkanie KNM i kodowania 13 / 20
Przykłady Znak K 1 K 2 K 3 K 4 A 0 0 00 00 B 1 11 01 01 C 01 01 10 1 M. Jenczmyk Spotkanie KNM i kodowania 14 / 20
Nierówność Krafta Binarny kod przedrostkowy złożony ze słów kodu {c 1,..., c n } o długościach {l 1,..., l n } istnieje n 2 l i 1. (1) M. Jenczmyk Spotkanie KNM i kodowania 15 / 20
Nierówność Krafta Binarny kod przedrostkowy złożony ze słów kodu {c 1,..., c n } o długościach {l 1,..., l n } istnieje Dowód. n 2 l i 1. (1) ( ) Mając binarny kod przedrostkowy umieśćmy słowa kodu w drzewie binarnym zgodnie z kodami słów i uzupełnijmy je do drzewa pełnego, o 2 lmax liściach. i-ty wierzchołek zajmuje 2 lmax l i liści drzewa. Wobec tego musi zachodzić n 2 lmax l i 2 lmax n 2 l i 1. M. Jenczmyk Spotkanie KNM i kodowania 15 / 20
Dowód. ( ) Przeciwnie, załóżmy, że (1) zachodzi. Wówczas możemy umieścić słowa w wybranych węzłach, tworząc w ten sposób kody słów. Zauważmy, że liści nie może zabraknąć - po umieszczeniu w drzewie j-tego wierzchołka ilość zablokowanych to j j n 2 lmax l i 2 lmax 2 l i 2 lmax 2 l i 2 lmax. M. Jenczmyk Spotkanie KNM i kodowania 16 / 20
Twierdzenie Dla dowolnego binarnego kodu przedrostkowego dla którego średnia długość słowa kodowego L śr = p i l i zachodzi nierówność L śr H(S) Ponadto istnieje binarny kod przedrostkowy dla którego L śr < H(S) + 1 M. Jenczmyk Spotkanie KNM i kodowania 17 / 20
Dowód. Na początku udowodnimy część pierwszą tezy. = p i (log p i + log 2 l i p i ( 1 p i 2 l i H(S) L śr = p i log p i p i l i ) = (p i log p i 2 l i ) = pi log 1 p i 2 l i ) 1 log e = log e (2 l i p i ) 0 Dowód drugiej części. Niech l i = log p i. 2 l i p i = 1 Ponadto l i < log p i + 1 p i l i < p i log p i + p i L śr < H(S) + 1 M. Jenczmyk Spotkanie KNM i kodowania 18 / 20
Bibliografia Adam Drozdek, Wprowadzenie do kompresji danych, WNT, Warszawa 1999 Norman Abromson, Teoria informacji i kodowania, PWN, 1969 M. Jenczmyk Spotkanie KNM i kodowania 19 / 20
Dziękuję za (nie)uwagę! M. Jenczmyk Spotkanie KNM i kodowania 20 / 20