4.8. Kalibrering på sensorn

Den råa utsignalen från en pixelcell är ännu inte redo att användas. En handfull korrigeringar tillämpas på den innan datan lämnar sensorn – delvis i chippets kisel, delvis i drivrutinskoden som programmerar chippet – för att hantera ofullkomligheter som sensorn introducerar längs vägen. De körs i en fast ordning på varje bildruta: först trimning av kolumnens fasta mönsterbrus (FPN), sedan subtraktion av svartnivå, sedan korrigering av defekta pixlar, sedan linsskuggningskorrigering. Att veta vad var och en gör spelar roll eftersom den bild som når användarkoden redan har gått igenom dem alla.

4.8.1. Kolumn-FPN-korrigering

Varje kolumn på sensorn har sin egen förstärkare och kolumn-ADC, och små tillverkningsvariationer mellan dem gör att varje kolumn läser av något annorlunda än sina grannar. Utan korrigering visar sig detta fasta mönster som svaga lodräta strimmor i utsignalen – strimmorna stannar kvar från bildruta till bildruta eftersom de kommer från kislet självt snarare än från scenen. Sensorn mäter offset och förstärkningstrimning per kolumn vid fabriken, lagrar dem i sitt kalibrerings-ROM och tillämpar dem vid varje utläsning innan någon ytterligare korrigering körs. Att göra detta först låter resten av pipelinen anta att varje kolumn beter sig på samma sätt, inklusive de mörka referenspixlarna som svartnivåkalibreringen använder härnäst.

4.8.2. Svartnivåkalibrering

ADC:ns noll – det digitala värde som ska motsvara en tom fotodiod – är inte perfekt stabilt. Det driver med temperatur, med variation i matningsspänning och något från en pixel till nästa. Utan korrigering skulle en perfekt mörk bildruta inte läsas av som noll; varje pixel skulle bära en liten positiv mörkeroffset.

Standardlösningen är att inkludera rader eller kolumner vid sensorns kant som är fysiskt täckta av metall så att inget ljus någonsin når dem. Deras digitala värden ger den sanna mörkerreferensen vid de aktuella driftsförhållandena. Sensorn läser av dessa täckta pixlar varje bildruta, medelvärdesbildar dem per rad eller kolumn och subtraherar medelvärdet från varje annan pixel. De ljusa pixlarna kommer då ut med nollvärde för en obelyst fotodiod, oavsett temperatur eller matningsdrift.

4.8.3. Korrigering av defekta pixlar

En liten andel pixlar i varje sensor är defekta – de läser av ett konstant värde (fast högt eller fast lågt) oavsett hur mycket ljus som når dem. Vissa defekter kommer från tillverkningsvariation, och fler ackumuleras långsamt under sensorns livstid (kosmisk strålning under långa driftsperioder är den vanliga orsaken).

Moderna sensorer hanterar detta i farten med ett litet rumsligt filter. Varje bildruta jämförs varje pixel med sina grannar av samma färg; varje pixel som ligger tillräckligt långt utanför den lokala medianen för att vara osannolik ersätts av ett värde härlett från dessa grannar. Filtret fångar både fabriksdefekter och sådana som utvecklas senare, utan att behöva en kalibrerad karta över dåliga pixlar per sensor, och defekten är osynlig i utsignalen.

4.8.4. Linsskuggningskorrigering

Det cos⁴-avtagandet i kombination med mekanisk vinjettering från linshuset ger varje okorrigerad bildruta en märkbar mörkning i hörnen. Linsskuggningskorrigeringen (LSC) i hårdvaran på sensorn kompenserar genom att multiplicera varje pixel med en förstärkning som beror på dess position i bildrutan – 1.0 i centrum, stigande jämnt mot hörnen för att följa inversen av den uppmätta avtagandekurvan.

Sensorn tillhandahåller multiplikatorhårdvaran, men förstärkningskartan själv är MCU:ns ansvar. Drivrutinen skriver kartan in i sensorns LSC-register vid uppstart, antingen från en kalibrering som drivrutinen lagrar eller från en ny mätning mot ett plant referensmål. Vissa sensorer komprimerar kartan ner till en liten uppsättning polynomkoefficienter så att registren på chippet kan rymma den.

LSC beror på linsen. Att byta linser flyttar avtagandekurvan, så en LSC-karta kalibrerad för en lins matchar inte en annan – en felaktigt tillämpad karta ser ut som mörka hörn (underkorrigering) eller ljusa fläckar i hörnen (överkorrigering).