Die erste Version von libcamera, einem Stack zur Unterstützung von Kameras in Linux, ist veröffentlicht worden.

Nach vier Jahren Entwicklung wurde die erste Version des Projekts libcamera (0.0.1) veröffentlicht. Dieses bietet einen Software-Stack zur Arbeit mit Videokameras, Fotokameras und TV-Tunern unter Linux, Android und ChromeOS, der die Entwicklung der API V4L2 fortsetzt und sie mit der Zeit ersetzen wird. Da sich die API der Bibliothek weiterhin ändert und noch nicht endgültig stabilisiert ist, wurde das Projekt bislang ohne separate Releases in einem kontinuierlichen Entwicklungsmodell vorangetrieben. Um den Distributionen zu helfen, die Änderungen der API, die die Kompatibilität beeinflussen, nachzuvollziehen und um die Bereitstellung der Bibliothek in Paketen zu vereinfachen, wurde nun beschlossen, regelmäßig Releases zu erstellen, die den Grad der Ä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 vorangetrieben, um die Unterstützung von Smartphone- und Embedded-Kameras in Linux zu normalisieren, die an proprietäre Treiber gebunden sind. Die bereits im Linux-Kernel vorhandene API V4L2 wurde ursprünglich für den Betrieb mit herkömmlichen, separaten Webcams entwickelt und ist schlecht an die in letzter Zeit aufkommende Tendenz zur Verlagerung der Funktionalität von MCUs auf CPUs angepasst.

Im Gegensatz zu herkömmlichen Kameras, bei denen die primären Bildverarbeitungsoperationen von einem spezialisierten Prozessor (MCU) in der Kamera durchgeführt werden, werden diese Funktionen in eingebetteten Geräten zur Kostensenkung auf den Haupt-CPU verlagert. Dies erfordert einen komplexeren Treiber, der lizenziertes, nicht offenes Material enthält. Im Rahmen des Projekts libcamera haben Befürworter von Open-Source-Software und Gerätehersteller versucht, eine ausgewogene Lösung zu schaffen, die einerseits den Bedürfnissen von Entwicklern offener Software gerecht wird und andererseits den Schutz des geistigen Eigentums der Kamerahersteller ermöglicht.

Der von der libcamera-Bibliothek angebotene Stack ist vollständig im Userspace implementiert. Um die Kompatibilität mit bestehenden Softwareumgebungen und Anwendungen sicherzustellen, werden Schichten bereitgestellt, die mit den APIs V4L, GStreamer und dem Android Camera HAL kompatibel sind. Proprietäre Komponenten, die spezifisch für jede Kamera sind und mit der Hardware interagieren, werden als Module realisiert, die in separaten Prozessen ausgeführt werden und über IPC mit der Bibliothek kommunizieren. Diese 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 Funktionen beschränkt werden, die für die Kamerasteuerung erforderlich sind.

Die Bibliothek bietet auch Zugriff auf Algorithmen zur Verarbeitung und Verbesserung der Qualität von Bildern und Videos (z. B. Weißabgleichkorrektur, Rauschunterdrückung, Videostabilisierung, Autofokus, Belichtungsauswahl usw.), die als offene externe Bibliotheken oder proprietäre isolierte Module eingebunden werden können. Die API ermöglicht den Zugang zu Funktionen wie der Erkennung der Funktionalität vorhandener externer und integrierter Kameras, der Verwendung von Geräteprofilen, der Verarbeitung von Verbindungs- und Trennereignissen der Kameras, der Verwaltung der Datenerfassung von Kameras auf der Ebene einzelner Frames und der Synchronisation von Aufnahmen mit dem Betrieb des Blitzes. Es ist möglich, mehrere Kameras im System getrennt zu betreiben und mehrere Videostreams gleichzeitig von einer Kamera aufzunehmen (z. B. einen mit niedriger Auflösung für Videokonferenzen und einen anderen mit hoher Auflösung für die Archivierung auf einer Festplatte).

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster