Definicja. Jeśli. wtedy

Wielkość: px
Rozpocząć pokaz od strony:

Download "Definicja. Jeśli. wtedy"

Transkrypt

1 Definicja Jeśli wtedy

2 Cel kompresji: zredukowanie do minimum oczekiwanego (średniego) kosztu gdzie l i jest długością słowa kodu c i kodującego symbol a i Definicja Definicje Efektywność kodowania określamy jako H 00% L śr 2 Kod jest przedrostkowy, jeśli nie możemy otrzymać żadnego słowa kodu z innego słowa kodu poprzez dodanie do niego zer lub jedynek (tzn. Żadne słowo kodu nie jest przedrostkiem innego słowa kodu)

3 Definicja Może istnieć wiele takich kodów Twierdzenie Ważne twierdzenie nazywa się nierównością Krafta

4 Przykład. Rozważmy tekst Stanisława Wyspiańskiego: Jakżeż ja się uspokoję 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ę Założenia: Każdy symbol odpowiada jednemu znakowi Prawdopodobieństwo wystąpienia każdego symbolu jest jednakowo prawdopodobne Przyjmujemy kod ASCII rozszerzony o polskie litery, czyli ISO

5 Przykład. Rozważmy tekst Stanisława Wyspiańskiego: Jakżeż ja się uspokoję 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ę Założenia: Każdy symbol odpowiada jednemu znakowi Prawdopodobieństwo wystąpienia każdego symbolu jest jednakowo prawdopodobne Przyjmujemy kod ASCII rozszerzony o polskie litery, czyli ISO

6 Przykład. Rozważmy tekst Stanisława Wyspiańskiego: Jakżeż ja się uspokoję 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ę Założenia: Każdy symbol odpowiada jednemu znakowi Prawdopodobieństwo wystąpienia każdego symbolu jest jednakowo prawdopodobne Przyjmujemy kod ASCII rozszerzony o polskie litery, czyli ISO Model bardziej złożony

7 Przykład. Rozważmy tekst Stanisława Wyspiańskiego: Jakżeż ja się uspokoję 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ę Założenia: Każdy symbol odpowiada jednemu znakowi Prawdopodobieństwo wystąpienia każdego symbolu jest jednakowo prawdopodobne Przyjmujemy kod ASCII rozszerzony o polskie litery, czyli ISO Model bardziej złożony

8 Model bardziej złożony Dodatkowe koszty

9 Częstość występowania symboli w sekwencji:

10 Rozważmy model wykorzystujący informacje o częstości występowania symboli

11 Przykładowy kod Dodatkowe koszty

12 Definicja Zalety Bardzo szybkie kodowanie dzięki prostocie konstrukcji kodów i ich regularności Brak potrzeby przesyłania informacji o budowie kodu do dekodera Wady Zwykle słaby współczynnik kompresji Możliwa ekspansja danych jeśli rozkład prawdopodobieństwa występowania symboli nie pasuje do założonego przy konstrukcji kodu

13 Kod unarny Cechy Zastosowania Długość: x bitów

14 Kod binarny Cechy Zastosowania Długość:

15 Definicja Komentarz: Cechy Zastosowania Długość:

16 Definicja Komentarz: Cechy Zastosowania Długość:

17 Liczby Fibonacciego definiuje następująca zależność rekurencyjna: przy czym Każda liczba całkowita dodatnia może być zapisana jako suma różnych liczb Fibonacciego Definicja Przykład

18 Odwrócona reprezentacja Zeckedndofra W trakcie kodowania wygodniejsza jest reprezentacja, w której najmniej znaczący bit znajduje się na początku Przykład Każdą liczbę całkowitą można przedstawić w odwróconej reprezentacji Zeckendorfa w taki sposób, aby nie zawierała dwóch następujących po sobie jedynek.

19 Definicja Komentarz

20 Definicja Komentarz

21 Zalety Prosta budowa Wady Nieco trudniejszy w obliczaniu niż wcześniejsze kody Stosunkowo dobry współczynnik kompresji dla danych, dla których prawdopodobieństwo występowania symboli maleje dla kolejnych symboli alfabetu

22

23 Definicja Zalety Wady

24 Podstawowe twierdzenie Shannona o kodowaniu bezszumowym Dla bezpamięciowego źródła S o entropii H(S) możliwe jest przypisanie ciągom k symboli źródła, słów kodu przedrostkowego tak, że spełnione jest H(S) L k / k < H(S) + / k asymptotycznie, możliwe jest uzyskanie średniej długości kodu (w przeliczeniu na pojedynczy symbol) równej entropii źródła optymalna długość słowa kodowego dla symbolu o prawdopodobieństwie p równa jest log (p) (czyli autoinformacji dla tego symbolu) można zbudować koder entropijny o efektywności bliskiej 00%

25 Jak wygenerować kod przedrostkowy? Problem: Mamy wyznaczony przez model rozkład prawdopodobieństwa symboli źródła p, p 2, p 3, p 4... p N, : p i = Znamy optymalne długości słów kodowych (tj. przybliżone długości słów optymalnego kodu przedrostkowego) l, l 2, l 3, l 4... l N : l i = log (p ) i Wiemy jaki warunek muszą spełniać długości słów kodowych aby istniał kod jednoznacznie dekodowalny (nierówność Krafta) 2 -l i Chcemy wyznaczyć Kod przedrostkowy o minimalnej średniej długości kodu szukamy: dokładnych długości słów szukamy: postaci (kolejnych bitów) słów

26 Algorytm Shannona-Fano generuje kod przedrostkowy dla zadanego rozkładu prawdopodobieństwa symboli alfabetu. Krok : Ustaw symbole alfabetu źródła w ciąg s uporządkowane zgodnie z prawdopodobieństwem ich użycia; Krok 2: AlgorytmShannonaFano(ciąg s) if (s zawiera dwa symbole) dołącz 0 do słowa kodowego jednego z symboli, do słowa drugiego symbolu; elseif (s zawiera więcej niż dwa symbole) podziel s na dwa podciągi s i s2 tak, by różnica między sumą prawdopodobieństw symboli w podciągach była najmniejsza; dołącz 0 do słów kodowych symboli w s i do słów symboli w s2; AlgorytmShannonaFano(s); AlgorytmShannonaFano(s2); endif;

27 Przykład: kodujemy ciąg abracadabra W tabeli mamy ciąg symboli alfabetu źródła i kolejne kroki budowania słów kodowych ciąg s c d r b a częstość symbolu / / 2/ 2/ 5/ ciąg s i s 2 c d r b a słowo symbolu ciąg s i s 2 c d r b słowo symbolu ciąg s i s 2 c d słowo symbolu ciąg s 2 i s 22 r b słowo symbolu wynik

28 Przykład: kodujemy ciąg abracadabra Można wygenerować kod o innych długościach słów ciąg s c d r b a częstość symbolu / / 2/ 2/ 5/ ciąg s i s 2 c d r b a słowo symbolu ciąg s i s 2 c d r b słowo symbolu ciąg s i s 2 c d r słowo symbolu ciąg s i s 2 c d słowo symbolu wynik

29 Algorytm Huffmana generuje kod przedrostkowy dla zadanego rozkładu prawdopodobieństwa symboli alfabetu. W algorytmie Huffmana buduje się drzewo binarne, zwane drzewem Huffmana. Każdemu z liści odpowiada pojedynczy symbol alfabetu źródła. Z każdym węzłem skojarzona jest waga równa łącznemu prawdopodobieństwu liści w poddrzewie dla którego ten węzeł jest korzeniem 2. Utwórz n drzew, gdzie n jest rozmiarem alfabetu źródła. Każdemu z symboli alfabetu źródła odpowiada pojedyncze drzewo składające się wyłącznie z korzenia i mające wagę równą prawdopodobieństwu wystąpienia danego symbolu. 3. Wyznacz dwa drzewa o najmniejszych wagach i utwórz z nich nowe drzewo, w którym dwa właśnie wyznaczone drzewa te są synami korzenia o wadze równej sumie ich wag. Powtarzaj krok 2 aż pozostanie tylko jedno drzewo (n razy). 4. Słowo kodowe kodu Huffmana dla danego symbolu znajduje się przechodząc ścieżką od korzenia drzewa Huffmana do liścia odpowiadającego temu symbolowi (i-ty bit słowa kodowego ma wartość 0, jeżeli i-ta krawędź ścieżki prowadzi do lewego syna i-tego węzła, a jeżeli do prawego).

30 Przykład: kodujemy ciąg abracadabra 2. Wyznacz dwa drzewa o najmniejszych wagach i utwórz z nich nowe drzewo, w którym dwa właśnie wyznaczone drzewa te są synami korzenia o wadze równej sumie ich wag. Powtarzaj krok 2 aż pozostanie tylko jedno drzewo (n razy). 4/ 0 2/ 0 5/ 2/ / / 2/ a b c d r

31 Przykład: kodujemy ciąg abracadabra 2. Wyznacz dwa drzewa o najmniejszych wagach i utwórz z nich nowe drzewo, w którym dwa właśnie wyznaczone drzewa te są synami korzenia o wadze równej sumie ich wag. Powtarzaj krok 2 aż pozostanie tylko jedno drzewo (n razy). 0 6/ 0 4/ 0 2/ 0 5/ 2/ / / 2/ a b c d r

32 0 6/ 0 3. Słowo kodowe kodu Huffmana dla danego symbolu znajduje się przechodząc ścieżką od korzenia drzewa Huffmana do liścia odpowiadającego temu symbolowi (i-ty bit słowa kodowego ma wartość 0, jeżeli i-ta krawędź ścieżki prowadzi do lewego syna i-tego węzła, a jeżeli do prawego). 4/ 0 symbol słowo kodowe 0 2/ a 0 b 0 0 c 0 0 5/ 2/ / / 2/ d 0 a b c d r r

33 Własności kodów Huffmana Podobnie, jak algorytm Shannona-Fano, przedstawiony algorytm jest niedeterministyczny niedeterminizm można łatwo usunąć kanoniczne kodowanie Huffmana Efektywnośc kodów Huffmana jest typowo nieznacznie większa niż Shannona-Fano (dla przykładu abracadabra jest taka sama) algorytm Huffmana jest prostszy symbol Shannon-Fano () Shannon-Fano (2) Huffman a 0 b c d r

34 Zalety o prosty o szybki Wady o nieefektywny, gdy prawdopodobieństwo wystąpienia jednego z symboli alfabetu źródła jest duże (ale można kodować ciągi symboli) o dwuprzebiegowy (koszt transmisji modelu może być duży, nie do zastosowania wprost do kodowania on-line)

35 Użycie algorytmu Huffmana w adaptacyjnym modelu jest możliwe Metoda brute-force każdorazowo po zakodowniu symbolu buduj od nowa drzewo Huffmana ( Uwaga na Zero Frequency Problem )... ale w praktyce zbyt kosztowne Ale mamy algorytm generujący kod zbliżony do kodu Huffmana, nadający się do zastosowania w algorytmie adaptacyjnym. Drzewo Huffmana budowane jest przyrostowo możliwa jest aktualizacja modelu został wynaleziony niezależnie przez Fallera i Gallagera udoskonalony przez Cormacka i Horspoola oraz (niezależnie) przez Knutha następnie udoskonalony przez Vittera

36 Na czym polega? Budujemy przyrostowo drzewo binarne, którego węzły zawierają liczniki częstości, a liście są dodatkowo skojarzone z symbolami alfabetu źródła Drzewo ma własność rodzeństwa, gdy:. każdy węzeł nie będący liściem ma 2 potomków; 2. przechodząc węzły w kolejności z góry do dołu, a na danym poziomie od prawej do lewej, otrzymamy ciąg węzłów o nierosnących licznikach. Drzewo mające własność rodzeństwa jest drzewem Huffmana (tw. Fallera- Gallagera)

37 Przykład: drzewo mające własność rodzeństwa 5 6 a 2 r b c d

38 Budowane drzewo zawiera liść (0-węzeł) reprezentujący wszystkie symbole, które jeszcze nie wystąpiły w kodowanym ciągu Kodowanie rozpoczynamy od drzewa składającego się wyłącznie z 0- węzła Używamy pomocniczej struktury węzły, listy dwukierunkowej zawierającej węzły drzewa uporządkowane w kolejności przeglądania drzewa z góry do dołu, a na danym poziomie od prawej do lewej Podlistę listy węzły składającą się z wszystkich węzłów o wartości licznika i nazywamy blokiem-i, a pierwszy węzeł takiego bloku liderem

39 DynamiczneKodowanieHuffmanaFGK(symbol s) p = liść zawierający symbol s; wyprowadź słowo kodowe dla s (*); if p jest 0-węzłem utwórz nowy węzeł q dla symolu s; q.licznik = ; p = nowy węzeł w miejscu 0-węzła będący rodzicem 0-węzła i węzła q; p.licznik = ; else p.licznik++; endif while p nie jest korzeniem if p narusza własność rodzeństwa if lider bloku-i zawierającego p nie jest rodzicem p zamień p z liderem; endif endif p = rodzic(p); p.licznik++; endwhile

40 a p b r 0 2 p 0 q a a a 0 0 q b b Przykład: kodujemy ciąg abrr, wstawienie symbolu b

41 r p 2 2 a p a a 0 b b b 0 0 r r wstawienie symbolu r (przywróć własność rodzeństwa)

42 r p p a a a b b b r r r wstawienie symbolu r

43 r a a a b b b r p r p r ponowne wstawienie symbolu r (przywróć własność rodzeństwa)

44 3 4 p a r b b p r a ponowne wstawienie symbolu r (przywróć własność rodzeństwa)

45 4 2 2 r b 0 a postać drzewa po przetworzeniu ciągu abrr

46 Dodatkowe założenie: w bloku-i węzłów najpierw znajdują się węzły wewnętrzne, później liście minimalizujemy głębokość drzewa bardziej złożone staje się przywracanie własności rodzeństwa ciąg o długości s zakodujemy na nie więcej niż h+s bitach, gdzie h to liczba bitów dla kodowania statycznego Huffmana

47 Algorytm adaptacyjny można zbudować z kilku stałych modeli Ale po kolei... Zmodyfikowane kody binarne Rodzina kodów Golomba Rodzina kodów Golomba-Rice a Model danych dla parametrycznej rodziny kodów (model algorytmu FELICS)

48 Prefiksowy kod dla skończonego alfabetu, np. dla liczb 0.. j- słowa kodowe o długości log(j) lub log (j) bitów, gdzie j to rozmiar alfabetu właściwie to rodzina kodów (długość słowa kodowego kodu binarnego dla alfabetu j symboli to log(j) ) Symbol Alfabet

49 Generowanie słowa kodowego kodujemy liczbę i zmodyfikowanym kodem binarnym dla liczb 0.. j, przyjmijmy N = log(j) i n = 2 N jeżeli i < n j zakoduj i za pomocą N -bitowego kodu binarnego else zakoduj i + n j za pomocą N -bitowego kodu binarnego Własności zmodyfikowanego kodu binarnego długość słowa kodowego: log(j) lub log (j) dla j = 2 N kod staje się N -bitowym kodem binarnym liczba dłuższych słów kodowych jest zawsze parzysta

50 parametryczna rodzina kodów przeznaczona do kodowania nieujemnych liczb całkowitych nieskończona parametrem kodu jest całkowite m, m > 0 zawiera kody optymalne dla wykładniczego rozkładu prawdopodobieństwa symboli (dla niektórych parametrów rozkładu) (nadaje się do źródeł o rozkładzie nierosnącym) słowa kodowe łatwe w generacji i dekodowaniu

51

52 Generowanie słowa kodowego kodujemy liczbę x kodem Golomba z parametrem m np. 8 kodem Golomba z parametrem 3 prefiks słowa: x/m 8/3 = 2 zakodowane unarnie (kod α Eliasa) 0 sufiks słowa: x mod m 8 mod 3 = 2 zakodowane zmodyfikowanym kodem binarnym dla przedziału [0, m ]

53

54 Jest to szczególny przypadek kodu Golomba zauważony już przez Golomba i niezależnie od niego odkryty przez Rice a. Kody Golomba są szczególnie proste, gdy m = 2 k kodujemy liczbę x kodem Golomba-Rice a z parametrem k prefiks słowa: x/ 2 k zakodowane unarnie (kod α Eliasa) x >> k sufiks słowa: x mod 2 k zakodowane zmodyfikowanym kodem binarnym dla przedziału [0, m ] k najmniej znaczących bitów x

