Você está na página 1de 79

Departamento de Engenharia Informática

Multimédia

Compressão de Dados Multimédia:


Imagem Digital

Prof. Dr. Rui Pedro Paiva


Sumário

Bibliografia

Codecs de Imagem Digital


◼ Sem compressão
 BMP
◼ Destrutivos
 JPEG
◼ Não destrutivos
 GIF, PNG, JPEG Lossless

Formatos de Imagens Digital


◼ TIFF, SVG, outros

Compressão de Dados Multimédia: Imagem Digital 2


Bibliografia

Li et al (2014). “Fundamentals of Multimedia”, Springer.

Peter Symes (2003). “Digital Video Compression”, McGraw-Hill.


◼ Capítulos sobre imagem e jpeg

Compressão de Dados Multimédia: Imagem Digital 3


Codecs de Imagem Digital

Vários codecs/formatos disponíveis, tanto para bitmaps como


para imagens vectoriais, destrutivos e não destrutivos
◼ Bitmaps
 Codecs/formatos “abertos”
◼ jpg, gif, png, tiff, bmp, ...
 Codecs proprietários
◼ psd (Adobe Photoshop; misto bitmap e vectorial), …

◼ Imagens vectoriais
 Formatos “abertos”
◼ Svg (Scalable Vector Graphics), …
 Formatos proprietários
◼ swf (Adobe Flash), vsdx (Visio), …

◼ ‘Save as’ disponível, mas por vezes ocorrem surpresas...

Compressão de Dados Multimédia: Imagem Digital 4


BMP

Definição breve
◼ Windows Bitmap (BMP)
◼ Desenvolvido pela Microsoft (sistema padrão do Microsoft
Windows)

Compressão de Dados Multimédia: Imagem Digital 5


BMP – Aspectos Gerais

Modelo de cor
◼ RGB com 24 bits (8 bits por canal)
 → cor final depende do color profile definido

Método de Compressão
◼ Tipicamente, sem compressão
◼ Representação de dados segundo o padrão PCM (Pulse-Code
Modulation)
 Amostragem e quantização
 (ver Secção 1.1 Fundamentos de Multimédia: Imagem Digital)

Compressão de Dados Multimédia: Imagem Digital 6


BMP – Aspectos Gerais

Dimensão
◼ Ficheiros resultantes muito grandes
 Muito espaço em disco
 Inadequado para transmissão via Internet

Qualidade das imagens


◼ True color (RGB com 8 bits)
 Qualidade foto-realística
 Não há qualquer destruição da imagem captada por um dado
dispositivo (máquina fotográfica, scanner, etc.)

Compressão de Dados Multimédia: Imagem Digital 7


BMP – Aspectos Gerais

Variantes
◼ BMP com compressão Run-Length Encoding (RLE)
 E.g., cor “100” repetida 15 vezes → !<15><100> em vez de <100,
100, 100, ..., 100>

◼ BMP com especificação do número de cores


 Monocromático binário
 16 cores
 256 cores

Compressão de Dados Multimédia: Imagem Digital 8


Codecs Destrutivos

Metodologia geral
◼ Compressão destrutiva (lossy)
◼ Compressão perceptual, tirando partido das limitações da visão
humano
 Limitações nas componentes de alta frequência e cromáticas

Taxas de compressão
◼ Tipicamente 10:1

Compressão de Dados Multimédia: Imagem Digital 9


Codecs Destrutivos

Aplicações principais
◼ Armazenamento/transferência com restrições de espaço/largura de
banda
◼ Fotografia digital de uso doméstico

Exemplos
◼ JPEG, BPG (Better Portable Graphics), WebP…

Compressão de Dados Multimédia: Imagem Digital 10


JPEG

Definição breve
◼ Joint Photographics Expert Group (JPEG)

◼ Padrão para compressão de imagens fotográficas criado pelo Joint


Photographics Expert Group em 1992
 Grupo criado pela ISO em 1992, standard aprovado em 1994

◼ Nota: a descrição presente refere-se ao codec standard, havendo


algumas variantes, e.g., JPEG lossless

Compressão de Dados Multimédia: Imagem Digital 11


JPEG – Aspectos Gerais

Princípios gerais
◼ O sistema visual humano não consegue ver detalhe
extremamente fino
 Menor sensibilidade para distinguir a intensidade exacta da variação
em componentes de frequência espacial alta (transições abruptas
entre píxeis vizinhos)
◼ Componentes de alta frequência espacial podem ser
representados computacionalmente com menor detalhe
◼ Componentes correspondentes a variações suaves são favorecidos
face a componentes com variações abruptas
 Limitação de sensibilidade mais notória no processamento da cor
do que cinzento
◼ → Detalhe na representação computacional da cor pode ser
reduzido
◼ Compressão perceptual: reduzir redundância perceptual
 Compressão destrutiva
Compressão de Dados Multimédia: Imagem Digital 12
JPEG – Aspectos Gerais

Modelo de cor
◼ YCbCr tipicamente obtido a partir de imagem RGB com 24 bits

Método de Compressão
◼ Algoritmos de compressão perceptual (destrutiva) e entrópica
(não destrutiva)
◼ Compressão perceptual
 Tira partido das limitações da visão humana, descartando informação
