libcamera, biblioteca de suport de càmera per a Linux, Android i ChromeOS

libcamera

libcamera és una pila de càmera de codi obert

Després de quatre anys de desenvolupament, es va donar a conèixer la primera versió del projecte libcamera (0.0.1), que ofereix una pila de programari per treballar amb càmeres de vídeo, càmeres i sintonitzadors de TV a Linux, Android i ChromeOS, que continua el desenvolupament de l'API V4L2 i eventualment el reemplaçarà.

Atès que l'API de la biblioteca encara està canviant i no està completament estabilitzada, fins ara el projecte s'ha desenvolupat sense bifurcar versions individuals fent servir un model de desenvolupament continu.

En resposta a la necessitat que les distribucions facin un seguiment dels canvis de l'API que afecten la compatibilitat i per facilitar l'enviament de la biblioteca a paquets, ara s'ha decidit generar versions periòdiques que reflecteixin la mesura que l'ABI i la API han canviat.

Sobre libcamera

El projecte eestà sent desenvolupat per desenvolupadors de subsistemes multimèdia del nucli de Linux junt amb alguns fabricants de càmeres per normalitzar el suport de Linux per a càmeres per a telèfons intel·ligents i dispositius integrats que estan vinculats a controladors propietaris.

L'API V4L2 que ja està disponible al nucli de Linux es va crear una vegada per funcionar amb càmeres web independents tradicionals i no s'adapta bé a la tendència recent de traslladar la funcionalitat de MCU a la CPU.

A diferència de les càmeres tradicionals, en què les operacions de processament d'imatges primàries es duen a terme al processador de propòsit especial (MCU) integrat a la càmera, en dispositius integrats, per reduir costos, aquestes funcions es col·loquen sobre les espatlles de la CPU principal i requereixen un controlador sofisticat que inclou components amb llicència que no es poden obrir.

En el marc del projecte libcamera, tots els defensors del programari lliure i els fabricants de maquinari van intentar crear una solució de compromís que, per una banda, satisfaci les necessitats dels desenvolupadors de codi obert i, per altra banda, permeti protegir la propietat intel·lectual dels fabricants de càmeres.

La pila que ofereix la biblioteca libcamera s'implementa completament a l'espai de l'usuari. Per garantir la compatibilitat amb els entorns de programació i aplicacions existents, es proporcionen capes per a la compatibilitat amb l'API V4L, Gstreamer i Android Camera HAL.

Els components dinteracció de maquinari patentats específics de la càmera s'empaqueten com a mòduls que s'executen en processos separats i interactuen amb la biblioteca mitjançant IPC. Els mòduls no tenen accés directe al dispositiu i accedeixen a l'equip mitjançant una API intermèdia, a través de la qual es revisen, filtren i limiten les sol·licituds per accedir a la funcionalitat necessària per controlar la càmera.

la biblioteca també ofereix accés a algorismes per processar i millorar la qualitat d'imatges i vídeos (correcció de balanç de blancs, eliminació de soroll, estabilització de vídeo, enfocament automàtic, selecció d'exposició, etc.), que es poden connectar com a biblioteques externes obertes o mòduls aïllats propietaris.

La API ofereix accés a funcions com determinar la funcionalitat de les càmeres externes i integrades existents, utilitzar perfils de dispositius, manejar esdeveniments de connexió i desconnexió de càmeres, administrar la captura de dades de la càmera a nivell de quadre individual i sincronitzar imatges amb l'operació del flaix. És possible treballar per separat amb diverses càmeres al sistema i organitzar la captura de diverses seqüències de vídeo d'una càmera alhora (per exemple, una amb baixa resolució per a una videoconferència,

Aquest llançament de pegat inicia els procediments de llançament del paquet per al projecte. Els llançaments inicials inclouran un augment en el número de versió del pegat (0.0.x), així com l'increment corresponent al nom del so.

Finalment per als que estiguin interessats a poder conèixer més sobre això, han de saber que el codi del projecte està escrit a C++ i es distribueix sota la llicència LGPLv2.1. El codi del projecte, així com les instruccions per realitzar la compilació de la biblioteca per treballar-hi, les poden consultar en el següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.