55 Dla skończonego alfabetu używamy tylko części nieskończonej rodziny. Przyjmijmy rozmiar alfabetu 2 N dla rodziny Golomba kody o m > 2 N- mają słowa kodowe wszystkich symboli alfabetu dłuższe od kodu o m = 2 N- dla kodów Golomba- Rice a kody o k > N mają słowa wszystkich symboli alfabetu dłuższe od kodu o k = N sensowne jest używanie początkowych 2 N- kodów sensowne jest używanie początkowych N kodów (k = 0.. N )

56

57 Rodziny Golomba-Rice a można użyć do kodowania ciągów symboli o wykładniczym rozkładzie prawdopodobieństwa. (rozkład często spotykany w kompresji obrazów, dźwięków... ) Jeżeli parametr rozkładu jest nieznany, lub zmienia się w trakcie pracy źródła to parametr kodu Golomba-Rice a trzeba dobierać adaptacyjnie. Jak to zrobić? Wybierajmy ten kod, który jest najlepszy dla już przetworzonych symboli Jak to zrobić?

58 Algorytm modelowania zastosowany przez Howarda i Vittera w algorytmie bezstratnej kompresji obrazów FELICS. Idea Dla każdego kodu z rodziny utrzymuj licznik (tablica liczników) licznik liczby bitów, którą by uzyskano, kodując dotychczas przetworzoną część ciągu tym kodem. Po zakodowaniu symbolu zwiększ licznik każdego z kodów o długość słowa kodowego właśnie zakodowanego symbolu w kodzie odpowiadającym licznikowi Do kodowania symbolu użyj kodu o najmniejszym liczniku

59 Udoskonalenie: okresowo, gdy wartość najmniejszego z liczników przekroczy pewien próg, podziel wszystkie liczniki przez 2 unikniemy przepełnienia zwiększymy znaczenie symboli kodowanych niedawno Ww. metoda to tylko część całego algorytmu (i tylko część modelu) Metoda z FELICS nadaje się do każdej rodziny Jeszcze prostsza metoda istnieje dla rodziny Golomba-Rice a zastosowana przez Weinberger, Seroussi, Sapiro w algorytmie LOCO(JPEG-LS) niezależnie od rozmiaru alfabetu mamy 2 liczniki (licznik zakodowanych symboli i licznik sumy wartości tych symboli)

60 Warto się zapoznać Idea kodowania arytmetycznego Koncepcja implementacji dla liczb o ograniczonej precyzji Wybrane algorytmy MQ-Coder Range-Coder Szybki model dla kodera arytmetycznego

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

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz Algorytmy kompresji danych 2007 02 27 Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie definicja stowarzyszona ze zbiorem

Bardziej szczegółowo

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 3 Kodowanie Shannona Fano i Huffmana Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych

Bardziej szczegółowo

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk Kompresja danych kodowanie Huffmana Dariusz Sobczuk Plan wykładu Kodowanie metodą Shannona-Fano Kodowanie metodą Huffmana Elementarny kod Golomba Kod Golomba Kod Rice a kompresja danych 2 Efektywny kod

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

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

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:

Bardziej szczegółowo

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany

