libcamera-ren lehen bertsioa, Linux-en kameraren laguntzarako pila bat

Lau urteko garapenaren ondoren, libcamera proiektuaren lehen bertsioa sortu zen (0.0.1), bideo-kamerekin, kamerarekin eta telebista-sintonizatzaileekin lan egiteko software pila bat eskaintzen duena Linux, Android eta ChromeOS-en, V4L2 APIaren garapenarekin jarraitzen duena. eta azkenean ordezkatuko du. Liburutegiaren APIa oraindik aldatzen ari denez eta oraindik guztiz egonkortu gabe dagoenez, proiektua orain arte garatu da banakako bertsioak adarkatu gabe etengabeko garapen-eredu bat erabiliz. Banaketen beharrari erantzunez bateragarritasuna eragiten duten API-aldaketen jarraipena egiteko eta paketeetan liburutegiak bidaltzea errazteko, orain aldian-aldian ABI eta API aldaketen neurria islatzen duten bertsioak sortzea erabaki da. Proiektuaren kodea C++-n idatzita dago eta LGPLv2.1 lizentziapean banatzen da.

Proiektua Linux nukleoko multimedia azpisistemen garatzaileek kamera fabrikatzaile batzuekin batera garatzen ari dira, Linux-en euskarriarekin egoera normalizatzeko, jabedun kontrolatzaileei lotuta dauden telefonoetarako eta kapsulatutako gailuetarako kamerak. API V4L2, jada Linux nukleoan eskuragarri, garai batean web kamera bereizi tradizionalekin lan egiteko sortu zen eta gaizki egokituta dago MCU funtzionalitatea CPUaren sorbaldara eramateko azken joerara.

Kamera tradizionaletan ez bezala, zeinetan lehen irudiak prozesatzeko eragiketak kameran (MCU) integratutako prozesadore espezializatu batean egiten diren, txertatutako gailuetan, kostua murrizteko, funtzio hauek CPU nagusiaren sorbaldetan egiten dira eta kontrolatzaile konplexu bat behar dute. kode irekikoak ez diren lizentziadun osagaiak biltzen ditu. libcamera proiektuaren baitan, kode irekiko softwarearen bultzatzaileak eta hardware fabrikatzaileak konpromisozko irtenbide bat sortzen saiatu ziren, alde batetik, kode irekiko software garatzaileen beharrak asetzen dituena, eta, bestetik, kamera fabrikatzaileen jabetza intelektuala babesteko aukera ematen duena.

libcamera liburutegiak eskaintzen duen pila erabat inplementatzen da erabiltzailearen espazioan. Lehendik dauden software-ingurune eta aplikazioekin bateragarritasuna ziurtatzeko, bateragarritasun-geruzak eskaintzen dira V4L API, Gstreamer eta Android Kamera HALrako. Ekipoekin elkarreragiteko kamera bakoitzaren osagai propioak prozesu bereizietan exekutatzen diren eta IPC bidez liburutegiarekin elkarreragiten duten modulu gisa diseinatuta daude. Moduluek ez dute gailurako sarbide zuzena eta bitarteko API baten bidez sartzen dira ekipamendua, eskaera horien bidez egiaztatu, iragazi eta kamera kontrolatzeko beharrezkoak diren funtzionaltasunetara soilik sartzera mugatzen dira.

Liburutegiak irudi eta bideoen kalitatea prozesatzeko eta hobetzeko algoritmoetarako sarbidea ere ematen du (zuriaren balantzea doitzea, zarata murriztea, bideoaren egonkortzea, fokua automatikoa, esposizio-hautapena, etab.), kanpoko liburutegi irekietan edo jabedun moduan konektatu daitezkeenak. modulu isolatuak. APIak funtzioetarako sarbidea eskaintzen du, hala nola, lehendik dauden kanpoko eta barneko kameren funtzionaltasuna zehaztea, gailuen profilak erabiltzea, kameraren konexioa eta deskonexioa gertaerak kudeatzea, kameraren datuak fotograma mailan kudeatzea eta irudiak flasharekin sinkronizatzea. Posible da sistemako hainbat kamerarekin bereizita lan egitea eta kamera batetik hainbat bideo-korronte aldi berean harrapatzea antolatzea (adibidez, bat bideokonferentziarako bereizmen baxua duena, eta beste bat bereizmen handikoa diskoan artxibo-grabaketak egiteko).

Iturria: opennet.ru

Gehitu iruzkin berria