
Prezentarea SoftISP la fosdem 2024
Durante conferința FOSDEM 2024, Hans de Goede, un dezvoltator Fedora care lucrează cu Red Hat, Vorbesc despre problema actuală care au fost identificate în multe dintre computerelaptopurile Intel recente, deoarece au înlocuit modulul camerei USB UVC standard cu un senzor de cameră MIPI brut conectat la IPU6.
Menționează că Interfața MIPI este adoptată în locul transmisiei video prin magistrala USB, care era obișnuit în dispozitivele care acceptă standardul UVC (USB Video Class). MIPI oferă acces la senzorul camerei printr-un receptor CSI (Camera Serial Interface) și un procesor de semnal de imagine (ISP) integrat în CPU.
Această abordare permite captarea imaginilor pe baza datelor brute direct de la senzor. Intel oferă un set de drivere proprietare pentru a lucra cu camere MIPI pe Linux prin IPU6 pe procesoarele Intel Tiger Lake, Alder Lake, Raptor Lake și Meteor Lake.
Atât interfața hardware a părții ISP a IPU6, cât și algoritmii de procesare a imaginilor utilizați sunt considerate secrete comerciale și, până acum, singurul suport Linux pentru IPU6 se bazează pe un driver de kernel în afara arborelui, cu o stivă de spațiu utilizator proprietară în partea de sus, care este disponibil în prezent pe rpmfusion.
Atât Linaro, cât și Red Hat au identificat lipsa suportului ISP pentru diferite cipuri ARM și X86 ca fiind o problemă. Linaro a început un proiect pentru a adăuga o componentă SoftwareISP la libcamera pentru a permite acestor camere să funcționeze fără a fi nevoie de software proprietar, iar Red Hat a făcut echipă cu Linaro pentru a lucra la acest lucru.
Hans, mentioneaza asta principala dificultate în dezvoltare de drivere deschise pentru camerele MIPI se află în faptul că interfață hardware procesor ISP și algoritmi de procesare a imaginilor implementate în general în ea nu sunt dezvăluite de producătorii de procesoare și sunt păstrate ca secret comercial. Pentru a rezolva această problemă, Linaro și Red Hat au colaborat pentru a dezvolta o implementare software a unui procesor de imagine numit SoftISP, care permite lucrul cu camerele MIPI fără a se baza pe componente proprietare.
Implementarea SoftISP a fost propus pentru includere în proiectul libcamera, care oferă o stivă de software pentru a funcționa cu camerele video, camerele și tunerele TV pe sistemele Linux, Android și ChromeOS. Pe lângă SoftISP, stiva pentru lucrul cu camerele MIPI include un driver pentru senzorii ov2740 care funcționează la nivel de kernel, precum și cod pentru a suporta receptorul CSI din kernel-ul Linux, care face parte din IPU6 al procesoarelor Intel.
În prezent, stiva SoftISP nu a fost încă acceptat în nucleul Linux sau în proiectul libcamera, dar se consideră că dezvoltarea a ajuns acum într-un stadiu potrivit pentru testare de către o gamă largă de entuziaști. Funcționalitatea acestei stive a fost testată cu camere MIPI bazate pe diferiții senzori ai laptopurilor Lenovo, Dell și HP.
Pentru interesat de proiect, Ar trebui să știți că kernelul Linux și pachetele libcamera, care includ modificările proiectului, sunt acum disponibile în depozit COPR pentru instalare pe Fedora 39. Serverul media Pipewire poate fi folosit pentru a captura videoclipuri de la camerele MIPI, iar suportul pentru camere prin Pipewire a fost deja integrat în biblioteca libwebrtc.
În plus, este de menționat că în Firefox, capacitatea de a lucra cu camere prin Pipewire a atins o stare potrivită pentru utilizare cu WebRTC începând cu versiunea 122. În mod implicit, funcționalitatea de a lucra cu camere prin Pipewire în Firefox este dezactivat și necesită parametrul «media.webrtc.camera.allow-pipewire» în despre:config.
În sfârșit, dacă ești interesat să poți aflați mai multe despre asta, puteți verifica detaliile în următorul link.