28.02.2024

Представлен полностью открытый стек для камер с интерфейсом 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».

Источник: https://www.opennet.ru/opennews/art.shtml?num=60517 Источник.