450 likes | 582 Views
Universidade Federal do Pará Centro de Ciência Exatas e Naturais Departamento de Informática Disciplina: Estrutura de Dados II Professor: Antonio Coimbra Sampaio Compressão e Compactação de Dados Alunos: Abnatal Junior 9908800201 Frederico Reis 9908802001. Por que comprimir ?.
E N D
Universidade Federal do Pará Centro de Ciência Exatas e Naturais Departamento de Informática Disciplina: Estrutura de Dados II Professor: Antonio Coimbra Sampaio Compressão e Compactação de Dados Alunos: Abnatal Junior 9908800201 Frederico Reis 9908802001
Por que comprimir ? • Redução do espaço físico utilizado • Agilização da transmissão de dados
Redução do espaço físico utilizado: Mais comumente utilizada em bancos de dados, que incorporando a compressão no projeto de seus registros permite um significativo ganho em termos de ocupação em discos e velocidade de acesso.
Agilizar a transmissão de dados: • Alterando a taxa de transferência • Permitindo o aumento do número de terminais em uma rede
Tiposde compressão • Compressão lógica • Compressão física
Compressão lógica Refere-se ao projeto de representação otimizada de dados. Ex: Projeto de um banco de dados utilizando sequências de bits para representação de campos de dados.
Compressão física Realizada sobre dados existentes, a partir dos quais é verificada a repetição de caracteres para efetivar a redução do número de elementos de dados.
Tipos de compressão física • Orientada a caracter- indica o caracter (ou conjunto de caracteres) repetido através da substituição por um caracter especial; • Estatística- indica a frequência de repetição de caracteres e representa isso através de sequências de bits
Compressão orientada a caracter • Run-length • Run-length estendido • Inserção e deleção Seleção de caracteres indicadores:
Codificação run-length Exemplo: AAAAAAA Codificador AAAAAAA run-length Ce7A
Codificaçãorun-length estendido Utilizado para número de repetições maior que 256 e há caracteres delimitadores no início e no fim da sequência de codificação.
Exemplo: SO R A 980 SI • SO- Shift Out • R- Run length • A- Caracter repetido • 980-Nº de repetições do caracter • SI- Shift In
Codificação por inserção e deleção Utilização de um caracter convencional quando não for possível a colocação de caracteres especiais. Exemplo: K6A
Técnicas de compressão orientada a caracter: • Supressão de caracteres nulos • Mapeamento de bit • Comprimento de fileira • Compactação de meio byte • Codificação diatômica • Substituição de padrões • Codificação relativa
Comprimento de fileira Notação: CeCN • Ce-caracter especial • C- caracter repetido • N-nº de repetições
Supressão de caracteres nulos Notação: CeN Ce-caracter especial N-Nº de repetições Exemplo: ...vazio. Exatamente Após codificação: ...vazio.Ce9Exatamente
Mapeamento de bit Exemplo: ...abacate... codificador ...abacate... ...Mbbcte...
Mbbcte Mb-Mapa de bits Mapa de bits: 0 1 0 1 0 1 1 1 a b a c a t e
Compactação de meio byte 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0 1 2 3 4 5 6 7 8 9 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011
Ce N C1 C2 C3 C4 C5 ... 1byte 1byte 1byte 1byte Ce-caracter especial N-nº(binário) de caracteres comprimidos C1-Metade do caracter comprimido C2 a C5-Metade não comprimivel
Técnica dos sete bits Aplica-se somente a arquivos texto. Baseia-se no fato que nenhum caracter de texto utiliza o oitavo bit.
Exemplo: Compactar ‘ABCD’ A 0 1000001 B 0 1000010 C 0 1000011 D 0 1000100 Após compactação: 1000001.1000010.1000011.1000100
Representação não ASCII Consiste em adotar uma nova representação binária para os caracteres. Só faz sentido se o número de caracteres distintos for menor que 128.
Antes da compactação: 01000001010000100100001101000100 Após compactação: 00011011
Codificação diatômica Permite a representação de um par de caracteres em apenas um caracter especial. codificador Exemplo: avião aviCe
Substituição de padrões São estabelecidas tabelas de palavras de maior freqüência de ocorrência para substituição com o caracter especial Palavra =>Ce
Codificação relativa • Valores intervalares • Valores binários
Valores intervalares Val Var1 Var2... • Val-Primeiro valor da sequência • VarN-Variação do valor anterior para o atual Exemplo: 10.3 10.1 10.8 10.4 10.4 10.9 10.2
Exemplo: 10.3 10.1 10.8 10.4 10.4 10.9 10.2 Codificador 10.3 -.2 .7 -.4 0 .5 -.7
Valoresbinários Comparação feita entre uma linha e outra Exemplo: ...01001011100010101... ...01001011111100001... A diferença seria em 5 bits: ...______MMMM_M_...
Compressão Estatística • Realiza uma representação otimizada de caracteres ou grupo de caracteres • Codificação de Huffman • Codificação de Shanno-Fano
Codificação de Huffman Obtém uma nova representação para cada caracter considerando sua probabilidade de ocorrência. O processo de obtenção baseia-se na montagem de uma árvore binária.
Exemplo Considerando o conjunto de 8 caracteres definido abaixo
Aplicando a codificação de Huffman, obtemos uma nova tabela de códigos
1 0 1 0 1 0 1 0 1 0 0 1 1 0 Obtenção do código de Huffman H G F E D C B A
Codificação de Shannon-Fano Assim como o código de Huffman, este método também obtém uma nova representação para cada caracter de acordo com sua probabilidade de ocorrência. O processo de obtenção baseia-se na divisão de conjuntos de probabilidades.
Processo de Codificação Considerando o conjunto dos caracteres a codificar definido abaixo
Obtenção do código de Shannon-Fano A 0.3 0 0 B 0.3 0 1 1 0 C0.3 1 1 D 0.1