1/3 tiesos

Ar buvot nors kartą žiūrėdami į nuotrauką pagalvoje: "o, geras - kokios natūralios spalvos"? Nors šiaip jau esu kritiškas tiek sau, tiek ir kitiems, bet turiu prisipažinti, kad tokia mintis yra ir mane ne kartą aplankiusi. Todėl kartą internete aptiktas teiginys, kad skaitmeninėje nuotraukoje yra tik  1/3 tiesos, buvo tarsi šaltas dušas. Kaip tai? Kodėl?

Priežastį pasirodo žinojau jau senokai, tik niekada nežvelgiau į ją būtent tokiu kampu. Norėdamas suprasti, turėjau pasigilinti į tai, kaip skaitmeninis sensorius atskiria spalvas. Kaip sensoriaus pikseliai vaizdo taškelius paverčia skaičiukais nuotraukos faile rašiau ne tokiam senam įraše. Bet kaip atskiriamos spalvos? Jei kalbėti apie absoliučioje daugumoje fotoaparatų naudojamus CMOS (išskyrus Faoveon sensorius - ačiū Rokiškiui už pastabą) ar CCD sensorius, tai jų pikseliai nepasižymi galimybe atskirti krintančios šviesos spektrinę sudėtį - spalvą. Tam tikslui yra pasitelkiami optiniai filtrai. Štai čia ir prasideda pats įdomumas - kaip tuos filtrus išdėlioti ir sukombinuoti su sensoriumi, kad kiekvienam pikseliui gauti tris dedamasias spalvos komponentes arba, kaip dažniausiai sakoma, RGB reikšmes? Jeigu iki šiol apie tai negirdėjote - manau atsakymas nustebins. Pasirodo niekas ir nesistengia gauti tris RGB reikšmes kiekvienam pikseliui tiesiai iš sensoriaus! Pažvelkim į Bayer filtrą, tipiškai naudojamą fotoaparatų sensoriuose spalvų atskyrimui pasiekti:
Bayer filter, Wikipedia
Pilki stačiakampiai - sensoriaus pikseliai; spalvoti - optiniai filtrai. Ir ką gi matom: vienas pikselis - viena spalva. Sakysit - taigi šalia yra kitos dvi spalvos - ir kokia čia problema? Reikia pamatyti, kaip su tokiu filtru vaizdą mato sensorius. Štai čia fotografuojamas objektas:
Demosaicing, Wikipedia
O čia - vaizdas, kurį matom pažvelge į jį per Bayer filtrą:
Demosaicing, Wikipedia
Jaučiat skirtumas ar ne? Na juk mes praleide vaizdelį per Bayer filtrą netekom 2/3 spalvos informacijos - pvz. neliko nei vieno baltos spalvos pikselio - sunku turėtų būtų tai nepajausti.

O dabar reiktų pabandyti iš paskutinio paveikslėlio rekonstruoti pradinį, t.y. kiekvienam taškeliui "atstatyti" dvi (iš trijų) trūkstamas spalvas. Tikrai netrivialus uždavinys, dar kitaip vadinamas demozaikinimu. Visi demozaikinimo algoritmai remiasi prielaida, kad įprastame vaizde šalia esantys vieno objekto pikseliai būną panašių spalvų. Bet kelių objektų "persikirtimams" tai jau nebegalioja, todėl tikslių objektų briaunų atkūrimas tampa problematiškas. Idealių algoritmų šiai dienai nėra: vieni ne taip gerai atstato staigius spalvų pasikeitimus, kiti - prikuria įvairiausių triukšmelių. Bet algoritmai vis dar tobulinami ir progresuoja gan stipriai.

Fotoaparatuose demozaikinimo uždavinį priimtina kokybe išsprendžia fotoaparato procesorius. Jis, turėdamas 1/3 fotografijos spalvų, pagal įsiūtą algoritmą "nutapo" likusius 2/3-dalius - štai kodėl šis įrašas gavo tokį pavadinimą. Reikia pripažinti: fotoaparatai pasižymi kaip tikrai neblogi "dailininkai" - dažniausiai iš pirmo žvilgsnio net nepasakysi, jog dalis spalvų buvo išskaičiuotos.

Labiau pažengusiose ir sudėtingesniuose fotoaparatuose jau yra įprasta šalia fotografavimo į JPG rasti fotografavimą ir į taip vadinamąjį RAW formatą. Kuom geras šis formatas? Tuom, kad jame saugoma praktiškai neapdorota informacija tiesiai iš sensoriaus. Todėl galutiniam vaizdo formavimui galima pritaikyti naujausius demozaikinimo algoritmus - mūsų neberiboja fotoaparato programinė įranga, galima tai atlikti kompiuteriu. Vien dėl šios galimybės ir algoritmų progreso saugau skaitmeninius "negatyvus" RAW formate - gal vieną dieną atsiras toks algoritmas, kuris leis naujai pažvelgti į senas brangias fotografijas.




Vietoj P.S. Turite Canon PowerShot muilinę ir norite pabandyti fotografuoti RAW formatu? Pasirodo yra gan šmaikštus sprendimas: CHDK programinė įranga. Įrašot į kortelę, įdedat į fotoaparatą ir gaunat krūvą naujų funkcijų. Tame tarpe ir galimybę fotografuoti RAW formatu. Sekmės eksperimentuojant.

11 comments:

Anonimiškas rašė...

Truputį įkišiu trigrašį - Sigma Foveon sensoriai truputį kitaip realizuoti. Su spalvų skaidymu sluoksniais, o ne mozaika, kuo Sigma labai giriasi. Bet niekur Lietuvoje nesu matęs pirkti jokių Sigma fotoaparatų.

Beje, jei nesunku, ponuli, padarykit, kad galima būtų komentuot ir be tų kreivybių, o tai turiu nurodinėt ne savo tikrą adresą, o transliaciją :-)

Unknown rašė...

Bliamba - šventė mūsų kieme - pirmas komentaras! :) Kad yr nepatogumų komentuojant - nežinojau, reiks pasigilinti.
Dėl Foveon - girdėjau apie tokius. Tik nežinojau, kad tai CMOS sensorių porūšis - pradžioj maniau, kad tai kažkas visiškai kito. Bet tamsta paskatino pasidomėt giliau - daba žinosiu.

Rokiškis rašė...

Na, aš pats nesu tikras, ar Foveon yra grynaveislis CMOS, ar ne (Vikipedija šiuo atžvilgiu nėra labai patikimas dalykas). Bet tai neesmė - skirtumas tiktai skaidyme.

O komentuot jau dabar galiu normaliai, dėkui :-)

Ir tikrai nustebinot, pasakydamas, kad pirmas čia komentaras - mano parašytas. Rašot puikiai ir įdomiai.

Unknown rašė...

Dėl Foveon prigimties Vikipedijoje ir aš nebūčiau tikras, bet ten įdėta nuoroda į Stanforde rašytą straipnį apie CMOS sensorių raidą iš kurio galima padaryti išvadą - dėl to, kad ten minimas Foveon sensorius - jog tai CMOS porūšis. Gal čia tik maginio mąstymo pvz.? :)

Ir ačiū už gerą žodį. Rašau tokiu stiliumi (stengiuosi prisilaikyti) lyg bandyčiau paaiškinti kitiems, tai ką pats atradau. Toks rašymo būdas padeda man geriau perprasti aprašomą dalyką. Bet gal dėl šiame stiliuje slypinčios šiokios tokios didaktinės potekstės skaitytojams - kurių palengva daugėja - ir nekyla noras komentuoti? Nežinau.
Bet kuriuo atveju, mano tikslas yra žinios ir patirtis, ne komentarai. Nors prisipažinsiu - smagu yra sulaukti tokio prasmingo komentaro, kaip tas pirmasis. :)

skirtumas rašė...

O tai dabar jūs man, protingi dėdės, pasakykite ar tas Foveon sluoksninis yra geresnis nei CMOS mozaikinis?
Sluoksninis gal būt yra fainesnis, nes nereikia "spėlioti" šalia esančių spalvų, bet ar sluoksnis tas jauč' turi bėdą, kad pvz viršutinis mėlynas sluoksnis sugeria dalį žalios ir raudonos, o žalias dalį raudonos šviesos?

Unknown rašė...

Kažkur mačiau analizę, kad taip vadinamasis cross-talk'as tarp kanalų Foveon'uose tikrai aukštesnis, nei įprastuose sensoriuose, t.y. pastebima įtaka tarp vieno pikselio spalvinių dedamųjų. Ir Foveon'ai, taip suprantu, turi maždaug tris kart mažiau pikselių, negu mozaikiniai. Bet pikseliai didesni - triukšmų mažiau. Jeigu tikėti subjektyviais palyginimais - rezultate nuotraukų kokybė ne prastesnė, o kartais ir atrodo detalesnė, negu gamintų iš mozaikinių sensorių. Bet praktiškai nečiupinėjau nei vieno Foveon'o, tai sunku ką nors 100% tvirtinti.

Vilmantas R rašė...

O kažin, kokia programinė įranga turi geriausius algoritmus konvertavimo, gal yra minčių?

Unknown rašė...

@Vilmantas Ramonas: apie komercinių gamintojų soft'ą yra labai mažai info, sunku pasakyti, kiek jie palyginami su kitais. Įvairiausi testai paprastai išryškina vienų stiprybes, kitų silpnybes. Bet apie tokį vienareikšmiškai tobulą negirdėjau. Kažkada seniai buvo paleista į gyvenimą tokia nemokama utelė dcraw. Ir net palyginimai su standartiniu (berods Canon'o) soft'u buvo įdėti, kur rodė, kad apdeda tuos. Iš to dcraw buvo prigimdyta įvairiausių opensource'inių variantų su interfeisais. Vieną iš tokių - RawTherapee - naudoju ir aš. Jo autoriai jau kuris laikas turi beta versijose paskutinį demozaikinimo algoritmų mados klyksmą - AMaZE. Bet kiek tobuli algoritmai sunku pasakyti - vis forumuose randu pavyzdžių, kaip vienai nuotraukai geriau vienas, kitai kitas. O pagrindiniai RawTherapee trūkumai: stabilumo mažoka ir gan painus interfeisas - reikia patirties...

Vilmantas R rašė...

Pasinagrinėjau tą programą, išties visai nieko. Esu ją kažkada bandęs, bet vis lūždavo. Tik tiek, kad raji kompiuterio pajėgumui :)

skirtumas rašė...

Dėl algoritmų pridursiu ir savo dar trigrašį. Iš ties neįmanoma sukurti vieno tobulo. Reikia pagal nuotrauką parinkinėti. Tiksliau siūlau taip daryti. T.y. vienas algoritmas geriau veikia su šviesiais atspalviais - kitas su tamsiais ir pan.
Arba kas padarys algoritmų pack'ą, katras išanalizavęs nuotrauką pasakys pats kokį geriausiai naudoti iš turimų "kišenėj"...

Unknown rašė...

Geram demozaikinimui daugiau įtakos turi ne nuotraukos tonai (arba histogramos struktūra), bet objektų kontūrai, pasikartojantys elementai, staigūs ir žymus intensyvumo bei spalvų pasikeitimai. Pvz. viena iš etaloninių fotografijų, pagal kurią testuojami algoritmai, vaizduoja švyturį, su jį juosiančia tvora. Tai tos tvoros atkūrimas yra viena dažniausiai nagrinėjamų detalių - ten labai neblogai išlenda algoritmų silpnos vietos ir susigeneruoja įvairūs "raštai", kurių tikrovėje niekada nebuvo. :)