Filtre mosaic de Bayer

De Viquipèdia
Dreceres ràpides: navegació, cerca
Filtre Mosaic de Bayer sobre sensor
Patró resultant del filtrat amb el Filtre Bayer

El Filtre Mosaic de Bayer és un filtre matricial de color que determina el color primari (RGB) de cada cel·la del fotosensor (CCD o APS). El seu nom el deu al seu inventor, el Doctor Bryce E. Bayer de l'empresa Eastman Kodak. La distribució de colors en el sensor que aplica el Filtre Bayer no és igualment proporcional als tres colors primaris RGB, sinó que és de 25% Vermell (R), 50% Verd (G) i 25% Blau (B) donant més importància al color verd per raons físiques del Sistema Visual Humà, ja que els humans som més sensibles a les components freqüencials properes als tons verds. En Bryce Bayer anomena a les cel·les verdes del fotosensor els elements sensitius a la luminància, i les cel·les roges i blaves els elements sensitius a la crominància.

Podríem pensar que si necessitem obtenir tres components de color (RGB) per cada píxel, necessitaríem tres sensors, un per cada component. La motivació principal d'utilitzar el Filtre Mosaic de Bayer és la d'obtenir la imatge en color amb un únic sensor + un Filtre Mosaic de Bayer. Aquestes cel·les o elements seran els píxels finals de la imatge després d'un procés de demosaicing que es basarà en interpolacions entre els valors dels elements resultants del filtre Bayer.

Alternatives al Filtre de Bayer[modifica | modifica el codi]

El Filtre Mosaic de Bayer és el filtre matricial de color més usat comercialment en tot el món, no obstant existeixen altres filtres derivats del filtre de bayer com el filtre RGBW (Red, Green, Blue, White) o el filtre RGBE (Red, Green, Blue, Emerald) que utilitzen algorismes de demosaicing semblants. També hi ha altre filtres com el filtre CYGM (Cyan, Yellow, Green, Magenta) o el filtre CMYW (Cyan, Magenta, Yellow, White). Altres sistemes totalment diferents serien el Foveon X3 sensor, que es basa en un sensor per capes verticals; o simplement la utilització de tres sensors separats.

Filtre de Bayer amb cel·les "Pancromàtiques"[modifica | modifica el codi]

Una manera que els mateixos desenvolupadors de Kodak van adonar-se que millorava el filtre de bayer quant a l'increment de la sensibilitat de la llum en el sensor era incloure-hi algunes cel·les anomenades pancromàtiques que són capaces de capturar totes les components freqüencials (totes les longituds d'ona) de la llum visible, és a dir, cel·les blanques. A aquest nou filtre se'l va anomenar filtre RGBW (Red, Green, Blue, White). També existeix el filtre CMYW que és l'anàleg en colors subtractius.

Captació a base de Microlents i Miralls Dicroics[modifica | modifica el codi]

Una altre possible solució que l'empresa Nikon Corporation va desenvolupar fou col·locar una sèrie de microlents sobre un triplet de fotoreceptors. La longitud d'ona corresponent a cadascuna de les components RGB és separada i se la fa passar pel fotoreceptor específic. Aquest encaminament de la llum s'efectua amb miralls dicroics. Podriem pensar que el que fem és agafar la part de la llum corresponent a cadascuna de les components freqüencials i "ficar-la" en la part del receptor sensible a aquella component. Amb aquest sistema emulem la recepció amb 3-CCD (tres fotosensors, un per cada component RGB) i per tant la qualitat de la imatge captada és teòricament superior, ja que no s'efectuen processos de demosaicing i es redueix la pèrdua de lluminositat degut a l'absència de filtres d'ona.

Filtre Vertical de Color Foveon[modifica | modifica el codi]

Una altra manera de separar el color, sovint anomenat filtre color vertical, és el sensor Foveon X3. El sensor Foveon té tres nivells de silici diferenciats cadascun dels quals capten un component de color RGB (una longitud d'ona) diferent. Així en resulta una matriu de color diferent en cadascun dels nivells del sensor sense utilitzar cap filtratge i per tant, sense perdre lluminositat.


Demosaicing (o Reconstrucció)[modifica | modifica el codi]

Després de la captació de la imatge i un cop filtrada pel Filtre de Bayer on tenim una única component de color en cada píxel, s'aplica un procés de Demosaicing o reconstrucció de la imatge per tal de tenir els tres components de color en cada píxel per tenir així la imatge en color RGB. Per dur això a terme, s'apliquen a la imatge Bayer un o algorisme o altre segons la qualitat que vulguem obtenir i la potència del nostre processador.

Demostració Gràfica[modifica | modifica el codi]

Primerament veiem de forma il·lustrativa el procés de demosaicing.

Imatge Original[modifica | modifica el codi]

Aquesta primera imatge correspon a la imatge real que hauria de captar el sensor de la càmara o el que captaria una càmera amb tres sensors (3CCD), és a dir, el que veurien els ulls del fotògraf i que voldrà capturar amb la càmera.

Imatge Original

Imatge Bayer[modifica | modifica el codi]

Després de filtrar la imatge amb el Filtre de Bayer, obtenim aquesta imatge que anomenarem Imatge Bayer. En aquesta imatge, cada píxel té un únic valor corresponent al component RGB pel qual s'ha filtrat. Així en cada píxel només tenim una quantitat de vermell(R), o verd(G), o blau(B) o també podem tenir el negre, que significa absència de llum (absència d'energia lumínica en la captació).

Imatge Bayer

Com podem veure en l'ampliació, en les zones blanques s'hi veu perfectament el propi patró del filtre de Bayer.

Detall de la Imatge Bayer

Si separem la imatge per canals de color (RGB), veurem fàcilment que tenim més quantitat de verd que de blau i vermell.

Detall del canal Vermell
Detall del canal Verd
Detall del canal Blau


Imatge Demosaiced (o Reconstruïda)[modifica | modifica el codi]

A partir de la Imatge Bayer, hem de reconstruir la Imatge Original. Això es pot fer amb diversos processos algorítmics basats en interpolacions dels valors dels píxels de la Imatge Bayer, com s'explica més endavant.

Aquest seria el resultat de la nostra imatge aplicant un processament No-adaptatiu d'interpolació lineal.


Imatge Demosaiced
Detall de la Imatge Demosaiced

Podem veure que la imatge que hem recuperat no és ni de bon tros la original, ja que es poden distingir falsos relleus i falsos colors al voltant de les lletres i les rodones blaves, i un lleuger desenfoc en la imatge en general. També es crea un fals contorn a la vora de la imatge. En canvi, en les zones de color homogeni com el blanc de fons, l'interior de les lletres gruixudes i l'interior dels cercles el color es recupera perfectament.

El gran problema del Demosaicing és que si utilitzem algorismes molt senzills, obtenim bons resultats en les zones uniformes i homogènies (sense gaires canvis, baixa freqüència espacial) però obtenim resultats poc òptims en els relleus i zones amb molts detalls (zones molt canviants, alta freqüència espacial). En aquestes zones amb vores, apareixen falsos relleus i rugositats, és a dir, disminueix la resolució de la imatge. Aquests efectes són realment preocupants en imatges emprades en aplicacions que utilitzen tècniques de creació d'imatge 3D a partir d'imatges 2D (creació de volums a partir de relleus), com moltes aplicacions mèdiques, militars, d'investigació...


Algorismes de Demosaicing[modifica | modifica el codi]

Com ja hem dit, per reconstruir la imatge a partir de la Imatge Bayer hem d'efectuar un procés de Demosaicing a través d'algorismes més o menys complexes que ens donaran resultats més o menys acurats. Els algorismes simples ens donaran un resultat pobre i de baixa qualitat però el cost processal i per tant l'energia emprada en el càlcul serà molt petita; per contra, dels algorismes més complexes n'obtindrem una qualitat més òptima a canvi d'un cost processal més elevat i per tant un cost energètic més gran i la necessitat d'un processador més potent.

Bàsicament hi ha dos tipus d'algorismes de demosaicing, els No-Adaptatius i els Adaptatius:

Algorismes No-Adaptatius[modifica | modifica el codi]

Els Algorismes No-Adaptatius són aquells que apliquen una algorítmica fixa independentment de la imatge o part de la imatge que processin. Són els algorismes més senzills, ja que no fan cap estudi previ de les característiques de la imatge i per tant sempre apliquen el mateix processament. Així doncs, gràcies a la seva senzillesa són molt fàcilment implementables i tenen un cost processal i energètic baix. Per contra, al no adaptar-se a les característiques de la imatge, tenen una qualitat baixa.

  • Rèpliques de Veí Proper:

