Teoria da Informação

Documentos relacionados
Teoria da Informação

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO

Algoritmos de Compressão sem Perdas

Tipos de códigos de fonte

Fundamentos de Telecomunicações

Universidade de Pernambuco Escola Politécnica de Pernambuco

EET-49 Comunicações II

Nivio Ziviani. Conjunto de transparências elaborado por Nivio Ziviani, Patrícia Correia e Fabiano C. Botelho

Pré-Processamento de Documentos

2 Teoria da Informação

Codificação de Huffman

universidade federal de pernambuco departamento de estatística

Sistemas discretos sem memória e codificação da fonte

Compressão Sem Perdas: Codificações Huffman e Aritmética. Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré

TE111 Comunicação Digital

FACULDADE DE TALENTOS HUMANOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROCEDIMENTOS EXPERIMENTAIS DE COMUNICAÇÃO DIGITAL II PARA TELECOMUNICAÇÃO

Princípios Básicos de Teoria da Informação

Compressão de Dados. Prof. Flávio Humberto Cabral Nunes

Técnicas de Compactação e Compressão. Compressão. Técnicas de Compactação e Compressão. Compactação x Compressão

COM29008 LISTA DE EXERCÍCIOS #

INTRODUÇÃO À TEORIA DA INFORMAÇÃO

COMPRESSÃO E CODIFICAÇÃO SEM PERDAS. Mauro Nogueira Mônica Festa Paulo Antiquera

Processamento digital de imagens

SM - Sistemas Multimédia CODIFICAÇÃO DE FONTE (parte 2) 4.º / 6.º semestre LEIC (verão 2016/2017)

Fundamentos da Compressão de Vídeo

4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada

Códigos de Permutação para Compressão de Dados e Modulação 13. Codificador de fonte. Decodificador. Figura 1.1: Modelo de um sistema de comunicações.

Módulo 5 Codificação Sistemas Multimédia Ana Tomé José Vieira

Compactação de Dados. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante.

Gerenciamento de Memória. Aleardo Manacero Jr.

Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza

Compressão e Codificação de Dados. Primeiro Exame e Segundo Teste

Teoria da Informação ( ) Exame de Recurso ( ) Resolução ( ) ( ) 2log2. log log

Teoria da Informação

Um Esquema de Codificação Homofônica Universal Utilizando o Algoritmo LZW

Teoria da Informação. Codificação de Fonte

Code Compression for Embedded Systems

Compressão de Textos

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Processamento de Imagem. Compressão de Imagens Professora Sheila Cáceres

Fundamentos de Telecomunicações

Segundo Exame e Repescagem de Testes. Mestrado em Engenharia Electrotécnica e de Computadores, IST 25 de Janeiro de 2014

Nivio Ziviani. Conjunto de transparências elaborado por Nivio Ziviani, Patrícia Correia e Fabiano C. Botelho.

Compactação de Dados Letícia Rodrigues Bueno

3 Estimação e Compensação de movimento na codificação de vídeo

Aplicação de Árvores: Código de Huffman

Teorema de Nyquist Teorema da Amostragem

ELEMENTOS MULTIMÍDIA Compressão de dados. Prof. Fabiano Taguchi 06/11/2014.

Televisão Digital. Codificação de Entropia Códigos de Huffman. Hélio Manuel Gonçalves Jaco

Algoritmos em Strings (compressão de texto)

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Teoria de distorção da taxa

Organização de Arquivos. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Algoritmos e Estruturas de Dados! Alexandre Souza Francisco Mesqui5a Simoni Krüger Carla Pires Fabrício Ferreira

Descodificação iterativa

UFSM-CTISM. Comunicação de Dados Aula-17

Problemas de Fundamentos de Telecomunicações 1ª Parte: Codificação de Fonte e Codificação de Canal

COMUNICAÇÕES DIGITAIS. Livro Texto: Communication Systems, 4 TH Edition Simon Haykin John Wiley & Sons, Inc.

Processos Estocásticos

6 Inserção Seletiva de Nulos

Apresentação... 1 Introdução... 1

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Organização de Arquivos

Organização de Arquivos

Compressão de Imagens: Padrão JPEG

Álgebra Booleana. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Códigos Corretores de Erros e Cliques de Grafos

Luis Henrique Assumpção Lolis 27 de agosto de 2013

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

Estudo sobre decodificação iterativa usando códigos de treliça

UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA CURSO DE GRADUAÇÃO EM ENGENHARIA ELETRÔNICA E DE TELECOMUNICAÇÕES

Teoria da Informação ( ) Exame de Recurso ( ) Resolução. (1 p), (1 p), p = H(0,4;0,4;0,2) = 1,522

Faculdade de Engenharia da Computação

Compressão de Imagens. Lilian Nogueira de Faria (Bolsista)...DPI/INPE Leila Maria Garcia Fonseca (Coordenadora)...DPI/INPE

Estruturas de Dados 2

Estrutura de dados 1. Processamento de Cadeias de Caracteres

Computação Gráfica. Prof. MSc André Y. Kusumoto

Códigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1

Comunicações Digitais

ADMINISTRAÇÃO GERAL. Abordagem Sistêmica Tecnologia e Administração Parte 4. Prof. Fábio Arruda

Códigos convolucionais

Aula 8: Gramáticas Livres de Contexto

Universidade do Estado de Minas Gerais Curso de Sistemas de Informações. Multimídia. A Imagem (Parte II)

SUMÁRIO FUNDAMENTOS E VISÃO GERAL 19 CAPÍTULO 1 PROCESSOS ALEATÓRIOS 49

MARCOS ALEXANDRE ARAÚJO SIQUEIRA PROTEÇÃO DESIGUAL DE ERROS EM ARQUIVOS COMPACTADOS

4 Método Proposto Visão geral do Método

Códigos de controle de erros: introdução

Universidade de Pernambuco Escola Politécnica de Pernambuco

Compressão de Imagem DCC 066. Prof. Rodrigo Luis de Souza da Silva

Probabilidade. Definição de informação

Avaliação de Códigos Fontanais

Formatos de Áudio e Vídeo Digital Compactação de Vídeo

Universidade Tecnológica Federal do Paraná Departamento de Eletrônica Disciplina: Teoria da Informação Professor: Dyson Pereira Junior

Conceitos Básicos de Teleprocessamento e Comunicação de Dados

Transcrição:

Charles Casimiro Cavalcante charles@gtel.ufc.br Grupo de Pesquisa em Telecomunicações Sem Fio GTEL Programa de Pós-Graduação em Engenharia de Teleinformática Universidade Federal do Ceará UFC http://www.gtel.ufc.br/ charles

A principal função de um sistema de comunicação é reproduzir, exatamente ou de forma aproximada, uma informação proveniente de outro ponto diferente. Claude Shannon, 1948

Conteúdo do curso 1 Revisão de probabilidade 2 Informação e Entropia 3 Codificação de fontes 4 Codificação e capacidade de canal 5 Complexidade de Kolmogorov 6 Funções de otimização 7 Independent Component Analysis

Parte III Codificação de Fonte

Considerações Codificação de fonte é a representação dos dados da fonte de forma eficiente O dispositivo responsável por esta tarefa é chamado codificador de fonte Tipos de código Símbolos mais freqüentes com palavras menores Símbolos menos freqüentes (raros) com palavras maiores Códigos de tamanho variável Exemplo: código Morse (ĺıngua inglesa) Letra mais freqüente: E (. ) Letra menos freqüente: Q ( - -. - )

Sistema de comunicação - modelo geral TRANSMISSOR Fonte de Informação Codificador de Fonte Codificador de Canal Multiplex Modulador "Spread"em Freqüência Múltiplo Acesso Canal Múltiplo Acesso "Despread" em Freqüência Demodulador Demultiplex Decodificad or de Canal Decodificad or de Fonte Estimativa da Informação RECEPTOR

Codificador de fonte Palavras código são dadas na forma binária Código da fonte é unicamente decodificável tal que a seqüência de símbolos original pode ser reconstruída perfeitamente da seqüência binária codificada Subsistema: Fonte de Informação a k b k Seqüência binária Codificador de Fonte

Codificador de fonte - hipóteses (I) Seqüência da fonte de informação possui K diferentes símbolos Probabilidade de ocorrência do k-ésimo símbolo (a k ) é denominada p k A palavra código (binária) associada ao símbolo a k tem tamanho l k Comprimento médio da palavra código: número médio de bits por símbolo da fonte usado na codificação L = K 1 k=0 p k l k (76)

Codificador de fonte - hipóteses (II) Valor mínimo possível de L: L min Eficiência de codificação do codificador de fonte η = L min L (77) Codificador é dito eficiente quando η 1 Como determinar o valor L min?

