Profundidade de cor ou ‘color depth’

Os sistemas para produção de imagens coloridas trabalham sempre a partir de um grupo de cores ditas primárias ou componentes. As outras cores são obtidas pela mistura das dessas primárias. Para poder mistura-las é preciso poder variar a quantidade com que cada uma entra na composição de uma cor final.

O grupo de cores primárias varia muito e depende em primeiro lugar das possibilidades físicas do suporte que irá apresentar as cores. Se for papel branco, sobre o qual se queira mostrar uma fotografia, temos uma situação completamente diferente de uma tela de telefone celular na qual se queira mostrar a mesma imagem.

Representação gráfica de como uma impressora faz uma cor clara pontilhando o papel com pequenos pontos de cores primárias. Neste caso um magenta.

Mas em todas as situações há uma coisa em comum: existe uma quantidade mínima e uma máxima com que se pode incluir uma determinada cor primária na receita de uma cor “composta”. Se for papel impresso com uma ink-jet o mínimo será obtido pelas menores gotículas que a cabeça de impressão consiga jogar no papel com a menor densidade possível mas que, aos nossos olhos, colocados a uma distância determinada, se apresente como uma cor contínua, uniforme e não formada por pequenos pontos. É por isso que impressoras mais sofisticadas possuem dois tons de magenta, dois de ciano e dois ou até mais de preto: quando um tom escuro chegou à menor gotícula e a retícula não pode ser mais aberta sem perda de continuidade, passa-se ao tom mais claro.

Já a quantidade máxima será quando a cabeça de impressão jogar tanta tinta que cobrirá o papel por completo. O limite será a necessidade de secagem e cuidados para não enrugar o papel e não escorrer ou borrar as peças da impressora.

Um monitor de LEDs, uma tela de celular ou tablet,  segue um princípio semelhante. A cor mínima é quando o LED correspondente está aceso com o mínimo de intensidade que o hardware possibilita. Obviamente a cor máxima é quando estiver acesso e emitindo o máximo de energia luminosa naquela cor pelas possibilidades daquele hardware. O máximo de brilho.

Nos casos de imagens digitais, quando estão gravadas na forma de arquivo, elas precisam poder ativar esses máximos e mínimos para cada cor primária. Para cada pixel haverá uma receita com as quantidades de cada cor variando entre esses limites. Se você não tem certeza sobre o que é um pixel leia antes este artigo. Quando o arquivo for lido para que a imagem correspondente seja apresentada por uma impressora, ou pela uma tela de um computador, o controlador destes dispositivos irá render os máximos e mínimos que ele for capaz e, proporcionalmente, os valores intermediários. O arquivo é apenas uma receita. A cor física que enxergamos é feita pelo hardware/software que interpretam essa receita.

A profundidade de cor aparece justamente quando se coloca a questão de quantas cores intermediárias o arquivo deve guardar entre a máxima e a mínima. A questão faz sentido pois um arquivo digital só guarda números inteiros (zeros e uns, para ser mais exato). Então é preciso se decidir quantos tons de vermelho, por exemplo, o arquivo será capaz de guardar. Se alguém disser que para cada cor do sistema RGB (red, blue, green) teremos 10 tons diferentes indo do mínimo ao máximo (que efetivamente irá depender do sistema que irá de fato gerar as cores), não haverá uma tonalidade entre o vermelho 2 e o 3. Será sempre ou 2 ou 3. Haverá um “salto” de uma cor para a seguinte em uma escada de intensidades.

Color depth é a medida de quantos tons diferentes de cada cor primária o arquivo será capaz de distinguir e guardar
Profundidade de cor de um arquivo digital de imagens é exatamente o que define quantos tons de cada uma das cores primárias ele é capaz de guardar para cada pixel. Para se registrar uma passagem muito suave de uma tonalidade a outra, são necessárias muitas gradações para cada cor primária. Se as gradações forem insuficientes aparecerão bordas ou franjas nítidas quando passamos de uma tonalidade a outra. Será possível se delinear áreas de cor em vez de uma mescla suave.

Agora a questão dos bits. Por que a profundidade de cor é expressa em número de bits? É que os arquivos são feitos de uma sequência enorme de bits, os tais do zeros e uns. Imagine que as gradações de cores primarias fossem guardadas em vidrinhos em uma grande prateleira. Imagine que você precisaria rotular esses vidrinhos para diferenciar as essas variações usando apenas zeros e uns. Se você usar 2 dígitos poderá criar apenas 4 rótulos diferentes: (0,0), (1,1),(0,1),(1,0). Se acrescentar um terceiro dígito irá dobrar esse número pois poderá fazer os mesmos 4 pares começando uma vez com 0 e outra vez com 1. Terá assim o dobro de 4 que é 8. Cada dígito que você acrescentar irá, pelo mesmo motivo, dobrar o número de rótulos e sua paleta de cores irá crescendo exponencialmente (na base 2).

