A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CES-11 LAB 03 Bitmap Quadtree

Apresentações semelhantes


Apresentação em tema: "CES-11 LAB 03 Bitmap Quadtree"— Transcrição da apresentação:

1 CES-11 LAB 03 Bitmap Quadtree
Carlos Henrique Q. Forster – Instituto Tecnológico de Aeronáutica 2010

2 Bitmap Um bitmap é uma matriz de bits que representa uma imagem
Podemos definir 1=preto, 0=branco

3 Quadtree Uma Quadtree é uma árvore quaternária e geralmente está associada à decomposição espacial em quadrantes

4 Compressão de Imagem Compressão de imagem é uma forma de codificar uma imagem para reduzir o espaço que ocupa em memória ou disco. Todo método de compressão assume uma característica dos dados para a qual a codificação toma um espaço pequeno Se essa condição não é cumprida, pode ser que eventualmente o tamanho codificado seja maior que o tamanho original (muito raro)

5 Compressão com quadtree
A compressão com quadtree assume que há grande probabilidade de regiões vizinha terem a mesma cor Assim, uma região que tem todos os pixels (elemento da imagem) com a mesma cor, é codificada com apenas 2 bits

6 Nós da quadtree Há dois tipos de nós na quadtree:
Os nós que correspondem a regiões de uma única cor Branco Preto Nós que correspondem a regiões com as duas cores Esses nós são folhas da árvore B P Esses nós são nós internos de grau 4 da árvore

7 Codificando o bitmap O bitmap é particionado sempre que não for de uma só cor

8 Árvore final

9 Codificação em bits Cada vez que for gerada uma folha, coloca-se o bit 0 e em seguida o bit correspondente à cor (0=branco 1=preto) Cada vez que for gerada uma ramificação (nó interno), coloca-se o bit 1 e em seguida a codificação de cada subárvore em seqüência

10 Ou seja... 00 01 1... Codificação: 00 00 00 Curiosamente, tomou o mesmo espaço (16 bits) que a codificação original 01 01 00 00

11 93 bits agora!! Maior que os 64 originais
Para a imagem grande: Codificação: 93 bits agora!! Maior que os 64 originais

12 E se eu guardar as dimensões da imagem?
Boa idéia: Assim, posso representar imagens cujas dimensões não são potências de 2 (basta ignorar os pontos fora da região, considerando-os brancos ou pretos conforme a conveniência) Posso também codificar as folhas no último nível com apenas 1 bit 0=branco 1=preto, já que é sabido que não haverá ramificações!!

13 Nova codificação: 00 01 1... Se nível=max 1 100000011100 Codificação:
1 Codificação: 00 00 00 11100 Agora 12 bits, mas tive que guardar o tamanho 4x4 1 1

14 Novamente para a grande:
Codificação: 61 bits agora!! Ainda guardo o tamanho 16x16

15 Tarefa Escrever um programa para: Escrever outro programa para:
Ler um arquivo BMP (matriz de bits) preto-e-branco para a memória. Construir uma árvore quadtree a partir do bitmap. Gerar um arquivo binário cujos bits representem a imagem codificada pela quadtree. Escrever outro programa para: Ler a quadtree de um arquivo salvo pelo seu programa. Gerar um arquivo BMP com a imagem decodificada.

16 Material É fornecido um código de programa que:
Lê um arquivo BMP preto e branco para uma estrutura em bytes na memória, Escreve um arquivo BMP dada a estrutura da matriz de pixels, Lê e escreve bit por bit em um arquivo binário aberto Dica: pode ser mais fácil construir a árvore começando das folhas, através de chamadas recursivas.

17 Conclusões Veja quanto de uma imagem é possível comprimir.
Teste com uma imagem maior, como o exemplo pagina.bmp e veja a razão entre o tamanho da imagem original e da quadtree. Veja o quanto essa razão varia para imagens diferentes. Explique que características de uma imagem dificultam ou facilitam a compressão.


Carregar ppt "CES-11 LAB 03 Bitmap Quadtree"

Apresentações semelhantes


Anúncios Google