Demozaicare

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

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.

Scop[modificare | modificare sursă]

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:

  • Evitarea introducerii de artefacte de culoare false, cum ar fi crenelajele cromatice, fermoarizarea sau efectul de fermoar (după en. zippering) (schimbări nenaturale abrupte ale intensității peste un număr de pixeli învecinați) și franjurarea violet (en. purple fringing);
  • Prezervare maximă a rezoluției imaginii
  • Complexitate computațională scăzută pentru procesarea rapidă sau implementarea eficientă a componentelor fizice în interiorul camerei;
  • Docilitate analizei pentru o reducere a zgomotului precisă.

Matricea filtrelor de culoare[modificare | modificare sursă]

Aranjamentul Bayer al filtrelor de culoare pe matricea de pixeli al unui senzor de imagine. Fiecare celulă doi-pe-doi conţine un filtru de roşu, unul de albastru, şi două de verde.

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.[1]

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.

Ilustrație[modificare | modificare sursă]

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.

Shades framed bayer.png
Eșantioane ale filtrului Bayer
Shades bayer r.png Shades bayer g.png Shades bayer b.png
Roșu Verde Albastru

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:

Shades framed aa.jpg Shades framed dc.jpg
Original Reconstruit

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).

Algoritmi[modificare | modificare sursă]

Interpolare simplă[modificare | modificare sursă]

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ă.[2] În orice caz, interpolarea liniară poate obține rezultate foarte bune când este combinată cu o MFC spațio-spectrală (pancromatică).[3]

Corelația pixelilor în cadrul unei imagini[modificare | modificare sursă]

Algoritmi de demozaicare mai sofisticați exploatează corelația spațială și/sau spectrală a pixelilor în cadrul unei imagini color.[4] 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:

  • Interpolarea cu număr variabil de degradeuri[5] calculează degradeurile din apropierea pixelului de interes și folosește degradeurile mai joase (reprezentând părți ale imaginii mai netede și mai similare) pentru a face o estimare. Este folosit în primele versiuni ale dcraw, și suferă de artefacte de culoare.
  • Gruparea pixelilor[6] folosește prezumpții despre scenarii naturale în realizarea estimărilor. Are mai puține artefacte de culoare pe imaginile naturale decât metoda numărului variabil de degradeuri; a fost introdus în dcraw începând cu versiunea 8.71 ca „grupare pixeli după model„ („Patterned Pixel Grouping”).
  • Interpolarea adaptivă direcționată către omogenitate selectează direcția interpolării astfel încât să maximizeze o metrică a omogenității, minimalizând astfel, în mod normal, artefactele de culoare.[7] A fost implementat în versiuni recente ale dcraw.[8]

Demozaicare/super-rezoluție video[modificare | modificare sursă]

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.[9] 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ă.

Proprietar[modificare | modificare sursă]

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.[necesită citare]

Echilibrare - optimizare[modificare | modificare sursă]

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.

Utilizare în programele de calculator pentru procesarea imaginilor[modificare | modificare sursă]

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.[10]

Vezi și[modificare | modificare sursă]

Referințe[modificare | modificare sursă]

  1. ^ Adrian Davies și Phil Fennessy (2001). Imagine digitală pentru fotografi (Digital imaging for photographers) (ed. A patra). Focal Press. ISBN 0240515900. http://books.google.com/books?vid=ISBN0240515900&id=wsxk03-gceUC&pg=PA30&lpg=PA30&ots=BlxgR6ZXmz&dq=anti-aliasing+lithium-niobate&sig=YUsQZMtxjtq70oOYWmU1K2yfoNY#PPA30,M1 
  2. ^ Lanlan Chang și Yap-Peng Tan. Demozaicare hibridă a matricei de filtre de culoare pentru suprimarea eficientă a artefactelor (Hybrid color filter array demosaicking for effective artifact suppression). pp. 2. http://www3.ntu.edu.sg/home5/CHAN0069/JEI013003.pdf. 
  3. ^ Keigo Hirakawa și Patrick J. Wolfe. Preiectarea matricelor de filtre de culoare spațio-spectrale pentru fidelitate sporită a imaginii (Spatio-Spectral Color Filter Array Design for Enhanced Image Fidelity). http://sisl.seas.harvard.edu/files/pub/HirakawaWolfe2007.pdf. 
  4. ^ Lanlan Chang și Yap-Peng Tan. Demozaicare hibridă a matricei de filtre de culoare pentru suprimarea eficientă a artefactelor (Hybrid color filter array demosaicking for effective artifact suppression). http://www3.ntu.edu.sg/home5/CHAN0069/JEI013003.pdf. 
  5. ^ Ting Chen. „Interpolare folosind un număr variabil de degradeuri bazate pe un prag (Interpolation using a Threshold-based variable number of gradients). http://scien.stanford.edu/class/psych221/projects/99/tingchen/algodep/vargra.html. 
  6. ^ Chuan-kai Lin, Universitatea Statului Portland (2004). „Gruparea pixelilor pentru demozaicarea matricei de filtre de culoare (Pixel Grouping for Color Filter Array Demosaicing). http://www.cs.pdx.edu/~cklin/demosaic/. 
  7. ^ Kiego Hirakawa; Thomas W. Parks (PDF). Algoritmul de demozaicare adaptivă orientat spre omogenitate (Adaptive homogeneity-directed demosaicing algorithm). http://www.accidentalmark.com/research/papers/Hirakawa03MNdemosaic_ICIP.pdf. 
  8. ^ Decodarea imaginilor digitale brute în Linux (Decoding raw digital photos in Linux), Dave Coffin.
  9. ^ Sina Farsiu, Michael Elad, Peyman Milanfar (2006). „Demozaicarea multi-cadru și super-rezoluția imaginilor color (Multi-Frame Demosaicing and Super-Resolution of Color Images)”. Tratative IEEE pe tema procesării imaginilor 15 (1): 141–159. doi:10.1109/TIP.2005.860336. http://www.duke.edu/%7Esf59/TIP_Demos_Final_Color.pdf. 
  10. ^ YiZhen Huang și YangJing Long (2008). „Recunoașterea demozaicării cu aplicații în autentificarea fotografiilor digitale bazată pe un model pătratic de corelație a pixelilor (Demosaicking recognition with applications in digital photo authentication based on a q­ratic pixel correlation model)”. Proceduri. Conferință IEEE pe tema viziunii calculatoarelor și recunoașterii modelelor.: 1–8. http://pages.cs.wisc.edu/~huangyz/cvpr08_Huang.pdf. 

Legături externe[modificare | modificare sursă]