Prima versione di libcamera, una pila per u supportu di càmera in Linux

Dopu quattru anni di sviluppu, a prima versione di u prughjettu libcamera (0.0.1) hè stata furmata, chì offre una pila di software per travaglià cù videocamere, camere è sintonizzatori TV in Linux, Android è ChromeOS, chì cuntinua u sviluppu di l'API V4L2. è eventualmente u rimpiazzarà. Siccomu l'API di a biblioteca hè sempre cambiata è ùn hè micca stata stabilizzata cumplettamente, u prugettu hà sviluppatu finu à avà senza ramificà e versioni individuali utilizendu un mudellu di sviluppu cuntinuu. In risposta à a necessità di distribuzioni per seguità i cambiamenti di l'API chì affettanu a cumpatibilità, è per simplificà a consegna di biblioteche in pacchetti, a decisione hè stata presa per generà periodicamente versioni chì riflettenu l'estensione di i cambiamenti ABI è API. U codice di u prugettu hè scrittu in C++ è distribuitu sottu a licenza LGPLv2.1.

U prugettu hè sviluppatu da sviluppatori di sottosistemi multimediali di u kernel Linux inseme cù alcuni pruduttori di càmera per nurmalizà a situazione cù u supportu Linux per e fotocamere per i telefoni intelligenti è i dispositi incrustati chì sò ligati à i driver proprietari. L'API V4L2, digià dispunibule in u kernel Linux, hè stata creata à un tempu per travaglià cù e camere web tradiziunali separati è hè pocu adattatu à a tendenza recente di trasfurmà a funziunalità MCU nantu à e spalle di u CPU.

A cuntrariu di e camere tradiziunali, in quale l'operazioni primarie di trasfurmazioni di l'imaghjini sò realizate nantu à un processore specializatu integratu in a camera (MCU), in i dispositi integrati, per riduce u costu, queste funzioni sò realizate nantu à e spalle di u CPU principale è necessitanu un driver cumplessu chì include cumpunenti licenziati non open source. Comu parte di u prughjettu libcamera, i pruduttori di u software open source è i pruduttori di hardware anu pruvatu à creà una suluzione di cumprumissu chì, da una banda, satisface i bisogni di i sviluppatori di software open source, è da l'altra, permette a prutezzione di a pruprietà intellettuale di i pruduttori di càmera.

A pila offerta da a biblioteca libcamera hè implementata interamente in u spaziu di l'utilizatori. Per assicurà a cumpatibilità cù l'ambienti software è l'applicazioni esistenti, i strati di cumpatibilità sò furniti per l'API V4L, Gstreamer è Android Camera HAL. I cumpunenti proprietarii di l'interazzione cù l'equipaggiu specifichi per ogni camera sò cuncepiti cum'è moduli eseguiti in prucessi separati è interagisce cù a biblioteca via IPC. I moduli ùn anu micca accessu direttu à u dispusitivu è accede à l'equipaggiu per mezu di una API intermediata, e dumande per via di quale sò verificati, filtrati è limitati à accede solu à e funziunalità necessariu per cuntrullà a camera.

A biblioteca furnisce ancu l'accessu à l'algoritmi per processà è migliurà a qualità di l'imaghjini è i video (aggiustamentu di u bilanciu di u biancu, riduzzione di u rumore, stabilizazione di video, autofocus, selezzione di l'esposizione, etc.), chì ponu esse cunnessi in forma di biblioteche esterne aperte o privati. moduli isolati. L'API furnisce l'accessu à e funzioni cum'è a determinazione di e funziunalità di e camere esterne è integrate esistenti, utilizendu i profili di u dispositivu, a gestione di a cunnessione di a camera è l'avvenimenti di disconnessione, a gestione di a cattura di dati di a camera à u livellu di u quadru individuale, è a sincronizazione di l'imaghjini cù u flash. Hè pussibule di travaglià separatamente cù parechje camere in u sistema è urganizà a cattura simultanea di parechji flussi video da una camera (per esempiu, una cù bassa risoluzione per videoconferenza, è una altra cun alta risoluzione per a registrazione d'archiviu à u discu).

Source: opennet.ru

Add a comment