 |
 |
ARTIGO
: BITS e FORMATOS de IMAGEM |
 |
Um usuário
da lista 3DOnline mandou um mail na mesma, perguntando assim
:
"-E aí, pessoal? Quais são
as diferenças dos 16, 24 ou 32bits/pixels do arquivo
TGA?"
Como a pergunta/resposta
pode ajudar a muitos a entender melhor essa relação,
e o porquê de ser "assim", ou "assado",
resolvi pegar a resposta que mandei pra lista, e colocar como
um artigo nesta seção.
Isso não é um documento,
nem baseado em livros técnicos, somente uma dissertação
sobre o que eu deduzi com o tempo, trabalhando com eletrônica,
na minha época de técnico, e atualmente como
animador 3D...Divirtam-se :
Para se ter 256 valores de cores, é
preciso 8 bits. Ou seja um numero binário como esse
por exemplo, tem 8 dígitos, ou 8 Bits :
00000001
Pra quem estudou matemática,
e combinatória, sabe que pra saber quantas combinações
diferentes de 0 e 1 poderíamos ter com 8 posições
e dois dígitos diferente (0 e 1) ???
Fácil...2 elevado a 8... Ou 2 x 2 x 2 x 2 x 2 x 2
x 2 x 2 = 256 , certo ?
Então poderíamos ter 256 combinações
de números de 8 dígitos formados por ZEROs
e UMs... Assim, em 8 Bits, podemos armazenar 256 valores
diferentes, que vão do 0 = 00000000 à 255
= 11111111
Tão acompanhando ??? :)
Beleza...Continuando...
Em formatos de cores indexadas como GIF,
que não se chamam formatos RGB, temos todas as cores,
mostradas somente por 8 bits, ou seja, só podemos
ter 256 tons diferentes em cada imagem. Por isso as gifs
tem aqueles pontinhos, quando se tenta converter uma imagem
de muitas cores, em .GIF...As Gifs, podem ter 1nível
de transparência, que liga ou desliga, esse é
o FLAG de transparência, que é só ON
ou OFF, só tem uma posição, que só
pode ser 0 ou 1, assim, os GIFs não podem ter vários
niveis de transparência...
Então, na verdade quando falamos
8 bits de cor, e estamos falando do sistema RGB e não
o sistema indexado, temos cada cor final formada de 3 cores
básicas RGB ( RED,
GREEN e BLUE)...Assim temos 8 bits de formação
para cada cor. Ou seja, Podemos ter de 0 a 255 tons de cada
cor básica, seja ela Vermelha (RED), Verde (Green),
ou Azul (Blue).
Cada tons de cada umas dessas cores básicas
pode ser misturado com as outras duas cores, para formar
uma cor final na tela...Dai entramos na matemática
novamente...Se temos 256 tons em 3 cores diferentes, podemos
fazer uma combinatória novamente para saber quantos
tons final poderíamos ter : 256 x 256 x 256, e isso
dá aproximadamente = 16.777.216...Arredondando, o
famoso patamar de 16 milhões de cores. :)
Como temos 3 componentes
de 8 bits cadas, temos na verdade 8 de RED + 8 de GREEN
+ 8 de BLUE, temos 24 Bits de cor. Por isso chamamos de
24 Bits...
Então nessa faixa, temos os arquivos tipo JPG, por
exemplo...
Ahhh..E a transparência onde fica...??? Bom...Pra
termos informação de transparência,
precisamos de 1 bit pelo menos...Lembram que falei sobre
as GIFS... ??
Pô...Mas 1 Bit pra transparência
é muito pouco, pois, como nas GIFS, não se
pode ter nuances de transparência...Com 1 Bit, ou
é transparente total, ou é opaco total...Então,
que tal 8 bits de transparência ???
Bom né...? Então foram criados
formatos de arquivo que suportam um pouco mais de BITS,
na verdade mais 8 Bits, além dos já famosos
24 bits... Então temos 24 + 8 de transparência
dá um total de 32 bits !!! Temos agora todas as cores
dos 24 bits, mais 256 niveis de transparência, o que
é bastante comparado ao mísero 1 nível
das Gifs...E então se chegou ao padrão de
imagem do mercado...32 bits...
E por ai, nasceu
o canal Alpha !!! : ) Que nada mais é que esses 8
bits à mais, representados em forma de uma imagem
de 256 tons. Já que esse canal só regula os
níveis de transparência de cada ponto na imagem,
ele é basicamente representado por 256 niveis que
vão do 0 (preto total), ao 255 (Branco total). Como
a informação registrada nesse canal de 8 bits
só serve para transparência mesmo, não
é necessário cores nesse canal, então
o alpha é representado por uma imagem MONOCROMÁTICO,
ou seja, só tem tons do preto ao branco. Que representam
graficamente os niveis de transparência da imagem.
E assim que funcionam
dezenas de outras coisas no MAX, como Mapa de opacidade,
Mapa de Bump, Mapa de Specular, Mapa de Glossiness, etc...São
basicamente mapas de informação, geralmente
de 8 bits, colocados como imagens de tons de preto ao branco,
que controlam esses efeitos dentro do MAX, baseados na informação
dessas imagens. :)
Os formatos de
24/32 bits mais famosos e usados no mundo, são sem
dúvida, os formatos TGA e TIFF.
Como os Jpgs ainda não suportam
essa informação à mais de 8 bits, eles
se limitam a ter somente 24 bits...Ou seja, não é
possivel ter transparência embutida em uma imagem
JPG. Mas parece que isso vai mudar com uma revisão
do formato...O Tal do JPG 2000 ... (Não tenho certeza
dos detalhes, procurem mais infos sobre isso...)
Os Arquivos que tem mais um canal, ou
seja, tem esses 8 bits a mais, de transparência, são
chamados arquivos RGB com alpha, ou simplesmente RGBA. O
"A", é claro, de ALPHA CHANNEL. :)
Em cinema, um frame
digitalizado para ser manipulado com qualidade, não
pode ter, por exemplo, as famosas 16 milhões de cores,
pois elas são pouco para representar uma gama enorme
de sutilezas de claro e escuro, penumbra, e o imenso volume
de informação que uma tela do tamanho das
de Cinema trás, bem como a riqueza de detalhes, luz,
profundidade de campo, texturas, etc...Por isso, em cinema
se trabalha normalmente com mais de 8 Bits por canal...Por
exemplo...Com 30/40 Bits...Pode-se usar o padrão
normal de 8 bits para cinema, sem problemas, porém
podendo usar uma profundidade de cores, maior, é
sempre bem melhor.
Vamos ver se vocês adivinham...30/40
bits...O que seria isso em cores...
R = 10 Bits
G = 10 Bits
B = 10 Bits
A (Alpha) = 10 bits
Assim temos muiiiiito
mais possibilidades de cores e nuances com transições
super suaves e naturais, pois temos ai uma gama de 10 bits
por canal, ou seja, 2 elevado a 10 possibilidades por canal...Isso
dá 1024 tons de cada canal...Pra saber o total de
cores final : 1024 x 1024 x 1024 = 1.073.741.824....Ops...Aprox...1
Bilhão e 73 mil cores diferentes na tela ao mesmo
tempo. :) Acho que já é mais que o suficiente
para se ter fidelidade de um frame digitalizado da película.
:)
Existem alguns
formatos que aceitam 10 bits por canal...Como o Cineon,
e o PNG...E Pasmem... O PNG, suporta até 16 Bits
por canal !!!
Alias...Pra quem não sabe, internamente
o MAX processa as imagens, calculando-as a 16 bits por canal,
ou seja, com uma gama de 281.474.976.710.656...heheh...Só
isso de cores... :) Tudo isso pra posterizar a imagem final
pro formato desejado, seja usando 24, 30 ou 48 bits de total
de cores. :)
Agora que já
queimamos dezenas de neurônios...Vamos pensar melhor
na lógica das imagens, e de como elas funcionam dentro
dos programas. :) E que por trás da imagem mais simples
existe toda essa complexidade... heheh...
Ass.:Marcelo Souza
|
 |