Introduction d'une pile entièrement ouverte pour les caméras MIPI

Hans de Goede, un développeur Fedora Linux travaillant chez Red Hat, a présenté une pile ouverte pour les caméras MIPI (Mobile Industry Processor Interface) lors de la conférence FOSDEM 2024. La pile ouverte préparée n'a pas encore été acceptée dans le noyau Linux et le projet libcamera, mais elle est marquée comme ayant atteint un état approprié pour être testée par un large éventail de passionnés. Le fonctionnement de la pile a été testé avec des caméras MIPI basées sur les capteurs ov2740, ov01a1s et hi556 utilisés dans des ordinateurs portables tels que Lenovo ThinkPad X1 yoga gen 8, Dell Latitude 9420 et HP Spectre x360 13.5 2023.

L'interface MIPI est utilisée dans de nombreux nouveaux modèles d'ordinateurs portables à la place du streaming vidéo précédemment utilisé via le bus USB à partir d'appareils prenant en charge la norme UVC (USB Video Class). MIPI donne accès au capteur de la caméra à l'aide d'un récepteur CSI (Camera Serial Interface) et d'un processeur d'image intégré au CPU (ISP, Image Signal Processor), qui assure la formation d'image basée sur les données brutes provenant du capteur. Intel fournit un ensemble de pilotes propriétaires pour travailler avec les caméras MIPI sous Linux via IPU6 (Imaging Processing Unit) dans les processeurs Intel Tiger Lake, Alder Lake, Raptor Lake et Meteor Lake.

La principale difficulté du développement de pilotes ouverts pour les caméras MIPI est due au fait que l'interface matérielle du processeur ISP et les algorithmes de traitement d'image qui y sont implémentés ne sont généralement pas divulgués par les fabricants de processeurs et constituent un secret commercial. Pour résoudre ce problème, Linaro et Red Hat ont développé une implémentation logicielle du processeur d'image - SoftISP, qui vous permet de travailler avec des caméras MIPI sans utiliser de composants propriétaires (SoftISP peut être utilisé en remplacement d'IPU6 ISP).

L'implémentation de SoftISP a été soumise pour inclusion dans le projet libcamera, qui propose une pile logicielle pour travailler avec des caméras vidéo, des caméras et des tuners TV sous Linux, Android et ChromeOS. En plus de SoftISP, la pile pour travailler avec les caméras MIPI comprend un pilote pour les capteurs ov2740 fonctionnant au niveau du noyau et du code pour prendre en charge le récepteur CSI dans le noyau Linux, qui fait partie de l'IPU6 des processeurs Intel.

Le noyau Linux et les packages libcamera, y compris les modifications du projet, sont disponibles dans le référentiel COPR pour une installation sur Fedora Linux 39. Le serveur multimédia Pipewire peut être utilisé pour capturer des vidéos à partir de caméras MIPI. La prise en charge du travail avec des caméras via Pipewire a déjà été adoptée dans la bibliothèque libwebrtc. Dans Firefox, la possibilité de travailler avec des caméras via Pipewire a été amenée à un état adapté à une utilisation avec WebRTC, à partir de la version 122. Par défaut, travailler avec des caméras via Pipewire dans Firefox est désactivé et nécessite le fichier « media.webrtc.camera. permettre-" paramètre à activer dans about:config pipewire."

Source: opennet.ru

Ajouter un commentaire