28
EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 171 ____________________________________________________________________________ ____________________________________________________________________________ Arquivos Gráficos Introdução Há dois métodos básicos de se representar uma imagem Bitmap (ou pixelmap ou raster) Vetorial EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 172 ____________________________________________________________________________ ____________________________________________________________________________ Arquivos Gráficos Imagem tipo Bitmap A imagem é subdividida pequenas áreas denominada pixels (picture elements). A cada pixel é associada um valor que representa a cor da área da imagem original. A imagem é representada pela enumeração dos valores dos pixels. Para imagens preto-e-branco, cada pixel é representado por um único bit. Nas imagens coloridas (color images) os pixels são representados por um conjunto de bits. Estes conjunto de bits podem representar diretamente a cor ou ainda um índice em uma tabela de cores (pseudo color). Destaca-se a seguinte configuração de bits para representar imagens coloridas: 24 bits (truecolor): 8 bits para cada um dos canais vermelho, verde e azul; Utiliza-se em geral 8 bits para representar imagens em tons de cinza (grayscale images). Cada pixel da imagem é representado por um valor binário em uma matriz bidimensional (um mapa de valores binários) - daí o nome bitmap (mais apropriado para imagens preto-e-branco) ou pixelmap (mais apropriado para imagens coloridas ou em tons de cinza). Exemplos: BMP, GIF, PNG, TGA, JPEG

Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

Embed Size (px)

Citation preview

Page 1: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 171____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Introdução

� Há dois métodos básicos de se representar uma imagem

� Bitmap(ou pixelmapou raster)

� Vetorial

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 172____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Imagem tipo Bitmap

� A imagem é subdividida pequenas áreas denominadapixels(picture elements).

� A cada pixel é associada um valor que representa a cor daárea da imagem original.

� A imagem é representada pela enumeração dos valores dospixels.

� Para imagens preto-e-branco, cadapixel é representado porum único bit.

� Nas imagens coloridas (color images) ospixelssãorepresentados por um conjunto de bits. Estes conjunto debits podem representar diretamente a cor ou ainda umíndice em uma tabela de cores (pseudo color).

� Destaca-se a seguinte configuração de bits para representarimagens coloridas:

� 24 bits (truecolor): 8 bits para cada um dos canaisvermelho, verde e azul;

� Utiliza-se em geral 8 bits para representar imagens em tonsde cinza (grayscale images).

� Cada pixel da imagem é representado por um valor binárioem uma matriz bidimensional (um mapa de valoresbinários) - daí o nomebitmap(mais apropriado paraimagens preto-e-branco) oupixelmap(mais apropriado paraimagens coloridas ou em tons de cinza).

� Exemplos: BMP, GIF, PNG, TGA, JPEG

Page 2: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 173____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Imagem tipo Vetorial

� Em uma representação vetorial a imagem é representadapor um conjunto de linhas, curvas e/ou formas geométricas.

� Na representação vetorial, em geral, é possível que regiõessejam especificadas com uma cor sólida (ou chapada), tonsde cinza ou gradientes de tons (dégradé).

� Em sentido estrito, o termo vetorial se refere apenas àrepresentação através de retas (vetores), entretanto, o termovetorial pode compreender também formas mais complexascomo curvas, círculos , quadrados, etc. Em geral, arquivosde imagem do tipo vetorial são constituídos de comandosque implementam primitivas geométrica. Por exemplo:

� CIRCLE(10,250,150)círculo de raio 100 com centro em x = 250 e y = 100

� LINE(10,20,40,50)linha unindo o ponto (10,20) ao ponto (40,50)

� Exemplos: DXF (AutoCAD)

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 174____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Comparação entre as formas de representaçãoBitmap e Vetorial

� Generalidade da forma de Representação:

+ BITMAP: é capaz de representar praticamentequalquer imagem.

− VETORIAL: não é apropriada para representarimagens fotográficas (por exemplo: paisagem).

� Tamanho do Arquivo:

+ BITMAP: arquivo depende da resolução (número depixels) e do número debit planespor pixel - tende aser grande. Em geral, formatos de arquivos de imagembitmaputilizam algum método de compressão paraminimizar este problema.

− VETORIAL: arquivo tende a ser menor, já que asprimitivas geométricas definem, em geral, váriospixels.

Page 3: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 175____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Comparação entre as formas de representaçãoBitmap e Vetorial (cont.)

� Aumento Tamanho da Imagem:

− BITMAP: o aumento de tamanho da imagem podetornar a sua característica discreta visível,apresentando o efeito indesejável de serrilhamento debordas/contornos.

+ VETORIAL: as primitivas geométricas permitem oescalamento (aumento/diminuição) de modo suavesem apresentar efeitos indesejáveis.

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 176____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Comparação entre as formas de representaçãoBitmap e Vetorial (cont.)

� Manipulação Seletiva do Conteúdo:

− BITMAP: é limitada e trabalhosa a manipulação doconteúdo de uma imagem.

+ VETORIAL: permite a identificação das primitivas e amanipulação individual destas.

Page 4: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 177____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Comparação entre as formas de representaçãoBitmap e Vetorial (cont.)

� Apresentação:

+ BITMAP: não apresenta grandes problemas por sercompatível com a tecnologia varredura presente namaioria dos dispositivos de apresentação. Oprocedimento de apresentação não envolveprocessamento adicional. Não é apropriada para aapresentação em dispositivos do tipo vetorial.

− VETORIAL: Para a apresentação em dispositivos devarredura necessita processamento para a conversão,apresentando um custo computacional adicional. Estaconversão pode apresentar variações dependendo daestratégia utilizada (depende do programa deconversão). Mesmo para dispositivos da tecnologiavetorial pode ser necessário a conversão para asprimitivas nativas do dispositivo. Este procedimentotambém pode introduzir distorções.

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 178____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos

ÿ Arquivos Gráficos

� Nesta disciplina vamos apresentar e discutir apenas osformatos GIF e JFIF (JPEG File Interchange Format). Estesformatos de arquivos gráficos são da categoriabitmape sãoos formatos intensamente utilizados no ambiente Web.

Page 5: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 179____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Graphics Interchange Format (GIF)

� Característica principais:

� Tipo: Bitmap.

� Cor: Pseudo-cor, tamanho máximo da paleta 256 deum conjunto de 224 cores (16,777216 milhões decores).

� Compressão: LZW.

� Projetado principalmente para ser formato detransmissão (que pode ser utilizado paraarmazenamento) -data stream.

� Outras características:

� Desenvolvido pela CompuServe, Inc.

� Duas versões 1987 (87a) e 1989 (89a)

� Tamanho Máximo da Imagem: 64Kx64Kpixels.

� Suporta seqüenciamento de múltiplas imagens (Gifanimado) (89a).

� Suporta transparência (89a).

� Suporta modo entrelaçado de apresentação (89a)

� Suporta texto (89a).

� Permite extensão dependente da aplicação.

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 180____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Estrutura do arquivo - visão geral

� GIF define um protocolo para a transmissão on-line deimagens. GIF possui uma organização seqüêncial (datastream) que permite a apresentação da imagem à medidaque ela vai sendo recebida.

� GIF é organizado em blocos. Os blocos contêm asinformações necessárias para a reprodução da imagem.Estes elementos são enviados (ou armazenados)seqüencialmente.

Page 6: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 181____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Estrutura do arquivo - visão geral

� Os seguintes blocos estão definidos:

� Header

� Logical Screen Descriptor

� Global Color Table

� Image Descriptor

� Local Color Table

� Image Data

� Graphics Control Extension

� Plain Text Extension

� Comment Extension

� Application Extension

� Trailer

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 182____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Estrutura do arquivo - visão geral

� Os blocos podem ser classificados em:

� Blocos de Controle(utilizados para controlar oprocesso de transmissão e apresentação da imagem):Header; Logical Screen Descriptor; Global ColorTabel; Local Color Table; Image Descriptor;Graphics Control Extension e Trailer.

� Blocos com conteúdo gráfico(contêm as informaçõesda imagem propriamente dita): Image Data e PlainText Extension.

� Blocos de Propósito Especial(contêm informaçõespara o usuário e aplicação): Comment Extension eApplication Extension.

Page 7: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 183____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Estrutura do arquivo - visão geral

� O arquivo GIF contendo uma ou mais imagens segue aseguinte ordem:

� Header (obrigatório)

� Logical Screen Descriptor (obrigatório)

� Global Color Table (opcional)

� 1 ou mais

� Image Descriptor, Local Color Table (opcional) eTable Based Image Data.

� Graphic Control Extension, Image Descriptor,Local Color Table (opcional) e Table BasedImage Data.

� Trailer

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 184____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Header

� Bloco obrigatório composto de 6 byte. Identifica o formatoe sua versão. Abre um novo arquivo/data stream.

7 06 5 4 3 2 1

´G´

´I´

´F´

´8´

´9´

´a´

Signature

Version

Page 8: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 185____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Logical Screen Descriptor

� Bloco obrigatório composto de 7 bytes . Define a áreadentro da qual a imagem será apresentada, a existência deuma tabela de cores global e a relação de aspecto de umpixel.

� Logical Screen Width: largura, empixels, da área dentro daqual a imagem será apresentada. Esta área é denominadaTela Lógica.

� Logical Screen Height: altura, empixels, da área dentro daqual a imagem será apresentada. Esta área é denominadaTela Lógica

7 06 5 4 3 2 1

Logical Screen Width

Logical Screen Height

<Packed Fields>

Background Color Index

Pixel Aspect Ratio

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 186____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Logical Screen Descriptor

� Packed Fields

� Bit 7 - Global Color Table Flag: especifica a existência(1) ou não (0) de uma tabela de cores global.

� Bits 6 a 4 - Color Resolution : número de bits por corprimária da imagem original - 1.

� Bit 3 - Sort Flag: caso exista tabela de cores global,especifica se a tabela está ordenada (1) ou não (0).Ordenação: cores que ocorrem com maior freqüênciaprimeiro.

� Bits 2 a 0 - Size of Global Color Table: número de

entradas da tabela de cores global =

2 (Size of Global Color Table + 1).

� Background Color Index: Caso exista tabela global, oíndice da cor de fundo. Ospixelsda tela lógica não cobertospela imagem recebem a cor de fundo.

� Pixel Aspect Ratio: fator que permite calcular o relação deaspecto dospixelsda imagem (largura/altura), sendo dadodada por (0 = pixel aspect ratio não especificado):

� (pixel aspect ratio + 15)/64

� (≈ 4:1 a 1:4 com passo de 1/64)

Page 9: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 187____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Global Color Table

� Bloco Opcional: define a tabela de cores a ser utilizadas emtodas as imagens que não possuam tabela de cores local.

7 06 5 4 3 2 1

Red 0

Blue 0

Green 0

Red 1

Blue 1

Green 1

Red 2(Size of Global Color Table +1) - 1

Blue 2(Size of Global Color Table + 1)- 1

Green 2(Size of Global Color Table + 1)- 1

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 188____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Image Descriptor

� Bloco necessário para a especificação de uma imagem.Todaimagem é composta de um bloco Image Descriptor, de umatabela de cores local opcional e dos dados da imagem.

� Image Separator: identifica o início de um bloco ImageDescriptor (valor constante 0x2C).

� Image Left Position: identifica a coluna, empixels, da telalógica do canto esquerda da imagem (coluna mais aesquerda da Tela Lógica é 0)

� Image Top Position - identifica a linha, empixels, da TelaLógica da topo da imagem (linha superior da Tela Lógica é0)

7 06 5 4 3 2 1

Image Separator

Image Left Position

Image Width

Image Height

0x2C

Image Top Position

<Packed Fields>

Page 10: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 189____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Image Descriptor

� Image Width: largura, em pixels, da imagem.

� Image Height: altura, em pixels, da imagem.

� Packed Fields

� bit 7 - Local Color Table Flag: indica a existência (1)ou não (0) de uma tabela de cores local. Esta tabelaestá associada apenas à imagem que se segue.

� bit 6 - Interlace Flag: indica se a imagem está (1) ounão (0) entrelaçada.

� bit 5 - Sort Flag: indica se a tabela de cores local estáordenada (1) ou não (0).

� bits 4 e 3 - reservados

� bits 2 a 0 - Size of Local Color Table: especifica onúmero de entradas da tabela de cores local:2 (Size of Local Color Table + 1).

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 190____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Modo Entrelaçado

� 4 Passos

� Passo 1: a partir da linha 0, de oito em oito.

� Passo 2: a partir da linha 4, de oito em oito.

� Passo 3: a partir da linha 2, de quatro em quatro.

� Passo 4: a partir da linha 1, de duas em duas.LINHA

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

1

1

1

2

2

3

3

3

3

3

4

4

4

4

4

4

4

4

4

4

PASSOS

Page 11: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 191____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Local Color Table

� Bloco Opcional: Define tabela de cores a ser utilizadas naimagem que se segue. A existência da tabela de cores localé indicada no bloco Image Descriptor.

7 06 5 4 3 2 1

Red 0

Blue 0

Green 0

Red 1

Blue 1

Green 1

Red 2(Size of Local Color Table +1) - 1

Blue 2(Size of Local Color Table + 1)- 1

Green 2(Size of Local Color Table + 1)- 1

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 192____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Table Based Image Data

� Define a imagem, indicando as cores dospixelsda esquerdapara direita e de cima para baixo. A imagem é dada poruma seqüência de índices de uma tabela da cores (global oulocal) comprimida segundo método LZW.

7 06 5 4 3 2 1

Sub-Block

Image Data – LZW coded

Bloco Size

7 06 5 4 3 2 1

LZW Code Size

Sub-block 1

Block Terminator

Sub-block N

Page 12: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 193____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Table Based Image Data

� LZW Code Size: indica o tamanho inicial em bits do códigoLZW.

� Sub-block(s): especifica os dados da imagem em umaseqüência de um ou mais sub-blocos de dados. Cada sub-bloco possui um tamanho máximo de 255 bytes:

� Block Size: indica o tamanho, em bytes, dos dados sesegue.

� Image Data: seqüência de códigos LZW.

� Block Terminator: valor 0x00. Indica o final dos dados querepresentam uma imagem.

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 194____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Graphic Control Extension

� Bloco utilizado para a definição de GIF animado e imagemcom transparência.

� Extension Introducer: identifica o início de um bloco deextensão (valor 0x21).

� Graphic Control Label: identifica o bloco de extensão comode controle gráfico (valor 0xF9).

� Bock Size : indica o tamanho em bytes da informação quese segue, sem incluir bloco finalizador (valor 4).

7 06 5 4 3 2 1

Extension Introducer

Graphic Control Label

<Packed Fields>

Delay Time

0x21

Block Size

Transparent Color Index

0xF9

0x04

Block Terminator0x00

Page 13: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 195____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Graphic Control Extension

� Packed Fields:

� Bits 7 a 5 - reservados

� Bits 4 a 2 - Disposal Method:

� 0 - Método de descarte não especificado

� 1 - Não descartar

� 2 - Descartar e restaurar a cor de fundo

� 3 - Descartar e restaurar informação anterior

� 4 a 7 - reservados

� Bit 1 - User Input Flag: indica se uma entrada dousuário é esperada (1) ou não (0). Se o bit forverdadeiro, o processamento só continuará após aentrada do usuário. A característica da entradadepende da aplicação (teclado, mouse, …)

� Bit 0 - Transparent Color Index: Indica se o campoTransparent Color Index contém um índice válido.

� Delay Time: indica tempo de espera, em centésimos desegundo, antes que o processamento possa continuar. Casoespecificado com uma entrada de usuário, o evento queocorrer primeiro (fim do tempo de espera ou entrada dousuário) dispara a continuação do processamento.

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 196____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Graphic Control Extension

� Block Terminator: indica o fim do bloco (valor 0x00).

Page 14: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 197____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Plain Text Extension

� Bloco utilizado para a definição de texto. É tarefa dointerpretador (decodificador) do arquivo/data streamgerarrepresentação gráfica do texto..

7 06 5 4 3 2 1

Extension Introducer

Plain Text Label

Text Grid Left Position

Text Grid Top Position

0x21

Block Size

Text Grid Width

0x01

0x0C

Block Terminator0x00

Text Grid Height

Character Cell Width

Character Cell Height

Text Foreground Color Index

Text Background Color Index

Sub-Block 1

Sub-Block N

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 198____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Plain Text Extension

� Extension Introducer: identifica o início de um bloco deextensão (valor 0x21).

� Plain Text Label: identifica a extensão como extensão detexto (valor 0x01).

� Block Size: indica o número de bytes que se segue antesdos sub-blocos de dados (valor 12 = 0x0C).

� Text Grid Left Position: indica o número da coluna, empixels, do canto superior esquerdo da primeira célula detexto.

� Text Grid Top Position: indico o número da linha, empixels, do canto superior esquerdo a primeira célula detexto

7 06 5 4 3 2 1

Sub-Block

Plain Text Data – ASCII text

Bloco Size

Page 15: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 199____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Plain Text Extension

� Text Grid Width: indica a largura da grade de texto empixels.

� Text Grid Height: indica a altura da grade de texto empixels.

� Character Cell Width: indica a largura, empixels, de umacélula de texto.

� Character Cell Height: indica a altura, empixels, de umacélula de texto.

� Text Foreground Color Index: indica o índice na tabelaglobal de cores da cor das letras.

� Text Background Color Index: indica o índice da tabelaglobal de cores da cor de fundo das letras.

� Sub-block(s): informação textual agrupada em blocos de,no máximo, 255 caracteres:

� Block Size: indica o número de caracteres ASCII quese segue.

� Plain Text Data: seqüência de caracteres ASCII

� Block Terminator: indica o final do bloco (valor 0x00).

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 200____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Comment Extension

� Bloco de auxílio à documentação. Permite a definição decomentários escritos.

7 06 5 4 3 2 1

Sub-Block

Comment Data – ASCII text coded

Bloco Size

7 06 5 4 3 2 1

Extension Introducer

Comment Label

Block Terminator

Sub-block 1

Sub-block N

0x21

0xFE

0x00

Page 16: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 201____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Comment Extension

� Extension Introducer: identifica o início de um bloco deextensão (0x21).

� Comment Label: identifica o bloco de extensão como blocode comentário (valor 0xFE).

� Sub-block(s): texto dos comentário codificado em sub-blocos de no máximo 255 caráteres.

� Block Size: indica o número de caráteres ASCII que sesegue.

� Comment Data: seqüência de caráteres ASCII.

� Block Terminator: indica o final do bloco (valor 0x00).

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 202____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Application Extension

� Bloco que contem informação especifica de uma aplicação.

7 06 5 4 3 2 1

Extension Introducer

Application Extension Label

Application Identifier

0x21

Block Size

0xFF

0x0B

Block Terminator0x00

Application Authentication Code

Character Cell Height

Text Foreground Color Index

Text Background Color Index

Sub-Block 1

Sub-Block N

Page 17: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 203____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Application Extension

� Extension Introducer: identifica o início de um bloco deextensão (0x21).

� Extension Label: : identifica o bloco de extensão comobloco de aplicação (valor 0xFF).

� Block Size: indica o número de bytes que se segue antesdos sub-blocos de dados (valor 11 = 0x0B).

� Application Identifier: seqüência de 8 caráteres ASCIIidentificando a aplicação.

� Application Authentication Code: seqüência de 3 bytes paraautenticar a aplicação (por exemplo, versão).

7 06 5 4 3 2 1

Sub-Block

Application Data

Bloco Size

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 204____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Application Extension

� Sub-block(s): dados da aplicação empacotados em sub-blocos de no máximo 255 bytes:

� Block Size: número de bytes que se segue.

� Application Data: dados específicos a sereminterpretados pela a aplicação.

� Block Terminator: indica o final do bloco (valor 0x00).

Page 18: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 205____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - GIF

ÿ Trailer

� Bloco que indica o fim do arquivo/data streamGIF

� Trailer: valor 0x3B

7 06 5 4 3 2 1

Trailer0x3B

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 206____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ JPEG Interchange Format (JFIF)conhecido como formato de arquivo JPEG

� Característica principais:

� Tipo: Bitmap.

� Cor: até 24 bits (16,777216 milhões de cores), espaçode cor Y Cb Cr.

� Compressão: JPEG.

� Projetado principalmente para ser formato detransmissão (que pode ser utilizado paraarmazenamento) -data stream.

� Outras características:

� Desenvolvido pela C-Cube Microsystem, baseado naITU-T Recommendation T8.1.

� Tamanho Máximo da Imagem: 64Kx64K pixels.

� Suporta pré-visualizaçao através de imagemthumbnail.

� Suporta modo progressivo dedescompressão/visualização.

Page 19: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 207____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modos de Compressão

� Baseline DCT

� DCT

� 8 bits por amostra

� Seqüencial

� Codificação Huffman

� Intercalado e Não-Intercalado

� DCT Estendido

� DCT

� 8-bit ou 12 bits por amostra

� Seqüencial ou Progressivo

� Codificação Huffman ou Aritmética

� Intercalado e Não-Intercalado

� Sem Perda (lossless)

� Não DCT (preditivo)

� 2 a 16 bits por amostra

� Codificação Huffman ou Aritmética

� Intercalado e Não-intercalado

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 208____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modos de Compressão (cont.)

� Hierárquico

� Múltiplos quadros (diferencial ou não-diferencial)

� DCT estendido ou Sem Perda (lossless)

� Intercalado e Não-Intercalado

Page 20: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 209____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modos Seqüencial e Progressivo

� Seqüencial

� Progressivo

� Duas variações:

� Espectral

� Aproximação Sucessiva

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 210____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modo Seqüencial

0

63

.

.

.

CoeficientesDCT

Blocos8x8

07

MSB LSB

...

Byte

Blocos8x8

Ordem de Transmissão

Page 21: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 211____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modo Progressivo - Espectral

0

63

.

.

.

CoeficientesDCT

Blocos8x8

07

MSB LSB

...

Byte

0Coeficientes

DC

Blocos8x8

Ordem deTransmissão

1Coeficientes

AC

Blocos8x8

Ordem deTransmissão2

61Coeficientes

AC

Blocos8x8

Ordem deTransmissão

62

63

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 212____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Modo Progressivo – Aproximação Sucessiva

0

63

.

.

.

CoeficientesDCT

Blocos8x8

07

MSB LSB

...

Byte

0Coeficientes

DC

Blocos8x8

Ordem deTransmissão

07 ...

1

63

.

.

.

CoeficientesAC

Blocos8x8

67 5 4

Ordem deTransmissão

1

63

.

.

.

CoeficientesAC

Blocos8x8

0

Ordem deTransmissão

Page 22: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 213____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ JPEG Interchange Format (JFIF)conhecido como formato de arquivo JPEG

� Hierárquico - resolução múltipla

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 214____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ JPEG Interchange Format (JFIF)conhecido como formato de arquivo JPEG

� Estrutura JFIF

� Seqüência de Segmentos

� Segmentos identificados por marcadores (markers)

� Contém a imagem e as tabelas de quantização e decodificação Huffman (ou aritmética).

Page 23: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 215____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ Marcadores

Código (Hexa) Símbolo Descrição

FFC0 SOF0 Baseline DCTFFC1 SOF1 Sequëncial Estendido DCTFFC2 SOF2 Progressivo DCTFFC3 SOF3 Sem perdas (seqüencial)

FFC5 SOF5 Sequëncial Diferencial DCTFFC6 SOF6 Progressivo Diferencial DCTFFC7 SOF7 Sem perdas Diferencial (seqüencial)

FFC8 JPG Reservado para extensõesFFC9 SOF9 Sequëncial Estendido DCTFFCA SOF10 Progressivo DCTFFCB SOF11 Sem perdas (seqüencial)

FFCD SOG13 Sequëncial Diferencial DCTFFCE SOF14 Progressivo Diferencial DCTFFCF SOF15 Sem perdas Diferencial (seqüencial)

