Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.