Kodowanie Huffmana 1. Kodowanie Huffmana. W 1962 roku

Transkrypt

Kodowanie Huffmana 1. Kodowanie Huffmana. W 1962 roku
Kodowanie Huffmana
1. Kodowanie Huffmana.
W 1962 roku Huffman przedstawił procedurę pozwalającą na uzyskanie kodu zwięzłego dla
dowolnego bezpamięciowego źródła wiadomości, którą zilustrujemy przykładem.
Przykład. Rozważmy źródło o 6-cio literowym alfabecie, w którym i-ta wiadomość występuje z
prawdopodobieństwem Pi w kolumnieX0 tabeli. Bez straty ogólności możemy założyć, że
wiadomości są uporządkowane według prawdopodobieństw malejąco.
Algorytm polega na tworzeniu źródeł zredukowanych, w których dwie najmniej prawdopodobne
wiadomości są zastępowane nową wiadomością o prawdopodobieństwie wystąpienia równym
sumie zastępowanych wiadomości. Źródło zredukowane zostaje również uporządkowane według
prawdopodobieństw malejąco. Źródła są redukowane dopóty, dopóki nie otrzymamy źródła
zredukowanego do dwóch wiadomości. Wiadomości te są kodowane odpowiednio „0”i „1”, po
czym następuje kodowanie źródła 3-elementowego przez przedłużenie słowa kodowego
odpowiadającego wiadomościom zredukowanym w źródle 3-elementowym o symbole odpowiednio
„0” i „1”, itd. Łatwo obliczyć, że entropia źródła wynosi
E(X)=0.3*log(1/0.3)+0.2*log(1/0.2)+3*0.15*log(1/0.15)+0.05*log(1/0.05)=2.4332, natomiast
średnia długość słowa kodowego L=2(0.3+0.2)+3(3*0.15+0.05)=2.5.
Wynik zastosowania algorytmu dla przykładu, który był użyty dla przedstawienia algorytmu
Huffmana, jest pokazany w tabeli wraz z jego ilustracją graficzną.
1
Kodowanie Huffmana
2. Zadania:
•
utworzyć 2-gie rozszerzenie źródła,
•
obliczyć entropię otrzymanego źródła,
•
utworzyć graf kodera/dekodera metodą Huffmana,
•
obliczyć średnią długość słowa kodowego,
•
obliczyć sprawność kodowania.
•
zaimplementować koder/dekoder w języku VHDL
•
zadanie wykonać w oparciu o źródło bezpamięciowe 4-ro elementowe podane przez
prowadzącego
•
wykonać symulację behawioralną zaprojektowanego kodera/dekodera
•
wyniki przedstaw prowadzącemu
3. Sprawozdanie
W sprawozdaniu należy zamieścić:
•
wartość entropii otrzymanego źródła
•
narysować otrzymany graf kodera/dekodera Huffmana
•
wartość średniej długości słowa
•
wartość otrzymanej sprawności
•
kod VHDL opisujący przedstawiony koder/dekoder
•
przebiegi symulacji kodera/dekodera
2