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

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

Compressão de Textos Juliano Palmieri Lage.

Apresentações semelhantes


Apresentação em tema: "Compressão de Textos Juliano Palmieri Lage."— Transcrição da apresentação:

1 Compressão de Textos Juliano Palmieri Lage

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

3 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 Implementação de Sistemas de Informação para Web

4 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 Implementação de Sistemas de Informação para Web

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

6 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 Implementação de Sistemas de Informação para Web

7 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 Implementação de Sistemas de Informação para Web

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

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

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

11 Implementação de Sistemas de Informação para Web
Exemplo 10 1 6 rosa:4 1 4 uma:2 1 2 2 1 1 para:1 cada:1 , □:1 é:1 Implementação de Sistemas de Informação para Web

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

13 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) Implementação de Sistemas de Informação para Web

14 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 Implementação de Sistemas de Informação para Web

15 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) Implementação de Sistemas de Informação para Web

16 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 < 1 || (r > 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 < 1 || (r > t && A[r] < A[s])){ A[t] += A[r]; } else { A[t] += A[s]; Implementação de Sistemas de Informação para Web

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

18 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; Implementação de Sistemas de Informação para Web

19 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 Implementação de Sistemas de Informação para Web

20 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; Implementação de Sistemas de Informação para Web

21 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 Implementação de Sistemas de Informação para Web

22 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 Implementação de Sistemas de Informação para Web

23 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); } Implementação de Sistemas de Informação para Web

24 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 << 1) >= base[l+1]){ codigo <<=1; codigo += leBit(entrada); l++; } return codigo - base[l] + offset[l]; Implementação de Sistemas de Informação para Web

25 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 Implementação de Sistemas de Informação para Web

26 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 Implementação de Sistemas de Informação para Web

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

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


Carregar ppt "Compressão de Textos Juliano Palmieri Lage."

Apresentações semelhantes


Anúncios Google