Prva izdaja libcamera, sklada za podporo kameri v sistemu Linux

Po štirih letih razvoja je nastala prva izdaja projekta libcamera (0.0.1), ki ponuja programski sklad za delo z videokamerami, kamerami in TV sprejemniki v sistemih Linux, Android in ChromeOS, ki nadaljuje razvoj API-ja V4L2. in ga bo sčasoma zamenjal. Ker se API knjižnice še vedno spreminja in še ni popolnoma stabiliziran, se je projekt doslej razvijal brez razvejanja posameznih izdaj z uporabo modela stalnega razvoja. Kot odgovor na potrebo po distribucijah, da sledijo spremembam API-ja, ki vplivajo na združljivost, in da poenostavijo dostavo knjižnic v paketih, je bila zdaj sprejeta odločitev, da se občasno ustvarjajo izdaje, ki odražajo obseg sprememb ABI in API-ja. Projektna koda je napisana v C++ in se distribuira pod licenco LGPLv2.1.

Projekt razvijajo razvijalci večpredstavnostnih podsistemov jedra Linux skupaj z nekaterimi proizvajalci kamer, da bi normalizirali stanje s podporo Linuxu za kamere za pametne telefone in vgrajene naprave, ki so vezane na lastniške gonilnike. API V4L2, ki je že na voljo v jedru Linuxa, je bil nekoč ustvarjen za delo s tradicionalnimi ločenimi spletnimi kamerami in je slabo prilagojen nedavnemu trendu prenosa funkcionalnosti MCU na ramena CPE.

Za razliko od tradicionalnih kamer, pri katerih se operacije primarne obdelave slik izvajajo na specializiranem procesorju, vgrajenem v kamero (MCU), se v vgrajenih napravah zaradi znižanja stroškov te funkcije izvajajo na ramenih glavne CPE in zahtevajo zapleten gonilnik, ki vključuje neodprtokodne licenčne komponente. V okviru projekta libcamera so zagovorniki odprtokodne programske opreme in proizvajalci strojne opreme poskušali ustvariti kompromisno rešitev, ki po eni strani zadovoljuje potrebe razvijalcev odprtokodne programske opreme, po drugi strani pa omogoča zaščito intelektualne lastnine proizvajalcev kamer.

Sklad, ki ga ponuja knjižnica libcamera, je v celoti implementiran v uporabniškem prostoru. Da bi zagotovili združljivost z obstoječimi programskimi okolji in aplikacijami, so na voljo plasti združljivosti za V4L API, Gstreamer in Android Camera HAL. Lastniške komponente, specifične za vsako kamero za interakcijo z opremo, so zasnovane kot moduli, ki tečejo v ločenih procesih in komunicirajo s knjižnico prek IPC. Moduli nimajo neposrednega dostopa do naprave in dostopajo do opreme prek vmesnega API-ja, prek katerega se zahteve preverjajo, filtrirajo in omejujejo samo na dostop do funkcionalnosti, potrebne za nadzor kamere.

Knjižnica omogoča tudi dostop do algoritmov za obdelavo in izboljšanje kakovosti slik in videoposnetkov (nastavitev beline, zmanjšanje šuma, stabilizacija videa, samodejno ostrenje, izbira osvetlitve itd.), ki jih lahko povežete v obliki odprtih zunanjih knjižnic ali lastniških. izolirani moduli. API omogoča dostop do funkcij, kot je določanje funkcionalnosti obstoječih zunanjih in vgrajenih kamer, uporaba profilov naprav, obravnavanje dogodkov povezave in prekinitve povezave s kamero, upravljanje zajemanja podatkov kamere na ravni posameznega okvirja in sinhronizacija slik z bliskavico. Možno je ločeno delo z več kamerami v sistemu in organiziranje hkratnega zajema več video tokov iz ene kamere (na primer ena z nizko ločljivostjo za videokonference in druga z visoko ločljivostjo za arhivsko snemanje na disk).

Vir: opennet.ru

Dodaj komentar