Demozaicare

Un algoritm de demozaicare (după en. demosaicing) este un proces de prelucrare a imaginilor digitale folosit la reconstrucția unei imagini complet color din eșantioanele de culoare incomplete, obținute dintr-un senzor de imagine suprapus cu o matrice de filtre de culoare (MFC). E cunoscut și ca interpolare MFC sau reconstrucție de culoare.
Cele mai multe camere foto digitale moderne obțin imagini folosind un singur senzor de imagine suprapus cu o MFC, așa că demozaicarea este parte a conductei de procesare necesare pentru redarea acestor imagini într-un format vizibil.
Multe camere digitale moderne pot înregistra imagini pe cardul de memorie flash folosind formatul de fișier numit RAW. În acest mod utilizatorul le poate demozaica ulterior prin intermediul programelor de calculator, mai degrabă decât folosind microprogramele sau microcodul (după fr. „micrologiciel” respectiv en. „microcode”/„firmware”) încorporate ale camerei.
Obiectivul unui algoritm de demozaicare este de a reconstrui o imagine complet color (i.e. un set întreg de culori triple) din canalele de culoare subeșantionate spațial rezultate din MFC. Algoritmul ar trebui să aibă următoarele trăsături:
O matrice de filtre de culoare este un mozaic de filtre de culoare dinaintea unui senzor de imagine. Comercial, cea mai des folosită configurație MFC este filtrul Bayer ilustrat aici. Acesta are filtre de roșu (R) și verde (V) alternante pentru rânduri impare și filtre de verde (V) și albastru (A) alternante pentru rânduri pare. Sunt de două ori mai multe filtre de verde decât de roșu și albastru, exploatând sensibilitatea mai ridicată a ochiului uman la lumina verde.
Din moment ce subeșantionarea de culoare a unei MFC prin natura sa rezultă în dedublare, un filtru optic antidedublare este tipic plasat in drumul optic dintre senzorul de imagine și lentilă pentru a reduce artefactele de culoare falsă (dedublări/crenelaje cromatice) introduse de interpolare.
Din moment ce fiecare pixel al senzorului se află în spatele unui filtru de culoare, rezultatul este o matrice de valori de culoare, fiecare indicând o intensitate brută a unuia dintre cele trei filtre de culoare. Prin urmare, este necesar un algoritm pentru a estima pentru fiecare pixel nivelurile de culoare al tuturor componentelor de culoare mai degrabă decât al unei singure componente.
Pentru a reconstrui o imagine complet color din datele colectate de matricea de filtrare a culorii, este necesară o formă de interpolare pentru a umple golurile. Matematica de-aici este supusă implementării individuale și se numește demozaicare.
În acest exemplu, este folosită interpolarea bicubică a Adobe Photoshop pentru a simula ansamblul de circuite al unui dispozitiv cu filtru Bayer cum ar fi o cameră digitală.
Imaginea de dedesubt simulează rezultatul obținut de la un senzor de imagine cu filtru Bayer; fiecare pixel are decât o componentă roșie, verde sau albastră. Imaginea originală corespondentă este afișată alături de reconstrucția demozaicată la sfârșitul acestei secțiuni.
O cameră digitală în mod tipic are mijloace de a reconstrui o întreagă imagine RVA (roșu-verde-albastru) folosind informația de deasupra. Imaginea rezultantă ar putea fi de genul acesta:
Imaginea reconstruită este în mod tipic clară în zonele colorate uniform, dar are un deficit de rezoluție (detaliu și precizie) și are artefacte ale marginii (de exemplu, marginile literelor au franjuri de culoare vizibile și o anumită rugozitate).
Acești algoritmi sunt exemple de interpolare multivariată pe o grilă uniformă, folosind operații matematice relativ directe și simple pe mostre cu aceeași componentă de culoare. Cea mai simplă metodă este interpolarea cel-mai-apropiat-vecin (nearest-neighbor interpolation) care pur și simplu copiază un pixel adiacent care are același canal de culoare. Este nepotrivit pentru orice aplicație unde calitatea contează, dar poate fi util pentru generarea previzualizărilor dată fiind cerința limitată de resurse de calcul. O altă metodă simplă e interpolarea biliniară, prin care valoarea roșie a unui pixel non-roșu este calculată ca media celor doi sau patru pixeli roșii adiacenți, și în mod similar pentru albastru și verde. Metode mai complexe care interpolează independent în cadrul fiecărui plan de culoare includ interpolarea bicubică, interpolarea canelură (spline interpolation), și reeșantionarea Lanczos.
Cu toate că aceste metode pot obține rezultate bune în zone omogene ale imaginii, înclină către artefacte de demozaicare severe în regiuni cu margini și detalii când sunt folosite cu MFC-uri de culoare pură. În orice caz, interpolarea liniară poate obține rezultate foarte bune când este combinată cu o MFC spațio-spectrală (pancromatică).
Algoritmi de demozaicare mai sofisticați exploatează corelația spațială și/sau spectrală a pixelilor în cadrul unei imagini color. Corelație spațială este tendința pixelilor de a adopta valori de culoare similare în cadrul unei mici zone omogene a unei imagini. Corelație spectrală este dependența dintre volorile pixelilor unor planuri de culoare diferite într-o regiune mică a imaginii.
Acești algoritmi includ:
S-a arătat recent că super-rezoluția și demozaicarea sunt două fețe ale aceleiași probleme și este rezonabil să fie adresate într-un context unificat. De observat că amândouă aceste probleme adresează chestiunea crenelării. Așadar, în special în cazul reconstrucției video (multi-cadru), o abordare unitară a super-rezoluției și demozaicării furnizează soluția optimă.
Variate produse comerciale implementează metode de estimare proprietare despre care puțin se știe public, și care ar putea să fie sau nu similare cu algoritmi cunoscuți public.
Unele metode ar putea produce rezultate mai bune pentru scenele naturale, iar altele pentru materialul tipărit, de exemplu. Aceasta reflectă problema inerentă în estimarea pixelilor pe care nu-i cunoaștem cu adevărat în mod cert. În mod normal, mai este de asemenea și ubicua balanță a vitezei contra calității estimării.
Atunci când este disponibil accesul la datele de imagine RAW dintr-o cameră digitală, se pot folosi programe de calculator care dispun de o varietate de algoritme de demozaicare în locul limitării la cel încorporat în cameră. Câteva programe de dezvoltare RAW, precum Raw Therapee, oferă utilizatorului opțiunea de a alege care algoritm ar trebui să fie folosit. Cele mai multe programe, totuși, sunt codate pentru a folosi doar o anumită metodă. Diferențele în redarea celui mai fin detaliu (și textură granulară) rezultate din alegerea algoritmului de demozaicare sunt printre principalele diferențe dintre variați dezvoltatori RAW; adesea fotografii vor prefera un program anume din motive estetice legate de acest efect.
Artefactele de culoare cauzate de demozaicare furnizează indicii importante pentru identificarea falsurilor fotografice.