Pēc četru gadu izstrādes ir izveidots pirmais libcamera projekta izlaidums (0.0.1), kas piedāvā programmatūras krātuvi videokamerām, fotokamerām un TV uzņemšanas ierīcēm Linux, Android un ChromeOS, turpinot V4L2 API attīstību un laika gaitā to aizstājot. Ņemot vērā to, ka bibliotēkas API vēl joprojām mainās un nav pilnībā stabilizēts, projekts joprojām ir attīstījies bez atzaru izlaidumu veidošanas, izmantojot nepārtrauktu izstrādes modeli. Atbildot uz izplatītāju vajadzību izsekot API izmaiņām, kas ietekmē saderību, un, lai vienkāršotu bibliotēkas piegādi pakotnēs, tagad ir pieņemts lēmums regulāri veidot izlaidumus, kas atspoguļo ABI un API izmaiņu apjomu. Projekta kods ir uzrakstīts C++ valodā un tiek izplatīts zem LGPLv2.1 licences.
Projekts tiek attīstīts Linux kodola multivides apakšsistēmu izstrādātāju sadarbībā ar dažiem kameru ražotājiem, lai normalizētu situāciju par kameru atbalstu Linux operētājsistēmās, kas saistītas ar proprietāriem draiveriem no viedtālruņiem un iebūvētām ierīcēm. Esošajā Linux kodolā pieejamais V4L2 API tika izveidots kā risinājums tradicionālām atsevišķām web kamerām un ir slikti pielāgots jaunajai tendencei pārnest MCU funkcionalitāti uz CPU.
Atšķirībā no tradicionālajām kamerām, kurās attēlu primārās apstrādes operācijas veic iebūvēts specializēts process (MCU), integrētajās ierīcēs, lai samazinātu izmaksas, šīs funkcijas tiek pārceltas uz galveno CPU un prasa sarežģītu draiveri, kas ietver neizslēdzamus licencētos komponentus. Projekta libcamera ietvaros atvērtā koda atbalstītāji un aparatūras ražotāji centās izveidot kompromisa risinājumu, kas, no vienas puses, apmierina atvērtā koda izstrādātāju vajadzības, bet, no otras puses, ļauj aizsargāt kameru ražotāju intelektuālo īpašumu.
Ieteicamais libcamera bibliotēkas komplekts ir pilnībā īstenots lietotāja telpā. Lai nodrošinātu saderību ar esošajiem programmu videokompensācijām un lietojumprogrammām, tiek piedāvātas saderības slāņi ar API V4L, Gstreamer un Android Camera HAL. Katras kameras specifiskie patentētie aparatūras mijiedarbības komponenti tiek noformēti kā moduļi, kas darbojas atsevišķās procesos un sadarbojas ar bibliotēku caur IPC. Moduļiem nav tiešas piekļuves ierīcei, un tie piekļūst aparatūrai caur starpnieku API, kurā pieprasījumi tiek pārbaudīti, filtrēti un ierobežoti tikai ar piekļuvi funkcionalitātei, kas nepieciešama kameras vadībai.
Bibliotēka arī nodrošina piekļuvi algoritmiem, kas paredzēti attēlu un video kvalitātes apstrādei un uzlabošanai (balansa korekcija, trokšņu samazināšana, video stabilizācija, automātiskā fokussēšana, ekspozīcijas izvēle utt.), kurus var pievienot kā atvērtas ārējas bibliotēkas vai patentētus izolētus moduļus. API nodrošina piekļuvi tādām funkcijām kā esošo ārējo un iebūvēto kameru funkcionalitātes noteikšana, ierīču profilu izmantošana, kameru pieslēgšanas un atvienošanas notikumu apstrāde, datu iegūšanas vadība no kamerām pa atsevišķiem kadriem un attēlu sinhronizācija ar zibspuldzes darbību. Ir iespējama atsevišķa darbība ar vairākām kamerām sistēmā un vairāku video straumju nosacījuma organizēšana no vienas kameras (piemēram, viens ar zemu izšķirtspēju videokonferencēm, bet otrs ar augstu izšķirtspēju arhivēšanai).
Avots: opennet.lv
