AKD Metody słownikowe

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

Download "AKD Metody słownikowe"

Transkrypt

1 AKD Metody słownikowe Algorytmy kompresji danych Sebastian Deorowicz Sebastian Deorowicz () AKD Metody słownikowe / 38

2 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

3 Obserwacje dotyczące rzeczywistych sekwencji Obserwacje Uwaga Źródło danych często generuje ciągi symboli wielokrotnie się powtarzające (np. słowa w tekstach) Niektóre ciągi symboli powtarzają się częściej Powtarzające się ciągi symboli często występują blisko siebie (np. nazwa miasta w książce może często się powtarzać w jednym rozdziale, ale niekoniecznie musi występować w innych rozdziałach) Obserwacje mają charakter czysto empiryczny i trudno je opisać za pomocą jakiegoś modelu źródła danych Sebastian Deorowicz () AKD Metody słownikowe / 38

4 Obserwacje dotyczące rzeczywistych sekwencji Obserwacje Uwaga Źródło danych często generuje ciągi symboli wielokrotnie się powtarzające (np. słowa w tekstach) Niektóre ciągi symboli powtarzają się częściej Powtarzające się ciągi symboli często występują blisko siebie (np. nazwa miasta w książce może często się powtarzać w jednym rozdziale, ale niekoniecznie musi występować w innych rozdziałach) Obserwacje mają charakter czysto empiryczny i trudno je opisać za pomocą jakiegoś modelu źródła danych Sebastian Deorowicz () AKD Metody słownikowe / 38

5 Idea metod słownikowych Idea Zamiast zapisywać powtarzające się ciągi symboli (np. słowa) można zapisywać krótsze kody opisujące jak dawno temu dany ciąg symboli już wystąpił Im dłuższe powtórzenie tym lepiej Powtórzenia krótkie i bardzo odległe można zignorować bo ich opis zajmie dużo miejsca Sebastian Deorowicz () AKD Metody słownikowe / 38

6 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

7 Abraham Lempel (1936 ) Internet: abraham_lempel.html Najważniejsze osiągnięcia przełomowe prace z kompresji danych razem z Zivem Inne informacje Urodzony w Polsce, we Lwowie Do 2007 dyrektor laboratoriów HP w Izraelu Sebastian Deorowicz () AKD Metody słownikowe / 38

8 Jacob Ziv (1931 ) Najważniejsze osiągnięcia przełomowe prace z kompresji danych razem z Lempelem Internet: viterbi_lecture/ziv.htm Inne informacje pracownik izraelskiego ministerstwa obrony pracownik laboratoriów Bella 1970 dziś pracownik Technion (Israel Institute of Technology) Sebastian Deorowicz () AKD Metody słownikowe / 38

9 LZ77 idea Idea algorytmu 1 Wyszukaj w zakodowanym już fragmencie sekwencji najdłuższego dopasowania (identycznego fragmentu) do fragmentu zaczynającego się na bieżącej pozycji 2 Zakoduj opis dopasowania jako trójkę offset, length, letter, gdzie: offset odległość od bieżącej pozycji, na której znaleziono najdłuższe dopasowanie length długość dopasowania letter litera znajdująca się za dopasowanym fragmentem 3 Przesuń się w kodowanej sekwencji o length + 1 bajtów Sebastian Deorowicz () AKD Metody słownikowe / 38

10 LZ77 dalej niż idea Jak daleko szukać dopasowań? Im dalej tym dłuższe dopasowania zapewne znajdziemy, ale tym też więcej miejsca zajmie zapis pola offset nawet jeśli dopasowanie było blisko Kompromis: nie dalej niż 32KB wstecz (przesuwające się okno) Jak długich szukać dopasowań? Im dłuższych dopasowań będziemy szukać, tym więcej miejsca zajmie zapis pola length nawet jeśli dopasowanie było krótkie Kompromis: nie dłuższych dopasowań niż 256 znaków Sebastian Deorowicz () AKD Metody słownikowe / 38

11 LZ77 dalej niż idea Jak daleko szukać dopasowań? Im dalej tym dłuższe dopasowania zapewne znajdziemy, ale tym też więcej miejsca zajmie zapis pola offset nawet jeśli dopasowanie było blisko Kompromis: nie dalej niż 32KB wstecz (przesuwające się okno) Jak długich szukać dopasowań? Im dłuższych dopasowań będziemy szukać, tym więcej miejsca zajmie zapis pola length nawet jeśli dopasowanie było krótkie Kompromis: nie dłuższych dopasowań niż 256 znaków Sebastian Deorowicz () AKD Metody słownikowe / 38

12 LZ77 przykład kodowania a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

13 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

14 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