Aquest és el processament més senzill i simplement es basa a recórrer la imatge i en els píxels on no hi ha informació d'un component RGB, s'agafa el mateix valor del píxel més proper del mateix component i es copia. Si hi ha dos o més píxels del component en qüestió a igual distància, se segueix una regla aleatòria de selecció (per exemple, sempres prioritzem els píxels d'una fila superior i una columna més a l'esquerra). Evidentment és l'algorisme més ràpid, ja que no es fa ni un sol càlcul, simplement s'omplen els forats buits.

  • Interpolació Bilineal:

Aquest processament és molt semblant a l'anterior però en comptes de copiar el mateix valor del píxel més proper del mateix component de color, es mira els valor dels píxels més propers i com normalment hi haurà 2 o 4 píxels a la mateixa distància, es fa la mitja aritmètica i el resultat és el nou valor del píxel.

  • Transició de Tonalitat Suavitzada:

El que pretén aquest algorisme és corregir un dels problemes de la Interpolació Bilineal i és que creava relleus de color en la interpolació dels components blau i vermell dels píxels. En les imatges, els píxels verds bàsicament duen la informació de lluminositat, i els vermells i blaus de color o tonalitat. El que fa l'algorisme de Transició de Tonalitat Suavitzada és tractar la imatge per canals de color. Així al canal verd hi aplica una interpolació lineal que s'ha de fer al principi perquè del resultat d'aquesta en depèn el dels altres canals. En el canal blau i en el vermell, el que fa és calcular la mitjana dels píxels del component però dividit pel valor del píxel verd en aquella posició. Així se suavitza segons la quantitat de llum (canal verd) el nivell de tonalitat o color (canals vermell i blau) i es redueix la creació de falsos relleus de color.

  • Transició Logarítmica de Tonalitat Suavitzada:

Es fa el mateix que en l'algorisme anterior però es treballa amb el valor logarítmic dels píxels (si un píxel té valor de verd G, es transforma a valor de verd G'=log(G)). Primer es calcula el canal verd amb els valors en logaritmes i després es calculen els canals blau i vermell com la mitjana dels píxels del canal dividit pel valor de verd en aquell píxel (tot en logaritmes). Finalment, amb els valors finals dels tres component R'G'B' de cada píxel se'ls hi fa l'antilogaritme per recuperar el valor correcte expressat de forma lineal RGB. El fet de treballar en base logarítmica és que suavitza encara més la creació de falsos relleus de color.

Algorismes Adaptatius[modifica | modifica el codi]

Els Algorismes Adaptatius són per contra, algorismes més complexes que fan una anàlisi de les característiques de la imatge o part de la imatge i depenent d'aquests paràmetres avaluats apliquen un tipus de processament o altre per tal que s'adeqüi a aquesta imatge i poder així obtenir el resultat més òptim. Aquests algorismes són més complexes i per tant tindran un cost processal i energètic major. No obstant és evident que s'obtindrà un resultat molt més exacte i de més alta qualitat.

  • Interpolació amb Detecció de Vores:

El Sistema Visual Humà és molt sensible a les vores i relleus que formen les imatges i és justament en les vores on els Algorismes No-Adaptatius tenen les mancances més notables. Així que l'algorisme adaptatiu primer va ser aquell que detectava vores per tal d'aplicar en aquella zona el processament més adequat. De fet en la Interpolació amb Detecció de Vores no es crea cap algorisme nou, sinó que primer es fa un "escombrat" de la imatge i s'aplica un Algorisme de Detecció de Vores i segons si hi ha o no un relleu es dóna un valor a una variable llindar per aquell píxel. Després es fa el processament del demosaicing, primer pel canal verd on en cada píxel, segons el valor del llindar que indicarà si pertany a una zona homogènia, una zona on hi ha una vora vertical o una zona on hi ha una vora hortizontal, s'aplica el processament no-adaptatiu més convenient. Així, si estem en una zona homogènia s'aplica l'algorisme de Interpolació Bilineal tant en els píxels verd veïns de dalt, de baix, de la dreta i de l'esquerra. Si estem per contra en una vora vertical, s'aplica l'algorisme d'interpolació bilineal només amb els píxels verds de l'esquerra i la dreta (ja que és en hortizontal on hi ha l'homogeneitat), i si finalment tenim una vora horitzontal, es calcula amb el píxels verds en sentit vertical. Per els canals blau i vermell es poden adoptar diverses variant però sempre s'aplica un algorisme no-adaptatiu, ja sigui el de Transició de Tonalitat Suavitzada (logarítmica o no) o simplement el de Interpolació Bilineal. On si podem ajustar el processat és en la millora de l'algorisme de Detecció de Vores, ja que és la base d'aquest procés de demosaicing.

  • Interpolació amb Correcció de Color:

Aquest algorisme i els que segueixen són ja d'un grau de complexitat més elevada que implicarà un cost processal major. Segueixen aplicant algorismes de Detecció de Vores que fan que l'algorisme final de demosaicing es decanti per un codi o altre respecte una variable llindar que crea l'algorisme de detecció de vores. La gran diferència és que en el càlcul del canal verd, no només utilitzem els píxels verds en direcció horitzontal, vertical o tots segons si tenim un relleu vertical, horitzontal o estem en zona homogènia respectivament, sinó que incloïm en el càlcul del píxel verd (d'una possició on en la Imatge Bayer hi havia un píxel blau) el valor d'un gradient (Derivada Laplaciana de Segon Ordre) dels píxels blaus veïns. En els píxels on en la Imatge Bayer hi havia vermell, s'inclou un gradient vermell en comptes d'un gradient blau. Per calcular el valor de blau o vermell en un píxel on en la Imatge Bayer hi havia verd, també es creen uns gradient que depenen dels valors de verd dels píxels veïns (els que hem calculat primer) i els valors dels píxels veïns del component blau o vermell.

Així que en definitiva, amb aquest algorisme no només es té en compte el fet si hi ha o no una vora sinó que a més s'hi afegeix la interrelació dels valors dels píxels en les tres capes de color.

  • Interpolació basada en Llindar Variable segons un Nombre Fix de Gradients:

Aquest algorisme complex es basa a crear un Llindar que variarà el seu valor depenent de quin gradient hagim emprat pel seu càlcul. El Gradient (hi ha vuit gradients possibles que corresponen a les direccions o punts cardinals Nord, Sud, Est, Oest, NordEst, SudEst, NordOest, SudOest) s'escull segons la direcció dintre d'una subimatge (matriu de 5x5 píxels). Cada conjunt de 8 gradients determina un llindar i aquest llindar determina un altre subconjunt de gradients (Nord, Sud, Est, Oest). Els gradients del primer conjunt que tenen un valor baix, indiquen que es tracte d'una zona amb color de píxel similar. Els gradients del subconjunt que per contra, tenen valors alts indiquen que és una regió on hi ha molts detalls o relleus pronunciats. Els gradients del subconjunt, s'utilitzen per localitzar zones amb característiques semblants. El valor general dels píxels d'aquestes zones semblants, determinarà el valor particular dels píxels de la zona.

  • Patrons Coneguts:

En aquest algorisme, ens tornem a fixar una vegada més en la informació de luminància, és a dir, en el canal de píxels verds. El que tenim aquí és quatre possibles patrons coneguts dins una subimatge de 3x3 píxels on el píxel central correspondria a una cel·la que en la imatge Bayer hi hauria valor de blau o vermell, de manera que tindriem a sobre, sota, esquerra i dreta (forma de creu) píxels de color verd. Els patrons possibles serien:

Patró de Vora Superior: El valor dels píxels de dalt, esquerra i dreta és major que el valor mitjà dels quatre i el valor de baix és menor que la mitjana dels quatre.

Patró de Vora Inferior: El valor dels píxels de baix, esquerra i dreta és major que el valor mitjà dels quatre i el valor de dalt és menor que la mitjana dels quatre.

Patró de Ratlla: El valor dels píxels de esquerra i dreta és major que el valor mitjà dels quatre i el valor de dalt i baix és menor que el valor mitjà dels quatre.

Patró de Cantonada: El valor de dalt i esquerra és major que el valor mitjà dels quatre i el valor de baix i dreta és menor que la mitjana dels quatre.

El que es fa es recórrer el canal verd de la imatge i allà on hi falta un píxel verd, si els píxels veïns tenen l'estructura dels patrons de vora, car s'aplica un algorisme dintre de la subimatge 3x3 segons com sigui aquesta subimatge. Però si correspon a un patró de ratlla, s'utilitza un altre algorisme que analitza una subimatge major de 5x5 per verificar que sigui realment una línia contínua. Si per últim té la forma del patró de cantonada, també agafa una subimatge de 5x5 però només analitza els píxels que segueixen la teòrica diagonal de la cantonada. Si la imatge per contra no correspon a cap patró i és homogènia, s'aplica una interpolació bilineal. Pels canals blau i vermell, es poden aplicar algorismes no-adaptatius com el d'interpolació bilineal o el de transició de tonalitat suavitzada.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Filtre mosaic de Bayer