1
Sistemas Multimídia
Imagem Estática
Profa. Débora Christina Muchaluat Saade
Departamento de Ciência da Computação - UFF
3
Sistemas Multimídia
BMP
ü Bitmap ü Usado no Windows ü Baseado no modelo RGB ü Profundidade do pixel
• 1 (preto/branco), 4, 8 e 24 bits ü Pode usar codificação por carreira (run-length) ü Tipos de compressão
• 0 - no compression – mais comum • 1 - 8 bit run length encoding • 2 - 4 bit run length encoding • 3 - RGB bitmap with mask (transparência)
6
Sistemas Multimídia
BMP
ü Formato bitmap • Cabeçalho (header + info)
– informações sobre tamanho, profundidade do pixel e tipo de compressão
• tabela de cores – indica todas as cores usadas no bitmap (exceto para
representação de 24 bits por pixel) – formato 4 bytes por linha (B, G, R, reservado)
• Região de dados – valor de cada pixel em linhas (múltiplos de 32 bits/4 bytes)
– Ex.: 6 bytes que representam uma linha em um bitmap:
• A0 37 F2 8B 31 C4 – Devem ser salvos como:
• A0 37 F2 8B 31 C4 00 00 • Arquivo .bmp armazena linhas de baixo para cima
7
Sistemas Multimídia
GIF
ü Graphics Interchange Format • Formato proprietário da CompuServe
ü 24 bits por pixel (8 bits por componente R, G, B) ü GIF utiliza uma tabela de 256 cores com as cores mais
usadas na imagem • Global color table • Local color table
ü Cada valor na tabela tem 24 bits ü Utiliza o índice da tabela (8 bits) para representar cada
pixel da imagem ü Reduz o número de cores representadas para 256
• Comprime de 24 bits para 8 bits • Compressão de 3:1
10
Sistemas Multimídia
GIF
ü LZW pode ser usado ü Tabela de 512 entradas
• 256 cores mais usadas • Mais 256 combinações de 3 índices de 8 bits
ü Tabela de tamanho variável para acomodar mais combinações de 3 índices
ü Extensões permitem • definir uma cor transparente • animação • entrelaçamento
12
Sistemas Multimídia
GIF
ü Permite que imagem seja transferida por partes • modo entrelaçado
ü Útil para transferência em canais de baixa taxa ou com taxa de transmissão variável (Internet)
ü Descompressão pode ser feita de forma progressiva
ü Dados divididos em 4 grupos: • 1/8, 1/8, 1/4, 1/2
14
Sistemas Multimídia
TIFF
ü Tagged Image File Format – padrão ANSI ü Resolução de até 48 bits por pixel (16 bits por
componente R, G, B) ü Usado para Imagens e documentos digitalizados ü Formato usado é indicado por um código
• Formato não comprimido (code number = 1) • Comprimido com LZW (code number = 5)
ü Códigos 2, 3 e 4 são usados para documentos digitalizados (mesmo formato de fax)
15
Sistemas Multimídia
TIFF
ü Compressão com LZW • Mesma do GIF • Tabela inicial de 256 cores que pode ser estendida
até 4096 entradas (212) ü Algumas extensões ao TIFF dão suporte a modo
entrelaçado, mas não o padrão
16
Sistemas Multimídia
PNG
ü Portable Network Graphics ü Padrão W3C – World-Wide Web Consortium
• Padrão ISO 15948:2003 ü Projetado para substituir GIF e TIFF
17
Sistemas Multimídia
PNG x GIF
ü Vantagens sobre GIF: • Alpha channel, usado para especificar transparência
– GIF só suporta transparência binária (cada pixel é transparente ou opaco)
– PNG suporta vários níveis de transparência • Gamma correction, para corrigir diferenças entre o brilho da imagem em
monitores de diferentes plataformas – Ex.: imagens editadas em Mac parecem mais escuras em PC
• Entrelaçamento bidimensional • Melhor compressão (diferença de 5% a 25%)
ü Desvantagens: • Não suporta animação • Representação de imagem única somente • Extensão para múltiplas imagens
– MNG – Multiple-Image Network Format
18
Sistemas Multimídia
PNG
ü Tipos de imagens: • tons de cinza • true color (RGB) • com tabela de cores (palette) • tons de cinza com alpha channel • true color (RGB) com alpha channel
ü Profundidade do pixel: • 1 a 16 bits por componente
ü Formato de compressão sem perda: • Compactação com LZ77 e Huffman
ü Interessante para armazenar estágios intermediários da edição de uma imagem (em comparação com JPEG)
23
Sistemas Multimídia
PNG
ü Filtros de Compressão por linha • Objetivo: preparar os dados da imagem para
compressão ótima
24
Sistemas Multimídia
PNG
ü Filtros de compressão • Aplicados a bytes, não pixels • Imagem entrelaçada => cada passo é tratado
separadamente ü Pixel anterior, superior ou superior esquerdo
podem ser usados no cálculo do valor do filtro ü Decodificador precisa guardar linha anterior
abcx
25
Sistemas Multimídia
PNG
ü Tipos de filtros de compressão
Tipo Nome Codificação
0 None Filt(x) = Orig(x)
1 Sub Filt(x) = Orig(x) - Orig(a)
2 Up Filt(x) = Orig(x) - Orig(b)
3 Average Filt(x) = Orig(x) - (Orig(a) + Orig(b)) / 2
4 Paeth Filt(x) = Orig(x) - PaethPredictor(Orig(a), Orig(b), Orig(c))
abcx
28
Sistemas Multimídia
JPEG
ü Joint Photographic Experts Group ü Padrão ISO – IS 10918 ü Define vários modos de compressão para uso em
diversas aplicações • Modo sequencial com perdas – modo básico
– Compressão de imagens monocromáticas e coloridas
ü 5 estágios principais: • Preparação da imagem/bloco, DCT, quantização,
codificação por entropia, construção dos quadros
30
Sistemas Multimídia
JPEG
ü Preparação da imagem/bloco • Imagens monocromáticas, tons de cinza ou usando tabela de
cores – 1 matriz
• Imagem em RGB ou YCrCb – 3 matrizes, uma para cada componente – Matrizes de Cr e Cb podem ser menores (Ex.: 4:2:0)
• Cada elemento de uma matriz pode ter 8 ou 12 bits • Divisão das matrizes em blocos de 8 x 8 submatrizes
– Cálculo da transformada para cada posição usa todos os valores da matriz
– Mais rápido em matrizes menores (8 x 8) • Ex.: imagem 640 x 480 => 80x60 (4800) blocos de 8x8
33
Sistemas Multimídia
JPEG
ü Cálculo da Transformada Discreta de Co-senos • DCT • Discrete Cosine Transform
• Todos os 64 valores na matriz de entrada P[x,y] (f(x,y)) contribuem para cada entrada na matriz transformada F[i,j] (F(u,v))
• F[0,0] = coeficiente DC – média de todos os 64 valores • Outros valores são chamados coeficientes AC
– Para j=0 (linha) => coeficientes de frequência horizontal – Para i=0 (coluna) => coeficientes de frequência vertical
35
Sistemas Multimídia
JPEG
ü Quantização • Olho humano é mais sensível ao coeficiente DC e
coeficientes de frequências espaciais mais baixas • Frequências muito altas não são percebidas
– Coeficientes descartados (setados como zero) na matriz transformada
• Threshold para cada coeficiente (tabela de quantização) – Divisão do coeficiente pelo threshold – Quociente da divisão é arredondado para valor inteiro (erro de
quantização => perda de informação) • Tabela de quantização
– Padrão tem 2 tabelas defaults (luminância, crominância) – Pode usar tabela específica
38
Sistemas Multimídia
JPEG
ü Conclusões sobre a quantização: • O cálculo dos coeficientes quantizados envolve
arredondamento para o valor inteiro mais próximo • Os valores de threshold usados aumentam à medida
que as frequências espaciais aumentam • O coeficiente DC é o maior na matriz transformada • Muitos dos coeficientes de frequências mais altas
são nulos ü Últimos 2 pontos são explorados na codificação
por entropia (próximo estágio)
39
Sistemas Multimídia
JPEG
ü Codificação por entropia (4 passos) • Vetorização (vectoring) • Codificação diferencial (preditiva) • Codificação por carreira (run-length) • Codificação de Huffman
ü Estágio também conhecido como • Variable-length coding (VLC) stage
ü Utiliza codewords de tamanho variável
40
Sistemas Multimídia
JPEG
ü Vetorização • Transformação da matriz de 2 dimensões em um vetor • Coeficientes mais baixos são maiores • Varredura da matriz em zig-zag
41
Sistemas Multimídia
JPEG
ü Codificação diferencial • Coeficiente DC
ü Codificação por carreira • Coeficientes AC
42
Sistemas Multimídia
JPEG
ü Codificação diferencial • Coeficiente DC • Como blocos são pequenos, não tem muita variação entre
coeficientes DC de blocos sucessivos – Valor é codificado como diferença do valor do bloco corrente
para o anterior – O primeiro em relação a 0 (zero)
• Ex.: 12, 13, 11, 11, 10, ... • Diferenças: 12, 1, -2, 0, -1, ... • Codificação usa o formato (SSS, valor), onde SSS indica o
número de bits necessários para codificador o valor
43
Sistemas Multimídia
JPEG
ü Codificação Diferencial • Exemplo: 12, 1, -2, 0, 1 • Valores negativos são codificados com o
complemento do binário (sem sinal) ü Valor SSS Valor Codificado
• 12 4 1100 • 1 1 1 • -2 2 01 • 0 0 • -1 1 0