Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Guilherme Defreitas Juraszek
Compressão de Imagens Guilherme Defreitas Juraszek
2
Por que precisamos da compressão de imagens?
x x = 6MB Altura Largura Cores (RGB, 8 bits cada) = 1 frame!
3
Por que precisamos da compressão de imagens?
6MB x x = +10GB Quadro fps 1 min = vídeo de 1 minuto
4
Por que precisamos da compressão de imagens?
Hubble transmitia 120GB de dados por SEMANA. Fonte: 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:
5
Por que precisamos da compressão de imagens?
*Requisito: 2Gbps (GIGA)
6
Como podemos comprimir?
A maioria das imagens não apresentam pixels com cores completamente diferentes entre si. Representar a imagem B (cada linha tem um nível de cinza distinto) - 8 bits por pixel e representar todos os pixels (Ex: 128,128,128,128,128…) 8 bits por pixel e representar o tamanho de cada linha (Ex: 230,0,1000) Número de vezes + valor (Ex: 1000,230) © 1992–2008 R. C. Gonzalez & R. E. Woods
7
Compressão de Imagens Padrões estabelecidos
Você deve ser capaz de tirar uma foto em uma câmera difital e abrir a foto no seu computador Implementados em hardware
8
Compressão de Imagens Mapper: Transformam a imagem em um formato mais amigável para compressão Domínio de Frequência - Transformada de Fourier Domínio espacial – Olhar os pixels vizinhos Quantização Faz a redução Normalmente introduz erro Se for “lossy” impede a reconstrução exata da imagem Ex: ceil(valor/2)*2 Symbol Coder Organizar a informação para ser transmitida de forma eficiente Explora a redundância da informação Ex: codificação de huffman
9
Codificação de Huffman
JPEG Mapping 8x8 DCT Codificação de Huffman DCT – Transformada Discreta de Cosseno (Discrete Cosine Transform)
10
JPEG – Blocos 8x8 Uma imagem RGB pode ser decomposta em 3 matrizes, uma R, uma G e B. Uma possível solução seria aplicar a condificação JPEG em cada um dos canais
11
JPEG – Blocos 8x8 JPEG transforma o RGB para o espaço de cores YCbCr
Uma possível solução seria aplicar a condificação JPEG em cada um dos canais
12
JPEG – Blocos 8x8 Subdividir a imagem em blocos de 8x8
Uma possível solução seria aplicar a condificação JPEG em cada um dos canais
13
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”. Uma possível solução seria aplicar a condificação JPEG em cada um dos canais
14
DCT – Discrete Cosine Transform
T(u,v) = Σ Σ f(x,y) . R(x,y,u,v) n x n x=0 y=0 n-1 F(x,y) = Σ Σ T(x,y) . S(x,y,u,v) n x n x=0 y=0 n-1 Uma possível solução seria aplicar a condificação JPEG em cada um dos canais Usando Kahunen-Loève R e S tem valores específicos de acordo com a imagem, usando DCT os valores são fixos para todas as imagens.
15
DCT – Discrete Cosine Transform
R(x,y,u,v) = S(x,y,u,v) = α(x) α(v) cos + (2x + 1)uπ 2n (2y + 1)vπ Uma possível solução seria aplicar a condificação JPEG em cada um dos canais 1/n se u = 0 2/n se u ≠ 0 α(x) = n = tamanho do bloco
16
n = 4
17
8x8
18
DCT vs DFT
19
Codificação de Huffman
JPEG Mapping 8x8 DCT Codificação de Huffman DCT – Transformada Discreta de Cosseno (Discrete Cosine Transform)
20
Quantização
21
Quantização
22
Quantização
23
Quantização
24
Codificação de Huffman
JPEG Mapping 8x8 DCT Codificação de Huffman DCT – Transformada Discreta de Cosseno (Discrete Cosine Transform)
25
Codificação/Compressão de Huffman
26
Codificação/Compressão de Huffman
27
Codificação/Compressão de Huffman
28
Exercício Executar manualmente a codificação de Huffman
29
1 1 128:0.47 0.53 1 87:0.25 0.28 1 255:0.03 186:0.25
30
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ímbolos após a codificação. P(s) = Probabilidade do símbolo S - Σ p(s) log2 p(s) Entropia = H = Símbolos
31
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 Imagem Original -> DCT -> Quantização Quantização inversa -> DCT inversa -> Exibe imagem
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.