Você está na página 1de 13

1

Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia


Tcnicas de Compactao e
Compresso
Profa. Dbora Christina Muchaluat Saade
deborams@telecom.uff.br
Tcnicas Tcnicas de de Compactao Compactao e e
Compresso Compresso
Profa. Dbora Christina Muchaluat Saade
deborams@telecom.uff.br
Departamento de Engenharia de Telecomunicaes Departamento de Engenharia de Telecomunicaes - - UFF UFF
2
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Tcnicas de Compactao e Compresso Tcnicas de Compactao e Compresso
Compactao X Compresso
Classificao das tcnicas de compresso
Codificao por Entropia, na Origem e Hbrida
Tcnicas de Compactao
Codificao por carreira
Codificao por Shannon-Fano
Codificao de Huffman
Codificao de Lempel-Ziv-Welch (LZW)
Codificao aritmtica
3
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Tcnicas de Compactao e Compresso Tcnicas de Compactao e Compresso
Tcnicas de Compresso
Reduo do domnio
Reduo do espao de quantizao
Codificao preditiva
Codificao por sub-bandas
Codificao por transformadas
Quantizao vetorial
4
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compactao x Compresso Compactao x Compresso
Compactao:
Quando eliminamos apenas a redundncia de um sinal
No h perda de informao
Compresso sem perdas
Podem ser usadas para qualquer sinal (mdia)
Compresso:
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
5
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Classificao das Tcnicas de Compresso Classificao das Tcnicas de Compresso
Codificao por Entropia
trata cadeias de bits sem levar em conta seu significado
tcnica genrica, sem perda e totalmente reversvel
Ex.: tcnicas de compactao: codificao por carreira, codificao de
Huffman, codificao aritmtica
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
sub-bandas, codificao por transformadas, quantizao vetorial
Codificaes Hbridas
Combinam tcnicas com e sem perdas (vrias tcnicas so agrupadas
para formar uma nova tcnica de codagem)
Ex.: J PEG, MPEG, H.263, ...
6
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compactao Compactao
Codificao por carreira (Run Length Coding)
Tcnica boa quando informao se repete
OBS.: Toda tcnica de compactao pode diminuir ou
aumentar o volume de dados
7
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Shannon Codificao por Shannon- -Fano Fano
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
8
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Shannon Codificao por Shannon- -Fano Fano
Seqncia ABDEACD...
00 01 110 111 00 10 110 ...
Envia:
smbolos
rvore
seqncia
9
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Huffman Codificao de Huffman
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
10
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Huffman Codificao de Huffman
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
11
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo Exemplo - - Huffman Huffman
15 111 5 E
18 110 6 D
18 101 6 C
21 100 7 B
15 0 15 A
Subtotal
(# de bits)
Cdigo Freqncia Smbolo
Total (# de bits) = 87
Compactao = 117 : 87
Seqncia ABDEACD...
0 100 110 111 0 101 110 ...
13
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Huffman Huffman - - Decodificao Decodificao
14
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Huffman Codificao de Huffman
Nem todos os caracteres precisam ter uma
representao codificada na tabela de Huffman
apenas os caracteres com alta probabilidade de
ocorrncia
demais so codificados diretamente e marcados com
flag especial
Tcnica til quando o nmero de caracteres
diferentes muito grande mas apenas alguns
deles tm uma alta probabilidade de ocorrncia
15
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao Aritmtica Codificao Aritmtica
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
Precisa de um caracter marcando o fim de cada seqncia (.)
Algoritmo:
Dividir o intervalo de [0, 1] de acordo com a probabilidade de ocorrncia
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
encontrado (ValorInicial <= cdigo < ValorFinal)
16
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo Exemplo Codificao Aritmtica Codificao Aritmtica
17
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao Aritmtica Codificao Aritmtica
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
18
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Lempel Codificao de Lempel- -Ziv Ziv
Codificao de Lempel-Ziv (LZ)
Ao invs de utilizar caracteres como a base da codificao,
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
temos uma grande repetio de frases
exemplo em portugus: "ela", "Contudo", "onde"
19
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Lempel Codificao de Lempel- -Ziv Ziv
Codificao Lempel-Ziv (LZ)
Exemplo de taxa de compactao
suponha que temos um arquivo de 10000 caracteres
se ns representarmos o arquivo usando 8 bits por caracter, o
arquivo requer 80000 bits para represent-lo
assumindo que o arquivo tenha 2000 palavras ou frases das
quais 500 so diferentes
necessitamos de 9 bits como token para identificar cada palavra
ou frase
precisamos de 9*2000 bits para codificar o arquivo
obtemos uma taxa de compresso de 80000:18000 (4,4)
na prtica, o dicionrio tambm deve ser mantido/enviado
baixando a taxa de compresso obtida
20
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Lempel Algoritmo Lempel- -Ziv Ziv
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
21
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo de Lempel Exemplo de Lempel- -Ziv Ziv
Exemplo de compactao LZW
Compresso da cadeia de caracteres ABACABA
Primeiro passo: inicializar uma tabela de cdigos com todos os
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
22
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo de Lempel Exemplo de Lempel- -Ziv Ziv
Exemplo de compresso LZW
Compresso da cadeia de caracteres ABACABA
Tabela atual:
#0 =A, #1 =B, #2 =C, #3 =AB, #4 =BA, #5 =AC
Caracter C (existe na tabela)
representamos ABAC por #0#1#0#2
CA recebe #6
Caracter AB (existe na tabela)
representamos ABACAB por #0#1#0#2#3
ABA recebe #7
Caracter A (existe na tabela)
representamos ABACABA por #0 #1 #0 #2 #3 #0
23
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Lempel Codificao de Lempel- -Ziv Ziv- -Welch (LZW) Welch (LZW)
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 ...
24
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo de Lempel Exemplo de Lempel- -Ziv Ziv- -Welch Welch
25
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Exemplo de Lempel Exemplo de Lempel- -Ziv Ziv- -Welch Welch
26
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Variao do LZW usado em vrios compactadores
comerciais
PKZIP/PKUNZIP (para o DOS)
ARJ
GZIP/GUNZIP
Compress/Uncompress (para o UNIX)
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.
27
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Termos utilizados no algoritmo:
Seqncia de entrada
Seqncia de caracteres a ser comprimida
Caracter:
Elemento bsico da seqnciade entrada
Posio atual:
Posio do caracter na seqnciade entrada que est sendo
codificado no momento (incio do lookaheadbuffer)
Lookahead buffer:
Seqncia de caracteres a partir da posio atual at o fim da
seqnciade entrada
28
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Termos utilizados no algoritmo:
Janela:
J anela de tamanho W contm W caracteres a partir da
posio atual em direo ao incio da seqnciade
entrada, i.e. os ltimos W caracteres processados
Ponteiro:
Um ponteiro aponta para a seqncia que casa na
janela e tambm indica seu comprimento (L)
29
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Algoritmo:
1. Faa posio atual igual ao incio da seqncia de entrada
2. Encontre a maior sub-seqncia (longest match) na janela
que casa como contedo do lookahead buffer
3. 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 nocasa 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).
30
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Exemplo: seqncia AABCBBABC
Processo de Codificao
C B A B B C B A A Char
9 8 7 6 5 4 3 2 1 Pos
(5,2) C C AB 7 5
(2,1) B B B 5 4
(0,0) C C -- 4 3
(1,1) B B A 2 2
(0,0) A A -- 1 1
Sada Char Match Pos Step
31
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Decodificao:
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
Exemplo: (0,0)A (1,1)B (0,0)C (2,1)B (5,2)C
1. (0,0)A => W = nula, sada = A
2. (1,1)B => W = A, sada = AAB
3. (0,0)C => W = AAB, sada = AABC
4. (2,1)B => W = AABC, sada = AABCBB
5. (5,2)C = > W = AABCBB, sada = AABCBBABC
32
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Algoritmo Algoritmo LZ77 LZ77
Consideraes principais:
Boa taxa de compresso para vrios tipos de dados
Codificao pode ser lenta, j que vrias
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
normalmente tem tamanho entre 4 e 64 KB.
33
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Tcnicas de Compresso Tcnicas de Compresso
Compresso:
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
Tcnicas
Reduo do domnio
Reduo do espao de quantizao
Codificao preditiva
Codificao por sub-bandas
Codificao por transformadas
Quantizao vetorial
34
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Reduo do Domnio Reduo do Domnio
Idia bsica
Simplesmente descarta algumas amostras
Ex.: padres para vdeo digital
Formatos 4:2:2, 4:2:0
Informaes de luminncia so mais importantes
que crominncia, ento o nmero de amostras de
crominncia pode ser menor
Ex.: compresso em imagens
diminui a resoluo geomtrica
aumenta o tamanho do pixel
35
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Reduo do domnio em imagens Reduo do domnio em imagens
36
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Reduo do Espao de Quantizao Reduo do Espao de Quantizao
Idia bsica
Diminuir a quantidade de bits por amostra
Ex.: compresso de imagens
Imagem original com 24 bits por pixel (16 milhes
de cores)
Imagem comprimida com 8 bits por pixel (256
cores) fazendo uma correspondncia entre os
cdigos
37
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao Preditiva Codificao Preditiva
Codificao diferencial ou codificao relativa
Idia bsica
Amplitude de uma amostra grande, mas a diferena de
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)
38
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Sub Codificao por Sub- -Bandas Bandas
Idia bsica
Diviso da banda passante do sinal em vrias sub-bandas codificadas de
forma distinta
Trata com maior preciso as sub-bandas mais importantes do sinal
Por exemplo, sinal de voz:
300-800Hz qualidade e timbre
8 bits por amostra
800-1400Hz pouca informao
2 bits por amostra
1400-2400Hz reconhecimento e intelegibilidade
8 bits por amostra
Maior informao de contedo (ex.: voz metlica)
2400-3400Hz pouca informao
3 bits por amostra
40
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Transformadas Codificao por Transformadas
Idia bsica
Transformar os dados para outro domnio matemtico onde
uma tcnica de compresso seja melhor aplicada
Ex.: Transformada de Fourier =>transforma sinais no domnio
do tempo para o domnio da freqncia
Deve existir uma transformada inversa
Transformadas eficazes para reduo de dados so:
DCT Discrete Cosine Transform (J PEG)
FFT Fast Fourier Transform (MPEG-udio)
42
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Transformadas em Imagens Transformadas em Imagens
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.
43
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Transformadas Codificao por Transformadas
44
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao por Transformadas Codificao por Transformadas
45
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Quantizao Vetorial Quantizao Vetorial
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
46
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Mdia Texto
Profa. Dbora Christina Muchaluat Saade
deborams@telecom.uff.br
Mdia Texto Mdia Texto
Profa. Dbora Christina Muchaluat Saade
deborams@telecom.uff.br
Departamento de Engenharia de Telecomunicaes Departamento de Engenharia de Telecomunicaes - - UFF UFF
47
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compresso de Texto Compresso de Texto
Texto no tolera erros
Compactao = Compresso sem perdas
Classificao das tcnicas de compactao:
Tcnicas que usam caracteres nicos como base X
Tcnicas que usam strings de caracteres como base
Codificao esttica X Codificao dinmica
48
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compresso de Texto Compresso de Texto
Tcnicas que usam caracteres nicos como base
Codificao por carreira
S usa se repetir no mnimo 4 vezes
(caracter, smbolo (!), nmero de vezes)
entrada: ABCCCCCCCCDEFGGG
sada: ABC!4DEFGGG
Codificao de Shannon-Fano
Codificao aritmtica
Codificao de Huffman
49
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compresso de Texto Compresso de Texto
Tcnicas que usam strings de caracteres como base
Codificao por carreira
pode-se substituir seqncias maiores que um
requer que o tamanho da seqncia seja codificado ou pode-se
usar um caracter especial de fim
(smbolo (!), nmero de vezes, seqncia, delimitador de fim ($))
entrada: UFYUGDUFHUFHUFHUFHUFHBFD
sada: UFYUGD!5UFH$BFD
Se smbolos especiais aparecerem nos dados (character stuffing)
entrada: U!HIIIIID
sada: U!!HI!1D
Codificao de Lempel-Ziv-Welch
50
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Compresso de Texto Compresso de Texto
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
51
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Huffman Dinmica Codificao de Huffman Dinmica
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
52
Fundamentos de Sistemas Multimdia Fundamentos de Sistemas Multimdia
Codificao de Huffman Dinmica Codificao de Huffman Dinmica

Você também pode gostar