Erster Release von libcamera, einem Stack zur Unterstützung von Kameras in Linux

Nach vier Jahren Entwicklung wurde die erste Version des Projekts libcamera (0.0.1) veröffentlicht, die einen Software-Stack für die Arbeit mit Videokameras, Digitalkameras und TV-Tunern unter Linux, Android und ChromeOS anbietet und die Entwicklung der API V4L2 fortsetzt und sie schließlich ersetzen wird. Da die API der Bibliothek weiterhin im Wandel ist und noch nicht endgültig stabilisiert wurde, wurde das Projekt bis jetzt ohne Abspaltung einzelner Versionen mit einem kontinuierlichen Entwicklungsmodell entwickelt. Um den Bedürfnissen der Distributionen nachzuverfolgen, welche Änderungen an der API betreffen, die die Kompatibilität beeinflussen, und um die Bereitstellung der Bibliothek in Paketen zu vereinfachen, wurde nun beschlossen, regelmäßig Releases zu erstellen, die den Grad der Veränderung von ABI und API widerspiegeln. Der Code des Projekts ist in C++ geschrieben und wird unter der Lizenz LGPLv2.1 verbreitet.

Das Projekt wird von Entwicklern der Multimedia-Subsysteme des Linux-Kernels zusammen mit einigen Kameraherstellern weiterentwickelt, um die Unterstützung für Kameras in Linux für Smartphones und eingebettete Geräte, die an proprietäre Treiber gebunden sind, zu normalisieren. Die bereits im Linux-Kernel vorhandene API V4L2 wurde zu einer Zeit geschaffen, als man hauptsächlich mit traditionellen, isolierten Webcams arbeitete, und ist schlecht an die neuere Tendenz angepasst, die Funktionalitäten des MCU auf den CPU zu verlagern.

Im Gegensatz zu traditionellen Kameras, in denen die primäre Bildverarbeitung von einem spezialisierten Prozessor (MCU) in der Kamera durchgeführt wird, werden in eingebetteten Geräten diese Funktionen zur Kostensenkung auf den Haupt-CPU verlagert und erfordern einen komplexeren Treiber, der nicht öffentlicher lizenzierten Komponenten umfasst. Im Rahmen des Projekts libcamera haben Befürworter von OSS und Hardware-Hersteller versucht, eine Kompromisslösung zu schaffen, die einerseits die Bedürfnisse der Entwickler von Open-Source-Software erfüllt und andererseits es den Kameraherstellern ermöglicht, ihr geistiges Eigentum zu schützen.

Die von der libcamera-Bibliothek vorgeschlagene Implementierung erfolgt vollständig im Benutzerspeicher. Um die Kompatibilität mit bestehenden Softwareumgebungen und Anwendungen zu gewährleisten, werden Kompatibilitätsschichten für die APIs V4L, Gstreamer und Android Camera HAL bereitgestellt. Spezifische proprietäre Komponenten zur Interaktion mit der Hardware werden in Form von Modulen ausgeführt, die in separaten Prozessen laufen und über IPC mit der Bibliothek kommunizieren. Die Module haben keinen direkten Zugriff auf das Gerät und greifen über eine Zwischen-API auf die Hardware zu, wobei die Anfragen überprüft, gefiltert und auf die für die Kamerasteuerung benötigte Funktionalität beschränkt werden.

Die Bibliothek bietet auch Zugang zu Algorithmen zur Verarbeitung und Verbesserung der Bild- und Videoqualität (Weißabgleichkorrektur, Rauschunterdrückung, Videostabilisierung, Autofokus, Belichtungsauswahl usw.), die in Form von offenen externen Bibliotheken oder proprietären isolierten Modulen eingebunden werden können. Die API bietet Zugang zu Funktionen wie der Erkennung der Funktionalität von vorhandenen externen und integrierten Kameras, der Nutzung von Geräteeinstellungen, der Verarbeitung von Anschluss- und Trennungsevents der Kameras, der Steuerung der Datenerfassung von Kameras auf Frame-Ebene sowie der Synchronisierung von Bildern mit dem Betrieb des Blitzes. Eine separate Arbeit mit mehreren Kameras im System und die gleichzeitige Erfassung mehrerer Video-Streams von einer Kamera (z. B. einen mit niedriger Auflösung für Videokonferenzen und einen anderen mit hoher Auflösung für die Archivierung auf der Festplatte) sind möglich.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster