Date: Sat, 6 Dec 1997 14:44:47 -0500 (EST)
From: Lenimar Nunes de Andrade 
Subject: Formatos graficos

Ola', pessoal!

Provavelmente todos ja' perceberam que as imagens
capturadas via Internet sempre vem no formato JPG
ou no formato GIF. Apesar de existirem dezenas de
outros formatos, por que sera' que a preferencia
recai sobre esses formatos?

Para tentar responder isso, peguei uma foto minha
em duas versoes (colorida e preto e branco) e fiz
varias conversoes da foto para diversos formatos.
Vejam os tamanhos dos arquivos obtidos (em bytes)
listados na seguinte tabela:

	      |    Imagem       Imagem em
     Formato |   Colorida   Preto & branco
     --------+----------------------------
       JPG   |    22.196        106.444
       GIF   |    92.174         19.974
       TIF   |   107.352         54.451
       PCX   |   153.962         23.423
       BMP   |   178.486         22.910

O que se observa nesse exemplo particular e' quase
uma regra geral:  o formato JPG e' o que fornece os
arquivos mais compactos quando se trata de fotogra-
fias coloridas. Com outros tipos de imagens podemos
ter outros resultados.

Nao temos  nenhum  tipo  de  magica nesses formatos
JPG ou GIF. Eles apenas usam algoritmos matematicos
bem definidos para "arrumar"  de um jeito ou de ou-
tro as informacoes utilizadas pelos programas na ho-
ra de mostrar a imagem na tela. E' usado compressao
de dados na hora da criacao de  imagens GIF ou JPG.
Outros formatos,  por exemplo o  BMP da Microsoft,
nao utilizam compressao de dados de modo que e' na-
tural que gerem arquivos de dados bem maiores.

A descricao desses formatos e' bastante conhecida e
divulgada. Por exemplo, as descricoes "oficiais" dos
formatos  BMP, GIF e JPG  podem ser encontradas em:
   ftp://mat.ufpb.br/pub/docs/info/bmp.zip
   ftp://mat.ufpb.br/pub/docs/info/gif.zip
   ftp://mat.ufpb.br/pub/docs/info/graf.zip

Para melhor entender essa historia dos formatos, ve-
ja o seguinte exemplo (por sinal, bastante fajuto).

Suponhamos que a seguinte sequencia de pontos grava-
dos em disco represente uma imagem  em preto e branco
com resolucao 8 x 8. Vamos convencionar que o 0 re-
presente a cor preta e o 1 a cor branca.

8 8 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0
1 1 1 1 1 1 0 0 1 1 1 1 1 1

Arrumando esses zeros e uns em 8 linhas e colunas,
conforme sugerido pelo  "cabecalho"  no  inicio da
"imagem", obtemos a seguinte tabela:

0 0 1 1 1 1 0 0
0 0 1 1 1 1 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 1
0 0 1 1 1 1 1 1
0 0 1 1 1 1 1 1

Deixando de escrever os zeros e substituindo os uns
por um "#", obtemos o seguinte desenho de uma letra
"L". Esta seria a imagem mostrada na tela:

    # # # #
    # # # #
      # #
      # #
      # #
      # #     #
    # # # # # #
    # # # # # #

Observe que as sequencias de 1's e 0's se alternam
ao longo de toda a imagem. Ao inves de listar esses
valores um por um como fizemos acima, seria mais
inteligente contar a quantidade de zeros consecutivos
ou de uns consecutivos e guardar essas quantidades.
Por exemplo, um trecho como  0 0 0 0 1 1 1 1 1 1 1
seria guardado mais resumidamente assim 4 7  --  o 4
corresponde aos quatro zeros e o 7 corresponde aos
sete uns. Com esse tipo de convencao, a sequencia de
pontos acima poderia ser escrita assim:

8 8 2 4 4 4 5 2 6 2 6 2 6 2 2 1 2 6 2 6

Assim, a imagem vista anteriormente poderia ser es-
crita, sem perdas, nesse formato mais compacto.

Sob o ponto de vista matematico, uma imagem digital
nada mais e' do que uma matriz m x n de numeros in-
teiros. Assim, diversos conceitos matematicos como
laplacianos, gradientes, transformadas de Fourier,
etc sao aplicados constantemente durante o proces-
samento de imagens. O usuario final nem sonha com
a existencia desse tipo de teoria ...

[]'s, Lenimar