Você está na página 1de 19

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
Comprimr a seqncia de caracteres
AAAAAABBBBBCCCCDDDEEF

A menor codificao que pode ser utilizada para represent-la em binrio de trs bits por caractere
Caractere Cdigo A 000 B 001 C 010 D 011 E 100 F 101

Huffman - Exemplo
Gera-se assim os bits
000000000000000000001001001001001010010010 010011011011100100101

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 A 6 B 5 C 4 D 3 E 2 F 1

Huffman - Exemplo
rvore

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 A 00 B 10 C 11 D 010 E 0110 F 0111

Huffman - Exemplo
Codificando a seqncia original tem-se:
000000000000101010101011111111010010010011001100111,

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 0 e 1 Conjunto de probabilidades Problema: preciso extrema Problema: limite do PF

Codificao Aritmtica

Codificao Aritmtica
Smbol o A B C # Probabilidade 4/10 3/10 1/10 2/10 0.0 0.4 0.7 0.8 Faixa <= <= <= <= f f f f < < < < 0.4 0.7 0.8 1.0

Esta tabela deve ser armazenada

Codificao Aritmtica
Codificao

Smbolo Menor A B B C #

Maior

0.0 1.0 0.0 0.4 0.16 0.28 0.208 0.244 0.2332 0.2368 0.23608 0.2368

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

Comparao entre mtodos


Arquivo Arq.1 Arq.2 Arq.3 Tamanho 2808 2808 2808 H. 80% 25% 15% C.A. 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/SEMPERDAS.HTM. Consultado em 17 de Out. de 2007.