4.12. Az ISP-folyamat¶
A képjelfeldolgozó (ISP) az a hardveres folyamat, amely az érzékelő nyers képpontértékeit kész színes képpé alakítja. Az érzékelőn végzett képpontszintű korrekciók ennek a folyamatnak az első szakaszai. Miután ezek lefutnak, a folyamat többi része minden képkockán rögzített sorrendben végzi el a színfeldolgozást és a kimenet formázását.
Az ISP színfeldolgozó és kimeneti szakaszai. A folyamat minden szakaszt végigfuttat a képkocka minden képpontján, mielőtt a következő elindulna.¶
4.12.1. A szakaszok¶
Minden szakasz egy jól meghatározott átalakítást végez sorban. A sorrend számít – a későbbi szakaszok feltételezik, hogy a korábbiak már lefutottak, és néhány szakasz az előző képkocka kimenetéből is vesz bemeneteket.
A statisztikakinyerés régiónkénti átlagfényerőt és csatornánkénti összegeket mér a korrigált Bayer-képkockából. A számok az automatikus expozíció, automatikus erősítés és automatikus fehéregyensúly szabályozóhurkait táplálják, amelyek aztán a következő képkockához frissítik az érzékelő beállításait.
Az automatikus fehéregyensúly-erősítések minden Bayer-képpontot egy színenkénti szorzóval skáláznak – a piros képpontokat egy R-erősítéssel, a zöldeket egy G-erősítéssel, a kékeket egy B-erősítéssel – a jelenet fehér referenciáját a semleges szürke felé tolva, hogy a rögzített színek úgy nézzenek ki, ahogy a szem látta őket. A szorzók az előző képkocka AWB-statisztikáiból származnak.
A debayer-eljárás minden képpontnál rekonstruálja a hiányzó két színcsatornát a Bayer-mozaikból, a képpontonként egycsatornás nyers adatot háromcsatornás RGB-vé alakítva. (Lásd: Debayer-eljárás.) Minden, ami e szakasz után következik, RGB képpontokon fut, nem a Bayer-mozaikon.
A színmátrix-korrekció (CCM) egy 3x3-as mátrixszorzást alkalmaz minden RGB képpontra, amely az érzékelő natív piros-zöld-kék válaszát egy szabványos színtérbe képezi le. Minden érzékelő szűrőinek megvan a maguk spektrális válasza, ami nem pontosan az, amit bármely szabvány elvár; a mátrix egy érzékelőnként kalibrált transzformáció, amely az „érzékelő RGB”-t „szabványos RGB”-vé alakítja.
A gammakorrekció egy nemlineáris görbét alkalmaz minden csatornára, amely a lineáris érzékelőjelet egy észleléshez illesztett kódolássá tömöríti. A szem inkább veszi észre a sötét tónusok közötti különbségeket, mint a világos tónusok közöttieket, így egy olyan kódolás, amely a bitkeretéből többet a sötét végre fordít, adott bitmélységnél több látható részletet rögzít.
A képskálázás az érzékelő natív felbontásáról a kívánt kimeneti felbontásra méretezi át a képkockát. A legtöbb alkalmazás az érzékelő teljes képpontszámánál kevesebbel fut, és a lefelé skálázás csökkenti mind a sávszélességet, mind a memóriaterhelést mindenen, ami ezután következik.
A képkivágás a skálázott képkocka egy alrészletét vonja ki, és eldobja a rajta kívüli képpontokat. Érdeklődési terület rögzítésére, adott képarány eléréséhez vagy az alkalmazásnak nem szükséges szegély elhagyására használják.
A képpontcsomagolás a csatornánkénti belső reprezentációt (jellemzően csatornánként 10 vagy 12 bit) a választott kimeneti formátumra alakítja, és az eredményt a RAM-ba írja.
4.12.2. A szabályozóhurok visszacsatolása¶
Az 1. és 2. szakasz egy több képkockán átívelő szabályozóhurkot alkot. Az N. képkockából kinyert statisztikák megmondják az érzékelőnek, milyen fényes volt a jelenet, és hogyan állt a színegyensúlya abban a képkockában; az automatikus expozíció, automatikus erősítés és automatikus fehéregyensúly szabályozói ezeket a számokat használják az N+1. képkocka új expozíció-, erősítés- és fehéregyensúly-regiszterértékeinek kiválasztásához. Az új értékek a következő képkocka kiolvasásakor lépnek életbe, az új képkocka statisztikái visszatérnek, és a hurok bezárul.
Egy nem változó jelenet esetén a hurok néhány képkockán belül konvergál, és állandó beállításon marad. Egy olyan jelenet esetén, amelynek fényereje vagy színárnyalata változik – például amikor a kamera beltérből egy napsütötte ablakra pásztáz – a hurok több képkockán keresztül követi a változást, és a felhasználó rövid fényerő- vagy színeltolódást lát az új állandósult állapot felé vezető úton.
4.12.3. Hol fut az ISP¶
Két elrendezés gyakori.
Egy érzékelőn lévő ISP az érzékelő chipen belül futtatja a teljes folyamatot, és kész RGB képet ad ki. Az MCU csak begyűjti az eredményt.
Egy érzékelőn kívüli ISP a gazda MCU-ban vagy SoC-ban él. Az érzékelő nyers Bayert ad ki; az MCU szilíciuma (vagy a meghajtókódja) lefuttatja a folyamatot, mielőtt a kész képkockát átadná a felhasználói kódnak.
A felosztás befolyásolja, hogy az érzékelő milyen kimeneti formátumokat tud közvetlenül átadni a felhasználónak. Egy teljes chipen lévő ISP-vel rendelkező érzékelő lehetővé teszi a felhasználó számára, hogy a chip által támogatott bármely kész formátum közül válasszon. Egy ilyen nélküli érzékelő csak Bayert ad ki, és a formátumkonverziók az MCU szilíciumában vagy szoftverében történnek.