Compressão sem Perda           Códigos de Huffman         Codificação Aritmética     Anderson Zanardo Dias   Anselmo Luiz ...
Compressão sem Perda Método de compressão que permite a recuperação exata dos dados originais após o processo de descompre...
Compressão sem Perda Divididos basicamente em duas categorias  Baseados em dicionário ou universal    Geram um arquivo com...
Códigos de Huffman O algoritmo de usa uma tabela de freqüência de ocorrências para cada símbolo A codificação para cada ca...
Huffman - Exemplo Comprimr a seqüência de caracteres         AAAAAABBBBBCCCCDDDEEF A menor codificação que pode ser utiliz...
Huffman - Exemplo Gera-se assim os bits 000000000000000000001001001001001010010010 010011011011100100101   para representa...
Huffman - Exemplo Freqüência       Caractere   A   B   C   D   E   F          Código   6   5   4   3   2   1
Huffman - Exemplo Árvore
Huffman - Exemplo A partir da árvore, identifica-se os códigos para cada símbolo Para isto basta percorrer a árvore até o ...
Huffman - Exemplo Codificando a seqüência original tem-se: 000000000000101010101011111111010010010011001100111, totalizand...
Huffman - Exemplo O processo de decodificação inicia-se com o primeiro pedaço na entrada Utiliza-se então bits sucessivos ...
Codificação AritméticaPatenteado pela IBMCodifica utilizando um número realNúmero entre 0 e 1Conjunto de probabilidadesPro...
Codificação Aritmética
Codificação Aritmética  Símbol    Probabilidade              Faixa    o                  4/10           0.0   <=   f   <  ...
Codificação Aritmética  CodificaçãoSímbolo Menor   Maior        0.0     1.0    A   0.0     0.4    B   0.16    0.28    B   ...
Codificação AritméticaDecodificação  0.23608Símbolo P   A   4/10   B   3/10   C   1/10   #   2/10
Comparação entre métodos   Arquivo       Tamanho       H.         C.A.   Arq.1         2808               80%       93%   ...
Conclusão A escolha entre o código de Huffman e o código aritmético não tem impacto sobre a qualidade final da imagem O có...
Referências Bibliográficas Codificação Huffman. Fundão da Computação - Codificação Huffman. http://www.fundao.pro.br/. Con...
Próximos SlideShares
Carregando em…5
×

Compressão sem Perdas - Códigos de Huffman e Codificação Aritmética

2.836 visualizações

Publicada em