Primeiro teorema de Shannon: Teorema da codificação de fonte Também chamado de Teorema da codificação sem ruído - trata da condição de codificação sem erros Responde a questão fundamental da codificação de fonte Teorema: Dada uma fonte de informação discreta com entropia H(A), o tamanho médio da palavra código L para qualquer codificação de fonte sem distorção é limitado por L H(A) (78)

Codificação de fonte - limites Entropia da fonte Limite fundamental no número médio de bits para representar cada símbolo da fonte Limite mínimo L min = H(A) (79) Eficiência de codificação η = H(A) L (80)

O que fazer para achar o código? Remoção da redundância de informação do sinal a ser transmitido Processo geralmente chamado de compactação de dados ou compressão sem perdas Como gerar códigos com comprimento médio próximo da entropia?

Codificação prefixo Restrição de codificação de fonte: ser unicamente decodificável Nenhuma seqüência de palavras código correspondente a uma dada seqüência da fonte pode ser associada a outra seqüência qualquer Código prefixo É um código no qual nenhuma palavra código é prefixo de qualquer outra palavra código

Codificação prefixo - exemplos Símbolo Probabilidade Código I Código II Código III da fonte de ocorrência a 0 0.5 0 0 0 a 1 0.25 1 10 01 a 2 0.125 00 110 011 a 3 0.125 11 111 0111 Código II é um código prefixo!

Decodificação - código prefixo Busca numa árvore de decisão Facilidade de decodificação Cada bit que é recebido move o detector para algum ponto da árvore e um respectivo símbolo da fonte São sempre unicamente decodificáveis

Árvore de decisão - exemplo 0 a 0 Estado inicial 1 0 1 a 1 0 a 2 1 a 3 Decodificar 1011111000

Códigos prefixo Fonte discreta sem memória: { a 0, a 1,,a K 1 } Probabilidades dos eventos: { p 0, p 1,,p K 1 } Tamanho das palavras código: { l 0, l 1,,l K 1 } Inequação Kraft- McMillan O tamanho das palavras códigos de um código prefixo devem satisfazer a seguinte inequação: K 1 k=0 2 l k 1 (81)

Códigos prefixo - continuação Usando o inverso da definição da inequação de Kraft-McMillan pode-se dizer que Se os tamanhos das palavras código de um determinado código respeitam a inequação de Kraft-McMillan, então um código prefixo com aquelas palavras código pode ser construído Embora códigos prefixos sejam unicamente decodificáveis, o inverso não é verdade Outros códigos unicamente decodificáveis não permitem conhecer sempre o fim de uma palavra código Códigos prefixo são também chamados de códigos instantâneos

Códigos prefixo - equacionamento Seja uma fonte discreta sem memória com entropia H(A), o tamanho médio da palavra código de um código prefixo é limitado por H(A) L < H(A) + 1 (82) O lado esquerdo de (82) é satisfeito com a igualdade sob a condição de p k = 2 l k (83) Logo, pode-se escrever K 1 k=0 2 l k K 1 k=0 p k = 1 (84)

Códigos prefixo - equacionamento (cont.) Usando a inequação de Kraft-McMillan (construção do código), o tamanho médio da palavra código é Entropia da fonte H(A) = = L = K 1 K 1 k=0 ( 1 2 l k k=0 K 1 l k 2 l k k=0 l k 2 l k ) ( ) log 2 l k (85) (86) Código prefixo apresenta a codificação mais eficiente neste caso!

Códigos prefixo - equacionamento (cont.) Como encontrar o código prefixo para uma fonte arbitrária (probabilidades de ocorrência dos símbolos quaisquer valores)? Resposta: uso de código estendido. Seja L n o tamanho médio da palavra código de um código prefixo estendido. Para um código unicamente decodificável L n é o menor possível. Logo H(A n ) L n < H(A n ) + 1 n H(A) L n < n H(A) + 1 H(A) L n n < H(A) + 1 n No limite, os limites inferior e superior convergem L n lim n n (87) = H(A) (88)

Códigos prefixo - equacionamento (cont.) Então, fazendo a ordem n de um código prefixo estendido grande o suficiente, o código pode representar, fidedignamente, uma fonte A tão próximo quanto se deseje Ou seja, o tamanho médio de uma palavra código de um código estendido pode ser tão pequeno quanto a entropia da fonte, dado que o código estendido tem um tamanho suficiente There is no free lunch!!! Complexidade de decodificação: aumenta na ordem do tamanho do código estendido

Codificação de Huffman Idéia básica: associar a cada símbolo, uma seqüência de bits, aproximadamente igual a quantidade de informação existente no símbolo Tamanho médio da palavra código aproxima o limite (entropia) Substituição do conjunto de estatísticas da fonte por um conjunto mais simples Processo de redução interativo até que o restem apenas dois símbolos para os quais 0 e 1 é um código ótimo Construção do código é feita através da retropropagação

Codificação de Huffman - algoritmo 1 Os símbolos da fonte são listados em ordem decrescente das probabilidades. Os dois símbolos com as menores probabilidades são assinalados como 0 e 1 2 Os dois símbolos anteriormente assinalados são combinados em um novo símbolo com a soma das probabilidades dos dois primeiros. A lista decrescente de probabilidades é novamente feita. 3 Procedimento se repete até sobrarem somente dois símbolos 4 Do final para o início da tabela, a palavra código de cada símbolo é encontrada

Codificação de Huffman - exemplo Seja a fonte discreta com as seguintes probabilidades para seus símbolos Símbolo Probabilidade a 0 0.4 a 1 0.2 a 2 0.2 a 3 0.1 a 4 0.1 Entropia da fonte H(A) = 2.12193 Pergunta O código de Huffman vai fornecer um tamanho médio da palavra código próximo da entropia da fonte?

Codificação de Huffman - exemplo Símbolo Estágio I Estágio II Estágio III Estágio IV a 0 a 1 a 2 a 3 a 4 0.4 0.2 0.2 0.1 0 1 0.1 0.4 0.2 0.2 0.2 0 1 0.4 0.4 0.2 0 1 0.6 0 0.4 1

Codificação de Huffman - exemplo Símbolo Probabilidade Palavra código a 0 0.4 00 a 1 0.2 10 a 2 0.2 11 a 3 0.1 010 a 4 0.1 011 Tamanho médio palavra código L = 2.2 L excede H(A) de apenas 3.67% L satisfaz H(A) L < H(A) + 1

Codificação de Huffman - comentários A codificação de Huffman não é única! Maneiras 1 Arbitrariedade da associação de 0 e 1 2 Valor da probabilidade igual: colocação dos valores 3 Diferentes tamanhos médios da palavra código Medida da variabilidade (variância) do tamanho médio das palavras código σ 2 = K 1 k=0 p k (l k L) 2 (89)

Codificação de Huffman - não unicidade Símbolo Estágio I Estágio II Estágio III Estágio IV a 0 a 1 a 2 a 3 a 4 0.4 0.2 0.2 0.1 0 1 0.1 0.4 0.2 0.2 0.2 0 1 0.4 0.4 0.2 0 1 0.6 0 0.4 1

Codificação de Huffman - não unicidade Símbolo Probabilidade Palavra código a 0 0.4 1 a 1 0.2 01 a 2 0.2 000 a 3 0.1 0010 a 4 0.1 0011 σ 2 1 = 0.16 σ 2 2 = 1.36

Codificação de Huffman - problemas 1 Requer conhecimento a priori do modelo probabiĺıstico da fonte 2 Na prática, são poucas as situações que se conhece a priori as estatísticas da fonte 3 Além disso, em algumas aplicações, como modelamento de texto, a armazenagem impede o código de Huffman de capturar as relações entre palavras e frase - comprometimento da eficiência do código 4 Alternativa??

Codificação de Lempel-Ziv Codificação adaptativa por natureza Implementação mais simples que a de Huffman Idéia básica Organização da seqüência de dados da fonte em segmentos que são subseqüências menores não encontradas anteriormente

Codificação de Lempel-Ziv - exemplo Seqüência de dados: 000101110010100101 Assume-se que os símbolos 0 e 1 já estão armazenados Logo, o início do algoritmo: Subseqüências armazenadas: 0, 1 Dados para organização: 000101110010100101 Menor seqüência não armazenada? Subseqüências armazenadas: 0, 1, 00 Dados para organização: 0101110010100101 Outra seqüência? Subseqüências armazenadas: 0, 1, 00, 01 Dados para organização: 01110010100101 Mais uma? Subseqüências armazenadas: 0, 1, 00, 01, 011 Dados para organização: 10010100101

Codificação de Lempel-Ziv - exemplo Tabela de codificação Pos.: 1 2 3 4 5 6 7 8 9 Subseq.: 0 1 00 01 011 10 010 100 101 Rep. num.: 11 12 42 21 41 61 62 Blocos cod.: 0010 0011 1001 0100 1000 1100 1101

Codificação de Lempel-Ziv - palavra código 1 Contagem do número de seqüências diferentes 2 Cálculo do número de bits n 1 para representar as seqüências 3 Número de bits da palavra código: n 1 + 1 4 Identificação da inovação e do prefixo 5 Identificação da posição do prefixo na tabela 6 Palavra código: prefixo + inovação

Codificação de Lempel-Ziv - características O último símbolo de cada subseqüência é chamado de símbolo de inovação - acrescenta à informação anterior e torna uma seqüência distinta O último bit de cada seqüência codificada representa o símbolo de inovação da subseqüência considerada Os bits restantes fornecem a representação equivalente do ponteiro para as subseqüências originais Decodificação: utiliza o ponteiro para identificar a subseqüência e adiciona o símbolo de inovação

Codificação de Lempel-Ziv - observações Código utiliza um número fixo de bits para representar um número variável de símbolos da fonte Na prática, 12 bits são utilizados, implicando num código de 4096 entradas Lempel-Ziv é o padrão de compactação de dados Para textos, Lempel-Ziv atinge uma compactação de aproximadamente 55% contra 43% de Huffman

Codificação de Lempel-Ziv - exemplos http://www.data-compression.com/lempelziv.html

Codificação de fontes/compressão de dados Site interessantes http://www.data-compression.com/theory.shtml

3.1 LZ77 Cada seqüência de caracteres é codificado como a trinca < o, l, c >, onde o indica quantos caracteres para trás da posição atual do buffer está o início do casamento; l indica o tamanho do casamento; c indica um caracter de inovação que é adicionado depois que acaba o casamento. Exemplo 1:...cabracadabrarrarrad... Supondo que a janela total é de 13 caracteres,temos... c a b r a c a d a b r a r r a r r a d... c a b r a c a d a b r a r o=7 a b r a c a d a b r a r r l=4 o=3 a d a b r a r r a r r a d l=5 <0,0,C(d)> <7,4,C(r)> <3,5,C(d)> Compressão sem Perdas Página: 116 Maio de 2008

<0,0,C(d)> <7,4,C(r)> <3,5,C(d)> c a b r a c a d o=7 c a b r a c a d a b r a r l=4 o=3 c a b r a c a d a b r a r r a r r a d l=5 Exemplo 2: a b c a b c a b c a b c a b c d... <0,0,C(a)>,<0,0,C(b)>,<0,0,C(c)>,<3,12,C(d)>,... PKZIP, ZIP, LHarc, PNG, gzip e ARJ usam LZ77 + Códigos de comprimento variável. Compressão sem Perdas Página: 117 Maio de 2008

3.2 LZ78 Cada nova frase é codificada como um índice de uma palavra do dicionário + um caracter de inovação. Dicionário incial: vazio Codifico: palavra do dicionário + inovação Atualizo dicionário: última palavra codificada a a a b b a b a a b a a a b a b a a a b b a b a a b a a a b a b (0,a) (1,a) (0,b) (3,a) (4,a) (5,a) (4,b) Dicionário: 0: 1: a 2: aa 3: b 4: ba 5: baa 6: baaa 7: bab Compressão sem Perdas Página: 118 Maio de 2008

a a a b b a b a a b a a a b a b (0,a) (1,a) (0,b) (3,a) (4,a) (5,a) (4,b) " " 0 a b 1 3 a a 2 a 4 b a 5 7 6 Codificação: Vou andando na árvore, até que não é mais possível o casamento. Não havendo casamento, incluo o nó na árvore correspondente ao próximo caracter. É rápida. Decodificação: Os símbolos recebidos dão o caminho na árvore e a sua construção. É rápida. Compressão sem Perdas Página: 119 Maio de 2008

3.3 LZW Cada nova frase é codificada como um índice de uma palavra do dicionário, Não há caracter de inovação. Para isto, o dicionário inicial contém o alfabeto. Dicionário incial: alfabeto. Codifico: palavra do dicionário. Atualizo dicionário: última palavra codificada +1 o caracter da próxima palavra. a a b a b a b a a a 2 3 4 5 6 7 a a b a b a b a a a 0 0 1 3 5 2 <EOF> Dicionário: 0: a 1: b 2: aa 3: ab 4: ba 5: aba 6: abaa 7: aa Compressão sem Perdas Página: 120 Maio de 2008

2 3 4 5 6 7 a a b a b a b a a a <EOF> 0 0 1 3 5 2 a b 0 1 a b a <EOF> 2 a 3 4 7 a 5 6 Uso da árvore: semelhante ao do LZ78. Compressão sem Perdas Página: 121 Maio de 2008