Rilis pertama libcamera, kumpulan dukungan kamera di Linux

Setelah empat tahun pengembangan, rilis pertama proyek libcamera (0.0.1) dibentuk, menawarkan tumpukan perangkat lunak untuk bekerja dengan kamera video, kamera dan TV tuner di Linux, Android dan ChromeOS, yang melanjutkan pengembangan API V4L2 dan pada akhirnya akan menggantikannya. Karena API perpustakaan masih berubah dan belum sepenuhnya stabil, proyek sejauh ini dikembangkan tanpa mencabangkan rilis individual menggunakan model pengembangan berkelanjutan. Menanggapi kebutuhan distribusi untuk melacak perubahan API yang mempengaruhi kompatibilitas, dan untuk menyederhanakan pengiriman perpustakaan dalam paket, keputusan kini telah dibuat untuk secara berkala menghasilkan rilis yang mencerminkan sejauh mana perubahan ABI dan API. Kode proyek ditulis dalam C++ dan didistribusikan di bawah lisensi LGPLv2.1.

Proyek ini sedang dikembangkan oleh pengembang subsistem multimedia dari kernel Linux bersama dengan beberapa produsen kamera untuk menormalkan situasi dengan dukungan Linux untuk kamera untuk ponsel pintar dan perangkat tertanam yang terikat dengan driver berpemilik. API V4L2, yang sudah tersedia di kernel Linux, pernah dibuat untuk bekerja dengan kamera web tradisional yang terpisah dan kurang beradaptasi dengan tren terkini yang memindahkan fungsionalitas MCU ke pundak CPU.

Tidak seperti kamera tradisional, di mana operasi pemrosesan gambar utama dilakukan pada prosesor khusus yang terpasang di dalam kamera (MCU), pada perangkat tertanam, untuk mengurangi biaya, fungsi-fungsi ini dilaksanakan di pundak CPU utama dan memerlukan driver kompleks yang termasuk komponen berlisensi non-sumber terbuka. Sebagai bagian dari proyek libcamera, pendukung perangkat lunak sumber terbuka dan produsen perangkat keras mencoba menciptakan solusi kompromi yang, di satu sisi, memenuhi kebutuhan pengembang perangkat lunak sumber terbuka, dan di sisi lain, memungkinkan perlindungan kekayaan intelektual produsen kamera.

Tumpukan yang ditawarkan oleh perpustakaan libcamera diimplementasikan sepenuhnya di ruang pengguna. Untuk memastikan kompatibilitas dengan lingkungan perangkat lunak dan aplikasi yang ada, lapisan kompatibilitas disediakan untuk V4L API, Gstreamer, dan Android Camera HAL. Komponen interaksi eksklusif dengan peralatan khusus untuk setiap kamera dirancang sebagai modul yang dijalankan dalam proses terpisah dan berinteraksi dengan perpustakaan melalui IPC. Modul tidak memiliki akses langsung ke perangkat dan mengakses peralatan melalui API perantara, permintaan yang melaluinya diperiksa, disaring, dan dibatasi hanya untuk mengakses fungsionalitas yang diperlukan untuk mengontrol kamera.

Perpustakaan juga menyediakan akses ke algoritma untuk memproses dan meningkatkan kualitas gambar dan video (penyesuaian white balance, pengurangan noise, stabilisasi video, fokus otomatis, pemilihan eksposur, dll.), yang dapat dihubungkan dalam bentuk perpustakaan eksternal terbuka atau milik modul terisolasi. API menyediakan akses ke fungsi-fungsi seperti menentukan fungsionalitas kamera eksternal dan internal yang ada, menggunakan profil perangkat, menangani kejadian sambungan dan pemutusan sambungan kamera, mengelola pengambilan data kamera pada tingkat bingkai individual, dan menyinkronkan gambar dengan pengoperasian lampu kilat. Dimungkinkan untuk bekerja secara terpisah dengan beberapa kamera dalam sistem dan mengatur pengambilan beberapa aliran video secara bersamaan dari satu kamera (misalnya, satu dengan resolusi rendah untuk konferensi video, dan lainnya dengan resolusi tinggi untuk perekaman arsip ke disk).

Sumber: opennet.ru

Tambah komentar