الإصدار الأول من libcamera، وهو عبارة عن حزمة لدعم الكاميرا على نظام التشغيل Linux

بعد أربع سنوات من التطوير، تم تشكيل الإصدار الأول من مشروع libcamera (0.0.1)، الذي يقدم مجموعة برامج للعمل مع كاميرات الفيديو والكاميرات وموالفات التلفزيون في Linux وAndroid وChromeOS، والذي يواصل تطوير V4L2 API وسوف يحل محله في نهاية المطاف. نظرًا لأن واجهة برمجة التطبيقات الخاصة بالمكتبة لا تزال تتغير ولم تستقر بشكل كامل بعد، فقد تم تطوير المشروع حتى الآن دون تفرع الإصدارات الفردية باستخدام نموذج التطوير المستمر. استجابة لحاجة التوزيعات لتتبع تغييرات واجهة برمجة التطبيقات (API) التي تؤثر على التوافق، ولتبسيط تسليم المكتبات في الحزم، تم الآن اتخاذ القرار بإنشاء إصدارات بشكل دوري تعكس مدى تغييرات واجهة برمجة التطبيقات (ABI) وواجهة برمجة التطبيقات (API). كود المشروع مكتوب بلغة C++ ويتم توزيعه بموجب ترخيص LGPLv2.1.

يتم تطوير المشروع من قبل مطوري الأنظمة الفرعية للوسائط المتعددة لنواة Linux مع بعض الشركات المصنعة للكاميرات من أجل تطبيع الوضع مع دعم Linux لكاميرات الهواتف الذكية والأجهزة المدمجة المرتبطة ببرامج التشغيل الخاصة. تم إنشاء API V4L2، المتوفر بالفعل في Linux kernel، في وقت ما للعمل مع كاميرات الويب المنفصلة التقليدية ولا يتكيف بشكل جيد مع الاتجاه الأخير المتمثل في نقل وظائف MCU إلى أكتاف وحدة المعالجة المركزية.

على عكس الكاميرات التقليدية، التي يتم فيها تنفيذ عمليات معالجة الصور الأولية على معالج متخصص مدمج في الكاميرا (MCU)، في الأجهزة المدمجة، لتقليل التكلفة، يتم تنفيذ هذه الوظائف على أكتاف وحدة المعالجة المركزية الرئيسية وتتطلب برنامج تشغيل معقدًا يتضمن مكونات مرخصة غير مفتوحة المصدر. كجزء من مشروع libcamera، حاول أنصار البرامج مفتوحة المصدر ومصنعي الأجهزة إنشاء حل وسط يلبي، من ناحية، احتياجات مطوري البرامج مفتوحة المصدر، ومن ناحية أخرى، يسمح بحماية الملكية الفكرية لمصنعي الكاميرات.

يتم تنفيذ المكدس الذي توفره مكتبة libcamera بالكامل في مساحة المستخدم. لضمان التوافق مع بيئات وتطبيقات البرامج الحالية، يتم توفير طبقات التوافق لـ V4L API وGstreamer وAndroid Camera HAL. تم تصميم المكونات الخاصة بكل كاميرا للتفاعل مع المعدات كوحدات تعمل في عمليات منفصلة وتتفاعل مع المكتبة عبر IPC. لا تتمتع الوحدات بإمكانية الوصول المباشر إلى الجهاز والوصول إلى المعدات من خلال واجهة برمجة التطبيقات الوسيطة، حيث يتم فحص الطلبات وتصفيتها وتقتصر فقط على الوصول إلى الوظائف الضرورية للتحكم في الكاميرا.

توفر المكتبة أيضًا إمكانية الوصول إلى خوارزميات معالجة الصور ومقاطع الفيديو وتحسين جودتها (ضبط توازن اللون الأبيض، وتقليل الضوضاء، وتثبيت الفيديو، والتركيز التلقائي، واختيار التعرض، وما إلى ذلك)، والتي يمكن توصيلها في شكل مكتبات خارجية مفتوحة أو خاصة وحدات معزولة. توفر واجهة برمجة التطبيقات إمكانية الوصول إلى ميزات مثل تحديد وظائف الكاميرات الخارجية والمدمجة الموجودة، واستخدام ملفات تعريف الجهاز، والتعامل مع أحداث اتصال الكاميرا وقطع الاتصال، وإدارة التقاط بيانات الكاميرا على مستوى الإطار الفردي، ومزامنة الصور مع الفلاش. من الممكن العمل بشكل منفصل مع العديد من الكاميرات في النظام وتنظيم الالتقاط المتزامن للعديد من تدفقات الفيديو من كاميرا واحدة (على سبيل المثال، واحدة ذات دقة منخفضة لمؤتمرات الفيديو، وأخرى بدقة عالية للتسجيل الأرشيفي على القرص).

المصدر: opennet.ru

إضافة تعليق