A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage."— Transcrição da apresentação:

1 Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage

2 2/28 Implementação de Sistemas de Informação para Web Por que usar compressão? Economia de espaço Economia de rede Velocidade de acesso Processamento eficiente

3 3/28 Implementação de Sistemas de Informação para Web Conceitos Básicos... Modelagem –Estática –Semi-estática –Adaptativa Codificação –Dicionário –Estatística

4 4/28 Implementação de Sistemas de Informação para Web Conceitos Básicos Desempenho dos métodos –Taxa de Compressão (1 – n/u) x 100 –Bits por caracter cn/u –Razão de compressão (n/u) x 100

5 5/28 Implementação de Sistemas de Informação para Web Exemplos de Compressão Prefixos de Redundância Mínima –Huffman Dicionário –LZ77, LZ78 –Gzip, Compress, bzip2 Codificação Aritimética

6 6/28 Implementação de Sistemas de Informação para Web Huffman com Palavras Integração com RI Modelo Sem-Espaços Duas passagens pelo texto: –Coleta de estatísticas –Codificação

7 7/28 Implementação de Sistemas de Informação para Web Exemplo... Para cada rosa rosa, uma rosa é uma rosa Símbolos –{para, cada, rosa,,, uma, é} Freqüências –1, 1, 4, 1, 2, 1

8 8/28 Implementação de Sistemas de Informação para Web Exemplo... para:1cada:1rosa:4, :1uma:2é:1 para:1cada: rosa:4, :1uma:2é:1

9 9/28 Implementação de Sistemas de Informação para Web Exemplo... para:1cada: rosa:4, :1uma:2é: para:1cada: , :1é: rosa:4uma:2 1 0

10 10/28 Implementação de Sistemas de Informação para Web Exemplo... para:1cada: , :1é: rosa:4 uma:

11 11/28 Implementação de Sistemas de Informação para Web Exemplo para:1cada: , :1é: rosa:4 uma:

12 12/28 Implementação de Sistemas de Informação para Web Codificação de Huffman Árvore Canônica Abordagem da árvore –Trivial –Ineficiente Comprimento dos códigos

13 13/28 Implementação de Sistemas de Informação para Web Algoritmo Eficiente... Recebe como entrada um vetor A com as freqüências ordenadas (não- crescente). Saída vetor com comprimento dos códigos (1, 2, 4, 4, 4, 4)

14 14/28 Implementação de Sistemas de Informação para Web Algoritmo Eficiente Manipulação de vários vetores logicamente distintos in situ Divide-se em 3 fases: –Combinação dos nós –Profundidade dos nós internos –Comprimento dos códigos

15 15/28 Implementação de Sistemas de Informação para Web Primeira Fase... Direita para esquerda Freqüência é mantida até nó ser processado Não precisa de apontador para pais de nós folha – (0,1,2,3,3) -> (1,2,4,4,4,4)

16 16/28 Implementação de Sistemas de Informação para Web Primeira fase... void calculoHuffman(A, n) { r = n; s = n; for (t = n; t >= 2; t--){ /* Procura posicao */ if (s t && A[r] < A[s])){/* No interno */ A[t] = A[r]; A[r] = t; r--; } else { /* No-folha */ A[t] = A[s]; s--; } /* Atualiza Frequencias */ if (s t && A[r] < A[s])){ A[t] += A[r]; A[r] = t; r--; } else { A[t] += A[s]; s--; }

17 17/28 Implementação de Sistemas de Informação para Web Segunda fase... Esquerda para direita Profundidade dos nós internos –Raiz = 0 –Filhos = Pai+1

18 18/28 Implementação de Sistemas de Informação para Web Segunda Fase {...} A[2] = 0; for (t = 3; t <= n; t++) A[t] = A[A[t]] + 1; {...}

19 19/28 Implementação de Sistemas de Informação para Web Terceira Fase... Esquerda pra direita d indica nós disponíveis no nível h u indica nós utilizados no nível h

20 20/28 Implementação de Sistemas de Informação para Web Terceira Fase d = 1; u = 0; h = 0; r = 2; t = 1; while (d > 0){ while (r <= n && A[r] == d) { u++; r++; } while (d > u) { A[t] = h; t++; d--; } d = 2 * u; h++; u = 0; }

21 21/28 Implementação de Sistemas de Informação para Web Códigos Canônicos... Comprimentos dados pelo algoritmo de Huffman Códigos de um mesmo comprimento são inteiros consecutivos

22 22/28 Implementação de Sistemas de Informação para Web Códigos Canônicos Compressão baseada em duas tabelas de tamanho L Base: primeiro código do nível Offset: índice da primeira palavra do nível

23 23/28 Implementação de Sistemas de Informação para Web Codificação Recebe o índice da palavra como parâmetro Exemplo: 4 (cada) codifica(int i){ l = 1; while (i >= offset[l+1]) l++; codigo = i - offset[l] + base[l]; Escreve(codigo, l); }

24 24/28 Implementação de Sistemas de Informação para Web Decodificação Retorna o índice da palavra Exemplo: 1100 (para) int decodifica(){ l = 1; codigo = leBit(entrada); while ((codigo = base[l+1]){ codigo <<=1; codigo += leBit(entrada); l++; } return codigo - base[l] + offset[l]; }

25 25/28 Implementação de Sistemas de Informação para Web Huffman com Bytes Huffman Pleno –0x70 0x71 0x4f | 0x71 0x4f Huffman Sincronizado –0xf0 0x71 0x4f | 0xf1 0x4f

26 26/28 Implementação de Sistemas de Informação para Web Pesquisa em Texto Comprimido Casamento exato: –Busca no vocabulário –Procura direta com padrão comprimido Casamento aproximado: –Busca aproximada no vocabulário –Marca-se palavras encontradas –Percorre-se o arquivo comprimido e analisa se chegou em uma palavra marcada

27 27/28 Implementação de Sistemas de Informação para Web Casamento Aproximado Máscara de bits Autômato não-determinista uma ro* rosa

28 28/28 Implementação de Sistemas de Informação para Web Dúvidas?Dúvidas?


Carregar ppt "Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage."

Apresentações semelhantes


Anúncios Google