não perceptível
◼ Menor detalhe nas componentes de alta frequência
◼ Menor detalhe nas componentes cromáticas (daí o uso do
modelo de cor YCbCr

Compressão de Dados Multimédia: Imagem Digital 13


JPEG – Aspectos Gerais

Método de Compressão (cont.)


◼ Transform Coding
 Teoria da Informação → Mais eficiente codificar vectores do que escalares
(correlação espacial, i.e., entre valores próximos)
◼ → Transformar blocos, e.g., blocos de uma imagem original, IO,
numa imagem transformada, IT, usando uma transformada T

𝐼𝑇 = 𝑇 𝐼𝑂
 Transformação de modelo de cor → descorrelacionar luminância e
crominância usando YCbCr
◼ Sub-amostragem da crominância

Compressão de Dados Multimédia: Imagem Digital 14


JPEG – Aspectos Gerais

Método de Compressão (cont.)


◼ Transform Coding (cont.)
 Discrete Cosine Transform (DCT) → descorrelação em frequência
◼ Evidenciar energia em diferentes frequências espaciais
◼ Quantização adaptativa
◼ Mais forte nos componentes de frequência espacial menos

importantes (altas frequências)


◼ → Reduzir o número de bits para as representar
◼ Principal operação destrutiva de todo o processo

Compressão de Dados Multimédia: Imagem Digital 15


JPEG – Aspectos Gerais

Dimensão
◼ Depende do factor de qualidade
(Q) definido (escala 0-100, 0-12)
 Alto → menor compressão →
dimensão maior (tipicamente de
7:1 a 10:1 com Q = 75)
 Baixo → maior compressão →
dimensão menor (tipicamente
100:1)
◼ Ficheiros resultantes
significativamente mais
pequenos que BMP (tipicamente
10:1)
◼ Frequentemente, conseguem-se
taxas de compressão de 25:1 sem
perda notória de qualidade
Compressão de Dados Multimédia: Imagem Digital 16
JPEG – Aspectos Gerais

Qualidade das imagens


◼ Depende do factor de qualidade especificado
 Alto → pouca compressão destrutiva → qualidade elevada
 Baixo → muita compressão destrutiva → qualidade baixa
◼ Em termos perceptuais será, idealmente, qualidade foto-
realística (mesmo sem 8 bits por canal)
 Utiliza métodos de compressão pensados para imagens fotográficas,
funcionando particularmente bem em imagens com transições
suaves entre as cores (baixa frequência espacial)

17
Imagem original JPEG com Q alto
JPEG – Aspectos Gerais

Qualidade das imagens (cont.)

(a) Imagem original

(b) Q = 75 (factor de qualidade típico)

(c) Q = 25

(d) Q = 5

© Ze-Nian Li 2014, p. 34

18
JPEG – Aspectos Gerais

Qualidade das imagens (cont.)


◼ Apresenta piores resultados em elementos do tipo gráficos
vectoriais
 Incluem geralmente transições abruptas entre cores< (i.e., alta
frequência espacial).
 Tende a introduzir algum ruído nas zonas de transição

JPEG (Q=High) – 17K JPEG (Q=Low) – 2K

Utilizado na compressão de imagens em ficheiros pdf


Suporte de transparência: inexistente
Compressão de Dados Multimédia: Imagem Digital 19
JPEG – Algoritmo de Compressão

Codificação

© Ze-Nian Li 2014, p. 283

Descodificação
◼ inverter a ordem das setas

Compressão de Dados Multimédia: Imagem Digital 20


JPEG – Algoritmo de Compressão

1) Converter imagem RGB para o modelo de cor YCbCr (ver


Secção 1.1)
◼ RGB tem muita redundância de luminância e crominância nos 3
canais
◼ YCbCr descorrelaciona os canais de cor, aumentado a
compressibilidade
◼ Descodificação: converter de YCbCr para RGB (ver atrás)

Compressão de Dados Multimédia: Imagem Digital 21


JPEG – Algoritmo de Compressão

2) Sub-amostragem (downsampling espacial)


◼ Olho humano mais sensível a variações de luminância
(intensidade: Y) do que de crominância (cor: Cb e Cr)

© http://cnx.org/content/m11084/latest/

Compressão de Dados Multimédia: Imagem Digital 22


JPEG – Algoritmo de Compressão

2) Sub-amostragem (cont.)
◼ → Baixar a resolução espacial em Cb e Cr
 Reduzir a taxa de amostragem

◼ Diversas variantes
 Esquema de sub-amostragem Yref : factor Cr: factor Cb
◼ Yref: referência para a amostragem horizontal
◼ Factor Cr: factor horizontal para Cr (em relação ao 1º dígito)
◼ Factor Cb: factor horizontal Cb (em relação ao 1º dígito)
◼ Excepto quando é 0

◼ Sub-amostragem igual à especificada pelo 2º dígito


◼ Cr e Cb são ambos sub-amostrados Yref:factor Cr na vertical

Compressão de Dados Multimédia: Imagem Digital 23


JPEG – Algoritmo de Compressão

2) Sub-amostragem (cont.)
◼ Diversas variantes
 4:4:4 → sem downsampling
 4:2:2 → taxa de amostragem de Cr e Cb reduzida para metade apenas
na direcção horizontal
 4:2:0 → taxa de amostragem de Cr e Cb reduzida para metade em
ambas as direcções (horizontal e vertical)
 Como?
◼ Filtro anti-aliasing (idealmente)
◼ Método simples mas menos rigoroso: descartar linhas e
colunas de acordo. E.g., 4:2:0 → descartar colunas alternadas e
linhas alternadas
◼ Descodificação: reconstruir linhas e colunas descartadas
 Recriar linha/coluna com valor igual ao da anterior
 Interpolação (linear, cúbica, etc.)

Compressão de Dados Multimédia: Imagem Digital 24


JPEG – Algoritmo de Compressão