FFC4 DHT Definição de Tabela(s) de Huffman

FFCC DAC Definição de Tabela(s) de Codificação Aritmética

FFD0 até FFD7 RTSm Reinício

FFD8 SOI Início de ImagemFFD9 EOI Fim de ImagemFFDA SOS Início de varredura (start of scan)FFDB DQT Definição de Tabela(s) de QuantizaçãoFFDC DNL Definição de Número de LinhasFFDD DRI Definição de interfaclo de reinícioFFDE DHP Definição de Progressão HierárquicaFFDF EXP Expansão de componente(s)FFE0 até FFEF APPn Reservado para Segmentos da AplicaçãoFFF0 até FFFD JPGn Reservado para extensão JPEGFFFE COM Comentário

FF01 TEM Para uso temporário na codificação aritméticaFF02 até FFBF RES Reservado

Marcadores reservados

Especificação de Tabela de Huffman

Especificação da Codificaçào Aritmética

Terminador de intervalo de r+A59einício

Outros marcadores

Start of Frame, não-diferencial, Codificação Huffman

Start of Frame, diferencial, Codificação Huffman

Start of Frame, não-diferencial, Codificação Aritmética

Start of Frame, diferencial, Codificação Aritmética

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 216____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ JFIF (Baseline)

� SOI - Start of Image.

� APP0 - JFIF Application Segment.

� (1 ou mais) APP0 - JFIF Extension segment(s)(opcional).

� (1 ou mais) DQT - Define Quantization table.

� SOF0 - Start Of Frame type 0 Baseline DCT.

� (1 ou mais) DHT - Define Huffmann Table.

� (1 ou mais) SOS - Start of Scan (dados da imagem).

� EOI - End of Image.

Page 24: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 217____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ JPEG Interchange Format (JFIF)conhecido como formato de arquivo JPEG

� SOI - Start of Image

� 2 Bytes: FF D8

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 218____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ APP0 - JFIF Application Segment

� Caso a imagemthumbnailnão seja especificada X=Y = 0

Posição Tamanho Nome Conteúdo Descrição0 2 APP0 FFE0 Marcador APP02 2 Comprimento Integer Comprimento do Segmento4 5 "JFIF\0" JFIF string9 2 Versão 0102 versão 1.2

11 1 Unidades de X e Y Byte 0: unidade arbitrária1: pixels/inch2: pixel/cm

12 2 X densidade Integer Densidade horizontal14 2 Y densidade Integer Densidade vertical16 1 X thumb Integer Largura do imagem thumbnail17 1 Y thumb Integer Altura da Imagem thumbnail18 3*(X*Y) Thumb RGB Imagem thumbnail

JFIF - Segmento de Aplicação

Page 25: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 219____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ APP0 - JFIF Extension segmentTipo 11 - Thumbnail pseudo-colorpaleta de 256 cores

Posição Tamanho Nome Conteúdo Descrição0 2 APP0 FFE0 Marcador APP02 2 Comprimento Integer Comprimento do Segmento4 5 "JFXX\0" JFXX string9 1 Code 11 Thumbanail em pseudo-cor10 1 X thumb Byte Largura do imagem thumbnail11 1 Y thumb Integer Altura da Imagem thumbnail12 3*256 CLUT - paleta RGB CLUT para a imagem thumbnail13 (X*Y) Imagem Bytes Imagem thumbnail

JFXX - Segmento de Aplicação

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 220____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ APP0 - JFIF Extension segmentTipo 13 - Thumbnail truecolor

Posição Tamanho Nome Conteúdo Descrição0 2 APP0 FFE0 Marcador APP02 2 Comprimento Integer Comprimento do Segmento4 5 "JFXX\0" JFXX string9 1 Code 13 Thumbanail em truecolor

10 1 X thumb Byte Largura do imagem thumbnail11 1 Y thumb Integer Altura da Imagem thumbnail12 3*(X*Y) Imagem thumbnail RGB CLUT para a imagem thumbnail

JFXX - Segmento de Aplicação

Page 26: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 221____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ DQT - Define Quantization table(até 4 tabelas - em geral, são utilizadas 2 tabelas: 1para Y e outra para Cb e Cr)

� Precisão:

� 0 – 8 bits (Byte) - Baseline

� 1 – 16 bits (Integer)

� ID de tabelas pode assumir os valores: 0, 1, 2 e 3.

Posição Tamanho Nome Conteúdo Descrição0 2 DQT FFDE Marcador Tabela(s) Quantização2 2 Comprimento Integer Comprimento do Segmento4 1 P/T Byte 4 bits mais signficativo - precisão

4 bits menos significativos - ID da tabela5 64 ou 128 Elementos Byte ou Integer Valor da Tabela em zig-zag

N 1 P/T Byte 4 bits mais signficativo - precisão4 bits menos significativos - ID da tabela

N+1 64 ou 128 Elementos Byte ou Integer Valor da Tabela em zig-zag

JFXX - Segmento de Aplicação

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 222____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ SOF0 - Start Of Frame Type 0 Baseline DCT

Posição Tamanho Nome Conteúdo Descrição0 2 SOF0 FFC0 Marcador2 2 Comprimento Integer Comprimento do Segmento4 1 P Byte Precisão da Amostra (8 bits baseline)5 2 Y Integer Número de linhas da image7 2 X Integer Número de colunas da image9 1 Nf Integer Número de Componentes10 1 Ci Byte Identificador da Componente11 1 H/V Byte 4 MSB - Fator de Amostragem Horizontal

4 LSB - Fator de Amostragem Vertical12 1 Tqi Byte Tabela de Quantização Associada

N 1 Ci Byte Identificador da ComponenteN+1 1 H/V Byte 4 MSB - Fator de Amostragem Horizontal

4 LSB - Fator de Amostragem VerticalN+2 1 Tqi Byte Tabela de Quantização Associada

SOF0 - Start of Frame 0

Page 27: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 223____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ DHT - Define Huffmann Table

� Existem 03 procedimentos associados (veja capítuloanterior)

� GERSIZE

� GERCODE

� SORTCODE

Posição Tamanho Nome Conteúdo Descrição0 2 DHT FFC4 Marcador2 2 Comprimento Integer Comprimento do Segmento4 1 Tc/Th Byte 4 MSB - Classe Tabela (0 = DC, 1= AC)

4 LSB - ID da Tabela4 16 Li 16 bytes BITS20 12 ou 162 Vij variável HUFFVAL

4 1 Tc/Th Byte 4 MSB - Classe Tabela (0 = DC, 1= AC)4 LSB - ID da Tabela

4 16 Li 16 bytes BITS20 12 ou 162 Vij variável HUFFVAL

DHT- Define Huffman Table

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 224____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ SOS - Start of Scan - dados da imagem

Posição Tamanho Nome Conteúdo Descrição0 2 SOS FFDA Marcador2 2 Comprimento Integer Comprimento do Segmento4 1 Ns Byte Número de Componentes (1, 2, ou 3)5 1 Cs Byte Componente6 1 Td/Ta Byte 4 MSB - Tabela DC de Codificação

4 LSB - Tabela AC de Codificação

N 1 Cs Byte ComponenteN+1 1 Td/Ta Byte 4 MSB - Tabela DC de Codificação

4 LSB - Tabela AC de CodificaçãoN+2 1 Ss Byte Início Seleção Espectral (baseline sempre 0)N+3 1 Se Byte Fim Seleção Espectral (baseline sempre 63)N+4 1 Ah/Al Byte Bits para seleção espectral (baselina sempre 0)

SOS- Start of Scan

Page 28: Introduçãomartino/disciplinas/ea978/na5.pdf · CIRCLE(10,250,150) círculo de raio 100 com centro em x = 250 e y = 100 ... de uma tabela de cores global. Bits 6 a 4 - Color Resolution

EA978 Sistemas de Informações Gráficas - Prof. J. Mario De Martino 225____________________________________________________________________________

____________________________________________________________________________Arquivos Gráficos - JFIF/JPEG

ÿ EOI - End of Image

� 2 Bytes: FF D9