Interpolação de Bayer, o truque por trás da foto digital

  • Categoria do post:Fotografia

O método de formação de imagens coloridas não varia muito entre o analógico e o digital justamente por causa do modo como o ser humano percebe as cores, que se dá através da combinação das três cores primárias azul, verde e vermelho. Por isso, toda imagem colorida depende da decomposição da luz nessas três cores. Na fotografia digital, o processo que faz isso se chama interpolação de Bayer.

Filtros de cor

O método mais fácil de demonstrar esse tipo de coisa é utilizando filtros de cores primárias para capturar imagens em tons de cinza e depois combiná-las. Nas fotos abaixo, eu fiz uma simulação de como funciona o processo, capturando uma imagem de cada cor primária e depois combinando para obter a versão colorida.

O filme fotográfico funciona exatamente assim. Ele possui várias camadas, cada uma sensível a uma cor diferente. Em cada uma dessas camadas existe uma gelatina com partículas de prata que é sensível à luz.

Nota: se você é vegano, não pode fazer fotografia analógica porque a gelatina é de origem animal, talquei?

Ou seja, na fotografia analógica, os filtros de cor já vêm embutidos no próprio filme e cada camada é como se fosse um filme monocromático independente. É por isso que cada filme tem um esquema de cores diferentes e você pode usar essas propriedades para gerar certos efeitos.

Entretanto, o problema de fazer isso digitalmente é que é preciso tirar três fotos separadas e depois combinar as três. Se fôssemos fazer igual ao filme, teríamos que ter um sanduíche de sensores, que é uma tecnologia que não existe ainda.

Qual é a solução, então?

Um pixel que não é bem um pixel

Vamos pensar, primeiro, num sensor monocromático. Nesse caso, cada foto-célula do sensor irá corresponder a um byte no arquivo de imagem. Como cada byte gera um ponto na tela, cada foto-célula de um sensor monocromático equivale a um pixel da imagem digital.

Porém, se não podemos fazer um sanduíche de sensores, o jeito, então, é dividir o próprio sensor nas três cores primárias. Cada pixel do sensor pode ter um filtro de cor verde, vermelho ou azul, distribuídos como na figura abaixo. Assim, temos uma linha alternando verde e azul, a seguinte verde vermelho e assim por diante. Deste modo, é como se tivéssemos três sensores intercalados, cada um para uma cor.

Mas aí você deve estar pensando: ok, mas então eu tenho que combinar três imagens que não são exatamente iguais? E o que acontece com lugares onde não tenho um pixel verde, por exemplo?

Exatamente. Estamos fotografando três imagens que contém ‘furos’. Aí é que entra a interpolação de Bayer.

O que significa interpolar?

Em inglês, existe um termo que se chama guestimate, que é a junção de guess, que significa adivinhar, e estimate que significa estimar, fazer uma estimativa. Ou seja, quer dizer que você está adivinhando um valor baseado em algum parâmetro. A interpolação é mais ou menos isso.

Vou dar um pequeno exemplo. Suponha que um pixel registrou um valor de 0,2 e o seguinte 0,8. Qual é o valor provável do ‘buraco’ entre eles? Um bom guestimate seria a média dos dois, ou seja (0,2+0,8)/2 que é 0,5. Neste caso, teríamos três pixels com valores de 0,2; 0,5 e 0,8, que resultariam numa transição suave, conforme o quadro da figura acima.

Agora, podemos estender esse raciocínio e preencher todos os buracos da imagem de uma cor. Depois fazemos o mesmo com as outras duas cores e, por, fim, somamos as três imagens.

Algoritmos de interpolação de Bayer

Portanto, já deu pra perceber que toda foto digital colorida precisa de tratamento computacional para nascer, né? O exemplo que dei acima se chama interpolação de primeiros vizinhos, ou seja, o valor de cada lacuna é preenchido usando os valores dos pixels vizinhos mais próximos para tentar adivinhar qual seria o seu valor real.

Entretanto, essa é a maneira mais simples de fazer isso. Podem existir muitas outras, especialmente levando em conta mais vizinhos no entorno e até o contexto dos contornos da imagem. É claro que tudo isso depende de mais e mais poder computacional, coisa que tem deixado de ser um problema na última década.

Na verdade, os smartphones estão tão poderosos que praticamente toda a qualidade de imagem que um iPhone consegue, hoje, se deve ao poder de processamento e de algoritmos de interpolação muito avançados baseados em inteligência artificial.

A resolução real de uma câmera digital

Vamos voltar um pouco ao pixel. Num arquivo de imagem, cada pixel corresponde a um ponto com três valores de cores, um para o azul, um para o verde e outro para o vermelho.

Além disso, o número de pixels na imagem corresponde ao número total de foto-células do sensor. Quando o fabricante diz que o sensor tem 24 megapixels, ele quer dizer quem 24 milhões de foto-células. Dessas, 12 milhões são verdes, 6 milhões são azuis e 6 milhões são vermelhas. Efetivamente, temos a soma de três imagens, sendo que a verde tem o dobro da resolução das outras.

