Escolar Documentos
Profissional Documentos
Cultura Documentos
de
Huffman
O
que
é?
É
um
método
de
compactação
que
usa
as
probabilidades
de
ocorrência
dos
símbolos
no
conjunto
de
dados
a
ser
compactado
para
determinar
códigos
de
tamanho
variável
para
cada
símbolo.
3
Codificação
de
Huffman
ObjeJvo
Tem
por
objeDvo
a
construção
de
uma
árvore
binária
baseada
na
frequência
de
uso
das
letras
do
alfabeto
de
modo
que
as
mais
frequentemente
uDlizadas
apareçam
mais
perto
da
raiz.
4
Codificação
de
Huffman
ObjeJvo
Esta
árvore
binária
é
construída
da
baixo
para
cima
(das
folhas
para
a
raiz)
,
começando
a
parDr
das
letras
menos
usadas
até
aDngir
a
raiz.
5
Codificação
de
Huffman
Etapas
•
Cálculo
da
frequência
de
cada
caracter
no
arquivo
6
Codificação
de
Huffman
Como
Funciona
No
início
do
algorítmo,
cada
uma
das
letras
forma
uma
árvore
que
é
composta
apenas
pela
raiz
e
cujo
conteúdo
é
a
frequência
com
que
esta
letra
ocorre
no
texto
em
questão.
Em
seguida,
são
escolhidas
as
duas
árvores
com
as
menores
frequências
associadas
e
elas
são
unidas
em
uma
só
árvore
cujo
valor
da
raíz
é
a
soma
do
valor
destas
duas.
Este
processo
é
repeDdo
até
a
existência
de
uma
única
árvore.
7
Codificação
de
Huffman
(exemplo)
Sequência
de
c aracteres:
FAAFEEEAAAAEEEECCAAAAAAAAACFFCCAAAACCCBAAAB
BBBAAAAAAAADDDDBBBBBBDDDDAAAAAADDDDDDAAA
AEE
Caracteres:
FECBDA
Frequência:
5
9
12
13
16
45
(respecDvamente)
Dados
iniciais
ordenados
por
frequencia
de
ocorrência
F
E
C
B
D
A
5
9
12
13
16
45
8
Codificação
de
Huffman
(exemplo)
F
E
C
B
D
A
5
9
12
13
16
45
C
B
D
A
14
12
13
16
45
F
E
5
9
9
Codificação
de
Huffman
(exemplo)
C
B
D
A
14
12
13
16
45
F
E
5
9
D
A
25
14
16
45
C
B
F
E
12
13
5
9
10
Codificação
de
Huffman
(exemplo)
D
A
14
25
16
45
F
E
C
B
5
9
12
13
11
Codificação
de
Huffman
(exemplo)
A
30
25
45
D
C
B
14
16
12
13
F
E
5
9
12
Codificação
de
Huffman
(exemplo)
A
55
45
25 30
C
B
D
14
12
13
16
13
F
E
5
9
13
Codificação
de
Huffman
(exemplo)
100
A
55
45
25 30
C
B
D
14
12
13
16
F
E
5
9
14
Codificação
de
Huffman
(Codificação)
A
tabela
de
codificação
resultante
Caracter
Huffman
A
0
C
100
B
101
D
111
F
1100
E
1101
15
Codificação
de
Huffman
(Codificação)
A
tabela
de
codificação
resultante
Caracter
Huffman
ASCII
A
0
0100
0001
C
100
0100
0011
B
101
0100
0010
D
111
0100
0100
F
1100
0100
0110
E
1101
0100
0101
16
Codificação
de
Huffman
Comparação
entre
a
sequência
de
caracteres
propostas
uJlizando
a
codificação
ASCII
(8
bits)
e
uJlizando
a
codificação
de
Huffman.
Sem
compactação
(ASCII)
010001100100000101000001010001100100010101000101010001010100000101000001010000010100000
101000101010001010100010101000101010000110100001101000001010000010100000101000001010000
010100000101000001010000010100000101000011010001100100011001000011010000110100000101000
001010000010100000101000011010000110100001101000010010000010100000101000001010000100100
001001000010010001001000001010000010100000101000001010000010100000101000001010000010100
100010001000100010001000100010000100100001001000010010000100100001001000010010001000100
010001000100010001000100000101000001010000010100000101000001010000010100010001000100010
00100010001000100010001000100010000010100000101000001010000010100010101000101
Com
compactação
1100001100110111011101000011011101110111011001000000000001001100110010010000001001001001
0100010110110110100000000111111111111101101101101101101111111111111000000111111111111111
111000011011101
17
Codificação
de
Huffman
Decodificação
Para
decodificar
uma
mensagem
obDda,
basta
ir
uDlizando
cada
bit
da
mensagem
para
percorrer
a
arvore
de
Huffman
desde
a
raiz
até
alguma
folha,
quando
se
obtém
o
símbolo
decodificado.
Volte
então
para
a
raiz
e
conDnue
a
percorrer
a
árvore
para
decodificar
o
próximo
símbolo.
18