Documente Academic
Documente Profesional
Documente Cultură
6/20
Vom eticheta fiecare ramura spre stanga cu 0 si fiecare ramura spre dreapta cu 1
In mod normal, un caracter din sir (sau din fisier, daca folosim un fisier) se codifica pe 8 biti
In cazul de fata, tinand cont ca sunt numai 5 caractere in total, am putea implementa foarte usor o
codificare binara de 3 biti/caracter (2 biti ar asigura doar 4 caractere distincte, dar noi avem 5)
Se observa ca codurile Huffman obtinute in urma algoritmului prezentat sunt mai scurte decat
codurile standard de 3 biti/caracter
Mai precis, fiecare aparitie a caracterelor M, A sau R in sirul initial va duce la o economie de 1 bit
iar fiecare aparitie a caracterelor E sau _ nu va cauza nici pierdere nici castig (se folosesc tot 3
biti)
Practic, datorita faptului ca la fiecare pas am selectat cei 2 arbori care aveau frecventele de aparitie
minime, caracterele cu frecvente de aparitie relativ mari au fost lasate la urma, astfel incat in
arborele final sa se regaseasca mai sus decat caracterele cu frecvente de aparitie mai mici
Aceasta este ideea dominanta la arbori optimi, deci arborele rezultat este, din acest punct de
vedere, un arbore optim
Codificarea implicita cu 8 biti/caracter ar fi dus la 820 = 160 de biti deci am realizat o compresie de
28,75% fata de aceasta codificare
Proprietatea de prefix suna astfel: nici un cod nu este prefix pentru alt cod
Aceasta proprietate este asigurata implicit din modul de constructie al arborelui Huffman
Fiecare caracter ajunge o frunza in arbore, si nu exista drum de la radacina la o frunza in totalitate
continut in alt drum de la radacina la o alta frunza (o proprietate de bun simt a arborilor, in general)
Daca codurile Huffman nu ar fi avut proprietatea de prefix, am fi avut mari probleme la decodificarea
unui sir
Atunci sirul initial AE ar fi fost codificat 11111 dar de decodificat poate fi decodificat fie
ca AE fie ca EA