Um arquivo RGB de 8 bits por canal, com profundidade de cor total de 24 bits (3×8), é um arquivo que pode guardar para cada uma das cores primárias 2= 256 gradações diferentes. É como se ele tivesse 3 prateleiras com vidrinhos de cores com 256 variações da mais fraquinha até a mais forte para cada uma. Cada cor composta seria feita com uma combinação qualquer de três vidrinhos. Mas note mais uma vez que isso é apenas informação, se o sistema a reproduzir essa cor fisicamente é ou não capaz de render tantas variações e dentro de que limites de intensidade, isso é uma outra história.

As cores compostas podem combinar 256 x 256 x 256 e formar um total de 16.777.216 de cores diferentes. Cada pixel desse arquivo utiliza 24=8+8+8 bits. Como um byte é um conjunto de 8 bits, ele gasta 3 bytes por pixel se estiver sem nenhum tipo de compressão (caso que raramente acontece).

Com essa quantidade de cores nossos olhos e cérebro já não conseguem mas distinguir dois tons vizinhos em qualquer direção, seja escurecendo ou clareando uma, duas ou as três cores do padrão RGB. Uma variação mínima, de um passo, entre uma dada cor e a seguinte, não é percebida pela nossa visão.

Acima está uma figura que teoricamente deveria mostrar um resumo do que significa 16 milhões de cores. Digo um resumo pois como essa figura tem 480 x 480 pixels elas só pode justapor 480 x 480 = 230.400 pixels cada um com uma cor. Além disso, seu driver de tela talvez tenha achado por bem encurtar mais esse range para poupar memória. Ele não sabe que o assunto é justamente mostrar o máximo de cores. Talvez você esteja até vendo um padrão meio quadriculado mas isso é novamente por que os sistemas são orientados a economizar memória por conta de render as imagens mais rapidamente.

Uma imagem de 24 bit já é portanto considerada true color pois reproduz mais cores do que conseguimos distinguir. Significa que a natureza digital que varia em degraus e não em uma rampa contínua não pode mais ser percebida pois os degraus ficaram desprezivelmente pequenos.


A foto ao lado, feita com uma Rolleiflex, vem de um arquivo com profundidade de cor de 24 bits, portanto capaz de render 16 milhões de cores. Note que o azul intenso no alto do céu vai esmaecendo-se suavemente em direção ao horizonte. Mas isso, embora esteja presente no arquivo, depende de cada sistema que irá ler e interpretar essa informação.

Agora a mesma foto com 5 bits por cor ou 32 cores. Note que já é possível se perceber claramente as zonas de cor que formam como faixas no céu. A parte mais contrastada sofre menos pois ela é justamente feita de passagens bruscas. Nota: Imagem foi obtida com  uma simulação no Photoshop reduzindo-se a paleta de cores a 32 (32 = 25) para ilustrar o efeito de redução da profundidade de cor. No image>mode não é possível se gravar com 15 bits por pixel e por isso recorri a esse truque que produz o mesmo efeito.

Ainda há um recurso muito usado para melhorar a situação com profundidades de cor muito apertadas. É o dither. É um algorítmo que produz o efeito de misturar as faixas invadindo-as com pontos da cor de uma faixa sobre a outra e vice-versa. Na fronteira, antes definida, embaralham-se as cores de zonas vizinhas suavizando a passagem e sumindo esse efeito de contorno. O arquivo ao lado continua com apenas 32 cores por canal e 32 x 32 x 32 = 32.768 no total possível. Mas já tem aparência bem melhor que o anterior.

Importante frisar novamente que uma coisa é o que o arquivo guarda e outra coisa é o que o binômio hardware/software mostra. Os fabricantes e desenvolvedores adequam as informações contidas nos arquivos de imagem às suas limitações e opiniões a respeito do que é possível e suficiente para render bem um arquivo de imagens.

Mesmo a questão do padrão true color em 24 bits e 16 milhões de cores é quase sempre interpretado e modificado de acordo com gostos e tecnologias. Tanto na leitura como na gravação. Por exemplo, nossos olhos são menos sensíveis a variações no azul do que no vermelho ou verde, então alguns sistemas roubam alguns bits de uma gama a outra. Isso reduz as possibilidade para o azul e aumenta para as outras cores. O objetivo é render a imagem mais realista. Há também um quarto canal alpha que define a transparência do pixel caso haja alguma coisa “por baixo” dele e esse canal também consome alguns bits a mais.

O objetivo desse resumo rápido foi mais o de introduzir o conceito básico do que é profundidade de cor. Porém, colorimetria é um campo muito vasto e muita coisa pode ser otimizada de modo a se economizar memória e aumentar a velocidade de transmissão de imagens sem perder a impressão de veracidade. Tenha certeza de que os desenvolvedores dessas tecnologias são muito criativos e conseguem verdadeiros milagres.

Também não se engane achando que com 24 bits já entramos no true color e então esse é o limite. Na verdade existem arquivos  de até 48 bits. Qual é o sentido de se guardar variações tão sutis se elas não são percebidas pelo olho humano? Sobre isso é melhor você ler o artigo que fala sobre arquivos RAW pois estes são um bom exemplo de quando mais bits podem ajudar e muito.

Comente com um clique:
Este artigo lhe foi útil? no/nãoyes/sim     Loading...

 

Leave a Reply

Your email address will not be published. Required fields are marked *