Earste release fan libcamera, in stapel foar kamera-stipe op Linux

Nei fjouwer jier fan ûntwikkeling waard de earste release fan it libcamera-projekt (0.0.1) foarme, en biedt in softwarestapel foar wurkjen mei fideokamera's, kamera's en TV-tuners yn Linux, Android en ChromeOS, dy't de ûntwikkeling fan 'e V4L2 API trochset. en sil it úteinlik ferfange. Sûnt de API fan 'e bibleteek noch feroaret en noch net folslein stabilisearre is, is it projekt oant no ta ûntwikkele sûnder fertakking fan yndividuele releases mei in trochgeand ûntwikkelingsmodel. As antwurd op de needsaak foar distribúsjes om API-feroarings by te hâlden dy't de kompatibiliteit beynfloedzje, en om de levering fan bibleteken yn pakketten te ferienfâldigjen, is it beslút no makke om periodyk releases te generearjen dy't de omfang fan ABI- en API-feroarings reflektearje. De projektkoade is skreaun yn C++ en ferspraat ûnder de LGPLv2.1-lisinsje.

It projekt wurdt ûntwikkele troch ûntwikkelders fan multimedia-subsystemen fan 'e Linux-kernel tegearre mei guon kamera-fabrikanten om de situaasje te normalisearjen mei Linux-stipe foar kamera's foar smartphones en ynbêde apparaten dy't bûn binne oan proprietêre bestjoerders. API V4L2, al beskikber yn 'e Linux-kernel, waard op ien kear makke om te wurkjen mei tradisjonele aparte webkamera's en is min oanpast oan' e resinte trend fan it ferpleatsen fan MCU-funksjonaliteit op 'e skouders fan' e CPU.

Oars as tradisjonele kamera's, wêryn primêre ôfbyldingsferwurkingsoperaasjes wurde útfierd op in spesjalisearre prosessor ynboud yn 'e kamera (MCU), yn ynbêde apparaten, om kosten te ferminderjen, wurde dizze funksjes útfierd op' e skouders fan 'e haad CPU en fereaskje in komplekse bestjoerder dy't omfettet net-iepenboarne lisinsje komponinten. As ûnderdiel fan it libcamera-projekt hawwe foarstanners fan iepen boarne software en hardwarefabrikanten besocht in kompromisoplossing te meitsjen dy't oan 'e iene kant foldocht oan' e behoeften fan iepen boarne software-ûntwikkelders, en oan 'e oare kant it beskermjen fan it yntellektuele eigendom fan kamerafabrikanten mooglik makket.

De stapel oanbean troch de libcamera-bibleteek wurdt folslein yn brûkersromte ymplementearre. Om kompatibiliteit te garandearjen mei besteande software-omjouwings en applikaasjes, wurde kompatibiliteitslagen levere foar de V4L API, Gstreamer en Android Camera HAL. Eigen komponinten spesifyk foar elke kamera foar ynteraksje mei apparatuer binne ûntwurpen as modules dy't rinne yn aparte prosessen en ynteraksje mei de bibleteek fia IPC. Modules hawwe gjin direkte tagong ta it apparaat en tagong ta de apparatuer fia in tuskenlizzende API, oanfragen troch hokker wurde kontrolearre, filtere en beheind ta allinich tagong ta de funksjonaliteit dy't nedich is om de kamera te kontrolearjen.

De bibleteek jout ek tagong ta algoritmen foar it ferwurkjen en ferbetterjen fan de kwaliteit fan ôfbyldings en fideo's (oanpassing fan wytbalâns, lûdreduksje, fideostabilisaasje, autofocus, eksposysjeseleksje, ensfh.), dy't kinne wurde ferbûn yn 'e foarm fan iepen eksterne bibleteken as proprietêr isolearre modules. De API jout tagong ta funksjes lykas it bepalen fan de funksjonaliteit fan besteande eksterne en ynboude kamera's, it brûken fan apparaatprofilen, it behanneljen fan kamera-ferbining- en disconnection-eveneminten, it behearen fan kameragegevensopfang op it yndividuele framenivo, en it syngronisearjen fan ôfbyldings mei flitser. It is mooglik om apart te wurkjen mei ferskate kamera's yn it systeem en it tagelyk opnimmen fan ferskate fideostreamen fan ien kamera te organisearjen (bygelyks ien mei lege resolúsje foar fideokonferinsjes, en in oare mei hege resolúsje foar argyfopname op skiif).

Boarne: opennet.ru

Add a comment