Представлений повністю відкритий стек для камер з інтерфейсом MIPI

Ганс Де Гоеде (Hans de Goede), розробник Fedora Linux, що працює в компанії Red Hat, представив на конференції FOSDEM 2024 відкритий стек для камер, що підключаються за допомогою інтерфейсу MIPI (Mobile Industry Processor Interface). Підготовлений відкритий стек поки не прийнятий до складу ядра Linux і проекту libcamera, але відзначений як стан, придатний для тестування широким колом ентузіастів. Робота стека перевірена з MIPI-камерами на базі сенсорів ov2740, ov01a1s та hi556, задіяних у таких ноутбуках, як Lenovo ThinkPad X1 yoga gen 8, Dell Latitude 9420 та HP Spectre x360 13.5 2023 року.

Інтерфейс MIPI застосовується в багатьох нових моделях ноутбуків замість потокової передачі відео, що раніше використовується, по шині USB від пристроїв, що підтримують стандарт UVC (USB Video Class). MIPI надає доступ до сенсора камери, використовуючи CSI-ресивер (Camera Serial Interface) та інтегрований у CPU процесор обробки зображень (ISP, Image Signal Processor), що забезпечує формування зображення на основі сирих (raw) даних, що надходять від сенсора. Компанія Intel надає набір пропрієтарних драйверів для роботи з MIPI-камерами в Linux через IPU6 (Imaging Processing Unit) у процесорах Intel Tiger Lake, Alder Lake, Raptor Lake та Meteor Lake.

Головна складність у розробці відкритих драйверів для MIPI-камер пов'язана з тим, що апаратний інтерфейс ISP-процесора і алгоритми обробки зображень, що реалізуються в ньому, зазвичай не розкриваються виробниками CPU і являють собою комерційну таємницю. Для вирішення проблеми компанії Linaro і Red Hat розробили програмну реалізацію процесора обробки зображень - SoftISP, яка дозволяє працювати з MIPI-камерами без використання пропрієтарних компонентів (SoftISP може використовуватися як заміна IPU6 ISP).

Реалізація SoftISP передана для включення до складу проекту libcamera, що пропонує програмний стек для роботи з відеокамерами, фотокамерами та TV-тюнерами у Linux, Android та ChromeOS. Крім SoftISP стек для роботи з MIPI-камерами включає драйвер для сенсорів ov2740, що працює на рівні ядра, і код для підтримки в ядрі Linux CSI-ресивера, що є частиною IPU6 процесорів Intel.

Пакети з ядром Linux і libcamera, що включають підготовлені проектом зміни, доступні в репозиторії COPR для встановлення Fedora Linux 39. Для захоплення відео з MIPI-камер може використовуватися мультимедійний сервер Pipewire. Підтримку роботи з камерами через Pipewire вже прийнято до бібліотеки libwebrtc. У Firefox можливість роботи з камерами через Pipewire приведена до стану, придатного для використання з WebRTC, починаючи з випуску 122. За замовчуванням робота з камерами через Pipewire у Firefox відключена і вимагає активації в about:config параметра «media.webrtc.camera.allow- pipewire».

Джерело: opennet.ru

Додати коментар або відгук