Linux-da kamerani qo'llab-quvvatlash uchun stek bo'lgan libcamera-ning birinchi versiyasi

To'rt yillik rivojlanishdan so'ng, V0.0.1L4 API rivojlanishini davom ettiruvchi Linux, Android va ChromeOS-da videokameralar, kameralar va televizor tyunerlari bilan ishlash uchun dasturiy ta'minot to'plamini taklif etuvchi libcamera loyihasining birinchi versiyasi (2) yaratildi. va oxir-oqibat uni almashtiradi. Kutubxona API-si hali ham o'zgarib borayotgani va hali to'liq barqarorlashtirilmaganligi sababli, loyiha doimiy rivojlanish modelidan foydalangan holda alohida nashrlarni tarmoqlanmasdan ishlab chiqdi. Muvofiqlikka ta'sir qiluvchi API o'zgarishlarini kuzatib borish va kutubxonalarni paketlarda etkazib berishni soddalashtirish uchun tarqatish zarurligiga javoban, endi vaqti-vaqti bilan ABI va API o'zgarishlarini aks ettiruvchi relizlarni yaratish to'g'risida qaror qabul qilindi. Loyiha kodi C++ da yozilgan va LGPLv2.1 litsenziyasi ostida tarqatilgan.

Loyiha Linux yadrosining multimedia quyi tizimlarini ishlab chiquvchilari tomonidan baΚΌzi kamera ishlab chiqaruvchilari bilan birgalikda xususiy drayverlarga ulangan smartfonlar va oΚ»rnatilgan qurilmalar uchun kameralar uchun Linux qoΚ»llab-quvvatlashi bilan bogΚ»liq vaziyatni normallashtirish maqsadida ishlab chiqilmoqda. Linux yadrosida allaqachon mavjud bo'lgan API V4L2 bir vaqtning o'zida an'anaviy alohida veb-kameralar bilan ishlash uchun yaratilgan va MCU funksionalligini protsessorning yelkasiga o'tkazish tendentsiyasiga yomon moslashgan.

An'anaviy kameralardan farqli o'laroq, birlamchi tasvirni qayta ishlash operatsiyalari kameraga (MCU) o'rnatilgan maxsus protsessorda, o'rnatilgan qurilmalarda, xarajatlarni kamaytirish uchun amalga oshiriladi, bu funktsiyalar asosiy protsessorning yelkasida amalga oshiriladi va murakkab drayverni talab qiladi. ochiq manba bo'lmagan litsenziyalangan komponentlarni o'z ichiga oladi. Libcamera loyihasining bir qismi sifatida ochiq kodli dasturiy ta'minot tarafdorlari va apparat ishlab chiqaruvchilari, bir tomondan, ochiq kodli dasturiy ta'minotni ishlab chiquvchilarning ehtiyojlarini qondiradigan, ikkinchi tomondan, kamera ishlab chiqaruvchilarining intellektual mulkini himoya qilishga imkon beruvchi murosali yechim yaratishga harakat qilishdi.

Libcamera kutubxonasi tomonidan taqdim etilgan stek butunlay foydalanuvchi maydonida amalga oshiriladi. Mavjud dasturiy ta'minot muhitlari va ilovalari bilan mosligini ta'minlash uchun V4L API, Gstreamer va Android Camera HAL uchun moslik qatlamlari taqdim etiladi. Uskunalar bilan o'zaro ta'sir qilish uchun har bir kameraga xos bo'lgan xususiy komponentlar alohida jarayonlarda ishlaydigan va IPC orqali kutubxona bilan o'zaro ta'sir qiluvchi modullar sifatida yaratilgan. Modullar qurilmaga to'g'ridan-to'g'ri kirish huquqiga ega emas va uskunaga oraliq API orqali kirishadi, ular orqali so'rovlar tekshiriladi, filtrlanadi va faqat kamerani boshqarish uchun zarur bo'lgan funksiyalarga kirish bilan cheklanadi.

Kutubxona, shuningdek, ochiq tashqi kutubxonalar yoki xususiy formatda ulanishi mumkin bo'lgan tasvirlar va videolarni qayta ishlash va sifatini yaxshilash algoritmlariga (oq rang balansini sozlash, shovqinni kamaytirish, video barqarorlashtirish, avtofokus, ekspozitsiyani tanlash va boshqalar) kirishni ta'minlaydi. izolyatsiya qilingan modullar. API mavjud tashqi va oΚ»rnatilgan kameralarning funksionalligini aniqlash, qurilma profillaridan foydalanish, kamera ulanishi va uzilish hodisalarini boshqarish, individual kadrlar darajasida kamera maΚΌlumotlarini yozib olishni boshqarish va tasvirlarni flesh bilan sinxronlash kabi funksiyalarga kirish imkonini beradi. Tizimdagi bir nechta kameralar bilan alohida ishlash va bir kameradan bir vaqtning o'zida bir nechta video oqimlarni suratga olishni tashkil qilish mumkin (masalan, videokonferentsiya uchun past piksellar soniga ega va diskka arxiv yozish uchun yuqori aniqlikdagi).

Manba: opennet.ru

a Izoh qo'shish