Académique Documents
Professionnel Documents
Culture Documents
11 de setembro de 2017
A codificação de Huffman é um método de compressão que
considera as probabilidades de ocorrência de cada sı́mbolo no
conjunto de dados a ser comprimido, para determinar códigos
prefixos de tamanho variável para cada sı́mbolo.
H(X )
η=
L
Desigualdade de Kraft
K
X
D −nk ≤ 1
k=1
Sı́mbolo Probabilidade
x0 0,4
x1 0,2
x2 0,2
x3 0,1
x4 0,1
Exemplo de um Código de Huffman binário
H(X ) 2,12193
η= = = 96,45%
L 2,2
Exemplo de um Código de Huffman binário
X 1 2 3 4 5
probabilidade 0,25 0,25 0,20 0,15 0,15
X Probabilidade palavra-código
1 0,25 1
2 0,25 2
3 0,20 01
4 0,10 02
5 0,10 000
6 0,10 001
Dummy 0,00 002
Lema
Para qualquer distribuição, existe um código ótimo instantâneo
(com comprimento esperado mı́nimo) que satisfaz as seguintes
propriedades:
1 Os comprimentos são ordenados inversamente com as
probabilidades, ou seja, se pj > pk , então lj ≤ lk .
2 Os dois códigos mais longos têm o mesmo comprimento.
3 Duas das palavras-códigos mais longas diferem apenas
no último bit e correspondem aos dois sı́mbolos menos
prováveis.
Otimalidade do código Huffman
Prova
j e k de Cm trocadas. Então
X X
0
L(Cm ) − L(Cm ) = pi li0 − pi li
= pj lk + pk lj − pj lj − pk lk
= (pj − pk )(lk − lj )
Prova
j e k de Cm trocadas. Então
X X
0
L(Cm ) − L(Cm ) = pi li0 − pi li
= pj lk + pk lj − pj lj − pk lk
= (pj − pk )(lk − lj )
Teorema
O código de Huffman é ótimo, ou seja, se C ∗ é um código de
Huffman e C 0 é um código qualquer unicamente decodificável,
L(C ∗ ) ≤ L(C 0 ).