4.11. Debayer-eljárás

A nyers Bayer-képkocka képpontonként csak egyetlen színcsatornát hordoz. Ahhoz, hogy ebből normál, háromcsatornás RGB kép legyen, minden képpontnál ki kell tölteni a két hiányzó csatornát a megfelelő színű közeli képpontokból történő interpolálással. Ez az interpoláció a debayer-eljárás (más néven demozaikolás). Néhány algoritmuscsalád uralja a területet.

4.11.1. Szuperpixel

A legolcsóbb megközelítés minden 2x2-es Bayer-csempét – egy piros, egy kék és két zöld cellát – egyetlen kimeneti képponttá von össze:

  • a piros csatorna a piros cella értéke;

  • a kék csatorna a kék cella értéke;

  • a zöld csatorna a két zöld cella átlaga.

Minden 2x2-es bemeneti csempéből egyetlen kimeneti képpont lesz, így a kész kép szélessége és magassága is feleakkora, mint az érzékelőé, a képpontok számának negyedével. A szuperpixel-módszer gyors és mentes az interpolációs műtermékektől, de a felbontásban fizetett ár miatt csak végső megoldásként alkalmazzák – ritkán használják.

4.11.2. Bilineáris

A bilineáris interpoláció a megfelelő színű legközelebbi képpontokat átlagolja, ahelyett hogy másolna vagy összegezne. A pontos átlagolás attól függ, hogy a középső képpont melyik színt rögzíti, mivel a négy eset eltérően osztja el a hiányzó csatornákat a 3x3-as szomszédságban.

Zöld képpont egy piros-zöld sorban. A hiányzó piros értéket a bal és jobb oldali két piros szomszéd átlagolása adja; a hiányzó kéket a fent és lent lévő két kék szomszéd átlaga.

Egy 3 oszlop x 3 sor méretű Bayer-mintázatú szomszédság egy piros-zöld sor zöld képpontja köré centrálva. A középtől balra és jobbra lévő cellák pirosak; a fent és lent lévő cellák kékek; a sarokcellák zöldek. Fehér nyilak mutatnak befelé a két piros és a két kék cellából a középpont felé.

A hiányzó piros a vízszintes piros szomszédokból származik; a hiányzó kék a függőleges kék szomszédokból.

Zöld képpont egy zöld-kék sorban. Ugyanaz az alakzat, piros és kék felcserélve. A hiányzó piros értéket a fent és lent lévő két piros szomszéd átlagolása adja; a hiányzó kéket a bal és jobb oldali két kék szomszéd átlaga.

Egy 3 oszlop x 3 sor méretű Bayer-mintázatú szomszédság egy zöld-kék sor zöld képpontja köré centrálva. A középtől fent és lent lévő cellák pirosak; a bal és jobb oldali cellák kékek; a sarok- cellák zöldek. Fehér nyilak mutatnak befelé a két piros és a két kék cellából a középpont felé.

A hiányzó piros a függőleges piros szomszédokból származik; a hiányzó kék a vízszintes kék szomszédokból.

Piros képpont. A hiányzó zöld értéket a négy fő irányú zöld szomszéd (fent, lent, bal, jobb) átlagolása adja. A hiányzó kéket a négy átlós kék szomszéd átlaga.

Egy 3 oszlop x 3 sor méretű Bayer-mintázatú szomszédság egy piros képpont köré centrálva. A négy fő irányú szomszéd (fent, lent, bal, jobb) zöld; a négy átlós sarokcella kék. Fehér nyilak mutatnak befelé mind a nyolc szomszédból a középpont felé.

A hiányzó zöld a négy fő irányú zöld szomszédból származik; a hiányzó kék a négy átlós kék szomszédból.

Kék képpont. A piros eset tükörképe. A hiányzó zöldet a négy fő irányú zöld szomszéd átlagolja, a hiányzó pirosat pedig a négy átlós piros szomszéd.

Egy 3 oszlop x 3 sor méretű Bayer-mintázatú szomszédság egy kék képpont köré centrálva. A négy fő irányú szomszéd zöld; a négy átlós sarok- cella piros. Fehér nyilak mutatnak befelé mind a nyolc szomszédból a középpont felé.

A hiányzó zöld a négy fő irányú zöld szomszédból származik; a hiányzó piros a négy átlós piros szomszédból.

A bilineáris módszer megőrzi az érzékelő teljes felbontását, és a legtöbb felhasználáshoz elég sima, de éleknél még mindig mutat műtermékeket. Két szín közötti éles átmenet egy adott orientációban keresztezi a képpontrácsot, és az élen keresztüli átlagolás kissé elmosja azt. Ahol a szín- és luminanciaélek nem esnek pontosan egybe, halvány színes szegélyek jelennek meg a kimeneten.

4.11.3. A bilineáris módszeren túl

Számos jobb debayer-algoritmus létezik. Egyesek a bilineáris módszer azonos színű szomszédokból álló kis keresztjénél nagyobb szomszédságot használnak, és gondosabban megválasztott együtthatókkal súlyozzák a mintákat; mások a helyi élek irányát észlelik, és az interpolációt ebbe az irányba torzítják, hogy a képpontrácson átfutó él éles maradjon, ahelyett hogy elmosódna. Mindkét megközelítés csökkenti a bilineáris módszer által hátrahagyott színes szegélyeket és élelmosódást, képpontonként több aritmetikai művelet és több szilícium (vagy az MCU-oldalon több számítás) árán.

Az adott OpenMV Cam-en elérhető debayer-minőség platformfüggő – attól függ, mit nyújt az adott kamerán lévő érzékelő és MCU.

4.11.4. Hol fut a debayer-eljárás

A képjelfeldolgozó (ISP) – akár magán az érzékelő chipen, akár az MCU-oldalon – a legtöbb esetben minden képkockát debayer-eljárásnak vet alá, mielőtt az elhagyná a képalkotó folyamatot. A felhasználói kód kész, háromcsatornás RGB képet kap anélkül, hogy valaha is hozzáérne a nyers mozaikhoz.

Az ISP-nek azt is meg lehet mondani, hogy a nyers Bayer-képkockát változatlanul továbbítsa. A nyers Bayer kevesebb memóriát foglal, mint a debayer-eljáráson átesett kép – képpontonként egy bájt három helyett – ami akkor hasznos, amikor a képkockák tárolása a szűk keresztmetszet, offline feldolgozáshoz történő rögzítéskor, vagy amikor a projekt egyéni debayer-algoritmust kíván szoftveresen alkalmazni.