Portanto, você já deve ter notado que dois desses valores em todo pixel é proveniente de interpolação, né? Se a imagem tem 24 milhões de pontos e eu só tenho 6 milhões de pontos vermelhos, quer dizer os outros 18 milhões foram obtidos por interpolação?

Sim. Seus olhos e o seu cérebro foram enganados! O valor de pontos interpolados, para o azul e o vermelho, é o triplo do número de pontos reais da imagem!

Vamos fazer umas continhas

Vamos supor que temos um sensor de 24 megapixels, com 6000 foto-células na horizontal e 4000 na vertical. Dos 6000 horizontais, 3000 são verdes, 1500 azuis e 1500 vermelhos. No caso de um sensor full-frame de 36×24 mm, a resolução (número de pixels dividido pelo comprimento, 6000/36) seria de 83,3 linhas/mm para o verde e de 41,7 linhas/mm para o azul e o vermelho.

Se combinarmos essas resoluções usando a fórmula padrão de propagação de incertezas, encontramos que a resolução final das três imagens somadas é de 27,8 linhas/mm. Para um sensor de 36mm, isso dá 1000 pixels na horizontal. Na vertical, isso equivale a 750 usando a proporção padrão de 4:3. Portanto, a resolução real de um sensor digital colorido de 24 megapixels é de somente 0,75 megapixels!

É, fotógrafo digital. Onde está seu deus agora?

Mas as imagens digitais parecem tão melhores que as analógicas…

A razão para isso está, como eu disse, nos algoritmos de interpolação e métodos computacionais avançados que, hoje, são muito melhores do que os métodos originais criados pelo Bayer nos laboratórios da Kodak. O sucesso da fotografia digital se dá muito mais pelas técnicas de processamento de dados e de tratamento estatístico do que pela captação da imagem em si.

No fim das contas, a grande vantagem da fotografia digital sobre a analógica está no fato de que a informação da digital é toda bem organizada. As foto-células de um sensor digital são dispostos em linhas e colunas com posições muito bem especificadas, enquanto os grãos de prata de um filme fotográfico são distribuídos aleatoriamente.

Imagine que pudéssemos ler a intensidade de cada grão de prata de um filme individualmente. Como eles estão distribuídos aleatoriamente, encontrar uma boa interpolação para preencher as lacunas da imagem seria um verdadeiro pesadelo.

Aí é que está o pulo do gato da fotografia digital. A grande vantagem dela é o controle da metodologia, que é muito maior do que o da fotografia analógica e isso permite criar modelos matemáticos muito precisos que conseguem preencher com maestria todas as lacunas.

A fotografia digital é um bom truque de mágica

Em outras palavras, a falta de precisão do sensor em si é compensando pela precisão absurda dos métodos matemáticos de interpolação.

A fotografia digital, nesse sentido, é uma coisa extremamente bela e é uma prova do poder da matemática e da estatística. Mas, também, não deixa de ser uma espécie de truque de mágica. Talvez, por isso mesmo, as fotografias digitais sejam tão fascinantes, do mesmo modo que um mágico que faz adivinhações com cartas de baralho. Bom, a mágica também é um truque estatístico de alta precisão!

Entretanto, se você for medir empiricamente a resolução de uma fotografia digital, vai descobrir que ela é capaz de bem mais do que os 0,75 megapixels reais. Isso tudo é só por causa dos métodos computacionais usados.

Por que tem mais verde do que as outras cores na interpolação de Bayer?

Isso faz parte do truque que o Bayer, que foi quem inventou essa técnica de interpolação, usou. Talvez você não saiba, mas a maior parte da luz que vem do Sol é verde! Isso significa que os nossos olhos são treinados para lidar com mais verde do que com outras cores.

Aí o raciocínio é bem simples. Se a gente distingue melhor os detalhes verdes dos outros, a sensação de definição será muito maior se a maioria dos detalhes forem capturados através do verde!

Isso aconteceu meio que por coincidência, porque não tem como organizar três objetos diferentes de maneira perfeitamente repetitiva numa matriz quadrada sem buracos. Então, era necessário ter um quarto ponto para fechar as contas. Aí, o Bayer usou esse pixel extra para melhorar o método de interpolação dele.

Como evitar a interpolação de Bayer?

Existem duas maneiras de se fazer isso. Uma é usando um sensor dedicado para cada cor, como nas câmeras de cinema. Outro é mover o sensor o equivalente a um pixel por vez e tirar uma foto equivalente à posição de cada pixel, preenchendo todo o espaço sem a necessidade de interpolação.

Esse recurso se chama pixelshift, e muitas marcas como a Fuji, Sony e Pentax têm esse recurso. A desvantagem é que, como ela precisa tirar quatro fotos, a cena tem que ser perfeitamente estática para evitar distorções. Porém, vou deixar esse assunto para um outro artigo.

Bom, acho que agora você vai passar a respeitar um pouco mais a fotografia analógica, né?

Fábio Ardito

Pelo mundo atrás de treta.

Deixe um comentário