4.8. Calibrazione sul sensore¶
L’uscita grezza di una cella di pixel non è ancora pronta per l’uso. Una manciata di correzioni le viene applicata prima che i dati lascino il sensore – in parte nel silicio del chip, in parte nel codice del driver che programma il chip – per gestire le imperfezioni che il sensore introduce lungo il percorso. Esse vengono eseguite in un ordine fisso su ogni frame: prima il trim del rumore a pattern fisso (FPN) di colonna, poi la sottrazione del livello di nero, poi la correzione dei pixel difettosi, infine la correzione dell’ombreggiatura dell’obiettivo. Sapere cosa fa ciascuna è importante perché l’immagine che raggiunge il codice utente è già passata attraverso tutte.
4.8.1. Correzione FPN di colonna¶
Ogni colonna del sensore ha il proprio amplificatore e il proprio ADC di colonna, e piccole variazioni di fabbricazione tra di essi fanno sì che ogni colonna legga in modo leggermente diverso dalle vicine. Senza correzione, questo pattern fisso si manifesta come deboli striature verticali nell’uscita – le striature restano ferme da frame a frame perché provengono dal silicio stesso anziché dalla scena. Il sensore misura in fabbrica gli offset e i trim di guadagno per colonna, li memorizza nella propria ROM di calibrazione e li applica a ogni lettura prima di qualsiasi ulteriore correzione. Farlo per primo permette al resto della pipeline di assumere che ogni colonna si comporti allo stesso modo, inclusi i pixel di riferimento scuri che la calibrazione del livello di nero usa subito dopo.
4.8.2. Calibrazione del livello di nero¶
Lo zero dell’ADC – il conteggio digitale che dovrebbe corrispondere a un fotodiodo vuoto – non è perfettamente stabile. Deriva con la temperatura, con la variazione della tensione di alimentazione e leggermente da un pixel all’altro. Senza correzione, un frame perfettamente buio non leggerebbe come zero; ogni pixel porterebbe con sé un piccolo offset di buio positivo.
La correzione standard consiste nell’includere righe o colonne al bordo del sensore che siano fisicamente coperte da metallo, così che nessuna luce le raggiunga mai. I loro conteggi digitali forniscono il vero riferimento di buio alle condizioni operative correnti. Il sensore legge quei pixel coperti a ogni frame, ne fa la media per riga o per colonna, e sottrae la media da ogni altro pixel. I pixel illuminati risultano allora con conteggio zero per un fotodiodo non illuminato, indipendentemente dalla temperatura o dalla deriva dell’alimentazione.
4.8.3. Correzione dei pixel difettosi¶
Una piccola frazione dei pixel di qualsiasi sensore è difettosa – legge un valore costante (bloccato in alto o bloccato in basso) indipendentemente da quanta luce la raggiunge. Alcuni difetti derivano dalla variazione di fabbricazione, e altri si accumulano lentamente nel corso della vita del sensore (gli impatti dei raggi cosmici durante lunghi periodi di funzionamento ne sono la causa abituale).
I sensori moderni gestiscono questo al volo con un piccolo filtro spaziale. A ogni frame, ciascun pixel viene confrontato con i suoi vicini dello stesso colore; qualsiasi pixel che si trovi abbastanza al di fuori della mediana locale da risultare implausibile viene sostituito da un valore derivato da quei vicini. Il filtro intercetta sia i difetti di fabbrica sia quelli che si sviluppano in seguito, senza bisogno di una mappa dei pixel difettosi calibrata per ciascun sensore, e il difetto risulta invisibile nell’uscita.
4.8.4. Correzione dell’ombreggiatura dell’obiettivo¶
La caduta cos⁴ combinata con la vignettatura meccanica dovuta al corpo dell’obiettivo conferisce a ogni frame non corretto un evidente scurimento agli angoli. L’hardware di correzione dell’ombreggiatura dell’obiettivo (LSC) sul sensore compensa moltiplicando ciascun pixel per un guadagno che dipende dalla sua posizione nel frame – 1.0 al centro, crescente in modo regolare verso gli angoli per seguire l’inverso della curva di caduta misurata.
Il sensore fornisce l’hardware di moltiplicazione, ma la mappa di guadagno stessa è responsabilità dell’MCU. Il driver scrive la mappa nei registri LSC del sensore all’avvio, o da una calibrazione che il driver memorizza, oppure da una misura fresca rispetto a un bersaglio di riferimento piatto. Alcuni sensori comprimono la mappa in un piccolo insieme di coefficienti polinomiali, così che i registri sul chip possano contenerla.
L’LSC dipende dall’obiettivo. Cambiare obiettivo sposta la curva di caduta, quindi una mappa LSC calibrata per un obiettivo non corrisponderà a un altro – una mappa applicata in modo errato appare come angoli scuri (correzione insufficiente) o come macchie luminose agli angoli (correzione eccessiva).