Toleo la kwanza la libcamera, rundo la usaidizi wa kamera kwenye Linux

Baada ya miaka minne ya maendeleo, toleo la kwanza la mradi wa libcamera (0.0.1) liliundwa, likitoa rundo la programu ya kufanya kazi na kamera za video, kamera na vichungi vya TV katika Linux, Android na ChromeOS, ambayo inaendelea ukuzaji wa V4L2 API. na hatimaye itachukua nafasi yake. Kwa kuwa API ya maktaba bado inabadilika na bado haijaimarishwa kikamilifu, mradi huo hadi sasa umeendelezwa bila kuweka matawi ya matoleo ya mtu binafsi kwa kutumia mtindo wa maendeleo endelevu. Kwa kujibu hitaji la usambazaji kufuatilia mabadiliko ya API ambayo huathiri uoanifu, na kurahisisha uwasilishaji wa maktaba katika vifurushi, uamuzi sasa umefanywa wa kutoa matoleo mara kwa mara yanayoakisi kiwango cha mabadiliko ya ABI na API. Msimbo wa mradi umeandikwa kwa C++ na kusambazwa chini ya leseni ya LGPLv2.1.

Mradi huu unatengenezwa na watengenezaji wa mifumo ndogo ya media titika ya Linux kernel pamoja na baadhi ya watengenezaji wa kamera ili kurekebisha hali hiyo kwa usaidizi wa Linux kwa kamera za simu mahiri na vifaa vilivyopachikwa ambavyo vimefungwa kwa viendeshi wamiliki. API V4L2, ambayo tayari inapatikana katika kinu cha Linux, iliundwa wakati mmoja kufanya kazi na kamera za kitamaduni tofauti za wavuti na haijachukuliwa vyema kwa mtindo wa hivi majuzi wa kusogeza utendaji wa MCU kwenye mabega ya CPU.

Tofauti na kamera za kitamaduni, ambazo shughuli za msingi za usindikaji wa picha hufanywa kwenye processor maalum iliyojengwa ndani ya kamera (MCU), katika vifaa vilivyopachikwa, ili kupunguza gharama, kazi hizi zinafanywa kwenye mabega ya CPU kuu na zinahitaji dereva ngumu ambayo inajumuisha vipengele vilivyoidhinishwa na chanzo kisicho wazi. Kama sehemu ya mradi wa libcamera, wafuasi wa programu huria na watengenezaji wa vifaa walijaribu kuunda suluhisho la maelewano ambalo, kwa upande mmoja, linakidhi mahitaji ya watengenezaji wa programu huria, na kwa upande mwingine, inaruhusu kulinda mali ya kiakili ya watengenezaji wa kamera.

Rafu inayotolewa na maktaba ya libcamera inatekelezwa kabisa katika nafasi ya mtumiaji. Ili kuhakikisha upatanifu na mazingira ya programu na programu zilizopo, tabaka za uoanifu hutolewa kwa V4L API, Gstreamer na Android Camera HAL. Vipengele vya umiliki vya mwingiliano na vifaa maalum kwa kila kamera vimeundwa kama moduli zinazotekelezwa katika michakato tofauti na kuingiliana na maktaba kupitia IPC. Moduli hazina ufikiaji wa moja kwa moja kwa kifaa na hufikia vifaa kupitia API ya kati, maombi ambayo hukaguliwa, kuchujwa na kupunguzwa kwa kufikia utendakazi unaohitajika kudhibiti kamera.

Maktaba pia hutoa ufikiaji wa algoriti za kuchakata na kuboresha ubora wa picha na video (marekebisho ya usawa nyeupe, kupunguza kelele, uimarishaji wa video, umakini wa kiotomatiki, uteuzi wa mfiduo, n.k.), ambayo inaweza kuunganishwa kwa njia ya maktaba wazi za nje au wamiliki. modules pekee. API hutoa ufikiaji wa vipengele kama vile kubainisha utendakazi wa kamera zilizopo za nje na zilizojengewa ndani, kwa kutumia wasifu wa kifaa, kushughulikia muunganisho wa kamera na matukio ya kukatwa, kudhibiti upigaji data wa kamera katika kiwango cha fremu mahususi, na kusawazisha picha na flash. Inawezekana kufanya kazi tofauti na kamera kadhaa katika mfumo na kuandaa kukamata wakati huo huo wa mitiririko kadhaa ya video kutoka kwa kamera moja (kwa mfano, moja iliyo na azimio la chini la mkutano wa video, na nyingine yenye azimio la juu la kurekodi kumbukumbu kwenye diski).

Chanzo: opennet.ru

Kuongeza maoni