podstawy kompresji - algorytmy kompresji danychsun.aei.polsl.pl/~akd/wyklady/wyk02.pdf ·...
TRANSCRIPT
EntropiaKodowanie
Podstawy kompresjiAlgorytmy kompresji danych
Sebastian Deorowicz
2007–02–27
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia — definicja
Definicja
Entropia stowarzyszona ze zbiorem m niezależnych zdarzeńA = {a1, . . . , am} i ze zbiorem prawdopodobieństw ichzajścia P = {p(a1), . . . , p(am)} jest definiowana jako:
H(A) =m∑i=1
p(ai )I (ai ) = −m∑i=1
p(ai ) log p(ai )
Intuicja
Innymi słowy entropia jest to średnia autoinformacja związanaz eksperymentem losowym polegającym na wygenerowaniusymbolu przy założonych prawdopodobieństwach wygenerowaniasymboli z alfabetu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia — definicja
Definicja
Entropia stowarzyszona ze zbiorem m niezależnych zdarzeńA = {a1, . . . , am} i ze zbiorem prawdopodobieństw ichzajścia P = {p(a1), . . . , p(am)} jest definiowana jako:
H(A) =m∑i=1
p(ai )I (ai ) = −m∑i=1
p(ai ) log p(ai )
Intuicja
Innymi słowy entropia jest to średnia autoinformacja związanaz eksperymentem losowym polegającym na wygenerowaniusymbolu przy założonych prawdopodobieństwach wygenerowaniasymboli z alfabetu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia eksperymentu1
Eksperyment
Generowanie przez źródło symboli ai ze zbioru A
Entropia eksperymentu
Entropia wyrażona w bitach jest miarą określającą średnią liczbęsymboli binarnych potrzebnych do zakodowania ciągu utworzonegoz symboli kolejno wygenerowanych przez źródło
Wynik Shannona
Najlepszym wynikiem jaki można uzyskać stosując kompresjębezstratną jest zakodowanie sekwencji symboli tak, aby średnialiczba bitów przypadająca na symbol była równa entropii źródła1Definicje w wykładzie na podstawie K. Sayood, Kompresja danych. Wprowadzenie
i A. Drozdek, Wprowadzenie do kompresji danychSebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia eksperymentu1
Eksperyment
Generowanie przez źródło symboli ai ze zbioru A
Entropia eksperymentu
Entropia wyrażona w bitach jest miarą określającą średnią liczbęsymboli binarnych potrzebnych do zakodowania ciągu utworzonegoz symboli kolejno wygenerowanych przez źródło
Wynik Shannona
Najlepszym wynikiem jaki można uzyskać stosując kompresjębezstratną jest zakodowanie sekwencji symboli tak, aby średnialiczba bitów przypadająca na symbol była równa entropii źródła1Definicje w wykładzie na podstawie K. Sayood, Kompresja danych. Wprowadzenie
i A. Drozdek, Wprowadzenie do kompresji danychSebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia eksperymentu1
Eksperyment
Generowanie przez źródło symboli ai ze zbioru A
Entropia eksperymentu
Entropia wyrażona w bitach jest miarą określającą średnią liczbęsymboli binarnych potrzebnych do zakodowania ciągu utworzonegoz symboli kolejno wygenerowanych przez źródło
Wynik Shannona
Najlepszym wynikiem jaki można uzyskać stosując kompresjębezstratną jest zakodowanie sekwencji symboli tak, aby średnialiczba bitów przypadająca na symbol była równa entropii źródła1Definicje w wykładzie na podstawie K. Sayood, Kompresja danych. Wprowadzenie
i A. Drozdek, Wprowadzenie do kompresji danychSebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — definicja
Definicja
Entropia źródła S generującego ciąg symboli x1, x2, . . . , xnnależących do alfabetu A = {1, 2, . . . ,m} wynosi:
H(S) = limn→∞1nGn,
gdzie
Gn = −m∑i1=1
m∑i2=1
· · ·m∑in=1
P(x1 = i1, x2 = i2, . . . , xn = in)×
× logP(x1 = i1, x2 = i2, . . . xn = in)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — szczególne przypadki
Rozkład identyczny i niezależny
Jeśli wszystkie elementy sekwencji mają rozkład identycznyi niezależny, to:
Gn = −nm∑i1=1
P(x1 = i1) logP(x1 = i1)
Mamy wtedy tzw. entropię pierwszego rzędu źródła:
H(S) = −m∑i1=1
P(x1 = i1) logP(x1 = i1)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — co o niej wiemy?
Dla większości źródeł rozkład symboli nie jest identycznyi niezależny — entropia pierwszego rzędu nie jest więc dobrąmiarą entropii źródła
W rzeczywistości entropia fizycznego źródła nie jest znana
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — co o niej wiemy?
Dla większości źródeł rozkład symboli nie jest identycznyi niezależny — entropia pierwszego rzędu nie jest więc dobrąmiarą entropii źródła
W rzeczywistości entropia fizycznego źródła nie jest znana
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — przykład
Sekwencja
1, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 8, 9, 8, 9, 10
Entropia pierwszego rzędu
p(1) = p(5) = p(6) = p(9) = 2/16
p(2) = p(3) = p(4) = p(7) = p(10) = 1/16
p(8) = 3/16
H = −10∑i=1
p(i) log p(i) = 3, 20 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — przykład
Sekwencja
1, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 8, 9, 8, 9, 10
Entropia pierwszego rzędu
p(1) = p(5) = p(6) = p(9) = 2/16
p(2) = p(3) = p(4) = p(7) = p(10) = 1/16
p(8) = 3/16
H = −10∑i=1
p(i) log p(i) = 3, 20 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — przykład
Założenie
Pomiędzy symboli istnieje korelacja
Usuwanie korelacji
Zastępujemy wartość symboli różnicą pomiędzy nimi:
1, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 8, 9, 8, 9, 10
↓
1, 0, 1, 1, 1, 1, 1,−1, 1, 1, 1, 0, 1,−1, 1, 1
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — przykład
Założenie
Pomiędzy symboli istnieje korelacja
Usuwanie korelacji
Zastępujemy wartość symboli różnicą pomiędzy nimi:
1, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 8, 9, 8, 9, 10
↓
1, 0, 1, 1, 1, 1, 1,−1, 1, 1, 1, 0, 1,−1, 1, 1
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Entropia źródła — przykład
Entropia po usunięciu korelacji
p(−1) = 2/16 p(0) = 2/16 p(1) = 12/16
H = −1∑i=−1p(i) log p(i) = 1, 06 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Czym jest model?
Definicja
Modelem ciągu nazywamy założenia dotyczące korelacji pomiędzykolejnymi symbolami
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Współczesny paradygmat kompresji:modelowanie–kodowanie
Kodowanie Dekodowanie
Modelowanie Modelowanie
Sekwencjawejściowa
Sekwencjaskompresowana
Sekwencjawyjściowa
Uaktualnieniemodelu
Uaktualnieniemodelu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modelowanie i kodowanie
Modelowanie
Pierwszy etap kompresji
Wydobywanie informacji o redundancji występującej w danychi opisywanie jej za pomocą modelu
Kodowanie
Drugi etap kompresji
Kodowanie opisu modelu oraz informacji o tym jak daneodbiegają od niego
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modelowanie i kodowanie
Modelowanie
Pierwszy etap kompresji
Wydobywanie informacji o redundancji występującej w danychi opisywanie jej za pomocą modelu
Kodowanie
Drugi etap kompresji
Kodowanie opisu modelu oraz informacji o tym jak daneodbiegają od niego
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modelowanie
Analiza danych pod kątem wyszukania informacji nadmiarowej(redundantnej)
Istnieje wiele metod modelowania danych
Modelowanie oparte jest zawsze na jakimś założonymwcześniej modelu źródła, które wygenerowało dane
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modele źródła danych
Modele fizyczne — np. modele powstawania mowy użytecznew kompresji próbek mowy
Modele probabilistyczne
Modele Markowa — oparte na założeniu,że prawdopodobieństwo wygenerowania symbolu zależyod symboli, które wystąpiły poprzednio
Modele drzew kontekstu — uogólnienie modelu Markowa
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model niewiedzy
Założenie
Nic nie wiemy o źródle i zakładamy, że każdy symbol jestgenerowany z jednakowym prawdopodobieństwem
Ile jest wart ten model?
Niewiele, bo nie pozwala on na uzyskanie jakiejkolwiek kompresji,tym niemniej może się tak zdarzyć, że opisuje on źródło dokładnie
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model niewiedzy
Założenie
Nic nie wiemy o źródle i zakładamy, że każdy symbol jestgenerowany z jednakowym prawdopodobieństwem
Ile jest wart ten model?
Niewiele, bo nie pozwala on na uzyskanie jakiejkolwiek kompresji,tym niemniej może się tak zdarzyć, że opisuje on źródło dokładnie
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model probabilistyczny
Założenia
Dla każdego symbolu znamy prawdopodobieństwo jegowystępowania
Zakładamy przy tym, że to prawdopodobieństwo nie zależyw żaden sposób od poprzednio wygenerowanych symboli
Ile jest wart ten model?
Jeśli prawdopodobieństwa wygenerowanie symboli są niezależne,to model jest bardzo dobry i pozwala na konstrukcję całkiemwydajnych kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model probabilistyczny
Założenia
Dla każdego symbolu znamy prawdopodobieństwo jegowystępowania
Zakładamy przy tym, że to prawdopodobieństwo nie zależyw żaden sposób od poprzednio wygenerowanych symboli
Ile jest wart ten model?
Jeśli prawdopodobieństwa wygenerowanie symboli są niezależne,to model jest bardzo dobry i pozwala na konstrukcję całkiemwydajnych kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Dyskretny łańcuch Markowa
Definicja
Ciąg {xn} nazywamy dyskretnym łańcuchem Markowa rzędu k jeśli:
P(xn|xn−1, . . . , xn−k) = P(xn|xn−1, . . . , xn−k , . . .)
Intuicja
Wiedza o ostatnich k symbolach jest równoważna wiedzy o całejhistorii procesu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Dyskretny łańcuch Markowa
Definicja
Ciąg {xn} nazywamy dyskretnym łańcuchem Markowa rzędu k jeśli:
P(xn|xn−1, . . . , xn−k) = P(xn|xn−1, . . . , xn−k , . . .)
Intuicja
Wiedza o ostatnich k symbolach jest równoważna wiedzy o całejhistorii procesu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model Markowa
Definicja
Wartości przyjmowane przez ciąg xn−1, . . . , xn−k są nazywanestanami procesu
Liczba stanów
Dla alfabetu rozmiaru m liczba stanów wynosi mk
Najczęstszy model
Model Markowa pierwszego rzędu:
P(xn|xn−1) = P(xn|xn−1, xn−2, . . .)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model Markowa
Definicja
Wartości przyjmowane przez ciąg xn−1, . . . , xn−k są nazywanestanami procesu
Liczba stanów
Dla alfabetu rozmiaru m liczba stanów wynosi mk
Najczęstszy model
Model Markowa pierwszego rzędu:
P(xn|xn−1) = P(xn|xn−1, xn−2, . . .)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Model Markowa
Definicja
Wartości przyjmowane przez ciąg xn−1, . . . , xn−k są nazywanestanami procesu
Liczba stanów
Dla alfabetu rozmiaru m liczba stanów wynosi mk
Najczęstszy model
Model Markowa pierwszego rzędu:
P(xn|xn−1) = P(xn|xn−1, xn−2, . . .)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Andriej Andriejewicz Markow (1856–1922)
Internet:http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Markov.html
Ważne daty1906 – Pierwsze prace dotyczącedyskretnych łańcuchów Markowa
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modele Markowa w kompresji tekstów
Szczególnie użyteczne ze względu na to, że w tekście kolejnelitery zależą od poprzednich
Litery występujące na pozycjach bezpośredniopoprzedzających pozycję bieżącą nazywane są kontekstem,w którym występuje bieżąca literaShannon oszacował w 1951 roku entropię tekstu angielskiegoopierając się na:kontekstach o długości 2 na ok. 3.1 bit/znakprzewidywaniach ludzi na 0.6–1.3 bit/znak
Współczesne modele szacują entropię tekstu angielskiegona ok. 1.45 bit/znak
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modele Markowa w kompresji tekstów
Szczególnie użyteczne ze względu na to, że w tekście kolejnelitery zależą od poprzednich
Litery występujące na pozycjach bezpośredniopoprzedzających pozycję bieżącą nazywane są kontekstem,w którym występuje bieżąca literaShannon oszacował w 1951 roku entropię tekstu angielskiegoopierając się na:kontekstach o długości 2 na ok. 3.1 bit/znakprzewidywaniach ludzi na 0.6–1.3 bit/znak
Współczesne modele szacują entropię tekstu angielskiegona ok. 1.45 bit/znak
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modele Markowa w kompresji tekstów
Szczególnie użyteczne ze względu na to, że w tekście kolejnelitery zależą od poprzednich
Litery występujące na pozycjach bezpośredniopoprzedzających pozycję bieżącą nazywane są kontekstem,w którym występuje bieżąca literaShannon oszacował w 1951 roku entropię tekstu angielskiegoopierając się na:kontekstach o długości 2 na ok. 3.1 bit/znakprzewidywaniach ludzi na 0.6–1.3 bit/znak
Współczesne modele szacują entropię tekstu angielskiegona ok. 1.45 bit/znak
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Modele Markowa w kompresji tekstów
Szczególnie użyteczne ze względu na to, że w tekście kolejnelitery zależą od poprzednich
Litery występujące na pozycjach bezpośredniopoprzedzających pozycję bieżącą nazywane są kontekstem,w którym występuje bieżąca literaShannon oszacował w 1951 roku entropię tekstu angielskiegoopierając się na:kontekstach o długości 2 na ok. 3.1 bit/znakprzewidywaniach ludzi na 0.6–1.3 bit/znak
Współczesne modele szacują entropię tekstu angielskiegona ok. 1.45 bit/znak
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjaModelowanie i kodowanie
Kodowanie
Metody kodowania wykorzystują informację znalezionąw etapie modelowania
Istnieje kilka metod kodowania
Metody kodowania oparte są na podstawach matematycznych
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — założenia
Założenia
Istnieje źródło z alfabetem A = {a1, . . . , am}i prawdopodobieństwami wystąpieniasymboli P = {p1, . . . , pm}Symbolom ai odpowiadają słowa kodu należące do zbiorusłów kodu C = {c1, . . . , cm}Rozkład prawdopodobieństw występowania symboli jestidentyczny i niezależny
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — założenia i definicje
Definicja
Kodem nazywamy odwzorowanie z A na C , tj. przypisanie słowakodu ci każdemu symbolowi ai
Cel kompresji
Zredukowanie do minimum oczekiwanego (średniego) kosztu:
Lśr =m∑i=1
pi li ,
gdzie li jest długością słowa kodu ci kodującego symbol ai
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — założenia i definicje
Definicja
Kodem nazywamy odwzorowanie z A na C , tj. przypisanie słowakodu ci każdemu symbolowi ai
Cel kompresji
Zredukowanie do minimum oczekiwanego (średniego) kosztu:
Lśr =m∑i=1
pi li ,
gdzie li jest długością słowa kodu ci kodującego symbol ai
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — definicja
Definicja
Efektywność kodowania określamy jako:
HLśr× 100%
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — definicje
Definicja
Kod nazywamy jednoznacznie dekodowalnym, jeśli istnieje tylkojeden sposób podziału ciągu słów kodu ci1 , ci2 , . . . , cik na oddzielnesłowa kodu
Definicja
Kod jest przedrostkowy, jeśli nie możemy otrzymać żadnego słowakodu z innego słowa kodu przez dodanie do niego zer lub jedynek(innymi słowy, żadne słowo kodu nie jest przedrostkiem innegosłowa kodu)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — definicje
Definicja
Kod nazywamy jednoznacznie dekodowalnym, jeśli istnieje tylkojeden sposób podziału ciągu słów kodu ci1 , ci2 , . . . , cik na oddzielnesłowa kodu
Definicja
Kod jest przedrostkowy, jeśli nie możemy otrzymać żadnego słowakodu z innego słowa kodu przez dodanie do niego zer lub jedynek(innymi słowy, żadne słowo kodu nie jest przedrostkiem innegosłowa kodu)
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — definicje
Definicja
Kodem optymalnym nazywamy kod, dla którego liczba Lśr jestnajmniejsza spośród wszystkich kodów dla danego rozkładuprawdopodobieństwa P
Uwaga
Może istnieć wiele takich kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody — definicje
Definicja
Kodem optymalnym nazywamy kod, dla którego liczba Lśr jestnajmniejsza spośród wszystkich kodów dla danego rozkładuprawdopodobieństwa P
Uwaga
Może istnieć wiele takich kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Nierówność Krafta
Twierdzenie
Mając dane liczby k1, k2, . . . kn możliwe jest skonstruowanie koduprefiksowego jednoznacznie dekodowalnego: C = [c1, c2, . . . , cn],w którym ki = |ci | wtedy i tylko wtedy, gdy:
n∑i=1
2−ki ¬ 1
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kodowanie
Przykładowa sekwencja do zakodowania
Jakżeż ja się uspokoję —Pełne strachu oczy moje,Pełne grozy myśli moje,Pełne trwogi serce moje,Pełne drżenia piersi moje —Jakżeż ja się uspokoję. . .
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kodowanie — model niewiedzy
Założenia
Każdy symbol odpowiada jednemu znakowi
Prawdopodobieństwo wystąpienia każdego symbolu jednakowe
Zastosowany kod
Przyjmujemy kod ASCII rozszerzony o „polskie litery”, czyliISO 8859-2
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model niewiedzy — entropia
Symboli jest 256, a prawdopodobieństwo wystąpienia każdegoz nich wynosi 1/256
Entropia sekwencji wynosi:
H(P) = −255∑i=0
P(ai ) log2 P(ai ) = −255∑i=0
1256log2
1256
= 8.00 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model niewiedzy — kod
Prawdopodobieństwo wystąpienia każdego z 256 symboli jestidentyczne i wynosi 1/256
Każdemu symbolowi przypisujemy kod o długości− log2 1/256 = 8 bit
Średnia długość kodu:
E (C ,P ′) = −255∑i=0
P ′(ai )|c(ai )| = 8.00 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model bardziej złożony
W sekwencji występuje 30 symboli (litery, spacja, znakiinterpunkcyjne, znak nowego wiersza)
Entropia dla 30 symboli o jednakowym prawdopodobieństwiewystąpienia:
H(P) = −29∑i=0
130log2130≈ 4.91 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model bardziej złożony — kod
W sekwencji występuje 30 symboli, więc stosujemy kod5-bitowy pozwalający na reprezentowanie 32 symboli
Średnia długość kodu:
E (C ,P ′) = −31∑i=0
P ′(ai )|C (ai )| = 5.00 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model bardziej złożony — dodatkowe koszty
Konieczność przekazania do dekodera informacji o tym, któresymbole występują w sekwencji
Wymaga to 31 bajtów, co daje średnią na symbol sekwencjiwejściowej:
31× 8 bit153 symboli
≈ 1.62 bit/symbol
Łączna średnia długość kodu:
5.00 bit+ 1.62 bit = 6.62 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Częstość występowania symboli w sekwencji
Symbol L. wystąpieńa 6c 3d 1e 18ę 4g 2h 1i 7j 10k 4l 1ł 4m 5n 5o 11
Symbol L. wystąpieńp 7r 6s 7ś 1t 2u 3w 1y 3z 2ż 5, 3. 3— 2
〈spacja〉 20〈nw〉 6
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model uwzględniający częstość występowania symboliw sekwencji
Uwzględniając fakt, że różne symbole występują z różnymprawdopodobieństwem otrzymujemy entropię:
H(P) = −29∑i=0
P(ai ) log2 P(ai ) ≈ 4.45 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Model wykorzystujący wiedzę o częstości występowaniasymboli
Wykorzystujemy więcej wiedzy — dwa najczęstsze symboleotrzymują kody o długości 4 bit
Średnia długość kodu:
E (C ,P ′) = −29∑i=0
P ′(ai )|C (ai )| = 4.75 bit
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Przykładowy kod
Symbol L. wystąpień Koda 6 00100c 3 00101d 1 00110e 18 0000ę 4 00111g 2 01000h 1 01001i 7 01010j 10 01011k 4 01100l 1 01101ł 4 01110m 5 01111n 5 10000o 11 10001
Symbol L. wystąpień Kodp 7 10010r 6 10011s 7 10100ś 1 10101t 2 10110u 3 10111w 1 11000y 3 11001z 2 11010ż 5 11011, 3 11100. 3 11101— 2 11110
〈spacja〉 20 0001〈nw〉 6 11111
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Dodatkowe koszty
Konieczność przesłania do dekodera informacji o tym, któresymbole występują w tekście i jak często
Wymaga to 31 bajtów i 30 razy po 5 bitów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Dokładność modelu
Dokładniejszy model:możliwość przypisania kodów minimalizujących średnią długośćkodukonieczność przekazania do dekodera większej ilości informacjiopisujących model
Rozmiar opisu modelu bardziej istotny dla krótkich sekwencji
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody statyczne
Definicja
Kod statyczny nie korzysta w żaden sposób z informacjio prawdopodobieństwie występowania symboli w kodowanejsekwencji
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody statyczne — cechy
Zalety
Bardzo szybkie kodowaniedzięki prostocie konstrukcjikodów i ich regularności
Brak potrzeby przesyłaniainformacji o budowie kodudo dekodera
Wady
Zwykle słaby współczynnikkompresji
Możliwa ekspansja danychjeśli rozkładprawdopodobieństwawystępowania symboli niepasuje do założonego przykonstrukcji kodu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod unarny — definicja
Definicja
Kod unarny (kod α Eliasa) reprezentujący liczbę x składa sięz x − 1 bitów 1, po których następuje pojedynczy bit 0
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod unarny (kod α Eliasa)
Symbol Kod1 02 103 1104 11105 111106 1111107 11111108 111111109 11111111010 111111111011 1111111111012 11111111111013 111111111111014 1111111111111015 11111111111111016 1111111111111110
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod unarny — cechy
Cechy
Bardzo prosta budowa
Długie kody dla większości symboli powodują, że kompresjajest bardzo słaba, a często otrzymuje się ekspansję
Długość
x bitów
Zastosowania
Sytuacje, w których najwcześniejsze symbole w alfabeciewystępują o wiele częściej niż symbole dalsze
Część składowa innych kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod binarny (kod β Eliasa) — definicja
Definicja
Kod binarny (β Eliasa) reprezentujący liczbę x jest naturalnąbinarną reprezentacją liczby x z pominięciem wiodących zer
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod binarny (kod β Eliasa)
Symbol Kod1 12 103 114 1005 1016 1107 1118 10009 100110 101011 101112 110013 110114 111015 111016 10000
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod binarny (kod β Eliasa) — cechy
Cechy
Bardzo prosta budowa
Kod nie jest jednoznacznie dekodowalny, ponieważ nie jestznana jego długość
Długość
blog2 xc+ 1 bitów
Zastosowania
Część składowa innych kodów
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody złożone
Składowe
Powstają z połączenia w różny sposób innych kodów
Zaprojektowane pod kątem różnych rozkładówprawdopodobieństwa występowania symboli
Konstrukcja
Pierwsza część kodu pełni rolę „selektora” zakresu
Druga część kodu opisuje liczby z zakresu wybranego przezwartość będącą selektorem
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod γ Eliasa — definicja
Definicja
Kod γ Eliasa reprezentujący liczbę x jest złożeniem kodu α dlaliczby blog2 xc+ 1 i kodu β dla liczby x bez wiodącego bitu 1
Interpretacja
Druga część kodu reprezentuje samą liczbę, podczas gdy pierwszaczęść opisuje długość kodu binarnego
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod γ Eliasa
Symbol Kod1 02 1003 1014 110005 110016 110107 110118 11100009 111000110 111001011 111001112 111010013 111010114 111011015 111011116 111100000
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod γ Eliasa — cechy
Cechy
Prosta budowa
Stosunkowo dobry współczynnik kompresji dla danych,w których prawdopodobieństwo występowania symboli malejedla kolejnych symboli alfabetu
Długość
1+ 2blog2 xc bitów
Zastosowania
Prawdopodobieństwo występowania symboli maleje dla kolejnychsymboli alfabetu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod δ Eliasa — definicja
Definicja
Kod δ Eliasa reprezentujący liczbę x jest złożeniem kodu γdla liczby blog2 xc+ 1 i kodu β dla liczby x bez wiodącego bitu 1
Interpretacja
Druga część kodu reprezentuje samą liczbę, podczas gdy pierwszaczęść opisuje długość kodu binarnego
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod δ Eliasa
Symbol Kod1 02 10003 10014 101005 101016 101107 101118 110000009 1100000110 1100001011 1100001112 1100010013 1100010114 1100011015 1100011116 110010000
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod δ Eliasa — cechy
Cechy
Nieco bardziej skomplikowana budowa niż poprzednie kody
Dla x > 15 kod δ Eliasa nie dłuższy niż kod γ Eliasa
Długość
log2 x + log2 log2 x + O(log log log x) bitów
Zastosowania
Prawdopodobieństwo występowania symboli maleje dla kolejnychsymboli alfabetu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Peter Elias (1923–2001)
Internet:http://web.mit.edu/newsoffice/2001/elias.html
Ważne daty1955 – Kody korekcyjnedo transmisji w zaszumionym kanale1975 – Kody ogólnego przeznaczenia
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego
Definicja
Liczby Fibonacciego definiuje następująca zależność rekurencyjna:
F1 = 1
F2 = 1
Fn = Fn−1 + Fn−2
Stosunek kolejnych liczb
limk→∞
Fk+1Fk
= ϕ =1+√5
2≈ 1.618
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego
Definicja
Liczby Fibonacciego definiuje następująca zależność rekurencyjna:
F1 = 1
F2 = 1
Fn = Fn−1 + Fn−2
Stosunek kolejnych liczb
limk→∞
Fk+1Fk
= ϕ =1+√5
2≈ 1.618
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego — reprezentacja Zeckendorfa
Twierdzenie
Każda liczba całkowita dodatnia może być zapisana jako sumaliczb różnych liczb Fibonacciego
Definicja
Reprezentacja Zeckendorfa to zapis binarny liczby, w którym każdybit odpowiada jednej liczbie Fibonacciego. Wartość bitu równa 1oznacza, że dana liczba Fibonacciego wchodzi do sumy. Pomijanajest w reprezentacji liczba F1
Przykład reprezentacji Zeckendorfa
16 = 1×13+0×8+0×5+1×3+0×2+0×1 −→ Z (16) = 10010020 = 1×13+0×8+1×5+0×3+1×2+0×1 −→ Z (20) = 101010
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego — reprezentacja Zeckendorfa
Twierdzenie
Każda liczba całkowita dodatnia może być zapisana jako sumaliczb różnych liczb Fibonacciego
Definicja
Reprezentacja Zeckendorfa to zapis binarny liczby, w którym każdybit odpowiada jednej liczbie Fibonacciego. Wartość bitu równa 1oznacza, że dana liczba Fibonacciego wchodzi do sumy. Pomijanajest w reprezentacji liczba F1
Przykład reprezentacji Zeckendorfa
16 = 1×13+0×8+0×5+1×3+0×2+0×1 −→ Z (16) = 10010020 = 1×13+0×8+1×5+0×3+1×2+0×1 −→ Z (20) = 101010
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego — reprezentacja Zeckendorfa
Twierdzenie
Każda liczba całkowita dodatnia może być zapisana jako sumaliczb różnych liczb Fibonacciego
Definicja
Reprezentacja Zeckendorfa to zapis binarny liczby, w którym każdybit odpowiada jednej liczbie Fibonacciego. Wartość bitu równa 1oznacza, że dana liczba Fibonacciego wchodzi do sumy. Pomijanajest w reprezentacji liczba F1
Przykład reprezentacji Zeckendorfa
16 = 1×13+0×8+0×5+1×3+0×2+0×1 −→ Z (16) = 10010020 = 1×13+0×8+1×5+0×3+1×2+0×1 −→ Z (20) = 101010
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego — odwrócona reprezentacjaZeckendorfa
Odwrócona reprezentacja Zeckendorfa
W trakcie kodowania wygodniejsza jest reprezentacja, w którejnajmniej znaczący bit znajduje się na początku
Przykłady odwróconej reprezentacji Zeckendorfa
Z (16) = 100100 −→ F (16) = 001001
Z (20) = 101010 −→ F (20) = 010101
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Liczby Fibonacciego — odwrócona reprezentacjaZeckendorfa
Odwrócona reprezentacja Zeckendorfa
W trakcie kodowania wygodniejsza jest reprezentacja, w którejnajmniej znaczący bit znajduje się na początku
Przykłady odwróconej reprezentacji Zeckendorfa
Z (16) = 100100 −→ F (16) = 001001
Z (20) = 101010 −→ F (20) = 010101
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Odwrócona reprezentacja Zeckendorfa — cechy
Wniosek
Każdą dodatnią liczbę całkowitą można przedstawić w odwróconejreprezentacji Zeckendorfa w taki sposób, aby nie zawierała dwóchnastępujących po sobie jedynek
Dowód
Załóżmy, że w reprezentacji Zeckendorfa dwa kolejne bity mająwartość 1. Oznacza to, że do sumy brane są dwie kolejne liczbyFibonacciego. Na podstawie definicji można takie dwa bityzamienić na jeden starszy bit, ponieważ odpowiada on liczbieFibonacciego będącej sumą dwóch młodszych liczb
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Odwrócona reprezentacja Zeckendorfa — cechy
Wniosek
Każdą dodatnią liczbę całkowitą można przedstawić w odwróconejreprezentacji Zeckendorfa w taki sposób, aby nie zawierała dwóchnastępujących po sobie jedynek
Dowód
Załóżmy, że w reprezentacji Zeckendorfa dwa kolejne bity mająwartość 1. Oznacza to, że do sumy brane są dwie kolejne liczbyFibonacciego. Na podstawie definicji można takie dwa bityzamienić na jeden starszy bit, ponieważ odpowiada on liczbieFibonacciego będącej sumą dwóch młodszych liczb
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C1 — definicja
Definicja
Kod Fraenkela–Kleina C1 tworzymy łącząc odwróconąreprezentację Zeckendorfa z bitem 1
Interpretacja
W odwróconej reprezentacji Zeckendorfa nie występująbezpośrednio po sobie dwa bity 1
Ostatnim bitem jest 1
Dodając za ostatnim bitem 1 tworzymy znacznik końca kodu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C1 — definicja
Definicja
Kod Fraenkela–Kleina C1 tworzymy łącząc odwróconąreprezentację Zeckendorfa z bitem 1
Interpretacja
W odwróconej reprezentacji Zeckendorfa nie występująbezpośrednio po sobie dwa bity 1
Ostatnim bitem jest 1
Dodając za ostatnim bitem 1 tworzymy znacznik końca kodu
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C1 — przykład
Symbol Kod1 112 0113 00114 10115 000116 100117 010118 0000119 10001110 01001111 00101112 10101113 000001114 100001115 010001116 0010011
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C2 — definicja
Definicja
Kod Fraenkela–Kleina C2 tworzymy łącząc bity 10 z odwróconąreprezentacją Zeckendorfa liczby pomniejszonej o 1Liczba 1 jest reprezentowana jako 1 (wyjątek)
Interpretacja
Pierwszy i ostatni bit jest równy 1
Dwie następujące po sobie jedynki umożliwiają wyznaczeniegranic między kodami
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C2 — definicja
Definicja
Kod Fraenkela–Kleina C2 tworzymy łącząc bity 10 z odwróconąreprezentacją Zeckendorfa liczby pomniejszonej o 1Liczba 1 jest reprezentowana jako 1 (wyjątek)
Interpretacja
Pierwszy i ostatni bit jest równy 1
Dwie następujące po sobie jedynki umożliwiają wyznaczeniegranic między kodami
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fraenkela–Kleina C2 — przykład
Symbol Kod1 12 1013 10014 100015 101016 1000017 1010018 1001019 100000110 101000111 100100112 100010113 101010114 1000000115 1010000116 10010001
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kod Fibonacciego — cechy
Zalety
Prosta budowa
Stosunkowo dobrywspółczynnik kompresji dladanych, w którychprawdopodobieństwowystępowania symbolimaleje dla kolejnych symbolialfabetu
Wady
Nieco trudniejszyw obliczaniu niżwcześniejsze kody
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Inne kody statyczne
Inne kody Fraenkela–Kleina oraz Apostolico–Fraenkela oparteo liczby Fibonacciego (także liczby Fibonacciego wyższychrzędów)
Kodowanie interpolacyjne
Kody Golomba
Kody Rice’a
Kody Goldbacha
Kody Wheelera
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Plan wykładu
1 EntropiaDefinicjaModelowanie i kodowanie
2 KodowanieDefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody semi-statyczne
Definicja
Kod semi-statyczny jest to kod statyczny zbudowany na podstawieprawdopodobieństwa występowania symboli w kodowanejsekwencji, która została wcześniej przeanalizowana
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Kody semi-statyczne — cechy
Zalety
Lepszy współczynnikkompresji dziękidostosowaniu kodudo rozkładuprawdopodobieństwawystępowania symboli
Możliwość zastosowaniakodów statycznych,w których najczęstszesymbole otrzymująnajkrótsze kody(reorganizacja alfabetu)
Wady
Wolniejsze działanie(konieczność wcześniejszegoprzeanalizowania sekwencji)
Konieczność przekazaniakodu do dekodera
Sebastian Deorowicz Podstawy kompresji
EntropiaKodowanie
DefinicjeProste sposoby kodowaniaKody statyczneKody semi-statyczne
Koniec
Zadanie do domu — po co tyle rodzajów kodów?
Sebastian Deorowicz Podstawy kompresji