Filtre mosaic de 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 sensibles 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]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]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]Una altra 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. Podríem 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 per l'absència de filtres d'ona.
Filtre Vertical de Color Foveon
[modifica]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]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]Primerament veiem de forma il·lustrativa el procés de demosaicing.
Imatge Original
[modifica]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 Bayer
[modifica]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ó).
Com podem veure en l'ampliació, en les zones blanques s'hi veu perfectament el patró del filtre de 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.
Imatge Demosaiced (o Reconstruïda)
[modifica]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.
Podem veure que la imatge que hem recuperat no és ni de bon tros l'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]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 complexos 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]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, sempre 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]Els Algorismes Adaptatius són per contra, algorismes més complexos 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 complexos 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 dona 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 horitzontal, s'aplica el processament no-adaptatiu més convenient. Així, si estem en una zona homogènia, s'aplica l'algorisme d'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 horitzontal on hi ha l'homogeneitat), i si finalment tenim una vora horitzontal, es calcula amb els píxels verds en sentit vertical. Per als 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 d'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 posició 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 gradients 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, nord-est, sud-est, nord-oest, sud-oest) 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 d'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 és recórrer el canal verd de la imatge i allà on 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, finalment, 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]Enllaços externs
[modifica]- Explicació sobre els Sensors Digitals, Sean McHugh in Cambridge in Color
- Color de "Bayer" RGB i MicroLents, Silicon Imaging (design, manufacturing and marketing of high-definition digital cameras and image processing solutions)
- Comparació de Diferents Interpolacions Arxivat 2011-04-12 a Wayback Machine., ImagEval Consulting LLC
- Estudi d'Algorismes d'Interpolació Espacial de Color per a Càmeres Digitals Arxivat 2007-09-11 a Wayback Machine. per Ting Chen, Stanford University.
- Funcionament de les Càmeres Digitals sobretot en la Captura de Color, amb demostració animada d'un procés de demosaicing.