4.11. Debayering

Sirova Bayer sličica nosi samo jedan kanal boje po pikselu. Pretvaranje u uobičajenu trokanalnu RGB sliku znači popunjavanje dvaju nedostajućih kanala na svakom pikselu interpolacijom iz obližnjih piksela odgovarajuće boje. Ta interpolacija naziva se debayering (poznato i kao demozaikiranje). Prevladava nekoliko obitelji algoritama.

4.11.1. Super-piksel

Najjeftiniji pristup sažima svaku 2x2 Bayer pločicu – jednu crvenu ćeliju, jednu plavu ćeliju i dvije zelene ćelije – u jedan izlazni piksel:

  • crveni kanal je vrijednost crvene ćelije;

  • plavi kanal je vrijednost plave ćelije;

  • zeleni kanal je prosjek dviju zelenih ćelija.

Svaka 2x2 ulazna pločica postaje jedan izlazni piksel, pa je gotova slika upola manje širine i upola manje visine od senzora, s četvrtinom broja piksela. Super-piksel je brz i bez interpolacijskih artefakata, no cijena u razlučivosti čini ga krajnjim rješenjem – rijetko se koristi.

4.11.2. Bilinearni

Bilinearna interpolacija uprosječuje najbliže piksele odgovarajuće boje umjesto da ih kopira ili sažima. Točno uprosječivanje ovisi o tome koju boju bilježi središnji piksel, jer četiri slučaja raspoređuju nedostajuće kanale po 3x3 susjedstvu na različite načine.

Zeleni piksel u crveno-zelenom retku. Nedostajuća crvena vrijednost uprosječuje dva crvena susjeda lijevo i desno; nedostajuća plava uprosječuje dva plava susjeda iznad i ispod.

Susjedstvo Bayer uzorka veličine 3 stupca puta 3 retka usredotočeno na zeleni piksel u crveno-zelenom retku. Ćelije lijevo i desno od središta su crvene; ćelije iznad i ispod su plave; kutne ćelije su zelene. Bijele strelice pokazuju prema unutra iz dviju crvenih ćelija i dviju plavih ćelija u središte.

Nedostajuća crvena dolazi od vodoravnih crvenih susjeda; nedostajuća plava od okomitih plavih susjeda.

Zeleni piksel u zeleno-plavom retku. Isti oblik s zamijenjenom crvenom i plavom. Nedostajuća crvena vrijednost uprosječuje dva crvena susjeda iznad i ispod; nedostajuća plava uprosječuje dva plava susjeda lijevo i desno.

Susjedstvo Bayer uzorka veličine 3 stupca puta 3 retka usredotočeno na zeleni piksel u zeleno-plavom retku. Ćelije iznad i ispod središta su crvene;  ćelije lijevo i desno su plave; kutne ćelije su zelene. Bijele strelice pokazuju prema unutra iz dviju crvenih ćelija i dviju plavih ćelija u središte.

Nedostajuća crvena dolazi od okomitih crvenih susjeda; nedostajuća plava od vodoravnih plavih susjeda.

Crveni piksel. Nedostajuća zelena vrijednost uprosječuje četiri glavna zelena susjeda (gore, dolje, lijevo, desno). Nedostajuća plava uprosječuje četiri dijagonalna plava susjeda.

Susjedstvo Bayer uzorka veličine 3 stupca puta 3 retka usredotočeno na crveni piksel. Četiri glavna susjeda (gore, dolje, lijevo, desno) su zelena; četiri dijagonalne kutne ćelije su plave. Bijele strelice pokazuju prema unutra od svih osam susjeda u središte.

Nedostajuća zelena dolazi od četiri glavna zelena susjeda; nedostajuća plava od četiri dijagonalna plava susjeda.

Plavi piksel. Zrcalna slika crvenog slučaja. Nedostajuća zelena uprosječuje četiri glavna zelena susjeda, a nedostajuća crvena uprosječuje četiri dijagonalna crvena susjeda.

Susjedstvo Bayer uzorka veličine 3 stupca puta 3 retka usredotočeno na plavi piksel. Četiri glavna susjeda su zelena; četiri dijagonalne kutne ćelije su crvene. Bijele strelice pokazuju prema unutra od svih osam susjeda u središte.

Nedostajuća zelena dolazi od četiri glavna zelena susjeda; nedostajuća crvena od četiri dijagonalna crvena susjeda.

Bilinearni pristup zadržava punu razlučivost senzora i dovoljno je gladak za većinu primjena, no i dalje pokazuje artefakte na rubovima. Oštar prijelaz između dviju boja prelazi mrežu piksela u određenoj orijentaciji, a uprosječivanje preko ruba blago ga omekšava. Tamo gdje se rubovi boje i svjetline ne poklapaju točno, u izlazu se pojavljuju slabi obojeni obrubi.

4.11.3. Iznad bilinearnog

Postoji niz boljih debayer algoritama. Neki koriste veća susjedstva od bilinearnog malog križa istobojnih susjeda i odvaguju uzorke pažljivije odabranim koeficijentima; drugi otkrivaju smjer lokalnih rubova i pristrano usmjeravaju interpolaciju duž tog smjera tako da rub koji prolazi kroz mrežu piksela ostaje oštar umjesto da se omekša. Oba pristupa smanjuju obojene obrube i omekšavanje rubova koje bilinearni ostavlja za sobom, po cijenu više aritmetike po pikselu i više silicija (ili više računanja na strani MCU-a).

Kvaliteta debayeringa dostupna na pojedinoj OpenMV Cam kameri specifična je za platformu – ovisi o tome što senzor i MCU na toj kameri pružaju.

4.11.4. Gdje se debayering izvodi

Procesor signala slike (ISP) – na samom čipu senzora ili na strani MCU-a – u većini slučajeva debayera svaku sličicu prije nego što napusti slikovni cjevovod. Korisnički kod prima gotovu trokanalnu RGB sliku, a da nikada ne dodirne sirovi mozaik.

ISP-u se također može naložiti da propusti sirovu Bayer sličicu nepromijenjenu. Sirovi Bayer zauzima manje memorije od debayerane slike – jedan bajt po pikselu naspram tri – što ga čini korisnim kada je pohrana sličica usko grlo, pri snimanju za izvanmrežnu obradu ili kada projekt želi primijeniti prilagođeni debayer algoritam u softveru.