Første udgivelse af libcamera, et stack til kamerastøtte i Linux

Efter fire års udvikling er den første version af libcamera-projektet (0.0.1) blevet lanceret. Dette projekt tilbyder en software-stack til videokameraer, stillbilleder og TV-tunere på Linux, Android og ChromeOS og fortsætter udviklingen af API V4L2, som vil blive erstattet over tid. Da API'et stadig ændrer sig og endnu ikke er endeligt stabiliseret, har projektet indtil nu udviklet sig uden at frigive separate versioner, idet der anvendes en kontinuerlig udviklingsmodel. I respons på distributionsbehov for at spore ændringer i API'et, der påvirker kompatibiliteten, samt for at forenkle leveringen af biblioteket i pakker, er det nu besluttet at udgive versioner periodisk, der afspejler ændringerne i ABI og API. Projektets kode er skrevet i C++ og distribueres under LGPLv2.1-licensen.

Projektet udvikles af udviklere af multimedia-kernelsystemer i Linux i samarbejde med nogle kamerafabrikanter med det formål at normalisere understøttelsen af kamerafunktioner i Linux til smartphones og indlejrede enheder, der er afhængige af proprietære drivere. Det eksisterende API V4L2 i Linux-kernen blev oprindeligt designet til at arbejde med traditionelle adskilte webcam og er dårligt tilpasset den seneste tendens til at overføre funktionaliteten fra MCU til CPU.

I modsætning til traditionelle kameraer, hvor primære billedbehandlingsoperationer udføres af en specialiseret processor (MCU) indbygget i kameraet, overføres disse funktioner i indlejrede enheder til hoved-CPU'en for at reducere omkostningerne, hvilket kræver en mere kompleks driver, der inkluderer lukkede licenserede komponenter. Inden for rammerne af libcamera-projektet har tilhængere af åbne software og hardwareproducenter forsøgt at skabe en kompromisløsning, der både opfylder udviklernes behov for åben kildekode og beskytter kamerafabrikanternes intellektuelle ejendom.

Det foreslåede libcamera-bibliotek er helt implementeret i brugerrummet. For at sikre kompatibilitet med eksisterende softwaremiljøer og applikationer tilbydes der lag til kompatibilitet med API V4L, Gstreamer og Android Camera HAL. Proprietære komponenter til hardwareinteraktion, specifikke for hver kamera, præsenteres som moduler, der kører i separate processer og interagerer med biblioteket via IPC. Modulerne har ikke direkte adgang til enheden og kommunikerer med hardwaren gennem et mellemleds-API, hvor anmodninger kontrolleres, filtreres og begrænses til den funktionalitet, der er nødvendig for at styre kameraet.

Biblioteket tilbyder også adgang til algoritmer til at behandle og forbedre billed- og videokvalitet (f.eks. hvidbalancejustering, støjreduktion, videostabilisering, autofokus, eksponeringsvalg osv.), som kan tilsluttes som åbne eksterne biblioteker eller proprietære isolerede moduler. API'en giver adgang til funktioner såsom identifikation af funktionaliteten af eksisterende eksterne og indbyggede kameraer, brug af enhedsprofiler, behandling af tilslutnings- og frakoblingsbegivenheder for kameraer, styring af datainfangning fra kameraer på frame-niveau samt synkronisering af billeder med blitzoperationer. Det er muligt at arbejde med flere kameraer i systemet og organisere samtidig indfangning af flere videostrømme fra ét kamera (f.eks. én med lav opløsning til videokonferencer og en anden med høj opløsning til arkivoptagelse på disk).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster