Kodowanie i kompresja informacji - Wykład 5 22 marca 2010
Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie.
Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. W językach naturalnych na podstawie już przeczytanych symboli można z bardzo dużym prawdopodobieństwem przewidzieć następny symbol (mocna zależność od historii).
Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. W językach naturalnych na podstawie już przeczytanych symboli można z bardzo dużym prawdopodobieństwem przewidzieć następny symbol (mocna zależność od historii). Często zamiast kompresować ciag wejściowy kompresujemy różnicę miedzy tym ciagiem a ciagiem generowanym przez pewien zgadywacz.
Przykład wykorzystania kontekstu A B C A 0.1 0.3 0.6 B 0.6 0.1 0.3 C 0.3 0.6 0.1 Łatwo sprawdzić, że P(A) = P(B) = P(C) = 1, stad 3 normalny kod Huffmana będzie miał średnia długość 5. 3
Przykład wykorzystania kontekstu A B C A 0.1 0.3 0.6 B 0.6 0.1 0.3 C 0.3 0.6 0.1 Łatwo sprawdzić, że P(A) = P(B) = P(C) = 1, stad 3 normalny kod Huffmana będzie miał średnia długość 5. 3 Co będzie jeśli wykorzystamy informację o tym po jakiej literze występuje kolejna, czyli stworzymy trzy kodowania Huffmana, kolejno dla liter występujacych po A, B, C?
Przykład wykorzystania kontekstu A B C A 0.1 0.3 0.6 B 0.6 0.1 0.3 C 0.3 0.6 0.1 Łatwo sprawdzić, że P(A) = P(B) = P(C) = 1, stad 3 normalny kod Huffmana będzie miał średnia długość 5. 3 Co będzie jeśli wykorzystamy informację o tym po jakiej literze występuje kolejna, czyli stworzymy trzy kodowania Huffmana, kolejno dla liter występujacych po A, B, C? Łatwo policzyć, że wtedy średnia długość kodu spadnie do 13. 10
Przykład wykorzystania kontekstu A B C A 0.1 0.3 0.6 B 0.6 0.1 0.3 C 0.3 0.6 0.1 Łatwo sprawdzić, że P(A) = P(B) = P(C) = 1, stad 3 normalny kod Huffmana będzie miał średnia długość 5. 3 Co będzie jeśli wykorzystamy informację o tym po jakiej literze występuje kolejna, czyli stworzymy trzy kodowania Huffmana, kolejno dla liter występujacych po A, B, C? Łatwo policzyć, że wtedy średnia długość kodu spadnie do 13. 10 Gdybyśmy wydłużyli historię (kontekst) moglibyśmy uzyskać większy stopień kompresji, ale ilość kodów rosłaby szybko.
Predykcja z częściowym dopasowaniem (PPM) Algorytm dynamiczny wykorzystujacy kontekst.
Predykcja z częściowym dopasowaniem (PPM) Algorytm dynamiczny wykorzystujacy kontekst. Specjalny symbol wyjścia oznaczajacy brak istniejacego kontekstu danej długości (<esc>).
Predykcja z częściowym dopasowaniem (PPM) Algorytm dynamiczny wykorzystujacy kontekst. Specjalny symbol wyjścia oznaczajacy brak istniejacego kontekstu danej długości (<esc>). Ustalamy maksymalny rozmiar kontekstu.
Predykcja z częściowym dopasowaniem (PPM) Algorytm dynamiczny wykorzystujacy kontekst. Specjalny symbol wyjścia oznaczajacy brak istniejacego kontekstu danej długości (<esc>). Ustalamy maksymalny rozmiar kontekstu. Dla danej litery szukamy maksymalnego kontekstu, jeśli nie wysyłamy symbol wyjścia i sprawdzamy krótszy kontekst. Jeśli istnieje to wysyłamy odpowiedni kod a ilość użycia litery w tym kontekście zwiększamy o 1.
Predykcja z częściowym dopasowaniem (PPM) Algorytm dynamiczny wykorzystujacy kontekst. Specjalny symbol wyjścia oznaczajacy brak istniejacego kontekstu danej długości (<esc>). Ustalamy maksymalny rozmiar kontekstu. Dla danej litery szukamy maksymalnego kontekstu, jeśli nie wysyłamy symbol wyjścia i sprawdzamy krótszy kontekst. Jeśli istnieje to wysyłamy odpowiedni kod a ilość użycia litery w tym kontekście zwiększamy o 1. Jeśli symbol pojawił się po raz pierwszy dodajemy go bez kontekstu, (kontekst -1) z prawdopodobieństwem równym dla każdej litery.
Przykład Kodujemy tekst: this-is-the-tithe.
Przykład Kodujemy tekst: this-is-the-tithe. Przyjmujemy, że najdłuższy kontekst ma długość 2 (mamy konteksty długości -1, 0, 1 i 2).
Przykład Kodujemy tekst: this-is-the-tithe. Przyjmujemy, że najdłuższy kontekst ma długość 2 (mamy konteksty długości -1, 0, 1 i 2). Po zakodowaniu this-is mamy następujace tabele kontekstów:
Przykład Kodujemy tekst: this-is-the-tithe. Przyjmujemy, że najdłuższy kontekst ma długość 2 (mamy konteksty długości -1, 0, 1 i 2). Po zakodowaniu this-is mamy następujace tabele kontekstów: Kontekst długości -1 Litera Licznik t 1 h 1 i 1 s 1-1
Przykład Kontekst długości 0 Litera Licznik <esc> 1 t 1 h 1 i 2 s 1-1
Przykład Kontekst długości 1 Kontekst Litera Licznik t <esc> 1 h 1 h <esc> 1 i 1 i <esc> 1 s 2 s <esc> 1-1 - <esc> 1 i 1
Przykład Kontekst długości 2 Kontekst Litera Licznik th <esc> 1 i 1 hi <esc> 1 s 1 is <esc> 1-1 s- <esc> 1 i 1 -i <esc> 1 s 1
PPM Dla każdego kontekstu możemy teraz utworzyć dynamiczne kody Huffmana.
PPM Dla każdego kontekstu możemy teraz utworzyć dynamiczne kody Huffmana. Albo wykorzystać dany kontekst z ilościa wystapień jako prawdopodobieństwa do podziału odcinka w kodowaniu arytmetycznym.
PPM Dla każdego kontekstu możemy teraz utworzyć dynamiczne kody Huffmana. Albo wykorzystać dany kontekst z ilościa wystapień jako prawdopodobieństwa do podziału odcinka w kodowaniu arytmetycznym. Najczęściej za maksymalna długość kontekstu przyjmuje się 5.
CALIC - Context Adaptative Lossless Image Compresion NN NNE NW N NE WW W X Sprawdzamy czy w sasiedztwie sa krawędzie pionowe lub poziome, w tym celu liczymy wartości pomocnicze d h = W WW + N NW + NE N d v = W NW + N NN + NE NNE
CALIC - Context Adaptative Lossless Image Compresion Pseudokod algorytmu:
CALIC - Context Adaptative Lossless Image Compresion Pseudokod algorytmu: if d h d v > 80 then X N else if d v d h > 80 then X W else X (N + W )/2 + (NE NW )/4 if d h d v > 32 then X ( X + N)/2 else if d v d h > 32 then X ( X + W )/2 else if d h d v > 8 then X (3 X + N)/4 else if d v d h > 8 then X (3 X + W )/4
CALIC - Context Adaptative Lossless Image Compresion Pseudokod algorytmu: if d h d v > 80 then X N else if d v d h > 80 then X W else X (N + W )/2 + (NE NW )/4 if d h d v > 32 then X ( X + N)/2 else if d v d h > 32 then X ( X + W )/2 else if d h d v > 8 then X (3 X + N)/4 else if d v d h > 8 then X (3 X + W )/4 Predykcję X można jeszcze bardziej uszczegółowić.
CALIC - Context Adaptative Lossless Image Compresion Pseudokod algorytmu: if d h d v > 80 then X N else if d v d h > 80 then X W else X (N + W )/2 + (NE NW )/4 if d h d v > 32 then X ( X + N)/2 else if d v d h > 32 then X ( X + W )/2 else if d h d v > 8 then X (3 X + N)/4 else if d v d h > 8 then X (3 X + W )/4 Predykcję X można jeszcze bardziej uszczegółowić. Kodujemy ciag różnic X X.
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N 3 X = NW
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N 3 X = NW 4 X = N + W NW
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N 3 X = NW 4 X = N + W NW 5 X = N + (W NW )/2
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N 3 X = NW 4 X = N + W NW 5 X = N + (W NW )/2 6 X = W + (N NW )/2
JPEG-LS (bezstratny) NW W N X 7 schematów predykcji: 1 X = W 2 X = N 3 X = NW 4 X = N + W NW 5 X = N + (W NW )/2 6 X = W + (N NW )/2 7 X = (N + W )/2
JPEG-LS (bezstratny) NW W N X Nowy standard: if NW max(w, N) then X max(w, N) else if NW max(w, N) then X min(w, N) else X W + N NW
Wykorzystanie poziomów rozdzielczości Kodujemy obraz wysyłajac najpierw średni kolor kwadratów 2 k x2 k a następnie różnice między ta średnia a kwadratami o rozmiarach 2 k 1 x2 k 1.
Wykorzystanie poziomów rozdzielczości Kodujemy obraz wysyłajac najpierw średni kolor kwadratów 2 k x2 k a następnie różnice między ta średnia a kwadratami o rozmiarach 2 k 1 x2 k 1. Kończymy na pikslach (kwadraty 2 0 x2 0 ).
Wykorzystanie poziomów rozdzielczości Kodujemy obraz wysyłajac najpierw średni kolor kwadratów 2 k x2 k a następnie różnice między ta średnia a kwadratami o rozmiarach 2 k 1 x2 k 1. Kończymy na pikslach (kwadraty 2 0 x2 0 ). Różnice nie sa dużymi liczbami i łatwo poddaja się kompresji.
Hierarchical INTerpolation (HINT)
Piramida transmisji progresywnej
JBIG idea Obraz przesyłamy progresywnie, coraz wyższa rozdzielczość.
JBIG idea Obraz przesyłamy progresywnie, coraz wyższa rozdzielczość. Prawdopodobieństwo wystapienia czarnego punktu w białym sasiedztwie jest zdecydowanie niższe niż w sasiedztwie zawierajacym już czarne piksele.
JBIG idea Obraz przesyłamy progresywnie, coraz wyższa rozdzielczość. Prawdopodobieństwo wystapienia czarnego punktu w białym sasiedztwie jest zdecydowanie niższe niż w sasiedztwie zawierajacym już czarne piksele. Sasiedztwo stanowia zakodowane wcześniej piksele (np. kilka poprzednich wierszy obrazu) wraz z wyszczególnionym pikselem A (zmiany jego położenia sa przesyłane do de kodera).
JBIG idea Obraz przesyłamy progresywnie, coraz wyższa rozdzielczość. Prawdopodobieństwo wystapienia czarnego punktu w białym sasiedztwie jest zdecydowanie niższe niż w sasiedztwie zawierajacym już czarne piksele. Sasiedztwo stanowia zakodowane wcześniej piksele (np. kilka poprzednich wierszy obrazu) wraz z wyszczególnionym pikselem A (zmiany jego położenia sa przesyłane do de kodera). Algorytm wykorzystuje od 1024 do 4096 różnych koderów (tzn. dla różnych kontekstów kodowanego piksela).
JBIG idea Obraz przesyłamy progresywnie, coraz wyższa rozdzielczość. Prawdopodobieństwo wystapienia czarnego punktu w białym sasiedztwie jest zdecydowanie niższe niż w sasiedztwie zawierajacym już czarne piksele. Sasiedztwo stanowia zakodowane wcześniej piksele (np. kilka poprzednich wierszy obrazu) wraz z wyszczególnionym pikselem A (zmiany jego położenia sa przesyłane do de kodera). Algorytm wykorzystuje od 1024 do 4096 różnych koderów (tzn. dla różnych kontekstów kodowanego piksela). W procesie kodowania wykorzystywane jest kodowanie arytmetyczne.
JBIG sasiedztwo Sasiedztwo 3- i 2-wierszowe Piksele O i A stanowia sasiedztwo kodowanego piksela X. Położenie A może być zmieniane, tak by oddać charakter danych (np. pionowe pasy co 50 pikseli).
Standard transmisji faksów Grupa 1 6 minut na stronę A4 przez analogowa linię telefoniczna (urzadzenia opisane w T.2)
Standard transmisji faksów Grupa 1 6 minut na stronę A4 przez analogowa linię telefoniczna (urzadzenia opisane w T.2) Grupa 2 3 minuty jw. także bez kompresji (T.3)
Standard transmisji faksów Grupa 1 6 minut na stronę A4 przez analogowa linię telefoniczna (urzadzenia opisane w T.2) Grupa 2 3 minuty jw. także bez kompresji (T.3) Grupa 3 1 minuta wykorzystuja reprezentację cyfrowa, możliwa kompresja (T.4)
Standard transmisji faksów Grupa 1 6 minut na stronę A4 przez analogowa linię telefoniczna (urzadzenia opisane w T.2) Grupa 2 3 minuty jw. także bez kompresji (T.3) Grupa 3 1 minuta wykorzystuja reprezentację cyfrowa, możliwa kompresja (T.4) Grupa 4 podobnie jak wyżej (T.6, T.503, T.521, T.563)
Kodowanie obrazów czarno-białych (faksy) MH Linie takich obrazów zawieraja na przemian bloki białe i czarne.
Kodowanie obrazów czarno-białych (faksy) MH Linie takich obrazów zawieraja na przemian bloki białe i czarne. Możemy przesyłać więc tylko długości takich bloków (zakładajac, że pierwszy jest biały).
Kodowanie obrazów czarno-białych (faksy) MH Linie takich obrazów zawieraja na przemian bloki białe i czarne. Możemy przesyłać więc tylko długości takich bloków (zakładajac, że pierwszy jest biały). Dodatkowo każda liczbę przedstawiamy jako parę m, t, gdzie l = 64m + t dla t = 0,..., 63 i m = 0,..., 27.
Kodowanie obrazów czarno-białych (faksy) MH Linie takich obrazów zawieraja na przemian bloki białe i czarne. Możemy przesyłać więc tylko długości takich bloków (zakładajac, że pierwszy jest biały). Dodatkowo każda liczbę przedstawiamy jako parę m, t, gdzie l = 64m + t dla t = 0,..., 63 i m = 0,..., 27. Do kodowania białych i czarnych serii używamy różnych koderów.
Kodowanie obrazów czarno-białych (faksy) MH Linie takich obrazów zawieraja na przemian bloki białe i czarne. Możemy przesyłać więc tylko długości takich bloków (zakładajac, że pierwszy jest biały). Dodatkowo każda liczbę przedstawiamy jako parę m, t, gdzie l = 64m + t dla t = 0,..., 63 i m = 0,..., 27. Do kodowania białych i czarnych serii używamy różnych koderów.... ale możemy wykorzystać korelację pomiędzy kolejnymi liniami obrazu.
Kodowanie faksów MR a 0 ostatni piksel znany koderowi i dekoderowi (lub fikcyjny biały piksel).
Kodowanie faksów MR a 0 ostatni piksel znany koderowi i dekoderowi (lub fikcyjny biały piksel). a 1 pierwszy piksel przejścia na prawo od a 0 (innego koloru!).
Kodowanie faksów MR a 0 ostatni piksel znany koderowi i dekoderowi (lub fikcyjny biały piksel). a 1 pierwszy piksel przejścia na prawo od a 0 (innego koloru!). a 2 drugi piksel przejścia na prawo od a 0.
Kodowanie faksów MR a 0 ostatni piksel znany koderowi i dekoderowi (lub fikcyjny biały piksel). a 1 pierwszy piksel przejścia na prawo od a 0 (innego koloru!). a 2 drugi piksel przejścia na prawo od a 0. b 1 pierwszy piksel przejścia na prawo i powyżej od a 0 o kolorze przeciwnym.
Kodowanie faksów MR a 0 ostatni piksel znany koderowi i dekoderowi (lub fikcyjny biały piksel). a 1 pierwszy piksel przejścia na prawo od a 0 (innego koloru!). a 2 drugi piksel przejścia na prawo od a 0. b 1 pierwszy piksel przejścia na prawo i powyżej od a 0 o kolorze przeciwnym. b 2 pierwszy piksel przejścia na prawo od b 1.
Kodowanie faksów MR (2) Jeżeli b 1 i b 2 znajduja się pomiędzy a 1 i a 2, to wysyłamy kod 0001, nowym pikselem a 0 staje się piksel pod b 2, pozostałe aktualizujemy zgodnie z definicja.
Kodowanie faksów MR (2) Jeżeli b 1 i b 2 znajduja się pomiędzy a 1 i a 2, to wysyłamy kod 0001, nowym pikselem a 0 staje się piksel pod b 2, pozostałe aktualizujemy zgodnie z definicja. Niektóre wiersze (co pewna wartość) sa kodowane bez uwzględnienia wartości poprzedniego wiersza, aby zapobiec propagacji błędów.
Kodowanie faksów MR (3) Jeżeli a 1 znajduje się przed b 2 rozpatrujemy 2 przypadki:
Kodowanie faksów MR (3) Jeżeli a 1 znajduje się przed b 2 rozpatrujemy 2 przypadki: jeżeli odległość od a 1 do b 2 mniejsza lub równa trzy, to przesyłamy odpowiedni kod do dekodera i aktualizujemy pozycje (a 0 na a 1 itd.) tzw. tryb pionowy,
Kodowanie faksów MR (3) Jeżeli a 1 znajduje się przed b 2 rozpatrujemy 2 przypadki: jeżeli odległość od a 1 do b 2 mniejsza lub równa trzy, to przesyłamy odpowiedni kod do dekodera i aktualizujemy pozycje (a 0 na a 1 itd.) tzw. tryb pionowy, jeżeli odległość jest większa, to postępujemy podobnie jak w przypadku kodowania jednowymiarowego (MH).
bzip2 Algorytm kompresji popularny w systemach Linux-owych.
bzip2 Algorytm kompresji popularny w systemach Linux-owych. Standardowa implementacja kompresuje bloki danych o rozmiarach do 100 do 900 kb.
bzip2 Algorytm kompresji popularny w systemach Linux-owych. Standardowa implementacja kompresuje bloki danych o rozmiarach do 100 do 900 kb. Blok jest przekształcany transformata Burrowsa-Wheelera, następnie kodowany algorytmem Move-To-Front i kompresowany algorytmem Huffmana.
bzip2 Algorytm kompresji popularny w systemach Linux-owych. Standardowa implementacja kompresuje bloki danych o rozmiarach do 100 do 900 kb. Blok jest przekształcany transformata Burrowsa-Wheelera, następnie kodowany algorytmem Move-To-Front i kompresowany algorytmem Huffmana. Algorytm osiaga o 10%-20% lepsze wyniki niż najczęściej stosowane algorytmy strumieniowe ale nie może być używany do kodowania strumieni.
Transformata Burrowsa-Wheelera Na poczatku mamy blok danych o rozmiarze N, np. a l a - m a - k o t a
Transformata Burrowsa-Wheelera Na poczatku mamy blok danych o rozmiarze N, np. a l a - m a - k o t a Generujemy wszystkie N rotacji kompresowanego bloku 0 a l a - m a - k o t a 1 l a - m a - k o t a a 2 a - m a - k o t a a l 3 - m a - k o t a a l a 4 m a - k o t a a l a - 5 a - k o t a a l a - m 6 - k o t a a l a - m a 7 k o t a a l a - m a - 8 o t a a l a - m a - k 9 t a a l a - m a - k o 10 a a l a - m a - k o t
Transformata Burrowsa-Wheelera Sortujemy powstałe łańcuchy leksykograficznie 0 - k o t a a l a - m a 1 - m a - k o t a a l a 2 a - k o t a a l a - m 3 a - m a - k o t a a l 4 a a l a - m a - k o t 5 a l a - m a - k o t a 6 k o t a a l a - m a - 7 l a - m a - k o t a a 8 m a - k o t a a l a - 9 o t a a l a - m a - k 10 t a a l a - m a - k o
Transformata Burrowsa-Wheelera Sortujemy powstałe łańcuchy leksykograficznie 0 - k o t a a l a - m a 1 - m a - k o t a a l a 2 a - k o t a a l a - m 3 a - m a - k o t a a l 4 a a l a - m a - k o t 5 a l a - m a - k o t a 6 k o t a a l a - m a - 7 l a - m a - k o t a a 8 m a - k o t a a l a - 9 o t a a l a - m a - k 10 t a a l a - m a - k o Wynik transformacji: numer wiersza z pierwotnym tekstem i ostatnia kolumna tabeli. 5 a a m l t a - a - k o
Odwracanie transformacji Mamy numer wiersza 5 i tekst a a m l t a - a - k o
Odwracanie transformacji Mamy numer wiersza 5 i tekst a a m l t a - a - k o Dopisujemy do tekstu indeksy 7 8 9 10 a a m l t a - a - k o 7 8 9 10
Odwracanie transformacji Mamy numer wiersza 5 i tekst a a m l t a - a - k o Dopisujemy do tekstu indeksy 7 8 9 10 a a m l t a - a - k o 7 8 9 10 I sortujemy tekst (stabilnie) 7 8 9 10 - - a a a a k l m o t 6 8 0 1 5 7 9 3 2 10 4
Odwracanie transformacji Mamy numer wiersza 5 i tekst a a m l t a - a - k o Dopisujemy do tekstu indeksy 7 8 9 10 a a m l t a - a - k o 7 8 9 10 I sortujemy tekst (stabilnie) 7 8 9 10 - - a a a a k l m o t 6 8 0 1 5 7 9 3 2 10 4 Teraz zaczynajac od pozycji 5 wypisujemy kolejno znaki zgodnie z indeksami 5 7 3 1 8 2 0 6 9 10 4 i otrzymujemy a l a - m a - k o t a
Move-To-Front Transformacja strumienia danych mogaca spowodować zmniejszenie entropii.
Move-To-Front Transformacja strumienia danych mogaca spowodować zmniejszenie entropii. Zyski gdy symbole wykazuja tendencję do lokalnego grupowania się.
Move-To-Front Transformacja strumienia danych mogaca spowodować zmniejszenie entropii. Zyski gdy symbole wykazuja tendencję do lokalnego grupowania się. Dane o takiej charakterystyce sa często wynikiem transformaty Burrowsa-Wheelera.
Transformacja Na poczatku mamy tablicę N posortowanych symboli. Kodem symbolu jest numer pozycji w tablicy (numery od 0 do N 1).
Transformacja Na poczatku mamy tablicę N posortowanych symboli. Kodem symbolu jest numer pozycji w tablicy (numery od 0 do N 1). W każdym kroku bierzemy pojedynczy symbol, wypisujemy jego numer z tablicy i modyfikujemy tablicę przesuwajac rozpatrywany symbol na poczatek tablicy.
Transformacja Na poczatku mamy tablicę N posortowanych symboli. Kodem symbolu jest numer pozycji w tablicy (numery od 0 do N 1). W każdym kroku bierzemy pojedynczy symbol, wypisujemy jego numer z tablicy i modyfikujemy tablicę przesuwajac rozpatrywany symbol na poczatek tablicy. Jeśli symbole sa lokalnie pogrupowane to sa przesuwane na poczatek tablicy i w kodzie wynikowym pojawiaja się częściej małe liczby.
Transformacja Na poczatku mamy tablicę N posortowanych symboli. Kodem symbolu jest numer pozycji w tablicy (numery od 0 do N 1). W każdym kroku bierzemy pojedynczy symbol, wypisujemy jego numer z tablicy i modyfikujemy tablicę przesuwajac rozpatrywany symbol na poczatek tablicy. Jeśli symbole sa lokalnie pogrupowane to sa przesuwane na poczatek tablicy i w kodzie wynikowym pojawiaja się częściej małe liczby. Odwrócenie transformacji jest praktycznie identyczne jak algorytm transformacji.
Przykład transformacji a a m l t a - a - k o - a k l m o t
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o 1 0 4 4 6 3 4 a - k o - a t l m k o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o 1 0 4 4 6 3 4 a - k o - a t l m k o 1 0 4 4 6 3 4 1 - k o a - t l m k o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o 1 0 4 4 6 3 4 a - k o - a t l m k o 1 0 4 4 6 3 4 1 - k o a - t l m k o 1 0 4 4 6 3 4 1 1 k o - a t l m k o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o 1 0 4 4 6 3 4 a - k o - a t l m k o 1 0 4 4 6 3 4 1 - k o a - t l m k o 1 0 4 4 6 3 4 1 1 k o - a t l m k o 1 0 4 4 6 3 4 1 1 5 o k - a t l m o
Przykład transformacji a a m l t a - a - k o - a k l m o t 1 a m l t a - a - k o a - k l m o t 1 0 m l t a - a - k o a - k l m o t 1 0 4 l t a - a - k o m a - k l o t 1 0 4 4 t a - a - k o l m a - k o t 1 0 4 4 6 a - a - k o t l m a - k o 1 0 4 4 6 3 - a - k o a t l m - k o 1 0 4 4 6 3 4 a - k o - a t l m k o 1 0 4 4 6 3 4 1 - k o a - t l m k o 1 0 4 4 6 3 4 1 1 k o - a t l m k o 1 0 4 4 6 3 4 1 1 5 o k - a t l m o 1 0 4 4 6 3 4 1 1 5 6 o k - a t l m
Przykład transformacji Dla ciagu a a m l t a - a - k o entropia wynosi 2, 550.
Przykład transformacji Dla ciagu a a m l t a - a - k o entropia wynosi 2, 550. Dla ciagu 1 0 4 4 6 3 4 1 1 5 6 entropia wynosi 2, 413.
Przykład transformacji Dla ciagu a a m l t a - a - k o entropia wynosi 2, 550. Dla ciagu 1 0 4 4 6 3 4 1 1 5 6 entropia wynosi 2, 413. Dla długich ciagów zyski moga być dużo większe i kodowanie Huffmana efektywniejsze.
Kompresja bezstratna podsumowanie Techniki oparte na prawdopodobieństwach: kody Huffmana, Tunstalla, kodowanie arytmetyczne.
Kompresja bezstratna podsumowanie Techniki oparte na prawdopodobieństwach: kody Huffmana, Tunstalla, kodowanie arytmetyczne. Metody słownikowe: LZ77, LZ78, LZW.
Kompresja bezstratna podsumowanie Techniki oparte na prawdopodobieństwach: kody Huffmana, Tunstalla, kodowanie arytmetyczne. Metody słownikowe: LZ77, LZ78, LZW. : PPM, CALIC, JPEG-LS, run-length encoding.
Kompresja bezstratna podsumowanie Techniki oparte na prawdopodobieństwach: kody Huffmana, Tunstalla, kodowanie arytmetyczne. Metody słownikowe: LZ77, LZ78, LZW. : PPM, CALIC, JPEG-LS, run-length encoding. Stosowanie kilku metod po kolei.