3) Aplicação da DCT (Discrete Cosine Transform) 2D em blocos


8x8
𝑀−1 𝑁−1
2 2𝑖 + 1 𝑢𝜋 2𝑗 + 1 𝑣𝜋
𝐹 𝑢, 𝑣 = 𝐶𝑢 𝐶𝑣 ෍ ෍ 𝑓 𝑖, 𝑗 cos cos
𝑀∙𝑁 2𝑀 2𝑁
𝑖=0 𝑗=0

2
𝐶𝑘 = ൞ 2 , 𝑘 = 0
1 ,𝑘 ≠ 0
◼ f(i, j): pixel i,j F(u,v): coeficiente da DCT correspondente
◼ F: espectro de frequência da imagem

◼ i, u = 0, 1, . . . , M − 1; j, v = 0, 1, . . . , N − 1

Compressão de Dados Multimédia: Imagem Digital 25


JPEG – Algoritmo de Compressão

3) Aplicação da DCT (cont.)


◼ JPEG: DCT em blocos 8x8
 M = 8, N = 8

7 7
1 2𝑖 + 1 𝑢𝜋 2𝑗 + 1 𝑣𝜋
𝐹 𝑢, 𝑣 = 𝐶𝑢 𝐶𝑣 ෍ ෍ 𝑓 𝑖, 𝑗 cos cos
4 16 16
𝑖=0 𝑗=0

◼ F(0, 0): coeficiente DC


 Engenharia Electrotécnica: Direct Current
 Proporcional ao valor médio de todos os pixéis no bloco
◼ Restantes coeficientes: coeficientes AC
 Variações face à média: Alternating Current

Compressão de Dados Multimédia: Imagem Digital 26


JPEG – Algoritmo de Compressão

3) Aplicação da DCT (cont.)


◼ Conversão para o domínio de frequência
 Baixas frequências espaciais:
canto superior esquerdo da matriz
 Altas frequências espaciais:
canto inferior direito

◼ Propriedades de compactação de energia


 Imagem suave → maior parte da energia nas baixas frequências espaciais
→ poucas células de frequência contêm a maior parte da energia da
imagem (nas baixas frequências)

Compressão de Dados Multimédia: Imagem Digital 27


JPEG – Algoritmo de Compressão

3) Aplicação da DCT (cont.)


Ya Ya_DCT
0 0 0 0 0 255 255 255 956.3 -213.5 83.3 31.1 -63.8 20.7 34.5 -42.5
0 0 0 0 0 255 255 255 -213.5 -714.8 278.9 104.0 -213.5 69.5 115.5 -142.2
0 0 0 0 0 255 255 255 83.3 278.9 -108.8 -40.6 83.3 -27.1 -45.1 55.5
0 0 0 0 0 255 255 255 31.1 104.0 -40.6 -15.1 31.1 -10.1 -16.8 20.7
0 0 0 0 0 255 255 255 -63.8 -213.5 83.3 31.1 -63.8 20.7 34.5 -42.5
255 255 255 255 255 0 0 0 20.7 69.5 -27.1 -10.1 20.7 -6.8 -11.2 13.8
255 255 255 255 255 0 0 0 34.5 115.5 -45.1 -16.8 34.5 -11.2 -18.7 23.0
255 255 255 255 255 0 0 0 -42.5 -142.2 55.5 20.7 -42.5 13.8 23.0 -28.3

Ys Ys_DCT
80 84 88 92 96 100 96 92 701.0 35.1 -16.5 2.6 -3.0 0.4 -0.7 0.0
84 88 92 96 100 96 92 88 35.1 -39.1 -13.6 -1.6 -1.4 -1.1 -0.1 -0.4
88 92 96 100 96 92 88 84 -16.5 -13.6 1.7 5.2 1.3 0.3 0.7 0.0
92 96 100 96 92 88 84 80 2.6 -1.6 5.2 3.2 -1.2 -0.9 0.2 -0.3
96 100 96 92 88 84 80 76 -3.0 -1.4 1.3 -1.2 -3.0 -0.8 0.5 -0.3
100 96 92 88 84 80 76 72 0.4 -1.1 0.3 -0.9 -0.8 1.4 1.4 -0.2
96 92 88 84 80 76 72 68 -0.7 -0.1 0.7 0.2 0.5 1.4 0.3 -1.1
92 88 84 80 76 72 68 64 0.0 -0.4 0.0 -0.3 -0.3 -0.2 -1.1 -1.5

Exemplos de blocos 8x8 de canais de luminância: Ya (transições abruptas), Ys (transições suaves)

Compressão de Dados Multimédia: Imagem Digital 28


JPEG – Algoritmo de Compressão

3) Aplicação da DCT (cont.)


◼ Descodificação: DCT inversa, i.e. IDCT

𝑀−1 𝑁−1
2 2𝑖 + 1 𝑢𝜋 2𝑗 + 1 𝑣𝜋
𝑓 𝑖, 𝑗 = ෍ ෍ 𝐶𝑢 𝐶𝑣 𝐹 𝑢, 𝑣 cos cos
𝑀 ∙ 𝑁 𝑢=0 𝑣=0 2𝑀 2𝑁

Compressão de Dados Multimédia: Imagem Digital 29


JPEG – Algoritmo de Compressão

4) Quantização
◼ Olho humano não tem tanta sensibilidade para distinguir a
intensidade exacta da variação em componentes de alta
frequência espacial (transições abruptas)

 → Utilizar menos bits na sua representação, i.e., menos detalhe


 Principal operação destrutiva de todo o processo

