- Um experimento que mostra, passo a passo, em que formato os dados RAW do sensor de uma câmera digital são registrados
- Os dados iniciais aparecem em escala de cinza, com a saída ADC de 14 bits simplesmente mapeada para RGB 0–255, e a faixa real de brilho é limitada
- Aplica-se o filtro Bayer para refletir a informação do filtro de cor de cada pixel e realiza-se o demosaicing por meio da média dos pixels vizinhos
- Ao passar por correção de gama e ajuste de balanço de branco, corrige-se a diferença na percepção não linear de brilho entre a visão humana e os displays
- Por fim, ao comparar com o processamento JPEG interno da câmera, mostra-se que o conceito de “foto não corrigida” praticamente não existe
Estado inicial dos dados RAW do sensor
- Os dados originais registrados pelo sensor da câmera são compostos por valores ADC de 14 bits e, ao convertê-los simplesmente para RGB 0–255, formam uma imagem em escala de cinza
- A faixa real dos valores ADC é de aproximadamente 2110~13600, e esse intervalo é definido como referência de preto e branco para reajustar o brilho
- Nesta etapa, a imagem quase não tem informação de cor, porque o sensor mede apenas a intensidade da luz
Processo de restauração das informações de cor
- Sensores de câmeras coloridas detectam apenas uma entre vermelho, verde e azul em cada pixel por meio de uma matriz de filtro Bayer
- Ao aplicar a cor correspondente ao filtro de cada pixel, a imagem ganha coloração, mas cada pixel ainda contém apenas um dos componentes RGB
- Quando se faz o demosaicing calculando a média dos valores dos pixels vizinhos, a cor é restaurada em toda a imagem
Brilho e correção de gama
- O motivo de a imagem resultante parecer escura é a limitação da faixa dinâmica do monitor e a percepção não linear de brilho pela visão humana
- Como os dados lineares parecem escuros quando exibidos diretamente, aplica-se uma curva de gama não linear para iluminar as áreas escuras
- Porém, nesse processo surge um fenômeno de excesso no canal verde, devido à sensibilidade do sensor ao verde e à maior proporção de verde na matriz Bayer
Balanço de branco e correção de cor
- Ajusta-se o balanço de branco alterando cada canal de cor em uma determinada proporção
- Volta-se à etapa anterior à transformação não linear, reduz-se o canal verde e então aplica-se novamente a curva de gama
- Por meio desse processo, obtém-se uma foto com cores naturais
Comparação com o processamento JPEG da câmera
- A imagem JPEG incorporada gerada pela câmera a partir dos mesmos dados RAW já é o resultado de vários processos de correção matemática
- Ajustar contraste ou balanço de branco em um software de edição é, em essência, a mesma operação realizada internamente pela câmera
- O conceito de “foto não editada” não existe na prática: toda foto é resultado de processamento matemático
- É difícil reproduzir perfeitamente a visão humana e, devido às limitações dos displays, a necessidade de correção manual sempre existe
1 comentários
Comentários do Hacker News
Fico pensando se aplicar a mesma função de transferência a cada pixel deve mesmo ser considerado ‘processamento’
Na época do filme, empurrar um filme preto e branco ISO 400 para 1600 gerava grão grosseiro, mas isso era um ‘ruído’ uniforme em toda a foto
Hoje a redução de ruído evoluiu de forma impressionante, mas nesse processo às vezes a própria imagem é alterada
Por exemplo, na minha câmera IP, quando entro de bicicleta, às vezes parte da roda desaparece. O algoritmo confundiu a textura do asfalto com ruído e a apagou
Em smartphones e câmeras digitais, ao ampliar ou em baixa luz, rostos também parecem ‘pintados’
Eu preferiria ruído honesto ou um algoritmo de redução de ruído ajustável, de ‘nenhum’ até o padrão atual
Gosto de textos que removem as camadas de abstração da ‘imagem’. No fim, fotografia moderna é só processamento de sinal com marketing por cima
O motivo de o padrão Bayer ser RGGB (50% verde) não é só equilíbrio de cor, mas também resolução espacial
O olho humano é mais sensível ao verde, então o canal verde carrega a maior parte da luminância (dos detalhes)
Algoritmos avançados de demosaicing criam um mapa de luminância de alta resolução a partir do canal verde e depois interpolam vermelho e azul como camadas de diferença de cor
É esse princípio que também permite compressão de vídeo como subamostragem de crominância 4:2:0
Se quiser se aprofundar, recomendo olhar o código-fonte do dcraw ou do libraw. Há uma enorme quantidade de tratamentos de exceção para interpretar a ‘tensão raw’ de cada fabricante de sensor
g = .299r + .587g + .114bEssa proporção determina o brilho da imagem em escala de cinza
E o trecho de poesia citado ali me marcou — ao descrever um mundo sem cor, ele ironiza o fato de que aquilo que decidimos ser ‘correto’ no fim é apenas erro de quantização
Teria sido resolvido só adicionando uma flag de conversão RGB→luminância na chamada do FFmpeg
Claro, é porque o olho humano é sensível ao verde, mas ainda assim parece meio arbitrário (⩺_⩹)
O próprio JPEG gerado pela câmera já é um resultado fortemente processado
Aplicar curvas, mapeamentos e ajustes diferentes para gerar outro JPEG não é ‘manipulação’, é apenas outra interpretação
Trabalho com sensores de câmera, e acho este texto muito bom para treinar novatos
Mostrar o processo começando nos dados RAW e chegando a uma saída familiar acelera o entendimento
Só apontando um pequeno erro de digitação: deveria ser “than”, não “then”
Na graduação, estudando sensoriamento remoto (remote sensing), foi que passei a entender de verdade sensores e processamento de sinal
O que eu vejo não é a ‘verdade’, mas uma visão parcial dos dados
O olho humano, o olho de um gato e uma câmera coletam e representam subconjuntos diferentes de dados
Fica ainda mais interessante se você pensar em espaço e tempo como dimensões adicionais do sinal
No fim, dá a sensação de que todos nós somos apenas sistemas sensores observando uma parte do universo
Em fotografia digital, compressão de faixa dinâmica e debayerização são indispensáveis,
mas é outra história quando a IA reconhece objetos e reconstrói fantasiosamente a imagem com base no que ‘deveria estar ali’
Os fabricantes estão empurrando nessa direção, o que cria problemas como a confiabilidade de fotos como evidência
Toda imagem é uma interpretação de dados e o resultado de inúmeras escolhas
Se for para distinguir, talvez dê para separar em edição global e edição local, e a edição local seria mais próxima do ‘falso’
Mas, no fim, o ponto central é a intenção
Se houver intenção de enganar, até uma foto saída direto da câmera pode ser ‘falsa’
A maioria das pessoas considera aplicar filtro algo ‘falso’, mas na prática toda foto tem filtros aplicados
Chamar esse processo em si de ‘falso’ não faz sentido
Lembrei de uma citação do filme Tim’s Vermeer
Como diz a frase, “a ideia moderna de que arte e tecnologia devem ser separadas está errada”,
e a fusão entre arte e tecnologia era justamente uma característica da era de ouro
Também recomendo The Science of Photography, de John Lind e
a explicação sobre sensores de Bob Atkins.
Em especial, achei marcante a parte que explica por que o tamanho do poço do pixel é importante
Acho que o motivo de dados lineares parecerem escuros quando exibidos é uma limitação do monitor
Se a profundidade de bits fosse grande o suficiente, talvez desse para exibir em luz linear sem correção de gama
A percepção de luminosidade humana não é linear, então alguma não linearização é necessária em algum ponto
O ideal é fazer os cálculos em espaço de cor linear com 16 bits ou mais e aplicar gama só pouco antes da exibição
Antigamente, fazia-se blending em RGB não linear e isso frequentemente gerava banding escuro
Os CRTs usavam gama para compensar a resposta não linear do canhão de elétrons, e filme ou sensores CMOS também têm sensibilidade logarítmica à luz, então passam por tratamento semelhante
‘Foto não processada’ praticamente não existe
RAW é apenas um conjunto de valores de pixel RGGB, e o processo de descartar estrategicamente dados para encaixá-los na faixa dinâmica estreita da tela
e definir o ponto de cinza médio é justamente o campo da interpretação criativa
Fica uma pena que os exemplos do texto usem iluminação tão artificial e colorida, porque assim é difícil entender qual seria a ‘verdade de referência’
Basta comparar as duas últimas imagens e julgar o ‘resultado’ conforme a preferência de cada um