Você está na página 1de 25

Compresso sem Perda

Cdigos de Huffman
Codificao Aritmtica

Anderson Zanardo Dias


Anselmo Luiz den Battisti
Darlon Vasata

Compresso sem Perda


Mtodo de compresso que
permite a
recuperao exata dos dados
originais aps
o processo de descompresso
Exemplos de aplicaes que
exigem que o

processo de compresso e
descompresso
seja livre de perdas de informao
Imagens mdicas digitais
Transmisso de textos
Programas executveis
Banco de Dados

Compresso sem Perda

Divididos basicamente em duas

categorias
Baseados em dicionrio ou universal
Geram um arquivo comprimido contendo
cdigos de
comprimento fixo, normalmente, com 12 a
16 bits
No necessitam do conhecimento da
freqncia com
que os smbolos fonte ocorrem na
informao original

Mtodos estatsticos

Cdigos de comprimentos variveis


Os dados na informao original que
aparecem com
maior freqncia so representados por
palavrascdigo menores

Cdigos de Huffman
O algoritmo de usa uma tabela de freqncia de
ocorrncias para cada smbolo
A codificao para cada caractere deve ter um
prefixo nico
necessrio atribuir uma string de tamanho
varivel para cada caractere
Se os dados forem arranjados em uma rvore
binria, uma codificao para cada caractere
encontrada seguindo a rvore da raiz para o
caractere folha

Huffman - Exemplo
Comp rimr a seqncia de caracteres
AAAAAABBBBBCCCCDDDEEF

A menor codificao que pode ser


utilizada
para represent-la em binrio de trs
bits
por caractere
Caractere

Cdigo

000

001

010

011

100

101

Huffman - Exemplo
Gera-se assim os bits
00000000000000000000loolooloolool
oiniono
oiooiioiioiiiooiooioi para
representar a
seqncia original
Isso d 63 bits de comprimento
Para usar o cdigo Huffman e
comprimir esta

seqncia, necessrio primeiro


montar
uma rvore de Huffman com base na
freqncia de ocorrncia de cada
caractere

Huffman - Exemplo
Freqncia
Caractere

Cdigo

Huffman - Exemplo
rvore

-40.55 ,--

.._,."

1
.

"

.-

.-

_
e

%
%
%.

...

',,n<1.
...

Huffman - Exemplo
A partir da rvore, identifica-se os cdigos para
cada smbolo
Para isto basta percorrer a rvore at o
smbolo desejado e "anotar" o bit
correspondente s arestas percorridas
Assim, gera-se a tabela
Caractere
Cdigo

00

10

11

010

0110

0111

Huffman - Exemplo
Codificando a seqncia original tem-se:
00000000000noinoloioniiiiiiolooloolool
loolloom,
totalizando 51 bits
Compresso de 12 bits, ou cerca de 20%
Em casos reais a compresso obtida
pode ser bem
maior pois a freqncia de alguns
smbolos bastante
grande enquanto a de outros quase

nula
Caracteres mais freqentes, e
conseqentemente com
smbolos mais curtos, so melhor
representados,
aumentando bastante a taxa de
compresso

Huffman - Exemplo
O processo de decodificao inicia-se com o
primeiro pedao na entrada
Utiliza-se ento bits sucessivos da entrada

para
determinar se vai para a direita ou para a
esquerda
na rvore de decodificao
Quando se alcana uma folha da rvore um
caractere decodificado, ento coloca-se
aquele
caractere no fluxo de sada
O prximo bit no fluxo de entrada o primeiro
bit do
prximo caractere

Codificao Aritmtica
Patenteado pela IBM

Codifica utilizando um nmero real


Nmero entre O e 1
Conjunto de probabilidades
Problema: preciso extrema

Problema: limite do PF

Codificao Aritmtica
1.0

0.1

0.28

0.244

0.244
0.236

0.2368

0.23 608

0.2332

0.4
0.208

0.2332
15
#

0.16

0.0

0.16

0.208

0.0
A

Codificao Aritmtica

Smbol Probabilidade
4/10
A
B
C
#

3/10
1/10
2/10

Faixa
0.0 <= f < 0.4
0.4 <= f < 0.7
0.7 <= f < 0.8
0.8 <= f < 1.0

Esta tabela deve ser armazenada

Codificao Aritmtica
Codificao

1.0

3.28

0.4

0.236

0.244

0.2368

0.23 608
0.244

Smbolo Menor Maior


0.0
1.0
A 0.0
0.4
0.4
B 0.16
0.28
B0.208 0.244
C 0.2332 0.2368
#0.23608 0.2368

0.0

0.0

0.16

0.208

0.2332

BC

0.208
0.16

15

0.2332

Codificao Aritmtica
Decodificao

1.0

0.28

0.4

0.2360.244

0.23 608

0.23608
Smbolo P
A
4/10
B
3/10
C
1/10
#
2/10

0.2368

0.244

0.4

0.2332

0.208
0.16

0.0

0.0

0.16

0.208

0.2332
15

Comparao entre mtodos


Arquivo

Tamanho

Arq.1
Arq.2
Arq.3

2808
2808
2808

H.

C.A.
80%
25%
15%

93%
47%
39%

Arq.1: Letras 'A'


Arq.2: A legeira raposa marrom ataca o co preguioso
Arq.3: Texto comum

Concluso
A escolha entre o cdigo de Huffman e o cdigo
aritmtico no
tem impacto sobre a qualidade final da imagem
O cdigo de Huffman geralmente adotado em
virtude do baixo
custo computacional
Como o valor de cada pixel da imagem original ,
normalmente,
representado por um byte, o processo de compresso,
efetivamente, ocorre quando representamos cada
pixel por uma
quantidade menor de bits
A compresso sem perdas permite a recuperao
total da
imagem original, contudo apresenta baixa taxa de

compresso
se comparada aos mtodos com perdas

Referncias Bibliogrficas
Codificao Huffman. Fundo da Computao Codificao
Huffman. http://www.fundao.pro.br/. Consultado em 15
de Set.
de 2005.
PINHEIRO, Jos Mauricio Santos; Tcnicas de
Compactao e
Compresso. Projeto e Gesto de Redes de
Computadores.
http://www.projetoderedes.com.br/. Consultado na
ITERNET em
14 de Setembro de 2005.
Huffman Coding. DataCompression.info - Huffman

Coding.
http://datacompression.info/. Consultado em 17 de Set.
de 2005.
NETO, Joo Fonseca. Compresso Sem Perdas de
Imagens
Digitais.
http://www.infonet.com.br/users/jfonseca/SEMPERDA
S.HTM.
Consultado em 17 de Out. de 2007.

Você também pode gostar