Keluaran pertama libcamera, timbunan untuk sokongan kamera di Linux

Selepas empat tahun pembangunan, keluaran pertama projek libcamera (0.0.1) telah dibentuk, menawarkan susunan perisian untuk bekerja dengan kamera video, kamera dan penala TV dalam Linux, Android dan ChromeOS, yang meneruskan pembangunan API V4L2 dan akhirnya akan menggantikannya. Memandangkan API perpustakaan masih berubah dan belum lagi stabil sepenuhnya, projek itu setakat ini telah dibangunkan tanpa bercabang keluaran individu menggunakan model pembangunan berterusan. Sebagai tindak balas kepada keperluan pengedaran untuk menjejaki perubahan API yang menjejaskan keserasian, dan untuk memudahkan penghantaran perpustakaan dalam pakej, keputusan kini telah dibuat untuk menjana keluaran secara berkala yang mencerminkan tahap perubahan ABI dan API. Kod projek ditulis dalam C++ dan diedarkan di bawah lesen LGPLv2.1.

Projek ini sedang dibangunkan oleh pembangun subsistem multimedia kernel Linux bersama beberapa pengeluar kamera untuk menormalkan keadaan dengan sokongan Linux untuk kamera untuk telefon pintar dan peranti terbenam yang terikat dengan pemacu proprietari. API V4L2, sudah tersedia dalam kernel Linux, pada satu masa dicipta untuk berfungsi dengan kamera web berasingan tradisional dan kurang disesuaikan dengan trend terkini untuk memindahkan fungsi MCU ke bahu CPU.

Tidak seperti kamera tradisional, di mana operasi pemprosesan imej utama dilakukan pada pemproses khusus yang dibina ke dalam kamera (MCU), dalam peranti terbenam, untuk mengurangkan kos, fungsi ini dijalankan di atas bahu CPU utama dan memerlukan pemacu kompleks yang termasuk komponen berlesen bukan sumber terbuka. Sebagai sebahagian daripada projek libcamera, penyokong perisian sumber terbuka dan pengeluar perkakasan cuba mencipta penyelesaian kompromi yang, di satu pihak, memenuhi keperluan pembangun perisian sumber terbuka, dan di pihak lain, membolehkan melindungi harta intelek pengeluar kamera.

Tindanan yang ditawarkan oleh perpustakaan libcamera dilaksanakan sepenuhnya dalam ruang pengguna. Untuk memastikan keserasian dengan persekitaran perisian dan aplikasi sedia ada, lapisan keserasian disediakan untuk API V4L, Gstreamer dan Android Camera HAL. Komponen proprietari interaksi dengan peralatan khusus untuk setiap kamera direka bentuk sebagai modul yang dilaksanakan dalam proses berasingan dan berinteraksi dengan perpustakaan melalui IPC. Modul tidak mempunyai akses terus kepada peranti dan mengakses peralatan melalui API perantaraan, permintaan yang melaluinya disemak, ditapis dan dihadkan kepada hanya mengakses fungsi yang diperlukan untuk mengawal kamera.

Perpustakaan ini juga menyediakan akses kepada algoritma untuk memproses dan meningkatkan kualiti imej dan video (pelarasan imbangan putih, pengurangan hingar, penstabilan video, autofokus, pemilihan pendedahan, dll.), yang boleh disambungkan dalam bentuk perpustakaan luaran terbuka atau proprietari. modul terpencil. API menyediakan akses kepada ciri seperti menentukan kefungsian kamera luaran dan terbina dalam sedia ada, menggunakan profil peranti, mengendalikan sambungan kamera dan peristiwa pemutusan sambungan, mengurus tangkapan data kamera pada tahap bingkai individu dan menyegerakkan imej dengan denyar. Ia adalah mungkin untuk bekerja secara berasingan dengan beberapa kamera dalam sistem dan mengatur tangkapan serentak beberapa strim video dari satu kamera (contohnya, satu dengan resolusi rendah untuk persidangan video, dan satu lagi dengan resolusi tinggi untuk rakaman arkib ke cakera).

Sumber: opennet.ru

Tambah komen