Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski
|
|
- Judyta Filipiak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Kodowanie Huffmana Platforma programistyczna.net; materiały do laboratorium 24/5 Marcin Wilczewski
2 Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny kod w ramach przyjętego probabilistycznego modelu źródła. Oczywiście różne modele mogą prowadzić do kodów o różnej średniej bitowej. Zawsze jednak w ramach przyjętego modelu probabilistycznego kod wygenerowany przez algorytm Huffmana jest optymalny. Algorytm Huffmana wykorzystuje dwa podstawowe fakty dotyczące optymalnych kodów prefiksowych:. Symbolom występującym z większym prawdopodobieństwem odpowiadają w kodzie optymalnym krótsze słowa kodowe niż symbolom występującym rzadziej. 2. Dwa najmniej prawdopodobne symbole są kodowane słowami kodowymi tej samej długości. Algorytm Huffmana rozszerza tę własność optymalnych kodów prefiksowych o dodatkową cechę: słowa kodowe odpowiadające dwóm najmniej prawdopodobnym symbolom różnią się tylko na jednym bicie. Niech dane jest źródło o alfabecie S zawierającym N symboli: S={s, s2, s3,, sn} oraz niech znane jest prawdopodobieństwo wystąpień poszczególnych symboli: p(s)=s, p(s2)=p2,, p(sn)=pn. Algorytm Huffmana znajdowania optymalnego kodu można wówczas sprowadzić do problemu konstrukcji drzewa binarnego zgodnie z poniższym algorytmem:. Ustaw symbole alfabetu S w porządku rosnącym ze względu na prawdopodobieństwo ich wystąpienia. Traktuj symbole alfabetu jako węzły (liście) budowanego drzewa binarnego. Każdemu węzłowi nadaj etykietę równą prawdopodobieństwu wystąpienia symbolu. 2. Znajdź w zbiorze węzłów drzewa dwa węzły o najmniejszym prawdopodobieństwie wystąpienia (nazwijmy je odpowiednio ch oraz ch2) i utwórz dla takich węzłów wspólny węzeł rodzica. Skojarz z węzłem rodzica prawdopodobieństwo będące sumą prawdopodobieństw węzłów ch oraz ch2. Ścieżce od węzła rodzica do lewego potomka nadaj etykietę, ścieżce od węzła rodzica do prawego potomka nadaj etykietę. Nowododany węzeł-rodzic staje się symbolem nowego, zredukowanego alfabetu (alfabet ten nie zawiera symboli będących potomkami nowego węzła). 3. Gdy drzewo zawiera więcej niż jeden węzeł przejdź do punktu algorytmu. W przeciwnym przypadku przejdź do punktu Słowo kodowe dla określonego symbolu tworzone jest przez konkatenację etykiet ścieżek jakie należy przejść od korzenia drzewa do liścia odpowiadającego danemu symbolowi.
3 Algorytm Huffmana. Przykład. a b f d c a e b b f d c a e c.26 d b f d c a e c a b f d e Symbol Prawdopodobieństwo a.25 b.5 c.9 d.5 e.3 f.6 Rys.. Ilustracja konstrukcji drzewa Huffmana dla alfabetu zawierającego 6 symboli o prawdopodobieństwach wystąpień podanych w tabeli obok. Rys. (a) przedstawia fazę inicjalną. Węzły zaznaczone kolorem zielonym odpowiadają symbolom (zredukowanego) alfabetu w bieżącej iteracji algorytmu. Kolejne rysunku przedstawiają kolejne iteracje algorytmu Huffmana. c.d. na następnej stronie
4 Algorytm Huffmana. Przykład (c.d.) e f b f d e c a c a b f d e Symbol Prawdopodo- Słowo kodowe bieństwo a.25 b.5 c.9 d.5 e.3 f.6 Rys.. c.d. z poprzedniej strony. Ostateczne drzewo Huffmana przedstawione jest na rysunku (f). Etykiety ścieżek przechodzonych od korzenia skonstruowanego drzewa do kolejnych liści reprezentujących symbole alfabetu wejściowego odpowiadają słowom kodowym symboli. Postać słów kodowych przedstawiona jest w tabeli obok. Ostateczna postać drzewa binarnego, a co za tym idzie postać słów kodowych zależy od szczegółów konstrukcji drzewa: etykiety ścieżek mogą być nadawane w kolejności przeciwnej niż zaproponowana w przedstawionym algorytmie, ustawianie węzłów w porządku rosnącego prawdopodobieństwa może być pominięte (lub porządek może być zmieniony). Wykorzystując taką dowolność otrzymać można różną postać słów kodowych. Niezależnie jednak od tego wynikowy kod zawsze jest optymalnym kodem prefiksowym.
5 Cechy kodów Huffmana Prawdopodo- Słowo Symbol bieństwo kodowe a.25 b.5 c.9 d.5 e.3 f.6 Rys.. Model probabilistyczny źródła oraz ciągi kodowe odpowiadające symbolom alfabetu. Cechy kodu Huffmana: Kod Huffmana jest kodem prefiksowym, a przez to jednoznacznie dekodowalnym. Cecha prefiksowości wynika ze sposobu konstrukcji kodu: przez drzewo binarne. Słowa kodowe odpowiadające symbolom najmniej prawdopodobnym mają największą długość (tu: 4 bity) i różnią się na jedynym bicie. Symbole najbardziej prawdopodobne posiadają najkrótsze słowa kodowe (tu: 2 bity). Kod Huffmana jest kodem optymalnym, tzn. H(S)<= B C <=H(S)+. Dla przykładu, entropia źródła kodowanego w przykładzie jest równa: H(S)=2.35, podczas gdy średnia długość skonstruowanego kodu Huffmana jest równa: ceecdaeccddfcadaedeaacadcca edeeaeaacaeceaeacecbcabccac aeeebadeaaaeddaadebaeaaddae adeaeaceecdccddcece Rys.. Rysunek przedstawia przykładowy strumień symboli wygenerowanych przez opisane w przykładzie źródło (model probabilistyczny podany jest w tabeli powyżej). W przypadku stosowania kodu stałe długości, np. kodu 3 bitowego zakodowany strumień zajmować będzie 3 bitów. W przypadku kodowania tego samego ciągu za pomocą wcześniej skonstruowanego kodu Huffmana zakodowany ciąg zajmować będzie 237 bitów, co daje 2.37 bita na symbol. Ten prosty przykład ilustruje jak stosowanie kodów zmiennej długości prowadzi do uzyskania kompresji, w tym przypadku stopień kompresji wynosi CR=.27. Kodowanie Huffmana jest efektywną techniką kodowania entropijnego, ale posiada też pewne ograniczenia: Efektywność kodowania Huffmana zależy od wielu czynników takich jak: rozmiar alfabetu wejściowego oraz rozkład prawdopodobieństw występowania poszczególnych symboli. Kod Huffmana jest optymalny ale tylko w przypadku, gdy znany jest rzeczywisty rozkład prawdopodobieństwa poszczególnych symboli generowanych przez źródło (model źródła). W przypadku, gdy założony rozkład prawdopodobieństwa odbiega od rzeczywistego rozkładu efektywność kodu Huffmana maleje. Z powyższego powodu kodowanie Huffmana nie nadaje się do kodowania źródeł o zmiennej charakterystyce (rozkład prawdopodobieństwa symboli zmienia się w czasie). W takim przypadku stosowanie statycznego kodowania Huffmana może doprowadzić do zwiększenia objętości strumienia zakodowanego w stosunku do wejściowego.
6 Cechy kodów Huffmana. Przykład Przykład: Niech dane są dwa źródła Ź oraz Ź2 niezależnie generujące symbole z alfabetów odpowiednio S=(,,,9) oraz S2=(,,2). Prawdopodobieństwa z jakimi źródła generują poszczególne symbole są przedstawione na rysunkach obok: rysunek (a) dla Ź, (b) dla Ź2. Jedną z wcześniej wymienionych cech kodów Huffmana jest zależność średniej długości kodu od rozmiaru alfabetu i rozkładu prawdopodobieństw poszczególnych symboli. Można pokazać, że jeśli p max jest prawdopodobieństwem najbardziej prawdopodobnego symbolu generowanego przez źródło, to średnia długość kodu Huffmana opisana jest następującą nierównością: a b Entropia źródeł jest równa odpowiednio: H(S)=3.29 bita oraz H(S2)=.7 bita. Kody Huffmana skonstruowane niezależnie dla obu źródeł charakteryzują się średnią długością równą odpowiednio: BC(S)=3.32 oraz BC(S2)=.5 bita na symbol. Prosty rachunek pokazuje, że redundancja kodu Huffmana dla pierwszego źródła wynosi.3 bita na symbol, co oznacza że skonstruowany kod potrzebuje średnio dodatkowo.3 bita (.9%) do zakodowania pojedynczego symbolu w stosunku do przypadku idealnego. Redundancja kodu dla drugiego źródła wynosi.44 bita na symbol;.44 bita stanowi 6.2% entropii takiego źródła. stanowiącą dokładniejsze oszacowanie średniej długości kodu Huffmana. Z nierówności tej wynika, średnia długość kodu zbliża się do minimalnej wartości określonej przez entropię źródła w przypadku, gdy maksymalne prawdopodobieństwo w modelu probabilistycznym ma niewielkie wartości. Własność taką mogą posiadać alfabety dużych rozmiarów. W przeciwnym przypadku, gdy alfabet składa się z małej liczby symboli a prawdopodobieństwo jednego z symboli jest wyraźnie większe od pozostałych (duża wartość p max ), średnia długość kodu Huffmana oddala się od minimalnej długości kodu wyznaczonej przez entropię i kod staje się mało efektywny. Pytanie: Jaką średnią długość oraz stopień kompresji osiągają kody Huffmana konstruowane dla źródeł o alfabetach zawierających dokładnie dwa symbole?
7 Kodowanie strumienia danych Symbol Kod nieuwzględniający EOF a b c d e f EOF - Kod uwzględniający EOF Rys.. Postać kodu Huffmana dla symboli alfabetu źródła rozpatrywanego we wcześniejszych przykładach. Uwzględnienie symbolu EOF powoduje zmianę postaci słów kodowych (ostatnia kolumna tabeli). Rys. 2. Zakodowany ciąg symboli daaefeab uzupełniony znacznikiem EOF oraz dodatkowymi bitami dopełniającymi do 32 bitów (wielokrotność 8 bitów). Zielony blok wskazuje kod znacznika EOF, czerwony blok zawiera bity dopełniające. Kodowanie strumienia danych sprowadza się na mapowaniu kolejnych symboli pojawiających się w strumieniu wejściowym na wcześniej skonstruowane słowa kodowe. Tak powstały strumień kodowy w praktyce musi być rozszerzony o dodatkowe elementy umożliwiające jego poprawne przesłanie lub zapisanie oraz odkodowanie przez dekoder. Pierwszym elementem o jaki należy uzupełnić strumień kodowy jest nagłówek zawierający model probabilistyczny źródła, które wygenerowało pierwotny strumień danych. W takim przypadku pierwszą fazą pracy dekodera jest zbudowanie drzewa binarnego identycznego ze zbudowanym przez koder. W innym przypadku nagłówek może przyjmować postać ciągu par postaci: (symbol, słowo_kodowe). Są to informacje niezbędne dla dekodera do zdekodowania strumienia. Innym problemem jaki należy rozwiązać jest uzupełnienie strumienia kodowego o znak końca danych EOF oraz dopełnienie długości strumienia do wielokrotności 8 bitów. Symbol końca strumienia EOF uwzględnia się już na poziomie konstrukcji drzewa binarnego poprzez rozszerzenie alfabetu wejściowego o symbol EOF o najmniejszej częstości wystąpienia. Dekoder po napotkaniu słowa kodowego reprezentującego EOF ignoruje wszystkie pozostałe bity w strumieniu będące dopełnieniem strumienia do wielokrotności 8 bitów.
8 Zadanie. Stwórz klasę lub zbiór klas narzędziowych realizujących algorytm Huffmana; 2. Wykorzystaj powyższą klasę lub klasy do kompresji oraz dekompresji dużego pliku tekstowego, np. e-book. Ważne by przetwarzany zbiór stanowił dobrą reprezentację statystki symboli alfabetu; 3. Wyznacz wartość współczynnika kompresji dla skompresowanego zbioru.
Podstawy 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowo0-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ółowoAlgorytmy graficzne. Podstawy kompresji danych fragment wykładu. Marcin Wilczewski
Algorytmy graficzne Podstawy kompresji danych fragment wykładu Marcin Wilczewski Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny kod w ramach przyjętego
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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoTeoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017
Kody źródłowe jednoznacznie dekodowalne Zadanie Ile najwięcej słów kodowych może liczyć kod binarny jednoznacznie dekodowalny, którego najdłuższe słowo ma siedem liter? (Odp. 28) Zadanie 2 Zbiór sześciu
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ół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ół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ół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ół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ół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ół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ół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ół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ółowoTeoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017
Algebra liniowa Zadanie 1 Czy jeśli wektory x, y i z, należące do binarnej przestrzeni wektorowej nad ciałem Galois GF (2), są liniowo niezależne, to można to samo orzec o następujących trzech wektorach:
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ół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ół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ółowoTeoria Informacji i Metody Kompresji Danych
Teoria Informacji i Metody Kompresji Danych 1 Przykładowe zadania (dodatkowe materiały wykładowe) 2 Robert Susmaga Instytut Informatyki ul. Piotrowo 2 Poznań kontakt mail owy Robert.Susmaga@CS.PUT.Poznan.PL
Bardziej szczegółowoJoint Photographic Experts Group
Joint Photographic Experts Group Artur Drozd Uniwersytet Jagielloński 14 maja 2010 1 Co to jest JPEG? Dlaczego powstał? 2 Transformata Fouriera 3 Dyskretna transformata kosinusowa (DCT-II) 4 Kodowanie
Bardziej szczegółowoDane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna
Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,
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ółowoDane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna
Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,
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ół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ół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ół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ół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ół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ółowoKody splotowe. Zastosowanie
Kody splotowe Zastosowanie Niekiedy potrzeba buforowania fragmentu wiadomości przed zakodowaniem, tak jak to ma miejsce w koderze blokowym, jest przeszkodą, gdyż dane do zakodowania napływają strumieniem.
Bardziej szczegółowo12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:
PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej
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ół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ółowoPython: JPEG. Zadanie. 1. Wczytanie obrazka
Python: JPEG Witajcie! Jest to kolejny z serii tutoriali uczący Pythona, a w przyszłości być może nawet Cythona i Numby Jeśli chcesz nauczyć się nowych, zaawansowanych konstrukcji to spróbuj rozwiązać
Bardziej szczegółowoKOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG
KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Joint Photographic Expert Group - 1986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard
Bardziej szczegółowoKażdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.
Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące
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ół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ół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ółowoŁyżwy - omówienie zadania
Komisja Regulaminowa XVI Olimpiady Informatycznej 1 UMK Toruń 12 luty 2009 1 Niniejsza prezentacja zawiera materiały dostarczone przez Komitet Główny Olimpiady Informatycznej. Treść zadania Wejście Wyjście
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ółowoĆwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia
Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia Poznanie zasad działania układów koderów. Budowanie koderów z podstawowych bramek logicznych i układu scalonego Czytanie schematów elektronicznych,
Bardziej szczegółowoDetekcja i korekcja błędów w transmisji cyfrowej
Detekcja i korekcja błędów w transmisji cyfrowej Błędy w transmisji cyfrowej pojedyncze wielokrotne. całkowita niepewność względem miejsca zakłóconych bitów oraz czy w ogóle występują paczkowe (grupowe)
Bardziej szczegółowoKodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG
Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach
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ółowoZapis liczb binarnych ze znakiem
Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.
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ółowoPrzetwarzanie i transmisja danych multimedialnych. Wykład 2 Podstawy kompresji. Przemysław Sękalski.
Przetwarzanie i transmisja danych multimedialnych Wykład Podstawy kompresji Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Zawartość wykładu.
Bardziej szczegółowoxx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy
Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną
Bardziej szczegółowoArytmetyka komputera
Arytmetyka komputera Systemy zapisu liczb System dziesiętny Podstawą układu dziesiętnego jest liczba 10, a wszystkie liczby można zapisywać dziesięcioma cyframi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Jednostka
Bardziej szczegółowoKody blokowe Wykład 2, 10 III 2011
Kody blokowe Wykład 2, 10 III 2011 Literatura 1. R.M. Roth, Introduction to Coding Theory, 2006 2. W.C. Huffman, V. Pless, Fundamentals of Error-Correcting Codes, 2003 3. D.R. Hankerson et al., Coding
Bardziej szczegółowoKod U2 Opracował: Andrzej Nowak
PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim
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ół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ół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ółowoDetekcja i korekcja błędów w transmisji cyfrowej
Detekcja i korekcja błędów w transmisji cyfrowej Błędy w transmisji cyfrowej pojedyncze wielokrotne. całkowita niepewność względem miejsca zakłóconych bitów oraz czy w ogóle występują paczkowe (grupowe)
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ółowoZawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Bardziej szczegółowoWstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym
Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb
Bardziej szczegółowoKompresja obrazów w statycznych - algorytm JPEG
Kompresja obrazów w statycznych - algorytm JPEG Joint Photographic Expert Group - 986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard
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ółowoWykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład II Reprezentacja danych w technice cyfrowej 1 III. Reprezentacja danych w komputerze Rodzaje danych w technice cyfrowej 010010101010 001010111010
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie
Bardziej szczegółowo1.1. Pozycyjne systemy liczbowe
1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego
Bardziej szczegółowoJednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:
Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów: Listy rozkładane są do różnych przegródek. O tym, do której z nich trafi koperta, decydują różne fragmenty
Bardziej szczegółowo2 Zarówno zanonimizowany zbiór danych ilościowych, jak i opis jego struktury powinny mieć format csv:
Zbiór danych ilościowych: 1 Na każdą "bazę danych" składa się zanonimizowany zbiór danych ilościowych zebranych w badaniu oraz opis jego struktury (codebook). 2 Zarówno zanonimizowany zbiór danych ilościowych,
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ół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ół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ółowoPrzetworniki cyfrowo analogowe oraz analogowo - cyfrowe
Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu
Bardziej szczegółowoProgramowanie celowe #1
Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem
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ółowoKodowanie informacji. Przygotował: Ryszard Kijanka
Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy
Bardziej szczegółowoPLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA
PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana
Bardziej szczegółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Bardziej szczegółowoMicha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2)
Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2) Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna
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ółowoKodowanie informacji. Kody liczbowe
Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,
Bardziej szczegółowoKod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit
Bardziej szczegółowo