15 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b Sebastian Deorowicz () AKD Metody słownikowe / 38

16 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b Sebastian Deorowicz () AKD Metody słownikowe / 38

17 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r Sebastian Deorowicz () AKD Metody słownikowe / 38

18 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r Sebastian Deorowicz () AKD Metody słownikowe / 38

19 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c Sebastian Deorowicz () AKD Metody słownikowe / 38

20 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c Sebastian Deorowicz () AKD Metody słownikowe / 38

21 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d Sebastian Deorowicz () AKD Metody słownikowe / 38

22 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d Sebastian Deorowicz () AKD Metody słownikowe / 38

23 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d Sebastian Deorowicz () AKD Metody słownikowe / 38

24 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d Sebastian Deorowicz () AKD Metody słownikowe / 38

25 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c Sebastian Deorowicz () AKD Metody słownikowe / 38

26 LZ77 przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c Sebastian Deorowicz () AKD Metody słownikowe / 38

27 LZ77 przykład kodowania a b r a c a d a b r a d a b r a c a 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c 2 1 Sebastian Deorowicz () AKD Metody słownikowe / 38

28 LZ77 przykład dekodowania Sebastian Deorowicz () AKD Metody słownikowe / 38

29 LZ77 przykład dekodowania a a a a a a a a Sebastian Deorowicz () AKD Metody słownikowe / 38

30 LZ77 przykład dekodowania 1 1 b a a a a a a a a Sebastian Deorowicz () AKD Metody słownikowe / 38

31 LZ77 przykład dekodowania 1 1 b a a a a a a a a a b Sebastian Deorowicz () AKD Metody słownikowe / 38

32 LZ77 przykład dekodowania 1 1 b 0 0 r a a a a a a a a a b Sebastian Deorowicz () AKD Metody słownikowe / 38

33 LZ77 przykład dekodowania 1 1 b 0 0 r a a a a a a a a a b r Sebastian Deorowicz () AKD Metody słownikowe / 38

34 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c a a a a a a a a a b r Sebastian Deorowicz () AKD Metody słownikowe / 38

35 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c a a a a a a a a a b r a c Sebastian Deorowicz () AKD Metody słownikowe / 38

36 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d a a a a a a a a a b r a c Sebastian Deorowicz () AKD Metody słownikowe / 38

37 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d a a a a a a a a a b r a c a d Sebastian Deorowicz () AKD Metody słownikowe / 38

38 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d a a a a a a a a a b r a c a d Sebastian Deorowicz () AKD Metody słownikowe / 38

39 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d a a a a a a a a a b r a c a d a b r a d Sebastian Deorowicz () AKD Metody słownikowe / 38

40 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c a a a a a a a a a b r a c a d a b r a d Sebastian Deorowicz () AKD Metody słownikowe / 38

41 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c a a a a a a a a a b r a c a d a b r a d a b r a c Sebastian Deorowicz () AKD Metody słownikowe / 38

42 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c 2 1 a a a a a a a a a b r a c a d a b r a d a b r a c Sebastian Deorowicz () AKD Metody słownikowe / 38

43 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c 2 1 a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

44 LZ77 przykład dekodowania 1 1 b 0 0 r 3 1 c 2 1 d 7 4 d 5 4 c 2 1 a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

45 LZ77 technicznie Jak zapisywać trójki? offset 15 bitów length 8 bitów letter 8 bitów Jak szukać dopasowań? Drzewo poszukiwań binarnych (Bell, 1986) Drzewo trie (Bell, 1986) Tablica mieszająca (Brent, 1987) Sebastian Deorowicz () AKD Metody słownikowe / 38

46 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

47 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

48 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

49 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

50 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

51 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

52 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

53 LZ77 technicznie tablica mieszająca, wyszukiwanie Tab. miesz a b r d... z u c f... a b r a c d... a b r a d... a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

54 LZ77 technicznie tablica mieszająca Dodawanie wpisów do tablicy mieszającej Po zakodowaniu dopasowania długości length wszystkie pozycje zaczynające się na zakodowanych length + 1 symbolach są dodawane do tablicy mieszającej Usuwanie wpisów z tablicy mieszającej Po zakodowaniu length symboli należy wyrzucić z tablicy mieszającej te pozycje, które wysunęły się z okna, w którym wyszukujemy dopasowania Sebastian Deorowicz () AKD Metody słownikowe / 38

55 LZ77 technicznie tablica mieszająca Dodawanie wpisów do tablicy mieszającej Po zakodowaniu dopasowania długości length wszystkie pozycje zaczynające się na zakodowanych length + 1 symbolach są dodawane do tablicy mieszającej Usuwanie wpisów z tablicy mieszającej Po zakodowaniu length symboli należy wyrzucić z tablicy mieszającej te pozycje, które wysunęły się z okna, w którym wyszukujemy dopasowania Sebastian Deorowicz () AKD Metody słownikowe / 38

