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

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

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

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 6 Metody predykcyjne. Przemysław Sękalski.

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Definicja. Jeśli. wtedy

Teoria informacji i kodowania Ćwiczenia

Elementy teorii informacji i kodowania

Temat: Algorytm kompresji plików metodą Huffmana

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

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

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

Teoria Informacji - wykład. Kodowanie wiadomości

Kompresja bezstratna. Entropia. Kod Huffmana

Kody Tunstalla. Kodowanie arytmetyczne

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

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

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

Systemy liczenia. 333= 3*100+3*10+3*1

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Podstawowe pojęcia. Teoria informacji

Kodowanie informacji

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

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

Przetwarzanie i transmisja danych multimedialnych

O sygnałach cyfrowych

Algorytmy kodowania entropijnego

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

Kodowanie i entropia

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

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Wprowadzenie. Algorytmy kompresji danych. Sebastian Deorowicz. Politechnika Śląska. Sebastian Deorowicz (PŚl) Wprowadzenie / 60

Kompresja danych DKDA (7)

Teoria Informacji i Metody Kompresji Danych

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

Kodowanie predykcyjne

Kodowanie informacji. Przygotował: Ryszard Kijanka

jest rozwiązaniem równania jednorodnego oraz dla pewnego to jest toŝsamościowo równe zeru.

Drzewa Decyzyjne, cz.2

Podstawy kompresji danych

Wybrane metody kompresji obrazów

Kodowanie informacji. Kody liczbowe

Techniki multimedialne

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

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

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

O oszczędnym dziennikarzu, czyli czym jest

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

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

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Algorytmy zachłanne. dr inż. Urszula Gałązka

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

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

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder

Matematyka dyskretna

Nierówność Krafta-McMillana, Kodowanie Huffmana

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

ZADANIE 1. Rozwiązanie:

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 Shannona-Fano

1.1. Pozycyjne systemy liczbowe

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Technologie Informacyjne

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

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

Arytmetyka komputera

Stan wysoki (H) i stan niski (L)

dr inż. Jacek Naruniec

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Przetworniki analogowo-cyfrowe - budowa i działanie" anie"

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Kwantyzacja wektorowa. Kodowanie różnicowe.

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

Kodowanie predykcyjne

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Fundamentals of Data Compression

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Arytmetyka liczb binarnych

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

Pracownia Komputerowa wykład IV

Przepustowość kanału, odczytywanie wiadomości z kanału, poprawa wydajności kanału.

Jak zadać dobre pytanie, czyli czym jest informacja i jak ja

Algorytmy i struktury danych. wykład 8

Podręcznik. Wzór Shannona

Statystyka hydrologiczna i prawdopodobieństwo zjawisk hydrologicznych.

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

Transkrypt:

Przetwarzanie i transmisja danych multimedialnych Wykład Podstawy kompresji Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS

Zawartość wykładu. Wprowadzenie do kompresji i transmisji danych. Podstawy kompresji 3. Shannona Fano i Huffmana 4. arytmetyczne 5. Algorytmy słownikowe 6. Algorytm predykcji przez częściowe dopasowanie (PPM) 7. Transformata Burrowsa Wheelera (BWT) 8. Wybrane algorytmy specjalizowane 9. Dynamiczny koder Markowa (DMC) i algorytm kontekstowych drzew waŝonych (CTW) 0. Bezstratna kompresja obrazów. Stratna kompresja obrazów. Stratna kompresja dźwięku 3. Kompresja wideo

Plan wykładu Podstawowe definicje Paradygmat kompresji owanie Przykłady prostych kodów Kody statyczne 3

(informacja własna) związana z wystąpieniem zdarzenia A, którego prawdopodobieństwo wystąpienia wynosi P(A) określana jest zaleŝnością (Hartley 98): I ( A) = log n P ( A) = log Jednostka, w której mierzona jest autoinformacja zaleŝy od podstawy logarytmu: n = bit (ang. bit [binary digit]), n = e nat (ang. nat [natural digit]), n P( A) n = 0 hartley (od nazwiska Ralpha Hartleya) I 0 9 8 7 6 5 4 3 0 funkcja autoinformacji 0 P 4

