Kompresja danych - wprowadzenie. Konieczno kompresji. Definicja, typy kompresji. Modelowanie 4. Podstawy teorii informacji 5. Kodowanie
Konieczno kompresji danych Due rozmiary danych Niewystarczajce przepustowoci sieci Przykład encyklopedia multimedialna Tekst 00.000 4000 obrazów (kolor) 400 mapek 0 krótkich animacji 4000 sek. dwiku 40 filmów po 00 sek. RAZEM 00000* KB 4000*5*5*4bit 400*5*5*6bit 0*5*5*6bit*6fps*00s 4000s*75KB/s 40*5*5*4bit*0fps*00s 00 MB GB 00 MB 6 GB 700 MB 90 GB 0. GB
Konieczno kompresji danych c.d. Tekst : ZIP 00 MB 00 MB Obraz kolor 5: JPEG GB 00 MB Mapa 0: JPEG 00 MB 0 MB Animacja 50: MPEG 6 GB 0 MB Dwik 7: MP 700 MB 00 MB Film 45: MPEG 90 GB GB RAZEM 0. GB.74 GB Kompresja czyni projekt realnym.
Konieczno kompresji danych c.d. Ograniczenia na przepustowo Video-konferencje; format CIF Wymagana przepustowo (bez kompresji): 5*88 pikseli/ramk*.5 byte/piksel * 0 ramek/s = 4.8 Mbps Realizacja: norma ITU-T H.6 przepustowo n*64 kbps, dla n= działa dobrze Radio FM przez Internet: Wymagana przepustowo (bez kompresji):.05 khz * 6 bit/próbk * = 689.06 kbps Ale radio działa poprawnie przy przepustowoci 56 kbps Kompresja przezwycia ograniczenia przepustowoci
Definicja kompresji Kompresja sztuka reprezentowania danych w zwizłej formie Dane znaki w pliku tekstowym, próbki mowy, muzyki, reprezentacje pikseli obrazu itp. Kompresja moliwa, bo w danych jest nadmiar informacji (redundancja) Jeden z pierwszych przykładów alfabet Morse a Zasada: znaki czsto wystpujce krótkie kody, znaki rzadsze długie kody e a q j
Definicja kompresji c.d. Kompresja podanie dwóch algorytmów: co: X in X C dec: X C X out X in X C Przechowywanie, transmisja X out X C
Typy kompresji Wyrónik relacja midzy X in i X out Jeeli wymagamy, by X in = X out kompresja bezstratna Stosowana tam, gdzie nie mona dopuci do rónicy midzy danymi a ich rekonstrukcj Typowe zastosowanie tekst, rekordy bazy danych a take obrazy, które podlegaj dalszej obróbce (zdjcia rentgenowskie, zdjcia satelitarne itp.) Jeeli dopuszczamy, by X in = X out kompresja stratna Zwykle pozwala na znacznie wyszy poziom upakowania Typowe zastosowania: mowa, dwik, obraz, sekwencje video
Moliwe kryteria Miary jakoci kompresji Złoono algorytmu Ilo potrzebnej pamici Szybko działania na komputerze danego typu Stopie kompresji Podobiestwo danych wyjciowych i ich rekonstrukcji Kompresja bezstratna Stopie kompresji = rozmiar(x in )/rozmiar(x C ) Miara redukcji = (rozmiar(x in ) rozmiar(x C ))/rozmiar(x in ) % Kompresja stratna Dodatkowo rozwaamy zniekształcenia Optymalizujemy stopie kompresji przy danych zniekształceniach (lub zniekształcenia przy zadanym poziomie kompresji)
Fazy konstruowania algorytmu Kompresja usunicie redundancji z opisu danych. Aby to było moliwe musimy rozumie struktur danych Pierwsza faza procesu kompresji to modelowanie stworzenie zbioru reguł opisujcych dane Druga faza kodowanie. Kodujemy zarówno opis modelu jak te opis informacji jak dane róni si od modelu
Przykład Dany jest cig danych x n : Modelowanie - przykłady 9 4 5 7 6 7 0 Model: x n = n + 8 e n = x n - x n Cig odchyle: 0 0 - - 0 - -
Przykład Modelowanie przykłady c.d. Dane: 7 8 9 8 6 7 9 8 0 4 6 8 Nie ma tak prostej reguły jak poprzednio. Ale popatrzmy na cigi rónic: e n = x n x n- Wartoci cigów rónic: 7 - - - Przewidywanie wartoci biecej na podstawie poprzednich techniki kodowania przedykcyjnego
Modelowanie przykłady c.d. Przykład Rozwaamy nastpujcy cig: ALA MA KOTA LAMOTA A OLA MA ASA MOTASA 8 rónych znaków bity/znak, 8 znaków, 4 bitów Kodowanie o zmiennej długoci; długo zalena od czstoci A L 00 0 6 9 Model probalistyczny; _ 8 0 6 M K O T 4 4 00 0 0 5 r. bitowa =.68 st. kompresji =. : S 0 0 0
Podstawy teorii informacji C.E. Shannon, Bell Labs, 948 A zdarzenie losowe zachodzce z prawdopodobiestwem P(A). Wtedy informacja zwizana z tym zdarzeniem: i(a) = log b (/P(A)) Wybór b wybór jednostki informacji. Gdy b= jednostka: bit Intuicje (tego oczekujemy): Zdarzenie pewne nie niesie adnej informacji Im mniejsze prawdopodobiestwo, tym wicej informacji Gdy A, B zdarzenia niezalene, to informacja zwizana z zajciem obu zdarze równa jest sumie informacji zwizanych z kadym z nich Realizacja tych oczekiwa: Gdy S zdarzenie pewne, to P(S)= i(s) = 0 Gdy P(A) maleje i(a) ronie A, B niezalene P(AB) = P(A) P(B) i(ab) = i(a) + i(b)
Entropia Podstawy teorii informacji c.d. Eksperyment moliwe wyniki: zdarzenia A i, ich suma zdarzenie pewne. Wtedy entropia eksperymentu: P Ai ) i( Ai ) = H = P( A ) log ( P( A )) i ( i i W kompresji ródło generuje symbole (litery) ze zbioru symboli (alfabetu) o rozmiarze m. Wtedy entropia ródła: i H ( S ) = G n = lim n n G n... P( X i = i,..., X n = in ) log P( X = i,..., X n = i i i n i n )
Podstawy teorii informacji c.d. Gdy wszystkie elementy cigu maj identyczny i niezaleny rozkład (iid) to formuła na entropi upraszcza si do formuły na entropi rzdu: H ( X S ) = P( X ) log ( P( )) Załoenie (iid) wane przykład: Gdy patrzymy wyraz po wyrazie: P() = P() = 0.5; P() = 0.5, co daje H =.5 minimalna ilo bitów = 0*.5 = 0. Gdy patrzymy na cigi po symbole: P() = P() = 0.5, co daje H = minimalna ilo bitów = 0 * = 0 Shannon: entropia jest miar redniej iloci bitów potrzebnych do zakodowania cigu kolejnych symboli generowanych przez ródło
Kodowanie Kodowanie przyporzdkowanie elementom alfabetu cigów binarnych, tak by zredukowa całkowit ilo bitów potrzebn do reprezentacji rednia ilo bitów na symbol wana, ale nie najwaniejsza kody musz by jednoznacznie dekodowalne Kod 4 0 Litera Prawdop. Kod Kod Kod a 0.5 0 0 0 a 0.5 0 0 0 a 0.5 00 00 0 0 a 4 0.5 0 r. długo.5.5.75.875 Kody i nie s jednoznacznie dekodowalne.
Kodowanie c.d. Kod natychmiastowy, kod 4 prawie natychmiastowy Natychmiastowo wygodna ale niekonieczna przykład: a 0 a 0 a Odkodujmy cig: 0 Pierwsze słowo to moe by a lub a aby to rozstrzygn musimy odkodowa cały cig.
Test jednoznacznej dekodowalnoci a, b słowa kodowe o długoci k, n, n>k. Gdy pierwsze k bitów słowa b jest identyczne z a, to a nazywamy prefiksem b, za pozostałe n k bitów b wiszcym sufiksem Problem z dekodowalnoci, gdy wiszcy sufiks = słowo kodowe Test dekodowalnoci: Rozwaamy zbiór wszystkich słów kodowych. Dla kadej pary sprawdzamy, czy jedno z nich nie jest prefiksem drugiego. Jeeli tak jest to wiszcy sufiks dodajemy do listy Powtarzamy t procedur dla rozszerzonej listy. Postpujemy tak dopóty, dopóki Otrzymamy wiszcy sufiks równy słowu kodowemu Nie ma ju nowych wiszcych sufiksów Pierwszy przypadek odpowiada kodowi który nie jest jednoznacznie dekodowalny, za drugi oznacza, e kod jest jednoznacznie dekodowalny
Kody prefiksowe Kod w którym adne słowo kodowe nie jest prefiksem innego kod prefiksowy. Kod taki jest jednoznacznie dekodowalny Jak najprociej sprawdzi czy kod jest kodem prefiksowym drzewo binarne kodu a a a a a a 4 a a 4 Kod Kod 4 Kod prefiksowy słowa kodowe = tylko wierzchołki zewntrzne
Kody prefiksowe c.d. Kody prefiksowe najwygodniejsze czy mona si do nich ograniczy? Tw.. C kod o N słowach kodowych o długociach l, l,..., l N. Jeeli C jednoznacznie dekodowalny, to zachodzi nierówno: K( C) N l = i i / Tw.. Dla kadego zbioru liczb całkowitych l, l,..., l N spełniajcych nierówno jak w Tw. mona znale kod prefiksowy o długociach słów wynoszcych l, l,..., l N. Wniosek wystarczy bra pod uwag tylko kody prefiksowe.