56 LZ77 główne wady Główne wady Opis krótkich dopasowań zajmuje dużo miejsca Wyszukiwanie dopasowań może być bardzo wolne trzeba dobrze to oprogramować Sebastian Deorowicz () AKD Metody słownikowe / 38

57 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

58 LZSS idea Idea algorytmu Zbyt krótkie (zwykle krótsze niż 3 znaki) dopasowania są ignorowane Stosujemy flagę bitową do określenia czy zapisujemy dopasowanie czy przesuwamy się tylko o 1 znak do przodu Jeśli nie ma dopasowania, to zapisujemy: 1, letter Jeśli jest dopasowanie, to opisujemy je: 0, offset, length Sebastian Deorowicz () AKD Metody słownikowe / 38

59 LZSS przykład kodowania a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

60 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

61 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

62 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

63 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a Sebastian Deorowicz () AKD Metody słownikowe / 38

64 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b Sebastian Deorowicz () AKD Metody słownikowe / 38

65 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b Sebastian Deorowicz () AKD Metody słownikowe / 38

66 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r Sebastian Deorowicz () AKD Metody słownikowe / 38

67 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r Sebastian Deorowicz () AKD Metody słownikowe / 38

68 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r Sebastian Deorowicz () AKD Metody słownikowe / 38

69 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r Sebastian Deorowicz () AKD Metody słownikowe / 38

70 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c Sebastian Deorowicz () AKD Metody słownikowe / 38

71 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c Sebastian Deorowicz () AKD Metody słownikowe / 38

72 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c Sebastian Deorowicz () AKD Metody słownikowe / 38

73 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c Sebastian Deorowicz () AKD Metody słownikowe / 38

74 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

75 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

76 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

77 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

78 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

79 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

80 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

81 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d Sebastian Deorowicz () AKD Metody słownikowe / 38

82 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d c Sebastian Deorowicz () AKD Metody słownikowe / 38

83 LZSS przykład kodowania a a a a a a a a a b r a c a d a b r a d a b r a c a b 1 r c d c Sebastian Deorowicz () AKD Metody słownikowe / 38

84 LZSS przykład kodowania a b r a c a d a b r a d a b r a c a b 1 r c d c Sebastian Deorowicz () AKD Metody słownikowe / 38

85 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

86 LZ77 inne wersje Inne wersje 1 LZR brak ograniczenia długości przesunięcia; odległość kodowana za pomocą kodu ω Eliasa (Rodeh i inni, 1981) LZB wersja LZSS; dynamicznie dopasowywany do potrzeb rozmiar pola odległości; brak ograniczenia na długość dopasowania; długość dopasowania kodowana kodem γ Eliasa (Bell, 1987) LZH odległość i długość dopasowania kodowana kodem Huffmana (Brent, 1987) LZS algorytm opracowany na potrzeby programu Stacker (Stac Electronics,?) 1 Dane na podstawie T. Bell, I.H. Witten, J.G. Cleary, Modelling Text Compression, ACM Comp. Surv Sebastian Deorowicz () AKD Metody słownikowe / 38

87 LZ77 inne wersje Inne wersje 1 LZR brak ograniczenia długości przesunięcia; odległość kodowana za pomocą kodu ω Eliasa (Rodeh i inni, 1981) LZB wersja LZSS; dynamicznie dopasowywany do potrzeb rozmiar pola odległości; brak ograniczenia na długość dopasowania; długość dopasowania kodowana kodem γ Eliasa (Bell, 1987) LZH odległość i długość dopasowania kodowana kodem Huffmana (Brent, 1987) LZS algorytm opracowany na potrzeby programu Stacker (Stac Electronics,?) 1 Dane na podstawie T. Bell, I.H. Witten, J.G. Cleary, Modelling Text Compression, ACM Comp. Surv Sebastian Deorowicz () AKD Metody słownikowe / 38

88 LZ77 inne wersje Inne wersje 1 LZR brak ograniczenia długości przesunięcia; odległość kodowana za pomocą kodu ω Eliasa (Rodeh i inni, 1981) LZB wersja LZSS; dynamicznie dopasowywany do potrzeb rozmiar pola odległości; brak ograniczenia na długość dopasowania; długość dopasowania kodowana kodem γ Eliasa (Bell, 1987) LZH odległość i długość dopasowania kodowana kodem Huffmana (Brent, 1987) LZS algorytm opracowany na potrzeby programu Stacker (Stac Electronics,?) 1 Dane na podstawie T. Bell, I.H. Witten, J.G. Cleary, Modelling Text Compression, ACM Comp. Surv Sebastian Deorowicz () AKD Metody słownikowe / 38

