Przetwarzanie i transmisja danych multimedialnych Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS 1
Organizacja zajęć Wykład: Laboratoria: Ocena: Godziny przyjęć: 30 godzin, poniedziałek 8 15, E6 30 godzin, 2 grupy poniedziałek 12 15 i 14 15 laboratorium D, VI piętro, DMCS prowadzący mgr inŝ. Marcin Owczarek 50% egzamin + 50% laboratorium Przemysław Sękalski pokój 2 poniedziałek 12 13 wtorek 10 11 Marcin Owczarek wtorek 10 12 2
Zakres przedmiotu Przetwarzanie danych zajmuje się wykonywaniem pewnych operacji na danych, a takŝe interpretacją tychŝe danych Multimedia to ogólne określenie środków komunikacji wykorzystujących wiele form przekazu. Jeśli ktoś mówi o multimediach to zazwyczaj ma na myśli połączenie kilku z następujących elementów: tekst, obraz (o. statyczny - grafika/zdjęcie lub o. ruchomy - film/animacja), dźwięk (muzyka, mowa) Przetwarzanie i transmisja danych multimedialnych Transmisja jest procesem przesyłania dowolnej wiadomości lub ogólnie ciągu danych, między nadawcą (nadajnikiem) a adresatem (odbiornikiem) określoną metodą, zrozumiałą dla obu (kodowanie) i po określonej drodze (tzw. medium transmisyjne). W ogólnym przypadku moŝe być więcej niŝ jeden adresat nadawanej informacji. Źródło: wikipedia.org 3
Wymagania i cel przedmiotu Wymagania: znajomość programowania, analityczne i syntetyczne myślenie Cele przedmiotu: Poznanie technologii kompresji i transportu danych stosowanych we współczesnych standardach multimedialnych Umiejętność odczytywania i zapisywania formatów plików multimedialnych Umiejętność kodowania i dekodowania zawartości plików multimedialnych 4
Artur Przelaskowski, Kompresja danych Władysław Skarbek, Multimedia, algorytmy i standardy kompresji Adam Drozdek, Wprowadzenie do kompresji danych Strony internetowe 5
Zawartość wykładu 1. Wprowadzenie do kompresji i transmisji danych 2. Podstawy kompresji 3. Kodowanie Shannona Fano i Huffmana 4. Kodowanie arytmetyczne 5. Algorytmy słownikowe 6. Algorytm predykcji przez częściowe dopasowanie (PPM) 7. Transformata Burrowsa Wheelera (BWT) 8. Wybrane algorytmy specjalizowane 9. Dynamiczny koder Markowa (DMC) i algorytm kontekstowych drzew waŝonych (CTW) 10. Bezstratna kompresja obrazów 11. Stratna kompresja obrazów 12. Stratna kompresja dźwięku 13. Kompresja wideo 6
Wykład 1 Wprowadzenie do kompresji i transmisji danych Co to jest kompresja i co moŝna zyskać stosując kompresję? Początki kompresji Korpusy danych Podział algorytmów kompresji Przykłady Kilka przydatnych definicji (informacja, autoinformacja, entropia) 7
Kompresja danych 1 - polega na zmianie sposobu zapisu informacji w taki sposób, aby zmniejszyć redundancję i tym samym objętość zbioru, nie zmieniając przenoszonych informacji. Innymi słowy chodzi o wyraŝenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów. Działaniem przeciwnym do kompresji jest dekompresja. 1 Źródło wikipedia.org Kompresja to metoda reprezentowania danych w zwartej postaci 8
Po co stosować kompresję danych? Oszczędność miejsca przy magazynowaniu, czasu transmisji, pieniędzy, etc Zwiększona efektywność przy wyszukiwaniu danych, np. czas przeszukania skompresowanych danych moŝe być krótszy niŝ czas przeszukiwania pełnej reprezentacji (konieczne specjalne algorytmy) MoŜliwość fizycznej realizacji zagadnień lub rozwiązanie istniejących problemów 9
Przykład stosowania kompresji Bezzałogowa sonda kosmiczna Galileo wystrzelona została w 1989 roku przez amerykańską agencję kosmiczna NASA w celu badania planety Jowisz i jego księŝyców. W czasie lotu okazało się, Ŝe główna antena sondy nie rozłoŝyła się prawidłowo. Prawdopodobnie spowodowały to lata spędzone w magazynie (misja opóźniana o 3 lata). Zagroziło to realizacji zadań misji w układzie Jowisza. Pierwotnie planowano, Ŝe sonda będzie przekazywać zdjęcia co kilka minut. Aby umoŝliwić jakikolwiek transfer danych na Ziemię wykorzystano antenę pomocniczą o małej przepustowości informacji (16 bit/s). Sonda Galileo Źródło: wikipedia.org Po zastosowaniu techniki kompresji danych (10:1) i unowocześnieniu sieci anten odbiorczych na Ziemi zdołano przeprowadzić większość z zaplanowanych obserwacji. Dane przesyłane były z prędkością około 1,2 kbit/s. 10
Początki kompresji i transmisji Kompresja intuicyjna Język, mowa, Alfabet, Znaki dymne, Tamtamy, Alfabet Braille a XIX wiek ( ) Alfabet Morse a XIX wiek (.--/../-/.-/--) Podejście naukowe do kompresji dopiero w połowie XX wieku Claude Elwood Shannon A Mathematical Theory of Communication, Bell System Technical Journal, 1948 Prediction and entropy of printed English, Bell System Technical Journal, 1951 11
Alfabet Braille a Alfabet stworzony przez Louisa Braille a dla osób niewidomych. Składa się z wypukłych punktów ułoŝonych w 3 wierszach i dwóch kolumnach. Istnieje 2 6 kombinacji, z tym Ŝe nie wszystkie są uŝyteczne. W wersji oryginalnej zakodowano 26 liter alfabetu łacińskiego. Istnieją róŝne odmiany językowe. Niektóre kombinacje odpowiadają za całe słowa. MoŜliwość stosowania tych samych znaków w innym znaczeniu (znaki specjalne) Źródło: wikipedia.org 12
Alfabet Morse a Alfabet stworzony przez Samuela Morse a (twórcy telegrafu) do przesyłania wiadomości za pomocą impulsów pola elektrycznego Składa się z kropek i kresek (długość trwania kreski to czas trwania 3 kropek) Znaki oddzielone przerwą o długości trwania kreski, słowa oddzielone są trzema kreskami Długość pojedynczego znaku zmienna i nieustalona (np. ś to - ) Literom najczęściej występującym odpowiadają najkrótsze kody (e ) (t -) Literom najrzadziej występującym odpowiadają najdłuŝsze kody (np. z -- ) Kod dopasowany do języka angielskiego!!! Źródło: wikipedia.org 13
Alfabet Morse a Język angielski Język polski Litera Częstość występowania Częstość występowania Litera [%] [%] E 12,70 A 8,82 T 9,06 I 8,60 A 8,17 E 7,79 O 7,51 O 7,29............ J 0,15 Ć 0,51 X 0,15 F 0,21 Q 0,10 Ń 0,16 Z 0,07 Ź 0,08 Częstość występowania liter zaleŝy od języka. Podobną zaleŝność moŝna wyznaczyć dla słów Źródło: Sebastian Deorowicz, Politechnika Śląska 14
Deklaracja Praw Człowieka Język UŜytkowników Rozmiar [B] Rozmiar skompresowany [B] Mandaryński (Chiny) 885.000.000 12.821 3.393 Angielski 322.000.000 12.333 3.184 Hiszpański 266.000.000 13.944 3.566 Portugalski 182.000.000 13.412 3.616 Francuski 124.000.000 14.039 3.716 Niemiecki 121.000.000 14.023 3.692 Polski 44.000.000 13.941 3.882 Haitański 7.382.000 15.002 3.903 Esperanto 2.000.000 11.779 3.202 Totonaco (Meksyk) 80.000 15.735 3.359 Maori (Nowa Zelandia) 70.000 17.185 3.552 Widoczna jest nadmiarowość języków Źródło: Sebastian Deorowicz, Politechnika Śląska 15
Źródło szumu Komunikat 1 Sygnał 1 Sygnał 2 Komunikat 2 Nadajnik Koder Kanał transmisyjny Dekoder Odbiornik Źródło sygnału: analogowe cyfrowe powietrze przewody (np. Ethernet, linie telefoniczne, sieć) CD, DVD, taśmy magnetyczne pamięć operacyjna przestrzeń kosmiczna wizjer u sąsiadki z pierwszego piętra 16
Co moŝna skompresować? Teksty (np. Project Gutenberg) Mowa (np. w telefonii komórkowej, VoIP) Muzyka (np. piosenki w formacie MP3) Obrazy (np. GIF, JPEG) Wideo (np. filmy na DVD, divx, MPEG) Pliki wykonywalne (np. wersje instalacyjne oprogramowania) Bazy danych 17
Rozmiar danych cyfrowych Średniej długości tekst w kodzie ASCII (ok. 10 stron): Klatka obrazu w jakości telewizyjnej: Negatyw zdjęcia (3000*2000 pikseli, kolor 24-bity): Zdjęcie rentgenowskie (5000*6000 pikseli,12 bitów/piksel): Film wideo około 100 min i jakości DVD bez kompresji: Film wideo (ok. 100 min) jakości HDV bez kompresji: Film wideo (ok. 100 min) jakości UHDV bez kompresji: Dane z otrzymywane podczas programów kosmicznych i eksperymentów fizyki wysokich energii: <10 kb 0,75 MB 18 MB 45 MB 180 GB 850 GB 19 TB >500 GB dziennie!! 18
Zalety kompresji danych MoŜliwość przesłania tej samej informacji w krótszym czasie, np. zgranie plików od przyjaciółki, satelity telekomunikacyjne, itp. MoŜliwość przesłania większej liczby informacji w tym samym czasie, np. moŝliwość korzystania z zasobów sieci przez większą grupę uŝytkowników, rozmowy w telefonii komórkowej, VoIP, itp. MoŜliwość zmagazynowania większej ilości danych na nośniku (archiwizacja) Wygoda w operowaniu danymi (sortowanie, przeglądanie, itp.) 19
Wady kompresji danych Konieczność wykonania kompresji (czas) Konieczność wykonania dekompresji przed odczytem danych (czas) Wymagane znaczne zasoby sprzętowe lub układy dedykowane jako kodeki, szczególnie gdy niezbędna jest dekompresja w czasie rzeczywistym 20
Sposoby porównywania algorytmów kompresji Wiele algorytmów który jest najlepszy? Jak moŝna porównać algorytmy kompresji? Dane testowe: Własne dane testowe Predefiniowane korpusy danych (dane testowe), np. korpus Calgary Porównanie miar kompresji np.: stopień kompresji współczynnik kompresji średnia bitowa prędkość kompresji/dekompresji Wady: wiele kryteriów zaleŝnych od rodzaju danych jakie podlegają kompresji 21
stopień kompresji CR (ang. compression ratio) to stosunek rozmiaru pliku przed kompresja do rozmiaru pliku po kompresji, np. 10:1 współczynnik kompresji CP (ang. compression percentage) to wyraŝony w procentach stosunek rozmiaru danych (np. pliku) po kompresji do rozmiaru danych przed kompresją, np. 10% średnia bitowa BR (ang. bit rate) to stosunek rozmiaru pliku po kompresji wyraŝonego w bitach do rozmiaru pliku przed kompresja wyraŝonego w symbolach (np. bajtach), np. 3,11 bit/symbol Inne, np.: odporność strumienia danych skompresowanych na błędy transmisji, minimalny iloczyn: czas x BR, kodowanie hybrydowe, etc. 22
Korpusy danych Korpusy danych to predefiniowane zestawy danych testowych (zbiór plików), przygotowane przez osoby zajmujące się daną dziedziną. Zalety: Powszechne uŝycie, Łatwość porównania róŝnych algorytmów bez konieczności wykonywania całej serii badań, MoŜliwość porównania algorytmu w fazie jego projektowania Wady: Dynamiczny rozwój algorytmów powoduje szybkie starzenie się korpusów danych 23
Korpusy - rodzaje Przykłady stosowanych korpusów ogólnego przeznaczenia: Korpus Calgary (1989) Canterbury, Large Canterbury (1997) Archive Comparison Test (2002) Silesia (2003) Przykłady obrazów testowych: 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) 24
Korpus Calgary Zalety: uŝywany w wielu publikacjach, łatwo porównać algorytmy Wady: przestarzały (1989), pliki nieuŝywane obecnie, brak współczesnych formatów małe pliki, 25
Zalety i wady nowych korpusów Zalety: nowe formaty plików większe rozmiary plików adekwatne do współczesnych zastosowań Wady: uŝywany w niewielu publikacjach, trudno porównać algorytmy miary kompresji znane tylko dla kilku algorytmów moŝliwość złego dobrania danych 26
Uniwersalne MoŜliwość stosowania jednego algorytmu do danych róŝnych typów danych Z reguły gorszy współczynnik kompresji (przy danych binarnych nieznaczne pogorszenie) Dedykowane Stworzone do konkretnego zastosowania. Lepszy współczynnik kompresji Potrzeba stworzenia wielu algorytmów dla konkretnych danych Koszty opracowania algorytmu mogą przekraczać zyski z jego stosowania 27
Bezstratne Dane dekodowane są toŝsame z sygnałem przed kodowaniem Szerokie spektrum zastosowań Gorszy współczynnik kompresji Stratne Dane dekodowane nie są toŝsame z sygnałem przed kodowaniem Lepszy współczynnik kompresji Ograniczone spektrum zastosowań BZIP2, Deflate, Huffman, Kodowanie arytmetyczne, LZ77, LZ78, LZSS, LZMA, LZW, Move To Front, PNG, RLE, Transformata Burrowsa-Wheelera, PPM DCT, Falki, Kompresja fraktalna, MDCT, Transformata Karhunena Loeve Systemy kompresji stratnej obrazu: JPEG, MPEG, Windows Media Video (wmv) Systemy kompresji stratnej dźwięku: Vorbis (ogg), A/52 (AC3), MP1, MP2, MP3, Musepack (mpc), Windows Media Audio (wma), ATRAC (uŝywany w Minidisc) 28
Zastosowanie algorytmów bezstratnych Algorytmy bezstratne naleŝy stosować wszędzie tam, gdzie zaleŝy nam na wiernym odtworzeniu oryginału, np.: Tekst My jemy bułki -> Myjemy bułki Bazy danych Ma 200000 PLN -> Ma 00000 PLN Obrazy medyczne Nowotwór -> brak zmian klinicznych Programy Działający program -> błąd w programie Wyniki eksperymentów fizycznych Odkrycie nowego prawa -> brak wyników 29
Zastosowanie algorytmów stratnych Algorytmy stratne moŝna stosować wszędzie tam, gdzie nie zaleŝy nam na wiernym odtworzeniu oryginału, np.: Obrazy zdjęcia z aparatów cyfrowych i telefonów Filmy filmy do uŝytku własnego Muzyka przenośne odtwarzacze, mp3 30
Wejściowy ciąg danych (reprezentacja oryginalna) Modelowanie Reprezentacja pośrednia (model, opis) Kodowanie binarne bitowy ciąg wyjściowy (reprezentacja kodowa) Modelowanie to analiza danych pod kątem wyszukania informacji nadmiarowej (redundantnej). Modelowanie oparte jest na załoŝonym wcześniej modelu źródła, które wygenerowało dane. Istnieje wiele metod modelowania danych. Metody kodowania wykorzystują informację znalezioną w etapie modelowania. Metody kodowania oparte są na podstawach matematycznych. Istnieje wiele metod kodowania 31
Modelowanie i kodowanie 1 JakŜeŜ ja się uspokoję Pełne strachu oczy moje, Pełne grozy myśli moje, Pełne trwogi serce moje, Pełne drŝenia piersi moje JakŜeŜ ja się uspokoję... S. Wyspiański, JakŜeŜ ja się uspokoję JakŜeŜ ja się uspokoję Pełne strachu oczy moje, # grozy myśli #, # trwogi serce #, # drŝenia piersi # <wers 1>... S. Wyspiański, <wers 1> Modelowanie Kodowanie 32
Modelowanie i kodowanie Sekwencja danych wejściowych s wej = (2, 2, 2, 3, 3, 10, 10, 10, 10, 10, 11) s wyj = 0010, 0010, 0010, 0011, 0011, 1010, 1010, 1010, 1010, 1010, 1011 Modelowanie za pomocą pary (ilość powtórzeń, liczba) P 1 (s wej )=((3, 2), (2, 3), (5, 10), (1, 11)) (trzy bity = liczba powtórzeń 1, 4 bity liczba) s wyj = 0100010, 0010011, 1001010, 0001011 Modelowanie za pomocą wag związanych z częstością wystąpienia znaku P 2 (s wej )= {w(2) = 3, w(3) = 2, w(10) = 5, w(11) = 1)} pośrednie ciągi bitowe ζ(2) = 10, ζ(3) = 110, ζ(10) = 0, ζ(11) = 111 s wyj = 10, 10, 10, 110, 110, 0, 0, 0, 0, 0, 111 44 bity 28 bitów 20 bitów 33
Modelowanie i kodowanie ciąg dalszy Sekwencja danych wejściowych s wej = (2, 2, 2, 3, 3, 10, 10, 10, 10, 10, 11) s wyj = 0010, 0010, 0010, 0011, 0011, 1010, 1010, 1010, 1010, 1010, 1011 Reprezentacja róŝnicy pomiędzy wartością kodowaną, a wartością ją poprzedzającą P 3 = {2, 0, 0, 1, 0, 7, 0, 0, 0, 0, 1} UŜycie wag, jak poprzednio pozwala na zapis: P 3 = {w(2) = 1, w(0) = 7, w(1) = 2, w(7) = 1} pośrednie ciągi bitowe ζ(2) = 110, ζ(0) = 0, ζ(1) = 10, ζ(7) = 111 s wyj = 110, 0, 0, 10, 0, 111, 0, 0, 0, 0, 10 44 bity tylko 17 bitów! Policzmy jak dobrzy jesteśmy: CR = 44/17 = 2,6:1 BR = 17 bitów / 11 symboli = CP = (1-1/CR)*100% = 61% = 1,55 bit / symbol 34
Kilka definicji, które warto znać jest pojęciem pierwotnym (nie ma definicji). Informacją nazywamy wszystko to, co moŝna zuŝytkować do bardziej sprawnego wyboru działań prowadzących do realizacji określonego celu. jest względna i ma hierarchiczny charakter (sygnał elektryczny ciąg bitów bajt ciągi słów instrukcje procedury programy sesja pracy komputera) Zbiór informacji elementarnych (alfabet) A A = {a, b, c, d} Ciąg informacji, wiadomość (sekwencja symboli / liter z alfabetu A) s(a) = (a, d, a, d, d, b, c,...) 35
Jak pomierzyć informację jutro będzie wschód słońca wygrałem 10 milionów pada deszcz nie muszę podlewać ogródka pada deszcze więc nie muszę podlewać ogródka pada deszcz lubię gry komputerowe 36
Kilka definicji, które warto znać (informacja własna) związana z wystąpieniem zdarzenia A, którego prawdopodobieństwo wystąpienia wynosi P(A) określana jest zaleŝnością (Hartley 1928): I ( A) = log n 1 P ( A) = log n P( A) Jednostka, w której mierzona jest autoinformacja zaleŝy od podstawy logarytmu: n = 2 bit (ang. bit [binary digit]), n = e nat (ang. nat [natural digit]), n = 10 hartley (od nazwiska Ralpha Hartleya) I 10 9 8 7 6 5 4 3 2 1 0 funkcja autoinformacji 0 1 P 37
Obliczanie autoinformacji Przykład: Rzut monetą I ( A) P(Orzeł) = P(Reszka)=1/2 = log 2 I( A) = log P 2 1 ( A) 1 2 = log = log 2 2 2 P 1 I(Orzeł) = I(Reszka) = 1 bit ( A) = 1 A ile wynosi autoinformacja dla rzutu kostką??? 38
stowarzyszona ze zbiorem n niezaleŝnych zdarzeń A = {a 1,..., a n } (zbiór informacji elementarnych, alfabet) i ze zbiorem prawdopodobieństw ich zajścia P = {p(a 1 ),..., p(a n )} jest definiowana jako: ( A) = P( a ) ( ) ( ) ( ) i I ai = P ai log P ai H 2 Innymi słowy entropia jest to średnia informacja własna związana z eksperymentem losowym polegającym na wygenerowaniu symbolu przy załoŝonych prawdopodobieństwach wygenerowania symboli z alfabetu 39
Policzmy entropię Dla rzutu monetą: H = P P(orzeł) = P(reszka) = ½ I(orzeł) = I(reszka) = 1 bit 1 ( a ) I( a ) = 1bit + 1bit = bit i i 1 2 1 2 A ile wynosi entropia dla rzutu kostką??? 40
dla systemu dwójkowego A = {a 1, a 2 } P(a 1 ) = p P(a 2 ) = 1 p Cechy funkcji: Funkcja ciągła Funkcja symetryczne wzdłuŝ linii przechodzącej przez p=0,5 Dolne ograniczenie 0 bit Górne ograniczenie log 2 (n) bit 41
Dziękuję za uwagę sekalski@dmcs.pl 42