Compressão de Dados Multimédia: Imagem Digital 30


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Processo geral
 Dividir os coeficientes da DCT por um inteiro e arredondar
◼ Representar coeficientes da DCT com mais ou menos bits,
consonante a sua frequência espacial

𝐹 𝑢, 𝑣
𝐹𝑄 𝑢, 𝑣 = round
𝑄 𝑢, 𝑣
 Quantização não uniforme (em frequência)
◼ Altas frequências espaciais representas com menos detalhe,
i.e., menos bits de quantização (coarser quantization):
Q(u, v) maior nas altas frequências, i.e., canto inferior
direito → muitos valores de altas frequências representados com
valor nulo

Compressão de Dados Multimédia: Imagem Digital 31


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Matrizes de quantização propostas no standard
 Resultantes de estudos psicológicos, com o objectivo de maximizar a
taxa de compressão, minimizando as perdas perceptuais → factor de
qualidade médio (detalhes adiante)

Q_Y Q_CbCr
16 11 10 16 24 40 51 61 17 18 24 47 99 99 99 99
12 12 14 19 26 58 60 55 18 21 26 66 99 99 99 99
14 13 16 24 40 57 69 56 24 26 56 99 99 99 99 99
14 17 22 29 51 87 80 62 47 66 99 99 99 99 99 99
18 22 37 56 68 109 103 77 99 99 99 99 99 99 99 99
24 35 55 64 81 104 113 92 99 99 99 99 99 99 99 99
49 64 78 87 103 121 120 101 99 99 99 99 99 99 99 99
72 92 95 98 112 100 103 99 99 99 99 99 99 99 99 99

Compressão de Dados Multimédia: Imagem Digital 32


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Exemplo
 Valores inteiros, significativamente menores e com menor variância →
menos bits necessários na codificação (entrópica)

Ya_Q Ys_Q
60 -19 8 2 -3 1 1 -1 44 3 -2 0 0 0 0 0
-18 -60 20 5 -8 1 2 -3 3 -3 -1 0 0 0 0 0
6 21 -7 -2 2 0 -1 1 -1 -1 0 0 0 0 0 0
2 6 -2 -1 1 0 0 0 0 0 0 0 0 0 0 0
-4 -10 2 1 -1 0 0 -1 0 0 0 0 0 0 0 0
1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 -1 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0

Compressão de Dados Multimédia: Imagem Digital 33


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Descodificação: quantização inversa

𝐹 𝑢, 𝑣 = 𝐹𝑄 𝑢, 𝑣 ∙ 𝑄 𝑢, 𝑣

Ya_IQ Ys_IQ
960 -209 80 32 -72 40 51 -61 704 33 -20 0 0 0 0 0
-216 -720 280 95 -208 58 120 -165 36 -36 -14 0 0 0 0 0
84 273 -112 -48 80 0 -69 56 -14 -13 0 0 0 0 0 0
28 102 -44 -29 51 0 0 0 0 0 0 0 0 0 0 0
-72 -220 74 56 -68 0 0 -77 0 0 0 0 0 0 0 0
24 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0
49 128 -78 0 0 0 0 0 0 0 0 0 0 0 0 0
-72 -184 95 0 0 0 0 0 0 0 0 0 0 0 0 0

Compressão de Dados Multimédia: Imagem Digital 34


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Descodificação: quantização inversa
 Erros resultantes do arredondamento na quantização

𝐸𝐷𝐶𝑇 𝑢, 𝑣 = 𝐹 𝑢, 𝑣 − 𝐹𝑄 𝑢, 𝑣
 Ya: erro absoluto elevado nas altas frequências → ruído nas zonas
de transições abruptas

Ea_DCT Es_DCT
-3.8 -4.5 3.3 -0.9 8.3 -19.3 -16.5 18.5 -3.0 2.1 3.5 2.6 -3.0 0.4 -0.7 0.0
2.5 5.2 -1.1 9.0 -5.5 11.5 -4.5 22.8 -0.9 -3.1 0.4 -1.6 -1.4 -1.1 -0.1 -0.4
-0.7 5.9 3.2 7.4 3.3 -27.1 23.9 -0.5 -2.5 -0.6 1.7 5.2 1.3 0.3 0.7 0.0
3.1 2.0 3.4 13.9 -19.9 -10.1 -16.8 20.7 2.6 -1.6 5.2 3.2 -1.2 -0.9 0.2 -0.3
8.3 6.5 9.3 -24.9 4.3 20.7 34.5 34.5 -3.0 -1.4 1.3 -1.2 -3.0 -0.8 0.5 -0.3
-3.3 -0.5 -27.1 -10.1 20.7 -6.8 -11.2 13.8 0.4 -1.1 0.3 -0.9 -0.8 1.4 1.4 -0.2
-14.5 -12.5 32.9 -16.8 34.5 -11.2 -18.7 23.0 -0.7 -0.1 0.7 0.2 0.5 1.4 0.3 -1.1
29.5 41.8 -39.5 20.7 -42.5 13.8 23.0 -28.3 0.0 -0.4 0.0 -0.3 -0.3 -0.2 -1.1 -1.5

Compressão de Dados Multimédia: Imagem Digital 35


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Descodificação: reconstrução (quantização inversa + DCT
inversa)
 Canal Y reconstruído

