Libcamera esimene väljaanne, kaameratoe raamatukogu Linuxis

Pärast nelja aasta arendust on välja antud projekti libcamera esimene versioon (0.0.1), mis pakub tarkvarastakki kaameratega, fotokaameratega ja TV-tuuneritega töötamiseks Linuxis, Androidis ja ChromeOS-is, ning jätkab V4L2 API arendamist ning asendab selle aja jooksul. Kuna raamatukogu API on endiselt muutumises ja mitte lõplikult stabiilne, on projekt arenenud ilma eraldiseisvate väljaanneteta, kasutades pideva arenduse mudelit. Vastuseks distributsioonide vajadusele API muudatuste jälgimise ja kokkusobivuse jaoks ning, et lihtsustada raamatukogu pakkimist pakettide kaudu, on nüüd otsustanud perioodiliselt koostada väljaandeid, mis peegeldavad ABI ja API muutumise ulatust. Projekti kood on kirjutatud C++ keeles ja levitatakse LGPLv2.1 litsentsi all.

Projekt areneb Linuxi mitmeosaliste süsteemide arendajate ja mõnede kaamerate tootjate koostööna, et normaliseerida Linuxi toe olukorda nutitelefonide ja sisseehitatud seadmete kaamerate osas, mis on seotud patenteeritud draiveritega. Juba olemasolev Linuxi kerneli API V4L2 loodi kunagi traditsiooniliste eraldiseisvate veebikaamerate kasutamiseks ning ei ole hästi kohandatud viimastel aegadel tekkiva suundumusega MCU funktsionaalsuse üleviimiseks CPU-le.

Erinevalt traditsioonilisest kaamerast, kus pilditöötlus toimub kaamera sisse ehitatud spetsialiseeritud protsessoris (MCU), on sisseehitatud seadmetes, et kulusid vähendada, need funktsioonid suurema CPU kanda ja vajavad keerukamat draiverit, kuhu kuuluvad mitteavatavad litsentseeritud komponendid. Libcamera projekti raames üritasid avatud lähtekoodiga toetajad ja riistvaratootjad luua kompromisslahendust, mis rahuldaks avatud tarkvara arendajate vajadusi ning samal ajal kaitseks kaamerate tootjate intellektuaalomandit.

Libcamera teekond on täielikult rakendatud kasutaja ruumis. Eksisteerivate tarkvarakeskkondade ja rakendustega ühilduvuse tagamiseks pakutakse API V4L, Gstreamer ja Android Camera HAL ühilduvuse kihtide kaudu. Iga kaamera jaoks spetsiifilised kasutajaliidese komponendid on vormistatud moodulitena, mis töötavad eraldi protsessides ja suhtlevad raamatukoguga läbi IPC. Moodulitel ei ole seadmele otsest juurdepääsu ning nad suhtlevad riistvaraga vahendava API kaudu, mille kaudu tehtud päringud kontrollitakse, filtreeritakse ja piiratakse ainult funktsionaalsusele, mis on vajalik kaamera juhtimiseks.

Raamatukogu pakub ka juurdepääsu algoritmidele piltide ja videote kvaliteedi töötlemiseks ja parandamiseks (valge tasakaalu korrigeerimine, mürasummutus, video stabiliseerimine, automaatne teravustamine, särituse valimine jne), mida saab ühendada avatud väliste raamatukogudena või om proprietaarsed isoleeritud moodulitena. API annab juurdepääsu sellistele funktsioonidele nagu olemasolevate välistest ja sisseehitatud kaameratest funktsioonide määramine, seadme profiilide kasutamine, kaamerate ühendamise ja lahtiühendamise sündmuste töötlemine, andmete salvestamise juhtimine kaameratest eraldi kaadrite tasemel ning välklambi töö sünkroniseerimine piltide salvestamisega. Võimalik on eraldi töötada mitme kaameraga süsteemis ja korraldada ühe kaameraga samaaegselt mitme videovoo salvestamist (näiteks üks madala eraldusvõimega videokonverentsiks ja teine kõrge eraldusvõimega arhiivi salvestamiseks kettale).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster