Módulo 6 – Compressão de
Imagem e Som
Sistema Multimédia
Ana Tomé
José Vieira
Departamento de Electrónica, Telecomunicações e
Informática
Universidade de Aveiro
Módulo 6 – Compressão de Imagem e Som
1
Sumário
• Codificação sem Perdas (continuação)
– RLE- Run length encoder
– Codificadores com dicionário (Lempel-Ziv-Welch)
• Codificação com Perdas para Imagem
– Estrutura geral do codificador
– Exemplo do JPEG em imagem
• Codificação com Perdas para Som
– Redundância e Irrelevância
– DPCM
– MPEG áudio
Módulo 6 – Compressão de Imagem e Som
2
Codificadores sem perdas
• Codificadores de símbolos
– Probabilísticos
– Exemplo: codificador de Huffman
• Codificadores de sequências de símbolos
– RLE- Run- length encoding
– Com dicionários : códigos associados a sequências
de símbolos de comprimento variável
– Exemplos: LZ77 e Lempel-Ziv-Welch (LZW).
Módulo 6 – Compressão de Imagem e Som
3
Run-Length Encoding
• Contar o número de ocorrências de um símbolo
• Codificar: símbolo e número de ocorrências do
símbolo
Ex1: AAAAAAAAAAAAABBBBAAAAA
Sequência Codificada:
A13 B4 A5
Aplicações: em imagens binárias/bitonais (ex:
digitalização de um fax)
Módulo 6 – Compressão de Imagem e Som
4
RLE- Run-length Encoding
000000000000000000000000000011111111111111000000000
000000000000000000000000001111111111111111110000000
000000000000000000000001111111111111111111111110000
000000000000000000000011111111111111111111111111000
000000000000000000001111111111111111111111111111110
000000000000000000011111110000000000000000001111111
000000000000000000011111000000000000000000000011111
000000000000000000011100000000000000000000000000111
000000000000000000011100000000000000000000000000111
000000000000000000011100000000000000000000000000111
000000000000000000011100000000000000000000000000111
000000000000000000001111000000000000000000000001110
28 14 9
26 18 7
23 24 4
22 26 3
20 30 1
19 7 18 7
19 5 22 5
19 3 26 3
19 3 26 3
19 3 26 3
19 3 26 3
20 4 23 3 1
RLE
Digitalização de uma imagem preto-branco
(um fax, por exemplo…)
Módulo 6 – Compressão de Imagem e Som
5
LZ77
• Em 1977, Lempel e Ziv criaram uma técnica de compressão de
texto baseada na observação empírica de que num texto
ocorrem com frequência repetições.
• Utiliza uma janela deslizante com 2k caracteres e uma janela
de observação de M carateres.
• Algoritmo
– Procura na janela de observação uma sequência contígua de carateres
que exista na janela deslizante;
– Caso encontre, transmite o índice na janela deslizante e o número de
carateres;
– Caso não encontre transmite o primeiro carater da janela de observação
Módulo 6 – Compressão de Imagem e Som
6
LZ77 – Exemplo
Texto a codificar: abxyndooyndkasa
8
Janela Deslizante
4
abxyndoo yndk
Janela de
Observação
+4
Saída do codificador: abxyndoo(4,3)kasa
Problemas:
• Se as repetições ocorrerem muito afastadas o algoritmo não as
codifica;
• Aumentar o tamanho da janela deslizante faz aumentar o
número de bits necessário para representar os ponteiros.
Módulo 6 – Compressão de Imagem e Som
7
Codificadores Baseados em Dicionário
• Supondo a existência de um dicionário
adequado ao ficheiro a codificar.
• Algoritmo
– Procurar no ficheiro ocorrências no dicionário
– Transmitir o índice da ocorrência no dicionário
• Problema
– Como criar o dicionário?
– Como transmitir o dicionário?
Módulo 6 – Compressão de Imagem e Som
8
Codificador de LZW – Lempel-Ziv-Welch
• Algoritmo
– Construção do dicionário em simultâneo com a
codificação (dicionário inicial rudimentar);
– Procura sequências de símbolos no dicionário;
– Devolve o índice “K” da sequência no dicionário;
– Insere nova palavra no dicionário: concatenação da
sequência com o símbolo seguinte da mensagem;
• Problemas
– O dicionário não pode ter um tamanho exagerado;
– O dicionário pode esgotar-se antes incluir todas as
sequências e limitar a compressão.
Módulo 6 – Compressão de Imagem e Som
9
LZW – exemplo
• Algoritmo de codificação do LZW
•
•
•
•
•
Dicionário inicial: a, aa, ab, aba, abaa, abaab, abaaa,
Mensagem a codificar: ...abaababbb...
Qual é a sequência mais longa no dicionário?... abaaba…
No dicionário com indíce K=6. Saída do codificador ….6….
E acrescentar dicionário com “abaaba”.
• Dicionário: a, aa, ab, aba, abaa,abaab,abaaa, abaaba
• Qual é a sequência mais longa no dicionário?... abbb…
• K=3….. Saída codificador:…..63….
• Etc.
• Demonstração com apllet Java
http://www.cs.sfu.ca/CC/365/li/squeeze/LZW.html
Módulo 6 – Compressão de Imagem e Som
10
Exemplos de Codificadores sem Perdas
para Imagem
• JBIG: compressão de imagem binária sem perdas (aplicações
de fax): RLE+Huffman. Norma de compressão de imagem
sem perdas;
• JPEG-LS: Utiliza predição linear entre pixéis adjacentes e
codificação de Huffman sobre o erro;
• GIF: Utiliza o algoritmo LZW para conseguir a compressão.
Palete de cores restringida a um máximo de 256;
• PNG: Utiliza predição linear e o algoritmo DEFLATE para
comprimir o erro. O algoritmo DEFLATE é inspirado no LZ77
e no LZW e é de utilização livre. Admite true color.
Módulo 6 – Compressão de Imagem e Som
11
Codificação com Perdas para
Imagem
• Estrutura geral do codificador
• Exemplo do JPEG em imagem
Módulo 6 – Compressão de Imagem e Som
12
Compressão com Perdas
Transformação
quantificação
Codificação
entropia
Disco
Canal
Transm.
Transformação
inversa
Reversão da
quantificação
Descodificação
entropia
Transformação: domínio da frequência
Quantificação: alocação de número bits diferentes por bandas de frequência (áudio, por exemplo)
Códigos entropia: Huffman ou aritmético.
Módulo 6 – Compressão de Imagem e Som
13
Exemplo: Imagem
Tabela: passos de quantificação
Codificador JPEG
Transformada : blocos 8×8
DCT
Quantização : aplicação de
tabelas de valores de acordo
com sensibilidade do sistema
visual humano
Passos de valor baixo mais
bits
Passos de valor elevado menos
bits.
Módulo 6 – Compressão de Imagem e Som
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
14
17
22
29
51
87
80
62
18
22
37
56
68
109
103
77
24
35
55
64
81
104
113
92
49
64
78
87
103
121
120
101
72
92
95
98
112
100
103
99
14
Exemplo em Matlab: para um Bloco
Espaço
-24
-32
-51
-57
-70
-75
-80
-81
-20
-28
-59
-68
-75
-78
-75
-80
-21
-25
-58
-76
-77
-75
-75
-80
-27
-28
-41
-69
-74
-76
-77
-81
Frequência
-34
-32
-44
-64
-76
-76
-75
-73
-33
-54
-64
-72
-77
-70
-73
-81
-30
-53
-64
-74
-76
-77
-77
-77
Bloco após subtrair 128
Módulo 6 – Compressão de Imagem e Som
-26
-55
-61
-71
-76
-81
-75
-80
-495
135
59
17
-5
2
-2
1
20
22
1
-3
-7
-10
-9
-7
-8 0 10
-3 -9 7
-1 -10 -9
9 -3 -14
14 3 -2
7 3 0
-1 3 3
0 -4 2
-1 -3 3
1 -3 0
-3 -1 3
1 6 -4
0 -1 0
-2 2 -4
3 1 -2
2 -1 -2
blkf=round(dct2(bloco1));
15
Exemplo: um Bloco
Frequência
-31
11
4
1
0
0
0
0
2 -1 0 0 0 0 0
2 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
xq=round(blkf./tabela)
Codificador entropia
Módulo 6 – Compressão de Imagem e Som
Versão(na frequência) aproximada
do original….
-496
132
56
14
0
0
0
0
22
24
0
0
0
0
0
0
-10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
xq.*tabela
Descodificador entropia
16
Codificador de Entropia
Codificador Huffman aplicado ao bloco com varrimento em zig-zag
Sequência a codificar
[ -31 2 11 4 2 -1 0 0
Módulo 6 – Compressão de Imagem e Som
0 1 EOB ]
17
JPEG em Imagens a Cores
• Um codificador para cada plano de cor
• RGB não é eficiente
• Transformação para outro espaço de cor
– YCbCr (recomendação da norma)
– Uma imagem para a luminância (Y) e 2 imagens
para a crominância (CbCr) . Sub-amostragem nas
imagens de cor
– Exemplo: Para uma imagem 512×512
Y com 512×512, Cb com 256×256 e Cr com 256×256
• Dados entrelaçados ou separados
Módulo 6 – Compressão de Imagem e Som
18
Imagens a cores
Módulo 6 – Compressão de Imagem e Som
19
Conversão de Espaço de Cor
Red
Green
Blue
Y
Cb
Cr
Em Matlab:
Iycbcr= rgb2ycbcr(Irgb)
Módulo 6 – Compressão de Imagem e Som
20
Sub-Amostragem da Crominância
• A visão humana possui uma menor resolução para as cores.
Por este motivo, a informação de cor é normalmente
representada com uma menor amostragem espacial;
• Para representar a forma como a amostragem da Crominância
se relaciona com a amostragem da Luminância é utilizada a
seguinte norma definida em conjuntos de 8 pixéis com o
seguinte arranjo.
J:a:b
Pixel Y,Cr,Cb
Pixel Cr,Cb
Pixel Y
Módulo 6 – Compressão de Imagem e Som
J: Número de pixéis na horizontal. Em geral 4;
a: Número de pixéis de crominância na primeira linha;
b: Número de pixéis de crominância adicionais na
segunda linha.
21
Sub-Amostragem da Crominância
4:4:4
4:1:1
4:2:2
4:2:0
Para informação mais detalhada sobre a sub-amostragem da informação de crominância, pode consultar o seguinte documento.
Módulo 6 – Compressão de Imagem e Som
22
JPEG – Exemplo
Módulo 6 – Compressão de Imagem e Som
23
JPEG – Exemplo
Módulo 6 – Compressão de Imagem e Som
24
JPEG – Exemplo
Módulo 6 – Compressão de Imagem e Som
25
JPEG – Exemplo
Módulo 6 – Compressão de Imagem e Som
26
JPEG – Joint Photographic
Experts Group
• Este é o formato mais utilizado para armazenar imagens
do tipo fotografias
• Realiza uma codificação com “perdas” ou sem perdas
• O factor de qualidade permite reduzir o espaço
necessário para o armazenamento sacrificando a
qualidade
• Modos de operação
– Baseline (sequencial): blocos codificados em sequência e
armazenados em sequência
– Progressiva
– Hierárquica
Módulo 6 – Compressão de Imagem e Som
27
Modos de operação
Sequencial
Módulo 6 – Compressão de Imagem e Som
Progressivo
Hierárquico
28
Outros Formatos com Perdas para
Imagem
• TIFF (tagged image file format): vários tipos
de imagem, com perdas e sem perdas;
• JPEG (Joint Photographic Experts Group):
Compressão com perdas;
• JPEG2000: compressão com perdas e sem
perdas.
Módulo 6 – Compressão de Imagem e Som
29
Codificação com Perdas para
Som
• Redundância e Irrelevância
• DPCM
• MPEG áudio
Módulo 6 – Compressão de Imagem e Som
30
Redundância e Irrelevância
Fonte
Codifica
dor
Canal
Descodi
ficador
Receptor
Possibilidades de compressão:
•Diminuição da redundância do sinal gerado pela fonte
(implica conhecimento sobre o sinal da fonte).
•Diminuição da irrelevância do sinal para o receptor
(implica conhecimento sobre o receptor).
Módulo 6 – Compressão de Imagem e Som
31
Redundância
• Sinal de Voz
– Limitado em banda
– Harmónico: nas partes vocalizadas pode ser
modelizado como uma soma de sinusóides.
• Existem codificadores que tiram partido deste
conhecimento para reduzir a redundância
existente no sinal de voz.
Módulo 6 – Compressão de Imagem e Som
32
Irrelevância
• O sistema de audição humana possui algumas limitações que
podem ser exploradas
–
–
–
–
–
Limitação em frequência 20Hz - 20.000Hz.
Limiar de audição.
Mascaramento na frequência.
Mascaramento temporal.
Percepção harmónica.
• Os sistemas de compressão de sinais de música mais eficientes
como por exemplo o MPEG tiram partido deste conhecimento
sobre as limitações do sistema auditivo.
Módulo 6 – Compressão de Imagem e Som
33
Codificadores de Voz
• O sinal de voz possui uma grande redundância pelo
que é possível tirar partido deste conhecimento prévio
• Duas técnicas são usadas na compressão de voz
– Redução da redundância usando predição
– Redução da irrelevância usando quantização
• Os codificadores de voz dividem-se em duas
categorias
– Diferencias (bitrates até 32kbps)
– Vocoders (bitrates até 2kbps)
Módulo 6 – Compressão de Imagem e Som
34
Codificação por Predição Linear
• A codificação por predição linear significa que é possível prever
(com um erro pequeno) cada amostra de um sinal usando uma
combinação linear das anteriores;
• Exemplo de preditor linear de ordem zero;
ˆ = x(n -1)
x(n)
ˆ
e(n) = x(n) - x(n)
• A predição da amostra atual é obtida supondo que é igual à amostra
anterior do sinal.
• O erro é calculado como a diferença entre a prevista e a real.
• Para muitos sinais (voz, música, imagem,etc) o sinal de erro
apresenta um histograma mais concentrado em torno de zero
tornando assim possível usar um codificador de entropia como o
código de Huffman.
Módulo 6 – Compressão de Imagem e Som
35
Codificação por Predição Linear
x(n)
e(n)
+
Preditor
e(n)
xˆ ( n)
x(n)
+
Em geral a saída
do preditor linear é
obtida como uma
combinação linear
das N anteriores
amostras do sinal
x(n).
+
xˆ (n)
Preditor
N
ˆ = åa k x(n - k)
x(n)
k=1
Módulo 6 – Compressão de Imagem e Som
36
DPCM- Differencial Pulse Code
Modulation
• Neste tipo de codificadores para além do preditor
linear que reduz a redundância do sinal introduz-se
um quantizador do sinal de erro.
• Esta técnica permite reduzir alguma da irrelevância
no sinal uma vez que o ouvinte tolera algum ruído de
quantização sem grande impacto perceptual.
• Apenas o erro quantizado é transmitido e a
codificação é realizada de modo a que o
descodificador consiga obter o sinal de saída apenas a
partir do sinal de erro quantizado.
Módulo 6 – Compressão de Imagem e Som
37
DPCM- Differencial Pulse Code
Modulation
e(n)
x(n) +
Quantizador
eq(n)
Codificador
de Entropia
-
xˆ ( n)
Descodificador
de Entropia
Preditor
eq(n)
xq(n)
xq(n)
+
+
xˆ ( n)
Módulo 6 – Compressão de Imagem e Som
Preditor
38
Preditor Linear de 1ª Ordem –
Aplicação em Som
Preditor linear de 1ª ordem aplicado a um sinal de voz.
Módulo 6 – Compressão de Imagem e Som
39
Preditor Linear de 1ª Ordem –
Aplicação em Imagem
Módulo 6 – Compressão de Imagem e Som
40
Vocoders
• Codificadores específicos para sinais de Voz;
• Não podem ser usados para codificar outros tipos de sinais;
• São baseados num modelo matemático do trato vocal
Vídeo das cordas vocais a vibrar
Módulo 6 – Compressão de Imagem e Som
41
Modelo Matemático para a Produção
de Voz
Parâmetros
Pitch
Geração de
impulsos
Vozeada
Filtro do
Trato Vocal
Gerador de
ruído
Voz
Não-vozeada
• Os telemóveis GSM utilizam a Regular-Pulse Excitation
Long-Term Predictor;
• A norma G.728 utiliza Low Delay Code Excited Linear
Prediction
Módulo 6 – Compressão de Imagem e Som
42
Codificadores de Voz
Freq. de
Compressão Amostragem
(kHz)
Resolução
(bits)
Taxa de
transmissão
(kbps)
Qualidade
Norma
LB (Hz)
IMAADPCM
200-20000
ADPCM
8-44.1
4
32-350
Telefone, CD
G.711
200 – 3200
m-law PCM
8
8
64
Telefone
G.722
50 – 7000
DPCM
16
4
64
Rádio AM
G.728
200 – 3200
low-delay
CELP
8
2
16
Telefone
G.723
200 – 3200
ADPCM
8
8
5.3 ou 6.3
H.323
GSM
200-3200
RPE
8
?
13
Telefone
Nos codificadores ADPCM (Adaptive DPCM), os coeficientes do preditor
linear e o número de bits do quantizador, são adaptados ao longo do tempo às
características do sinal de entrada.
Módulo 6 – Compressão de Imagem e Som
43
Codificadores de Áudio
• Os codificadores para comprimir música com alta qualidade apenas
tiram partido da irrelevância presente no sinal. Ou seja, removem do
sinal as componentes tempo/frequência que o ouvinte não
conseguirá notar;
• Existentes três características / limitações do sistema auditivo
humano que os codificadores como o MP3 tiram partido apra
conseguir os ganhos de compressão:
– Limiar auditivo;
– Mascaramento na frequência
– Mascaramento no tempo.
• Devido à necessidade de realizar uma análise tempo/frequência do
sinal estes codificadores realizam sempre uma variante do
espectrograma.
Módulo 6 – Compressão de Imagem e Som
44
Limiar de Audição
Não é necessário
codificar esta
componente
Módulo 6 – Compressão de Imagem e Som
45
Mascaramento na Frequência
Não é necessário
codificar esta
componente
Módulo 6 – Compressão de Imagem e Som
46
Mascaramento no Tempo
Módulo 6 – Compressão de Imagem e Som
47
Codificadores de Áudio
Freq. de
Taxa de
Compressão Amostragem transmissão
(kHz)
(kbps)
Norma
LB (Hz)
Audio CD
20 – 20000
Linear PCM
44.1
1411.2 (stereo)
CD
MPEG-1
Layer I
MPEG-1
Layer III
MPEG-2/4
AAC
20 – 20000
sub-band
coding
sub-band
coding
sub-band
coding
32 – 48
256 – 448
near CD
32 – 48
128 – 320
CD
8 – 96
arbitrary
CD
20 – 20000
20 – 20000
Qualidade
Em geral, o codificador AAC a 128kbps oferece a mesma qualidade
perceptual que o codificador MP3 a 192kbps (estéreo).
Módulo 6 – Compressão de Imagem e Som
48
MPEG-I: áudio
Três camadas (Layers) para compressão com níveis de
complexidade diferente e taxas/rácios diferentes
• Layer 1:
–
–
–
–
Modelo psico-acústico com mascaramento na frequência
30 kbit/s (mono) a 448 kbit/s (stereo)
Qualidade semelhante com CD para 256–384kbit/s
Philips DCC (Digital Compact Cassette) –192kbit/s
Módulo 6 – Compressão de Imagem e Som
49
MPEG-I: áudio
• Layer 2:
– Modelo psico-acústico acrescenta o mascaramento no
tempo
– 64 kbit/s a 256 kbit/s(stereo)
– DVD
– DAB (Digital áudio broadcast)
– Qualidade semelhante ao CD para192 a 256 kbit/s
• Layer 3:
–
–
–
–
–
Camada mais complexa.
Maiores taxas de compressão
64 kbit/s (mono)
Qualidade semelhante ao CD para 128 a 192 kbit/s
Codificador com o maior atraso
Módulo 6 – Compressão de Imagem e Som
50
"!# $%&$'%( !) *!+ , - !. / 0) 1%&!
!
&7, #< *=>#+#?-*16#
&' ( #) *+, -+. #/011#2*, 3-1#45#&6#+7#8 9: #; 7' &) 1-#+%
$%
&< B#
) 10' -*@=*&7#&6#*=#*0#, *A17#?1%
Codificador MP3
!
!
!
!!!!!!!!!!!!!!!!!!!! "#$%&'( )'* +, - . '/ "0#%01 ', 2'3 4 5 6 78'90: &%'; '5 <- , / &%'=>, $%-&'?@AB'
'
Módulo !
6 – Compressão de Imagem e Som
!
51
Comparação entre MPEG
Layer
Target Bitrate
Ratio
Quality at 64
kbit/s
Quality at 128
kbit/s
Theoretic Min.
Delay
Layer 1
192 kbit/s
4:1
---
---
19ms
Layer 2
128 kbit/s
6:1
2.1–2.6
4+
35ms
Layer 3
64 kbit/s
12:1
3.6–3.8
4+
59ms
Qualidade : 5- perfeito; 4- ligeira diferenças; 3- ligeiro incómodo;
2- desagradável; 1- horrível.
Módulo 6 – Compressão de Imagem e Som
52
Testes de Audição
•
•
•
•
•
Sinal de teste "castanets.wav"
MP3 64kbps
MP3 32kbps
MP3 8kbps
MP3 45-85kbps
Módulo 6 – Compressão de Imagem e Som
53
Bibliografia
• Kristo Lehtonen, "GSM Codec". pdf
• Karlheinz Brandenburg, "MP3 and AAC Explained", AES 17th
International Conference on High Quality Audio Coding,
1999. pdf
• Ze-Nian Li and Mark S. Drew, "Fundamentals of Multimedia",
PEarson Education, 2004. Capítulos 13 e 14.
Módulo 6 – Compressão de Imagem e Som
54
Download

pptx - Universidade de Aveiro › SWEET