Prvo izdanje libcamera, skupa za podršku kamerama na Linuxu

Nakon četiri godine razvoja, formirano je prvo izdanje projekta libcamera (0.0.1) koji nudi softverski skup za rad s video kamerama, kamerama i TV tunerima u 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 još nije u potpunosti stabiliziran, projekt se do sada razvijao bez grananja pojedinačnih izdanja koristeći model kontinuiranog razvoja. Kao odgovor na potrebu da distribucije prate izmjene API-ja koje utječu na kompatibilnost i da pojednostave isporuku biblioteka u paketima, sada je donesena odluka da se povremeno generiraju izdanja koja odražavaju opseg promjena ABI-ja i API-ja. Kôd projekta napisan je u C++ i distribuiran pod licencom LGPLv2.1.

Projekt razvijaju programeri multimedijskih podsustava Linux kernela zajedno s nekim proizvođačima kamera kako bi se normalizirala situacija s Linux podrškom za kamere za pametne telefone i ugrađene uređaje koji su vezani na vlasničke upravljačke programe. API V4L2, koji je već dostupan u jezgri Linuxa, svojedobno je stvoren za rad s tradicionalnim odvojenim web kamerama i slabo je prilagođen nedavnom trendu premještanja MCU funkcionalnosti na ramena CPU-a.

Za razliku od tradicionalnih kamera, u kojima se operacije primarne obrade slike izvode na specijaliziranom procesoru ugrađenom u kameru (MCU), u ugrađenim uređajima, radi smanjenja troškova, ove se funkcije provode na ramenima glavnog CPU-a i zahtijevaju složeni upravljački program koji uključuje licencirane komponente koje nisu otvorenog koda. U sklopu projekta libcamera, pobornici softvera otvorenog koda i proizvođači hardvera pokušali su stvoriti kompromisno rješenje koje, s jedne strane, zadovoljava potrebe programera softvera otvorenog koda, as druge strane omogućuje zaštitu intelektualnog vlasništva proizvođača kamera.

Stog koji nudi biblioteka libcamera u potpunosti je implementiran u korisničkom prostoru. Kako bi se osigurala kompatibilnost s postojećim softverskim okruženjima i aplikacijama, dostupni su slojevi kompatibilnosti za V4L API, Gstreamer i Android Camera HAL. Vlasničke komponente specifične za svaku kameru za interakciju s opremom dizajnirane su kao moduli koji se pokreću u zasebnim procesima i komuniciraju s bibliotekom putem IPC-a. Moduli nemaju izravan pristup uređaju i pristupaju opremi preko posredničkog API-ja, preko kojeg se zahtjevi provjeravaju, filtriraju i ograničavaju samo na pristup funkcionalnosti potrebnoj za upravljanje kamerom.

Knjižnica također omogućuje pristup algoritmima za obradu i poboljšanje kvalitete slika i videa (podešavanje ravnoteže bijele boje, smanjenje šuma, video stabilizacija, autofokus, odabir ekspozicije itd.), koji se mogu povezati u obliku otvorenih vanjskih biblioteka ili vlasničkih izolirani moduli. API pruža pristup značajkama kao što je određivanje funkcionalnosti postojećih vanjskih i ugrađenih 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 bljeskalicom. Moguće je odvojeno raditi s nekoliko kamera u sustavu i organizirati istovremeno snimanje više video streamova s ​​jedne kamere (na primjer, jedna niske rezolucije za video konferencije, a druga visoke rezolucije za arhivsko snimanje na disk).

Izvor: opennet.ru

Dodajte komentar