Ya_rec Ys_rec
0.0 3.7 0.0 25.6 0.0 255.0 254.3 255.0 79.6 84.3 91.3 97.2 99.6 98 94.3 91.4
2.1 0.0 16.2 13.5 1.9 240.5 249.8 255.0 83.6 87.5 93.2 97.7 98.9 96.4 92.3 89.2
0.2 0.0 12.0 0.0 0.0 255.0 255.0 255.0 89.5 92.1 95.7 98 97.1 93.4 88.7 85.4
9.5 27.5 0.5 0.0 0.0 255.0 244.3 233.6 94.6 95.8 97.1 96.8 94 89.2 84 80.7
0.0 0.0 0.0 0.0 12.5 230.6 239.1 255.0 96.8 96.8 96 93.7 89.6 84.3 79.1 76
255.0 246.7 255.0 255.0 238.3 43.6 0.0 0.0 95.8 94.8 92.7 89.2 84.5 79.3 74.8 72.1
255.0 232.7 255.0 237.3 239.1 0.0 17.7 26.7 93 91.6 88.7 84.7 80 75.3 71.5 69.3
249.0 255.0 251.5 255.0 255.0 9.8 22.6 0.0 90.8 89.1 86 81.8 77.3 73 69.7 67.9

Compressão de Dados Multimédia: Imagem Digital 36


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Descodificação: reconstrução
 Erro de reconstrução do canal Y

𝐸𝑟𝑒𝑐 𝑖, 𝑗 = 𝑓 𝑖, 𝑗 − 𝑓𝑟𝑒𝑐 𝑖, 𝑗

Ea_rec Es_rec
0.0 -3.7 0.0 -25.6 0.0 0.0 0.7 0.0 0.4 -0.3 -3.3 -5.2 -3.6 2.0 1.7 0.6
-2.1 0.0 -16.2 -13.5 -1.9 14.5 5.2 0.0 0.4 0.5 -1.2 -1.7 1.1 -0.4 -0.3 -1.2
-0.2 0.0 -12.0 0.0 0.0 0.0 0.0 0.0 -1.5 -0.1 0.3 2.0 -1.1 -1.4 -0.7 -1.4
-9.5 -27.5 -0.5 0.0 0.0 0.0 10.7 21.4 -2.6 0.2 2.9 -0.8 -2.0 -1.2 0.0 -0.7
0.0 0.0 0.0 0.0 -12.5 24.4 15.9 0.0 -0.8 3.2 0.0 -1.7 -1.6 -0.3 0.9 0.0
0.0 8.3 0.0 0.0 16.7 -43.6 0.0 0.0 4.2 1.2 -0.7 -1.2 -0.5 0.7 1.2 -0.1
0.0 22.3 0.0 17.7 15.9 0.0 -17.7 -26.7 3.0 0.4 -0.7 -0.7 0.0 0.7 0.5 -1.3
6.0 0.0 3.5 0.0 0.0 -9.8 -22.6 0.0 1.2 -1.1 -2.0 -1.8 -1.3 -1.0 -1.7 -3.9

Compressão de Dados Multimédia: Imagem Digital 37


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Descodificação: reconstrução

Compressão de Dados Multimédia: Imagem Digital 38


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Factor de qualidade
 Taxa de compressão (e, obviamente, qualidade) pode ser alterada
simplesmente pela multiplicação da matriz de quantização por um
factor de escala, sf

𝑠𝑓 = 𝑓(𝑞𝑓 ) 𝑞𝑓 ∈ 1,2, ⋯ , 100

◼ Factor de escala, sf, é função do factor de qualidade, qf

Compressão de Dados Multimédia: Imagem Digital 39


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Factor de qualidade

100 − 𝑞𝑓
, 𝑞𝑓 ≥ 50 round 𝑄 ∗ 𝑠𝑓 , 𝑠𝑓 ≠ 0
50
𝑠𝑓 = 𝑄𝑠 = ൞
50 𝑄1 , 𝑠𝑓 = 0
, 𝑞𝑓 < 50
𝑞𝑓

 Q1: all-ones matrix


 Nota:
◼ if Qs(u, v) > 255, Qs(u, v) = 255 (uint8)
◼ if Qs(u, v) < 1, Qs(u, v) = 1 (uint8)
Compressão de Dados Multimédia: Imagem Digital 40
JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Factores de qualidade típicos
 qf = 50 → qualidade média
◼ sf = 1 → Qs = Q : quantização média

 qf = 75 (valor por omissão)→ qualidade alta


◼ sf = 0.5 → Qs = ½Q : metade da quantização média

 qf = 25 → qualidade baixa
◼ sf = 2 → Qs = 2Q : dobro da quantização média

Compressão de Dados Multimédia: Imagem Digital 41


JPEG – Algoritmo de Compressão

4) Quantização (cont.)
◼ Factores de qualidade extremos
 qf = 100 → qualidade máxima
◼ Qs = [1] : não há quantização (só arrendamento) →
praticamente só há compressão entrópica

 qf = 10 → qualidade mínima
◼ sf = 5 → Qs = 5Q → quantização muito alta
◼ Valores de qf < 10 raramente são usados → imagem sem
qualidade minimamente aceitável

◼ Factores de qualidade: outras possibilidades


 Matriz de quantização definida pelo programador

Compressão de Dados Multimédia: Imagem Digital 42


JPEG – Algoritmo de Compressão

5) Codificação dos Coeficientes DC


◼ Codificação DPCM básica
 Modelo de previsão básico, i.e., prevê valor
actual com base no anterior

© https://es.wikipedia.org/wiki/DPCM

Compressão de Dados Multimédia: Imagem Digital 43


JPEG – Algoritmo de Compressão

5) Codificação dos Coeficientes DC


◼ Coeficiente DC: canto superior esquerdo
 Proporcional à média dos 64 píxeis
◼ Transições suaves → imagem em blocos
adjacentes com correlação elevada
◼ → DC codificado como a diferença face ao DC do
bloco anterior (ordem: left-right, top-bottom)
◼ → Gama de valores mais estreita e menor
variância → menor entropia maior
compressibilidade
◼ → Compressão entrópica da diferença
DIFF: Huffman (ou codificação aritmética)

Compressão de Dados Multimédia: Imagem Digital 44


JPEG – Algoritmo de Compressão

5) Codificação dos Coeficientes DC


◼ Exemplo
 DCi = 44, 42, 39, 42
DIFFi = 44, -2, -3, 3

◼ Descodificação: DPCM inversa


 DCi = DIFFi + DCi-1
 Exemplo
◼ DIFFi = 44, -2, -3, 3
DCi = 44, 42, 39, 42

Compressão de Dados Multimédia: Imagem Digital 45


JPEG – Algoritmo de Compressão

6) Codificação dos coeficientes AC


◼ Baixas frequências espaciais:
canto superior esquerdo
◼ Altas frequências espaciais:
canto inferior direito
 Quantização:
muitos zeros
◼ Converter a matriz para
vector, lendo em zig-zag

Compressão de Dados Multimédia: Imagem Digital 46


JPEG – Algoritmo de Compressão

6) Codificação dos coeficientes AC

Ya_z = [-19 -18 6 -60 8 2 20 21 2 -4 6 -7 5 -3 1 -8 -2 -2 -10 1 1 2 2 -1 2 1…


1 -1 2 0 1 1 0 2 -1 -2 -1 0 -1 0 -1 -3 1 0 0 0 0 1 0 0 0 0…
0 -1 0 0 0 0 0 0 0 0 0]

Ys_z = [3 3 -1 -3 -2 0 -1 -1 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 0 0 0 0 0 0 0]

Compressão de Dados Multimédia: Imagem Digital 47


JPEG – Algoritmo de Compressão

6) Codificação dos coeficientes AC


◼ Run-Length Encoding (RLE)
 Tirar partido dos muitos zeros nas altas frequências

◼ Codificação de Huffman (ou aritmética)


 Menos bits para representar os símbolos mais frequentes

◼ Descodificação
 Huffman e RLE inversos, zig-zag inverso

Compressão de Dados Multimédia: Imagem Digital 48


JPEG – Métricas de Distorção

Métricas de distorção/erro: Comparação da imagem original


com a reconstruída
◼ Grandeza matemática que mede o quão próxima é a aproximação
do original, e.g., a imagem descompactada da imagem original

Mean Square Error (MSE)


◼ Diferença média quadrada de entre os píxeis da imagem original,
Io, e da imagem reconstruída, IR (M / N = número de linhas /
colunas da imagem)
𝑀−1 𝑁−1
1
𝑀𝑆𝐸 = ෍ ෍ 𝐼𝑜 𝑖, 𝑗 − 𝐼𝑅 (𝑖, 𝑗) 2
𝑀∙𝑁
𝑖=0 𝑗=0

◼ Quadrado → penaliza mais erros elevados (amplificação maior)


Compressão de Dados Multimédia: Imagem Digital 49
JPEG – Métricas de Distorção

Root Mean Square Error (RMSE)


◼ Raiz do MSE
 → efeito de penalização de erros elevados não terá tanto peso

𝑀−1 𝑁−1
1 2
𝑅𝑀𝑆𝐸 = 𝑀𝑆𝐸 = ෍ ෍ 𝐼𝑜 𝑖, 𝑗 − 𝐼𝑅 (𝑖, 𝑗)
𝑀∙𝑁
𝑖=0 𝑗=0

Compressão de Dados Multimédia: Imagem Digital 50


JPEG – Métricas de Distorção

Signal-to-Noise Ratio (SNR)


◼ Relação entre o original e o erro → Rácio entre a potência do sinal
correcto (imagem original) e o ruído (MSE)
 Tipicamente medido em decibéis (dB): escala logarítmica →
compressão da gama

𝑀−1 𝑁−1
1
𝑃= ෍ ෍ 𝐼𝑜 (𝑖, 𝑗)2
𝑀∙𝑁
𝑖=0 𝑗=0

𝑃
𝑆𝑁𝑅 = 10log10
𝑀𝑆𝐸

Compressão de Dados Multimédia: Imagem Digital 51


JPEG – Métricas de Distorção

Peak Signal-to-Noise Ratio (PSNR)


◼ Rácio entre o quadrado do pico do sinal correcto (valor mais alto
da imagem original) e o ruído (MSE)

2
𝑚𝑎𝑥 𝐼𝑜
𝑃𝑆𝑁𝑅 = 10log10
𝑀𝑆𝐸

Compressão de Dados Multimédia: Imagem Digital 52


JPEG – Métricas de Distorção

Rate-Distortion Function (Função Taxa-Distorção)


◼ Compromisso entre número médio de bits por símbolo (píxel) e
distorção

© Ze-Nian Li 2014, p. 227

Compressão de Dados Multimédia: Imagem Digital 53


JPEG – Métricas de Distorção

Limitações das métricas de distorção


◼ Exemplo: Shift-right da imagem
 Distorção matemática notória
 Distorção perceptual nula para o humano médio
 → Métricas de distorção perceptual (fora do âmbito da disciplina)

Compressão de Dados Multimédia: Imagem Digital 54


Codecs Não-Destrutivos

Metodologia geral
◼ Compressão não-destrutiva (lossless)
◼ Utilização de modelos de previsão, e.g., DPCM e métodos de
compressão entrópica

Taxas de compressão
◼ Tipicamente 2:1

Compressão de Dados Multimédia: Imagem Digital 55


Codecs Não-Destrutivos

Aplicações principais
◼ Arquivamento
◼ Imagem profissional de alta qualidade

Exemplos
◼ GIF, PNG, JPEG Lossless…

Compressão de Dados Multimédia: Imagem Digital 56


GIF

Definição breve
◼ Graphics Interchange Format (GIF)

◼ Criado pela Compuserve para transmitir imagens através de linhas


telefónicas, em 1987 (denominação GIF87a)
 A minimização do tamanho dos ficheiros foi um objectivo primordial da
sua criação
 Tornou-se muito popular e maioritário na web, sobretudo nos
primórdios

Compressão de Dados Multimédia: Imagem Digital 57


GIF – Aspectos Gerais

Modelo de cor
◼ Palete de 256 cores distintas do modelo de cor RGB com 24 bits

Método de Compressão
◼ Ideia geral
 Compressão entrópica não destrutiva, com base no algoritmo LZW
(Lempel, Ziv, Welsh)
◼ Baseado em dicionários dinâmicos

Compressão de Dados Multimédia: Imagem Digital 58


GIF – Aspectos Gerais

Dimensão
◼ Ficheiros resultantes pequenos
 Taxa de compressão depende da imagem original: 20% a 10:1 (e.g.,
imagem complexa, não repetitiva: 2:1)

Qualidade das imagens


◼ Algoritmo de compressão não destrutivo
◼ Mas, limitações em imagens foto-realísticas: apenas 256 cores...

Compressão de Dados Multimédia: Imagem Digital 59


GIF – Aspectos Gerais

Possibilidades
◼ Transparência: cor transp. identificada por um índice na palete
 Não suporta transparência alpha
◼ GIF89a suporta formas simples de animação (várias imagens no
mesmo stream)
◼ Entrelaçamento

Compressão de Dados Multimédia: Imagem Digital 60


GIF – Algoritmo de Compressão

Breve descrição do algoritmo LZW (ver “Teoria da Informação”,


Prof. Dr. Paulo de Carvalho)
◼ Dicionário contém à partida entradas para todos os símbolos do
alfabeto
◼ Quando surge um novo padrão k = p|a (“p” – já existe no
dicionário e “pa” não existe)
 Encontrar a maior sequência de símbolos “p” da fonte para a qual
exista uma entrada no dicionário
 Transmite-se o índice de “p” do dicionário
 Cria-se uma nova entrada “pa” no dicionário (codificador e
descodificador) – fica disponível para a próxima ocorrência de “p|a”.
 Continua-se a codificação no símbolo“a”

Compressão de Dados Multimédia: Imagem Digital 61


GIF – Algoritmo de Compressão

Breve descrição do algoritmo LZW (cont.)

◼ Mensagem: Dicionário
wabbawabbawabbawabbawoowoo
woo Codificador Índice Entrada
1 
◼ Iteração 1:
◼ Análise: 2 a
 Padrão Existente = “w”. 3 b
 Próximo símbolo = “a”
◼ Enviar: <5> 4 o
◼ Criar entrada no dicionário 5 w
 “wa” com índice 6
6 wa
◼ Continuar a análise no padrão “a”
7 ab
◼ Iteração 2:
◼ Análise:
 Padrão Existente = “a”.
 Próximo símbolo = “b”
◼ Enviar: <2>
◼ Criar entrada no dicionário
 “ab” com índice 7
◼ Continuar a análise no padrão “b” Compressão de Dados Multimédia: Imagem Digital 62
PNG

Definição breve
◼ Portable Network Graphics (PNG)

◼ Criado em 1996, em resposta às questões levantadas com a


tentativa da UNISYS de exercer direitos de propriedade sobre parte
do formato GIF (em 1993)
◼ Mais cores do que GIF
 Nessa altura, sistemas com mais do que 256 cores estavam a tornar-se
comuns
◼ Utilização generalizada em páginas web

Compressão de Dados Multimédia: Imagem Digital 63


PNG – Aspectos Gerais

Modelo de cor
◼ RGB com canal alpha (8 ou 16 bits por canal)
◼ Níveis de cinzento (256) com alpha
◼ RGB sem alpha / cinza sem alpha
◼ Palete
◼ Número de bits por canal (ou na palete) pode variar (1, 2, 4, 8 ou
16)

Compressão de Dados Multimédia: Imagem Digital 64


PNG – Aspectos Gerais

Método de Compressão
◼ Ideia geral
 Codificação DPCM
◼ Com modelos de previsão e amostras adjacentes
◼ (Ver JPEG, codificação DPCM dos coeficientes DC)

Compressão de Dados Multimédia: Imagem Digital 65


PNG – Aspectos Gerais

Método de Compressão (cont.)


◼ Modelos de previsão
 Em cada linha, cada byte é previsto com base nos valores de bytes
anteriores (explora correlação espacial entre amostras consecutivas)
 Tipo de modelo (filtro)
◼ Nota: saída do filtro é já o resíduo (erro de previsão)

Compressão de Dados Multimédia: Imagem Digital 66


PNG – Aspectos Gerais

Método de Compressão (cont.)


◼ Compressão entrópica não destrutiva dos resíduos
 LZ77 (implementação do Deflate)
◼ Também baseado em dicionários dinâmicos
◼ Não patenteado!

Compressão de Dados Multimédia: Imagem Digital 67


PNG – Aspectos Gerais

Dimensão
◼ Taxa de compressão típica: 50%
◼ Ficheiros, tipicamente, menores que GIFs
 10 a 50%
◼ Ficheiros muito maiores que JPEGs (mesmo para factor de
qualidade JPEG alto)

Qualidade das imagens


◼ Compressão não destrutiva → qualidade permitida pela codificação
PCM subjacente
◼ Possibilidade de imagens foto-realísticas
◼ Possibilidade de utilização de paletes com mais cores que no GIF
(16 bits, mas, ainda assim, podem ocorrer perdas cromáticas)

Compressão de Dados Multimédia: Imagem Digital 68


PNG – Aspectos Gerais

Possibilidades
◼ Transparência
 Cor indexada
 Transparência alfa: : cada cor na palete tem um valor alfa associado
(alpha table) → pode haver mais do que uma cor transparente

69
PNG – Aspectos Gerais

Possibilidades (cont.)
◼ Animação não...
 PNG é um formato de imagem única
◼ Alternativas: APNG (animated PNG), MNG (Multiple-image
Network Graphics, extensão do PNG, complexo...)

◼ Entrelaçamento
 Esquema 2D, com 7 passagens (algoritmo Adam7)

Compressão de Dados Multimédia: Imagem Digital 70


JPEG Lossless

Definição breve
◼ JPEG não destrutivo: variante não destrutiva do JPEG

◼ Funcionamento semelhante ao do PNG: compressão não destrutiva


baseada em previsão e compressão dos resíduos

Compressão de Dados Multimédia: Imagem Digital 71


JPEG Lossless – Aspectos Gerais

Método de Compressão
◼ Ideia geral
 A mesma do PNG (codificação DPCM com modelos de previsão)

◼ Filtros

◼ Cálculo de resíduos e compressão entrópica (Huffman ou


aritmética)

Compressão de Dados Multimédia: Imagem Digital 72


JPEG Lossless – Aspectos Gerais

Dimensão
◼ Taxa de compressão inferior a PNG

Qualidade das imagens


◼ Possibilidade de imagens foto-realísticas (não destrutiva)

Suporte
◼ Actualmente, obsoleto
◼ Poucas aplicações o suportaram
 Nunca foi popular, devido ao melhor desempenho do PNG

Compressão de Dados Multimédia: Imagem Digital 73


Formatos de Imagem Digital - Bitmaps

TIFF (Tagged Interchange File Format)


◼ Origem
 Formato standard com vista a uniformizar o armazenamento de
imagens adquiridas de scanners nos anos 1980 em lugar da profusão
de formatos proprietários vigentes
 Inicialmente, formato monocromático atendendo à tecnologia dos
scanners
◼ Posteriormente, o formato TIFF passou a acomodar imagens em
escala de cinza e seguidamente imagens policromáticas
◼ Objectivos
 Projectado para ser um formato universal de bitmaps, flexível e
extensível
 Tags possibilitam extensibilidade
 Mesmo formato pode conter várias imagens
◼ Funciona como um contentor
 Pode conter imagens comprimidas por codecs diferentes, e.g., jpeg
 Pode conter gráficos vectoriais
Compressão de Dados Multimédia: Imagem Digital 74
Formatos de Imagem Digital - Bitmaps

TIFF (cont.)
◼ Modelo de cor (típico)
 RGB com 24 bits

◼ Compressão (típica)
 Várias possibilidades de compressão não destrutiva, e.g., RLE, LZW
◼ LZW pouco utilizado devido à questão da patente

◼ Dimensão e Qualidade (típica)


 Possibilidade de imagens foto-realísticas
 Ficheiros bastante maiores que JPEGs e um pouco maiores que PNGs
(com a mesma qualidade)
 Ficheiros maiores que GIFs (mas a profundidade de cor é muito
diferente)

Compressão de Dados Multimédia: Imagem Digital 75


Formatos de Imagem Digital - Bitmaps

TIFF (cont.)
◼ Possibilidades
 Suporte multi-página
◼ Várias imagens no mesmo ficheiro

◼ Motivação: resultado da digitalização de várias páginas


armazenado num único ficheiro

◼ Suporte Web
 Em geral, não é suportado por web browsers

Compressão de Dados Multimédia: Imagem Digital 76


Formatos de Imagem Digital - Vectoriais

SVG (Scalable Vector Graphics)


◼ Um dos poucos formatos vectoriais abertos
 Criado pelo World Wide Web Consortium (1999-2008)
 Baseado em XML
◼ Tipos de objectos gráficos suportados
 Imagens vectoriais, bitmaps e texto

◼ Exemplo:

Compressão de Dados Multimédia: Imagem Digital 77


Formatos de Imagem Digital - Vectoriais

SVG (cont.)
◼ Compressão
 XML →muitos fragmentos de texto repetidos → Deflate (gzip)
 Se comprimido, extensão .svgz
◼ Suporte Web
 Algumas dificuldades na sua adopção
◼ Utilização geral de formatos bitmap (e.g., GIFs em logos) ou
outros formatos proprietários (e.g., Macromedia/Adobe Flash)
 Suporte de browsers não é generalizado
◼ Nomeadamente, IExplorer (plug-in necessário)

◼ Implementações pouco completas por parte de outros browsers

Compressão de Dados Multimédia: Imagem Digital 78


Formatos de Imagem Digital - Vectoriais

Outros
◼ Adobe Flash
 Formato proprietário, mas utilização esmagadora na Web
◼ Plug-in incorporado de raiz na maioria dos browsers mais comuns
(incluíndo o IExplorer)
◼ WMF, EMF, EPS, ...

Compressão de Dados Multimédia: Imagem Digital 79

Você também pode gostar