Dopo aver trattato il rumore digitale, ho pensato bene di tediarvi ancora con un capitolo sui sensori digitali. In particolare, vorrei sottoporre alla vostra attenzione un passaggio piuttosto importante del processo di cattura ed elaborazione di un’immagine digitale. Importante ma limitato ai soli sensori che utilizzano una matrice di tipo bayer (ovvero la stragrande maggioranza). Sto parlando dell’interpolazione necessaria ad ottenere i valori delle componenti RGB mancanti per ogni singolo fotosito.
Cerco di spiegarmi meglio. Spesso si sorvola sugli algoritmi utilizzati per ricavare tali valori e si asserisce, in maniera molto vaga ed estremamente poco rigorosa, che, poiché in una matrice bayer, ad ogni fotosito corrisponde una sola delle componenti RGB, per ottenere le altre si ricorre all’interpolazione con i valori ricavati dai fotositi contigui. In effetti, questo è, grosso modo, quello che succede ma, in questo articolo, cercheremo di entrare un po’ più nel dettaglio.
Iniziamo con il distinguere tra le diverse tipologie di filtro. Il cosiddetto filtro bayer “classico” presenta 3 componenti cromatiche, la Rossa, la Verde e la Blu, come indicato in figura
In una matrice di questo tipo, le 3 componenti RGB si ripetono seguendo sempre lo stesso schema su tutta la superficie del filtro. Una variante dell’array du tipo bayer è la Pseudo-Random Bayer (PRB), in cui la caratteristica “pseudo random” è dovuta alle posizioni dei pixel rossi e blu, variabili all’interno della griglia. Dalla figura sottostante
si può notare come la distribuzione dei “pixel verdi” sia sempre la stessa, mentre quelli rossi e quelli blu siano disposti in maniera più o meno casuale. Di fatto esistono diversi tipi di pseudo random bayer pattern con differenti risultati ottenibili dall’operazione di interpolazione. Non mi dilungherò sui motivi che spingono i produttori ad adottare modelli di array diversi tra loro e mi limiterò ad illustrare i quattro punti fondamentali su cui si basa la scelta del tipo di filtro da adottare, quattro punti fondamentali che si possono riassumere con:
- costo dell’algoritmo di ricostruzione, inteso come costo a livello di quantità di calcoli che il processore deve effettuare; questo significa che fotocamere dotate di DSP più potenti potranno avvalersi di algoritmi di ricostruzione più complessi
- robustezza dell’operazione di ricostruzione ad aliasing in generale e moire in particolare. Qui ci sarebbe da parlare a lungo ma mi limiterò a dire che non sempre l’algoritmo che dà i migliori risultati in deteminate condizioni di impiego sia, in assoluto il migliore.
- robustezza, dell’array scelto, nei confronti delle imperfezioni del sensore e, quindi, capacità del filtro di ridurre o eliminare gli errori determinati dalla non uniformità di risposta, tipica della superficie di un sensore digitale, nei confronti della radiazione incidente
- immunità al fenomeno del pixel crosstalk sia di tipo elettrico che ottico.
Come è evidente, dunque, le motivazioni della scelta del tipo di matrice da adottare seguono criteri improntati sia alla ricerca della qualità in senso assoluto, soprattutto nei dispositivi di fascia alta, che al rapporto qualità prezzo ma, anche, criteri dettati dal particolare tipo di impiego del dispositivo che si sta progettando. La scelta più comune è quella di adottare filtri di tipo bayer tradizionali, che fanno uso dei tre colori considerati fondamentali in CG (RGB) disposti in maniera ripetitiva.
A questa tipologia di filtri, ci sono svariate alternative che contemplano l’uso di 3 o più colori, come ad esempio, i CFA (color filter array) che fanno uso di colori complementari del rosso, del verde e del blu ( i CMY, tanto per citarne alcuni) o quelli che usano tre pixel di tipo RGB e un quarto in cui, al posto di un altro verde c’è il bianco o quelli che utilizzano un mix di colori primari e complementari (ad esempio i MGCY).
Il proliferare di tutte queste tipologie di filtri è dovuto essenzialmente al fatto che gli stessi sono ottenuti mediante l’applicazione di layer di materiali organici o pigmenti inorganici che hanno lo scopo di permettere il passaggio ad una specifica componente cromatica. La scelta di questi materiali e, di conseguenza, la colorazione dei pixel del CFA, è dettata da vari fattori, come la facilità di applicazione e la resistenza agli agenti atmosferici.
Diverse, invece, le motivazioni della scelta di una tipologia di CFA al posto di un’altra, a parità di componenti cromatiche impiegate. C’è da specificare che l’utilizzo di pattern con elementi disposti secondo uno schema ben definito e ripetitivo e con pixel dello stesso colore contigui o molto vicini tra di loro, serve a semplificare l’algoritmo di demosaicing e, in determinate condizioni, a ridurre alcuni tipi di artefatti.
Però, come visto anche nel capitolo dedicato all’aliasing, l’utilizzo di un reticolo periodico, in particolare se di tipo ordered grid, ossia con campioni scelti lungo gli assi orizzontale e vereticale del piano immagine, rende il sistema più vulnerabile ad effetti quali il moire e rende necessario un ulteriore step di denoising a valle del filtro ricostruttore. Un’altra ragione per utilizzare CFA con diversa distribuzione rispetto a quella bayer, è quella di favorire le operazioni di pixel binning.
A titolo di esempio, facciamo un confronto tra due tipi di CFA, uno di tipo bayer e uno di tipo bayer modificato. I due CFA sono riportati, nell’ordine, in basso
la prima cosa che salta all’occhio è che nel primo schema proposto, ovvero il CFA di tipo bayer, i pixel più prossimi dello stesso colore sono disposti a croce, mentre nel secondo schema seguono linee diagonali inclinate a 45° rispetto al piano dell’immagine. In questa fase non entreremo dnel dettaglio degli algoritmi di ricostruzione ma ci limiteremo ad una comparazione di tipo qualitativo. In base a quanto detto precedentemente, possiamo ragionevolmente aspettarci che il primo filtro sia più incline a manifestare artefatti quando si tenta di riprodurre immagini che presentano una distribuzione periodica di elementi. In effetti, nel guardare le immagini riprodotte in basso, in cui è presente una ringhiera ad elementi verticali, si vede che il primo filtro presenta artefatti piuttosto evidenti la dove il secondo si comporta decisamente meglio
La prima delle due immagini è stata presa facendo uso di pattern bayer, la seconda di pattern bayer modificato con pixel dello stesso colore disposti lungo linee diagonali. Si tratta di algoritmi semplici, senza operazioni di denoising in post processing. Si può avere la stessa immagine in cui, a valle del filtro ricostruttore, è stata inserita un’operazione di denoising; l’ordine in cui le immagini sono disposte è sempre il medesimo
Sul filtro bayer sono ancora presenti artefatti, anche se in misura minore. Questa situazione può ancora essere migliorata facendo uso di operazioni in post processing più sofisticate e costose in termini di cicli di calcolo.
Da queste immagini potrebbe sembrare che il secondo tipo di CFA sia migliore rispetto al primo; la situazione cambia radicalmente se andiamo a prendere un altro tipo di immagine, in cui si presentano bordi molto accentuati. Come visto nella parte sull’aliasing, i maggiori problemi nascono quando ci si trova di fronte a transizioni cromatiche molto brusche, come avviene in prossimità dei contorni di una figura.
Dalle due immagini mostrate qui sopra, disposte sempre nel medesimo ordine, si può vedere come il pattern bayer sia meno sensibile all’aliasing in prossimità dei bordi in particolare e nelle aree dove c’è una brusca variazione del gradiente cromatico. Anche questa situazione è migliorabile facendo uso di algoritmi di denoising in post processing e/o di filtro antialising fisico posto davantio al sensore.
Da queste brevi e semplici considerazioni di carattere qualitativo, è evidente che il filtro perfetto non esiste e che, qualuque scelta si operi, è opportuno fare uso di operazioni di post processing atte a ridurre l’impatto di questo tipo di disturbi sull’immagine. I dispositivi che non dovrebbero incorrere in problemi connessi a questo tipo di rumore, sono quelli dotati di sensore che non necessità dell’applicazione di filtri come, ad esempio, l’X3 di Foveon.
In un prossimo capitolo, una volta esaurito l’argomento relativo ai disturbi connessi alle operazioni di ricostruzione dell’immagine in dispositivi con filtro di tipo bayer o da esso derivato, avremo modo di fare una comparativa tra le immagini catturate da un sensore X3, con le tre componenti cromatiche disposte a strati e quelle catturate da un dispositivo dotato di filtro bayer.