4.11. Debayering

Surový Bayerův snímek nese pouze jeden barevný kanál na pixel. Jeho převod na běžný tříkanálový RGB obraz znamená doplnit u každého pixelu dva chybějící kanály interpolací ze sousedních pixelů správné barvy. Této interpolaci se říká debayering (také demosaicing). Dominuje jí několik rodin algoritmů.

4.11.1. Super-pixel

Nejlevnější přístup sloučí každou dlaždici Bayerova vzoru 2x2 – jednu červenou buňku, jednu modrou buňku a dvě zelené buňky – do jediného výstupního pixelu:

  • červený kanál je hodnota červené buňky;

  • modrý kanál je hodnota modré buňky;

  • zelený kanál je průměr obou zelených buněk.

Z každé vstupní dlaždice 2x2 vznikne jeden výstupní pixel, takže výsledný obraz má poloviční šířku a poloviční výšku oproti senzoru a čtvrtinový počet pixelů. Super-pixel je rychlý a bez interpolačních artefaktů, ale ztráta rozlišení z něj činí poslední možnost – používá se jen zřídka.

4.11.2. Bilineární

Bilineární interpolace průměruje nejbližší pixely správné barvy, místo aby je kopírovala nebo shrnovala. Přesné průměrování závisí na tom, kterou barvu zaznamenává středový pixel, protože čtyři případy rozmisťují chybějící kanály v okolí 3x3 různě.

Zelený pixel v červeno-zeleném řádku. Chybějící červená hodnota průměruje dva červené sousedy vlevo a vpravo; chybějící modrá průměruje dva modré sousedy nahoře a dole.

Okolí Bayerova vzoru o 3 sloupcích a 3 řádcích se středem v zeleném pixelu v červeno-zeleném řádku. Buňky vlevo a vpravo od středu jsou červené; buňky nad ním a pod ním jsou modré; rohové buňky jsou zelené. Bílé šipky míří dovnitř od dvou červených buněk a dvou modrých buněk do středu.

Chybějící červená pochází z vodorovných červených sousedů; chybějící modrá ze svislých modrých sousedů.

Zelený pixel v zeleno-modrém řádku. Stejný tvar s prohozenou červenou a modrou. Chybějící červená hodnota průměruje dva červené sousedy nahoře a dole; chybějící modrá průměruje dva modré sousedy vlevo a vpravo.

Okolí Bayerova vzoru o 3 sloupcích a 3 řádcích se středem v zeleném pixelu v zeleno-modrém řádku. Buňky nad středem a pod ním jsou červené; buňky vlevo a vpravo jsou modré; rohové buňky jsou zelené. Bílé šipky míří dovnitř od dvou červených buněk a dvou modrých buněk do středu.

Chybějící červená pochází ze svislých červených sousedů; chybějící modrá z vodorovných modrých sousedů.

Červený pixel. Chybějící zelená hodnota průměruje čtyři přímé zelené sousedy (nahoře, dole, vlevo, vpravo). Chybějící modrá průměruje čtyři úhlopříčné modré sousedy.

Okolí Bayerova vzoru o 3 sloupcích a 3 řádcích se středem v červeném pixelu. Čtyři přímí sousedé (nahoře, dole, vlevo, vpravo) jsou zelení; čtyři úhlopříčné rohové buňky jsou modré. Bílé šipky míří dovnitř od všech osmi sousedů do středu.

Chybějící zelená pochází ze čtyř přímých zelených sousedů; chybějící modrá ze čtyř úhlopříčných modrých sousedů.

Modrý pixel. Zrcadlo červeného případu. Chybějící zelená průměruje čtyři přímé zelené sousedy a chybějící červená průměruje čtyři úhlopříčné červené sousedy.

Okolí Bayerova vzoru o 3 sloupcích a 3 řádcích se středem v modrém pixelu. Čtyři přímí sousedé jsou zelení; čtyři úhlopříčné rohové buňky jsou červené. Bílé šipky míří dovnitř od všech osmi sousedů do středu.

Chybějící zelená pochází ze čtyř přímých zelených sousedů; chybějící červená ze čtyř úhlopříčných červených sousedů.

Bilineární metoda zachovává plné rozlišení senzoru a je dostatečně hladká pro většinu použití, ale stále vykazuje artefakty na hranách. Ostrý přechod mezi dvěma barvami protíná mřížku pixelů v určité orientaci a průměrování přes hranu ji mírně změkčí. Tam, kde se barevné a jasové hrany přesně nepřekrývají, se ve výstupu objevují slabé barevné lemy.

4.11.3. Za hranicí bilineární metody

Existuje řada lepších debayerovacích algoritmů. Některé používají větší okolí než malý kříž stejnobarevných sousedů u bilineární metody a váží vzorky pečlivěji volenými koeficienty; jiné detekují směr lokálních hran a zkreslují interpolaci podél tohoto směru, takže hrana procházející mřížkou pixelů zůstane ostrá místo změkčení. Oba přístupy snižují barevné lemy a změkčení hran, které bilineární metoda zanechává, za cenu více aritmetiky na pixel a více křemíku (nebo více výpočtů na straně MCU).

Kvalita debayeringu dostupná na dané OpenMV Cam je specifická pro platformu – závisí na tom, co poskytuje senzor a MCU dané kamery.

4.11.4. Kde debayering probíhá

Procesor obrazového signálu (ISP) – buď přímo na čipu senzoru, nebo na straně MCU – ve většině případů provede debayering každého snímku, než snímek opustí zobrazovací řetězec. Uživatelský kód obdrží hotový tříkanálový RGB obraz, aniž by se kdy dotkl surové mozaiky.

ISP lze také instruovat, aby surový Bayerův snímek propustil beze změny. Surový Bayer zabírá méně paměti než debayerovaný obraz – jeden bajt na pixel oproti třem – což jej činí užitečným, když je úzkým hrdlem ukládání snímků, při zachytávání pro offline zpracování nebo když projekt chce použít vlastní debayerovací algoritmus v softwaru.