Trabalho apresentado na disciplina de Tópicos em Computação Gráfica, no curso de Informática, na Universidade Estadual do Oeste do Paraná.

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.836
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
63
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Compressão sem Perdas - Códigos de Huffman e Codificação Aritmética

  1. 1. Compressão sem Perda Códigos de Huffman Codificação Aritmética Anderson Zanardo Dias Anselmo Luiz Éden Battisti Darlon Vasata
  2. 2. Compressão sem Perda Método de compressão que permite a recuperação exata dos dados originais após o processo de descompressão Exemplos de aplicações que exigem que o processo de compressão e descompressão seja livre de perdas de informação Imagens médicas digitais Transmissão de textos Programas executáveis Banco de Dados
  3. 3. Compressão sem Perda Divididos basicamente em duas categorias Baseados em dicionário ou universal Geram um arquivo comprimido contendo códigos de comprimento fixo, normalmente, com 12 a 16 bits Não necessitam do conhecimento da freqüência com que os símbolos fonte ocorrem na informação original Métodos estatísticos Códigos de comprimentos variáveis Os dados na informação original que aparecem com maior freqüência são representados por palavras- código menores
  4. 4. Códigos de Huffman O algoritmo de usa uma tabela de freqüência de ocorrências para cada símbolo A codificação para cada caractere deve ter um prefixo único É necessário atribuir uma string de tamanho variável para cada caractere Se os dados forem arranjados em uma árvore binária, uma codificação para cada caractere é encontrada seguindo a árvore da raiz para o caractere folha
  5. 5. Huffman - Exemplo Comprimr a seqüência de caracteres AAAAAABBBBBCCCCDDDEEF A menor codificação que pode ser utilizada para representá-la em binário é de três bits por caractere Caractere A B C D E F Código 000 001 010 011 100 101
  6. 6. Huffman - Exemplo Gera-se assim os bits 000000000000000000001001001001001010010010 010011011011100100101 para representar a seqüência original Isso dá 63 bits de comprimento Para usar o código Huffman e comprimir esta seqüência, é necessário primeiro montar uma árvore de Huffman com base na freqüência de ocorrência de cada caractere
  7. 7. Huffman - Exemplo Freqüência Caractere A B C D E F Código 6 5 4 3 2 1
  8. 8. Huffman - Exemplo Árvore
  9. 9. Huffman - Exemplo A partir da árvore, identifica-se os códigos para cada símbolo Para isto basta percorrer a árvore até o símbolo desejado e "anotar" o bit correspondente às arestas percorridas Assim, gera-se a tabela Caractere A B C D E F Código 00 10 11 010 0110 0111
  10. 10. Huffman - Exemplo Codificando a seqüência original tem-se: 000000000000101010101011111111010010010011001100111, totalizando 51 bits Compressão de 12 bits, ou cerca de 20% Em casos reais a compressão obtida pode ser bem maior pois a freqüência de alguns símbolos é bastante grande enquanto a de outros é quase nula Caracteres mais freqüentes, e conseqüentemente com símbolos mais curtos, são melhor representados, aumentando bastante a taxa de compressão
  11. 11. Huffman - Exemplo O processo de decodificação inicia-se com o primeiro pedaço na entrada Utiliza-se então bits sucessivos da entrada para determinar se vai para a direita ou para a esquerda na árvore de decodificação Quando se alcança uma folha da árvore um caractere é decodificado, então coloca-se aquele caractere no fluxo de saída O próximo bit no fluxo de entrada é o primeiro bit do próximo caractere
  12. 12. Codificação AritméticaPatenteado pela IBMCodifica utilizando um número realNúmero entre 0 e 1Conjunto de probabilidadesProblema: precisão extremaProblema: limite do PF
  13. 13. Codificação Aritmética
  14. 14. Codificação Aritmética Símbol Probabilidade Faixa o 4/10 0.0 <= f < 0.4 A 3/10 0.4 <= f < 0.7 B 1/10 0.7 <= f < 0.8 C 2/10 0.8 <= f < 1.0 # Esta tabela deve ser armazenada
  15. 15. Codificação Aritmética CodificaçãoSímbolo Menor Maior 0.0 1.0 A 0.0 0.4 B 0.16 0.28 B 0.208 0.244 C 0.2332 0.2368 # 0.23608 0.2368
  16. 16. Codificação AritméticaDecodificação 0.23608Símbolo P A 4/10 B 3/10 C 1/10 # 2/10
  17. 17. Comparação entre métodos Arquivo Tamanho H. C.A. Arq.1 2808 80% 93% Arq.2 2808 25% 47% Arq.3 2808 15% 39%Arq.1: Letras AArq.2: A legeira raposa marrom ataca o cão preguiçosoArq.3: Texto comum
  18. 18. Conclusão A escolha entre o código de Huffman e o código aritmético não tem impacto sobre a qualidade final da imagem O código 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 compressão, efetivamente, ocorre quando representamos cada pixel por uma quantidade menor de bits A compressão sem perdas permite a recuperação total da imagem original, contudo apresenta baixa taxa de compressão se comparada aos métodos com perdas
  19. 19. Referências Bibliográficas Codificação Huffman. Fundão da Computação - Codificação Huffman. http://www.fundao.pro.br/. Consultado em 15 de Set. de 2005. PINHEIRO, José Mauricio Santos; Técnicas de Compactação e Compressão. Projeto e Gestão 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, João Fonseca. Compressão Sem Perdas de Imagens Digitais. http://www.infonet.com.br/users/jfonseca/SEMPERDAS.HTM. Consultado em 17 de Out. de 2007.

×