Obliczanie autoinformacji Przykład : ZałóŜmy, Ŝe mamy źródło które generuje symbole A = {a, a, a 3, a 4 } z prawdopodobieństwem P = {½, ¼, /8,/8}. wynosi wówczas: I ( a ) I( a I( a 3 ) = log ) = log = I( a 4 P ( a ) P ( a ) ) = log = log = log P ( a ) 3 = bit 4 = bity = log 8 = 3bity 5

Obliczanie autoinformacji Przykład : ZałóŜmy, Ŝe mamy źródło które generuje symbole A = {a, a, a 3, a 4 } z prawdopodobieństwem P = {3/8, 3/8, /8,/8}. wynosi wówczas: I ( a ) I( a 3 ) = I( a = I( a ) = log 4 ) = log P ( a ) P = log ( a ) 3 8 3 = log =,45bita 8 = 3bity Funkcja autoinformacji koncentruje się na jednej literze, a nie na zbiorze liter (wiadomości) 6

Pojęcie entropii wprowadził Shannon. Jest to funkcja postaci: H ( p,..., pn) = H ( A) = pi lg Taką funkcję nazywamy entropią stowarzyszona ze zbiorem n niezaleŝnych zdarzeń A = {a,..., a n } i ze zbiorem prawdopodobieństw ich zajścia P = {p,..., p n )} n i= p i = n i= p i I i jest średnią autoinformacją 7

W kontekście kodowania wiadomości entropia reprezentuje ograniczenie na średnią długość słowa kodu uŝywanego przy kodowaniu wartości wyjściowych. p i = 7, I H ( A) = i n i=,8bit p i I i = 7* 7 *,8 =,8bit a b c d e f g Przykład drzewa decyzyjnego h p i =, I 8 H ( A) = i n i= = 3bity p i I i = 8* 8 *3 = 3bity 8

Eksperyment i jego entropia Eksperymentem nazywamy generowanie przez źródło symboli a i ze zbioru alfabetu A a i A={a a n } a źródło Entropią eksperymentu nazywamy miarę określającą średnią liczbę symboli binarnych potrzebnych do zakodowania ciągu utworzonego z symboli kolejno wygenerowanych przez źródło. Najlepszym wynikiem jaki moŝna uzyskać stosując kompresje bezstratna jest zakodowanie sekwencji symboli tak, aby średnia liczba bitów przypadająca na symbol była równa entropii źródła. Shannon 9

źródła Z definicji entropia wynosi: H ( p n,..., pn) = H ( A) = i= p i lg p i źródła S generującego ciąg symboli x, x, x n naleŝących do wspólnego alfabetu A = {,, 3,,m} wynosi: H ( S) m m m = lim n n i = i = in = ( ) ( ) p x = i x = i x = i p,,, log n n x = i, x = i,, xn = in 0

Przypadki szczególne Przy załoŝeniu, Ŝe wszystkie elementy serii mają rozkład identyczny i niezaleŝny od siebie (równe prawdopodobieństwa wystąpienia zdarzeń p i = const = /n i,n ), otrzymujemy: H ( S) = m i = p x log p ( = i ) ( x = i ) Jest to entropia źródła pierwszego rzędu Znajomo wyglądający wzór??!!

a jak jest w rzeczywistości? W rzeczywistych źródłach symbole nie są generowane z jednakowym prawdopodobieństwem W większości przypadków symbole są zaleŝne od siebie. Nie znany jest takŝe rozkład wszystkich próbek n, a tylko ograniczona ich ilość pierwszego rzędu nie jest dobrą miarą entropii źródła fizycznego źródła nie jest znana

Policzmy entropię pierwszego rzędu Dla przykładowej sekwencji danych: W= { 3 3 4 5 6 7 8 9 3 3 5 6} P(3) = P() = P(5) P() 4 6 3 6 = P(6) = = P(4) 6 = P(7) = P(8) = P(9) = 6 log log log log P(3) = P() =,4 P(5,6) = 3 P(,4,7,8,9) = 4 H ( W ) 9 = i= p i) log p( i), 95bit ( 3

pierwszego rzędu Pomiędzy poszczególnymi symbolami istnieje zaleŝność (korelacja). Zastępując kolejne elementy wiadomości W róŝnicą pomiędzy dwoma kolejnymi symbolami otrzymujemy nowy ciąg: W= { 3 3 4 5 6 7 8 9 3 3 5 6} W ={ - -7 0 } P() = P( 7) 6 = P( ) = P(0) = P() = P() = 6 log log P() = 0,4 P( 7,,0,) = 4 H ( W ) = p( i) log p( i), 3bit i= 7 4

Plan wykładu Podstawowe definicje Paradygmat kompresji owanie Przykłady prostych kodów Kody statyczne 5

W zaleŝności jak przedstawimy informację otrzymamy róŝną wartość entropii. Znając strukturę wiadomości moŝna zmieniać (najlepiej zmniejszać) entropię. Znając zaleŝności pomiędzy symbolami (korelację) moŝna budować model. em nazywamy zaleŝności pomiędzy kolejnymi symbolami ciągu 6

owanie Uaktualnianie modelu owanie owanie Wiadomość wejściowa Wiadomość zakodowana Dekodowanie Wiadomość wyjściowa Współczesny paradygmat kompresji 7

Paradygmat kompresji. owanie: Pierwszy etap kompresji podczas, którego badane są zaleŝności pomiędzy symbolami i budowany jest model. Informacja nadmiarowa (redundantna) jest usuwana. Istnieje wiele metod budowania modelu. Niezbędna jest wiedza o źródle sygnału.. : Drugi etap kompresji, podczas którego kodowany jest sam model oraz informacja o odchyleniu wiadomości od modelu. Jest wiele rodzajów kodowania Metody kodowania oparte są na matematyce 8

owanie e e bez pamięci DMS e z pamięcią CSM e Markowa e drzew kontekstu 9

bez pamięci - DMS Najprostszą postaciąźródła informacji jest dyskretne źródło bez pamięci - model DMS (discrete memoryless source), w którym emitowane symbole są od siebie niezaleŝne. DMS często zwany jest modelem fizycznym MoŜe, ale nie musi dokładnie opisywać źródło. Nie wnosi Ŝadnej informacji o źródle i nie moŝe być wykorzystany do skutecznego kodowania. Nie jest wykorzystywany w kompresji danych 0

z pamięcią - CSM źródła z pamięcią zwany teŝ modelem warunkowym (conditional source model) uwzględnia zaleŝność pomiędzy wystąpieniem danego symbolu od wystąpienia wcześniejszych kontekstu czasowego. Kontekst moŝe być ograniczony do jednego lub kilku symboli Pełny kontekst to wszystkie dotychczas wyemitowane symbole Znając kontekst w danej chwili moŝna wnioskować o prawdopodobieństwie wystąpienia kolejnego symbolu P( s t ), gdzie s t = (s, s,, s t ) jest sekwencją t symboli wygenerowanych w przeszłości (kontekstem rzędu t) Prawdopodobieństwo warunkowe P(a i b j ) dla i = n oraz j = k obliczane jest z wzoru: ( ) P a b i j ( ) i, j ( ) N a b = = N b j Liczba wystąpień symbolu a i i kontekstu b j Liczba wystąpień kontekstu b j

CSM - podsumowanie źródła jest określony przez: Alfabet symboli źródła A s ={a, a,,a n } Zbiór kontekstów C dla źródła S opisanego wzorem: S A = { b, b,..., b } Prawdopodobieństwa warunkowe: ( i j ) P a b C ( ai, b j ) ( b j ) N = = N dla i = n (liczba symboli w alfabecie) oraz j = k (liczba kontekstów) Zasadę określania kontekstu C w kaŝdej chwili czasowej t jako funkcję f( ) symboli wcześniej wyemitowanych przez źródło. Funkcja f( ) przekształca wszystkie moŝliwe sekwencje symboli z A s o długości t lub S mniejszej w A C k Liczba wystąpień symbolu a i i kontekstu b j Liczba wystąpień kontekstu b j

źródła Markowa źródła CSM oraz DMS jest szczególnym przypadkiem modelu źródła zaproponowany przez Markowa (906). Dla źródła Markowa rzędu m kontekst C (m) jest ograniczony do m znaków poprzedzających generowany symbol s l. Prawdopodobieństwo wystąpienia symbolu a i z alfabetu A zaleŝy jedynie od m symboli, jakie pojawiły się bezpośrednio przed nim. Określane jest jako prawdopodobieństwo warunkowe: ( ) (,,..., ) i b j i j j j P a = P a a a a i, n j, j,..., jm, n m 3

e źródła Markowa Źródła Markowa często reprezentowane są za pomocą diagramu stanów. Dla źródła Markowa pierwszego rzędu jest tyle stanów ile symboli w alfabecie A (n). Dla źródła Markowa m-tego rzędu jest n m stanów. WyŜsze rzędy są z reguły wykorzystywane do kompresji obrazów (D i 3D) źródła Markowa określona jest jako: n n n n ( m) ( ),,...,, log,,..., j = j = j = m i= ( ) ( ) j j j i i j j j H S C P a a a a P a a a a = m Wartość entropii źródła Markowa mieści się pomiędzy entropią źródła H S H S C H S ( m) ( lącznej ) ( ) ( DMS ) m 4

owanie - podsumowanie Istnieje wiele rodzajów modeli źródeł Do modelowania niezbędna jest znajomość źródła Im więcej informacji zaleŝnych od siebie tym lepsza moŝliwość kompresji, Dla tekstu angielskiego w 95 roku Shannon oszacował entropię przy załoŝeniu kontekstu długości dwóch znaków na 3, bit/znak Współczesne modele szacują entropię tekstu angielskiego na,45 bit/znak 5

Plan wykładu Podstawowe definicje Paradygmat kompresji owanie Przykłady prostych kodów Kody statyczne 6

ZałoŜenia: Źródło S emitujące sygnały a i z alfabetu A={a,,a n } Znane jest prawdopodobieństwo wystąpienia symbolu a i, oznaczone jako p i = p(a i ). Zbiór wartości wszystkich prawdopodobieństw określany będzie jako P(p,,p i ). Symbolom a i odpowiadają słowa kodu, które naleŝą do zbioru K={k,,k n } 7

- definicje Kodem nazywamy odwzorowanie alfabetu A na zbiór słów kodowych K (f : A K) Inaczej mówiąc: kaŝde słowo kodu k i musi opisywać symbol z alfabetu a i Celem kompresji jest zmniejszanie średniego kosztu, danego wzorem: L avg gdzie i,n, l i długość słowa kodowego k i, n = p l i i p i prawdopodobieństwo wystąpienia słowa k i 8

Efektywność kompresji Efektywność kompresji wyraŝona w procentach mierzona jest jako stosunek entropii do średniego kosztu: H L avg 00% 9

Kod jednoznacznie dekodowalny to taki kod, który kaŝdemu symbolowi a i z alfabetu A przypisuje jedno i tylko jedno słowo kodowe k i róŝne dla róŝnych symboli. jest przekształceniem róŝnowartościowym jeden w jeden. Matematyczne określenie to bijekcja. Przykładem kodu jednoznacznie dekodowalnego jest kod dwójkowy o stałej długości słowa. Który kod jest JD, a który nie??: AK = {, 0, 00, 000} AK = {0, 0, 0, } AK 3 = {0, 0,, } AK 4 = {0, 0, } AK 5 = {00,, 00} jest JD jest JD Nie jest JD bo 0 = 0 Jest JD Nie jest JD bo 00 = 00 30

Kod nazywamy przedrostkowym (prefix code) jeśli nie moŝemy otrzymaćŝadnego słowa kodu z innego słowa kodu przez dodanie do niego zer lub jedynek (Ŝadne słowo kodu nie jest przedrostkiem innego słowa kodu). są łatwe do dekodowania (natychmiastowe dekodowanie) W literaturze anglosaskiej spotykane są takŝe nazwy prefix condition codes, prefix-free codes, comma-free code. Przedrostkowość kodu jest warunkiem wystarczającym jego jednoznacznej dekodowalności (ale nie koniecznym) Przykład: AK4 = {0, 0, }, C (ς ς ς 3 ς ) = 0 0 0 jak to zdekodować 000? 3

Nierówność Krafta-MacMillana Dla kodów jednoznacznie dekodowalnych zawierających n słów kodowych o długości l i zachodzi nierówność: n i= l i Równanie moŝe słuŝyć do określania czy kod jest jednoznacznie dekodowalny 3

33

nie korzysta z informacji o prawdopodobieństwie wystąpienia symbolu w kodowanej sekwencji Zalety: prosta budowa, szybkość brak konieczności przesyłania informacji do dekodera o modelu Wady: niski współczynnik kompresji moŝliwa ekspansja danych po zakodowaniu (model jest niezmienny i moŝe być nieadekwatny do danych kompresowanych) 34

Kod unarny Kod α-eliasa (kod unarny) kaŝdy z x symboli reprezentowany jest jako x- symboli po których następuje 0 symbol 3 4 5 6 7 8 9 kod 0 0 0 0 0 0 0 0 0 Cechy: prosty, ale bardzo długi (moŝliwa ekspansja) długość słowa zaleŝna wprost od ilości symboli x, część składowa innych kodów, stosowany, gdy jeden symbol występuje znacznie częściej niŝ inne 35

Kod binarny Kod β-eliasa (kod binarny) kaŝdy z x symboli reprezentowany jest jako liczba binarna z pominięciem zer wiodących symbol 3 4 5 6 7 8 9 kod 0 00 0 0 000 00 Cechy: prosty, nie jest jednoznacznie dekodowalny, brak informacji o początku i końcu danego słowa długość słowa zaleŝna od ilości symboli x, ( log x + ) część składowa innych kodów, 36

Kod γ-eliasa Kod γ-eliasa jest kodem złoŝonym Pierwsza część kodu kodowana według schematu α określa ilość kodu binarnego Druga część kodu określa symbol i jest kodowana według schematu β bez wiodącego bitu Cechy: prosta budowa, długość słowa opisana wzorem log x + symbol 3 4 5 6 7 8 9 kod 0 00 0 000 00 00 0 0000 000 37

Reprezentacja Zeckendorfa Liczby Fibonacciego powstają poprzez zsumowanie dwóch poprzednich liczb przy czym pierwsze dwie są równe : F n =F n- -F n- F = {,, 3, 5, 8, 3,, } Własność: KaŜdą liczbę całkowitą moŝna przedstawić jako sumę liczb Fibonacciego Reprezentacja Zeckendorfa to zapis binarny liczby, w którym kaŝdy bit odpowiada jednej liczbie Fibonacciego. Wartość bitu równa oznacza, Ŝe dana liczba Fibonacciego wchodzi do sumy. Pomijana jest w reprezentacji liczba F 0 = 0x + x + 0x3 + 0x5 + x8 => 000 lub 000 = x + x + 0x3 + 0x5 + x8 => 00 lub 00 odwrócona prosta 38

Reprezentacja Zeckendorfa Skoro kaŝdą liczbę moŝna przedstawić jako sumę poprzednich liczb Fibonacciego zatem moŝna przekształcić tak reprezentację Zeckendorfa, aby nie występowały po sobie kolejne jedynki. = x + x + 0x3 + 0x5 + x8 => 00 00 = 0x + 0x + x3 + 0x5 + x8 => 000 000 Aby dodać znacznik końca kodu wystarczy dodać na końcu. Dwie jedynki po sobie następujące będą definiowały koniec słowa kodowego (kod Fraenkela Kleina C) 39

Fraenkela Kleina C symbol 3 4 5 6 7 8 9 kod 358X 0 00 0 000 00 00 0000 000 Wada: Jak rozdzielić słowa? 40

Fraenkela Kleina C Kod Fraenkela Kleina C tworzymy łącząc bity 0 z odwrócona reprezentacja Zeckendorfa liczby x pomniejszonej o (x-). symbol X- kod 0358 0 Liczba jest reprezentowana jako (wyjątek) 3 4 3 00 000 5 4 00 Zaleta: Dwie jedynki po sobie jednoznacznie definiują podział słowa kodowego 6 7 8 5 6 7 0000 000 000 9 8 00000 4

Inne kody statyczne Inne kody Fraenkela Kleina Kody Apostolico Fraenkela oparte na liczbach Fibonacciego (takŝe liczby Fibonacciego wyŝszych rzędów) Kody Golomba Kody Rice a Kody Goldbacha Kody Wheelera interpolacyjne 4

to kody statyczne, które powstały po przeanalizowaniu kodowanej wiadomości. Symbole występujące najczęściej są kodowane za pomocą najkrótszych słów kodowych. Dla róŝnych wiadomości niezbędna jest inna funkcja przekształcająca alfabet na słowa kodowe. Konieczność przekazania kodu do dekodera!! Bardziej uniwersalne niŝ kody statyczne, lepszy współczynnik kompresji. 43

Dziękuję za uwagę i proszę o pytania 44