universidade federal de minas gerais departamento de ciência da computação compressão de textos...
TRANSCRIPT
![Page 1: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/1.jpg)
Universidade Federal de Minas GeraisDepartamento de Ciência da Computação
Compressão de TextosCompressão de Textos
Juliano Palmieri Lage
![Page 2: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/2.jpg)
2/28Implementação de Sistemas de Informação para Web
Por que usar compressão?Por que usar compressão?
Economia de espaço
Economia de rede
Velocidade de acesso
Processamento eficiente
![Page 3: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/3.jpg)
3/28Implementação de Sistemas de Informação para Web
Conceitos Básicos...Conceitos Básicos...
Modelagem– Estática– Semi-estática– Adaptativa
Codificação– Dicionário– Estatística
![Page 4: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/4.jpg)
4/28Implementação de Sistemas de Informação para Web
Conceitos BásicosConceitos 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
![Page 5: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/5.jpg)
5/28Implementação de Sistemas de Informação para Web
Exemplos de CompressãoExemplos de Compressão
Prefixos de Redundância Mínima– Huffman
Dicionário– LZ77, LZ78
– Gzip, Compress, bzip2
Codificação Aritimética
![Page 6: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/6.jpg)
6/28Implementação de Sistemas de Informação para Web
Huffman com PalavrasHuffman com Palavras
Integração com RI
Modelo Sem-Espaços
Duas passagens pelo texto:
– Coleta de estatísticas
– Codificação
![Page 7: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/7.jpg)
7/28Implementação de Sistemas de Informação para Web
Exemplo...Exemplo...
“Para cada rosa rosa, uma rosa é uma rosa”
Símbolos– {“para”, “cada”, ”rosa”, “,□”,
“uma”, “é”}Freqüências
– 1, 1, 4, 1, 2, 1
![Page 8: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/8.jpg)
8/28Implementação de Sistemas de Informação para Web
Exemplo...Exemplo...
para:1 cada:1 rosa:4 , □:1 uma:2 é:1
para:1 cada:1
20 1
rosa:4 , □:1 uma:2 é:1
![Page 9: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/9.jpg)
9/28Implementação de Sistemas de Informação para Web
Exemplo...Exemplo...
para:1 cada:1
20 1
rosa:4 , □:1 uma:2é:1
20 1
para:1 cada:1
20 1
, □:1 é:1
20 1
4
rosa:4 uma:2
10
![Page 10: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/10.jpg)
10/28Implementação de Sistemas de Informação para Web
Exemplo...Exemplo...
para:1 cada:1
20 1
, □:1 é:1
20 1
4
rosa:4
uma:2
6
0
0 1
1
![Page 11: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/11.jpg)
11/28Implementação de Sistemas de Informação para Web
ExemploExemplo
para:1 cada:1
20 1
, □:1 é:1
20 1
4
rosa:4
uma:2
6
0
0 1
1
0 1
10
![Page 12: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/12.jpg)
12/28Implementação de Sistemas de Informação para Web
Codificação de HuffmanCodificação de Huffman
Árvore Canônica
Abordagem da árvore
– Trivial
– Ineficiente
Comprimento dos códigos
![Page 13: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/13.jpg)
13/28Implementação de Sistemas de Informação para Web
Algoritmo Eficiente...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)
![Page 14: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/14.jpg)
14/28Implementação de Sistemas de Informação para Web
Algoritmo EficienteAlgoritmo 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
![Page 15: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/15.jpg)
15/28Implementação de Sistemas de Informação para Web
Primeira Fase...Primeira Fase...
Direita para esquerdaFreqüência é mantida até nó ser
processadoNão precisa de apontador para
pais de nós folha– (0,1,2,3,3) -> (1,2,4,4,4,4)
![Page 16: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/16.jpg)
16/28Implementação de Sistemas de Informação para Web
Primeira fase...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]; A[r] = t; r--; } else { A[t] += A[s]; s--; } }
![Page 17: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/17.jpg)
17/28Implementação de Sistemas de Informação para Web
Segunda fase...Segunda fase...
Esquerda para direitaProfundidade dos nós internos
– Raiz = 0– Filhos = Pai+1
![Page 18: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/18.jpg)
18/28Implementação de Sistemas de Informação para Web
Segunda FaseSegunda Fase
{...}A[2] = 0; for (t = 3; t <= n; t++) A[t] = A[A[t]] + 1;
{...}
![Page 19: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/19.jpg)
19/28Implementação de Sistemas de Informação para Web
Terceira Fase...Terceira Fase...
Esquerda pra direitad indica nós disponíveis no nível
h u indica nós utilizados no nível h
![Page 20: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/20.jpg)
20/28Implementação de Sistemas de Informação para Web
Terceira FaseTerceira 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; }
![Page 21: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/21.jpg)
21/28Implementação de Sistemas de Informação para Web
Códigos Canônicos...Códigos Canônicos...
Comprimentos dados pelo algoritmo de Huffman
Códigos de um mesmo comprimento são inteiros consecutivos
![Page 22: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/22.jpg)
22/28Implementação de Sistemas de Informação para Web
Códigos CanônicosCó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
![Page 23: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/23.jpg)
23/28Implementação de Sistemas de Informação para Web
CodificaçãoCodificaçã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);}
![Page 24: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/24.jpg)
24/28Implementação de Sistemas de Informação para Web
DecodificaçãoDecodificaçã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];}
![Page 25: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/25.jpg)
25/28Implementação de Sistemas de Informação para Web
Huffman com Huffman com BytesBytes
Huffman Pleno– 0x70 0x71 0x4f | 0x71 0x4f
Huffman Sincronizado– 0xf0 0x71 0x4f | 0xf1 0x4f
![Page 26: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/26.jpg)
26/28Implementação de Sistemas de Informação para Web
Pesquisa em Texto Pesquisa em Texto ComprimidoComprimido 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
![Page 27: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/27.jpg)
27/28Implementação de Sistemas de Informação para Web
Casamento AproximadoCasamento Aproximado
Máscara de bitsAutômato não-determinista
uma ro* rosa
![Page 28: Universidade Federal de Minas Gerais Departamento de Ciência da Computação Compressão de Textos Juliano Palmieri Lage](https://reader035.vdocuments.mx/reader035/viewer/2022062700/552fc130497959413d8d4f99/html5/thumbnails/28.jpg)
28/28Implementação de Sistemas de Informação para Web
Dúvidas?Dúvidas?Dúvidas?Dúvidas?