Rhyddhad cyntaf libcamera, pentwr ar gyfer cefnogaeth camera ar Linux

Ar Γ΄l pedair blynedd o ddatblygiad, ffurfiwyd datganiad cyntaf y prosiect libcamera (0.0.1), gan gynnig pentwr meddalwedd ar gyfer gweithio gyda chamerΓ’u fideo, camerΓ’u a thiwnwyr teledu yn Linux, Android a ChromeOS, sy'n parhau Γ’ datblygiad yr API V4L2 a bydd yn ei ddisodli yn y pen draw. Gan fod API y llyfrgell yn dal i newid ac nad yw wedi'i sefydlogi'n llawn eto, mae'r prosiect wedi datblygu hyd yn hyn heb ganghennu datganiadau unigol gan ddefnyddio model datblygiad parhaus. Mewn ymateb i'r angen am ddosbarthiadau i gadw golwg ar newidiadau API sy'n effeithio ar gydnawsedd, ac i symleiddio'r broses o ddarparu llyfrgelloedd mewn pecynnau, mae'r penderfyniad bellach wedi'i wneud i gynhyrchu datganiadau o bryd i'w gilydd sy'n adlewyrchu maint y newidiadau ABI ac API. Mae cod y prosiect wedi'i ysgrifennu yn C++ a'i ddosbarthu o dan drwydded LGPLv2.1.

Mae'r prosiect yn cael ei ddatblygu gan ddatblygwyr is-systemau amlgyfrwng y cnewyllyn Linux ynghyd Γ’ rhai gweithgynhyrchwyr camera er mwyn normaleiddio'r sefyllfa gyda chefnogaeth Linux i gamerΓ’u ar gyfer ffonau smart a dyfeisiau wedi'u mewnosod sy'n gysylltiedig Γ’ gyrwyr perchnogol. Cafodd API V4L2, sydd eisoes ar gael yn y cnewyllyn Linux, ei greu ar un adeg i weithio gyda chamerΓ’u gwe traddodiadol ar wahΓ’n ac mae wedi'i addasu'n wael i'r duedd ddiweddar o symud ymarferoldeb MCU i ysgwyddau'r CPU.

Yn wahanol i gamerΓ’u traddodiadol, lle mae gweithrediadau prosesu delwedd sylfaenol yn cael eu perfformio ar brosesydd arbenigol sydd wedi'i ymgorffori yn y camera (MCU), mewn dyfeisiau wedi'u mewnosod, i leihau cost, cyflawnir y swyddogaethau hyn ar ysgwyddau'r prif CPU ac mae angen gyrrwr cymhleth arnynt. yn cynnwys cydrannau trwyddedig nad ydynt yn ffynhonnell agored. Fel rhan o'r prosiect libcamera, ceisiodd cynigwyr meddalwedd ffynhonnell agored a gweithgynhyrchwyr caledwedd greu datrysiad cyfaddawd sydd, ar y naill law, yn bodloni anghenion datblygwyr meddalwedd ffynhonnell agored, ac ar y llaw arall, yn caniatΓ‘u amddiffyn eiddo deallusol gweithgynhyrchwyr camera.

Mae'r pentwr a gynigir gan y llyfrgell libcamera yn cael ei weithredu'n gyfan gwbl yn y gofod defnyddwyr. Er mwyn sicrhau cydnawsedd ag amgylcheddau a chymwysiadau meddalwedd presennol, darperir haenau cydnawsedd ar gyfer yr API V4L, Gstreamer ac Android Camera HAL. Mae cydrannau perchnogol rhyngweithio ag offer sy'n benodol i bob camera wedi'u dylunio fel modiwlau a weithredir mewn prosesau ar wahΓ’n ac sy'n rhyngweithio Γ’'r llyfrgell trwy IPC. Nid oes gan fodiwlau fynediad uniongyrchol i'r ddyfais a mynediad i'r offer trwy API canolraddol, y mae ceisiadau trwyddynt yn cael eu gwirio, eu hidlo a'u cyfyngu i gyrchu'r ymarferoldeb sy'n angenrheidiol i reoli'r camera yn unig.

Mae'r llyfrgell hefyd yn darparu mynediad i algorithmau ar gyfer prosesu a gwella ansawdd delweddau a fideos (addasiad cydbwysedd gwyn, lleihau sΕ΅n, sefydlogi fideo, autofocus, dewis amlygiad, ac ati), y gellir eu cysylltu ar ffurf llyfrgelloedd allanol agored neu berchnogol modiwlau ynysig. Mae'r API yn darparu mynediad i nodweddion megis pennu ymarferoldeb camerΓ’u allanol ac adeiledig presennol, defnyddio proffiliau dyfeisiau, trin cysylltiad camera a digwyddiadau datgysylltu, rheoli cipio data camera ar lefel ffrΓ’m unigol, a chydamseru delweddau Γ’ fflach. Mae'n bosibl gweithio ar wahΓ’n gyda nifer o gamerΓ’u yn y system a threfnu cipio nifer o ffrydiau fideo ar yr un pryd o un camera (er enghraifft, un gyda datrysiad isel ar gyfer fideo-gynadledda, ac un arall gyda datrysiad uchel ar gyfer recordio archifol i ddisg).

Ffynhonnell: opennet.ru

Ychwanegu sylw