compressão de imagens guilherme defreitas juraszek

31
Compressão de Imagens Guilherme Defreitas Juraszek

Upload: internet

Post on 21-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Compressão de Imagens Guilherme Defreitas Juraszek

Compressão de Imagens

Guilherme Defreitas Juraszek

Page 2: Compressão de Imagens Guilherme Defreitas Juraszek

Por que precisamos da compressão de imagens?

1920 x 1080 x 24 = 6MB

Altura Largura Cores (RGB, 8 bits cada)

= 1 frame!

Page 3: Compressão de Imagens Guilherme Defreitas Juraszek

Por que precisamos da compressão de imagens?

6MB x 30 x 60 = +10GB

Quadro fps 1 min

= vídeo de 1 minuto

Page 4: Compressão de Imagens Guilherme Defreitas Juraszek

Por que precisamos da compressão de imagens?

Hubble transmitia 120GB de dadospor SEMANA.

Fonte: http://ssd.jpl.nasa.gov/horizons.cgi#results

Curiosity se comunica com a terra a 32kbps,ou 2mbps através de satélites intermediários(janela de comunicação de 8 minutos por dia)

Fonte: https://www.aiaa.org/SecondaryTwoColumn.aspx?id=13350

Page 5: Compressão de Imagens Guilherme Defreitas Juraszek

Por que precisamos da compressão de imagens?

*Requisito: 2Gbps (GIGA)

Page 6: Compressão de Imagens Guilherme Defreitas Juraszek

Como podemos comprimir?

• A maioria das imagens não apresentam pixels com cores completamente diferentes entre si.

© 1992–2008 R. C. Gonzalez & R. E. Woods

Page 7: Compressão de Imagens Guilherme Defreitas Juraszek

Compressão de Imagens

Page 8: Compressão de Imagens Guilherme Defreitas Juraszek

Compressão de Imagens

Page 9: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG

8x8 DCT Codificação de Huffman

Mapping

Page 10: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG – Blocos 8x8

• Uma imagem RGB pode ser decomposta em 3 matrizes, uma R, uma G e B.

Page 11: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG – Blocos 8x8

• JPEG transforma o RGB para o espaço de cores YCbCr

Page 12: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG – Blocos 8x8

• Subdividir a imagem em blocos de 8x8

Page 13: Compressão de Imagens Guilherme Defreitas Juraszek

DCT – Discrete Cosine Transform

• Com a imagem dividida em pedaços de 8x8 (64 pixels)– A ideia é transformar esse pedaço para um domínio

onde o primeiro elemento possibilite recriar a imagem com o menor erro possível (root mean square error), os demais 63 elementos são descartados.

– Kahunen-Loève Transform• É dependente da imagem• Lento para calcular• Necessita da imagem inteira para gerar os dados para o

cálculo, não pode ser calculado de forma “online” ou “on the fly”.

Page 14: Compressão de Imagens Guilherme Defreitas Juraszek

DCT – Discrete Cosine Transform

T(u,v) = Σ Σ f(x,y) . R(x,y,u,v)n x n x=0 y=0

n-1 n-1

F(x,y) = Σ Σ T(x,y) . S(x,y,u,v)n x n x=0 y=0

n-1 n-1

Usando Kahunen-Loève R e S tem valores específicos de acordo com a imagem, usandoDCT os valores são fixos para todas as imagens.

Page 15: Compressão de Imagens Guilherme Defreitas Juraszek

DCT – Discrete Cosine Transform

R(x,y,u,v) = S(x,y,u,v)

= α(x) α(v) cos +(2x + 1)uπ

2n

(2y + 1)vπ

2n

α(x) = 1/n se u = 0

2/n se u ≠ 0

n = tamanho do bloco

Page 16: Compressão de Imagens Guilherme Defreitas Juraszek

n = 4

Page 17: Compressão de Imagens Guilherme Defreitas Juraszek

8x8

Page 18: Compressão de Imagens Guilherme Defreitas Juraszek

DCT vs DFT

Page 19: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG

8x8 DCT Codificação de Huffman

Mapping

Page 20: Compressão de Imagens Guilherme Defreitas Juraszek

Quantização

Page 21: Compressão de Imagens Guilherme Defreitas Juraszek

Quantização

Page 22: Compressão de Imagens Guilherme Defreitas Juraszek

Quantização

Page 23: Compressão de Imagens Guilherme Defreitas Juraszek

Quantização

Page 24: Compressão de Imagens Guilherme Defreitas Juraszek

JPEG

8x8 DCT Codificação de Huffman

Mapping

Page 25: Compressão de Imagens Guilherme Defreitas Juraszek

Codificação/Compressão de Huffman

Page 26: Compressão de Imagens Guilherme Defreitas Juraszek

Codificação/Compressão de Huffman

Page 27: Compressão de Imagens Guilherme Defreitas Juraszek

Codificação/Compressão de Huffman

Page 28: Compressão de Imagens Guilherme Defreitas Juraszek

Exercício

• Executar manualmente a codificação de Huffman

Page 29: Compressão de Imagens Guilherme Defreitas Juraszek

1

128:0.47 0.53

87:0.25 0.28

255:0.03 186:0.25

1 0

0

0

1

1

Page 30: Compressão de Imagens Guilherme Defreitas Juraszek

Codificação/Compressão de Huffman

Como saber se vou ter uma boa compactação dos dados usando Huffman?R: Entropia – Ela diz qual é a média do tamanho da representação dos símbolosapós a codificação.

P(s) = Probabilidade do símbolo S

- Σ p(s) log2 p(s)Entropia = H = Símbolos

Page 31: Compressão de Imagens Guilherme Defreitas Juraszek

Exercícios

• Implementar o algoritmo JPEG– Implementar em tons de cinza– Usar a implementação DCT do adessowiki– Efetuar a quantização usando a tabela do slide 20– Representar usando a forma do slide figura d– Não precisa implementar Huffman

1. Imagem Original -> DCT -> Quantização2. Quantização inversa -> DCT inversa -> Exibe

imagem