Fototeknik
I den här artikeln försöker jag att kortfattat beskriva hur datat från en digitalkamera hanteras för att bli en bild. Jag baserar det hela på en Canon PowerShot G2, men förhoppningsvis stämmer detta med hur de flesta andra modeller också fungerar.
Tillägg 2005-05-28 ang. kurvor, gå till slutet av artikeln.
Innehåll
Exponeringsomfång
Test av exponeringsomfång
Vitbalansering
Färginterpolering
Färgkorrigering
Exponeringskompensation
Exponeringsomfång
Digitalkamerans sätt att registrera ett motivs omfång mellan mörkt och ljust är inte det bäst lämpade för fotografi. Den böjda kurvan nedan visar hur digitalkameran beter sig och den raka linjen är vad vi är ute efter.
För de fyra ljusaste stegen är det dock inga problem att korrigera den böjda kurvans form. Vad det handlar om är att den raka kurvan "vill ha" en lika stor informationsmängd inom varje steg medan det som digitalkameran har att erbjuda är en halverad informationsmängd för varje steg mörkare exponeringen är.
Om den raka kurvan (som här omfattar sex steg) befinner sig i en skala med 256 olika gråtoner (det normala för en bild i en dator) ska digitalkameran minst ska ha 256/6 = 43 toner inom varje steg. I andra steget från vänster har kamerans informationsmängd halverats fem gånger. Således måste totala registrerade omfånget ha en upplösning på 43·2·2·2·2·2 = 43·32 = 1376 toner, om ingen kvalitetsförlust ska tillåtas vid kurvkorrigeringen.
En mer praktisk och förhoppningsvis mer begriplig tillämpning av detta resonemang visar jag i nästa avsnitt. Några roligare kurvor än den raka sex-stegs-varianten visar jag i sista avsnittet.
Test av exponeringsomfång
Min Canon G2 har en upplösning på ca 980 toner, vilket motsvarar ett omfång på knappt tio steg. Nedan visar jag kvalitetsskillnaden på de olika delarna av omfånget. Växla bild genom att föra muspekaren över kurvorna.
Det skiljer alltså två steg i exponering mellan var och en av de fyra bilderna. Exponeringsomfånget för G2-modellen kan väl sägas vara sex steg i normalfallet och upp till åtta steg om motivet kräver det. Det är ju ofta rimligt att offra lite pixelkvalitet i bildens mörkaste delar för att inte fräta ut det ljusaste.
Vitbalansering
En vit eller grå ton i en RGB-bild består av lika stora värden för de tre färgerna (RGB=rött, grönt, blått). De flesta digitalkameror är dock konstruerade så att en vit/grå yta i dagsljus inte exponeras så att RGB-värdena blir lika stora.
För att vitt ska bli vitt måste därför en matchning göras så att de färger som blivit mindre exponerade skalas upp. För dessa innebär detta dels att de högsta värdena slängs bort, dels att kvaliteten försämras (mera brus).
Att simpelt slänga bort värden verkar ju fånigt. Mycket riktigt kan därför rådatakonverteringsprogram kopiera data från den minst exponerade kanalen till de mer exponerade, för dagsljushimlar typiskt från den röda till de gröna och blå. Om t ex den röda kanalen måste skalas med en faktor två, för att dagsljusvitt ska blir korrekt, har man exakt ett stegs extra exponeringsomfång (för det ljusaste) i den röda kanalen.
Vill man ha en svartpunkt utan för mycket färgbrus är det också vettigt att kopiera data mellan kanalerna, fast då istället för det allra mörkaste i bilden. Man förlorar färg, men vinner alltså i bildkvalitet.
Färginterpolering
För att få fram färginformation ur ljuset som lyser på en pixel sitter det ett filter framför som gör att enbart en av de tre grundfärgerna (rött, grönt eller blått) når pixeln. De andra två måste gissas fram (interpoleras) utifrån intilliggande pixlars värden.
| |
Ointerpolerat.
Canon.
Minnebo mjuk.
Minnebo max skarp.
Minnebo skarp.
dcraw VNG.
|
Med Minnebo menar jag skaparen av gratisprogrammet PowerShovel II.
mjuk |
metod: |
Lanczos(G) + Bilinear(Chroma) |
filter: |
Ultra resolution
Color Filter 9-tab fork median
Smoothing |
max skarp |
metod: |
Lanczos(G) + Bilinear(Chroma) |
filter: |
Ultra resolution
Color Filter 9-tab fork median |
skarp |
metod: |
VNG(G) + Bilin(chr) |
filter: |
Color Filter 9-tab fork median |
Jag har tittat lite på Capture Ones interpolering också och den är väldigt imponerande. Det blir skarpt utan den prickighet som förhoppningsvis går att ana i testbilden ovan (speciellt "max skarp").
Värt att nämna är att Sigmas kamera SD9/10 med sin Foveon-sensor helt slipper färginterpoleringen.
Färgkorrigering
Det bör finnas någon slags avvägning för hur en perfekt konstruerad digitalkamera reagerar på färg. Å ena sidan är det bra att den inte reagerar för kraftigt eftersom det då är större risk att t ex den röda kanalen blir överexponerad när man fotar en röd färg. Om den å andra sidan reagerar för lite blir noggrannheten med vilken kameran klarar att registrera färgskillnader lägre.
Det handlar om samma sak när man specar en RGB-färgrymd. Ju större den är, desto större färgskillnad är det mellan varje RGB-värde (typiskt åtta bitar, 0-255).
Min Canon G2 återger rött på ett sätt som matchar en stor färgrymd bra, medan gröna och blå kanalerna måste förstärkas.
Enklaste sättet att göra en färgkorrigering är genom att multiplicera RGB-datat med en matris. Matrisen konstrueras bl a så att inte gråtoner påverkas och den placerar det korrigerade datat i valfri RGB-färgrymd. Formler för att räkna på färg kan man hitta på Bruce Lindblooms utmärkta sidor och en påsiktsbild med referensfärg kan man skaffa här.
Exponeringskompensation
Omfångskurvorna spänner över min Canon G2:s teoretiska tio steg (se tidigare avsnitt). Den första är utan någon exponeringskompensation och de övriga tre alla med 1,5 stegs pluskompensation.
För att göra en kontrastsänkning (fjärde kurvan) i en bild från en Canon G2 krävs alltså att originalbilden är för mörk. Andra kurvan har jag med för att visa på hur bilden skulle sett ut om man exponerat ljusare istället.
Tillägg ang. kurvor
Kurvorna i den här artikeln visar överföringen från linjärt RGB-värde till RGB-värde för skärmen. Detta är inte särskilt snyggt teoretiskt då skärmvärdena innehåller en kurva som har sin enda egentliga funktion i att göra värdena någorlunda lämpliga att skicka till en CRT-skärm. Det enda korrekta är att visa kurvor i ett log-log-diagram, så jag planerar att uppdatera artikeln ordentligt vid tillfälle.
Med en log-log kurva med lutningen ett bevaras (teoretiskt) kontrasten från motivet till skärm / påsiktsmedium. I princip alla digitalkameror har dock ett större omfång mellan medelgrått och utfrätt än vad som går att återskapa med en sådan kurva - dvs. alla digitalkameror har en skuldra i kontrastkurvan vid normal kontrastinställning.
24 Kommentarer
Logga in för att kommentera
En digitalkamera för svartvitfoto vore absolut en intressant produkt för ganska många (men ändå för få). Har nog diskuterats i forumet, tror problemet är att det måste till en stor serie för att man ska få ner priset vid sensortillverkningen.
Kul Johanna att du blev glad över att hitta min artikel. Själv undrar jag om den uppenbara info jag skriver här om t ex vitbalans går att hitta någon annanstans på webben? Jag har inte gjort det i alla fall...
Sambandet mellan att vara fototekniskt kunnig och vass fotograf är ju inte precis glasklart. Det gäller väl även sambandet mellan teknisk förståelse och praktisk nytta ;-)
Det jag själv vunnit är en kraftfull exponerings- och kontrastkorrigering, överlägsen den som t ex finns i Capture One.
Torbjörn -
Bra fråga, jag undrar detsamma själv.
Bra att någon går igenom begreppen ordentligt, måste bara lära mig vad de betyder nu också :-)
Vet någon vilka färgtemperaturer som motsvaras i vitbalansinställningen? Min teori:
Daylight 6500K, Cloudy ~9300K, Tungsten 3000K (2700K), Flourescent 4000K, Flour.H 5300K, Flash ?
Tacksam för svar!
//Jonasl
intressant, som sagt. Jag har märkt att min
blå-kanal ofta är underexponerad på digitalaren, och här har vi ju lite förklaring på det, misstänker jag.
En fråga: fungerar det på samma sätt med en scanner? Är det skillnad på grundteknik mellan en digitalkamera och en scanner i hur de använder färginformationen osv? Det borde ju vara bättre "analog" optik på en digital-kamera, tycker man, så ljuset som når sensorn borde ju kunna vara mer avpassat??
-Christian
"För att få ett bra utseende på bilderna har jag programmerat egna funktioner."
Skulle du kunna dela med dig av dessa??
//Jonasl
Jag gissar att det är runt 5000K. I så fall kan jag ju hjälpa konverteringsprogrammen genom att ha ett blåfilter när jag fotar i elljus. Därigenom skulle inte den blå kanalen behöva multipliceras upp, eller den röda ner, så våldsamt som jag tror är fallet, och därmed skulle bilden bli mindre brusig.
Fler såna här.
I dagsljus förstärks rött mest och i konstljus blått och någonstans däremellan förstärks de alltså lika mycket och färgbruset blir minst.
Om kameran är optimerad för ett särskilt ljus (att ingen skalning alls behövs i t ex dagsljus) skulle alltså filter behövas för att få samma tjusiga optimering vid andra färgtemperaturer. Eftersom ett filter snor ljus så måste känsligheten ökas och därmed bruset, så det kanske inte är någon optimal lösning det heller - förutom att det är hopplöst att behöva byta filter...
Tobias -
Jag kan inget om sensorteknik, men jag har lyckats att skapa en "egen färg" till min Canon G2. Det har varit struligt, men i bästa fall kan jag nu med endast en liten jobbinsats använda exakt samma metod på en annan kamera - och då alltså få någon slags relevant jämförelse i praktiskt färgomfång.
Jonas -
Visst vill jag dela med mig av det jag hittat på. Jag borde kunna fixa en kommandoprompt-version som fungerar med Canon G2 och 10D, men för att göra det hela användbart krävs ett grafiskt gränssnitt där man direkt ser hur bilden ändras när man t ex ändrar kurvformen. Själv kan jag så lite om programmering att detta skulle ta en evighet att bygga, men om någon annan har lust så...
Om inte annat kan du maila koden för dina tillägg till mig så styr jag upp det.
Tack för en bra artikel.
Anders, detta är JÄTTEINTRESSANT och jag tror att många med mig tycker detsamma! Kanske det är dags att flytta denna diskussion till en forumtråd?
Själv är jag heller ingen fena på GUI-programmering, men det finns det säkert flertalet här som är!
//Jonasl
En fundering som jag har.. (kanske så att du just berättade det i din artikel :)
Jag knäpper alltid i NEF och tycker att jag får oftast bättre drag i färgerna om jag drar ner färgrymden från "Adobe RGB" till "sRGB".
Är det så att jag komprimerar färgrymden så att jag kan få fler nyanser på ett mer begränsat område?
Vet du om Nikons RAW=NEF format klarar att byta färgrymd utan att tappa kvalité. (Jag gör det i Nikon Capture Editor)
Din andra fråga är jag inte säker på hur jag ska tolka. Det färgrymdsbyte som sker i Nikon Capture Editor är vid konverteringen av NEF-filen, då färgerna flyttas från sensorns färgrymd till (i det här fallet) alternativt Adobe RGB eller sRGB.
När jag försöker mig på den omvandlingen sker en del förluster, speciellt till sRGB (Adobe RGB är en större färgrymd, så då blir det mindre förluster), men Nikons programvara klarar det säkert utan några större problem.
Jag tror digitalkameratillverkarna får skärpa sig och ta fram kameror med bättre och "rakare" exponeringskurvorkurvor!