Første utgivelse av libcamera, et rammeverk for støtte av kameraer i Linux.

Etter fire år med utvikling er den første utgaven av prosjektet libcamera (0.0.1) lansert, og tilbyr en programvarestabel for arbeid med videokameraer, fotokameraer og TV-tunere i Linux, Android og ChromeOS, som fortsetter utviklingen av API V4L2 og vil erstatte det over tid. Siden API-et fortsatt er i endring og ikke er fullstendig stabilisert, har prosjektet fortsatt å utvikle seg uten å lage separate utgivelser, ved å bruke en kontinuerlig utviklingsmodell. Som svar på behovet fra distribusjoner for å spore endringer i API-et som påvirker kompatibiliteten, og for å forenkle distribusjonen av biblioteket i pakker, er det nå besluttet å regelmessig lage utgivelser som reflekterer omfanget av endringene i ABI og API. Koden for prosjektet er skrevet i C++ og distribueres under LGPLv2.1-lisensen.

Prosjektet utvikles av utviklere av multimedia subsystemer i Linux-kjernen i samarbeid med enkelte kameraprodusenter, med mål om å standardisere støtten for kameramoduler i Linux for smarttelefoner og innebygde enheter, som er knyttet til proprietære drivere. API V4L2 som allerede eksisterer i Linux-kjernen, ble en gang laget for å fungere med tradisjonelle frakoblede webkameraer og er dårlig tilpasset den nylige trenden med å overføre MCU-funksjoner til CPU-en.

I motsetning til tradisjonelle kameraer, der operasjoner for primær bildebehandling utføres av en spesialisert prosessor (MCU) innebygget i kameraet, blir disse funksjonene i innebygde enheter, for å redusere kostnadene, flyttet til hoved-CPU-en og krever en komplisert driver som inkluderer lukkede lisensierte komponenter. Innenfor rammen av prosjektet libcamera har sponsorer av åpen kildekode og maskinvareprodusenter forsøkt å skape en kompromissløsning som på den ene siden tilfredsstiller behovene til utviklere av åpen kildekode, og på den annen side beskytter produsenters intellektuelle eiendom.

Det foreslåtte libcamera-stacket er helt implementert i brukerrommet. For å sikre kompatibilitet med eksisterende programmiljøer og applikasjoner tilbys lag for kompatibilitet med API V4L, Gstreamer og Android Camera HAL. Kamera-spesifikke proprietære komponenter for maskinvareinteraksjon er utformet som moduler som kjører i separate prosesser og kommuniserer med biblioteket via IPC. Modulene har ikke direkte tilgang til enheten og henvender seg til maskinvaren gjennom et mellomliggende API, hvor forespørslene vurderes, filtreres og begrenses til kun den funksjonaliteten som er nødvendig for kamerahåndtering.

Biblioteket gir også tilgang til algoritmer for behandling og forbedring av bildekvalitet og video (hvitebalansejustering, støyreduksjon, videostabilisering, autofokus, eksponeringsvalg osv.), som kan kobles inn som åpne eksterne biblioteker eller proprietære isolerte moduler. API-et gir tilgang til funksjoner som identifisering av funksjonaliteten til tilgjengelige eksterne og innebygde kameraer, bruk av enhetsprofiler, behandling av kamera-tilkoblings- og frakoblingshendelser, håndtering av datainnsamling fra kameraer på nivået med enkeltbilder og synkronisering av bilder med blitsens arbeid. Det er mulig å jobbe med flere kameraer i systemet separat og organisere samtidig innsamling av flere videostrømmer fra ett kamera (for eksempel én med lav oppløsning for videokonferanse og en annen med høy oppløsning for lagring på disk).

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster