Prima versione di libcamera, stack per il supporto delle fotocamere su Linux

Dopo quattro anni di sviluppo, è stata rilasciata la prima versione del progetto libcamera (0.0.1), che offre uno stack software per lavorare con videocamere, fotocamere e TV tuner su Linux, Android e ChromeOS, continuando a sviluppare l'API V4L2 e, nel tempo, sostituendola. Poiché l'API della libreria è ancora in fase di modifiche e non è stabilizzata, il progetto è stato sviluppato senza creare rami di versioni separate, utilizzando un modello di sviluppo continuo. In risposta alla necessità dei distributori di monitorare le modifiche dell'API che influenzano la compatibilità e per semplificare la distribuzione della libreria in pacchetti, è stata presa la decisione di generare periodicamente versioni che riflettano il grado di cambiamento dell'ABI e dell'API. Il codice del progetto è scritto in C++ e distribuito sotto licenza LGPLv2.1.

Il progetto è sviluppato dagli sviluppatori di sottosistemi multimediali del kernel Linux in collaborazione con alcuni produttori di telecamere, con l'obiettivo di normalizzare il supporto delle telecamere per smartphone e dispositivi embedded in Linux, che dipendono da driver proprietari. L'API V4L2 già presente nel kernel Linux è stata originariamente creata per funzionare con tradizionali webcam isolate e si è rivelata poco adattata alla recente tendenza di trasferire le funzionalità della MCU sulle spalle della CPU.

A differenza delle fotocamere tradizionali, in cui le operazioni di elaborazione iniziale delle immagini vengono eseguite su un processore dedicato integrato nella fotocamera (MCU), nei dispositivi embedded, per ridurre i costi, queste funzionalità sono delegate alla CPU principale e richiedono un driver complesso, che include componenti licenziati non open source. Nell'ambito del progetto libcamera, sostenitori del software open source e produttori di hardware hanno cercato di creare una soluzione di compromesso, da un lato soddisfacendo le esigenze degli sviluppatori di software libero e, dall'altro, permettendo di proteggere la proprietà intellettuale dei produttori di fotocamere.

Il stack proposto dalla libreria libcamera è completamente implementato nello spazio utente. Per garantire la compatibilità con gli ambienti software e le applicazioni esistenti, vengono forniti strati di compatibilità per le API V4L, Gstreamer e Android Camera HAL. I componenti proprietari specifici per ciascuna fotocamera che interagiscono con l'hardware sono organizzati in moduli che vengono eseguiti in processi separati e comunicano con la libreria tramite IPC. I moduli non hanno accesso diretto al dispositivo e accedono all'hardware attraverso un'API intermedia, le richieste tramite la quale vengono verificate, filtrate e limitate solo all'accesso alle funzionalità necessarie per gestire la fotocamera.

La libreria offre anche l'accesso ad algoritmi per l'elaborazione e il miglioramento della qualità di immagini e video (correzione del bilanciamento del bianco, riduzione del rumore, stabilizzazione video, autofocus, selezione dell'esposizione, ecc.), che possono essere integrati come librerie esterne aperte o moduli proprietari isolati. L'API fornisce accesso a funzioni come la determinazione delle funzionalità delle telecamere esterne e integrate, l'uso di profili di dispositivo, il trattamento degli eventi di connessione e disconnessione delle telecamere, la gestione della cattura dei dati dalle telecamere a livello di singoli fotogrammi e la sincronizzazione degli scatti con l'attivazione del flash. È possibile gestire diverse telecamere nel sistema e catturare simultaneamente più flussi video da una singola telecamera (ad esempio, uno a bassa risoluzione per videoconferenze e un altro ad alta risoluzione per registrazioni su disco).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster