Kompresja bezstratna. Entropia. Kod Huffmana

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

Download "Kompresja bezstratna. Entropia. Kod Huffmana"

Transkrypt

1 Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład kwietnia 2013

2 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a) = log 1 P(A) będzie miara tej informacji. = log P(A)

3 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a) = log 1 P(A) będzie miara tej informacji. Jeśli A i B sa niezależne, to i(ab) = log = log P(A) 1 P(AB) = log 1 P(A)P(B) = = log 1 P(A) + log 1 P(B) = i(a) + i(b)

4 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a) = log 1 P(A) będzie miara tej informacji. Jeśli A i B sa niezależne, to i(ab) = log = log P(A) 1 P(AB) = log 1 P(A)P(B) = = log 1 P(A) + log 1 P(B) = i(a) + i(b) Podstawa logarytmu jest 2 a jednostka informacji bit.

5 Teoria informacji Załóżmy, że mamy zbiór wiadomości A 1,..., A n, które pojawiaja się z prawdopodobieństwami P(A 1 ),..., P(A n ) ( n i=1 P(A i) = 1).

6 Teoria informacji Załóżmy, że mamy zbiór wiadomości A 1,..., A n, które pojawiaja się z prawdopodobieństwami P(A 1 ),..., P(A n ) ( n i=1 P(A i) = 1). Średnia informacja w tym zbiorze jest określona wzorem n H = P(A i )i(a i ) i=1 Wielkość tę nazywamy entropia.

7 Teoria informacji Załóżmy, że mamy zbiór wiadomości A 1,..., A n, które pojawiaja się z prawdopodobieństwami P(A 1 ),..., P(A n ) ( n i=1 P(A i) = 1). Średnia informacja w tym zbiorze jest określona wzorem n H = P(A i )i(a i ) i=1 Wielkość tę nazywamy entropia. Kody jednoznacznie dekodowalne w modelu z niezależnymi wystapieniami symboli musza mieć średnia długość co najmniej równa entropii.

8 Przykład Weźmy ciag

9 Przykład Weźmy ciag P(1) = P(6) = P(7) = P(10) = 1 16, P(2) = P(3) = P(4) = P(5) = P(8) = P(9) = 2 16

10 Przykład Weźmy ciag P(1) = P(6) = P(7) = P(10) = 1, 16 P(2) = P(3) = P(4) = P(5) = P(8) = P(9) = 2 16 H = 10 i=1 P(i) log P(i) = 3, 25

11 Przykład Weźmy ciag P(1) = P(6) = P(7) = P(10) = 1, 16 P(2) = P(3) = P(4) = P(5) = P(8) = P(9) = 2 16 H = 10 i=1 P(i) log P(i) = 3, 25 Najlepszy schemat kodujacy ten ciag wymaga 3,25 bitu na znak.

12 Przykład Weźmy ciag P(1) = P(6) = P(7) = P(10) = 1, 16 P(2) = P(3) = P(4) = P(5) = P(8) = P(9) = 2 16 H = 10 i=1 P(i) log P(i) = 3, 25 Najlepszy schemat kodujacy ten ciag wymaga 3,25 bitu na znak. Jeśli jednak założymy, że elementy ciagu nie sa niezależne i zastapimy ciag różnicami to otrzymamy

13 Przykład Weźmy ciag

14 Przykład Weźmy ciag Prawdopodobieństwa wynosza: P(1) = P(2) = 1 4 i P(3) = 1. 2

15 Przykład Weźmy ciag Prawdopodobieństwa wynosza: P(1) = P(2) = 1 4 i P(3) = 1. 2 Entropia jest równa 1,5 bitu na znak.

16 Przykład Weźmy ciag Prawdopodobieństwa wynosza: P(1) = P(2) = 1 4 i P(3) = 1. 2 Entropia jest równa 1,5 bitu na znak. Jeśli jednak weźmiemy bloki złożone z dwóch znaków to P(12) = 1 i P(33) = 1 czyli entropia jest 2 2 równa 1 bit na parę (0,5 bitu na znak).

17 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy sufiksem b względem a.

