ÿ
Introdução
Há dois métodos básicos de se representar uma imagem
Bitmap (ou pixelmap ou raster)
Vetorial
ÿ
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
ÿ
Imagem tipo Vetorial
Em uma representação vetorial a imagem é representada
por um conjunto de linhas, curvas e/ou formas geométricas.
Na representação vetorial, em geral, é possível que regiões
sejam especificadas com uma cor sólida (ou chapada), tons
de 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 termo
vetorial pode compreender também formas mais complexas
como curvas, círculos , quadrados, etc. Em geral, arquivos
de imagem do tipo vetorial são constituídos de comandos
que 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)
ÿ
Comparação entre as formas de representação
Bitmap e Vetorial
Generalidade da forma de Representação:
+
BITMAP: é capaz de representar praticamente
qualquer imagem.
−
VETORIAL: não é apropriada para representar
imagens fotográficas (por exemplo: paisagem).
Tamanho do Arquivo:
+
BITMAP: arquivo depende da resolução (número de
pixels) e do número de bit planes por pixel - tende a
ser grande. Em geral, formatos de arquivos de imagem
bitmap utilizam algum método de compressão para
minimizar este problema.
−
VETORIAL: arquivo tende a ser menor, já que as
primitivas geométricas definem, em geral, vários
ÿ
Comparação entre as formas de representação
Bitmap e Vetorial (cont.)
Aumento Tamanho da Imagem:
−
BITMAP: o aumento de tamanho da imagem pode
tornar a sua característica discreta visível,
apresentando o efeito indesejável de serrilhamento de
bordas/contornos.
+
VETORIAL: as primitivas geométricas permitem o
escalamento (aumento/diminuição) de modo suave
sem apresentar efeitos indesejáveis.
ÿ
Comparação entre as formas de representação
Bitmap e Vetorial (cont.)
Manipulação Seletiva do Conteúdo:
−
BITMAP: é limitada e trabalhosa a manipulação do
conteúdo de uma imagem.
+
VETORIAL: permite a identificação das primitivas e a
ÿ
Comparação entre as formas de representação
Bitmap e Vetorial (cont.)
Apresentação:
+
BITMAP: não apresenta grandes problemas por ser
compatível com a tecnologia varredura presente na
maioria dos dispositivos de apresentação. O
procedimento de apresentação não envolve
processamento adicional. Não é apropriada para a
apresentação em dispositivos do tipo vetorial.
−
VETORIAL: Para a apresentação em dispositivos de
varredura necessita processamento para a conversão,
apresentando um custo computacional adicional. Esta
conversão pode apresentar variações dependendo da
estratégia utilizada (depende do programa de
conversão). Mesmo para dispositivos da tecnologia
vetorial pode ser necessário a conversão para as
primitivas nativas do dispositivo. Este procedimento
também pode introduzir distorções.
ÿ
Arquivos Gráficos
Nesta disciplina vamos apresentar e discutir apenas os
formatos GIF e JFIF (JPEG File Interchange Format). Estes
formatos de arquivos gráficos são da categoria bitmap e são
os formatos intensamente utilizados no ambiente Web.
ÿ
Graphics Interchange Format (GIF)
Característica principais:
Tipo: Bitmap.
Cor: Pseudo-cor, tamanho máximo da paleta 256 de
um conjunto de 2
24cores (16,777216 milhões de
cores).
Compressão: LZW.
Projetado principalmente para ser formato de
transmissão (que pode ser utilizado para
armazenamento) - data stream.
Outras características:
Desenvolvido pela CompuServe, Inc.
Duas versões 1987 (87a) e 1989 (89a)
Tamanho Máximo da Imagem: 64Kx64K pixels.
Suporta seqüenciamento de múltiplas imagens (Gif
animado) (89a).
Suporta transparência (89a).
Suporta modo entrelaçado de apresentação (89a)
Suporta texto (89a).
Permite extensão dependente da aplicação.
ÿ
Estrutura do arquivo - visão geral
GIF define um protocolo para a transmissão on-line de
imagens. GIF possui uma organização seqüêncial (data
stream) que permite a apresentação da imagem à medida
que ela vai sendo recebida.
GIF é organizado em blocos. Os blocos contêm as
informações necessárias para a reprodução da imagem.
Estes elementos são enviados (ou armazenados)
seqüencialmente.
ÿ
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
ÿ
Estrutura do arquivo - visão geral
Os blocos podem ser classificados em:
Blocos de Controle (utilizados para controlar o
processo de transmissão e apresentação da imagem):
Header; Logical Screen Descriptor; Global Color
Tabel; Local Color Table; Image Descriptor;
Graphics Control Extension e Trailer.
Blocos com conteúdo gráfico (contêm as informações
da imagem propriamente dita): Image Data e Plain
Text Extension.
Blocos de Propósito Especial (contêm informações
para o usuário e aplicação): Comment Extension e
Application Extension.
ÿ
Estrutura do arquivo - visão geral
O arquivo GIF contendo uma ou mais imagens segue a
seguinte ordem:
Header (obrigatório)
Logical Screen Descriptor (obrigatório)
Global Color Table (opcional)
1 ou mais
Image Descriptor, Local Color Table (opcional) e
Table Based Image Data.
Graphic Control Extension, Image Descriptor,
Local Color Table (opcional) e Table Based
Image Data.
Trailer
ÿ
Header
Bloco obrigatório composto de 6 byte. Identifica o formato
e sua versão. Abre um novo arquivo/data stream.
7 6 5 4 3 2 1 0 ´G´ ´I´ ´F´ ´8´ ´9´ ´a´ Signature Version
ÿ
Logical Screen Descriptor
Bloco obrigatório composto de 7 bytes . Define a área
dentro da qual a imagem será apresentada, a existência de
uma tabela de cores global e a relação de aspecto de um
pixel.
Logical Screen Width: largura, em pixels, da área dentro da
qual a imagem será apresentada. Esta área é denominada
Tela Lógica.
Logical Screen Height: altura, em pixels, da área dentro da
qual a imagem será apresentada. Esta área é denominada
Tela Lógica
7 6 5 4 3 2 1 0
Logical Screen Width
Logical Screen Height
<Packed Fields> Background Color Index Pixel Aspect Ratio
ÿ
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 cor
primá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üência
primeiro.
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. Os pixels da tela lógica não cobertos
pela imagem recebem a cor de fundo.
Pixel Aspect Ratio: fator que permite calcular o relação de
aspecto dos pixels da imagem (largura/altura), sendo dado
dada por (0 = pixel aspect ratio não especificado):
(pixel aspect ratio + 15)/64
ÿ
Global Color Table
Bloco Opcional: define a tabela de cores a ser utilizadas em
todas as imagens que não possuam tabela de cores local.
7 6 5 4 3 2 1 0 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
ÿ
Image Descriptor
Bloco necessário para a especificação de uma imagem.Toda
imagem é composta de um bloco Image Descriptor, de uma
tabela de cores local opcional e dos dados da imagem.
Image Separator: identifica o início de um bloco Image
Descriptor (valor constante 0x2C).
Image Left Position: identifica a coluna, em pixels, da tela
lógica do canto esquerda da imagem (coluna mais a
esquerda da Tela Lógica é 0)
Image Top Position - identifica a linha, em pixels, da Tela
Lógica da topo da imagem (linha superior da Tela Lógica é
0)
7 6 5 4 3 2 1 0
Image Separator Image Left Position
Image Width
Image Height 0x2C
Image Top Position
ÿ
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 tabela
está associada apenas à imagem que se segue.
bit 6 - Interlace Flag: indica se a imagem está (1) ou
nã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 o
número de entradas da tabela de cores local:
2
(Size of Local Color Table + 1).
ÿ
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
ÿ
Local Color Table
Bloco Opcional: Define tabela de cores a ser utilizadas na
imagem que se segue. A existência da tabela de cores local
é indicada no bloco Image Descriptor.
7 6 5 4 3 2 1 0 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
ÿ
Table Based Image Data
Define a imagem, indicando as cores dos pixels da esquerda
para direita e de cima para baixo. A imagem é dada por
uma seqüência de índices de uma tabela da cores (global ou
local) comprimida segundo método LZW.
7 6 5 4 3 2 1 0
Sub-Block
Image Data – LZW coded Bloco Size 7 6 5 4 3 2 1 0 LZW Code Size Sub-block 1 Block Terminator Sub-block N
ÿ
Table Based Image Data
LZW Code Size: indica o tamanho inicial em bits do código
LZW.
Sub-block(s): especifica os dados da imagem em uma
seqüência de um ou mais blocos de dados. Cada
sub-bloco possui um tamanho máximo de 255 bytes:
Block Size: indica o tamanho, em bytes, dos dados se
segue.
Image Data: seqüência de códigos LZW.
Block Terminator: valor 0x00. Indica o final dos dados que
representam uma imagem.
ÿ
Graphic Control Extension
Bloco utilizado para a definição de GIF animado e imagem
com transparência.
Extension Introducer: identifica o início de um bloco de
extensão (valor 0x21).
Graphic Control Label: identifica o bloco de extensão como
de controle gráfico (valor 0xF9).
Bock Size : indica o tamanho em bytes da informação que
se segue, sem incluir bloco finalizador (valor 4).
7 6 5 4 3 2 1 0
Extension Introducer Graphic Control Label
<Packed Fields> Delay Time 0x21
Block Size
Transparent Color Index 0xF9
0x04
Block Terminator 0x00
ÿ
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 do
usuário é esperada (1) ou não (0). Se o bit for
verdadeiro, o processamento só continuará após a
entrada do usuário. A característica da entrada
depende da aplicação (teclado, mouse, …)
Bit 0 - Transparent Color Index: Indica se o campo
Transparent Color Index contém um índice válido.
Delay Time: indica tempo de espera, em centésimos de
segundo, antes que o processamento possa continuar. Caso
especificado com uma entrada de usuário, o evento que
ocorrer primeiro (fim do tempo de espera ou entrada do
usuário) dispara a continuação do processamento.
ÿ
Graphic Control Extension
ÿ
Plain Text Extension
Bloco utilizado para a definição de texto. É tarefa do
interpretador (decodificador) do arquivo/data stream gerar
representação gráfica do texto..
7 6 5 4 3 2 1 0
Extension Introducer Plain Text Label
Text Grid Left Position
Text Grid Top Position 0x21
Block Size
Text Grid Width 0x01
0x0C
Block Terminator 0x00
Text Grid Height
Character Cell Width Character Cell Height Text Foreground Color Index Text Background Color Index Sub-Block 1
Sub-Block N
ÿ
Plain Text Extension
Extension Introducer: identifica o início de um bloco de
extensão (valor 0x21).
Plain Text Label: identifica a extensão como extensão de
texto (valor 0x01).
Block Size: indica o número de bytes que se segue antes
dos sub-blocos de dados (valor 12 = 0x0C).
Text Grid Left Position: indica o número da coluna, em
pixels, do canto superior esquerdo da primeira célula de
texto.
Text Grid Top Position: indico o número da linha, em
pixels, do canto superior esquerdo a primeira célula de
texto
7 6 5 4 3 2 1 0
Sub-Block
Plain Text Data – ASCII text Bloco Size
ÿ
Plain Text Extension
Text Grid Width: indica a largura da grade de texto em
pixels.
Text Grid Height: indica a altura da grade de texto em
pixels.
Character Cell Width: indica a largura, em pixels, de uma
célula de texto.
Character Cell Height: indica a altura, em pixels, de uma
célula de texto.
Text Foreground Color Index: indica o índice na tabela
global de cores da cor das letras.
Text Background Color Index: indica o índice da tabela
global 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 que
se segue.
Plain Text Data: seqüência de caracteres ASCII
Block Terminator: indica o final do bloco (valor 0x00).
ÿ
Comment Extension
Bloco de auxílio à documentação. Permite a definição de
comentários escritos.
7 6 5 4 3 2 1 0
Sub-Block
Comment Data – ASCII text coded Bloco Size 7 6 5 4 3 2 1 0 Extension Introducer Comment Label Block Terminator Sub-block 1 Sub-block N 0x21 0xFE 0x00
ÿ
Comment Extension
Extension Introducer: identifica o início de um bloco de
extensão (0x21).
Comment Label: identifica o bloco de extensão como bloco
de 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 se
segue.
Comment Data: seqüência de caráteres ASCII.
Block Terminator: indica o final do bloco (valor 0x00).
ÿ
Application Extension
Bloco que contem informação especifica de uma aplicação.
7 6 5 4 3 2 1 0
Extension Introducer Application Extension Label
Application Identifier 0x21 Block Size 0xFF 0x0B Block Terminator 0x00
Application Authentication Code Character Cell Height
Text Foreground Color Index Text Background Color Index Sub-Block 1
ÿ
Application Extension
Extension Introducer: identifica o início de um bloco de
extensão (0x21).
Extension Label: : identifica o bloco de extensão como
bloco de aplicação (valor 0xFF).
Block Size: indica o número de bytes que se segue antes
dos sub-blocos de dados (valor 11 = 0x0B).
Application Identifier: seqüência de 8 caráteres ASCII
identificando a aplicação.
Application Authentication Code: seqüência de 3 bytes para
autenticar a aplicação (por exemplo, versão).
7 6 5 4 3 2 1 0
Sub-Block
Application Data Bloco Size
ÿ
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 serem
interpretados pela a aplicação.
ÿ
Trailer
Bloco que indica o fim do arquivo/data stream GIF
Trailer: valor 0x3B
7 6 5 4 3 2 1 0
Trailer 0x3B
ÿ
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ço
de cor Y Cb Cr.
Compressão: JPEG.
Projetado principalmente para ser formato de
transmissão (que pode ser utilizado para
armazenamento) - data stream.
Outras características:
Desenvolvido pela C-Cube Microsystem, baseado na
ITU-T Recommendation T8.1.
Tamanho Máximo da Imagem: 64Kx64K pixels.
Suporta pré-visualizaçao através de imagem
thumbnail.
Suporta modo progressivo de
descompressão/visualização.
ÿ
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
ÿ
Modos de Compressão (cont.)
Hierárquico
Múltiplos quadros (diferencial ou não-diferencial)
DCT estendido ou Sem Perda (lossless)
ÿ
Modos Seqüencial e Progressivo
Seqüencial
Progressivo
Duas variações:
Espectral
Aproximação Sucessiva
ÿModo Seqüencial
0 63 . . . Coeficientes DCT Blocos 8x8 0 7 MSB LSB ... Byte Blocos 8x8 Ordem de Transmissãoÿ
Modo Progressivo - Espectral
0 63 . . . Coeficientes DCT Blocos 8x8 0 7 MSB LSB ... Byte 0 Coeficientes DC Blocos 8x8 Ordem de Transmissão 1 Coeficientes AC Blocos 8x8 Ordem de Transmissão 2 Blocos 8x8ÿ
Modo Progressivo – Aproximação Sucessiva
0 63 . . . Coeficientes DCT Blocos 8x8 0 7 MSB LSB ... Byte 0 Coeficientes DC Blocos 8x8 Ordem de Transmissão 0 7 ... 1 63 . . . Coeficientes AC Blocos 8x8 6 7 5 4 Ordem de Transmissão 1 . Coeficientes Blocos 8x8
ÿ
JPEG Interchange Format (JFIF)
conhecido como formato de arquivo JPEG
Hierárquico - resolução múltipla
ÿ
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 de
codificação Huffman (ou aritmética).
ÿ
Marcadores
Código (Hexa) Símbolo Descrição
FFC0 SOF0 Baseline DCT
FFC1 SOF1 Sequëncial Estendido DCT
FFC2 SOF2 Progressivo DCT
FFC3 SOF3 Sem perdas (seqüencial)
FFC5 SOF5 Sequëncial Diferencial DCT FFC6 SOF6 Progressivo Diferencial DCT FFC7 SOF7 Sem perdas Diferencial (seqüencial)
FFC8 JPG Reservado para extensões
FFC9 SOF9 Sequëncial Estendido DCT
FFCA SOF10 Progressivo DCT
FFCB SOF11 Sem perdas (seqüencial) FFCD SOG13 Sequëncial Diferencial DCT FFCE SOF14 Progressivo Diferencial DCT FFCF 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 Imagem
FFD9 EOI Fim de Imagem
FFDA SOS Início de varredura (start of scan) FFDB DQT Definição de Tabela(s) de Quantização FFDC DNL Definição de Número de Linhas FFDD DRI Definição de interfaclo de reinício FFDE DHP Definição de Progressão Hierárquica
FFDF EXP Expansão de componente(s)
FFE0 até FFEF APPn Reservado para Segmentos da Aplicação FFF0 até FFFD JPGn Reservado para extensão JPEG
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
ÿ
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).
ÿ
JPEG Interchange Format (JFIF)
conhecido como formato de arquivo JPEG
SOI - Start of Image
2 Bytes: FF D8
ÿ
APP0 - JFIF Application Segment
Caso a imagem thumbnail não seja especificada X=Y = 0
Posição Tamanho Nome Conteúdo Descrição
0 2 APP0 FFE0 Marcador APP0
2 2 Comprimento Integer Comprimento do Segmento
4 5 "JFIF\0" JFIF string
9 2 Versão 0102 versão 1.2
11 1 Unidades de X e Y Byte 0: unidade arbitrária 1: pixels/inch 2: pixel/cm 12 2 X densidade Integer Densidade horizontal
14 2 Y densidade Integer Densidade vertical
16 1 X thumb Integer Largura do imagem thumbnail
17 1 Y thumb Integer Altura da Imagem thumbnail
18 3*(X*Y) Thumb RGB Imagem thumbnail
ÿ
APP0 - JFIF Extension segment
Tipo 11 - Thumbnail pseudo-color
paleta de 256 cores
Posição Tamanho Nome Conteúdo Descrição
0 2 APP0 FFE0 Marcador APP0
2 2 Comprimento Integer Comprimento do Segmento 4 5 "JFXX\0" JFXX string
9 1 Code 11 Thumbanail em pseudo-cor
10 1 X thumb Byte Largura do imagem thumbnail
11 1 Y thumb Integer Altura da Imagem thumbnail 12 3*256 CLUT - paleta RGB CLUT para a imagem thumbnail
13 (X*Y) Imagem Bytes Imagem thumbnail
JFXX - Segmento de Aplicação
ÿ
APP0 - JFIF Extension segment
Tipo 13 - Thumbnail truecolor
Posição Tamanho Nome Conteúdo Descrição
0 2 APP0 FFE0 Marcador APP0
2 2 Comprimento Integer Comprimento do Segmento 4 5 "JFXX\0" JFXX string
9 1 Code 13 Thumbanail em truecolor
10 1 X thumb Byte Largura do imagem thumbnail
11 1 Y thumb Integer Altura da Imagem thumbnail 12 3*(X*Y) Imagem thumbnail RGB CLUT para a imagem thumbnail
ÿ
DQT - Define Quantization table
(até 4 tabelas - em geral, são utilizadas 2 tabelas: 1
para 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ção
0 2 DQT FFDE Marcador Tabela(s) Quantização
2 2 Comprimento Integer Comprimento do Segmento
4 1 P/T Byte 4 bits mais signficativo - precisão
4 bits menos significativos - ID da tabela 5 64 ou 128 Elementos Byte ou Integer Valor da Tabela em zig-zag
N 1 P/T Byte 4 bits mais signficativo - precisão
4 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
ÿ
SOF0 - Start Of Frame Type 0 Baseline DCT
Posição Tamanho Nome Conteúdo Descrição
0 2 SOF0 FFC0 Marcador
2 2 Comprimento Integer Comprimento do Segmento 4 1 P Byte Precisão da Amostra (8 bits baseline)
5 2 Y Integer Número de linhas da image
7 2 X Integer Número de colunas da image
9 1 Nf Integer Número de Componentes
10 1 Ci Byte Identificador da Componente
11 1 H/V Byte 4 MSB - Fator de Amostragem Horizontal 4 LSB - Fator de Amostragem Vertical 12 1 Tqi Byte Tabela de Quantização Associada
N 1 Ci Byte Identificador da Componente
N+1 1 H/V Byte 4 MSB - Fator de Amostragem Horizontal 4 LSB - Fator de Amostragem Vertical N+2 1 Tqi Byte Tabela de Quantização Associada
ÿ
DHT - Define Huffmann Table
Existem 03 procedimentos associados (veja capítulo
anterior)
GERSIZE
GERCODE
SORTCODE
Posição Tamanho Nome Conteúdo Descrição
0 2 DHT FFC4 Marcador
2 2 Comprimento Integer Comprimento do Segmento
4 1 Tc/Th Byte 4 MSB - Classe Tabela (0 = DC, 1= AC) 4 LSB - ID da Tabela
4 16 Li 16 bytes BITS
20 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 BITS
20 12 ou 162 Vij variável HUFFVAL
DHT- Define Huffman Table
ÿ
SOS - Start of Scan - dados da imagem
Posição Tamanho Nome Conteúdo Descrição
0 2 SOS FFDA Marcador
2 2 Comprimento Integer Comprimento do Segmento 4 1 Ns Byte Número de Componentes (1, 2, ou 3)
5 1 Cs Byte Componente
6 1 Td/Ta Byte 4 MSB - Tabela DC de Codificação 4 LSB - Tabela AC de Codificação
N 1 Cs Byte Componente
N+1 1 Td/Ta Byte 4 MSB - Tabela DC de Codificação 4 LSB - Tabela AC de Codificação N+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)
ÿ