Upload
nguyennhan
View
214
Download
0
Embed Size (px)
Citation preview
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
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.
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.
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.
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.
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.
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
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)
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>
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
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
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
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).
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
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
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
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).
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.
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
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
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
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).
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.
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
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
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
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
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