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 przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 2 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 3 / 60
Cel przedmiotu Celem przedmiotu jest poznanie współczesnych metod i algorytmów z dziedziny kompresji danych, a także zdobycie umiejętności praktycznego posługiwania się nimi Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 4 / 60
Wykładowcy i strona przedmiotu Sebastian Deorowicz wpisy Pokój: 527 E-mail: Sebastian.Deorowicz@polsl.pl WWW: http://sun.aei.polsl.pl/~sdeor Roman Starosolski Pokój: 527 E-mail: Roman.Starosolski@polsl.pl WWW: http://sun.aei.polsl.pl/~rstaros Strona przedmiotu http://platforma.polsl.pl/rau2, Kurs: Algorytmy Kompresji Danych Hasło: akd Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 5 / 60
Program wykładów 1 Wprowadzenie do kompresji danych [SD] 2 Podstawy kompresji [SD] 3 Kodowanie Shannona Fano i Huffmana [RS] 4 Kodowanie arytmetyczne [RS] 5 Algorytmy słownikowe [SD] 6 Algorytm predykcji przez częściowe dopasowanie (PPM) [SD] 7 Transformata Burrowsa Wheelera (BWT) cz. 1 [SD] Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 6 / 60
Program wykładów 8 Transformata Burrowsa Wheelera cz. 2, Wybrane algorytmy specjalizowane cz. 1 [SD] 9 Algorytm kontekstowych drzew ważonych (CTW), Wybrane algorytmy specjalizowane cz. 2 [SD] 10 Bezstratna kompresja obrazów [RS] 11 Stratna kompresja obrazów [RS] 12 Stratna kompresja dźwięku [RS] 13 Kompresja wideo [RS] Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 7 / 60
Program laboratoriów 1 Podstawy kompresji: Badanie istniejących programów, bibliotek Implementacja algorytmu kompresji z wykorzystaniem bibliotek zlib, libbzip2 2 Modelowanie: Budowa adaptacyjnego probabilistycznego model niskiego rzędu Eksperymenty na jednym z plików z korpusu Calgary 3 Kompresja słownikowa: Implementacja różnych wersji algorytmu kompresji Ziva Lempela 4 Kodowanie arytmetyczne: Eksperymenty z istniejącymi implementacjami kodowania arytmetycznego Połączenie algorytmu kompresji Ziva Lempela z algorytmami kodowania arytmetycznego, klasycznym, RangeCoderem Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 8 / 60
Tematy projektów (zajęcia 5 7) Stworzenie specjalizowanych kompresorów dla różnego typu danych. Szczegółowe tematy zostaną podane w późniejszym terminie Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 9 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 10 / 60
Literatura Literatura podstawowa A. Drozdek, Wprowadzenie do kompresji danych, WNT, Warszawa, 1999 K. Sayood, Kompresja danych. Wprowadzenie, READ ME, Warszawa 2002 W. Skarbek, Multimedia. Algorytmy i standardy kompresji, Akademicka Oficyna Wydawnicza PLJ, Warszawa, 1998 Literatura uzupełniająca K. Sayood (edytor), Lossless Compression Handbook, Academic Press, Elsevier Science, 2003 A. Moffat, A. Turpin, Compression and Coding Algorithms, Kluwer Academic Publishers, 2002 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 11 / 60
Literatura Literatura podstawowa A. Drozdek, Wprowadzenie do kompresji danych, WNT, Warszawa, 1999 K. Sayood, Kompresja danych. Wprowadzenie, READ ME, Warszawa 2002 W. Skarbek, Multimedia. Algorytmy i standardy kompresji, Akademicka Oficyna Wydawnicza PLJ, Warszawa, 1998 Literatura uzupełniająca K. Sayood (edytor), Lossless Compression Handbook, Academic Press, Elsevier Science, 2003 A. Moffat, A. Turpin, Compression and Coding Algorithms, Kluwer Academic Publishers, 2002 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 11 / 60
Literatura dostępna w Internecie Strony internetowe FAQ grupy comp.compression http://www.faqs.org/faqs/compression-faq Strona http://www.compression-links.info Strona http://datacompression.info Strona http://www.data-compression.info Strona http://www.maximumcompression.com Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 12 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 13 / 60
Czym jest kompresja i po co się ją stosuje? Definition Kompresja metoda reprezentowania danych w zwartej postaci Po co stosować kompresję? Oszczędność miejsca, pieniędzy, czasu transmisji itp. Prędkość wyszukiwania wyszukiwanie w tekście skompresowanym odpowiednim algorytmem może być szybsze niż wyszukiwanie w oryginalnym tekście (tekst wcale nie musi też oznaczać tekstu ludzkiego ale może np. być zapisem DNA) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 14 / 60
Czym jest kompresja i po co się ją stosuje? Definition Kompresja metoda reprezentowania danych w zwartej postaci Po co stosować kompresję? Oszczędność miejsca, pieniędzy, czasu transmisji itp. Prędkość wyszukiwania wyszukiwanie w tekście skompresowanym odpowiednim algorytmem może być szybsze niż wyszukiwanie w oryginalnym tekście (tekst wcale nie musi też oznaczać tekstu ludzkiego ale może np. być zapisem DNA) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 14 / 60
Początki kompresji Kompresja intuicyjnie Alfabet Morse a Kompresja naukowo C. E. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, 1948 (http: //cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf) C. E. Shannon, Prediction and entropy of printed English, Bell System Technical Journal, 1951 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 15 / 60
Początki kompresji Kompresja intuicyjnie Alfabet Morse a Kompresja naukowo C. E. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, 1948 (http: //cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf) C. E. Shannon, Prediction and entropy of printed English, Bell System Technical Journal, 1951 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 15 / 60
Claude Elwood Shannon (1916 2001) Internet: http://en.wikipedia.org/wiki/claude_ E._Shannon Ważne daty 1948 Fundamentalna praca będącą początkiem teorii informacji 1949 Znaczący wkład w podstawy matematycznej teorii kryptografii 1949 Matematyczne podstawy teorii próbkowania Nyquista Dodatkowe informacje Miejsca pracy: University of Michigan, Bell Labs, MIT Wyróżnienia: Liczne doktoraty honoris causa i nagrody międzynarodowe Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 16 / 60
Model komunikacji Shannona Źródło Odbiorca Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 17 / 60
Model komunikacji Shannona Źródło Kanał transmisyjny Odbiorca Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 17 / 60
Model komunikacji Shannona Źródło Koder Kanał transmisyjny Dekoder Odbiorca Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 17 / 60
Model komunikacji Shannona Źródło szumu Źródło Koder Kanał transmisyjny Dekoder Odbiorca Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 17 / 60
Co może być źródłem? Źródła analogowe przykłady Termometr, barometr Struny głosowe Instrumenty muzyczne Źródła cyfrowe przykłady Klawiatura Telegraf Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 18 / 60
Co może być źródłem? Źródła analogowe przykłady Termometr, barometr Struny głosowe Instrumenty muzyczne Źródła cyfrowe przykłady Klawiatura Telegraf Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 18 / 60
Co kompresujemy? Mowa (np. w telefonii komórkowej, internetowej) Muzyka (np. utwory w formacie MP3) Dane video (np. filmy na DVD, w formacie DivX) Teksty (np. udostępniane w archiwach takich jak Project Gutenberg) Pliki wykonywalne (np. wersje instalacyjne oprogramowania) Bazy danych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 19 / 60
Co może być kanałem komunikacyjnym? Powietrze Linie telefoniczne Ethernet CD, DVD Dyski magnetyczne Pamięć operacyjna Przestrzeń międzyplanetarna Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 20 / 60
Samuel Morse (1791 1872) Internet: http: //en.wikipedia.org/wiki/samuel_morse Ważne daty 1837 Wynalezienie elektycznego telegrafu (niezależnie od Wheatstone a) 1838 Wprowadzenie kodu dziś zwanego kodem Morse a Dodatkowe informacje Już od 1838 roku istniały wątpliwości odnośnie pierwszeństwa wprowadzonego kodu i wiele wskazuje na to, że rzeczywistym jego wynalazcą był Alfred Vail Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 21 / 60
Alfabet Morse a Litery kodowane za pomocą kropek i kresek Stosowany w telegrafii Literom najczęściej występującym odpowiadają najkrótsze kody: e ( ), t ( ) Literom najrzadziej występującym odpowiadają najdłuższe kody: q ( ), j ( ) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 22 / 60
Częstość występowania liter w języku angielskim i polskim Język angielski 1 Litera Częstość [%] e 12,70 t 9,06 a 8,17 o 7,51 i 6,97 n 6,75 s 6,33 h 6,09...... k 0,77 j 0,15 x 0,15 q 0,10 z 0,07 Język polski 2 Litera Częstość [%] a 8,82 i 8,60 e 7,79 o 7,29 z 5,82 n 5,30 w 4,21 r 4,19...... ś 0,79 ć 0,51 f 0,21 ń 0,16 ź 0,08 1 Źródło: http://www.wikipedia.org 2 Źródło: http://www-users.mat.uni.torun.pl/~krypto/zasoby/wlasn_stat_liter.htm Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 23 / 60
Częstość występowania liter w języku angielskim i polskim Język angielski 1 Litera Częstość [%] e 12,70 t 9,06 a 8,17 o 7,51 i 6,97 n 6,75 s 6,33 h 6,09...... k 0,77 j 0,15 x 0,15 q 0,10 z 0,07 Język polski 2 Litera Częstość [%] a 8,82 i 8,60 e 7,79 o 7,29 z 5,82 n 5,30 w 4,21 r 4,19...... ś 0,79 ć 0,51 f 0,21 ń 0,16 ź 0,08 1 Źródło: http://www.wikipedia.org 2 Źródło: http://www-users.mat.uni.torun.pl/~krypto/zasoby/wlasn_stat_liter.htm Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 23 / 60
Przykładowe rozmiary danych Pojedynczy obraz jakości telewizyjnej: 0,75 MB Negatyw zdjęcia 35mm (3000 2000 pikseli, kolor 24-bitowy): 18 MB Zdjęcie rentgenowskie (5000 6000 pikseli, 12 bitów/piksel): 45 MB Film wideo (100 min) jakości DVD bez kompresji: 180 GB Film wideo (100 min) jakości HD bez kompresji: 850 GB Film wideo (100 min) jakości UltraHD bez kompresji: 19 TB Program monitorowania globalnych zmian w środowisku (NASA, ESA) codziennie generowane jest 500 GB danych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 24 / 60
Zalety stosowania kompresji Przesyłanie większej ilości danych w tym samym czasie (np. satelity telekomunikacyjne) Przesyłanie danych w krótszym czasie Praca większej liczby użytkowników na łączu o tej samej przepustowości (np. Internet) Duże rozmiary przechowywanych danych (rozmiary i koszty dysków twardych) Wygoda operowania plikami o mniejszych rozmiarach (film jakości DVD zajmuje jedną płytę DVD, a nie 20) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 25 / 60
Wady stosowania kompresji Konieczność wykonania dekompresji przed użyciem danych Czasami wymagana jest duża moc obliczeniowa, aby kompresji/dekompresja mogła być wykonywana w czasie rzeczywistym Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 26 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 27 / 60
RLE idea RLE (ang. Run Length Encoding) algorytm 1 Znajdź w sekwencji fragmenty powtarzających się symboli (serie) 2 Każdą serię o długości min. 2 zamień na podwójne wystąpienie powtarzanego symbolu i długość serii (nie trzeba już wliczać do niej tych 2 symboli) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 28 / 60
RLE przykład Sekwencja oryginalna 0 1 3 3 1 2 2 2 2 2 3 1 0 0 0 0 0 1 1 1 1 1 1 2 1 2 3 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 2 1 3 3 3 3 2 1 0 1 2 3 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 29 / 60
RLE przykład Sekwencja oryginalna 0 1 3 3 1 2 2 2 2 2 3 1 0 0 0 0 0 1 1 1 1 1 1 2 1 2 3 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 2 1 3 3 3 3 2 1 0 1 2 3 Sekwencja skompresowana 0 1 3 3 0 1 2 2 3 3 1 0 0 3 1 1 4 2 1 2 3 0 0 9 3 3 2 2 1 3 3 2 2 1 0 1 2 3 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 29 / 60
RLE historia i zastosowania Historia Pierwszy opis Golomb (1966) Zastosowania Niektóre formaty graficzne (np. PCX, TIFF) Część składowa niektórych bardziej skomplikowanych algorytmów kompresji Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 30 / 60
RLE historia i zastosowania Historia Pierwszy opis Golomb (1966) Zastosowania Niektóre formaty graficzne (np. PCX, TIFF) Część składowa niektórych bardziej skomplikowanych algorytmów kompresji Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 30 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 31 / 60
Jak porównywać algorytmy kompresji? Dane testowe Istniejące zestawy danych testowych korpusy Własne dane testowe Kryteria oceny jakości kompresji Współczynnik kompresji Prędkość kompresji Prędkość dekompresji Problem Wiele kryteriów trudno wybrać jeden najlepszy algorytm Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 32 / 60
Jak porównywać algorytmy kompresji? Dane testowe Istniejące zestawy danych testowych korpusy Własne dane testowe Kryteria oceny jakości kompresji Współczynnik kompresji Prędkość kompresji Prędkość dekompresji Problem Wiele kryteriów trudno wybrać jeden najlepszy algorytm Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 32 / 60
Jak porównywać algorytmy kompresji? Dane testowe Istniejące zestawy danych testowych korpusy Własne dane testowe Kryteria oceny jakości kompresji Współczynnik kompresji Prędkość kompresji Prędkość dekompresji Problem Wiele kryteriów trudno wybrać jeden najlepszy algorytm Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 32 / 60
Miary kompresji Definition Stopień kompresji to stosunek rozmiaru pliku przed kompresją do rozmiaru pliku po kompresji, np. 4:1 Definition Współczynnik kompresji to wyrażony w procentach stosunek rozmiaru pliku po kompresji do rozmiaru pliku przed kompresją, np. 75% Definition Średnia bitowa to stosunek rozmiaru pliku po kompresji wyrażonego w bitach do rozmiaru pliku przed kompresją wyrażonego w symbolach (np. bajtach), np. 2.56 bit/symbol Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 33 / 60
Miary kompresji Definition Stopień kompresji to stosunek rozmiaru pliku przed kompresją do rozmiaru pliku po kompresji, np. 4:1 Definition Współczynnik kompresji to wyrażony w procentach stosunek rozmiaru pliku po kompresji do rozmiaru pliku przed kompresją, np. 75% Definition Średnia bitowa to stosunek rozmiaru pliku po kompresji wyrażonego w bitach do rozmiaru pliku przed kompresją wyrażonego w symbolach (np. bajtach), np. 2.56 bit/symbol Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 33 / 60
Miary kompresji Definition Stopień kompresji to stosunek rozmiaru pliku przed kompresją do rozmiaru pliku po kompresji, np. 4:1 Definition Współczynnik kompresji to wyrażony w procentach stosunek rozmiaru pliku po kompresji do rozmiaru pliku przed kompresją, np. 75% Definition Średnia bitowa to stosunek rozmiaru pliku po kompresji wyrażonego w bitach do rozmiaru pliku przed kompresją wyrażonego w symbolach (np. bajtach), np. 2.56 bit/symbol Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 33 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 34 / 60
Zestawy testowe korpusy Czym są korpusy? Zestawy danych testowych stosowane do oceny efektywności kompresji Przygotowane przez naukowców zajmujących się daną dziedziną Stosowane w wielu publikacjach różnych autorów Po co stosować korpusy? Możliwość porównania różnych metod kompresji bez konieczności implementowania wszystkich Możliwość zorientowanie się w trakcie prowadzenia badań jak nasz nowy algorytm wypada na tle innych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 35 / 60
Zestawy testowe korpusy Czym są korpusy? Zestawy danych testowych stosowane do oceny efektywności kompresji Przygotowane przez naukowców zajmujących się daną dziedziną Stosowane w wielu publikacjach różnych autorów Po co stosować korpusy? Możliwość porównania różnych metod kompresji bez konieczności implementowania wszystkich Możliwość zorientowanie się w trakcie prowadzenia badań jak nasz nowy algorytm wypada na tle innych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 35 / 60
Korpusy przykłady Dane ogólnego przeznaczenia Obrazy Korpus Calgary (1989) Canterbury, Large Canterbury (1997) Silesia (2003) Archive Comparison Test (2002) Waterloo GreySet1 (8-bit, 256 256 pikseli) Waterloo GreySet2 (8-bit, głównie 512 512 pikseli) Waterloo ColorSet (24-bit, od 512 512 pikseli do 1118 1105 pikseli) Inne (np. obrazy o głębi 48-bit, medyczne) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 36 / 60
Korpusy przykłady Dane ogólnego przeznaczenia Obrazy Korpus Calgary (1989) Canterbury, Large Canterbury (1997) Silesia (2003) Archive Comparison Test (2002) Waterloo GreySet1 (8-bit, 256 256 pikseli) Waterloo GreySet2 (8-bit, głównie 512 512 pikseli) Waterloo ColorSet (24-bit, od 512 512 pikseli do 1118 1105 pikseli) Inne (np. obrazy o głębi 48-bit, medyczne) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 36 / 60
Korpus Calgary (1989) Plik Rozm. Zawartość Typ [KB] bib 109 Dane bibliograficzne dane tekstowe book1 751 Książka T. Hardy ego tekst angielski book2 597 Książka I. Wittena w formacie troffa tekst angielski geo 100 Dane geofizyczne dane binarne news 368 Zapis grup usenetowych tekst angielski obj1 21 Skompilowany kod dla Vaxa plik wykonywalny obj2 241 Skompilowany kod dla Apple Macintosh plik wykonywalny paper1 52 Artykuł nt. kompresji w formacie troffa tekst angielski paper2 80 Artykuł nt. bezp. w formacie troffa tekst angielski pic 501 Obraz zawierający tekst i grafikę obraz progc 37 Kod źródłowy w C program źródłowy progl 70 Kod źródłowy w Lispie program źródłowy progp 48 Kod źródłowy w Pascalu program źródłowy trans 92 Zapis sesji terminala z użyciem Emacsa tekst angielski Razem 3067 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 37 / 60
Korpus Calgary cechy Zalety Duża popularność stosowany w wielu publikacjach Łatwość porównania z algorytmami, dla których znane są wyniki dla tego korpusu Wady Trochę przestarzały (1989) Niektóre pliki w formatach dziś już nie stosowanych Małe rozmiary plików Brak plików we współczesnych formatach Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 38 / 60
Korpus Calgary cechy Zalety Duża popularność stosowany w wielu publikacjach Łatwość porównania z algorytmami, dla których znane są wyniki dla tego korpusu Wady Trochę przestarzały (1989) Niektóre pliki w formatach dziś już nie stosowanych Małe rozmiary plików Brak plików we współczesnych formatach Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 38 / 60
Inne korpusy ogólnego przeznaczenia Zalety Dane o większych rozmiarach Lepsze odzwierciedlenie typów danych obecnie kompresowanych Wady Mała popularność Współczynniki kompresji często znane tylko dla niektórych metod Źle dobrane dane (np. korpus Canterbury) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 39 / 60
Inne korpusy ogólnego przeznaczenia Zalety Dane o większych rozmiarach Lepsze odzwierciedlenie typów danych obecnie kompresowanych Wady Mała popularność Współczynniki kompresji często znane tylko dla niektórych metod Źle dobrane dane (np. korpus Canterbury) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 39 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 40 / 60
Metody specjalizowane i uniwersalne Metody specjalizowane Lepszy współczynnik kompresji Potrzeba stworzenia algorytmu dla konkretnych danych Koszty opracowania algorytmu mogą przewyższyć zyski z jego stosowania Metody uniwersalne Gorszy współczynnik kompresji (często tylko nieznacznie) Możliwość stosowania jednego algorytmu do danych różnych typów Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 41 / 60
Metody specjalizowane i uniwersalne Metody specjalizowane Lepszy współczynnik kompresji Potrzeba stworzenia algorytmu dla konkretnych danych Koszty opracowania algorytmu mogą przewyższyć zyski z jego stosowania Metody uniwersalne Gorszy współczynnik kompresji (często tylko nieznacznie) Możliwość stosowania jednego algorytmu do danych różnych typów Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 41 / 60
Metody specjalizowane sonda Galileo Sonda Galileo wysłana przez NASA w kierunku Jowisza W trakcie lotu wykryta awaria głównej anteny komunikacyjnej Możliwa komunikacja przez antenę pomocniczą z prędkością 16b/s (!) Poprawa prędkości komunikacji do 120b/s Zastosowanie specjalizowanej kompresji 10-krotne przyspieszenie prędkości przesyłu danych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 42 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 43 / 60
Metody stratne i bezstratne Metody stratne Po dekompresji nie otrzymujemy dokładnie tego samego co kompresowaliśmy Lepsze współczynniki kompresji Ograniczony zakres zastosowań Metody bezstratne Po dekompresji otrzymujemy dokładnie to samo co kompresowaliśmy Gorsze współczynniki kompresji Szeroki zakres zastosowań Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 44 / 60
Metody stratne i bezstratne Metody stratne Po dekompresji nie otrzymujemy dokładnie tego samego co kompresowaliśmy Lepsze współczynniki kompresji Ograniczony zakres zastosowań Metody bezstratne Po dekompresji otrzymujemy dokładnie to samo co kompresowaliśmy Gorsze współczynniki kompresji Szeroki zakres zastosowań Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 44 / 60
Metody bezstratne zastosowania Teksty Bazy danych Obrazy medyczne (!) Programy komputerowe Archiwizacja danych Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 45 / 60
Metody stratne zastosowania Obrazy Utwory muzyczne Mowa Dane wideo Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 46 / 60
A może tak zawsze kompresować stratnie? Teksty list do rodziców z kolonii: Mamo przyślij kasę Mamo przyślij kaszę Bazy danych stan konta: 2.000 zł 200.000 zł lub 2.000 zł 200 zł Obrazy rentgenowskie błędna diagnoza Programy komputerowe program zawiesi się albo zacznie wykonywać błędne operacje Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 47 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 48 / 60
Podstawowe definicje Definition Istnieje zbiór zdarzeń A = {a 1,..., a n } nazywany alfabetem. Elementy a i tego zbioru nazywamy symbolami Założenie Elementy zbioru A są używane do konstruowania sekwencji (komunikatów), tzn. sekwencja składa się z symboli Założenie Dla każdego symbolu a i znane jest prawdopodobieństwo p(a i ) jego wygenerowania, takie że: n p(a i ) = 1 i=1 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 49 / 60
Podstawowe definicje Definition Istnieje zbiór zdarzeń A = {a 1,..., a n } nazywany alfabetem. Elementy a i tego zbioru nazywamy symbolami Założenie Elementy zbioru A są używane do konstruowania sekwencji (komunikatów), tzn. sekwencja składa się z symboli Założenie Dla każdego symbolu a i znane jest prawdopodobieństwo p(a i ) jego wygenerowania, takie że: n p(a i ) = 1 i=1 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 49 / 60
Podstawowe definicje Definition Istnieje zbiór zdarzeń A = {a 1,..., a n } nazywany alfabetem. Elementy a i tego zbioru nazywamy symbolami Założenie Elementy zbioru A są używane do konstruowania sekwencji (komunikatów), tzn. sekwencja składa się z symboli Założenie Dla każdego symbolu a i znane jest prawdopodobieństwo p(a i ) jego wygenerowania, takie że: n p(a i ) = 1 i=1 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 49 / 60
Autoinformacja definicja Definition Autoinformacja (informacja) związana z wygenerowaniem symbolu a i, którego prawdopodobieństwo wystąpienia wynosi p(a i ) jest definiowana jako: 1 I (a i ) = log k p(a i ) = log k p(a i ) Jednostki autoinformacji Jednostka, w której mierzona jest autoinformacja zależy od podstawy logarytmu: k = 2 bit (ang. bit [binary digit]), k = e nat (ang. nat [natural digit]), k = 10 hartley (od nazwiska Ralpha Hartleya, jednego z pionierów teorii informacji) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 50 / 60
Autoinformacja definicja Definition Autoinformacja (informacja) związana z wygenerowaniem symbolu a i, którego prawdopodobieństwo wystąpienia wynosi p(a i ) jest definiowana jako: 1 I (a i ) = log k p(a i ) = log k p(a i ) Jednostki autoinformacji Jednostka, w której mierzona jest autoinformacja zależy od podstawy logarytmu: k = 2 bit (ang. bit [binary digit]), k = e nat (ang. nat [natural digit]), k = 10 hartley (od nazwiska Ralpha Hartleya, jednego z pionierów teorii informacji) Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 50 / 60
Podstawowe definicje założenia Założenie Jeśli nie będzie zaznaczone inaczej, to w trakcie wszystkich wykładów będziemy przyjmowali domyślnie jako jednostkę bit, a domyślną podstawą logarytmów będzie 2, tzn. log log 2 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 51 / 60
Autoinformacja przykład rzutu monetą p(orzeł) = p(reszka) = 1 2 I (a i ) = log 1 p(a i ) = log p(a i) I (Orzeł) = I (Reszka) = 1 bit Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 52 / 60
Autoinformacja przykład rzutu fałszywą monetą p(orzeł) = 1 8 p(reszka) = 7 8 I (a i ) = log 1 p(a i ) = log p(a i) I (Orzeł) = 3 bit I (Reszka) = 0.193 bit Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 53 / 60
Plan wykładu 1 Przedmiot Algorytmy Kompresji Danych Cel przedmiotu i jego program Literatura 2 Wprowadzenie do kompresji danych Początki kompresji Prosty algorytm kompresji 3 Metody porównań algorytmów kompresji Kryteria porównań Zestawy testowe 4 Podział algorytmów kompresji Metody specjalizowane i uniwersalne Metody stratne i bezstratne 5 Podstawowe definicje Autoinformacja Entropia Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 54 / 60
Entropia definicja Definition Entropia stowarzyszona ze zbiorem n niezależnych zdarzeń A = {a 1,..., a n } i ze zbiorem prawdopodobieństw ich zajścia P = {p(a 1 ),..., p(a n )} jest definiowana jako: Intuicja H(A) = n p(a i )I (a i ) = i=1 n p(a i ) log p(a i ) Innymi słowy entropia jest to średnia autoinformacja związana z eksperymentem losowym polegającym na wygenerowaniu symbolu przy założonych prawdopodobieństwach wygenerowania symboli z alfabetu i=1 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 55 / 60
Entropia definicja Definition Entropia stowarzyszona ze zbiorem n niezależnych zdarzeń A = {a 1,..., a n } i ze zbiorem prawdopodobieństw ich zajścia P = {p(a 1 ),..., p(a n )} jest definiowana jako: Intuicja H(A) = n p(a i )I (a i ) = i=1 n p(a i ) log p(a i ) Innymi słowy entropia jest to średnia autoinformacja związana z eksperymentem losowym polegającym na wygenerowaniu symbolu przy założonych prawdopodobieństwach wygenerowania symboli z alfabetu i=1 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 55 / 60
Entropia przykład rzutu monetą p(orzeł) = 1 2 p(reszka) = 1 2 n H(A) = p(a i ) log p(a i ) i=1 H(A) = 1 2 1 bit + 1 1 bit = 1 bit 2 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 56 / 60
Entropia przykład rzutu fałszywą monetą p(orzeł) = 1 8 p(reszka) = 7 8 n H(A) = p(a i ) log p(a i ) i=1 H(A) = 1 8 3 bit + 7 0.193 bit = 0.544 bit 8 Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 57 / 60
Entropia wykres dla alfabetu binarnego H 1 A = {a 1, a 2 } p(a 1 ) p p(a 2 ) 1 p 0 0.5 1 p Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 58 / 60
Entropia cechy Cechy funkcji entropii Funkcja ciągła Funkcja symetryczna Dolne ograniczenie: 0 bit Górne ograniczenie: log n bit Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 59 / 60
Koniec Na dziś to wszystko... Sebastian Deorowicz (PŚl) Wprowadzenie 2009 02 19 60 / 60