Linux-da kamera dəstəyi üçün bir yığın olan libcamera-nın ilk buraxılışı

Dörd illik inkişafdan sonra V0.0.1L4 API-nin inkişafını davam etdirən Linux, Android və ChromeOS sistemlərində videokameralar, kameralar və TV tünerləri ilə işləmək üçün proqram təminatı təklif edən libcamera layihəsinin (2) ilk buraxılışı yaradıldı. və nəticədə onu əvəz edəcək. Kitabxananın API-si hələ də dəyişdiyindən və hələ tam stabilləşdirilmədiyindən, layihə indiyə qədər davamlı inkişaf modelindən istifadə edərək fərdi buraxılışları şaxələndirmədən inkişaf etmişdir. Uyğunluğa təsir edən API dəyişikliklərini izləmək və paketlərdə kitabxanaların çatdırılmasını sadələşdirmək üçün paylanma ehtiyacına cavab olaraq, indi ABI və API dəyişikliklərinin həcmini əks etdirən relizlərin vaxtaşırı yaradılması barədə qərar qəbul edilmişdir. Layihə kodu C++ dilində yazılmışdır və LGPLv2.1 lisenziyası altında paylanmışdır.

Layihə Linux nüvəsinin multimedia altsistemlərinin tərtibatçıları tərəfindən bəzi kamera istehsalçıları ilə birlikdə smartfonlar üçün kameralar və xüsusi sürücülərə bağlı quraşdırılmış qurğular üçün Linux dəstəyi ilə vəziyyəti normallaşdırmaq məqsədilə hazırlanır. Artıq Linux nüvəsində mövcud olan API V4L2 bir vaxtlar ənənəvi ayrıca veb kameralarla işləmək üçün yaradılmışdır və MCU funksionallığının CPU-nun çiyinlərinə köçürülməsi tendensiyası ilə zəif uyğunlaşdırılmışdır.

Xərcləri azaltmaq üçün kameraya (MCU) quraşdırılmış xüsusi prosessorda, quraşdırılmış cihazlarda ilkin görüntü emal əməliyyatlarının həyata keçirildiyi ənənəvi kameralardan fərqli olaraq, bu funksiyalar əsas CPU-nun çiyinlərində yerinə yetirilir və mürəkkəb bir sürücü tələb edir. qeyri-açıq mənbə lisenziyalı komponentləri ehtiva edir. Libcamera layihəsinin bir hissəsi olaraq, açıq mənbə proqram təminatı tərəfdarları və aparat istehsalçıları, bir tərəfdən, açıq mənbə proqram təminatı tərtibatçılarının ehtiyaclarını ödəyən, digər tərəfdən isə kamera istehsalçılarının əqli mülkiyyətini qorumağa imkan verən kompromis həll yolu yaratmağa çalışdılar.

Libcamera kitabxanasının təklif etdiyi yığın tamamilə istifadəçi məkanında həyata keçirilir. Mövcud proqram mühitləri və tətbiqləri ilə uyğunluğu təmin etmək üçün V4L API, Gstreamer və Android Camera HAL üçün uyğunluq qatları təmin edilmişdir. Hər bir kameraya xas olan avadanlıqla qarşılıqlı əlaqənin mülkiyyət komponentləri ayrı-ayrı proseslərdə icra edilən və IPC vasitəsilə kitabxana ilə qarşılıqlı əlaqədə olan modullar kimi tərtib edilmişdir. Modulların cihaza birbaşa çıxışı yoxdur və avadanlığa aralıq API vasitəsilə daxil olur, sorğular yoxlanılır, süzülür və yalnız kameranı idarə etmək üçün lazım olan funksionallığa girişlə məhdudlaşır.

Kitabxana, həmçinin açıq xarici kitabxanalar və ya mülkiyyət formasında qoşula bilən şəkillər və videoların (ağ balansının tənzimlənməsi, səs-küyün azaldılması, video sabitləşməsi, avtofokus, ekspozisiya seçimi və s.) işlənməsi və keyfiyyətinin yaxşılaşdırılması üçün alqoritmlərə çıxışı təmin edir. təcrid olunmuş modullar. API mövcud xarici və daxili kameraların funksionallığını təyin etmək, cihaz profillərindən istifadə etmək, kamera bağlantısı və əlaqəni kəsmə hadisələrini idarə etmək, fərdi kadr səviyyəsində kamera məlumatlarının çəkilişini idarə etmək və şəkilləri flaşla sinxronlaşdırmaq kimi funksiyalara girişi təmin edir. Sistemdə bir neçə kamera ilə ayrıca işləmək və bir kameradan bir neçə video axınının eyni vaxtda çəkilişini təşkil etmək mümkündür (məsələn, videokonfrans üçün biri aşağı, digəri isə diskə arxiv qeydi üçün yüksək ayırdetməli).

Mənbə: opennet.ru

Добавить комментарий