18 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy sufiksem b względem a. Algorytm Tworzymy listę słów kodowych. Dla każdej pary sprawdzamy czy jedno słowo jest prefiksem drugiego, jeśli tak to do listy dodajemy sufiks drugiego słowa (chyba, że już dodaliśmy taki sufiks). Powtarzamy powyższa procedurę aż do momentu kiedy znajdziemy na liście sufiks równy słowu kodowemu (kod nie jest jednoznaczny) albo nie można znaleźć nowych sufiksów (kod jest jednoznaczny).

19 Przykład Weźmy kod {0, 01, 11}.

20 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}.

21 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 i 1 jako prefiks 11, ale sufiks 1 już dopisaliśmy do listy więc lista się nie zmienia.

22 Przykład Weźmy kod {0, 01, 11}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 11, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 i 1 jako prefiks 11, ale sufiks 1 już dopisaliśmy do listy więc lista się nie zmienia. Kod jest więc jednoznacznie dekodowalny.

23 Przykład Weźmy kod {0, 01, 10}.

24 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}.

25 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 ale on już jest na liście oraz 1 jako prefiks 10 ale sufiks 0 jest równy kodowi 0.

26 Przykład Weźmy kod {0, 01, 10}. Kod 0 jest prefiksem 01. Innych par nie ma więc nowa lista ma postać {0, 01, 10, 1}. Teraz dla tej listy mamy 0 jako prefiks 01 ale on już jest na liście oraz 1 jako prefiks 10 ale sufiks 0 jest równy kodowi 0. Kod nie jest więc jednoznacznie dekodowalny.

27 Kody prefiksowe Kod w którym żadne słowo kodowe nie jest prefiksem innego słowa kodowego.

28 Kody prefiksowe Kod w którym żadne słowo kodowe nie jest prefiksem innego słowa kodowego. Łatwo zauważyć, że kod prefiksowy jest jednoznacznie dekodowalny.

29 Nierówność Krafta-McMillana Niech C będzie kodem składajacym się z N słów o długościach l 1, l 2,..., l N. Jeżeli C jest jednoznacznie dekodowalny to K (C) = N 1 2 l i i=1 1.

30 Kody Shannon-Fano Niech symbole a i występuja odpowiednio z prawdopodobieństwami p i.

31 Kody Shannon-Fano Niech symbole a i występuja odpowiednio z prawdopodobieństwami p i. Weźmy długości kodów l i = log p i.

32 Kody Shannon-Fano Niech symbole a i występuja odpowiednio z prawdopodobieństwami p i. Weźmy długości kodów l i = log p i. Długości l i spełniaja nierówność Krafta-McMillana. N 1 2 l i i=1 N 1 2 log p i i=1 = N p i = 1 i=1

33 Kody Shannon-Fano Niech symbole a i występuja odpowiednio z prawdopodobieństwami p i. Weźmy długości kodów l i = log p i. Długości l i spełniaja nierówność Krafta-McMillana. N 1 2 l i i=1 N 1 2 log p i i=1 = N p i = 1 i=1 Istnieje więc kod prefiksowy o takich długościach.

34 Kody Shannon-Fano Niech symbole a i występuja odpowiednio z prawdopodobieństwami p i. Weźmy długości kodów l i = log p i. Długości l i spełniaja nierówność Krafta-McMillana. N 1 2 l i i=1 N 1 2 log p i i=1 = N p i = 1 i=1 Istnieje więc kod prefiksowy o takich długościach. Łatwo zauważyć, że średnia długość tego kodu jest nie większa niż entropia plus 1.

35 Konstrukcja kodu o podanych długościach Niech l 1 l 2... l N.

36 Konstrukcja kodu o podanych długościach Niech l 1 l 2... l N. Definiujemy pomocnicze w 1, w 2,..., w N jako j 1 w 1 = 0 w j = i=1 2 l j l i

37 Konstrukcja kodu o podanych długościach Niech l 1 l 2... l N. Definiujemy pomocnicze w 1, w 2,..., w N jako j 1 w 1 = 0 w j = i=1 2 l j l i Binarna reprezentacja w j dla j > 1 zajmuje log w j bitów.

38 Konstrukcja kodu o podanych długościach Niech l 1 l 2... l N. Definiujemy pomocnicze w 1, w 2,..., w N jako j 1 w 1 = 0 w j = i=1 2 l j l i Binarna reprezentacja w j dla j > 1 zajmuje log w j bitów. Liczba bitów w j jest mniejsza lub równa l j. Dla w 1 to oczywiste. [ j 1 ] [ ] j 1 log w j = log 2 l j l i = log 2 l j 2 l i = = l j + log i=1 [ j 1 2 l i i=1 ] l j i=1

39 Konstrukcja kodu o podanych długościach Kodowanie wyglada następujaco: Jeżeli log w j = l j to j-te słowo kodowe jest binarna reprezentacja w j. Jeżeli jest mniejsze to reprezentację w j uzupełniamy odpowiednia liczba zer z lewej strony.

40 Konstrukcja kodu o podanych długościach Czy to jest kod prefiksowy? Załóżmy, że c j jest prefiksem c k i j < k. Wtedy l j pierwszych bitów c k tworzy c j czyli w j = w k 2 l k l j

41 Konstrukcja kodu o podanych długościach Czy to jest kod prefiksowy? Załóżmy, że c j jest prefiksem c k i j < k. Wtedy l j pierwszych bitów c k tworzy c j czyli w j = Ale w k = k 1 i=1 2l k l i. w k 2 l k l j

42 Konstrukcja kodu o podanych długościach Czy to jest kod prefiksowy? Załóżmy, że c j jest prefiksem c k i j < k. Wtedy l j pierwszych bitów c k tworzy c j czyli w j = Ale w k = k 1 i=1 2l k l i. Czyli w k 2 l k l j = w k 2 l k l j k 1 k 1 2 l j l i = w j + 2 l j l i = i=1 = w j k 1 i=j+1 i=j 2 l j l i w j + 1

43 Konstrukcja kodu o podanych długościach Czy to jest kod prefiksowy? Załóżmy, że c j jest prefiksem c k i j < k. Wtedy l j pierwszych bitów c k tworzy c j czyli w j = Ale w k = k 1 i=1 2l k l i. Czyli w k 2 l k l j = w k 2 l k l j k 1 k 1 2 l j l i = w j + 2 l j l i = i=1 = w j k 1 i=j+1 i=j 2 l j l i w j + 1 Sprzeczne z założeniem, że c j jest prefiksem c k.

44 Przykład Weźmy a, b, c, d z prawdopodobieństwami 1 3, 1 4, 1 4, 1 6.

45 Przykład Weźmy a, b, c, d z prawdopodobieństwami 1 3, 1 4, 1 4, 1 6. Odpowiednio długości kodów Shannon-Fano wynosza 2, 2, 2, 3.

46 Przykład Weźmy a, b, c, d z prawdopodobieństwami 1 3, 1 4, 1 4, 1 6. Odpowiednio długości kodów Shannon-Fano wynosza 2, 2, 2, 3. Wyliczamy w a = 0, w b = 1, w c = 2, w d = 6.

47 Przykład Weźmy a, b, c, d z prawdopodobieństwami 1 3, 1 4, 1 4, 1 6. Odpowiednio długości kodów Shannon-Fano wynosza 2, 2, 2, 3. Wyliczamy w a = 0, w b = 1, w c = 2, w d = 6. Kody to odpowiednio kod(a) = 00, kod(b) = 01, kod(c) = 10, kod(d) = 110.

48 Własności optymalnych kodów prefiksowych Symbolom występujacym częściej odpowiadaja krótsze słowa kodowe.

49 Własności optymalnych kodów prefiksowych Symbolom występujacym częściej odpowiadaja krótsze słowa kodowe. Dwa najrzadziej występujace symbole maja w kodzie optymalnym słowa kodowe tej samej długości.

50 Konstruowanie kodów Huffmana Kody dwóch najrzadziej występujacych symboli różnia się tylko na ostatniej pozycji.

51 Konstruowanie kodów Huffmana Kody dwóch najrzadziej występujacych symboli różnia się tylko na ostatniej pozycji. Algorytm rekurencyjny: rozważ dwa najrzadziej występujace symbole rozróżniajac je na końcu przez 0 i 1. Połacz oba w jeden symbol pomocniczy i rozważ teraz rekurencyjnie mniejszy alfabet. Powtarzaj aż zostanie tylko jeden symbol.

52 Własności kodów Huffmana Kod Huffmana jako drzewo - tworzenie takiego drzewa jako algorytm tworzenia kodów Huffmana.

53 Własności kodów Huffmana Kod Huffmana jako drzewo - tworzenie takiego drzewa jako algorytm tworzenia kodów Huffmana. Niejednoznaczność tworzenia kodów - istnieje często wiele kodów dla jednego źródła danych (ale wszystkie maja ta sama średnia długość kodu).

54 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a.

55 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości.

56 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości. Z każdego wierzchołka wewnętrznego drzewa odpowiadajacego kodowi optymalnemu powinny wychodzić oba poddrzewa.

57 Optymalność kodów Huffmana Optymalny kod powinien spełniać następujace warunki: Dla każdych dwóch liter a i b takich, że P(a) P(b) zachodzi l b l a. Dwie litery o najmniejszych prawdopodobieństwach maja słowa kodowe o tej samej, maksymalnej długości. Z każdego wierzchołka wewnętrznego drzewa odpowiadajacego kodowi optymalnemu powinny wychodzić oba poddrzewa. Jeśli połaczymy dwa liście majace wspólnego ojca i ten wierzchołek wewnętrzny potraktujemy jako liść to uzyskane drzewo jest kodem optymalnym dla nowego alfabetu jeśli pierwotne drzewo było optymalne.

58 Długość kodów Huffmana Dla źródła S spełniona jest nierówność H(S) l H(S) + 1 gdzie l - średnia długość kodu Huffmana dla źródła S.

59 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter.

60 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter. Co zrobić gdy dane napływaja na bieżaco i nie znamy statystyk?

61 Dynamiczne kody Huffmana Aby wykonać kodowanie Huffmana musimy znać prawdopodobieństwa (częstość występowania) liter. Co zrobić gdy dane napływaja na bieżaco i nie znamy statystyk? Kodować k + 1 symbol na podstawie statystyk k symboli.

62 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze).

63 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach:

64 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień.

65 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew.

66 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew. Każdy wierzchołek drzewa ma unikalny numer x i. Numery te tworza porzadek zgodny z wagami wierzchołków (większa waga to większy numer wierzchołka). Dodatkowo rodzeństwo ma zawsze dwa kolejne numery.

67 Przygotowania Dla alfabetu wejściowego mamy kodowanie stałej długości (pomocnicze). Dla kodu Huffmana tworzymy na bieżaco jego drzewo o następujacych własnościach: Każdy liść odpowiada symbolowi i zawiera wagę - ilość dotychczasowych wystapień. Wierzchołki wewnętrzne maja wagę będac a suma wag liści z poddrzew. Każdy wierzchołek drzewa ma unikalny numer x i. Numery te tworza porzadek zgodny z wagami wierzchołków (większa waga to większy numer wierzchołka). Dodatkowo rodzeństwo ma zawsze dwa kolejne numery. Na poczatku drzewo zawiera jeden wierzchołek o wadze 0 i etykiecie NYT oznaczajacej że symbol nie był jeszcze przesyłany.

68 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu.

69 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu. Stary NYT podziel na dwa wierzchołki potomne - nowy NYT i liść a, nadaj a wagę 1. Nadaj im odpowiednie numery.

70 Opis algorytmu Pierwsze wystapienie symbolu a Wyślij kod NYT i kod stałej długości dla nowego symbolu. Stary NYT podziel na dwa wierzchołki potomne - nowy NYT i liść a, nadaj a wagę 1. Nadaj im odpowiednie numery. Zmodyfikuj drzewo dodajac 1 do wierzchołków wewnętrznych na ścieżce od a do korzenia i przebudowujac drzewo tak aby było zgodne z warunkami z poprzedniego slajdu.

71 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod.

72 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod. Zwiększ wagę a o 1.

73 Opis algorytmu Kolejne wystapienie symbolu a Znajdź liść a i wyślij odpowiadajacy mu kod. Zwiększ wagę a o 1. Zmodyfikuj drzewo dodajac 1 do wierzchołków wewnętrznych na ścieżce od a do korzenia i przebudowujac drzewo tak aby było zgodne z warunkami z poprzedniego slajdu.

74 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem.

75 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem. Jeśli pierwszy wierzchołek od dołu nie ma największego numeru w swoim bloku to zamieniamy go z tym o największym numerze odpowiednio przebudowujac drzewo z zachowaniem własności. Następnie aktualizujemy wagę i patrzymy dalej rekurencyjnie.

76 Modyfikacja drzewa Zbiór wierzchołków o tej samej wadze nazywamy blokiem. Jeśli pierwszy wierzchołek od dołu nie ma największego numeru w swoim bloku to zamieniamy go z tym o największym numerze odpowiednio przebudowujac drzewo z zachowaniem własności. Następnie aktualizujemy wagę i patrzymy dalej rekurencyjnie. Kończymy jak dojdziemy do korzenia.

77 Przykład

78 Przykład Mamy cztery litery z 26. (W drzewie maksymalnie 51 wierzchołków.) a d r v

79 Przykład Mamy cztery litery z 26. (W drzewie maksymalnie 51 wierzchołków.) a d r v Drzewo poczatkowo wyglada tak

80 Przykład Pojawia się litera a.

81 Przykład Pojawia się litera a. Wysyłamy kod NYT (ε) i stały kod a:

82 Przykład Pojawia się litera a. Wysyłamy kod NYT (ε) i stały kod a: Modyfikujemy drzewo:

83 Przykład Pojawia się druga litera a.

84 Przykład Pojawia się druga litera a. Wysyłamy kod a: 1 (z drzewa lewe krawędzie to 0 a prawe to 1).

85 Przykład Pojawia się druga litera a. Wysyłamy kod a: 1 (z drzewa lewe krawędzie to 0 a prawe to 1). Modyfikujemy drzewo:

86 Przykład Pojawia się litera r.

87 Przykład Pojawia się litera r. Wysyłamy kod NYT (0) i stały kod r:

88 Przykład Pojawia się litera r. Wysyłamy kod NYT (0) i stały kod r: Modyfikujemy drzewo:

89 Przykład Pojawia się litera d.

90 Przykład Pojawia się litera d. Wysyłamy kod NYT (00) i stały kod d:

91 Przykład Pojawia się litera d. Wysyłamy kod NYT (00) i stały kod d: Modyfikujemy drzewo:

92 Przykład Pojawia się litera v.

93 Przykład Pojawia się litera v. Wysyłamy kod NYT (000) i stały kod v:

94 Przykład Modyfikujemy drzewo:

95 Przykład Modyfikujemy drzewo:

96 Podsumowanie - własności Optymalność wśród kodów prefiksowych.

97 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie).

98 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu.

99 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu. Możliwość implementacji dynamicznej.

100 Podsumowanie - własności Optymalność wśród kodów prefiksowych. Kodowanie i dekodowanie w czasie liniowym (szybkie). Kody rozszerzone - kompromis między optymalnościa a wielkościa systemu. Możliwość implementacji dynamicznej. Zastosowanie: pkzip, lha, gzip, zoo, arj, fragmenty formatów JPEG i MPEG.

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

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

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

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

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

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

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

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

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

Definicja. Jeśli. wtedy

Definicja. Jeśli. wtedy Definicja Jeśli wtedy 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kompresja danych - wprowadzenie. 1. Konieczno kompresji 2. Definicja, typy kompresji 3. Modelowanie 4. Podstawy teorii informacji 5.

Kompresja danych - wprowadzenie. 1. Konieczno kompresji 2. Definicja, typy kompresji 3. Modelowanie 4. Podstawy teorii informacji 5. Kompresja danych - wprowadzenie. Konieczno kompresji. Definicja, typy kompresji. Modelowanie 4. Podstawy teorii informacji 5. Kodowanie Konieczno kompresji danych Due rozmiary danych Niewystarczajce przepustowoci

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

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

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

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

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

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

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Modelowanie motywów łańcuchami Markowa wyższego rzędu Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy

Bardziej szczegółowo

Kodowanie predykcyjne

Kodowanie predykcyjne 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.

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

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

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

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

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

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

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

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

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

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

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

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

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

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 Do zapisu liczby ze znakiem mamy tylko 8 bitów, pierwszy od lewej bit to bit znakowy, a pozostałem 7 to bity na liczbę. bit znakowy 1 0 1 1

Bardziej szczegółowo

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

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 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 malejącą funkcją prawdopodobieństwa zajścia zdarzenia s. I(s)

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

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

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

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

Podstawy Informatyki: Kody. Korekcja błędów. Podstawy Informatyki: Kody. Korekcja błędów. Adam Kolany Instytut Techniczny adamkolany@pm.katowice.pl Adam Kolany (PWSZ Nowy Sącz, IT) Podstawy Informatyki: Kody. Korekcja błędów. 11 stycznia 2012 1 /

Bardziej szczegółowo

Kody blokowe Wykład 2, 10 III 2011

Kody blokowe Wykład 2, 10 III 2011 Kody blokowe Wykład 2, 10 III 2011 Literatura 1. R.M. Roth, Introduction to Coding Theory, 2006 2. W.C. Huffman, V. Pless, Fundamentals of Error-Correcting Codes, 2003 3. D.R. Hankerson et al., Coding

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

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

1 Działania na zbiorach

1 Działania na zbiorach M. Beśka, Wstęp do teorii miary, rozdz. 1 1 1 Działania na zbiorach W rozdziale tym przypomnimy podstawowe działania na zbiorach koncentrując się na własnościach tych działań, które będą przydatne w dalszej

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

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 7: Kody korygujące błędy Gniewomir Sarbicki Błędy transmisji i kodowanie nadmiarowe Zakładamy, że przy pewnym małym prawdopodobieństwie ɛ przy transmisji bit zmienia wartość.

Bardziej szczegółowo

Wybrane metody kompresji obrazów

Wybrane metody kompresji obrazów Wybrane metody kompresji obrazów Celem kodowania kompresyjnego obrazu jest redukcja ilości informacji w nim zawartej. Redukcja ta polega na usuwaniu informacji nadmiarowej w obrazie, tzw. redundancji.

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

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

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

JAO - lematy o pompowaniu dla jezykow bezkontekstowy JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową

Bardziej szczegółowo

7a. Teoria drzew - kodowanie i dekodowanie

7a. Teoria drzew - kodowanie i dekodowanie 7a. Teoria drzew - kodowanie i dekodowanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7a. wteoria Krakowie) drzew - kodowanie i

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Zapis liczb binarnych ze znakiem

Zapis liczb binarnych ze znakiem Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

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

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 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 Wrocław 5.6.2008 Spis treści I Kodowanie 5 Wiadomość, a

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/

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. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

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

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

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

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

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

7. CIĄGI. WYKŁAD 5. Przykłady : WYKŁAD 5 1 7. CIĄGI. CIĄGIEM NIESKOŃCZONYM nazywamy funkcję określoną na zbiorze liczb naturalnych, dodatnich, a wyrazami ciągu są wartości tej funkcji. CIĄGIEM SKOŃCZONYM nazywamy funkcję określoną na

Bardziej szczegółowo

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG Tomasz Wykład 11: Transformaty i JPEG Idea kodowania transformujacego Etapy kodowania 1 Wektor danych x 0,...,x N 1 przekształcamy (odwracalnie!) na wektor c 0,...,c N 1, tak aby: energia była skoncentrowana

Bardziej szczegółowo

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

Bardziej szczegółowo

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994] Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie

Bardziej szczegółowo

Temat 7. Dekodery, enkodery

Temat 7. Dekodery, enkodery Temat 7. Dekodery, enkodery 1. Pojęcia: koder, dekoder, enkoder, konwerter kodu, transkoder, enkoder priorytetowy... Koderami (lub enkoderami) nazywamy układy realizujące proces zamiany informacji kodowanej

Bardziej szczegółowo

Łyżwy - omówienie zadania

Łyżwy - omówienie zadania Komisja Regulaminowa XVI Olimpiady Informatycznej 1 UMK Toruń 12 luty 2009 1 Niniejsza prezentacja zawiera materiały dostarczone przez Komitet Główny Olimpiady Informatycznej. Treść zadania Wejście Wyjście

Bardziej szczegółowo