Wprowadzono w pełni otwarty stos dla kamer MIPI

Hans de Goede, programista Fedory Linux pracujący w firmie Red Hat, zaprezentował otwarty stos dla kamer MIPI (Mobile Industry Processor Interface) na konferencji FOSDEM 2024. Przygotowany otwarty stos nie został jeszcze przyjęty do jądra Linuksa i projektu libcamera, ale jest oznaczony jako osiągający stan odpowiedni do testowania przez szerokie grono entuzjastów. Działanie stosu zostało przetestowane z kamerami MIPI opartymi na czujnikach ov2740, ov01a1s i hi556 stosowanych w laptopach takich jak Lenovo ThinkPad X1 Yoga gen 8, Dell Latitude 9420 i HP Spectre x360 13.5 2023.

Interfejs MIPI jest stosowany w wielu nowych modelach laptopów zamiast stosowanego wcześniej strumieniowego przesyłania wideo po magistrali USB z urządzeń obsługujących standard UVC (USB Video Class). MIPI zapewnia dostęp do czujnika kamery za pomocą odbiornika CSI (Camera Serial Interface) i procesora obrazu zintegrowanego z procesorem (ISP, Image Signal Processor), który zapewnia tworzenie obrazu w oparciu o surowe dane pochodzące z czujnika. Intel udostępnia zestaw autorskich sterowników do pracy z kamerami MIPI w systemie Linux poprzez IPU6 (Imaging Processing Unit) w procesorach Intel Tiger Lake, Alder Lake, Raptor Lake i Meteor Lake.

Główna trudność w opracowywaniu otwartych sterowników dla kamer MIPI wynika z faktu, że interfejs sprzętowy procesora ISP i zaimplementowane w nim algorytmy przetwarzania obrazu zwykle nie są ujawniane przez producentów procesorów i stanowią tajemnicę handlową. Aby rozwiązać ten problem, Linaro i Red Hat opracowali programową implementację procesora obrazu - SoftISP, która pozwala na współpracę z kamerami MIPI bez użycia zastrzeżonych komponentów (SoftISP może być stosowany jako zamiennik IPU6 ISP).

Implementacja SoftISP została zgłoszona do włączenia do projektu libcamera, który oferuje stos oprogramowania do współpracy z kamerami wideo, kamerami i tunerami telewizyjnymi w systemach Linux, Android i ChromeOS. Oprócz SoftISP, stos do pracy z kamerami MIPI zawiera sterownik czujników ov2740 działających na poziomie jądra oraz kod do obsługi odbiornika CSI w jądrze Linuksa, który jest częścią IPU6 procesorów Intel.

Jądro Linuksa i pakiety libcamera, w tym zmiany projektu, są dostępne w repozytorium COPR do instalacji w Fedorze Linux 39. Serwer multimediów Pipewire może być używany do przechwytywania wideo z kamer MIPI. Obsługa pracy z kamerami poprzez Pipewire została już wdrożona w bibliotece libwebrtc. W przeglądarce Firefox możliwość pracy z kamerami za pośrednictwem Pipewire została doprowadzona do stanu odpowiedniego do użytku z WebRTC, począwszy od wersji 122. Domyślnie praca z kamerami za pośrednictwem Pipewire w przeglądarce Firefox jest wyłączona i wymaga pliku „media.webrtc.camera. Zezwól-” do aktywowania parametru w about:config pipewire”.

Źródło: opennet.ru

Dodaj komentarz