Escolar Documentos
Profissional Documentos
Cultura Documentos
Tcnicas de Compactao
Codificao por carreira Codificao por Shannon-Fano Codificao de Huffman Codificao de Lempel-Ziv-Welch (LZW) Codificao aritmtica
2
deborams@telecom.uff.br deborams@telecom.uff.br
1
Compactao x Compresso
Fundamentos de Sistemas Multimdia
Tcnicas de Compresso
Reduo do domnio Reduo do espao de quantizao Codificao preditiva Codificao por sub-bandas Codificao por transformadas Quantizao vetorial
Compactao:
Quando eliminamos apenas a redundncia de um sinal No h perda de informao Compresso sem perdas Podem ser usadas para qualquer sinal (mdia) Quando, na reduo dos dados, h perda de informao Compresso com perdas Algumas tcnicas so usadas em sinais especficos Compresso perceptualmente sem perdas
humanos no percebem Ex.: MP3 para udio
Compresso:
Compactao
Fundamentos de Sistemas Multimdia
Codificao na Origem
leva em considerao a semntica dos dados processa o dado original distinguindo o dado relevante e o irrelevante removendo dados irrelevantes comprime o dado original Ex.: tcnicas de compresso: codificao preditiva, codificao por
Codificaes Hbridas
Combinam tcnicas com e sem perdas (vrias tcnicas so agrupadas
para formar uma nova tcnica de codagem) Ex.: JPEG, MPEG, H.263, ...
5
Tcnica boa quando informao se repete OBS.: Toda tcnica de compactao pode diminuir ou aumentar o volume de dados
6
A seqncia a ser compactada deve ser analisada previamente, identificando-se os caracteres e suas respectivas freqncias/probabilidades Ordene os smbolos de acordo com suas freqncias. Ex.: ABCDE Divida recursivamente em 2 partes, cada uma com aproximadamente o mesmo nmero de contagem
Seqncia ABDEACD...
00 01 110 111 00 10 110 ...
Envia:
smbolos rvore seqncia
Codificao de Huffman
Fundamentos de Sistemas Multimdia
Codificao de Huffman
Fundamentos de Sistemas Multimdia
Codificao Estatstica A seqncia a ser compactada deve ser analisada previamente, identificando-se os caracteres e suas respectivas freqncias/probabilidades Atribui menos bits a smbolos que aparecem mais freqentemente e mais bits para smbolos que aparecem menos
Algoritmo:
Insira os ns (smbolos/freqncias) em uma lista Repita at que a lista contenha apenas um n:
Selecione os dois ns de mais baixa freqncia e crie
um n pai para ambos Atribua ao n pai a soma das freqncias e insira-o na lista Atribua os cdigos 0 e 1 aos dois ramos da rvore e retire os filhos da lista
10
Exemplo - Huffman
Fundamentos de Sistemas Multimdia
Smbolo A B C D E Freqncia 15 7 6 6 5 Cdigo 0 100 101 110 111 Subtotal (# de bits) 15 21 18 18 15
Huffman - Decodificao
Fundamentos de Sistemas Multimdia
Seqncia ABDEACD...
0 100 110 111 0 101 110 ...
11
13
Codificao de Huffman
Fundamentos de Sistemas Multimdia
Codificao Aritmtica
Fundamentos de Sistemas Multimdia
Nem todos os caracteres precisam ter uma representao codificada na tabela de Huffman
apenas os caracteres com alta probabilidade de
Utiliza um nico cdigo por string de caracteres codificada A seqncia a ser compactada deve ser analisada previamente, identificando-se os caracteres e suas respectivas freqncias/probabilidades
Ex.: e=0.3; n=0.3; t=0.2; w=0.1; .=0.1
Tcnica til quando o nmero de caracteres diferentes muito grande mas apenas alguns deles tm uma alta probabilidade de ocorrncia
14
de cada caracter na seqncia Repita at o caracter de fim de seqncia Escolha o intervalo correspondente ao prximo caracter e divida-o novamente de acordo com as probabilidades iniciais O cdigo pode ser qualquer nmero dentro do ltimo intervalo
Codificao Aritmtica
Fundamentos de Sistemas Multimdia
O nmero de dgitos decimais no cdigo aumenta linearmente com o nmero de caracteres na string
O nmero mximo de caracteres em uma string
determinado pela preciso com a qual nmeros de ponto flutuante so representados nos computadores de origem e destino Por essa razo, mensagens completas devem ser fragmentadas em vrias strings menores e cada string deve ser codificada separadamente
16 17
Codificao de Lempel-Ziv
Fundamentos de Sistemas Multimdia
Codificao de Lempel-Ziv
Fundamentos de Sistemas Multimdia
utiliza strings de caracteres baseada na construo de um dicionrio de frases (grupos de um ou mais caracteres) a partir do fluxo de entrada Quando uma nova frase encontrada
Ela adicionada ao dicionrio
Se a frase encontrada j foi registrada ela substituda pelo cdigo no dicionrio Esta tcnica boa para compresso de arquivos textos, onde
18
Algoritmo Lempel-Ziv
Fundamentos de Sistemas Multimdia
Exemplo de Lempel-Ziv
Fundamentos de Sistemas Multimdia
Primeiro passo: inicializar uma tabela de cdigos com todos os caracteres existentes na string que pretendemos compactar A codificao se inicia definindo a seqncia de smbolos corrente S como o primeiro smbolo a codificar 1. Se no existem mais smbolos para codificar, d como sada o cdigo de S. Em caso contrrio, 2. Pegue o prximo smbolo P e concatene a S, obtendo a nova seqncia SP 3. Se SP j estiver no dicionrio, faa S = SP e volte para o passo 1. Em caso contrrio, 4. D como sada o cdigo de S 5. Adicione SP ao dicionrio, se ainda houver espao 6. Faa S = P e volte para o passo 1
20
caracteres existentes na string que pretendemos compactar: #0 = A, #1 = B, #2 = C Caracter A (existe na tabela) representamos A por #0 AB recebe #3 Caracter B (existe na tabela) representamos AB por #0#1 BA recebe #4 Caracter A (existe na tabela) representamos ABA por #0#1#0 junta AC na tabela com ndice #5
21
Exemplo de Lempel-Ziv
Fundamentos de Sistemas Multimdia
Codificador e decodificador constroem o contedo do dicionrio dinamicamente enquanto o texto processado Inicialmente, o dicionrio contm somente o conjunto de caracteres que foi usado na construo do texto (ex. ASCII 7 bits) As entradas restantes so utilizadas para codificar palavras que ocorrem no texto Exemplo:
This is simple as it is ...
23
Exemplo de Lempel-Ziv-Welch
Fundamentos de Sistemas Multimdia
Exemplo de Lempel-Ziv-Welch
Fundamentos de Sistemas Multimdia
24
25
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Princpio de funcionamento:
Em uma seqncia de caracteres, o algoritmo procura na
janela corrente a maior sub-seqncia que casa com o incio do lookahead buffer e d como sada um ponteiro para o incio da sub-seqncia na janela e o primeiro caracter no lookahead buffer que no casa com a seqncia. Se no houver sub-seqncia, a sada um ponteiro nulo e o caracter na posio atual da seqncia original.
26
27
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Algoritmo:
1. 2. 3.
posio atual em direo ao incio da seqncia de entrada, i.e. os ltimos W caracteres processados
Ponteiro:
Um ponteiro aponta para a seqncia que casa na
Faa posio atual igual ao incio da seqncia de entrada Encontre a maior sub-seqncia (longest match) na janela que casa como contedo do lookahead buffer D como sada o par (P,C), onde:
P o ponteiro para a sub-seqncia na janela C o primeiro caracter no lookahead buffer que no casa com a sub-seqncia
4.
Se o lookahead buffer no estiver vazio, mova a posio atual (e a janela) L+1 caracteres para frente e volte para o passo 2 (L o comprimento da sub-seqncia).
28
29
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Pos Char 1 A 2 A 3 B 4 C 5 B 6 B 7 A 8 B 9 C
Decodificao:
Processo de Codificao
Step 1 2 3 4 5 Pos 1 2 4 5 7 Match -A -B AB Char A B C B C Sada (0,0) A (1,1) B (0,0) C (2,1) B (5,2) C
A janela mantida da mesma forma que na codificao. Em cada passo, o algoritmo l o par (P,C) da entrada e d como sada a seqncia da janela a partir de P seguida do caracter C
(0,0)A => W = nula, sada = A (1,1)B => W = A, sada = AAB (0,0)C => W = AAB, sada = AABC (2,1)B => W = AABC, sada = AABCBB (5,2)C = > W = AABCBB, sada = AABCBBABC
31
30
Algoritmo LZ77
Fundamentos de Sistemas Multimdia
Tcnicas de Compresso
Fundamentos de Sistemas Multimdia
Consideraes principais:
Boa taxa de compresso para vrios tipos de dados Codificao pode ser lenta, j que vrias
Compresso:
comparaes so feitas entre o lookahead buffer a a janela Decodificao muito simples e rpida Requisitos de memria so poucos tanto para codificao quanto para decodificao
A nica estrutura mantida em memria a janela, que
Quando, na reduo dos dados, h perda de informao Compresso com perdas Algumas tcnicas so usadas em sinais especficos Compresso perceptualmente sem perdas humanos no percebem Ex.: MP3 para udio Reduo do domnio Reduo do espao de quantizao Codificao preditiva Codificao por sub-bandas Codificao por transformadas Quantizao vetorial
33
Tcnicas
Reduo do Domnio
Fundamentos de Sistemas Multimdia
Idia bsica
Simplesmente descarta algumas amostras
Codificao Preditiva
Fundamentos de Sistemas Multimdia
Idia bsica
Diminuir a quantidade de bits por amostra
de cores) Imagem comprimida com 8 bits por pixel (256 cores) fazendo uma correspondncia entre os cdigos
amplitude entre amostras sucessivas relativamente pequena Ao invs de codificar o valor de cada amostra, codifica a diferena entre seu valor e o anterior
Utiliza menos bits e obtm o mesmo erro
Ex.: DPCM (Differential Pulse Code Modulation) ADPCM (Adaptive Differential Pulse Code Modulation)
37
36
Idia bsica
Diviso da banda passante do sinal em vrias sub-bandas codificadas de
Idia bsica
Transformar os dados para outro domnio matemtico onde
forma distinta Trata com maior preciso as sub-bandas mais importantes do sinal
do tempo para o domnio da freqncia Deve existir uma transformada inversa Transformadas eficazes para reduo de dados so: DCT Discrete Cosine Transform (JPEG) FFT Fast Fourier Transform (MPEG-udio)
40
Transformadas em Imagens
Fundamentos de Sistemas Multimdia
Existem vrias similaridades entre amostras (no tempo) e pixels. Na verdade, podemos considerar os pixels como se fossem amostras do sinal imagem, s que amostras obtidas no no tempo, mas no espao. exatamente por isso que podemos aplicar todas as tcnicas aplicadas em sinais contnuos nas imagens estticas.
42
43
Quantizao Vetorial
Fundamentos de Sistemas Multimdia
Fluxo de dados divido em blocos Constri uma tabela (ou usa uma predefinida) contendo o conjunto de valores que mais aparecem (valores padres) Para cada bloco, a tabela consultada para achar o padro mais parecido Ento cada bloco codificado com o ndice do vetor O decodificador deve conhecer a mesma tabela e usa os ndices para gerar uma aproximao do fluxo de dados original
44
45
Compresso de Texto
Fundamentos de Sistemas Multimdia
Texto no tolera erros Compactao = Compresso sem perdas Classificao das tcnicas de compactao:
Tcnicas que usam strings de caracteres como base Codificao esttica X Codificao dinmica
deborams@telecom.uff.br deborams@telecom.uff.br
46
47
Compresso de Texto
Fundamentos de Sistemas Multimdia
Compresso de Texto
Fundamentos de Sistemas Multimdia
Codificao de Lempel-Ziv-Welch
48 49
Compresso de Texto
Fundamentos de Sistemas Multimdia
Codificao esttica
Tabelas de cdigos so conhecidas a priori (padronizadas) Tabelas de cdigos so enviadas junto com a seqncia codificada Exemplos: Codificao de Shannon-Fano Codificao aritmtica Codificao de Huffman Codificao de Lempel-Ziv
Codificao dinmica
Tabelas de cdigos so calculadas dinamicamente no momento da
decodificao
Exemplos: Codificao de Lempel-Ziv-Welch Codificao de Huffman dinmica
50
A rvore de Huffman construda dinamicamente na codificao e na decodificao No necessrio saber a freqncia dos smbolos a priori Se o caracter no estiver presente na rvore ainda (da primeira vez que aparece), ele no compactado Usa o conceito de uma folha vazia que representa o local onde o prximo caracter ser inserido na rvore
51
52