libcamera, kameros palaikymo biblioteka, skirta Linux, Android ir ChromeOS

libkamera

„libcamera“ yra atvirojo kodo kamerų rinkinys

Po ketverių metų plėtros buvo išleista pirmoji libcamera projekto versija (0.0.1), kuri siūlo programinės įrangos rinkinį, skirtą darbui su vaizdo kameromis, fotoaparatais ir TV imtuvais Linux, Android ir ChromeOS, kuris tęsia V4L2 API plėtrą ir galiausiai ją pakeis.

Kadangi bibliotekos API vis dar keičiasi ir nėra visiškai stabilizuota, projektas iki šiol buvo kuriamas be atskirų versijų, naudojant nuolatinio tobulinimo modelį.

Atsižvelgiant į poreikį platintojams sekti API pakeitimus, turinčius įtakos suderinamumui, ir palengvinti bibliotekos siuntimą paketais, dabar buvo nuspręsta išleisti reguliarius leidimus, atspindinčius, kiek pasikeitė ABI ir API. .

Apie libcamera

Projektas iryra kuriama branduolio multimedijos posistemių kūrėjų Linux kartu su kai kuriais fotoaparatų gamintojais standartizuoti Linux palaikymą išmaniųjų telefonų kameroms ir įterptiesiems įrenginiams, susietiems su patentuotomis tvarkyklėmis.

V4L2 API, kuri jau yra Linux branduolyje kažkada buvo sukurta dirbti su tradicinėmis atskiromis interneto kameromis ir nelabai atitinka naujausią tendenciją perkelti funkcijas iš MCU į centrinį procesorių.

Skirtingai nuo tradicinių fotoaparatų, kuriuose pirminės vaizdo apdorojimo operacijos atliekamos specialios paskirties procesoriuje (MCU), įmontuotame kameroje, integruotuose įrenginiuose, siekiant sumažinti išlaidas, šios funkcijos guli ant pagrindinio procesoriaus pečių ir reikalauja sudėtingos tvarkyklės. kuriame yra licencijuotų komponentų, kurių negalima atidaryti.

Vykdant libcamera projektą, The Nemokamos programinės įrangos šalininkai ir techninės įrangos gamintojai bandė sukurti kompromisinį sprendimą kuri, viena vertus, atitinka atvirojo kodo kūrėjų poreikius ir, kita vertus, leidžia apsaugoti fotoaparatų gamintojų intelektinę nuosavybę.

Akumuliatorius, kuris siūlo libcamera biblioteka yra visiškai įdiegtas vartotojo erdvėje. Siekiant užtikrinti suderinamumą su esamomis programavimo aplinkomis ir programomis, yra numatyti V4L API, Gstreamer ir Android Camera HAL palaikymo sluoksniai.

Sąveikos komponentai patentuota kamerai skirta aparatinė įranga yra supakuoti kaip moduliai, kurie veikia atskirais procesais ir bendrauti su biblioteka per IPC. Moduliai neturi tiesioginės prieigos prie įrenginio ir prieiga prie įrangos per tarpinę API, per kurią peržiūrimi, filtruojami ir stabdomi prašymai pasiekti kamerai valdyti reikalingas funkcijas.

Biblioteka taip pat suteikia prieigą prie vaizdų ir vaizdo įrašų apdorojimo ir kokybės gerinimo algoritmų (baltos spalvos balanso korekcija, triukšmo šalinimas, vaizdo stabilizavimas, automatinis fokusavimas, ekspozicijos pasirinkimas ir kt.), kurias galima prijungti kaip atviras išorines bibliotekas arba patentuotus izoliuotus modulius.

La API suteikia prieigą prie funkcijų pvz., esamų įmontuotų ir išorinių kamerų funkcionalumo nustatymas, įrenginių profilių naudojimas, kameros prijungimo ir atjungimo įvykių tvarkymas, kameros duomenų fiksavimo atskirų kadrų lygiu valdymas ir vaizdų sinchronizavimas su blykstės veikimu. Galima atskirai dirbti su keliomis kameromis sistemoje ir organizuoti fiksavimą kelių vaizdo srautų iš vienos kameros vienu metu (pavyzdžiui, mažos raiškos vaizdo konferencijai,

tai pataisos išleidimas inicijuoja išleidimo procedūras projekto paketo. Pradiniuose leidimuose bus padidintas pataisos versijos numeris (0.0.x), taip pat atitinkamai padidintas sūnaus vardas.

Galiausiai, norintys sužinoti daugiau apie tai, turėtų žinoti, kad projekto kodas parašytas C++ kalba ir platinamas pagal LGPLv2.1 licenciją. Galima susipažinti su projekto kodu, taip pat su instrukcijomis, kaip sudaryti biblioteką darbui su juo Šioje nuorodoje.