Helt öppen stack för MIPI-kameror introduceras

Hans de Goede, en Fedora Linux-utvecklare som arbetar på Red Hat, presenterade en öppen stack för MIPI-kameror (Mobile Industry Processor Interface) på FOSDEM 2024-konferensen. Den förberedda öppna stacken har ännu inte accepterats i Linux-kärnan och libcamera-projektet, men är markerad som att ha nått ett tillstånd som är lämpligt för testning av ett brett spektrum av entusiaster. Funktionen av stacken har testats med MIPI-kameror baserade på sensorer ov2740, ov01a1s och hi556 som används i bärbara datorer som Lenovo ThinkPad X1 yoga gen 8, Dell Latitude 9420 och HP Spectre x360 13.5 2023.

MIPI-gränssnittet används i många nya bärbara modeller istället för den tidigare använda videoströmningen över USB-bussen från enheter som stöder UVC-standarden (USB Video Class). MIPI ger åtkomst till kamerasensorn med hjälp av en CSI-mottagare (Camera Serial Interface) och en bildprocessor integrerad i CPU:n (ISP, Image Signal Processor), som ger bildbildning baserat på rådata som kommer från sensorn. Intel tillhandahåller en uppsättning proprietära drivrutiner för att arbeta med MIPI-kameror i Linux via IPU6 (Imaging Processing Unit) i Intel Tiger Lake, Alder Lake, Raptor Lake och Meteor Lake-processorer.

Den största svårigheten med att utveckla öppna drivrutiner för MIPI-kameror beror på det faktum att ISP-processorns hårdvarugränssnitt och bildbehandlingsalgoritmerna som implementeras i den vanligtvis inte avslöjas av CPU-tillverkare och är en affärshemlighet. För att lösa detta problem har Linaro och Red Hat utvecklat en mjukvaruimplementering av bildprocessorn - SoftISP, som gör att du kan arbeta med MIPI-kameror utan att använda proprietära komponenter (SoftISP kan användas som ersättning för IPU6 ISP).

SoftISP-implementeringen har skickats in för inkludering i libcamera-projektet, som erbjuder en mjukvarustapel för att arbeta med videokameror, kameror och TV-tuners i Linux, Android och ChromeOS. Förutom SoftISP innehåller stacken för att arbeta med MIPI-kameror en drivrutin för ov2740-sensorer som körs på kärnnivå och kod för att stödja CSI-mottagaren i Linux-kärnan, som är en del av IPU6 av Intel-processorer.

Linux-kärnan och libcamera-paketen, inklusive projektets ändringar, är tillgängliga i COPR-förvaret för installation på Fedora Linux 39. Pipewire-mediaservern kan användas för att fånga video från MIPI-kameror. Stöd för att arbeta med kameror via Pipewire har redan införts i libwebrtc-biblioteket. I Firefox har möjligheten att arbeta med kameror via Pipewire bringats till ett tillstånd som lämpar sig för användning med WebRTC, från och med release 122. Som standard är arbete med kameror via Pipewire i Firefox inaktiverat och kräver “media.webrtc.camera. allow-"-parametern ska aktiveras i about:config pipewire."

Källa: opennet.ru

Lägg en kommentar