89 LZ77 inne wersje Inne wersje 1 LZR brak ograniczenia długości przesunięcia; odległość kodowana za pomocą kodu ω Eliasa (Rodeh i inni, 1981) LZB wersja LZSS; dynamicznie dopasowywany do potrzeb rozmiar pola odległości; brak ograniczenia na długość dopasowania; długość dopasowania kodowana kodem γ Eliasa (Bell, 1987) LZH odległość i długość dopasowania kodowana kodem Huffmana (Brent, 1987) LZS algorytm opracowany na potrzeby programu Stacker (Stac Electronics,?) 1 Dane na podstawie T. Bell, I.H. Witten, J.G. Cleary, Modelling Text Compression, ACM Comp. Surv Sebastian Deorowicz () AKD Metody słownikowe / 38

90 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

91 LZ78 idea Idea algorytmu 1 Utrzymuj słownik zawierający niektóre fragmenty sekwencji do tej pory zakodowanej 2 Dla każdej pozycji w sekwencji wyszukaj w słowniku najdłuższy ciąg identyczny z bieżącym fragmentem sekwencji 3 Zakoduj opis dopasowania jako parę index, letter, gdzie: index index znalezionej pozycji w słowniku letter litera znajdująca się za dopasowanym fragmentem 4 Dodaj do słownika nową frazę składającą się ze znalezionej frazy i litery letter 5 Przesuń się w kodowanej sekwencji o zakodowaną liczbę bajtów Sebastian Deorowicz () AKD Metody słownikowe / 38

92 LZ78 dalej niż idea Jak duży słownik? Im większy tym dłuższe znajdziemy dopasowania, tym też więcej miejsca zajmie index Kompromis: słownik o maksymalnym rozmiarze 4096 pozycji Słownik się zapełnił i co dalej? Możliwość 1: Zamrozić słownik i niczego już nie dodawać Możliwość 2: Opróżnić słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

93 LZ78 dalej niż idea Jak duży słownik? Im większy tym dłuższe znajdziemy dopasowania, tym też więcej miejsca zajmie index Kompromis: słownik o maksymalnym rozmiarze 4096 pozycji Słownik się zapełnił i co dalej? Możliwość 1: Zamrozić słownik i niczego już nie dodawać Możliwość 2: Opróżnić słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

94 LZ78 technicznie Jak zapisywać pary? index tyle bitów ile potrzeba do zakodowania maksymalnego indeksu ze słownika letter 8 bitów Jak szukać dopasowań? Drzewo trie Tablica mieszająca Sebastian Deorowicz () AKD Metody słownikowe / 38

95 LZ78 technicznie Jak zapisywać pary? index tyle bitów ile potrzeba do zakodowania maksymalnego indeksu ze słownika letter 8 bitów Jak szukać dopasowań? Drzewo trie Tablica mieszająca Sebastian Deorowicz () AKD Metody słownikowe / 38

96 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

97 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

98 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 1 a Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

99 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 1 a Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

100 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 1 a 2 b Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

101 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 1 a 2 b Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

102 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 a 2 b 3 r Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

103 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 a 2 b 3 r Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

104 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 a 2 b 3 r 4 ac Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

105 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 a 2 b 3 r 4 ac Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

106 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 a 2 b 3 r 4 ac 5 ad Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

107 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 a 2 b 3 r 4 ac 5 ad Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

108 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab Sebastian Deorowicz () AKD Metody słownikowe / 38

109 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab Sebastian Deorowicz () AKD Metody słownikowe / 38

110 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra Sebastian Deorowicz () AKD Metody słownikowe / 38

111 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra Sebastian Deorowicz () AKD Metody słownikowe / 38

112 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 0 d 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra 8 d Sebastian Deorowicz () AKD Metody słownikowe / 38

113 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 0 d 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra 8 d Sebastian Deorowicz () AKD Metody słownikowe / 38

114 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 0 d 6 r 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra 8 d 9 abr Sebastian Deorowicz () AKD Metody słownikowe / 38

115 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 0 d 6 r 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra 8 d 9 abr Sebastian Deorowicz () AKD Metody słownikowe / 38

116 LZ78 przykład kodowania a b r a c a d a b r a d a b r a c a 0 a 0 b 0 r 1 c 1 d 1 b 3 a 0 d 6 r 4 a 1 a 2 b 3 r 4 ac 5 ad Słownik 6 ab 7 ra 8 d 9 abr 10 aca Sebastian Deorowicz () AKD Metody słownikowe / 38