Bardziej szczegółowo

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

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004 4 marca 2004 Podstawowe oznaczenia i definicje Wymagania wobec kodu Podstawowa idea Podsumowanie Podstawowe oznaczenia i definicje Podstawowe oznaczenia i definicje: alfabet wejściowy: A = {a 1, a 2,...,

Bardziej szczegółowo

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

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu KODY SYMBOLI Materiały KODA, A.Przelaskowski Koncepcja drzewa binarnego Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Koncepcja przedziałów nieskończonego alfabetu Proste kody

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

Teoria informacji i kodowania Ćwiczenia

Teoria informacji i kodowania Ćwiczenia Teoria informacji i kodowania Ćwiczenia Piotr Chołda, Andrzej Kamisiński Katedra Telekomunikacji Akademii Górniczo-Hutniczej Kod źródłowy Kodem źródłowym nazywamy funkcję różnowartościową, która elementom

Bardziej szczegółowo

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

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

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

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35 Kody Marek Śmieja Teoria informacji 1 / 35 Entropia Entropia określa minimalną statystyczną długość kodowania (przyjmijmy dla prostoty że alfabet kodowy A = {0, 1}). Definicja Niech X = {x 1,..., x n }

Bardziej szczegółowo

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

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski Kodowanie Huffmana Platforma programistyczna.net; materiały do laboratorium 24/5 Marcin Wilczewski Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny

Bardziej szczegółowo

Algorytmy kodowania entropijnego

Algorytmy kodowania entropijnego Algorytmy kodowania entropijnego 1. Kodowanie Shannona-Fano 2. Kodowanie Huffmana 3. Jednoznaczność kodów Huffmana. Kod o minimalnej wariancji 4. Dynamiczne kodowanie Huffmana Poprzedni wykład - podsumowanie

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej

Bardziej szczegółowo

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. KOMPRESJA ALGORYTMEM ARYTMETYCZNYM, GOLOMBA I RICE'A Idea algorytmu arytmetycznego Przykład kodowania arytmetycznego Renormalizacja

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Kodowanie informacji Tomasz Wykład 4: kodowanie arytmetyczne Motywacja Podstawy i własności Liczby rzeczywiste Motywacje 1 średnia długość kodu Huffmana może odbiegać o p max + 0.086 od entropii, gdzie

Bardziej szczegółowo

Teoria Informacji - wykład. Kodowanie wiadomości

Teoria Informacji - wykład. Kodowanie wiadomości 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

Bardziej szczegółowo

Kodowanie i entropia

Kodowanie i entropia Kodowanie i entropia Marek Śmieja Teoria informacji 1 / 34 Kod S - alfabet źródłowy mocy m (np. litery, cyfry, znaki interpunkcyjne), A = {a 1,..., a n } - alfabet kodowy (symbole), Chcemy przesłać tekst

Bardziej szczegółowo

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001. KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych

Bardziej szczegółowo

Elementy teorii informacji i kodowania

Elementy teorii informacji i kodowania i kodowania Entropia, nierówność Krafta, kodowanie optymalne Marcin Jenczmyk m.jenczmyk@knm.katowice.pl 17 kwietnia 2015 M. Jenczmyk Spotkanie KNM i kodowania 1 / 20 Niech S = {x 1,..., x q } oznacza alfabet,

Bardziej szczegółowo

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

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017 Kody źródłowe jednoznacznie dekodowalne Zadanie Ile najwięcej słów kodowych może liczyć kod binarny jednoznacznie dekodowalny, którego najdłuższe słowo ma siedem liter? (Odp. 28) Zadanie 2 Zbiór sześciu

Bardziej szczegółowo

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

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Witold Tomaszewski Instytut Matematyki Politechniki Śląskiej e-mail: Witold.Tomaszewski@polsl.pl Je n ai fait celle-ci plus longue

Bardziej szczegółowo

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

Algorytmy zachłanne. dr inż. Urszula Gałązka Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie

Bardziej szczegółowo

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 2 Podstawy kompresji. Przemysław Sękalski. 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.

Bardziej szczegółowo

Kody Tunstalla. Kodowanie arytmetyczne

Kody Tunstalla. Kodowanie arytmetyczne Kody Tunstalla. Kodowanie arytmetyczne Kodowanie i kompresja informacji - Wykład 3 8 marca 2010 Kody Tunstalla Wszystkie słowa kodowe maja ta sama długość ale jeden kod może kodować różna liczbę liter

Bardziej szczegółowo

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

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 1 zakres materiału zakres materiału 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja.

Bardziej szczegółowo

ZADANIE 1. Rozwiązanie:

ZADANIE 1. Rozwiązanie: EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa

Bardziej szczegółowo

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

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne Algorytmy kompresji Kodowanie Huffmana, kodowanie arytmetyczne Kodowanie arytmetyczne Peter Elias 1923-2001 Kodowanie arytmetyczne to metoda kodowania źródłowego dyskretnych źródeł sygnałów, stosowana

Bardziej szczegółowo

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

Niech x 1,..., x n będzie ciągiem zdarzeń. --- Matematyczne podstawy kryptografii, Ćw2 TEMAT 7: Teoria Shannona. Kody Huffmana, entropia. BIBLIOGRAFIA: [] Cz. Bagiński, cez.wipb.pl, [2] T. H. Cormen, C. E. Leiserson, R. L Rivest, Wprowadzenie do algorytmów,

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

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

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1 wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe.

Bardziej szczegółowo

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder Algorytmy Kompresji Danych Laboratorium Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder 1. Zapoznać się z opisem implementacji kodera entropijnego range coder i modelem danych opracowanym dla tego

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 8

Algorytmy i struktury danych. wykład 8 Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest

Bardziej szczegółowo

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

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Założenia i obszar zastosowań KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Plan wykładu: Geneza algorytmu Założenia i obszar zastosowań JPEG kroki algorytmu kodowania obrazu Założenia: Obraz monochromatyczny

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Cel ćwiczenia lgorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Kompresja Ćwiczenie ma na celu

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 22/23 Outline Programowanie zachłanne Programowanie zachłanne Rodzaje kodów Programowanie zachłanne Kody stałej długości (np. ASCII). Kody zmiennej

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Podstawy kompresji danych

Podstawy kompresji danych Podstawy kompresji danych Pojęcie kompresji W ogólności kompresja (kodowanie) jest procedurą (przekształceniem) zmiany reprezentacji wejściowego zbioru danych do postaci wymagającej mniejszej liczby bitów

Bardziej szczegółowo

dr inż. Jacek Naruniec

dr inż. Jacek Naruniec dr inż. Jacek Naruniec J.Naruniec@ire.pw.edu.pl Entropia jest to średnia ilość informacji przypadająca na jeden znak alfabetu. H( x) n i 1 p( i)log W rzeczywistości określa nam granicę efektywności kodowania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

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

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 Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy

Bardziej szczegółowo

ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH

ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH STUDIA INFORMATICA 2003 Volume 24 Number 1 (52) Roman STAROSOLSKI Politechnika Śląska, Instytut Informatyki ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH Streszczenie. W artykule, po omówieniu podstawowych pojęć

Bardziej szczegółowo

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

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0, 2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Tomasz Wykład 4: kodowanie słownikowe Motywacja Motywacje 1 kodowane dane nie tworza ciagu wartości niezależnych, rozkład prawdopodobieństwa zależy od symboli poprzedzajacych symbol kodowany; 2 pewne sekwencje

Bardziej szczegółowo

Kody Huffmana. Konrad Wypyski. 11 lutego 2006 roku

Kody Huffmana. Konrad Wypyski. 11 lutego 2006 roku Kody Huffmana Konrad Wypyski 11 lutego 2006 roku Spis treści 1 Rozdział 1 Kody Huffmana Kody Huffmana (ang. Huffman coding) to jedna z najprostszych i najłatwiejszych w implementacji metod kompresji bezstratnej;

Bardziej szczegółowo

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe Tomasz Wykład 5: kodowanie słownikowe Motywacja Motywacje 1 zazwyczaj dane nie tworza ciagu wartości niezależnych, kolejny symbol jest zależny od poprzedzajacych go; 2 pewne sekwencje (słowa) często się

Bardziej szczegółowo

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

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY Z INFORMATYKI WPISUJE ZDAJĄCY NUMER UCZNIA EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I ARKUSZ EGZAMINACYJNY PROJEKTU INFORMATURA DATA: 9 GRUDNIA 2016 R. CZAS PRACY: 60 MINUT LICZBA PUNKTÓW DO UZYSKANIA:

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

Bardziej szczegółowo

Podstawowe pojęcia. Teoria informacji

Podstawowe pojęcia. Teoria informacji Kodowanie i kompresja informacji - Wykład 1 22 luty 2010 Literatura K. Sayood, Kompresja danych - wprowadzenie, READ ME 2002 (ISBN 83-7243-094-2) Literatura K. Sayood, Kompresja danych - wprowadzenie,

Bardziej szczegółowo

Kodowanie Shannona-Fano

Kodowanie Shannona-Fano Kodowanie Shannona-Fano Kodowanie Shannona-Fano znane było jeszcze przed kodowaniem Huffmana i w praktyce można dzięki niemu osiągnąć podobne wyniki, pomimo, że kod generowany tą metodą nie jest optymalny.

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 1 Kody cykliczne: dekodowanie Definicja 1 (Syndrom) Niech K będzie kodem cyklicznym z wielomianem generuja- cym g(x). Resztę z dzielenia słowa

Bardziej szczegółowo

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

Algorytmy i Struktury Danych, 9. ćwiczenia

Algorytmy i Struktury Danych, 9. ćwiczenia Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

Kompresja danych DKDA (7)

Kompresja danych DKDA (7) Kompresja danych DKDA (7) Marcin Gogolewski marcing@wmi.amu.edu.pl Uniwersytet im. Adama Mickiewicza w Poznaniu Poznań, 22 listopada 2016 1 Kwantyzacja skalarna Wprowadzenie Analiza jakości Typy kwantyzatorów

Bardziej szczegółowo

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie

Bardziej szczegółowo

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

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

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a Modulacja i kodowanie Labolatorium Kodowanie źródłowe Kod Huffman a W tym ćwiczeniu zajmiemy się kodowaniem źródłowym (source coding). 1. Kodowanie źródłowe Głównym celem kodowanie źródłowego jest zmniejszenie

Bardziej szczegółowo

Kodowanie predykcyjne

Kodowanie predykcyjne Studia Wieczorowe Wrocław, 27.03.2007 Kodowanie informacji Wykład 5 Kodowanie predykcyjne Idea: przewidujemy następny element ciągu i kodujemy różnicę między wartością przewidywaną i rzeczywistą, w oparciu

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Kodowanie informacji. Przygotował: Ryszard Kijanka

Kodowanie informacji. Przygotował: Ryszard Kijanka Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy

Bardziej szczegółowo

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

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kwantyzacja wektorowa. Kodowanie różnicowe. Kwantyzacja wektorowa. Kodowanie różnicowe. Kodowanie i kompresja informacji - Wykład 7 12 kwietnia 2010 Kwantyzacja wektorowa wprowadzenie Zamiast kwantyzować pojedyncze elementy kwantyzujemy całe bloki

Bardziej szczegółowo

Tablice z haszowaniem

Tablice z haszowaniem Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje

Bardziej szczegółowo

Luty 2001 Algorytmy (4) 2000/2001

Luty 2001 Algorytmy (4) 2000/2001 Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest

Bardziej szczegółowo

Joint Photographic Experts Group

Joint Photographic Experts Group Joint Photographic Experts Group Artur Drozd Uniwersytet Jagielloński 14 maja 2010 1 Co to jest JPEG? Dlaczego powstał? 2 Transformata Fouriera 3 Dyskretna transformata kosinusowa (DCT-II) 4 Kodowanie

Bardziej szczegółowo

Maszyna Turinga języki

Maszyna Turinga języki Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym

Bardziej szczegółowo

Pracownia Komputerowa wykład V

Pracownia Komputerowa wykład V Pracownia Komputerowa wykład V dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny system

Bardziej szczegółowo

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

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania

Bardziej szczegółowo

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje

Bardziej szczegółowo

Teoria Informacji i Metody Kompresji Danych

Teoria Informacji i Metody Kompresji Danych Teoria Informacji i Metody Kompresji Danych 1 Przykładowe zadania (dodatkowe materiały wykładowe) 2 Robert Susmaga Instytut Informatyki ul. Piotrowo 2 Poznań kontakt mail owy Robert.Susmaga@CS.PUT.Poznan.PL

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Kompresja obrazów w statycznych - algorytm JPEG

Kompresja obrazów w statycznych - algorytm JPEG Kompresja obrazów w statycznych - algorytm JPEG Joint Photographic Expert Group - 986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard

Bardziej szczegółowo

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

Bardziej szczegółowo

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Joint Photographic Expert Group - 1986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard

Bardziej szczegółowo

Techniki multimedialne

Techniki multimedialne Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo

Bardziej szczegółowo

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

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017 Algebra liniowa Zadanie 1 Czy jeśli wektory x, y i z, należące do binarnej przestrzeni wektorowej nad ciałem Galois GF (2), są liniowo niezależne, to można to samo orzec o następujących trzech wektorach:

Bardziej szczegółowo

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie

Bardziej szczegółowo

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

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n

Bardziej szczegółowo