Desde Linux Darkcrizt  

iSoftISP, una pila abierta para cámaras MIPI

SoftISP

Presentación de SoftISP en la fosdem 2024

Durante la conferencia FOSDEM 2024, Hans de Goede, un desarrollador de Fedora que colabora con Red Hat, hablo sobre el actual problema que han identificado en muchas de las computadoras portátiles Intel recientes, ya que han reemplazado el módulo de cámara USB UVC estándar con un sensor de cámara MIPI sin procesar conectado al IPU6.

Menciona que la interfaz MIPI se está adoptando en lugar de la transmisión de vídeo a través del bus USB, que era común en dispositivos compatibles con el estándar UVC (USB Video Class). MIPI ofrece acceso al sensor de la cámara a través de un receptor CSI (Camera Serial Interface) y un procesador de imágenes (ISP, Image Signal Processor) integrado en la CPU.

Este enfoque permite la captura de imágenes basada en datos sin procesar directamente desde el sensor. Intel proporciona un conjunto de controladores propietarios para trabajar con cámaras MIPI en Linux a través de la IPU6 en los procesadores Intel Tiger Lake, Alder Lake, Raptor Lake y Meteor Lake.

Tanto la interfaz hardware de la parte ISP de IPU6 como los algoritmos de procesamiento de imágenes utilizados se consideran un secreto comercial y hasta ahora el único soporte de Linux para IPU6 se basa en un controlador de kernel fuera del árbol con una pila de espacio de usuario propietario en la parte superior que actualmente está disponible en rpmfusion.

Tanto Linaro como Red Hat han identificado como un problema la falta de soporte de ISP para varios chips ARM y X86. Linaro ha iniciado un proyecto para agregar un componente SoftwareISP a libcamera para permitir que estas cámaras funcionen sin necesidad de software propietario y Red Hat se ha unido a Linaro para trabajar en esto.

Hans, menciona que la principal dificultad en el desarrollo de controladores abiertos para cámaras MIPI radica en el hecho de que la interfaz de hardware del procesador ISP y los algoritmos de procesamiento de imágenes implementados en él generalmente no son divulgados por los fabricantes de CPU y se mantienen como secreto comercial. Para abordar este problema, Linaro y Red Hat han colaborado en el desarrollo de una implementación de software de un procesador de imágenes llamada SoftISP, que permite trabajar con cámaras MIPI sin depender de componentes propietarios

La implementación de SoftISP se ha propuesto para su inclusión en el proyecto libcamera, que proporciona una pila de software para trabajar con videocámaras, cámaras y sintonizadores de TV en sistemas Linux, Android y ChromeOS. Además de SoftISP, la pila para trabajar con cámaras MIPI incluye un controlador para sensores ov2740 que opera a nivel del kernel, así como código para admitir el receptor CSI en el kernel de Linux, que es parte de la IPU6 de los procesadores Intel.

Actualmente, la pila SoftISP aún no ha sido aceptada en el kernel de Linux ni en el proyecto libcamera, pero se considera que el desarrollo ya ha alcanzado un estado adecuado para que una amplia gama de entusiastas la prueben. La funcionalidad de esta pila ha sido probada con cámaras MIPI basadas en los diversos sensores de portátiles Lenovo, Dell y HP.

Para los interesados en el proyecto, deben saber que los paquetes del kernel de Linux y libcamera, que incluyen los cambios del proyecto, ahora están disponibles en el repositorio COPR para su instalación en Fedora 39.  El servidor de medios Pipewire se puede emplear para capturar video desde cámaras MIPI y la compatibilidad con cámaras a través de Pipewire ya se ha integrado en la biblioteca libwebrtc.

Adicional a ello, cabe mencionar que en Firefox, la capacidad de trabajar con cámaras a través de Pipewire ha alcanzado un estado adecuado para su uso con WebRTC a partir de la versión 122. Por defecto, la funcionalidad para trabajar con cámaras a través de Pipewire en Firefox está desactivada y requiere que se habilite el parámetro «media.webrtc.camera.allow-pipewire» en about:config.

Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.