Algorítmos e estrutura de dados III

Slides:



Advertisements
Apresentações semelhantes
Fundamentos da Representação de Informações em Computadores
Advertisements

Como se familiarizar com seu banco de dados usando o SPSS
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.
WebDesign Redes de Computadores Aula 07
Mineração de Dados Avaliação de Classificadores
FOLHA DE CÁLCULO 1.
Compressão de Dados ORI Ednaldo Pizzolato.
Planejamento-Mestre da Produção
Hashing Extensível o espaço de endereços disponíveis não é fixo
Árvore Binária de Busca
Árvores.
Compressão de Dados.
Arquivos Extensíveis.
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Reconhecimento de Padrões Dissimilaridade
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
A FAST APRIORI implementation
Como se familiarizar com seu banco de dados Como se familiarizar com seu banco de dados usando o SPSS Profa. Suzi Camey Depto de Estatística - UFRGS.
Capítulo 7 Multimídia 7.1 Introdução à multimídia
1 Universidade Federal de Minas Gerais JPEG Alessandra e Aline.
Análise Léxica Supondo o trecho de programa abaixo:
I – Informação Digital Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações Tecnologias de.
Marco Antonio Montebello Júnior
Progressão Aritmética (PA) Professor : Eduardo Jatobá
TRANSMISSÃO DE INFORMAÇÃO
Capítulo IV – Processamento de Imagem e Vídeo
Marco Antonio Montebello Júnior
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Meta - heurísticas Prof. Aurora
Formatos de Imagem - PNG
Grafos Árvores Geradoras.
Criptografia Simétrica
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Processamento Digital de Imagens
Compressão de Textos Juliano Palmieri Lage.
Pesquisa em Memória Primária
Sistemas Operacionais
Determinar o tipo de gramática
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Aula 17 1 Análise Sintáctica Compiladores, Aula Nº 17 João M. P. Cardoso.
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Algoritmos e Estrutura de Dados III
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Mineração da Web Recuperação de Informação
INTRODUÇÃO À ANÁLISE COMBINATÓRIA
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
TÉCNICAS DE COMPRESSÃO DE DADOS DISCIPLINA:R.COM..
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Formato: JPEG Extensão: JPG
Graphics Interchange Format formato para intercâmbio de gráficos
INE Fundamentos de Matemática Discreta para a Computação
PROCESSAMENTO DIGITAL DE IMAGENS
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Estrutura de Dados III Revisão

Algoritmo de Huffman.
Disciplina Engenharia da Qualidade II
Técnicas de Compressão de Dados
Metodologia da Pesquisa em Ensino de Ciências I
Links, Textos e Ancoras Profª Kelly E. Medeiros.
PSI2653: Meios Eletrônicos Interativos I I – Informação Digital Escola Politécnica da USP Engenharia de Sistemas Eletrônicos Meios Eletrônicos Interativos.
Capítulo 14 Camada 6 A Camada de Apresentação. Sumário A Camada de Apresentação.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Algorítmos e estrutura de dados III Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Compressão e Compactação de dados

Compressão de Dados X Compactação de Dados São dois processos distintos Compressão: reduz a quantidade de bits para representar algum dado Compactação: união dados que não estejam unidos. Ex.: Desfragmentação de discos

Compressão de Dados A compressão de dados, como o próprio nome sugere, é o ato de comprimir dados Comprimir algo é torná-lo menor, através de algum algoritmo de compressão, reduzindo a quantidade de bits para se representar um dado Comprimir dados destina-se também a retirar a redundância, baseando-se que muitos dados contém informações redundantes que podem ou precisam ser eliminadas de alguma forma Ex. A seqüência ‘AAAAAA’, que ocupa 6 bytes, poderia ser comprimida para ‘6A’, que ocupa 2 bytes

Compressão de Dados Além da eliminação de dados redundantes, a compressão de dados apresenta algumas vantagens: A economia de espaço em disco: quanto mais a informação for comprimida, maior a quantidade de informação pode ser armazenada; Rapidez no tempo de transmissão de dados: informações comprimidas são transmitidas mais rapidamente daquelas que não estão; MAS Tem-se um Preço a pagar => o custo computacional para codificar e decodificar o texto.

Compressão de Dados Com o avanço da tecnologia, a velocidade de processamento aumentou aproximadamente 2 mil vezes. Melhor investir mais poder de computação em compressão com o objetivo de obter mais espaço em disco ou menor tempo de transmissão. Além disso, métodos recentes de compressão têm permitido: Obter maior compressão em relação a métodos tradicionais, gerando maior economia de espaço. Acessar diretamente qualquer parte do texto comprimido sem necessidade de descomprimir todo o texto desde o início

Razão de Compressão Uma das formas de se verificar a eficiência de um algoritmo é através da razão de compressão Ela é definida pela porcentagem que o arquivo comprimido representa em relação ao tamanho do arquivo não comprimido. Exemplo: se o arquivo não comprimido possui 100 bytes e o arquivo comprimido resultante possui 30 bytes, então a razão de compressão é de 30%, ou 10:3

Tipos de Compressão Existem dois tipos de compressão: Compressão sem perda de dados Compressão com perda de dados

Compressão sem Perda de Dados

Compressão sem Perda de Dados Definido como uma operação sem perdas de nenhum dado A informação é comprimida por algum algoritmo e, ao descomprimir, todas as informações são recuperadas Exemplo típico: arquivos bzip, gzip, .gz Os mais conhecidos são o .zip ou .rar.

Compressão sem Perda de Dados Ele é usado quando é importante que a informação original e a descompactada sejam idênticas Ex.: executáveis e documentos texto E com relação às imagens? Alguns formatos usam apenas esse tipo. Ex. PNG e GIF* Outros formatos usam ambos. Ex.: TIFF e MNG Outros formatos usam algoritmos com perdas. Ex.: .bmp, .jpeg

Técnicas de Compressão sem Perda de Dados Antes de se utilizar a técnicas de compressão, é necessário saber qual o tipo de informação que será compactada Texto Imagens Sons Algoritmos de compactação de textos não são eficientes na compactação de sons

Técnicas de Compressão sem Perda de Dados Existem basicamente dois tipos de algoritmos de de compressão sem perda de dados : Algoritmos de Modelos Estatísticos Transformação de Burrows-Wheeler LZ77 LZW Algoritmos codificados que produzem seqüência de bits Codificação Aritmética ou Freqüência de Caracteres Codificação de Huffman Existem algoritmos que são mesclas dos dois tipos de algoritmos. Ex.: o algoritmo DEFLATE utiliza uma combinação do algoritmo LZ77 e de Huffman.

Freqüência de Caracteres Idéia bastante simples: determina-se a quantidade de símbolos idênticos consecutivos na cadeia Cada uma das sub-seqüências máximas de símbolos na cadeia é substituída por um número Esse número indica a freqüência do símbolo em questão

Freqüência de Caracteres – Exemplo BBBEAAAAFFHHHHHCBMMALLLCDDBBBBBBBCC 3B1E4A2F5HCB2MA3LC2D7B2C E se a conjunto de caractere tivesse um símbolo numérico? Nesse caso, emprega-se um símbolo especial, ex., @, para anunciar que o ítem após esse símbolo representa um número

Freqüência de Caracteres – Exemplo AAA33333BA6666888DDDDDDD99999999999AABBB1 3A5@3BA4@63@87D11@92A3B1@1

Codificação de Huffman - Motivação Um dos métodos mais conhecidos Cada caracter ASCII usa 7 bits – 8 bits para ASCII extendido Em um texto a letra E aparece mais vezes que a letra Z Como o padrão é fixo os caracteres usam a mesma quantidade de bits A idéia do algoritmo é atribuir códigos mais curtos a símbolos com freqüências altas Usar número variável de bits de acordo com a freqüência A = 0 E = 110 I =10 O= 11 U=101 !=111

Necessidade de compactar dados Coleção de dados com 50.000 ocorrencias de a, e, i, o, u, !. Caracteres com a seguinte frequencia: Para armazenar 6 caracteres com sequencia fixa de bits 2 bits não serve, sendo necessários 3 bits. Então total de bits será 50.000 x 3 = 150.000 bits Caracter A E I O U ! Frequencia 52 8 12 11 7 10

Necessidade de compactar dados Agora vamos supor que os caracteres são representados com uma sequencia variavel de bits Abaixo está o cálculo do total de bits usado Caracter A E I O U ! Sequencia variavel 110 10 11 101 111 Caracter A E I O U ! Qtd de bits 1 3 2 Frequencia 52 8 12 11 7 10 Total por carac. 26.000 12.000 11.000 10.500 15.000

Necessidade de compactar dados Novo total são 86.500 bits Representa uma economia de 42 % de espaço de armazenamento utilizando bits variáveis Ganhe-se em economia mas aumenta-se a compexidade no uso Como saber quando a sequencia de bits de um caracter termina e quando outro comeca Com sequencia fixa seria só contar de n em n bits Algoritmo de Huffman auxilia justamente nesse ponto propondo que uma arvore binaria auxiliar na construcao da tabela e identificacao dos bits

Codificação de Huffman No algoritmo, forma-se uma árvore binária com arestas rotuladas 0 para o filho da esq uerda 1 para o filho da direita Cada símbolo si está associado a uma folha da árvore O código de si é igual à seqüência dos rótulos das arestas, desde a raiz até a folha

Codificação de Huffman - Exemplo Suponha que um certa cadeia de caracteres S={s1, s2, ..., sn} Seja a seqüência de caracteres s4s3s3s1s3s1s4s5s1s3s3s3s3s3s2s3s5s2s2s2s4 E baseado na tabela Dúvidas: Como montar a tabela? Como ficaria minha árvore de Huffman? Símbolo Código S1 101 S2 111 S3 S4 110 S5 100

Codificação de Huffman - Exemplo S5 S2 S4 S1 1 S3 Símbolo Código S1 101 S2 111 S3 S4 110 S5 100 A seqüência dos 4 primeiros caracteres (S4 S3 S3 S1) da cadeia anterior ficaria: 11000101 S4 S3S3 S1

Codificação de Huffman O objetivo então é construir uma árvore com custo mínimo, ou seja, a árvore mínima ou árvore de Huffman Para construir: Conte a quantidade de vezes que cada item aparece na seqüência Some os dois itens com menores valores e adicione à árvore resultante Itens com menor valor ficam à esquerda; os maiores à direita; Proceda até que todos os itens tenham sido colocados na árvore

Árvores de Huffman - Construção Na seqüência apresentada: s4s3s3s1s3s1s4s5s1s3s3s3s3s3s2s3s5s2s2s2s4 Símbolo Frequencia S1 3 S2 4 S3 9 S4 S5 2 S1 S2 S3 S4 S5

Árvores de Huffman - Construção 5 1 S5 S2 S3 S4 S1 5 7 1 Símbolo Frequencia S1 3 S2 4 S3 9 S4 S5 2

Árvores de Huffman - Construção 21 S4 S1 5 7 1 12 S3 S5 S2 S3 S4 S1 5 7 1 12 Símbolo Frequencia S1 3 S2 4 S3 9 S4 S5 2

Árvores de Huffman - Construção Percorrendo a árvore de Huffman a tabela seria montada Símbolo Código S1 101 S2 111 S3 S4 110 S5 100

Compressão com Perda de Dados

Compressão com Perda de Dados Definido como operação que admite alguma perda de qualidade dos dados A informação é comprimida por algum algoritmo e, ao descomprimir, a informação é diferente da original, mas suficientemente parecida para que seja útil Exemplo típico: a maioria das imagens .jpg na internet em que se percebe uma diminuição da qualidade próximo às bordas ou trocas de cor na imagem

Compressão com Perda de Dados Dependendo do algoritmo aplicado, essa compressão sofre de perda constante Perdem-se dados sucessivamente, à medida em que se aplica o algoritmo várias vezes, ao comprimir e descomprimir. Isso resulta numa maior perda de dados do que a aplicação do algoritmo de uma só vez

Compressão com Perda de Dados Existem dois esquemas básicos de compressão: Métodos de Transformação Métodos Preditivos Em alguns sistemas, as duas técnicas são combinadas.

Métodos de Transformação Amostras de figuras ou sons são transformados em pequenos segmentos Esses pequenos segmentos são transformados em um novo espaço base, e quantizado (limitação de possíveis valores) Os valores quantizados são codificados para entropia

Métodos Preditivos Informações decodificadas são usadas para prever qual será o próximo pacote, ex., próximo frame de imagem; O erro entre o dado previsto e o dado real, junto com qualquer informação extra necessária para reproduzir a previsão, são quantizados e codificados;

Comparação entre os Métodos com e sem Perda de Dados

Compressão com Perda de Dados A compressão com perda consegue uma dimensão menor em disco Possui, porém, uma qualidade mínima com relação ao original Mais comumente usada em sons, vídeos e imagens, principalmente na troca de informações pela internet Vídeos podem ser comprimidos numa razão de 300:1, perdas imperceptíveis ao ouvido humano; Sons e imagens são comprimidos numa razão 10:1, mas imagem tem a qualidade afetada

Exemplo de Compressão com Perda Imagem Original (12KB) Imagem Comprimida (85% menos informação, 1.8KB) Mesma Imagem Altamente Comprimida (96% menos informação, 0.56KB)