Algorytmy graficzne. Podstawy kompresji danych fragment wykładu. Marcin Wilczewski

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

I. LOGICZNE STRUKTURY DRZEWIASTE

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

MATEMATYKA 9. INSTYTUT MEDICUS Kurs przygotowawczy do matury i rekrutacji na studia medyczne Rok 2017/2018 FUNKCJE WYKŁADNICZE, LOGARYTMY

KONKURSY MATEMATYCZNE. Treść zadań

Zagadnienia transportowe

Elementy cyfrowe i układy logiczne

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska

Podejmowanie decyzji. Piotr Wachowiak

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Test F- Snedecora. będzie zmienną losową chi-kwadrat o k 1 stopniach swobody a χ

Zasady rekrutacji dzieci do I klasy Szkoły Podstawowej im. hm. Janka Bytnara Rudego w Lubieniu Kujawskim na rok szkolny 2014/2015*

Zmiany dotyczące zasiłku macierzyńskiego od 19 grudnia 2006 r.

Podstawa prawna: Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych (t. j. Dz. U. z 2000r. Nr 54, poz. 654 ze zm.

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

PROCEDURA OCENY RYZYKA ZAWODOWEGO. w Urzędzie Gminy Mściwojów

Pacjenci w SPZZOD w latach

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Rybacka Bielska Kraina Postanowienia Ogólne

ALGORYTMY I STRUKTURY DANYCH

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Statystyczna analiza danych w programie STATISTICA. Dariusz Gozdowski. Katedra Doświadczalnictwa i Bioinformatyki Wydział Rolnictwa i Biologii SGGW

Bogusław Jackowski GRAFIKA DYSKRETNA BACHOTEK 1998

Warszawska Giełda Towarowa S.A.

Harmonogramowanie projektów Zarządzanie czasem

Uchwała Nr... Rady Miejskiej Będzina z dnia roku

- Projekt. Uchwała Nr. NADZWYCZAJNEGO WALNEGO ZGROMADZENIA LUBELSKIEGO WĘGLA BOGDANKA SPÓŁKA AKCYJNA. z dnia r.

Intellect. Business Intelligence. Biblioteka dokumentów Podręcznik. Business Intelligence od 2Intellect.com Sp. z o.o.

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Zakład Ubezpieczeń Społecznych Departament Statystyki i Prognoz Aktuarialnych

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Zadanie 3 - (7 punktów) Iloczyn składników Jeśli zapis liczby 22 w postaci sumy zawiera składnik 1, lepiej pogrupować go z innym składnikiem

Programowanie Ewolucyjne

Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE

Regulamin rekrutacji do Gimnazjum w Chwaliszewie na rok szkolny 2016/2017

USTAWA. z dnia 26 czerwca 1974 r. Kodeks pracy. 1) (tekst jednolity)

PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Kalkulator Kalorii by CTI. Instrukcja

WYRAŻENIA REGULARNE I JĘZYK AWK

Uchwała nr 1 Nadzwyczajnego Walnego Zgromadzenia J.W. Construction Holding S.A. z siedzibą w Ząbkach z dnia 1 kwietnia 2008 roku

2) Drugim Roku Programu rozumie się przez to okres od 1 stycznia 2017 roku do 31 grudnia 2017 roku.

Komenda Powiatowa Policji w Złotowie

Regulamin rekrutacji uczniów do Szkoły Podstawowej nr 35 im. Władysława Łokietka w Zespole Szkolno-Przedszkolnym nr 1 w Poznaniu na rok szkolny

Matematyka:Matematyka I - ćwiczenia/granice funkcji

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

ZASADY REKRUTACJI DO ODDZIAŁÓW PRZEDSZKOLNYCH I KLAS PIERWSZYCH

Zarządzenie Nr 8/2013 Wójta Gminy Smołdzino z dnia 22 stycznia 2013r.

REGULAMIN PRACY KOMISJI KONKURSOWEJ DS. ZATRUDNIENIA NAUCZYCIELI AKADEMICKICH. Rozdział 1 Przepisy ogólne

ZGADNIJ i SKOJARZ. Gra edukacyjna. Gra dla 2 4 osób od 8 lat

Transformator Elektroniczny do LED 0W-40W Współpracuje z inteligentnymi ściemniaczami oświetlenia. Instrukcja. Model: TE40W-DIMM-LED-IP64

Poniżej aktualny regulamin certyfikacji ośrodków jeździeckich. REGULAMI CERTYFIKACJI OŚRODKÓW JEŹDZIECKICH

Logika I. Wykład 2. Działania na zbiorach

Wprowadzam : REGULAMIN REKRUTACJI DZIECI DO PRZEDSZKOLA NR 14

ZASADY REKRUTACJI DO PUBLICZNYCH PRZEDSZKOLI I ODDZIAŁÓW PRZEDSZKOLNYCH W SZKOŁACH PODSTAWOWYCH

STOWARZYSZENIE PRODUCENTÓW RYB ŁOSOSIOWATYCH

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Rekrutacją do klas I w szkołach podstawowych w roku szkolnym 2015/2016 objęte są dzieci, które w roku 2015 ukończą:

STA T T A YSTYKA Korelacja

Surowiec Zużycie surowca Zapas A B C D S 1 0,5 0,4 0,4 0, S 2 0,4 0,2 0 0, Ceny x

Regulamin rekrutacji do Zespołu Szkół Ponadgimnazjalnych Nr 4 na rok szkolny 2016/2017

INSTRUKCJA DLA INSPEKTORÓW DS. REJESTRACJI

UCHWAŁ A SENATU RZECZYPOSPOLITEJ POLSKIEJ. z dnia 18 października 2012 r. w sprawie ustawy o zmianie ustawy o podatku dochodowym od osób fizycznych

Miejski Ośrodek Pomocy Rodzinie w Koninie

grupa b Istota funkcjonowania gospodarki rynkowej

Nadzwyczajne Walne Zgromadzenie Art New media S.A. uchwala, co następuje:

Edycja geometrii w Solid Edge ST

Regulamin Walnego Zebrania Członków Polskiego Towarzystwa Medycyny Sportowej

P R O C E D U R Y - ZASADY

PROJEKTY UCHWAŁ NA NADZWYCZAJNE WALNE ZGROMADZENIE HETAN TECHNOLOGIES SPÓŁKA AKCYJNA W DNIU 25 MAJA 2016 ROKU

Regulamin rekrutacji uczniów do klasy pierwszej Szkoły Podstawowej im. Maksymiliana Wilandta w Darzlubiu. Podstawa prawna: (Dz.U.2014 poz.

Sztuczna inteligencja : Naiwny klasyfikator Bayesa

p o s t a n a w i a m

Regulamin Pracy Komisji Rekrutacyjnej w Publicznym Przedszkolu Nr 5 w Kozienicach

PROJEKT. w sprawie: wyboru Przewodniczącego Nadzwyczajnego Walnego Zgromadzenia Spółki

Specyfikacja techniczna banerów Flash

MODEL KLASYCZNY A MODEL KEYNESOWSKI

Projektowanie bazy danych

METODY I TECHNIKI BADAŃ SPOŁECZNYCH WARSZTATY BADANIA SONDAŻOWE WYTYCZNE ETAP I - KONCEPCJA BADAŃ

UCHWAŁA NR... RADY MIASTA KIELCE. z dnia r.

Wiedza niepewna i wnioskowanie (c.d.)

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Architektura komputerów

Opracował: mgr inż. Marcin Wieczorek

Procedura rekrutacji do Samorządowego Przedszkola Nr 39 w Krakowie

Ogólna charakterystyka kontraktów terminowych

Wyciąg ze Statutu Przedszkola Miejskiego Nr 12 w Pruszkowie

PROCEDURA REKRUTACJI DZIECI DO PRZEDSZKOLA NR 2 PROWADZONEGO PRZEZ URZĄD GMINY WE WŁOSZAKOWICACH NA ROK SZKOLNY 2014/2015

BINGO LOTTO INSTRUKCJA. zabawka i gra rekomendowany wiek: od lat 5 liczba graczy: 2-18

Ogłoszenie o zwołaniu Zwyczajnego Walnego Zgromadzenia IDM Spółka Akcyjna w upadłości układowej z siedzibą w Krakowie na dzień 30 czerwca 2015 roku

Warszawa, dnia 1 października 2013 r. Poz. 783 UCHWAŁA ZARZĄDU NARODOWEGO BANKU POLSKIEGO. z dnia 24 września 2013 r.

Radom, dn r. BZP AK Wszyscy Wykonawcy

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

Zasady rekrutacji, kryteria i warunki przyjęć do Przedszkola Samorządowego nr 25 w Kielcach

KLAUZULE ARBITRAŻOWE

Regulamin w konkurencjach solowych

SYSTEMY TRANSAKCYJNE (TraderTeam.pl: Rafa Jaworski, Marek Matuszek) Lekcja XX

Elementy typografii. Technologia Informacyjna Lekcja 22

INSTRUKCJA WebPTB 1.0

UCHWAŁY PODJĘTE na Nadzwyczajnym Walnym Zgromadzeniu Akcjonariuszy w dniu 30 marca 2009 r. Uchwała nr 1

Transkrypt:

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 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 4. 4. 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.

Algorytm Huffmana. Przykład. a.5.6.5.9.25.3 b..5.6.5.9.25.3 c.26 d.26..44..5.6.5.9.25.3.9.25.5.6.5.3 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

Algorytm Huffmana. Przykład (c.d.) e f..56.56..26.44.44..26.5.6.5.3.9.25 b f d e c a.9.25.5.6.5.3 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.

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.