Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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 #
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.