Foveon X3 Quattro aneb jak s 5MPix snímačem vyfotit 20 megapixelů
Sigma v pondělí odhalila novou DP2 Quattro, která ponese snímač Foveon X3 Quattro. K příležitosti uvedení jsme si řekli, jaké jsou jeho základní rozdíly oproti dosavadním třem generacím po stránce hardwaru. Nový koncept vyvolal dlouhé řady diskusí a i když se většina z nich odehrává na mezinárodních fórech, obsahují jeden častý prvek, se kterým se můžeme setkat i v českých diskusích: Pochybnosti. Pochybnosti o fungování snímače, o jeho schopnosti zachytit typicky „Foveonově ostrý“ obraz či o směru, kam se vývoj Foveonu ubírá.
Mnohé z těchto obav, domnívám se, pramení z nepochopení principu, na jakém nový snímač funguje, nebo možná spíše z nevědomosti. To ovšem nelze nikomu zazlívat - jde o čerstvě uvedený produkt, o kterém nejsou známé detailní informace.
Něco je vlastně známo zhruba po 3 roky. Snímač vychází z patentu, na kterém se z valné části podílel zesnulý Dick Merrill, spoluzakladatel společnosti a autor snímače Foveon:
Nákres znázorňuje obvody vrchní vrstvy a čtveřici „modrých“ snímačů
Patent v plném znění najdete například zde. Vyjma pár diskusí ze stran skalních fanoušků se o něm příliš nemluvilo, a tak jeho principy zůstaly utajené. Abychom pochopili, jak obraz vzniká, musíme se alespoň částečně oprostit představy, že co snímač zachytí, odpovídá výslednému obrazu. Tak tomu v případě Foveonu (ani původního, ani nového) a samozřejmě ani Bayerova snímače není.
Už v souvislosti s klasickým Foveonem jsem několikrát zmiňoval, že jeho vrstvy neodpovídají barvám, které jsou s nimi spojované, tedy že by vrchní produkovala modrý kanál, střední zelený a nejhlubší vrstva červený. Ve skutečnosti toho vrstvy zachytí mnohem více, takže vrchní zaznamená většinu modré, část zelené a část červené (=> bílá s modrým nádechem, zjednodušeně: jas), střední vrstva zaznamená zbytek zelené a část červené (dohromady: žlutá) a nejhlubší zbytek červené. I toto je zjednodušené, ale pro pochopení principů dostačující.
Pro ilustraci toho, jak by vypadal snímek z Foveonu, kdybychom jednotlivým vrstvám prostě jen přiřadili modrý/zelený/červený kanál, jsem připravil ukázku níže - vlevo. Vpravo je pak tentýž snímek, ale správně zpracovaný. Tím chci ilustrovat, že cílem snímače není zachytit takový obraz, jaký my běžně vidíme, ale zachytit data, na jejichž základě je možné určitým postupem vytvořit (zrekonstruovat) obraz, na nějž jsme zvyklí.
Vytvořeno za použití RAWu z recenze Sigma SD1 na DPReview (plné rozlišení ~6 MB!)
Nyní k novému Foveonu. Pro ten platí vše, co bylo napsáno výš - liší se však tím, že nezaznamenává informace, které lze z hlediska procesu převodu zachycených dat do výsledného obrazu považovat za nadbytečné. K tomu se ještě vrátíme.
*Nový Foveon X3 Quattro má pro druhou a třetí vrstvu pouze čtvrtinové rozlišení. Pokud bychom naši představu o dějích ve snímači omezili na barevné vrstvy modrá/zelená/červená, vycházelo by nám, že zelený a červený kanál jsou vyfocené ve čtvrtinovém rozlišení. Aby odpovídaly kanálu modrému, musejí být interpolovány (zvětšeny) na stejné rozlišení. Logickým důsledkem toho zjednodušeného modelu pak je očekávání, že zelený a červený kanál v důsledku interpolace budou neostré a rozdíly v rozlišení oproti modrému způsobí velké množství obrazových artefaktů.
*I kdybychom na tuto zjednodušenou teorii přistoupili, je tu hned několik argumentů, proč minimálně u červeného kanálu k nijak citelné degradaci obrazu nedojde. Do třetí vrstvy současného Foveonu se dostává jen velmi málo světla, takže vykazuje vysoký šum, který musí být redukován, což degraduje detail. Dále je tu skupina vzájemně souvisejících jevů, které mají taktéž negativní dopady na obrazovou kvalitu třetí („červené“) vrstvy. Za prvé vlnová délka červeného světla - ta je 2× větší než v případě modrého, takže nese polovinu detailů. Za druhé difrakce, která se nejvyšší měrou projevuje ve třetí vrstvě. No a za třetí prostý fakt, že objektiv, který je zaostřen na povrch snímače, tedy vrchní vrstvu, již na třetí - nejvzdálenější - vykreslí méně ostrý obraz.
*Všechny tyto vlivy dohromady působí, že skutečné rozlišení obrazu třetí vrstvy zdaleka neodpovídá fyzickému rozlišení snímače, ale samo o sobě je zhruba čtvrtinové. Pro demonstraci, že tato teorie není příliš mimo realitu, stačí vzít snímek z Foveonu, oddělit červený kanál, zmenšit ho na čtvrtinové rozlišení, opět zvětšit a vložit zpět do snímku.
Pro plné rozlišení rozklikněte (vytvořeno za použití RAWu z recenze Sigma SD1 na DPReview)
*Originální snímek vidíte vlevo, verzi s červeným kanálem o čtvrtinovém rozlišení vpravo. Rozdíl je poměrně nízký - přinejmenším výrazně nižší, než bychom čekali od odstranění 3/4 informace červeného kanálu. Přinejmenším to dokládá, že červený kanál už v plném rozlišení neobsahuje mnoho detailů a jeho snímání v plném rozlišení je plýtváním fotodiodami, dynamickým rozsahem a úložištěm.
Nyní můžete zapomenout na obsah všech odstavců označených hvězdičkou. V jejich úvodu jsme totiž vyšli z předpokladu, že první vrstva Foveonu je modrá, druhá zelená a třetí červená. To je předpoklad chybný, tak to nefunguje. Logicky i ukázka, která se snažila demonstrovat, že by snímání červeného kanálu ve čtvrtinovém rozlišení nemělo nijak výrazně degradovat kvalitu obrazu, neodráží ani přibližně to, co Foveon X3 Quattro skutečně dělá.
Ještě jednou si připomeňme, že červenou barvu ve skutečnosti více či méně zachytí všechny tři vrstvy snímače, nikoli jen ta nejhlubší. Nyní nejjednodušší možný příklad: S pomocí Fovenu X3 Quattro chceme zachytit scénu, které je celá černá a obsahuje pouze jeden malý červený bod. Co se děje na úrovni snímače, vidíme níže:
Červený paprsek zachytí jeden ze čtyř pixelů vrchní vrstvy, dále velký pixel druhé vrstvy a velký pixel třetí vrstvy. Nyní k postupu, jakým lze získat barevnou informaci v rozlišení první vrstvy: Na základě toho, že se paprsek dostal do třetí vrstvy, lze usoudit, že šlo o červené světlo. Třetí vrstvu jsme tedy využili k tomu, abychom zjistili údaj o barvě. Tím však její role končí - samotný obraz, který zachytila, totiž vůbec nepotřebujeme - nepoužijeme jej, prostě jej zahodíme. Dále už budeme pracovat pouze s vrchní vrstvou. Ta zachytila přesný pixel, kterým paprsek prošel, jen nerozpoznala jeho barvu. Barvu ale zjistila třetí vrstva, takže příslušnému pixelu získanému z horní vrstvy přiřadíme červenou. Všimněte si, že nebylo třeba použít žádné interpolace a přesto jsme získali 20MPix výstup, který obsahuje červenou informaci o rozlišením 4× vyšším, než jakého dosahuje třetí „červená“ vrstva (5 MPix).
Můžeme si znázornit i případ zeleného paprsku. Opět je postup stejný. Protože velký pixel třetí vrstvy nic nezachytil, je zřejmé, že nešlo o červenou. Velký pixel druhé vrstvy ale dopad světla zaznamenal, což znamená, že jde o zelenou. „Rozsvícenému“ pixelu první vrstvy tedy bude přiřazena zelená.
Samozřejmě, že v okamžiku, kdy na každý pixel vrchní vrstvy dopadá paprsek jiné vlnové délky a intenzity, bude třeba nasazení mnohem sofistikovanějšího matematického aparátu, který krom základního principu popsaného výše nasadí ještě porovnávání intenzity signálu jednotlivých vrstev v kombinaci s barevnou separací klasických Foveonů. Stejně tak mohou nastat situace, kdy tento postup neposkytne jednoznačný výsledek a bude vhodné zvolit alternativní cestu. Cílem je protentokrát demonstrace toho, že i s 5MPix spodní vrstvou je možné zaznamenat červené detaily v 20MPix rozlišení.
Tento postup také nebude zcela bezztrátový - jeho ztrátovost ale může být v určitých situacích nižší, než ztráta detailu v příliš malých pixelech červené vrstvy stávající generace. Paradoxně je možné, že změna přístupu ke zpracování dat (v kombinaci s velkými pixely druhé a třetí vrstvy) povede ke zvýšení obrazové kvality zeleného a červeného kanálu, nikoli ke snížení.
Jak konkrétně situace dopadne, záleží na metodě, jakou Sigma zvolí a na kvalitě algoritmů, které nasadí. Objektivní posouzení tak bude možné teprve až po zveřejnění prvních snímků. Prostá interpolace obrazu druhé a třetí vrstvy na rozlišení obrazu vrstvy první se tak jeví jako nepravděpodobná. Lze připustit, že tento jednoduchý postup bude používaný maximálně pro JPEG generovaný fotoaparátem, nikoli při převodu z RAWu na PC.
Sigma True III
Existuje ale určitá možnost, že i náhledové JPEGy ve fotoaparátu budou zpracovány sofistikovanějším postupem. Nový procesor True III, jímž Sigma Foveon X3 Quattro doplní, s vysokou pravděpodobností vychází z čipu Fujitsu Milbeaut, který v nejnovější generaci fotoaparátů (pod vlastními názvy) používá například Nikon, Leica, Pentax a další.
Fujitsu Milbeaut
Milbeaut sestává z programovatelné části (ARM procesoru / DSP procesoru) a setu jednoúčelových obvodů. Podle výrobce dosahuje výkonu více než dvojnásobného oproti předešlé generaci, a tak lze připustit, že by mohl stačit i na plnohodnotné zpracování dat na úrovni fotoaparátu.
Diagram procesoru Fujistsu Milbeaut
Fujitsu jako tradičně nabízí možnost úpravy čipu podle potřeb výrobce, takže Sigmě z principu nic nebrání, aby True III nechala vybavit hardwarovou podporou pro své algoritmy (otázkou je pouze to, zda na něco takového měla při omezených lidských zdrojích dostatek času).