Kodowanie Shannona
Kodowanie Shannona – metoda kompresji bezstratnej, którą Claude E. Shannon przedstawił jako jeden z dowodów swojego podstawowego twierdzenia o kodowaniu.
Kodowanie Shannona nie tworzy optymalnych kodów, nieco lepsze wyniki daje modyfikacja znana jako kodowanie Shannona-Fano, zaś optymalny kod wyznacza kodowanie Huffmana.
Kodowanie Shannona
edytujDane jest źródło i stowarzyszone z nimi prawdopodobieństwa
- Prawdopodobieństwa (a wraz z nimi symbole) są sortowane w porządku nierosnącym, tj.
- Następnie dla tak uporządkowanych danych oblicza się niepełne prawdopodobieństwo kumulatywne: – jest to suma prawdopodobieństw elementów od 1 do i-1.
- Kodowanie Shannona polega na wzięciu (długość Shannona) pierwszych bitów binarnego rozwinięcia liczby (brane są bity po przecinku).
Średnia długość kodów mieści się w przedziale gdzie to entropia źródła (średnia liczba bitów na symbol).
Przykład
edytujNiech (entropia ); prawdopodobieństwa są już podane nierosnąco.
Długości Shannona (długości kodów w bitach):
Prawdopodobieństwa kumulatywne:
I ich rozwinięcia binarne (wzięte 5 pierwszych bitów po przecinku, zaznaczono słowa kodowe):
Ostatecznie kody mają postać:
Średnia długość kodu Po podstawieniu do nierówności podanej w twierdzeniu (średnia długość kodów): stwierdzamy, że otrzymany kod rzeczywiście ją spełnia.
Jednak, jak wspomniano, efektywność kodowania Shannona nie jest duża – dla danych z powyższego przykładu wynosi
Zobacz też
edytujBibliografia
edytuj- Claude E. Shannon, A Mathematical Theory of Communication, reprint z poprawkami z „Bell System Technical Journal”, vol. 27, s. 379–423, 623–656, lipiec, październik 1948
Linki zewnętrzne
edytuj- Maurycy Gast , Kompresja danych - Przeczytaj - Kodowanie Shannona [online], Zintegrowana Platforma Edukacyjna [dostęp 2023-06-22] .