Date: Sat, 6 Dec 1997 14:44:47 -0500 (EST) From: Lenimar Nunes de AndradeSubject: 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