libcamera, biblioteca de suporte de câmera para Linux, Android e ChromeOS

libcâmera

libcamera é uma pilha de câmeras de código aberto

Após quatro anos de desenvolvimento, a primeira versão do projeto libcamera foi lançada (0.0.1), que oferece uma pilha de software para trabalhar com filmadoras, câmeras e sintonizadores de TV no Linux, Android e ChromeOS, que continua o desenvolvimento da API V4L2 e a substituirá.

Como a API da biblioteca ainda está mudando e não está totalmente estabilizada, até agora o projeto foi desenvolvido sem bifurcar versões individuais usando um modelo de desenvolvimento contínuo.

Em resposta à necessidade de as distribuições acompanharem as alterações da API que afetam a compatibilidade e facilitar o envio da biblioteca em pacotes, agora foi decidido produzir lançamentos regulares que reflitam até que ponto a ABI e as APIs foram alteradas .

Sobre a libcamera

O projeto eestá sendo desenvolvido pelos desenvolvedores do subsistema multimídia do kernel do linux juntos com alguns fabricantes de câmeras para padronizar o suporte do Linux para câmeras de smartphones e dispositivos incorporados vinculados a drivers proprietários.

A API V4L2 que já está disponível no kernel Linux ele já foi construído para funcionar com webcams independentes tradicionais e não se encaixa bem com a tendência recente de mover a funcionalidade do MCU para a CPU.

Diferentemente das câmeras tradicionais, nas quais as operações primárias de processamento de imagem são realizadas no processador de propósito específico (MCU) embutido na câmera, em dispositivos embarcados, para reduzir custos, essas funções são colocadas nos ombros da CPU principal e requerem um sofisticado driver que inclui componentes licenciados que não podem ser abertos.

Na estrutura do projeto libcamera, os Defensores do software livre e fabricantes de hardware tentaram criar uma solução de compromisso que, por um lado, atende às necessidades dos desenvolvedores de código aberto e, por outro, protege a propriedade intelectual dos fabricantes de câmeras.

A bateria que oferece biblioteca libcamera é implementado inteiramente no espaço do usuário. Para garantir a compatibilidade com aplicativos e ambientes de programação existentes, são fornecidas camadas para compatibilidade com a API V4L, Gstreamer e Android Camera HAL.

Os componentes de interação hardware específico da câmera proprietária são empacotados como módulos que são executados em processos separados e interagir com a biblioteca através do IPC. Os módulos não têm acesso direto ao dispositivo e acessam o equipamento por meio de uma API intermediária, por meio da qual as solicitações de acesso à funcionalidade necessária para controlar a câmera são analisadas, filtradas e estranguladas.

A biblioteca também fornece acesso a algoritmos para processamento e melhoria da qualidade de imagens e vídeos (correção de balanço de branco, remoção de ruído, estabilização de vídeo, foco automático, seleção de exposição, etc.), que podem ser conectados como bibliotecas externas abertas ou módulos isolados proprietários.

La API fornece acesso a funções como determinar a funcionalidade de câmeras internas e externas existentes, usar perfis de dispositivo, lidar com eventos de conexão e desconexão de câmera, gerenciar a captura de dados de câmera no nível de quadro individual e sincronizar imagens com operação de flash. É possível trabalhar separadamente com várias câmeras no sistema e organizar a captura de vários fluxos de vídeo de uma câmera ao mesmo tempo (por exemplo, um com baixa resolução para uma videoconferência,

Esta a liberação do patch inicia os procedimentos de liberação do pacote para o projeto. Os lançamentos iniciais incluirão um aumento no número da versão do patch (0.0.x), bem como um aumento correspondente no nome do filho.

Por fim, para quem estiver interessado em saber mais sobre o assunto, deve saber que o código do projeto está escrito em C++ e é distribuído sob a licença LGPLv2.1. O código do projeto, bem como as instruções para compilar a biblioteca para trabalhar com ele, podem ser consultados no link a seguir.


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.