117 LZ78 Główne wady Słownik rośnie szybko i bez ograniczeń trzeba go okresowo okrajać Długie dopasowania pojawiają się po długim czasie słownik preferuje krótkie dopasowania Sebastian Deorowicz () AKD Metody słownikowe / 38

118 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

119 LZW Idea ulepszenia Wszystkie symbole alfabetu dodane na początku do słownika Szukamy dopasowania tak jak w LZ78, ale kodujemy tylko index Nie kodujemy litery znajdującej się za znalezionym dopasowaniem! Zaczynamy wyszukiwanie następnego dopasowania od tej litery Dodajemy frazy do słownika jak w LZ78 Sebastian Deorowicz () AKD Metody słownikowe / 38

120 LZW przykład kodowania a b r a c a d a b r a d a b r a c a Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

121 LZW przykład kodowania a b r a c a d a b r a d a b r a c a 1 a 2 b 3 c 4 d 5 r Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

122 LZW przykład kodowania a b r a c a d a b r a d a b r a c a 1 a 2 b 3 c 4 d 5 r Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

123 LZW przykład kodowania a b r a c a d a b r a d a b r a c a 1 1 a 2 b 3 c 4 d 5 r 6 ab Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

124 LZW przykład kodowania a b r a c a d a b r a d a b r a c a 1 1 a 2 b 3 c 4 d 5 r 6 ab Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

125 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

126 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

127 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

128 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

129 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

130 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

131 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

132 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik Sebastian Deorowicz () AKD Metody słownikowe / 38

133 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad Sebastian Deorowicz () AKD Metody słownikowe / 38

134 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad Sebastian Deorowicz () AKD Metody słownikowe / 38

135 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da Sebastian Deorowicz () AKD Metody słownikowe / 38

136 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da Sebastian Deorowicz () AKD Metody słownikowe / 38

137 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr Sebastian Deorowicz () AKD Metody słownikowe / 38

138 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr Sebastian Deorowicz () AKD Metody słownikowe / 38

139 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad Sebastian Deorowicz () AKD Metody słownikowe / 38

140 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad Sebastian Deorowicz () AKD Metody słownikowe / 38

141 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab Sebastian Deorowicz () AKD Metody słownikowe / 38

142 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab Sebastian Deorowicz () AKD Metody słownikowe / 38

143 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab 16 bra Sebastian Deorowicz () AKD Metody słownikowe / 38

144 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab 16 bra Sebastian Deorowicz () AKD Metody słownikowe / 38

145 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab 16 bra 17 aca Sebastian Deorowicz () AKD Metody słownikowe / 38

146 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab 16 bra 17 aca Sebastian Deorowicz () AKD Metody słownikowe / 38

147 LZW przykład kodowania a b r a c a d a b r a d a b r a c a a 2 b 3 c 4 d 5 r 6 ab 7 br 8 ra 9 ac 10 ca Słownik 11 ad 12 da 13 abr 14 rad 15 dab 16 bra 17 aca Sebastian Deorowicz () AKD Metody słownikowe / 38

148 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

149 LZ78 inne wersje Inne wersje LZC rosnące rozmiary indeksów; maksymalny rozmiar indeksu to zwykle 16 bitów; czyszczenie słownika dopiero wtedy gdy jest on pełny i współczynnik kompresji spada; stosowany w UNIXowym compress (Thomas i inni, 1985) LZT wersja LZC; przy zapełnieniu słownika usuwane najdawniej użyte frazy; nieco efektywniejsze kodowanie indeksów (Tisher, 1987) LZMW wersja LZ78; do słownika dodawane frazy składające się z frazy w nim istniejącej i 2 (a nie 1 jak w LZ78) kolejnych symboli (Miller i Wegman, 1984) LZJ (Jakobsson, 1985) LZFG (Fiala i Greene, 1989) Sebastian Deorowicz () AKD Metody słownikowe / 38

150 LZ78 inne wersje Inne wersje LZC rosnące rozmiary indeksów; maksymalny rozmiar indeksu to zwykle 16 bitów; czyszczenie słownika dopiero wtedy gdy jest on pełny i współczynnik kompresji spada; stosowany w UNIXowym compress (Thomas i inni, 1985) LZT wersja LZC; przy zapełnieniu słownika usuwane najdawniej użyte frazy; nieco efektywniejsze kodowanie indeksów (Tisher, 1987) LZMW wersja LZ78; do słownika dodawane frazy składające się z frazy w nim istniejącej i 2 (a nie 1 jak w LZ78) kolejnych symboli (Miller i Wegman, 1984) LZJ (Jakobsson, 1985) LZFG (Fiala i Greene, 1989) Sebastian Deorowicz () AKD Metody słownikowe / 38

151 LZ78 inne wersje Inne wersje LZC rosnące rozmiary indeksów; maksymalny rozmiar indeksu to zwykle 16 bitów; czyszczenie słownika dopiero wtedy gdy jest on pełny i współczynnik kompresji spada; stosowany w UNIXowym compress (Thomas i inni, 1985) LZT wersja LZC; przy zapełnieniu słownika usuwane najdawniej użyte frazy; nieco efektywniejsze kodowanie indeksów (Tisher, 1987) LZMW wersja LZ78; do słownika dodawane frazy składające się z frazy w nim istniejącej i 2 (a nie 1 jak w LZ78) kolejnych symboli (Miller i Wegman, 1984) LZJ (Jakobsson, 1985) LZFG (Fiala i Greene, 1989) Sebastian Deorowicz () AKD Metody słownikowe / 38

152 LZ78 inne wersje Inne wersje LZC rosnące rozmiary indeksów; maksymalny rozmiar indeksu to zwykle 16 bitów; czyszczenie słownika dopiero wtedy gdy jest on pełny i współczynnik kompresji spada; stosowany w UNIXowym compress (Thomas i inni, 1985) LZT wersja LZC; przy zapełnieniu słownika usuwane najdawniej użyte frazy; nieco efektywniejsze kodowanie indeksów (Tisher, 1987) LZMW wersja LZ78; do słownika dodawane frazy składające się z frazy w nim istniejącej i 2 (a nie 1 jak w LZ78) kolejnych symboli (Miller i Wegman, 1984) LZJ (Jakobsson, 1985) LZFG (Fiala i Greene, 1989) Sebastian Deorowicz () AKD Metody słownikowe / 38

153 LZ78 inne wersje Inne wersje LZC rosnące rozmiary indeksów; maksymalny rozmiar indeksu to zwykle 16 bitów; czyszczenie słownika dopiero wtedy gdy jest on pełny i współczynnik kompresji spada; stosowany w UNIXowym compress (Thomas i inni, 1985) LZT wersja LZC; przy zapełnieniu słownika usuwane najdawniej użyte frazy; nieco efektywniejsze kodowanie indeksów (Tisher, 1987) LZMW wersja LZ78; do słownika dodawane frazy składające się z frazy w nim istniejącej i 2 (a nie 1 jak w LZ78) kolejnych symboli (Miller i Wegman, 1984) LZJ (Jakobsson, 1985) LZFG (Fiala i Greene, 1989) Sebastian Deorowicz () AKD Metody słownikowe / 38

154 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

155 Co po LZ-ach? Czy wyjście LZ-ów da się skompresować? Da się i to dość znacznie: 20 30% dla LZSS Jak kompresować wyjście LZSS idea Częstość występowania bitów znacznika nie jest równa Krótsze dopasowania są częstsze niż dłuższe Częściej dopasowania znajdują się w bliższej odległości niż w dalszej Sebastian Deorowicz () AKD Metody słownikowe / 38

156 Co po LZ-ach? Czy wyjście LZ-ów da się skompresować? Da się i to dość znacznie: 20 30% dla LZSS Jak kompresować wyjście LZSS idea Częstość występowania bitów znacznika nie jest równa Krótsze dopasowania są częstsze niż dłuższe Częściej dopasowania znajdują się w bliższej odległości niż w dalszej Sebastian Deorowicz () AKD Metody słownikowe / 38

157 Co po LZ-ach? Algorytm Deflate Używa metody LZSS LZSS jest kodowane Huffmanem Sebastian Deorowicz () AKD Metody słownikowe / 38

158 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

159 Algorytmy Ziva i Lempela Zastosowania LZMA program 7z LZSS programy pkzip, arj, biblioteka zlib LZW format GIF (uwaga: LZW był opatentowany!) Sebastian Deorowicz () AKD Metody słownikowe / 38

160 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela 1977 i pochodne LZ77 LZSS Inne wersje 3 Algorytm Ziva Lempela 1978 i pochodne LZ78 LZW Inne wersje 4 Ogólny schemat kompresji oparty na LZ Co po LZ Huffman, kodowanie arytmetyczne Zastosowania LZ-ów Ciekawostki Sebastian Deorowicz () AKD Metody słownikowe / 38

161 Oryginalne artykuły Ziva i Lempela LZ77 universal_algorithm.pdf LZ78 variable-rate.pdf Sebastian Deorowicz () AKD Metody słownikowe / 38

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

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

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

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

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

Wprowadzenie Algorytm ByteRun ByteRun - przykład Algorytm RLE Przykład działania RLE Algorytm LZW Przykład kompresji LZW

Wprowadzenie Algorytm ByteRun ByteRun - przykład Algorytm RLE Przykład działania RLE Algorytm LZW Przykład kompresji LZW mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 2, strona 1. PROSTE ALGORYTMY KOMPRESJI BEZSTRATNEJ Wprowadze Algorytm ByteRun ByteRun - przykład Algorytm RLE Przykład działania RLE Algorytm

Bardziej szczegółowo

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

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy. komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego

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

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1.

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1. mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1. KOMPRESJA ALGORYTMEM HUFFMANA I LZ77 Idea algorytmu Huffmana Huffman kontra LZW Sposób tworzenia słownika Etapy budowy drzewa kodu

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

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.

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

Tematy projektów Algorytmy Kompresji Danych (2006)

Tematy projektów Algorytmy Kompresji Danych (2006) Tematy projektów Algorytmy Kompresji Danych (2006) Projekt nr 1 Temat: Kompresor plików w formacie.dbf Opracować algorytm kompresji plików w formacie.dbf. W algorytmie należy wykorzystać znajomość struktury

Bardziej szczegółowo

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając Cyfrowe przetwarzanie i kompresja danych dr inż.. Wojciech Zając Wykład 7. Standardy kompresji obrazów nieruchomych Obraz cyfrowy co to takiego? OBRAZ ANALOGOWY OBRAZ CYFROWY PRÓBKOWANY 8x8 Kompresja danych

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

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

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

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

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

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

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

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

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

Wprowadzenie. Algorytmy kompresji danych. Sebastian Deorowicz. Politechnika Śląska. Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 1 / 60 Wprowadzenie Algorytmy kompresji danych Sebastian Deorowicz Politechnika Śląska 2009 02 19 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 1 / 60 Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel

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

Zadania przykładowe do kolokwium z AA2

Zadania przykładowe do kolokwium z AA2 1 Zadania przykładowe do kolokwium z AA2 Zadanie 1 Dla tekstu ALA MA KOTA ALE ON MA ALERGIĘ zilustruj działanie algorytmów: a) LZ77, b) LZ78, c) LZSS. Załóż, że maksymalna długość dopasowania to 4, rozmiar

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

Ć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

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

Wykład 5. Kompresja danych

Wykład 5. Kompresja danych Wykład 5 Kompresja danych 1 Metody kompresji - przegląd Co to jest kompresja danych Definicje Kompresja bezstratna i stratna Kody o stałej i zmiennej długości Entropia i warunek Shannon a Metody kodowania

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

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

Przetwarzanie obrazu cyfrowego

Przetwarzanie obrazu cyfrowego Kompresja Kompresja Obrazu Po co kompresja Podstawowe pojęcia RLE LZ78 LZW Huffman JPEG Po co kompresja Obraz FullHD 1920x1080 w kolorze RGB to 49766400 bity danych (5,94 MiB) Przeciętne zdjęcie 18Mpixel

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

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Zastosowanie kompresji w kryptografii Piotr Piotrowski Zastosowanie kompresji w kryptografii Piotr Piotrowski 1 Plan prezentacji I. Wstęp II. Kryteria oceny algorytmów III. Główne klasy algorytmów IV. Przykłady algorytmów selektywnego szyfrowania V. Podsumowanie

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

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

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel Efektywność przetwarzania OLAP 1. Indeksowanie

Bardziej szczegółowo

Metody kompresji i przechowywania obrazów

Metody kompresji i przechowywania obrazów Metody kompresji i przechowywania obrazów Obrazy ogromnymi zbiorami danych: Np. Fotografia 24mm x 36 mm 10 7 punktów; rozdzielczość 0.01 mm 256 poziomów; >10 MB Na komputerze 640 x 480 pikseli 900 kb 1280x1024

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

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 Zespół Szkół im. ks. S. Staszica w Tarnobrzegu KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA Streszczenie Referat zawiera szczegółowe

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

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

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

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim

Bardziej szczegółowo

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania: Zadania-7 1. Opracować program prowadzący spis pracowników firmy (max.. 50 pracowników). Każdy pracownik opisany jest za pomocą struktury zawierającej nazwisko i pensję. Program realizuje następujące polecenia:

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

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

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

ZESZYTY NAUKOWE NR 6(78) AKADEMII MORSKIEJ W SZCZECINIE

ZESZYTY NAUKOWE NR 6(78) AKADEMII MORSKIEJ W SZCZECINIE ISSN 1733-8670 ZESZYTY NAUKOWE NR 6(78) AKADEMII MORSKIEJ W SZCZECINIE Wojciech Maleika I N Ż Y N I E R I A R U C H U M O R S K I E G O 2 00 5 Badanie bezstratnych metod kompresji danych opisujących kształt

Bardziej szczegółowo

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF Krzysztof Leszczyński Adam Sosnowski Michał Winiarski Projekt UCYF Temat: Dekodowanie kodów 2D. 1. Opis zagadnienia Kody dwuwymiarowe nazywane często kodami 2D stanowią uporządkowany zbiór jasnych i ciemnych

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

Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią.

Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią. Temat 2 Kolory jako liczby Kodowanie obrazów Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią. Wiek 7 i więcej

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

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

KOMPRESJA STRATNA I BEZSTRATNA

KOMPRESJA STRATNA I BEZSTRATNA KOMPRESJA STRATNA I BEZSTRATNA W znaczeniu informatycznym kompresja to zmniejszenie objętości danych przy zachowaniu ładunku informacyjnego, czyli sensu tych danych. Celem kompresji jest zatem możliwie

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

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

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

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

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

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7)

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7) mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 5, strona 1. PNG (PORTABLE NETWORK GRAPHICS) Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie

Bardziej szczegółowo

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów. Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów. Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz

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

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

System plików JFS. 1 Najważniejsze informacje. Mateusz Zakrzewski. 18 stycznia JFS to skrót od Journalled File System.

System plików JFS. 1 Najważniejsze informacje. Mateusz Zakrzewski. 18 stycznia JFS to skrót od Journalled File System. System plików JFS Mateusz Zakrzewski 18 stycznia 2004 1 Najważniejsze informacje. JFS to skrót od Journalled File System. Stworzony przez firmę IBM w 1990 roku. Jest niezawodny, dzięki księgowaniu. Zamiast

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 5b: Model danych oparty na listach http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Listy należą do najbardziej

Bardziej szczegółowo

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy 1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć

Bardziej szczegółowo

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo

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

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel Efektywność przetwarzania OLAP 1. Indeksowanie

Bardziej szczegółowo

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji dr inż. Piotr Odya Klasyfikacja metod kompresji Metody bezstratne Zakodowany strumień danych po dekompresji jest identyczny z oryginalnymi danymi przed kompresją, Metody stratne W wyniku kompresji część

Bardziej szczegółowo

Podstawy Informatyki Maszyna Turinga

Podstawy Informatyki Maszyna Turinga Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu. Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Organizacja zajęć Wykład: czwartek 14:15 16:00,

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

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Efektywność przetwarzania OLAP Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel. Indeksowanie

Bardziej szczegółowo

ZASTOSOWANIE METODY ZMNIEJSZONEJ CZĘSTOŚCI AKTUALIZACJI SŁOWNIKA W UNIWERSALNYM ALGORYTMIE KOMPRESJI LZW

ZASTOSOWANIE METODY ZMNIEJSZONEJ CZĘSTOŚCI AKTUALIZACJI SŁOWNIKA W UNIWERSALNYM ALGORYTMIE KOMPRESJI LZW STUDIA INFORMATICA 2010 Volume 31 Number 3(91) Roman STAROSOLSKI Politechnika Śląska, Instytut Informatyki ZASTOSOWANIE METODY ZMNIEJSZONEJ CZĘSTOŚCI AKTUALIZACJI SŁOWNIKA W UNIWERSALNYM ALGORYTMIE KOMPRESJI

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

Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych

Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych Idea Kompresji Kompresja danych - polega na zmianie sposobu zapisu informacji w taki sposób, aby zmniejszyć redundancję czyli

Bardziej szczegółowo

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

Systemy liczenia. 333= 3*100+3*10+3*1 Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=

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

Laboratorium 5: Tablice. Wyszukiwanie binarne

Laboratorium 5: Tablice. Wyszukiwanie binarne Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

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

Komunikacja człowiek-komputer

Komunikacja człowiek-komputer Komunikacja człowiek-komputer Wykład 3 Dr inż. Michał Kruk Komunikacja człowiek - komputer dr inż. Michał Kruk Reprezentacja znaków Aby zakodować tekst, trzeba każdej możliwej kombinacji bitów przyporządkować

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Wyszukiwanie plików w systemie Windows

Wyszukiwanie plików w systemie Windows 1 (Pobrane z slow7.pl) Bardzo często pracując na komputerze prędzej czy później łapiemy się na pytaniu - Gdzie jest ten plik? Zapisujemy i pobieramy masę plików i w nawale pracy pewne czynności są wykonywane

Bardziej szczegółowo

Paweł Gawrychowski Wyszukiwanie wzorca października / 31

Paweł Gawrychowski Wyszukiwanie wzorca października / 31 Paweł Gawrychowski Wyszukiwanie wzorca... 25 października 2011 1 / 31 Wyszukiwanie wzorca w skompresowanym tekście Paweł Gawrychowski 25 października 2011 Paweł Gawrychowski Wyszukiwanie wzorca... 25 października

Bardziej szczegółowo

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo