Escolar Documentos
Profissional Documentos
Cultura Documentos
Multimédia
Bibliografia
◼ Imagens vectoriais
Formatos “abertos”
◼ Svg (Scalable Vector Graphics), …
Formatos proprietários
◼ swf (Adobe Flash), vsdx (Visio), …
Definição breve
◼ Windows Bitmap (BMP)
◼ Desenvolvido pela Microsoft (sistema padrão do Microsoft
Windows)
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)
Dimensão
◼ Ficheiros resultantes muito grandes
Muito espaço em disco
Inadequado para transmissão via Internet
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>
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
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…
Definição breve
◼ Joint Photographics Expert Group (JPEG)
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
𝐼𝑇 = 𝑇 𝐼𝑂
Transformação de modelo de cor → descorrelacionar luminância e
crominância usando YCbCr
◼ Sub-amostragem da crominância
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
17
Imagem original JPEG com Q alto
JPEG – Aspectos Gerais
(c) Q = 25
(d) Q = 5
© Ze-Nian Li 2014, p. 34
18
JPEG – Aspectos Gerais
Codificação
Descodificação
◼ inverter a ordem das setas
© http://cnx.org/content/m11084/latest/
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
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.)
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
7 7
1 2𝑖 + 1 𝑢𝜋 2𝑗 + 1 𝑣𝜋
𝐹 𝑢, 𝑣 = 𝐶𝑢 𝐶𝑣 𝑓 𝑖, 𝑗 cos cos
4 16 16
𝑖=0 𝑗=0
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
𝑀−1 𝑁−1
2 2𝑖 + 1 𝑢𝜋 2𝑗 + 1 𝑣𝜋
𝑓 𝑖, 𝑗 = 𝐶𝑢 𝐶𝑣 𝐹 𝑢, 𝑣 cos cos
𝑀 ∙ 𝑁 𝑢=0 𝑣=0 2𝑀 2𝑁
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)
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
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
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
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
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
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
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
4) Quantização (cont.)
◼ Descodificação: reconstruçã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
4) Quantização (cont.)
◼ Factor de qualidade
100 − 𝑞𝑓
, 𝑞𝑓 ≥ 50 round 𝑄 ∗ 𝑠𝑓 , 𝑠𝑓 ≠ 0
50
𝑠𝑓 = 𝑄𝑠 = ൞
50 𝑄1 , 𝑠𝑓 = 0
, 𝑞𝑓 < 50
𝑞𝑓
4) Quantização (cont.)
◼ Factores de qualidade típicos
qf = 50 → qualidade média
◼ sf = 1 → Qs = Q : quantização média
qf = 25 → qualidade baixa
◼ sf = 2 → Qs = 2Q : dobro da quantização média
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
© https://es.wikipedia.org/wiki/DPCM
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]
◼ Descodificação
Huffman e RLE inversos, zig-zag inverso
𝑀−1 𝑁−1
1 2
𝑅𝑀𝑆𝐸 = 𝑀𝑆𝐸 = 𝐼𝑜 𝑖, 𝑗 − 𝐼𝑅 (𝑖, 𝑗)
𝑀∙𝑁
𝑖=0 𝑗=0
𝑀−1 𝑁−1
1
𝑃= 𝐼𝑜 (𝑖, 𝑗)2
𝑀∙𝑁
𝑖=0 𝑗=0
𝑃
𝑆𝑁𝑅 = 10log10
𝑀𝑆𝐸
2
𝑚𝑎𝑥 𝐼𝑜
𝑃𝑆𝑁𝑅 = 10log10
𝑀𝑆𝐸
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
Aplicações principais
◼ Arquivamento
◼ Imagem profissional de alta qualidade
Exemplos
◼ GIF, PNG, JPEG Lossless…
Definição breve
◼ Graphics Interchange Format (GIF)
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
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)
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
◼ Mensagem: Dicionário
wabbawabbawabbawabbawoowoo
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)
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)
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)
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)
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)
Definição breve
◼ JPEG não destrutivo: variante não destrutiva do JPEG
Método de Compressão
◼ Ideia geral
A mesma do PNG (codificação DPCM com modelos de previsão)
◼ Filtros
Dimensão
◼ Taxa de compressão inferior a PNG
Suporte
◼ Actualmente, obsoleto
◼ Poucas aplicações o suportaram
Nunca foi popular, devido ao melhor desempenho do PNG
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
TIFF (cont.)
◼ Possibilidades
Suporte multi-página
◼ Várias imagens no mesmo ficheiro
◼ Suporte Web
Em geral, não é suportado por web browsers
◼ Exemplo:
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)
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, ...