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



Podobne dokumenty
Przetwarzanie i transmisja danych multimedialnych

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

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

Podstawowe pojęcia. Teoria informacji

AKD Metody słownikowe

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

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

Temat: Algorytm kompresji plików metodą Huffmana

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

Wybrane metody kompresji obrazów

Kodowanie predykcyjne

TIMKoD - Lab 1 - Przybliżenie języka naturalnego

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

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

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

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Algorytmy kodowania entropijnego

ZESPÓŁ LABORATORIÓW TELEMATYKI TRANSPORTU ZAKŁAD TELEKOMUNIKACJI W TRANSPORCIE WYDZIAŁ TRANSPORTU POLITECHNIKI WARSZAWSKIEJ

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

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Fundamentals of Data Compression

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

WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI KARTA PRZEDMIOTU

Teoria informacji i kodowania Ćwiczenia

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kodowanie informacji

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

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

WYDZIAŁ MATEMATYKI KARTA PRZEDMIOTU

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

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

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

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder

Elementy teorii informacji i kodowania

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji

Wykład III: Kompresja danych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Moduł 2 Użytkowanie komputerów i zarządzanie plikami wymaga od kandydata znajomości obsługi komputera osobistego.

Technologie cyfrowe semestr letni 2018/2019

Temat pytań Teoria informacji

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Teoria Informacji - wykład. Kodowanie wiadomości

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

Tematy projektów Algorytmy Kompresji Danych (2006)

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

Przygotowali: Bartosz Szatan IIa Paweł Tokarczyk IIa

Kompresja bezstratna. Entropia. Kod Huffmana

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Technologie cyfrowe semestr letni 2018/2019

Co to jest dźwięk. Dźwięk to wyrażenie słuchowe wywołane przez falę akustyczną. Ludzki narząd wyłapuje dźwięki z częstotliwością 16 do 20 Hz

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

Kody Tunstalla. Kodowanie arytmetyczne

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

dr inż. Piotr Odya Wprowadzenie

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

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

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy

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

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

FORMATY PLIKÓW GRAFICZNYCH

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

ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH

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

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ

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

Podstawy kompresji danych

MOŻLIWOŚĆ WYBRANYCH METOD KOMPRESJI OBRAZÓW W DIGITALIZACJI ZBIORÓW BIBLIOTECZNYCH

Kodowanie informacji. Przygotował: Ryszard Kijanka

1. Wprowadzenie 1.1. Zdefiniowanie problemu badawczego

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

Kwantyzacja wektorowa. Kodowanie różnicowe.

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

Formaty kompresji audio

Przykładowe zagadnienia na sprawdzian z wiedzy ogólnej. Linux to nazwa: A. Programu biurowego. B. Systemu operacyjnego. C. Przeglądarki internetowej.

Definicja. Jeśli. wtedy

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

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

Niezawodność i diagnostyka systemów cyfrowych projekt 2015

Formaty plików. graficznych, dźwiękowych, wideo

O oszczędnym dziennikarzu, czyli czym jest

sortowanie na bazie wykorzystanie sortowania ze zliczaniem

Techniki multimedialne

ZESZYTY NAUKOWE NR 6(78) AKADEMII MORSKIEJ W SZCZECINIE

Standardy wideo: technologie cyfrowe

Etap I V Gminnego Konkursu Informatycznego.

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Obróbka grafiki cyfrowej

Część 1. system operacyjny i wstęp do operacji na plikach. Przygotował Mateusz Jureczko

Przemysłowe Sieci Informatyczne (PSI) Wykład #3 kodowanie i wstęp do teorii informacji WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII

Przetwarzanie sygnałów w telekomunikacji

Akwizycja i przetwarzanie sygnałów cyfrowych

DŹWIĘK. Dźwięk analogowy - fala sinusoidalna. Dźwięk cyfrowy 1-bitowy 2 możliwe stany fala jest mocno zniekształcona

Audio i video. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Cała prawda o plikach grafiki rastrowej

Transformata Fouriera

Elektronika i Telekomunikacja I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Grafika rastrowa i wektorowa

Informacja. Informacja. Informacja. Informacja/wiadomość. Zbiór danych zebranych w celu ich przetworzenia i otrzymania wyników (nowych informacji).

Transkrypt:

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