Raw x JPG: Mitos e verdades, parte II

Copyright © 2017 by Hudson Malta

Artigo revisto e atualizado em 31/08/2018

Na fotografia

Quando levamos isso para o lado fotográfico, nada muda. A luz que passa pelas lentes e chega ao sensor, para depois ser transformada em sequencias binárias que representam, basicamente, duas coisinhas muito especiais:

  • A cor de um determinado ponto na imagem.
  • A posição (coluna e linha) deste ponto na imagem.

Claro que há outras informações, mas apenas estas duas já bastariam para formar uma imagem digital a partir da leitura do mundo físico.

Os detalhes...

A função do sensor na câmera é captar variações de energia luminosa que incidem sobre ele e transformá-la em impulsos el[etricos. Depois, tais impulsos são convertidos em sequencias binárias, representando com "uns" e "zeros" a intensidade luminosa que o sensor recebeu em cada ponto da imagem, indo de de 0% (nenhuma luz) a 100% (brilho máximo). Cada um destes pontos é conhecido por PIXEL (PICture ELment), que são aqueles quadradinhos que podemos ver quando ampliamos bastante a imagem em softwares de edição. Por trás deles tem muita coisa acontecendo.

pic1
Imagem digital ampliada, deixndo os pixels visíveis. A cor de cada pixel é representada por uma sequencia de 24 bits, sendo 8 para cada canal RGB no formato JPG.

Mas e a cor?

É aí que tudo fica interessante! Assim como nossos olhos, o sensor precisa registrar apenas as variações de luz VERDE, VERMELHA e AZUL presentes na cena! Os filmes também funcionam da mesma maneira, onde a película continha 3 camadas sensíveis às variações da intensidade luminosa destas mesmas cores. No mundo digital chamamos estes valores de CANAIS DE COR RGB (Red, Green, Blue). Combinando as variações de intensidade luminosa em cada um destes canais (0% a 100% de vermelho, verde e azul) podemos interpretar e reconhecer todas as outras cores do espectro visível. (Falando bem baixinho: No fundo, tudo isso é reação à Radiação Eletromagnética emitida e refletida, mas isso é assunto para outros artigos...)

Para transformar isso em sequencia binária, os circuitos e softwares internos da câmera precisam organizar os dados captados, e fazem isso separando os três canais diretamente na leitura do sensor. A câmera consegue determinar separadamente as intensidades de vermelho, verde e azul da cena, como se fizesse 3 fotos distintas. Quando se combinam, estes três canais reconstroem as cores reais "vistas" pelo sensor no momento do click. Este processo está baseado no conceito da "Síntese RGB", um dos modos de formação da cor. Para facilitar, o chamamos simplesmente de Processo RGB ou Modo RGB.

Esta combinação multicanais que ocorre na câmera, conhecida como Interpolação Bayer, foi criada em 1976 pela Kodak, através de pesquisas do Dr. Bryce Bayer, um dos inventores da câmera digital.

pic1

A profundidade de bits

Após passar pelo sensor e ser transformada em impulsos elétricos, a imagem precisa ser processada pela câmera e armazenada em formato digital. Esta formatação obedece a protocolos rígidos e padronizados, e funciona assim:

  • 1 - Cada pixel da imagem tem seus 3 canais de cor separados em sequencias binárias com 8, 12, 14 ou 16 bits para cada canal.
  • 2 - Cada uma destas sequencias é "alinhada" junto às outras para formar a cor daquele pixel, formando uma cadeia maior de 24, 36, 42 ou 48 bits para cada pixel.
  • 3 - Toda a imagem, pixel a pixel, é transformada em uma enorme cadeia final de "uns" e "zeros", precedida de um "cabeçalho" que traz informações adicionais do arquivo. Essa é a representação final da imagem capturada, devidamente digitalizada. Finalmente, a longa sequencia binária é gravada no cartão de memória da câmera em JPG, RAW ou ambos, de acordo com as configurações do equipamento.


Vamos entender melhor a profundidade de bits analisando o formato JPG:

O JPG

O JPG (Joint Photographic Experts Group) foi criado em 1983 para o armazenamento compacto de imagens, pois as limitaçoes de mídias e processamento da época não permitiam o uso fácil dos grandes volumes de dados contidos numa imagem digitalizada. Além disso era preciso uma padronização entre diversos sistemas diferentes, pois estava se iniciando um novo e promissor universo gráfico na computação.

O JPG sempre sofre a ação de um algoritmo que faz a compressão de cores pela eliminação de tons próximos, baseando-se no fato de que nossos olhos podem ser "enganados" a ver mais cores do que de fato há na imagem, não percebendo os tons ausentes. A lógica é diminuir o número de bits da imagem para se reduzir seu tamanho final, e realmente funciona! Porém, o formato usa um modelo de compressão conhecido como "Lossy" ("com perdas"), que faz com que as cores perdidas não possam ser recuperadas posteriormente. Isso cria um terrível efeito de faixas na imagem, principalmente em degradées suaves ou áreas de cores delicadas. Chamamos este defeito de "Banding", que é o grande vilão do formato JPG.

Além desta compressão, ele é um arquivo de 8 bits, ou seja, os dados são organizados em grupos de apenas 8 bits para representar cada um dos 3 canais de cor. Às vezes são também chamados de "arquivos de 24 bits", considerando a soma de bytes dos canais (8 + 8 + 8 = 24). Esta combinação binária não permite a representação de um número elevado de cores em cada canal. Para saber o número de cores possíveis neste formato, fazemos uma potenciação simples:

pic1


Já que temos apenas DOIS dígitos possívels (1 ou 0) e eles cabem em um espaço de apenas 8 combinações, fica claro que só podemos ter 256 tons diferentes em cada canal RGB na cena, para cada pixel. Estes valores correspondem a uma representação numérica que indica o total de luminosidade daquele canal, indo do "0" (total falta de luminosidade) ao 255 (luminosidade total), assim:

pic1


Indo mais além, podemos descobrir a capacidade total de armazenamento de cores do JPG, já que estes 3 canais são sempre combinados:

pic1


Elevando 256 ao cubo (são 256 níveis em cada um dos 3 canais RGB), podemos ter um total de 16 milhões de cores possíveis no formato JPG. Parece muito, mas não é. O problema é que cada canal individual só pode conter meros 256 tons, e isso é muito pouco para atender às necessidades de uma boa fotografia! Os filmes coloridos conseguiam reproduzir centenas de vezes mais do que isso. E para piorar, ainda há a aplicação da compressão, que apesar de garantir arquivos menores, faz isso através da retirada de cores. Só desastre...

Trata-se, então, de uma perda grave das cores reais captadas pelo sensor. Toda a foto sofrerá uma severa redução de cores, sendo pior em áreas sutis, trechos com degradées e partes sub/superexpostas. Abaixo podemos ver degradações da cor em forma de faixas (chamamos isso de "banding") provocadas no degradée da área verde, onde deveria haver uma variação linear e suave. Fiz essa foto com uma câmera Fujifilm, em JPG:

pic1


pic1


É importante ressaltar que o "banding" não ocorre apenas nas áreas vermelhas, verdes ou azuis da cena, mas em qualquer tonalidade, já que todas as cores são formadas pelas combinações entre estes 3 canais. Se um único canal estiver degradado, é óbvio que as cores geradas por ele, sejam quais forem, também estarão. E ainda há outros tipos de degradações, como os "JPG´s artifacts", pixelizações, etc.

Para evitar este desastre, existe o RAW! Uma dica: Tente imaginar o que aconteceria se aumentarmos o tamanho do byte...

<<< Parte I Parte III >>>


Se você gostou deste artigo e quer receber novidades diretamente em seu e-mail, assine nossa newsletter e fique atualizado!