Libcamera esimene väljalase, pinu kaamera toetamiseks Linuxis

Pärast nelja-aastast arendustööd loodi libcamera projekti esimene väljalase (0.0.1), mis pakub tarkvarapakki videokaamerate, kaamerate ja TV-tuuneritega töötamiseks Linuxis, Androidis ja ChromeOS-is, mis jätkab V4L2 API arendamist. ja asendab selle lõpuks. Kuna raamatukogu API on endiselt muutumas ja pole veel täielikult stabiliseerunud, on projekt seni arenenud ilma üksikuid väljalaseid hargnemata, kasutades pideva arendusmudelit. Vastuseks distributsioonide vajadusele jälgida ühilduvust mõjutavaid API muudatusi ja lihtsustada teekide tarnimist pakettidena, on nüüd tehtud otsus genereerida perioodiliselt väljalaskeid, mis kajastavad ABI ja API muudatuste ulatust. Projekti kood on kirjutatud C++ keeles ja seda levitatakse LGPLv2.1 litsentsi all.

Projekti arendavad Linuxi tuuma multimeediumi alamsüsteemide arendajad koos mõne kaameratootjaga, et normaliseerida olukorda nutitelefonide kaamerate ja manustatud seadmete Linuxi toega, mis on seotud patenteeritud draiveritega. API V4L2, mis on juba saadaval Linuxi tuumas, loodi omal ajal töötama traditsiooniliste eraldi veebikaameratega ja on halvasti kohandatud hiljutise trendiga viia MCU funktsionaalsus CPU õlgadele.

Erinevalt traditsioonilistest kaameratest, kus esmased pilditöötlustoimingud tehakse kaamerasse sisseehitatud spetsialiseeritud protsessoriga (MCU), manusseadmetes teostatakse kulude vähendamiseks need funktsioonid põhiprotsessori õlgadel ja nõuavad keerukat draiverit, mis sisaldab mitteavatud lähtekoodiga litsentsitud komponente. Libcamera projekti raames püüdsid avatud lähtekoodiga tarkvara pooldajad ja riistvaratootjad luua kompromisslahendust, mis ühelt poolt rahuldab avatud lähtekoodiga tarkvaraarendajate vajadusi, teisalt aga võimaldab kaitsta kaameratootjate intellektuaalomandit.

Libcamera teegi pakutav virn on täielikult realiseeritud kasutajaruumis. Olemasolevate tarkvarakeskkondade ja rakendustega ühilduvuse tagamiseks on V4L API, Gstreamer ja Android Camera HAL jaoks ette nähtud ühilduvuskihid. Iga kaamera spetsiifilised komponendid seadmetega suhtlemiseks on loodud moodulitena, mis töötavad eraldi protsessides ja suhtlevad raamatukoguga IPC kaudu. Moodulid ei oma otsest juurdepääsu seadmele ja pääsevad seadmetele ligi vahe-API kaudu, mille kaudu päringuid kontrollitakse, filtreeritakse ja piirdutakse juurdepääsuga ainult kaamera juhtimiseks vajalikele funktsioonidele.

Teek pakub juurdepääsu ka piltide ja videote töötlemise ja kvaliteedi parandamise algoritmidele (valgebalansi reguleerimine, müra vähendamine, video stabiliseerimine, autofookus, särituse valik jne), mida saab ühendada avatud väliste teekide või patenteeritud teekide kujul. isoleeritud moodulid. API võimaldab juurdepääsu sellistele funktsioonidele nagu olemasolevate väliste ja sisseehitatud kaamerate funktsionaalsuse määramine, seadmeprofiilide kasutamine, kaamera ühendamise ja lahtiühendamise sündmuste käsitlemine, kaamera andmete jäädvustamise haldamine üksiku kaadri tasemel ja piltide sünkroonimine välguga. Süsteemis on võimalik töötada eraldi mitme kaameraga ja korraldada mitme videovoo samaaegne jäädvustamine ühest kaamerast (näiteks üks madala eraldusvõimega videokonverentsi pidamiseks ja teine ​​kõrge eraldusvõimega arhiivisalvestuseks kettale).

Allikas: opennet.ru

Lisa kommentaar