Prvé vydanie libcamera, zásobníka pre podporu kamier v systéme Linux

Po štyroch rokoch vývoja vzniklo prvé vydanie projektu libcamera (0.0.1), ktorý ponúka softvérový balík pre prácu s videokamerami, kamerami a TV tunermi v Linuxe, Androide a ChromeOS, ktorý pokračuje vo vývoji V4L2 API. a nakoniec ho nahradí. Keďže API knižnice sa stále mení a ešte nie je úplne stabilizované, projekt sa doteraz vyvíjal bez vetvenia jednotlivých vydaní pomocou modelu kontinuálneho vývoja. V reakcii na potrebu distribúcií sledovať zmeny API, ktoré ovplyvňujú kompatibilitu, a zjednodušiť poskytovanie knižníc v balíkoch, bolo teraz prijaté rozhodnutie pravidelne generovať vydania odrážajúce rozsah zmien ABI a API. Kód projektu je napísaný v C++ a distribuovaný pod licenciou LGPLv2.1.

Projekt vyvíjajú vývojári multimediálnych subsystémov linuxového jadra spolu s niektorými výrobcami fotoaparátov s cieľom normalizovať situáciu s podporou Linuxu pre fotoaparáty pre smartfóny a vstavané zariadenia, ktoré sú viazané na proprietárne ovládače. API V4L2, ktoré je už dostupné v linuxovom jadre, bolo svojho času vytvorené na prácu s tradičnými samostatnými webovými kamerami a je nedostatočne prispôsobené nedávnemu trendu presúvania funkčnosti MCU na plecia CPU.

Na rozdiel od tradičných kamier, v ktorých sa primárne operácie spracovania obrazu vykonávajú na špecializovanom procesore zabudovanom vo fotoaparáte (MCU), vo vstavaných zariadeniach, aby sa znížili náklady, sa tieto funkcie vykonávajú na pleciach hlavného CPU a vyžadujú si komplexný ovládač, ktorý obsahuje licencované komponenty, ktoré nie sú open source. V rámci projektu libcamera sa zástancovia softvéru s otvoreným zdrojovým kódom a výrobcovia hardvéru pokúsili vytvoriť kompromisné riešenie, ktoré na jednej strane uspokojuje potreby vývojárov softvéru s otvoreným zdrojovým kódom a na druhej strane umožňuje chrániť duševné vlastníctvo výrobcov kamier.

Zásobník ponúkaný knižnicou libcamera je plne implementovaný v užívateľskom priestore. Na zabezpečenie kompatibility s existujúcimi softvérovými prostrediami a aplikáciami sú k dispozícii vrstvy kompatibility pre V4L API, Gstreamer a Android Camera HAL. Proprietárne komponenty špecifické pre každú kameru na interakciu so zariadením sú navrhnuté ako moduly, ktoré bežia v samostatných procesoch a interagujú s knižnicou cez IPC. Moduly nemajú priamy prístup k zariadeniu a pristupujú k zariadeniu cez sprostredkujúce API, prostredníctvom ktorého sú požiadavky kontrolované, filtrované a obmedzené len na prístup k funkciám potrebným na ovládanie kamery.

Knižnica tiež poskytuje prístup k algoritmom na spracovanie a zlepšenie kvality obrázkov a videí (úprava vyváženia bielej, redukcia šumu, stabilizácia videa, automatické zaostrovanie, výber expozície atď.), ktoré je možné pripojiť vo forme otvorených externých knižníc alebo proprietárnych izolované moduly. Rozhranie API poskytuje prístup k funkciám, ako je určovanie funkčnosti existujúcich externých a vstavaných kamier, používanie profilov zariadení, spracovanie udalostí pripojenia a odpojenia kamery, správa snímania údajov kamery na úrovni jednotlivých snímok a synchronizácia snímok s bleskom. Je možné pracovať oddelene s viacerými kamerami v systéme a organizovať súčasné snímanie niekoľkých video streamov z jednej kamery (napríklad jedna s nízkym rozlíšením pre videokonferencie a druhá s vysokým rozlíšením pre archívny záznam na disk).

Zdroj: opennet.ru

Pridať komentár