Première version de libcamera, une pile pour le support des caméras sous Linux

Après quatre années de développement, la première version du projet libcamera (0.0.1) a été créée, proposant une pile logicielle pour travailler avec des caméras vidéo, des caméras et des tuners TV sous Linux, Android et ChromeOS, qui poursuit le développement de l'API V4L2. et finira par le remplacer. Étant donné que l'API de la bibliothèque est encore en évolution et n'est pas encore complètement stabilisée, le projet s'est jusqu'à présent développé sans branchement sur les versions individuelles en utilisant un modèle de développement continu. En réponse au besoin des distributions de suivre les modifications de l'API qui affectent la compatibilité et de simplifier la livraison des bibliothèques dans des packages, la décision a maintenant été prise de générer périodiquement des versions reflétant l'étendue des modifications de l'ABI et de l'API. Le code du projet est écrit en C++ et distribué sous la licence LGPLv2.1.

Le projet est développé par les développeurs de sous-systèmes multimédias du noyau Linux en collaboration avec certains fabricants d'appareils photo afin de normaliser la situation avec la prise en charge Linux des appareils photo pour smartphones et appareils embarqués liés à des pilotes propriétaires. L'API V4L2, déjà disponible dans le noyau Linux, a été créée à un moment donné pour fonctionner avec des caméras Web séparées traditionnelles et est mal adaptée à la tendance récente consistant à déplacer la fonctionnalité MCU sur les épaules du CPU.

Contrairement aux caméras traditionnelles, dans lesquelles les opérations primaires de traitement d'image sont effectuées sur un processeur spécialisé intégré à la caméra (MCU), dans les appareils embarqués, pour réduire les coûts, ces fonctions sont exécutées sur les épaules du processeur principal et nécessitent un pilote complexe qui inclut des composants sous licence non open source. Dans le cadre du projet libcamera, les partisans des logiciels open source et les fabricants de matériel ont tenté de créer une solution de compromis qui, d'une part, satisfasse les besoins des développeurs de logiciels open source et, d'autre part, permette de protéger la propriété intellectuelle des fabricants de caméras.

La pile proposée par la bibliothèque libcamera est entièrement implémentée dans l'espace utilisateur. Pour garantir la compatibilité avec les environnements logiciels et applications existants, des couches de compatibilité sont fournies pour l'API V4L, Gstreamer et Android Camera HAL. Les composants propriétaires spécifiques à chaque caméra pour interagir avec l'équipement sont conçus sous forme de modules qui s'exécutent dans des processus séparés et interagissent avec la bibliothèque via IPC. Les modules n'ont pas d'accès direct à l'appareil et accèdent à l'équipement via une API intermédiaire, par laquelle les demandes sont vérifiées, filtrées et limitées à l'accès uniquement aux fonctionnalités nécessaires au contrôle de la caméra.

La bibliothèque donne également accès à des algorithmes de traitement et d'amélioration de la qualité des images et des vidéos (réglage de la balance des blancs, réduction du bruit, stabilisation vidéo, autofocus, sélection d'exposition, etc.), qui peuvent être connectés sous forme de bibliothèques externes ouvertes ou propriétaires. modules isolés. L'API donne accès à des fonctionnalités telles que la détermination des fonctionnalités des caméras externes et intégrées existantes, l'utilisation des profils d'appareil, la gestion des événements de connexion et de déconnexion de la caméra, la gestion de la capture des données de la caméra au niveau de l'image individuelle et la synchronisation des images avec le flash. Il est possible de travailler séparément avec plusieurs caméras dans le système et d'organiser la capture simultanée de plusieurs flux vidéo à partir d'une caméra (par exemple, un à basse résolution pour la vidéoconférence et un autre à haute résolution pour l'enregistrement d'archives sur disque).

Source: opennet.ru

Ajouter un commentaire