Teoria Informacji - wykład. Kodowanie wiadomości

Podobne dokumenty
Teoria informacji i kodowania Ćwiczenia

Elementy teorii informacji i kodowania

Kompresja bezstratna. Entropia. Kod Huffmana

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Kodowanie i entropia

Nierówność Krafta-McMillana, Kodowanie Huffmana

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Kody Tunstalla. Kodowanie arytmetyczne

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Notatki z Podstaw kodowania i kryptografii. switch486 WIZ : PWr na podstawie folii z wykładu i ćwiczeń dr inż. E. Kukli Złożone W Systemie L A TEX

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz

Temat: Algorytm kompresji plików metodą Huffmana

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Podstawy Informatyki: Kody. Korekcja błędów.

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Podstawowe pojęcia. Teoria informacji

Kodowanie informacji

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Wstęp do Informatyki

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

1. Definicja granicy właściwej i niewłaściwej funkcji.

Matematyka dyskretna

Kody blokowe Wykład 2, 10 III 2011

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski.

Definicja. Jeśli. wtedy

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

WYDZIAŁ MATEMATYKI KARTA PRZEDMIOTU

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Kody blokowe Wykład 5a;

Teoria Informacji i Metody Kompresji Danych

0 + 0 = 0, = 1, = 1, = 0.

Entropia to wielkość określająca liczbę bitów informacji zawartej w danej wiadomości lub źródle. Spełnia ona trzy naturalne warunki: I(s) jest

Kodowanie informacji. Przygotował: Ryszard Kijanka

ZADANIE 1. Rozwiązanie:

Przetwarzanie i transmisja danych multimedialnych. Wykład 2 Podstawy kompresji. Przemysław Sękalski.

Temat 7. Dekodery, enkodery

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

0-0000, , , itd

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory

W11 Kody nadmiarowe, zastosowania w transmisji danych

prawda symbol WIEDZA DANE komunikat fałsz liczba INFORMACJA (nie tyko w informatyce) kod znak wiadomość ENTROPIA forma przekaz

22 Pochodna funkcji definicja

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu

Minimalizacja automatów niezupełnych.

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

O oszczędnym dziennikarzu, czyli czym jest

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Spacery losowe generowanie realizacji procesu losowego

Rozkłady statystyk z próby

Laboratorium ochrony danych

Rachunek prawdopodobieństwa

Algorytmy kodowania entropijnego

Zdarzenia losowe i prawdopodobieństwo

Tranzystor JFET i MOSFET zas. działania

WYKŁAD Z ANALIZY MATEMATYCZNEJ I. dr. Elżbieta Kotlicka. Centrum Nauczania Matematyki i Fizyki

Kodowanie informacji. Kody liczbowe

Matematyka I. Bezpieczeństwo jądrowe i ochrona radiologiczna Semestr zimowy 2018/2019 Wykład 12

Kodowanie Shannona-Fano

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Pochodna funkcji. Pochodna funkcji w punkcie. Różniczka funkcji i obliczenia przybliżone. Zastosowania pochodnych. Badanie funkcji.

RACHUNEK PRAWDOPODOBIEŃSTWA - POJĘCIA WSTĘPNE MATERIAŁY POMOCNICZE - TEORIA

wiadomość komunikat - informacja Caius Julius Cesar Człowiek zasztyletowany przez senatorów na forum Romanum w Idy Marcowe roku DCCIX ab urbe condita

7. CIĄGI. WYKŁAD 5. Przykłady :

Podręcznik. Wzór Shannona

Kody splotowe. Zastosowanie

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Wykład 1 Zmienne losowe, statystyki próbkowe - powtórzenie materiału

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

Rozdział 1. Zmienne losowe, ich rozkłady i charakterystyki. 1.1 Definicja zmiennej losowej

Pracownia Komputerowa wykład VI

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Algorytmy i struktury danych. wykład 8

O sygnałach cyfrowych

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Wykład 5. Metoda eliminacji Gaussa

Matematyka dyskretna. 1. Relacje

Zmienne losowe, statystyki próbkowe. Wrocław, 2 marca 2015

Przetwornik analogowo-cyfrowy

Algorytmy i struktury danych. Wykład 4

Funkcje dwóch zmiennych, pochodne cząstkowe

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

Funkcje elementarne. Matematyka 1

Wykład 7: Szeregi liczbowe i potęgowe. S 1 = a 1 S 2 = a 1 + a 2 S 3 = a 1 + a 2 + a 3. a k

Elementy logiki matematycznej

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Transkrypt:

Teoria Informacji - wykład Kodowanie wiadomości

Definicja kodu Niech S={s 1, s 2,..., s q } oznacza dany zbiór elementów. Kodem nazywamy wówczas odwzorowanie zbioru wszystkich możliwych ciągów utworzonych z elementów zbioru S w pewien zbiór ciągów utworzonych z elementów innego zbioru X={x 1, x 2,..., x r }. Zbiór S to zbiór wiadomości elementarnych, a zbiór X zbiorem sygnałów elementarnych. Cecha kodu mając ciąg cyfr binarnych tworzących ciąg kodowy możemy jednoznacznie powrócić do ciągu wiadomości, tzn. zdekodować wiadomość.

Rodzaje kodów KODY NIEBLOKOWE BLOKOWE OSOBLIWE NIEOSOBLIWE NIEJEDNOZNACZNIE DEKODOWALNE JEDNOZNACZNIE DEKODOWALNE Z OPÓŹNIENIEM BEZ OPÓŹNIENIA

Zawężenie definicji kodu Kodem blokowym nazywamy kod, który każdą z wiadomości elementarnych wchodzących w skład zbioru S odwzorowuje w ustalony ciąg sygnałów elementarnych ze zbioru X. Takie ciągi sygnałów elementarnych nazywamy ciągami kodowymi. Ciąg kodowy odpowiadający wiadomości s i oznaczać będziemy przez X i. Tak więc symbol X i oznacza ciąg złożony z elementów typu x j.

Długość słowa kodowego długości ciągów kodowych s 1 =x 11 x 12...x 1l1 l 1 s i =x i1 x i2...x ili l i s q =x q1 x q2...x qlq l q

Nieosobliwy kod Wiadomości elementarne Ciągi kodowe s 1 0 s 2 11 11 s 3 00 s 4 11 11 01 Kod blokowy jest nieosobliwy, jeżeli wszystkie jego ciągi kodowe różnią się nawzajem.

Rozszerzenie kodu Definicja n-krotnym rozszerzeniem kodu blokowego, przyporządkowującego wiadomościom s i ciągi kodowe X i, jest kod blokowy, który ciągom wiadomości elementarnych (s i1, s i2,..., s in ) przyporządkowuje ciągi ciągów kodowych (X i1, X i2,..., X in ). n-krotne rozszerzenie kodu blokowego jest również kodem blokowym.

Wiadomości elementarne Ciągi kodowe s 1 0 s 2 11 s 3 00 s 4 01 s 1 s 3? s 3 s 1 Przykład 2-krotnego Wiadomości elementarne rozszerzenia kodu Ciągi kodowe Wiadomości elementarne Ciągi kodowe s 1 s 1 0 0 s 3 s 1 00 0 s 1 s 2 0 11 s 3 s 2 00 11 000 000 s 1 s 3 0 00 s 3 s 3 00 00 s 1 s 4 0 01 s 3 s 4 00 01 s 2 s 1 11 0 s 4 s 1 01 0 s 2 s 2 11 11 s 4 s 2 01 11 s 2 s 3 11 00 s 4 s 3 01 00 s 2 s 4 11 01 s 4 s 4 01 01

Kod jednoznacznie dekodowalny Kod blokowy jest jednoznacznie dekodowalny wtedy i tylko wtedy, gdy n-krotne rozszerzenie tego kodu jest kodem nieosobliwym dla dowolnego skończonego n.

Przykład kodów jednoznacznie dekodowalnych Wiadomości elementarne Kod A Kod B s 1 00 0 s 2 01 10 s 3 10 110 s 4 11 1110 KodB Kod z przecinkiem sygnał elementarny 0 pełni funkcję przecinka rozdzielającego jeden ciąg kodowy od drugiego KodA Wszystkie ciągi kodowe tej samej długości Kod nieosobliwy Wiadomości elementarne Kod C s 1 0 s 2 01 s 3 011 s 4 0111

Kod dekodowalny bez opóźnienia Jednoznacznie dekodowalny kod będziemy nazywać kodem dekodowalnym bez opóźnienia, jeżeli każdy z ciągów kodowych tego kodu można dekodować bez czekania aż pojawią się sygnały elementarne odpowiadające dalszym ciągom kodowym (następującym po ciągu kodowym aktualnie dekodowanym).

Kod dekodowalny bez opóźnienia Ogólny test Niech X 1 =(x i1, x i2,..., x im ) będzie ciągiem kodowym pewnego kodu. Ciąg sygnałów elementarnych (x i1, x i2,..., x ij ), gdzie j m nazywamy przedrostkiem ciągu kodowego. Warunkiem koniecznym i dostatecznym na to, aby dany kod był kodem dekodowalnym bez opóźnienia, jest, aby żaden pełny ciąg kodowy tego kodu nie był użyty jako przedrostek innego ciągu kodowego tego kodu.

Przykłady kodów dekodowalnych bez opóźnienia Wyjście źródła Kod blokowy Kod z przecinkiem s 1 00 0 s 2 01 10 s 3 10 110 s 4 11 1110

Nierówność Krafta Nierówność Krafta określa warunki konieczne i dostateczne istnienia kodu dekdowalnego bez opóźnień z ciągami kodowymi o długości l 1, l 2,..., l q. q i= 1 r l i 1 l i długość i-tego ciągu kodowego q ilość ciągów kodowych r ilość wiadomości elementarnych podstawa systemu kodowego

Średnia długość ciągu kodowego Niech kod blokowy odwzorowuje wiadomości s 1, s 2,..., s q w ciągi kodowe X 1, X 2,..., X q. Niech prawdopodobieństwa tych wiadomości będą równe P 1, P 2,..., P q oraz niech długości odpowiednich ciągów kodowych będą równe l 1, l 2,..., l q. Wówczas średnią długość L ciągu kodowego definiujemy wzorem: q L = i= 1 P i l i p i prawdopodobieństwo wystąpienia i-tej wiadomości l i długość i-tego ciągu kodowego q ilość ciągów kodowych r ilość wiadomości elementarnych

Kod o możliwie najmniejszej długości ciągu kodowego Definicja Rozważmy kod jednoznacznie dekodowalny, przyporządkowujący elementom źródła wiadomości S ciągi kodowe zbudowane z sygnałów elementarnych, których zbiór zawiera r elementów. Kod taki nazywamy kodem zwięzłym (dla źródła S), jeżeli jego średnia długość jest mniejsza lub równa średniej długości wszystkich jednoznacznie dekodowalnych kodów dla tego samego źródła wiadomości i tego samego zbioru sygnałów elementarnych.

Minimalna długość L Skąd: H ( s) log r L Co jest jednoznaczne z: H r ( s) L

Pierwsze twierdzenie Shannona (Twierdzenie o kodowaniu dla kanałów bezszumowych) Najmniejsza średnia liczba r-narnych sygnałów elementarnych przypadająca na pojedynczą wiadomość jest nie mniejsza niż entropia źródła mierzona w jednostkach r-narnych. lim n L n n = H r ( S) L n średnia długość ciągów kodowych odpowiadających wiadomościom elementarnym ze źródła S n krotność rozszerzenia źródła H r entropia mierzona w jednostkach r-narnych

Kody Huffmana

Metody statystyczne Metoda Huffmana S={x 1,...,x q } jest alfabetem źródła S, P={p 1,...,p q } jest zbiorem prawdopodobieństw stowarzyszonych ze zbiorem S. Najpierw prawdopodobieństwa p i =p(x i ) użycia liter źródłowych x i są ustawione w ciąg nierosnący, tzn. p 1 p 2... p q

Metody statystyczne Metoda Huffmana 1. Konstrukcja źródeł zredukowanych 2 ostatnie wiadomości elementarne źródła S traktujemy jako jedną wtórną (prawdopodobieństwo równe sumie prawdopodobieństw składowych elementów). Otrzymujemy w miejsce źródła pierwotnego S nowe źródło S 1 o zbiorze zawierającym q-1 elementów. Takie źródło nazywamy źródłem zredukowanym. Procedurę tę powtarzamy do momentu, gdy uzyskamy 2-elementowe źródło zredukowane.

Kody Huffmana (kody zwięzłe) Konstrukcja kodów w trzech etapach: 1 ze źródła pierwotnego konstruujemy ciąg źródła zredukowanego, 2 znajdujemy kod zwięzły dla jednego ze źródeł w tym ciągu, 3 konstruowanie kodu dla kolejnych źródeł aż do źródła pierwotnego Kodowanie Wiadomości ostatniego źródła zredukowanego kodujemy, nadając im wartości 0 i 1.

Binarny kod Huffmana Uszereguj wiadomości wg malejących prawdopodobieństw Połącz dwa najmniej prawdopodobne wiadomości w jedną TAK Czy liczba wiadomości jest większa od 2? NIE Przypisz do każdej z dwu wiadomości różne bity Rozłącz połączone ostatnio dwie wiadomości i do wspólnego kodu każdej z nich dopisz inny bit TAK Czy są jeszcze złączone wiadomości? NIE

Przykład binarnego kodu zwięzłego Źródło pierwotne Źródło zredukowane Wiadomości elementarne Prawdopodobieństwa S 1 S 2 S 3 S 4 1 s 1 0,4 0,4 0,4 0,4 0,6 00 1 00 s 2 0,3 0,3 0,3 0,3 0,4 1 00 1 00 0 1 011 011 010 s 3 0,1 0,1 0,2 0,3 01 0110 0100 s 4 0,1 0,1 0,1 011 01010 s 5 0,06 0,1 0101 s 6 0,04 01011

Metoda Huffmana r-narne kody zwięzłe 1. Łączenie r-wiadomości w 1 wiadomość. 2. Ostatnie źródło musi zawierać r-wiadomości. 3. Źródło pierwotne musi zawierać r+k(r-1), wiadomości; k jest liczbą całkowitą.

r-narne kody zwięzłe Ostatnie źródło zawiera w swym zbiorze r elementów wtedy i tylko wtedy, gdy źródło pierwotne zawiera tych elementów r+k(r-1), gdzie k całkowite. np. n=r+k(r-1)=13, dla k=3, r=4

r-narne kody Huffmana Uwagi do algorytmu Łączyć będzie się po r najmniej prawdopodobnych wiadomości Aby na końcu uzyskać dokładnie r wiadomości, za pierwszym razem połączymy nie więcej niż r wiadomości, aby w następnym kroku ich liczba była równa dla dowolnego całkowitego k. r + k (r 1) r Dozwolone liczby wiadomości 3 5 7 9 11 13 15 17 19 21 23 25 4 7 10 13 16 19 22 25 28 31 34 37 8 15 22 29 36 43 50 57 64 71 78 85 10 19 28 37 46 55 64 73 82 91 100 109 16 31 46 61 76 91 106 121 136 151 166 181

Algorytm r 0 =r; Oblicz liczbę r 0 wiadomości do połączenia Uszereguj wiadomości wg malejących prawdopodobieństw Połącz r 0 najmniej prawdopodobnych wiadomości w jedną TAK Czy liczba wiadomości jest większa od r? NIE Przypisz do każdej z r wiadomości różne symbole Rozłącz połączone ostatnio r wiadomości i do wspólnego kodu każdej z nich dopisz inny symbol TAK Czy są jeszcze złączone wiadomości? NIE

Przykład kodu r-narnego Dla r=3. Źródło pierwotne Wiadomości elementarne Prawdopodobieństwa Źródło zredukowane S 1 S 2 S 3 s 1 0,4 0,4 0,4 0,4 s 2 0,2 0,2 0,2 0,4 s 3 0,1 0,1 0,2 0,2 s 4 0,1 0,1 0,1 s 5 0,05 0,1 0,1 s 6 0,05 0,05 s 7 0,05 0,05 s 8 0,05 s 9 0 1 00 02 20 21 22 010 011 012 1 00 01 02 20 21 22 1 2 00 01 02 0 1 2

Sprawność i rozwlekłość kodu Definicje. Sprawność kodu Rozwlekłość kodu η = H r ( S) L rozwlekłość = 1 η = L H r ( S) L L średnia długość ciągów kodowych odpowiadających wiadomościom elementarnym ze źródła S H r entropia mierzona w jednostkach r-narnych η - sprawność kodu