libcamera, biblioteka podrške za kamere za Linux, Android i ChromeOS

libcamera

libcamera je skup kamera otvorenog koda

Nakon četiri godine razvoja, objavljena je prva verzija projekta libcamera (0.0.1), koji nudi softverski paket za rad s kamkorderima, kamerama i TV tunerima na Linuxu, Androidu i ChromeOS-u, koji nastavlja razvoj V4L2 API-ja i na kraju će ga zamijeniti.

Budući da se API knjižnice još uvijek mijenja i nije u potpunosti stabiliziran, do sada je projekt razvijen bez račvanja pojedinačnih verzija korištenjem modela kontinuiranog razvoja.

Kao odgovor na potrebu da distribucije prate izmjene API-ja koje utječu na kompatibilnost i da bi se olakšalo slanje biblioteke u paketima, sada je odlučeno proizvoditi redovita izdanja koja odražavaju opseg do kojeg su se ABI i API-ji promijenili .

O libcameri

Projekt irazvijaju programeri multimedijskog podsustava kernela linuxa zajedno kod nekih proizvođača fotoaparata standardizirati podršku za Linux za kamere pametnih telefona i ugrađene uređaje koji su povezani s vlasničkim upravljačkim programima.

V4L2 API koji je već dostupan u Linux kernelu nekoć je napravljen za rad s tradicionalnim samostalnim web kamerama i ne pristaje dobro uz nedavni trend premještanja funkcionalnosti s MCU na CPU.

Za razliku od tradicionalnih kamera, u kojima se operacije primarne obrade slike provode u procesoru posebne namjene (MCU) ugrađenom u kameru, u ugrađenim uređajima, radi smanjenja troškova, ove su funkcije stavljene na teret glavnog procesora i zahtijevaju sofisticiranu upravljački program koji uključuje licencirane komponente koje se ne mogu otvoriti.

U okviru projekta libcamera, los Zagovornici slobodnog softvera i proizvođači hardvera pokušali su stvoriti kompromisno rješenje koji s jedne strane zadovoljava potrebe programera otvorenog koda, a s druge strane štiti intelektualno vlasništvo proizvođača kamera.

Baterija koja nudi biblioteka libcamera implementiran je u cijelosti u korisničkom prostoru. Kako bi se osigurala kompatibilnost s postojećim aplikacijama i programskim okruženjima, osigurani su slojevi za kompatibilnost s V4L API-jem, Gstreamerom i Android Camera HAL.

Komponente interakcije vlasnički hardver specifičan za kameru su pakirani kao moduli koji se izvode u zasebnim procesima i komunicirati s knjižnicom putem IPC-a. Moduli nemaju izravan pristup uređaju i pristupaju opremi putem srednjeg API-ja, putem kojeg se pregledavaju, filtriraju i prigušuju zahtjevi za pristup funkcionalnosti potrebnoj za upravljanje kamerom.

Knjižnica također omogućuje pristup algoritmima za obradu i poboljšanje kvalitete slika i videa (ispravak ravnoteže bijele boje, uklanjanje šuma, video stabilizacija, autofokus, odabir ekspozicije itd.), koji se mogu priključiti kao otvorene vanjske biblioteke ili vlasnički izolirani moduli.

La API omogućuje pristup funkcijama kao što je određivanje funkcionalnosti postojećih ugrađenih i vanjskih kamera, korištenje profila uređaja, rukovanje događajima spajanja i prekida veze kamere, upravljanje snimanjem podataka kamere na razini pojedinačnog okvira i sinkronizacija slika s radom bljeskalice. Moguće je odvojeno raditi s nekoliko kamera u sustavu i organizirati snimanje nekoliko video streamova s ​​jedne kamere u isto vrijeme (na primjer, jedna niske rezolucije za video konferenciju,

ovo izdanje zakrpe pokreće postupke izdavanja paketa za projekt. Početna izdanja uključivat će povećanje broja verzije zakrpe (0.0.x), kao i odgovarajuće povećanje imena sina.

Konačno, za one koji žele saznati više o tome, trebali bi znati da je kod projekta napisan u C++ i distribuira se pod licencom LGPLv2.1. Kod projekta, kao i upute za sastavljanje biblioteke za rad s njim, mogu se konzultirati U sljedećem linku.