Wykład 5. Kompresja danych
|
|
- Zofia Matysiak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Wykład 5 Kompresja danych 1
2 Metody kompresji - przegląd Co to jest kompresja danych Definicje Kompresja bezstratna i stratna Kody o stałej i zmiennej długości Entropia i warunek Shannon a Metody kodowania Kody Huffmana Kodowanie arytmetyczne Kody Lempel a-ziv a (LZW) Poszukiwanie w tekście kodowanym Złożoność Kołmogorowa 2
3 Co to jest kompresja danych? Przetworzenie danych do bardziej zwartej postaci Powinny zajmować mniej miejsca niż poprzednio Po co kompresować dane? Oszczędność przy składowaniu danych (HDD, etc.) Bardziej efektywne przesyłanie (sieci komputerowe) 3
4 Co to jest kompresja tekstu? Zadanie: Mamy tekst s Σ n Chcemy znaleźć wersję skompresowaną tego tekstu c Σ m, takąże m < n Taką, że możliwe jest odtworzenie s na podstawie c Czyli: Szukamy odwracalnej funkcji kompresji f : Σ * Σ * Fakt: Większości tekstów nie da się efektywnie skompresować Dowód: Można skonstruować ( Σ m+1-1)/( Σ -1) o łańcuchów długości nie przekraczającej m Istnieje Σ n łańcuchów o długości n Czyli tylko Σ m-n+1 /( Σ -1)-ta część łańcuchów znajduje jednoznaczny odpowiednik Np. dla Σ = 256 i m=n-10 daje A to oznacza, ze tylko ok cześć wszystkich plików n- bajtowych może zostać skompresowania do rozmiaru n-10 4
5 Czemu zatem udaje się kompresować teksty? Zwykle litery w tekście występują ze zróżnicowaną częstością Dla j. angielskiego(cryptographical Mathematics, Robert E. Lewand): e: 12%, t: 10%, a: 8%, i: 7%, n: 7%, o: 7%... k: 0.4%, x: 0. 2%, j: 0. 2%, q: 0. 09%, z:0. 06% Znaki specjalne ($,%,#) występują rzadko Niektóre znaki występują sporadycznie (są właściwie niewykorzystywane), np. początkowe znaki kodu ASCII Teksty (pliki) podlegają pewnym regułom Słowa się powtarzają (występują jedynie słowa z pewnego słownika) Nie każda kombinacja słów jest możliwa Zdania mają określoną strukturę (gramatyka) Programy korzystają z określonych słów (elementy języka programowania) Wzorce są często powielane Obrazy kodowane cyfrowo mają jednolite obszary (bez zmian koloru) 5
6 Najprostszy przykład Przyjmijmy, że kod znaku w ASCII zajmuje 1 bajt Przypuścimy, że mamy tekst składający się ze 100 znaków a Tekst powinien zajmować 100 bajtów Przechowując tekst w postaci 100a możemy dostać dokładnie taką samą informację Rozmiar nowego pliku wyniesie 4 bajty Oszczędność: 4/100 96% 6
7 Kompresja bezstratna W 100% odwracalna, poprzez dekompresję można odzyskać oryginalne dane Poprzedni przykład pokazywał taką kompresję Musi być stosowana tam, gdzie istotna jest integralność danych Przykłady oprogramowania: winzip, gzip, compress, bzip, GIF 7
8 Kompresja stratna stratna oznacza, że oryginalna informacja nie może być w całości odzyskana Zmniejsza rozmiar przez permanentne usunięcie pewnej części informacji Po dekompresji dostajemy jedynie część początkowej informacji (ale użytkownik może tego wcale nie zauważyć) kiedy stosujemy metody kompresji stratnej? dla plików audio, obrazów, video formaty: jpeg, mpeg 8
9 Kody Metody reprezentacji informacji Kod dla pojedynczego znaku często nazywany jest słowem kodowym Dla kodów binarnych Każdy znak reprezentowany jest przez unikalne binarne słowo kodowe Kody o stałej długości słowa Długość słowa kodowego dla każdego znaku jest taka sama Np. ASCII, Unicode 9
10 Kody o stałej długości Przypuśćmy, ze mamy n znaków Jaka jest minimalna ilość bitów dla kodów o stałej długości? log 2 n Przykład: {a, b, c, d, e}; 5 znaków log 2 5 = 2.3 = 3 bity na znak Możemy zakodować np. tak: a=000, b=001, c=010, d=011, e=100 10
11 Kody o zmiennej długości Długość słowa kodowego może być różna dla różnych znaków Znaki występujące częściej dostają krótsze kody Znaki występujące sporadycznie dostają długie kody Przykład: a b c d e f częstość kod
12 Kody o zmiennej długości Musimy mieć pewność, że żadne słowo kodowe nie występuje jako prefix innego Potrzebujemy kodów typu prefixowego (prefix-free) Ostatni przykład taki był Kody prefix-free pozwalają na jednoznaczne dekodowanie Np.: odpowiada w poprzednim przykładzie ciągowi aabe Metoda Huffmana jest przykładem konstrukcji takiego kodu (będzie pokazana później) 12
13 Entropia Entropia jest jednym z podstawowych pojęć teorii informacji Za ojca teorii informacji uważa się Claude a E. Shannona, który prawdopodobnie po raz pierwszy użył tego terminu w 1945 roku, w swojej pracy zatytułowanej "A Mathematical Theory of Cryptography". Natomiast w 1948 roku, w kolejnej pracy pt. "A Mathematical Theory of Communication" przedstawił najważniejsze zagadnienia związane z tą dziedziną nauki. Entropia pokazuje, ze istnieje ograniczenie dla bezstratnej kompresji 13
14 Entropia Ta granica jest nazywana entropia źródła H H określa średnią liczbą bitów niezbędną dla zakodowania znaku Niech n będzie rozmiarem alfabetu, p i prawdopodobieństwem występowania (częstością) i-tego znaku alfabetu. Wtedy entropia określona jest wzorem: H = n p log p i 2 i i= 1 14
15 15 Przykład 1 d częstość e c b a znak 13 1 log 13 1 log log log 13 4 log = H
16 Algorytm kodowania Huffmana Huffman wymyślił sprytną metodę konstrukcji optymalnego kody prefixowego (prefix-free) o zmiennej długości słów kodowych Kodowanie opiera się o częstość występowania znaków Optymalny kod jest przedstawiony w postaci drzewa binarnego Każdy węzeł wewnętrzny ma 2 potomków Jeśli C jest rozmiarem alfabetu to ma ono C liści i C -1 węzłów wewnętrznych 16
17 Algorytm kodowania Huffmana Budujemy drzewo od liści (bottom-up) Zaczynamy od C liści Przeprowadzamy C -1 operacji łączenia Niech f [c] oznacza częstość znaku c w kodowanym tekście Wykorzystamy kolejkę priorytetową Q, w której wyższy priorytet oznacza mniejszą częstotliwość znaku: GET-MIN(Q) zwraca element o najniższej częstości i usuwa go z kolejki 17
18 Algorytm Huffmana wejście: alfabet C i często stości f [ ] wyjście: drzewo kodów optymalnych dla C HUFFMAN(C, f ) n C Q C for i 1 to n-1 z New-Node( Node( ) x z.left GET-MIN(Q) y z.right GET-MIN(Q) f [z] f [x] + f [y] INSERT(Q, z) return GET-MIN(Q) Czas wykonania O(n lg n) 18
19 Kody Huffmana Kodowanie Huffmana Jest adaptowane dla każdego tekstu Przykład kodowania Huffmana: tekst: Składa się z m a n a m a m a p a Słownika, mapującego każdą literę tekstu na ciąg binarny Kod binarny (prefix-free) t i p i t i p i Prefix-free Korzysta się z łańcuchów o zmiennej długości s 1,s 2,...,s m, takich że żaden z łańcuchów s i nie jest prefixem s j znak a i częstość 5 4 kod p m t Zakodowany tekst: n m a n a m a m a p a t i p i t i p i 19
20 Budowanie kodów Huffmana Znajdujemy częstości znaków Tworzymy węzły (wykorzystując częstości) powtarzaj Stwórz nowy węzeł z dwóch najrzadziej występujących znaków (połącz drzewa) Oznacz gałęzie 0 i 1 znak a i p m t n częstość Zbuduj kod z oznaczeń gałęzi znak kod a 10 i 01 p 111 m 000 t 001 n p n a i t m
21 Poszukiwanie w kodach Huffmana Niech u będzie rozmiarem skompresowanego tekstu Niech v będzie rozmiarem wzorca (zakodowanego na podstawie słownika) KMP może odnaleźć wzorzec w kodach Huffmana w czasie O(u+v+m) Zakodowanie wzorca zajmie O(v+m) kroków Budowanie prefixów zajmie czas O(v) Poszukiwanie na poziomie bitowym zajmie czas O(u+v) Problem: Algorytm rozważa bity, a można działać na poziomie bajtów 21
22 Kodowanie arytmetyczne - wprowadzenie Pozwala na mieszanie bitów w sekwencji komunikatu Pozwala na redukcję bitów potrzebnych do kodowania do poziomu: n l < 2 + s i i= 1 n- ilość znaków, S i ilość wystąpień i-tego znaku Wykorzystuje się je w PPM, JPEG/MPEG (opcja), DMM 22
23 Kodowanie arytmetyczne (przedziały) Dla każdego znaku komunikatu przypisujemy podprzedział przedziału [0,1). np. bacbabcbcb c =.3 b =.5 a =.2 i 1 j= 1 f ( i) = p( j) f(a) =.0, f(b) =.2, f(c) =.7 Dla każdego komunikatu przedział ten nazywa się przedziałem komunikatu(dla b jest to w przykładzie[.2,.7)) 23
24 Kodowanie arytmetyczne (kolejne przedziały) Kodując komunikat korzystamy z zależności: l = f l = l s f s = p s = s p i i i i 1 1 i i 1 i Po każdym znaku przedział jest zawężany o współczynnik p i. Ostateczny rozmiar komunikatu to: s n = n i= 1 Wynikowy przedział dla komunikatu nazywany jest przedziałem sekwencji p i 24
25 Przykład Kodujemy komunikat: bac c = c = c =.3 b =.5 b =.5 b = a = a = a =.2 Wynikowy przedział to [.27,.3) 25
26 Przedział komunikatu jest unikalny Istotna własność: przedziały wynikowe dla różnych komunikatów o długości n są zawsze rozłączne Stąd: podanie dowolnej liczby z przedziału komunikatu jednoznacznie identyfikuje ten komunikat Dekodowanie jest procesem podobnym do kodowania, odczytujemy znak i zawężamy przedział 26
27 Przykład dokodowania Dekodujemy liczbę 0.49, znamy początkowe przedziały i długość komunikatu 3: c =.3 b = c =.3 b = c =.3 b = a = a = a =.2 Komunikat to bbc. 27
28 Reprezentacja przedziału Ułamkowa reprezentacja binarna:. 75 =. 11 1/ 3 = / 16 = Tak więc możemy korzystać z krótszej ułamkowej reprezentacji binarnej dla wartości z przedziału dla komunikatu. np. [0,.33) =.01 [.33,.66) =.1 [.66,1) =.11 28
29 Reprezentacja przedziału Ułamki binarne można uważać za reprezentację przedziałów: min max interval [. 75, 10. ) [. 625,. 75) Będziemy to nazywać przedziałem kodowym. Lemat: Jeśli zbiór przedziałów kodowych jest parami rozłączny, odpowiadające im kodowanie tworzy kod prefixowy. 29
30 Wybór przedziałów kodowania Aby utworzyć kod prefixowy znajdujemy takie ułamki binarne, dla których przedziały kodowe zawierają się w przedziałach komunikatów Przedział komunikatu Przedział kodowy (.101) np. [0,.33) =.00 [.33,.66) =.100 [.66,1) =.11 30
31 Kody Ziv-Lempel-Welch (LZW) Kody z tej rodziny (Ziv-Lempel-Family) LZ77, LSZZ, LZ78, LZW, LZMZ, LZAP Literatura LZW: Terry A. Welch: "A Technique for High Performance Data Compression", IEEE Computer vol. 17 no. 6, Juni 1984, p LZ77 J. Ziv, A. Lempel: "A Universal Algorithm for Sequential Data Compression", IEEE Transactions, p LZ78 J. Ziv, A. Lempel: "Compression of Individual Sequences Via Variable-Rate Coding", IEEE Transactions on Information, p Znane jako komenda Unix a: compress Wykorzystują: Struktury drzewiaste - TRIE 31
32 Trie = retrieval TREE Drzewo Przechowuje tekst/pozwala zakodować tekst Pozwala na efektywne kodowanie Struktura Krawędzie oznaczone przez litery Węzły ponumerowane Mapowanie Każda krawędź koduje słowo tekstu Tekst dla węzła odczytywany z krawędzi po drodze od korzenia do tego węzła 1 = m 6 = at W przeciwnym kierunku: każde słowo prowadzi do pewnego liścia (albo przynajmniej jakiś prefix musi prowadzić do liścia) it = 11 manaman - m prowadzi do 1 0 m a n i t m n t p t p kodowanie manamanatapitipitipi 1,2,3,4,5,6,7,8,9,10,11,12 lub 1,5,4,5,6,7,11,10,11,10,8 Dekodowanie 5,11,2 an, it, a = anita i 12 32
33 Budowa drzewa TRIE przy pomocy LZW LZW Pracuje na poziomie bajtów Rozpoczynamy od drzewa o 256 liściach a, b,... oznaczonych a, b,... LZW-Trie-Builder(T) 1. n length(t) 2. i 1 3. TRIE start-trie 4. m ilość węzłów w TRIE 5. u root(trie) 6. while i n do 7. if brak krawędzi oznaczonej T[i] poniżej u then 8. m m+1 9. dołącz liść m do u z etykietą krawędzi T[i] 10. u root(trie) 11. else 12. u węzeł poniżej u z etykietą krawędzi T[i] 13. i i +1 a a b b - c c d d z... z przykład: nanananananana a a... a na - n n po przeczytaniu: na... 33
34 Budowa drzewa TRIE przy pomocy LZW LZW Pracuje na poziomie bajtów Rozpoczynamy od drzewa o 256 liściach a, b,... LZW-Trie-Builder(T) 1. n length(t) 2. i 1 3. TRIE start-trie 4. m ilość węzłów w TRIE 5. u root(trie) 6. while i n do 7. if brak krawędzi oznaczonej T[i] poniżej u then 8. m m+1 9. dołącz liść m do u z etykietą krawędzi T[i] 10. u root(trie) 11. else 12. u węzeł poniżej u z etykietą krawędzi T[i] 13. i i +1 przykład: nanananananana a a... po: nanananananana dalej po: nanananananana a - n na n na... pozostało do przeczytania: nanananananana 34
35 Kodowanie za pomocą LZW LZW-Encoder(T) 1. n length(t) 2. i 1 3. TRIE start-trie 4. m ilość węzłów w TRIE 5. u root(trie) 6. while i n do 7. if brak krawędzi oznaczonej T[i] poniżej u then 8. output (u,t[i]) 9. m m dołącz liść m do u z etykietą krawędzi T[i] 11. u root(trie) 12. else 13. u węzeł poniżej u z etykietą krawędzi T[i] 14. i i od 16. if u root(trie) then 17. output (u) start-trie = 256 liści zakodowanych jako 0,1,2,..,255 35
36 Przykład kodowania LZW LZW-Encoder(T) 1. n length(t) 2. i 1 3. TRIE start-trie 4. m ilość węzłów w TRIE 5. u root(trie) 6. while i n do 7. if brak krawędzi oznaczonej T[i] poniżej u then 8. output (u,t[i]) 9. m m dołącz liść m do u z etykietą krawędzi T[i] 11. u root(trie) 12. else 13. u węzeł poniżej u z etykietą krawędzi T[i] 14. i i od 16. if u root(trie) then 17. output (u) a m m a n 258 n n t 0 a p i i t 261 t p t 262 Kodowanie dla m a n a m a n a t a p i t i p i t i p i (m,a) (n,a) (256,n) (a,t) (a,p) (i,t) (i,p) (261,i) (p,i) ma na (ma)n at ap it ip (it)i pi a i 263 p i p
37 Dekoder LZW-Decoder(Code) 1. i 1 2. TRIE start-trie 3. m for i 0 to 255 do C(i)= i od 5. while not end of file do 6. (u,c) read-next-two-symbols(code); 7. if c exists then 8. output (C(u), c) 9. m m dołącz liść m do krawędzi c 11. C(m) (C(u),c) 12. else 13. output (C(u)) 14. od Dla ostatniego łańcucha kodu nie tworzy się nowego węzła w drzewie, ale wyprowadza łańcuch a m m a n 258 n n t 0 a p i i t 261 t p t 262 Kodowanie dla m a n a m a n a t a p i t i p i t i p i (m,a) (n,a) (256,n) (a,t) (a,p) (i,t) (i,p) (261,i) (p,i) ma na (ma)n at ap it ip (it)i pi a i 263 p p i
38 Złożoność obliczeniowa LZW Kodowanie może być realizowane w czasie O(n) n długość kodowanego tekstu Dekodowanie może być realizowane w czasie O(n) n długość nieskompresowanego tekstu tekstu Pamięć potrzebna do kodowania jest liniowo zależna od rozmiaru zakodowanego tekstu LZW można łatwo implementowana sprzętowo Software nie jest opatentowany Bardzo popularny, np. compress dla UNIX-a LZW możne powtórnie kodować np. kodami Huffmana Poszukiwanie w kodach LZW jest kłopotliwe Kody oparte o tekst (adaptatywne) Dla poszukiwania w zakodowanym tekście istnieje liniowa ilość możliwości zakodowania wzorca 38
39 Poszukiwanie idealnego kodowania Przykład: rozważmy tekst 128 bajtowy: abbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabba abbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabba Można go zakodować przy pomocy 16 bajtów (plus dodatkowy bajt na słownik): To nie jest najlepszy możliwy sposób kodowania takiego tekstu np. korzystając z formy (abba)^32 można zrobić to przy pomocy 9 bajtów Idealny kod: Samorozpakowujący się program dla łańcucha x (wykonuje się bez wejścia, na wyjściu produkuje x) Tak więc minimalny taki program będzie tym, czego szukamy Złożoność Kołmogorowa K(x) dla łańcucha x podaję długość takiego programuj dla x 39
40 Złożoność Kołmogorowa Czy złożoność Kołmogorowa zależy od języka programowania? Nie, o ile język jest uniwersalny, tj. program może być symulowany na maszynie Turinga Własność: Niech K 1 (x) i K 2 (x) oznaczają złożoności Kołmogorowa dla dwóch uniwersalnych języków programowania. Wtedy istnieje stała c, taka że dla każdego łańcucha x: K 1 (x) K 2 (x) + c 40
41 Dowód własnści Dowód: Niech M 1 będzie poszukiwanym programem dla x w pierwszym języku Niech U będzie uniwersalnym programem w drugim języku symulującym maszynę M 1 dla pierwszego języka Wyjściem U(M 1,ε) będzie wtedy x Można więc znaleźć maszynę M 2 o długości U + M 1 +O(1) o tej samej funkcjonalności co U(M 1,ε) z lematu o translacji (twierdzenie S mn ) Ponieważ U ma niezmienny rozmiar więc maszyna ta spełnia założenia lematu. 41
42 Algorytm Amira, Bensona i Faracha Let Sleeping Files Lie Pomysł Zbudować drzewo LZW-Trie, ale nie dekodować Skorzystać z KMP-Matcher dla węzłówt LZW-Trie Przygotować strukturę danych w oparciu o wzorzec m Wtedy czytać tekst i modyfikować tę strukturę Cel: czas wykonania O(n + f(m)) gdzie n długość kodu f(m) pewien wielomian zależny od wzorca m Dla dobrze skompresowanego kodu i f(m)<n powinno to by c szybsze niż dekodowanie i przeszukiwanie zdekodowanego tekstu 42
0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.
KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych
Bardziej szczegółowoTemat: Algorytm kompresji plików metodą Huffmana
Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik
Bardziej szczegółowoAlgorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne
Algorytmy kompresji Kodowanie Huffmana, kodowanie arytmetyczne Kodowanie arytmetyczne Peter Elias 1923-2001 Kodowanie arytmetyczne to metoda kodowania źródłowego dyskretnych źródeł sygnałów, stosowana
Bardziej szczegółowoKodowanie i kompresja Streszczenie Studia dzienne Wykład 9,
1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej
Bardziej szczegółowoKompresja bezstratna. Entropia. Kod Huffmana
Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)
Bardziej szczegółowoGranica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35
Kody Marek Śmieja Teoria informacji 1 / 35 Entropia Entropia określa minimalną statystyczną długość kodowania (przyjmijmy dla prostoty że alfabet kodowy A = {0, 1}). Definicja Niech X = {x 1,..., x n }
Bardziej szczegółowoKody Huffmana. Konrad Wypyski. 11 lutego 2006 roku
Kody Huffmana Konrad Wypyski 11 lutego 2006 roku Spis treści 1 Rozdział 1 Kody Huffmana Kody Huffmana (ang. Huffman coding) to jedna z najprostszych i najłatwiejszych w implementacji metod kompresji bezstratnej;
Bardziej szczegółowoWygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje
Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Witold Tomaszewski Instytut Matematyki Politechniki Śląskiej e-mail: Witold.Tomaszewski@polsl.pl Je n ai fait celle-ci plus longue
Bardziej szczegółowoteoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015
teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 1 zakres materiału zakres materiału 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja.
Bardziej szczegółowoKompresja Kodowanie arytmetyczne. Dariusz Sobczuk
Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany
Bardziej szczegółowoWstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004
4 marca 2004 Podstawowe oznaczenia i definicje Wymagania wobec kodu Podstawowa idea Podsumowanie Podstawowe oznaczenia i definicje Podstawowe oznaczenia i definicje: alfabet wejściowy: A = {a 1, a 2,...,
Bardziej szczegółowoKodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski
Kodowanie Huffmana Platforma programistyczna.net; materiały do laboratorium 24/5 Marcin Wilczewski Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny
Bardziej szczegółowoKodowanie informacji
Kodowanie informacji Tomasz Wykład 4: kodowanie arytmetyczne Motywacja Podstawy i własności Liczby rzeczywiste Motywacje 1 średnia długość kodu Huffmana może odbiegać o p max + 0.086 od entropii, gdzie
Bardziej szczegółowoNierówność Krafta-McMillana, Kodowanie Huffmana
Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy
Bardziej szczegółowoTeoria informacji i kodowania Ćwiczenia
Teoria informacji i kodowania Ćwiczenia Piotr Chołda, Andrzej Kamisiński Katedra Telekomunikacji Akademii Górniczo-Hutniczej Kod źródłowy Kodem źródłowym nazywamy funkcję różnowartościową, która elementom
Bardziej szczegółowoPodstawowe pojęcia. Teoria informacji
Kodowanie i kompresja informacji - Wykład 1 22 luty 2010 Literatura K. Sayood, Kompresja danych - wprowadzenie, READ ME 2002 (ISBN 83-7243-094-2) Literatura K. Sayood, Kompresja danych - wprowadzenie,
Bardziej szczegółowoElementy teorii informacji i kodowania
i kodowania Entropia, nierówność Krafta, kodowanie optymalne Marcin Jenczmyk m.jenczmyk@knm.katowice.pl 17 kwietnia 2015 M. Jenczmyk Spotkanie KNM i kodowania 1 / 20 Niech S = {x 1,..., x q } oznacza alfabet,
Bardziej szczegółowoKodowanie i entropia
Kodowanie i entropia Marek Śmieja Teoria informacji 1 / 34 Kod S - alfabet źródłowy mocy m (np. litery, cyfry, znaki interpunkcyjne), A = {a 1,..., a n } - alfabet kodowy (symbole), Chcemy przesłać tekst
Bardziej szczegółowoKompresja danych kodowanie Huffmana. Dariusz Sobczuk
Kompresja danych kodowanie Huffmana Dariusz Sobczuk Plan wykładu Kodowanie metodą Shannona-Fano Kodowanie metodą Huffmana Elementarny kod Golomba Kod Golomba Kod Rice a kompresja danych 2 Efektywny kod
Bardziej szczegółowoKodowanie Shannona-Fano
Kodowanie Shannona-Fano Kodowanie Shannona-Fano znane było jeszcze przed kodowaniem Huffmana i w praktyce można dzięki niemu osiągnąć podobne wyniki, pomimo, że kod generowany tą metodą nie jest optymalny.
Bardziej szczegółowoAKD Metody słownikowe
AKD Metody słownikowe Algorytmy kompresji danych Sebastian Deorowicz 2009 03 19 Sebastian Deorowicz () AKD Metody słownikowe 2009 03 19 1 / 38 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela
Bardziej szczegółowoPrzetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.
Przetwarzanie i transmisja danych multimedialnych Wykład 5 Kodowanie słownikowe Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Przemysław
Bardziej szczegółowoAlgorytmy zachłanne. dr inż. Urszula Gałązka
Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie
Bardziej szczegółowoDefinicja. Jeśli. wtedy
Definicja Jeśli wtedy Cel kompresji: zredukowanie do minimum oczekiwanego (średniego) kosztu gdzie l i jest długością słowa kodu c i kodującego symbol a i Definicja Definicje Efektywność kodowania określamy
Bardziej szczegółowoKody Tunstalla. Kodowanie arytmetyczne
Kody Tunstalla. Kodowanie arytmetyczne Kodowanie i kompresja informacji - Wykład 3 8 marca 2010 Kody Tunstalla Wszystkie słowa kodowe maja ta sama długość ale jeden kod może kodować różna liczbę liter
Bardziej szczegółowoWykład 6. Wyszukiwanie wzorca w tekście
Wykład 6 Wyszukiwanie wzorca w tekście 1 Wyszukiwanie wzorca (przegląd) Porównywanie łańcuchów Algorytm podstawowy siłowy (naive algorithm) Jak go zrealizować? Algorytm Rabina-Karpa Inteligentne wykorzystanie
Bardziej szczegółowoZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA
ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 Zespół Szkół im. ks. S. Staszica w Tarnobrzegu KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA Streszczenie Referat zawiera szczegółowe
Bardziej szczegółowoDef. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne
Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu
Bardziej szczegółowomgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A
mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. KOMPRESJA ALGORYTMEM ARYTMETYCZNYM, GOLOMBA I RICE'A Idea algorytmu arytmetycznego Przykład kodowania arytmetycznego Renormalizacja
Bardziej szczegółowoZałożenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG
Założenia i obszar zastosowań KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Plan wykładu: Geneza algorytmu Założenia i obszar zastosowań JPEG kroki algorytmu kodowania obrazu Założenia: Obraz monochromatyczny
Bardziej szczegółowoKodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości
Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry
Bardziej szczegółowoWykład 6. Dynamiczne struktury danych
Wykład 6 Dynamiczne struktury danych 1 Plan wykładu Ø Wprowadzenie Ø Popularne dynamiczne struktury danych (ADT) Ø stosy, kolejki, listy opis abstrakcyjny Ø Listy liniowe Ø Implementacja tablicowa stosu
Bardziej szczegółowoMetody kompresji i przechowywania obrazów
Metody kompresji i przechowywania obrazów Obrazy ogromnymi zbiorami danych: Np. Fotografia 24mm x 36 mm 10 7 punktów; rozdzielczość 0.01 mm 256 poziomów; >10 MB Na komputerze 640 x 480 pikseli 900 kb 1280x1024
Bardziej szczegółowoLZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe
Tomasz Wykład 5: kodowanie słownikowe Motywacja Motywacje 1 zazwyczaj dane nie tworza ciagu wartości niezależnych, kolejny symbol jest zależny od poprzedzajacych go; 2 pewne sekwencje (słowa) często się
Bardziej szczegółowoTeoria Informacji - wykład. Kodowanie wiadomości
Teoria Informacji - wykład Kodowanie wiadomości Definicja kodu Niech S={s 1, s 2,..., s q } oznacza dany zbiór elementów. Kodem nazywamy wówczas odwzorowanie zbioru wszystkich możliwych ciągów utworzonych
Bardziej szczegółowoKwantyzacja wektorowa. Kodowanie różnicowe.
Kwantyzacja wektorowa. Kodowanie różnicowe. Kodowanie i kompresja informacji - Wykład 7 12 kwietnia 2010 Kwantyzacja wektorowa wprowadzenie Zamiast kwantyzować pojedyncze elementy kwantyzujemy całe bloki
Bardziej szczegółowoNiech x 1,..., x n będzie ciągiem zdarzeń. ---
Matematyczne podstawy kryptografii, Ćw2 TEMAT 7: Teoria Shannona. Kody Huffmana, entropia. BIBLIOGRAFIA: [] Cz. Bagiński, cez.wipb.pl, [2] T. H. Cormen, C. E. Leiserson, R. L Rivest, Wprowadzenie do algorytmów,
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 8
Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest
Bardziej szczegółowoKompresja danych Streszczenie Studia Dzienne Wykład 10,
1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny
Bardziej szczegółowoPorządek symetryczny: right(x)
Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)
Bardziej szczegółowoKodowanie informacji
Tomasz Wykład 4: kodowanie słownikowe Motywacja Motywacje 1 kodowane dane nie tworza ciagu wartości niezależnych, rozkład prawdopodobieństwa zależy od symboli poprzedzajacych symbol kodowany; 2 pewne sekwencje
Bardziej szczegółowoAlgorytmy i struktury danych
Cel ćwiczenia lgorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Kompresja Ćwiczenie ma na celu
Bardziej szczegółowoWedług raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j
Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy
Bardziej szczegółowoZADANIE 1. Rozwiązanie:
EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa
Bardziej szczegółowoWybrane metody kompresji obrazów
Wybrane metody kompresji obrazów Celem kodowania kompresyjnego obrazu jest redukcja ilości informacji w nim zawartej. Redukcja ta polega na usuwaniu informacji nadmiarowej w obrazie, tzw. redundancji.
Bardziej szczegółowoEntropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz
Algorytmy kompresji danych 2007 02 27 Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie Plan wykładu 1 Modelowanie i kodowanie 2 Modelowanie i kodowanie definicja stowarzyszona ze zbiorem
Bardziej szczegółowoModulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a
Modulacja i kodowanie Labolatorium Kodowanie źródłowe Kod Huffman a W tym ćwiczeniu zajmiemy się kodowaniem źródłowym (source coding). 1. Kodowanie źródłowe Głównym celem kodowanie źródłowego jest zmniejszenie
Bardziej szczegółowoKOMPRESJA STRATNA I BEZSTRATNA
KOMPRESJA STRATNA I BEZSTRATNA W znaczeniu informatycznym kompresja to zmniejszenie objętości danych przy zachowaniu ładunku informacyjnego, czyli sensu tych danych. Celem kompresji jest zatem możliwie
Bardziej szczegółowopobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.
komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego
Bardziej szczegółowoPrzetwarzanie obrazu cyfrowego
Kompresja Kompresja Obrazu Po co kompresja Podstawowe pojęcia RLE LZ78 LZW Huffman JPEG Po co kompresja Obraz FullHD 1920x1080 w kolorze RGB to 49766400 bity danych (5,94 MiB) Przeciętne zdjęcie 18Mpixel
Bardziej szczegółowoPrzetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski.
Przetwarzanie i transmisja danych multimedialnych Wykład 3 Kodowanie Shannona Fano i Huffmana Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych
Bardziej szczegółowoWykład 2. Drzewa zbalansowane AVL i 2-3-4
Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania
Bardziej szczegółowoWprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy
1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć
Bardziej szczegółowoWstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie
Bardziej szczegółowoAlgorytmy kodowania entropijnego
Algorytmy kodowania entropijnego 1. Kodowanie Shannona-Fano 2. Kodowanie Huffmana 3. Jednoznaczność kodów Huffmana. Kod o minimalnej wariancji 4. Dynamiczne kodowanie Huffmana Poprzedni wykład - podsumowanie
Bardziej szczegółowoWykład 8. Drzewo rozpinające (minimum spanning tree)
Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,
Bardziej szczegółowoprowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Bardziej szczegółowoKODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F
KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:
Bardziej szczegółowoAlgorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski
Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny
Bardziej szczegółowoKodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,
1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości
Bardziej szczegółowoteoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015
teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1 wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe.
Bardziej szczegółowoZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW
ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model
Bardziej szczegółowoTechnologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Organizacja zajęć Wykład: czwartek 14:15 16:00,
Bardziej szczegółowoKompresja danych DKDA (7)
Kompresja danych DKDA (7) Marcin Gogolewski marcing@wmi.amu.edu.pl Uniwersytet im. Adama Mickiewicza w Poznaniu Poznań, 22 listopada 2016 1 Kwantyzacja skalarna Wprowadzenie Analiza jakości Typy kwantyzatorów
Bardziej szczegółowoTechniki multimedialne
Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo
Bardziej szczegółowoKodowanie predykcyjne
Kodowanie i kompresja informacji - Wykład 5 22 marca 2010 Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie.
Bardziej szczegółowoAlgorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne
Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może
Bardziej szczegółowoZadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Bardziej szczegółowoAlgorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)
Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie
Bardziej szczegółowo0 + 0 = 0, = 1, = 1, = 0.
5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,
Bardziej szczegółowoZastosowanie kompresji w kryptografii Piotr Piotrowski
Zastosowanie kompresji w kryptografii Piotr Piotrowski 1 Plan prezentacji I. Wstęp II. Kryteria oceny algorytmów III. Główne klasy algorytmów IV. Przykłady algorytmów selektywnego szyfrowania V. Podsumowanie
Bardziej szczegółowoModelowanie motywów łańcuchami Markowa wyższego rzędu
Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy
Bardziej szczegółowodr inż. Paweł Myszkowski Wykład nr 11 ( )
dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2015/2016 Wykład nr 11 (11.05.2016) Plan prezentacji:
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoKonkursy w województwie podkarpackim w roku szkolnym 2016/2017
... Pieczątka Organizatora... Tu wpisz swój Kod KONKURS PRZEDMIOTOWY Z INFORMATYKI DLA UCZNIÓW GIMNAZJUM ETAP WOJEWÓDZKI Drogi uczniu, Witaj na II etapie konkursu informatycznego. Przeczytaj uważnie instrukcję
Bardziej szczegółowoDrzewa poszukiwań binarnych
1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich
Bardziej szczegółowosortowanie na bazie wykorzystanie sortowania ze zliczaniem
sortowanie na bazie wykorzystanie sortowania ze zliczaniem sortowanie na bazie polega na sortowaniu fragmentów danych, cyfr, od cyfry najmniej znaczącej do najbardziej znaczącej.można np. sortować liczby
Bardziej szczegółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Bardziej szczegółowoSortowanie topologiczne skierowanych grafów acyklicznych
Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)
Bardziej szczegółowoO oszczędnym dziennikarzu, czyli czym jest
O oszczędnym dziennikarzu, czyli czym jest informacja i jak ja mierzymy? Adam Doliwa doliwa@matman.uwm.edu.pl WYKŁAD DLA MŁODZIEŻY WYDZIAŁ MATEMATYKI I INFORMATYKI UWM Olsztyn, 9 lutego 2016 r. Adam Doliwa
Bardziej szczegółowoWykład 3. Drzewa czerwono-czarne
Wykład 3 Drzewa czerwono-czarne 1 Drzewa zbalansowane Wprowadzenie Drzewa czerwono-czarne Definicja, wysokość drzewa Rotacje, operacje wstawiania i usuwania Literatura Cormen, Leiserson, Rivest, Wprowadzenie
Bardziej szczegółowoJęzyki i metodyka programowania. Reprezentacja danych w systemach komputerowych
Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania
Bardziej szczegółowoKODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu
KODY SYMBOLI Materiały KODA, A.Przelaskowski Koncepcja drzewa binarnego Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Koncepcja przedziałów nieskończonego alfabetu Proste kody
Bardziej szczegółowoTemat 7. Dekodery, enkodery
Temat 7. Dekodery, enkodery 1. Pojęcia: koder, dekoder, enkoder, konwerter kodu, transkoder, enkoder priorytetowy... Koderami (lub enkoderami) nazywamy układy realizujące proces zamiany informacji kodowanej
Bardziej szczegółowoAbstrakcyjne struktury danych - stos, lista, drzewo
Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą
Bardziej szczegółowoDowód pierwszego twierdzenia Gödela o. Kołmogorowa
Dowód pierwszego twierdzenia Gödela o niezupełności arytmetyki oparty o złożoność Kołmogorowa Grzegorz Gutowski SMP II rok opiekun: dr inż. Jerzy Martyna II UJ 1 1 Wstęp Pierwsze twierdzenie o niezupełności
Bardziej szczegółowoAlgorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu
Bardziej szczegółowoALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH
STUDIA INFORMATICA 2003 Volume 24 Number 1 (52) Roman STAROSOLSKI Politechnika Śląska, Instytut Informatyki ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH Streszczenie. W artykule, po omówieniu podstawowych pojęć
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 22/23 Outline Programowanie zachłanne Programowanie zachłanne Rodzaje kodów Programowanie zachłanne Kody stałej długości (np. ASCII). Kody zmiennej
Bardziej szczegółowoTranzystor JFET i MOSFET zas. działania
Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej
Bardziej szczegółowoĆwiczenie nr 4: Kodowanie arytmetyczne, range coder
Algorytmy Kompresji Danych Laboratorium Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder 1. Zapoznać się z opisem implementacji kodera entropijnego range coder i modelem danych opracowanym dla tego
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Bardziej szczegółowomgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1.
mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1. KOMPRESJA ALGORYTMEM HUFFMANA I LZ77 Idea algorytmu Huffmana Huffman kontra LZW Sposób tworzenia słownika Etapy budowy drzewa kodu
Bardziej szczegółowoPodstawy kompresji danych
Podstawy kompresji danych Pojęcie kompresji W ogólności kompresja (kodowanie) jest procedurą (przekształceniem) zmiany reprezentacji wejściowego zbioru danych do postaci wymagającej mniejszej liczby bitów
Bardziej szczegółowoAlgorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
Bardziej szczegółowoKody splotowe (konwolucyjne)
Modulacja i Kodowanie Labolatorium Kodowanie kanałowe kody konwolucyjne Kody splotowe (konwolucyjne) Główną różnicą pomiędzy kodami blokowi a konwolucyjnymi (splotowymi) polega na konstrukcji ciągu kodowego.
Bardziej szczegółowo2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew
0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury
Bardziej szczegółowo1 abbbaabaaabaa -wzorzec: aaba
Algorytmy i złożoność obliczeniowa Laboratorium 14. Algorytmy tekstowe. 1. Algorytmy tekstowe Algorytmy tekstowe mają decydujące znaczenie przy wyszukiwaniu informacji typu tekstowego, ten typ informacji
Bardziej szczegółowoStruktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott
Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html
Bardziej szczegółowo