4.8. Calibração no sensor

A saída bruta de uma célula de pixel ainda não está pronta para ser utilizada. Um conjunto de correções é aplicado antes que os dados deixem o sensor – em parte no silício do chip, em parte no código do driver que programa o chip – para lidar com as imperfeições que o sensor introduz ao longo do processo. Funcionam numa ordem fixa em cada fotograma: primeiro a correção do ruído de padrão fixo (FPN) por coluna, depois a subtração do nível de negro, depois a correção de pixels defeituosos e, por último, a correção de sombreamento de objetiva. Saber o que cada uma faz é importante porque a imagem que chega ao código do utilizador já passou por todas elas.

4.8.1. Correção de FPN por coluna

Cada coluna do sensor tem o seu próprio amplificador e ADC de coluna, e as pequenas variações de fabrico entre eles fazem com que cada coluna leia ligeiramente de forma diferente das suas vizinhas. Sem correção, este padrão fixo manifesta-se como leves riscas verticais na saída – as riscas mantêm-se de fotograma em fotograma porque provêm do próprio silício e não da cena. O sensor mede os ajustes de deslocamento e de ganho por coluna na fábrica, armazena-os na sua ROM de calibração e aplica-os em cada leitura antes de qualquer outra correção ser executada. Fazer isto primeiro permite que o resto do processo assuma que todas as colunas se comportam da mesma forma, incluindo os pixels de referência escura que a calibração do nível de negro usa a seguir.

4.8.2. Calibração do nível de negro

O zero do ADC – a contagem digital que deverá corresponder a um fotodiodo vazio – não é perfeitamente estável. Varia com a temperatura, com variações da tensão de alimentação, e ligeiramente de pixel para pixel. Sem correção, um fotograma completamente escuro não leria como zero; cada pixel teria um pequeno desvio de escuro positivo.

A solução padrão consiste em incluir linhas ou colunas na borda do sensor que estão fisicamente cobertas por metal de modo a que a luz nunca as atinja. As suas contagens digitais fornecem a referência escura verdadeira nas condições de funcionamento atuais. O sensor lê esses pixels cobertos em cada fotograma, calcula a média por linha ou coluna, e subtrai a média de todos os outros pixels. Os pixels de luz ficam então com contagem zero para um fotodiodo não iluminado, independentemente da temperatura ou da variação da alimentação.

4.8.3. Correção de pixels defeituosos

Uma pequena fração dos pixels de qualquer sensor é defeituosa – leem um valor constante (fixo em alto ou em baixo) independentemente da quantidade de luz que os atinge. Alguns defeitos resultam de variações de fabrico, e mais acumulam-se lentamente ao longo da vida do sensor (os impactos de raios cósmicos durante longos períodos de operação são a causa habitual).

Os sensores modernos tratam disto em tempo real com um pequeno filtro espacial. Em cada fotograma, cada pixel é comparado com os seus vizinhos da mesma cor; qualquer pixel que se encontre suficientemente fora da mediana local para ser implausível é substituído por um valor derivado desses vizinhos. O filtro deteta tanto os defeitos de fábrica como os que se desenvolvem mais tarde, sem necessitar de um mapa calibrado de pixels defeituosos por sensor, e o defeito é invisível na saída.

4.8.4. Correção de sombreamento de objetiva

A atenuação cos⁴ combinada com a vinheta mecânica do corpo da objetiva confere a todos os fotogramas não corrigidos um escurecimento notável nos cantos. O hardware de correção de sombreamento de objetiva (LSC) no sensor compensa isto multiplicando cada pixel por um ganho que depende da sua posição no fotograma – 1,0 no centro, aumentando suavemente em direção aos cantos para seguir o inverso da curva de atenuação medida.

O sensor disponibiliza o hardware do multiplicador, mas o mapa de ganho é da responsabilidade do MCU. O driver escreve o mapa nos registos LSC do sensor no arranque, seja a partir de uma calibração que o driver armazena ou de uma medição recente contra um alvo de referência plano. Alguns sensores comprimem o mapa num pequeno conjunto de coeficientes polinomiais para que os registos no chip o possam armazenar.

O LSC depende da objetiva. Trocar de objetiva desloca a curva de atenuação, pelo que um mapa LSC calibrado para uma objetiva não corresponderá a outra – um mapa aplicado incorretamente parece cantos escuros (subcorreção) ou manchas brilhantes nos cantos (sobrecorreção).