Compressão de Textos Juliano Palmieri Lage.

Slides:



Advertisements
Apresentações semelhantes
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Advertisements

Programação em Java Prof. Maurício Braga
Unidade VII Algoritmos Genéticos
Programação em Java Prof. Maurício Braga
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Amintas engenharia.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
03/08/2011 Professor Leomir J. Borba- –
Interação entre objetos
Problemas de fluxo numa rede
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Engenharia de Computação.
Série de Exercícios.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Recursividade Inhaúma Neves Ferraz
Coleta de resíduos. Sumário Resíduos Coleta de resíduos Contador de referências Marcação e varredura Parada e cópia Marcação e compactação Gerenciamento.
Compressão de Dados.
Arquivos Extensíveis.
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
Administração para Engenharia
AED – Algoritmos e Estruturas de Dados
Auditoria de Segurança da Informação
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Programação Dinámica Análise de algoritmos UNISUL
Listas Encadeadas.
Revisão da Linguagem C.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
Algoritmos de Ordenação 4
Inteligência Artificial
PROGRAMAÇÃO I UNIDADE 1.
Pesquisa em memória primária: hashing
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Salas de Matemática.
Tipos Abstratos de Dados
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Algorítmos e estrutura de dados III
Conceitos de Lógica Digital
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Amauri Oliveira Abril de 2010
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Rotação Simples e Dupla Katia Guimarães
Mergesort Katia Guimarães.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Fundamentos de Programação
Anne Magály de PaulaCanuto DIMAp/UFRN
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Algoritmos de Ordenação
Rio Verde - Goiás - Brasil
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
MONOGRAFIA MODELO DE ALGORITMO PARA COMPRESSÃO DE ÁUDIO
Estruturas de Dados Aula 15: Árvores
PROCESSAMENTO DIGITAL DE IMAGENS
Algoritmo de Huffman.
Técnicas de Compressão de Dados
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Transcrição da apresentação:

Compressão de Textos Juliano Palmieri Lage

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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