4.12. ISP cjevovod

Procesor signala slike (ISP) hardverski je cjevovod koji sirove vrijednosti piksela iz senzora pretvara u gotovu sliku u boji. Korekcije na razini piksela na samom senzoru prve su faze tog cjevovoda. Nakon što se one izvedu, ostatak cjevovoda obavlja obradu boje i oblikovanje izlaza utvrđenim redoslijedom na svakoj sličici.

Okomiti dijagram cjevovoda s osam označenih kutija, odozgo prema dolje: izvlačenje statistike, automatska ravnoteža bijele boje, debayering, korekcija matricom boje, gama korekcija, skaliranje slike, izrezivanje slike i pakiranje piksela. Strelica na vrhu označena je s "korigirani Bayer pikseli", a strelica na dnu označena je s "gotova sličica".

Faze ISP-a za obradu boje i izlaz. Cjevovod izvodi svaku fazu nad svakim pikselom u sličici prije nego što sljedeća započne.

4.12.1. Faze

Svaka faza redom primjenjuje jednu dobro definiranu transformaciju. Redoslijed je važan – kasnije faze pretpostavljaju da su se ranije već izvele, a nekoliko faza uzima ulaze i iz izlaza prethodne sličice.

  1. Izvlačenje statistike mjeri prosječnu svjetlinu po regiji i sume po kanalu iz korigirane Bayer sličice. Ti brojevi napajaju upravljačke petlje automatske ekspozicije, automatskog pojačanja i automatske ravnoteže bijele boje, koje zatim ažuriraju postavke senzora za sljedeću sličicu.

  2. Pojačanja automatske ravnoteže bijele boje skaliraju svaki Bayer piksel množiteljem po boji – crvene piksele R pojačanjem, zelene piksele G pojačanjem, plave piksele B pojačanjem – gurajući referencu bijele scene prema neutralnoj sivoj kako bi zabilježene boje izgledale onako kako ih je oko vidjelo. Množitelji dolaze iz AWB statistike prethodne sličice.

  3. Debayering rekonstruira nedostajuća dva kanala boje na svakom pikselu iz Bayer mozaika, pretvarajući sirove podatke s jednim kanalom po pikselu u trokanalni RGB. (Vidi Debayering.) Sve nakon ove faze izvodi se na RGB pikselima umjesto na Bayer mozaiku.

  4. Korekcija matricom boje (CCM) primjenjuje množenje 3x3 matricom na svaki RGB piksel koje preslikava prirodni odziv crveno-zeleno-plavo senzora u standardni prostor boja. Filtri svakog senzora imaju vlastiti spektralni odziv, koji nije točno ono što bilo koji standard očekuje; matrica je kalibrirana transformacija za svaki senzor koja pretvara „senzorski RGB” u „standardni RGB”.

  5. Gama korekcija primjenjuje nelinearnu krivulju na svaki kanal koja komprimira linearni signal senzora u kodiranje usklađeno s percepcijom. Oko primjećuje razlike između tamnih tonova više nego razlike između svijetlih tonova, pa kodiranje koje troši veći dio svoje bitne kvote na tamni kraj hvata više vidljivih detalja pri danoj dubini bita.

  6. Skaliranje slike mijenja veličinu sličice iz prirodne razlučivosti senzora na ciljanu izlaznu razlučivost. Većina aplikacija radi s manje od punog broja piksela senzora, a smanjivanje skale smanjuje i propusnost i memorijski pritisak na sve što slijedi.

  7. Izrezivanje slike izdvaja podpravokutnik skalirane sličice i odbacuje piksele izvan njega. Koristi se za snimanje područja interesa, usklađivanje s određenim omjerom stranica ili odbacivanje obruba koji aplikaciji nije potreban.

  8. Pakiranje piksela pretvara internu reprezentaciju po kanalu (obično 10 ili 12 bita po kanalu) u odabrani izlazni format i upisuje rezultat u RAM.

4.12.2. Povratna sprega upravljačke petlje

Faze 1 i 2 tvore upravljačku petlju koja se proteže kroz više sličica. Statistika izvučena iz sličice N govori senzoru koliko je scena bila svijetla i kakva je bila njezina ravnoteža boje te sličice; upravljači automatske ekspozicije, automatskog pojačanja i automatske ravnoteže bijele boje koriste te brojeve za odabir novih vrijednosti registara ekspozicije, pojačanja i ravnoteže bijele za sličicu N+1. Nove vrijednosti stupaju na snagu pri očitavanju sljedeće sličice, statistika nove sličice vraća se natrag i petlja se zatvara.

Za scenu koja se ne mijenja, petlja konvergira unutar nekoliko sličica i ostaje na konstantnoj postavci. Za scenu čija se svjetlina ili nijansa boje mijenja – na primjer, kamera koja se zakreće iz unutrašnjosti prema osunčanom prozoru – petlja prati promjenu kroz nekoliko sličica, a korisnik vidi kratko zanošenje svjetline ili boje na putu do novog ustaljenog stanja.

4.12.3. Gdje se ISP izvodi

Uobičajene su dvije izvedbe.

  • ISP na senzoru izvodi cijeli cjevovod unutar čipa senzora i izlazi gotovu RGB sliku. MCU samo prikuplja rezultat.

  • ISP izvan senzora nalazi se u glavnom MCU-u ili SoC-u. Senzor izlazi sirovi Bayer; silicij MCU-a (ili njegov upravljački kod) izvodi cjevovod prije predaje gotove sličice korisničkom kodu.

Podjela utječe na to koje izlazne formate senzor može izravno predati korisniku. Senzor s punim ISP-om na čipu omogućuje korisniku da odabere bilo koji gotov format koji čip podržava. Senzor bez njega izlazi samo Bayer, a pretvorbe formata događaju se u siliciju ili softveru MCU-a.