001_Compressao Sem Perdas - Huffman e Aritmetica.docx

May 13, 2018 | Author: Paulo Giovanny Bertulino | Category: Data Compression, Computer Data, Applied Mathematics, Computing, Technology


Comments



Description

Compressão sem PerdaCódigos de Huffman Codificação Aritmética Anderson Zanardo Dias Anselmo Luiz Éden Battisti Darlon Vasata 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 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. 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 . normalmente. Códigos de comprimentos variáveis Os dados na informação original que aparecem com maior freqüência são representados por palavrascódigo menores . uma codificação para cada caractere é encontrada seguindo a árvore da raiz para o caractere folha .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. Huffman .Exemplo  Comp rimr 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 Huffman .Exemplo  Gera-se assim os bits 00000000000000000000loolooloolool oiniono oiooiioiioiiiooiooioi 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 . Huffman .Exemplo • Freqüência Caractere A B C D E F Código 6 5 4 3 2 1 . » . . '.- . .Exemplo • Árvore — -40." 1 ....n<1.Huffman . .-- .. .. ■ " ) .._.- ~ . _ e  % % % %..55 . Huffman . gera-se a tabela Caractere Código A B C D E F 00 10 11 010 0110 0111 .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. Huffman . 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 . totalizando 51 bits  Compressão de 12 bits.Exemplo  Codificando a seqüência original tem-se: 00000000000noinoloioniiiiiiolooloolool loolloom. nula  Caracteres mais freqüentes.Exemplo  O processo de decodificação inicia-se com o primeiro pedaço na entrada  Utiliza-se então bits sucessivos da entrada . aumentando bastante a taxa de compressão Huffman . e conseqüentemente com símbolos mais curtos. são melhor representados. 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 . Codificação Aritmética  Patenteado pela IBM     Codifica utilizando um número real Número entre O e 1 Conjunto de probabilidades Problema: precisão extrema  Problema: limite do PF . 1 0.2332 0.244 0.Codificação Aritmética 1.244 0.23 608 0.236 0.208 0.0 0.2368 0.4 0.28 0.2332 15 # . 0 0.0 A .16 0.16 B B 0.208 C 0.0. 0 <= f < 0.7 0.0 Esta tabela deve ser armazenada .8 0.4 <= f < 0.8 <= f < 1.7 <= f < 0.Codificação Aritmética o Símbol Probabilidade 4/10 A B C # 3/10 1/10 2/10 Faixa 0.4 0. 0 3.4 0.244 0.2368 0.2332 .208 0.244 Símbolo Menor Maior 0.208 0.16 0.0 A 0.23 608 0.2368 #0.23608 0.2332 BC 0.0 0.16 15 0.4 B 0.0 1.2368 0.28 0.28 B0.208 0.2332 0.16 0.Codificação Aritmética Codificação 1.0 A 0.244 C 0.4 0.236 0.0 0. 4 0.23 608 0.16 0.208 C 0.0 A 0.0 0.0 0.Codificação Aritmética Decodificação 1.2332 0.16 0.28 0.244 0.2360.23608 Símbolo P A 4/10 B 3/10 C 1/10 # 2/10 0.244 0.2368 0.2332 15 .208 0.4 0. 1: Letras 'A' Arq.3: Texto comum .3 2808 2808 2808 H. 80% 25% 15% 93% 47% 39% Arq.Comparação entre métodos Arquivo Tamanho Arq.1 Arq. C.2 Arq.A.2: A legeira raposa marrom ataca o cão preguiçoso Arq. 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. 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 . representado por um byte. o processo de compressão. Fundão da Computação Codificação Huffman.info .  Huffman Coding. Consultado na ITERNET em 14 de Setembro de 2005. de 2005.fundao. Projeto e Gestão de Redes de Computadores.com. José Mauricio Santos. http://www. DataCompression.br/.br/.compressão se comparada aos métodos com perdas Referências Bibliográficas  Codificação Huffman.Huffman . Técnicas de Compactação e Compressão.  PINHEIRO. Consultado em 15 de Set.pro. http://www.projetoderedes. de 2007. Compressão Sem Perdas de Imagens Digitais. http://datacompression. Consultado em 17 de Out.info/.Coding. João Fonseca.com. Consultado em 17 de Set.  NETO. .HTM. http://www.br/users/jfonseca/SEMPERDA S. de 2005.infonet.
Copyright © 2024 DOKUMEN.SITE Inc.