Esimene libcamera väljaanne, kaamera toetamise stack Linuxis

Pärast nelja aastat arendust on loodud projekti libcamera esimene väljaanne (0.0.1), mis pakub tarkvarastakki videokaamerate, fotokaamerate ja TV-tuunerite kasutamiseks Linuxis, Androidis ja ChromeOSis, edasi arendades V4L2 API-d ning asendades seda pika aja jooksul. Kuna API teek on endiselt muutumises ja pole veel lõplikult stabiilne, on projekt jätkuvalt arenenud ilma eraldi väljaannete harudeta pideva arenduse mudelis. Vastuseks jaotuste vajadusele jälgida API muudatusi, mis mõjutavad ühilduvust, ja lihtsustada teegi pakkumist pakettidena on nüüd otsustatud perioodiliselt moodustada väljalaskeid, mis peegeldavad ABI ja API muudatuste ulatust. Projekti kood on kirjutatud C++ ja levitatakse LGPLv2.1 litsentsi alusel.

Projekt areneb Linuxi tuuma multimeedia alamsüsteemide arendajate koostöös mõningate kaameratootjatega, et normaliseerida olukorda Linuxis nutitelefonide ja sisseehitusseadmestiku kaamerate toe osas, mis on seotud patenteeritud draiveritega. Juba olemasolev Linuxi tuuma API V4L2 loodi kunagi traditsiooniliste eraldiseisvate veebikaamerate kasutamiseks ja ei ole hästi kohandatud viimase aja trendiga, kus MCU funktsionaalsus viidakse CPU kanda.

Erinevalt traditsioonilistest kaameratest, kus esmane pilditöötlus toimub kaamera sisse ehitatud spetsialiseeritud protsessoris (MCU), on sisseehitatud seadmetes kulude vähendamiseks need funktsioonid viidud peamise CPU kanda ja nõuavad keerukamaid draivereid, mis sisaldavad mitteavaldatavaid litsentseeritud komponente. Projekti libcamera raames on avatud tarkvara toetajad ja seadmete tootjad püüdnud luua kompromissi, mis rahuldaks avatud tarkvara arendajate vajadusi ja kaitseks samas kaamera tootjate intellektuaalomandi.

Pakutud libcamera teek on täielikult kasutaja ruumis. Ühildumise tagamiseks olemasolevate tarkvarakeskkondade ja rakendustega pakuvad nad API V4L, Gstreamer ja Android Camera HAL ühisosa. Iga kaamera spetsiifilised valmistaja komponentide interaktsioonid riistvaraga on vormistatud moodulitena, mis töötavad eraldi protsessides ja suhtlevad raamatukoguga IPC kaudu. Moodulitel ei ole otsest juurdepääsu seadmele ja nad suhtlevad riistvaraga vahe-API kaudu, mille kaudu saadetavad päringud kontrollitakse, filtreeritakse ja piiratakse ainult nende funktsioonide juurde, mis on vajalikud kaamera juhtimiseks.

Raamatukogu pakub juurdepääsu algoritmidele piltide ja videote töötlemiseks ja kvaliteedi parandamiseks (valge tasakaalu reguleerimine, müra eemaldamine, video stabiliseerimine, automaatne teravustamine, eksponeerimise valik jne), mis võivad olla ühendatud avatud välistes raamatukogudes või valmistaja isolatsioonimoodulitena. API võimaldab selliseid funktsioone nagu olemasolevate välistest ja sisseehitatud kaameratest funktsionaalsuse määramine, seadmete profiilide kasutamine, kaamerate подключение ja lahtiühendamise sündmuste töötlemine, andmete salvestamise haldamine kaameratest individuaalsete kaadritena ja piltide sünkroonimine välklambiga tööga. Samuti on võimalik süsteemis töötada mitme kaameraga eraldi ja korraldada ühe kaameraga samal ajal mitme video voogude salvestamist (näiteks üks madala eraldusvõimega videokonverentsiks ja teine kõrge eraldusvõimega arhiivsalvestamiseks kettale).

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster