Поддръжката в Linux за видео камери и подобни устройства се подобрява с libcamera

0
102
Поддръжката в Linux за видео камери и подобни устройства се подобрява с libcamera

Общността LinuxTV, която се занимава с поддръжката на мултимедийни подсистеми в ядрото на Linux, заедно с няколко производители на камери, създадоха проекта libcamera, чиято цел е създаването на библиотека, която да унифицира поддръжката и да опрости работата с видео камери, ТВ тунери и фото камери при операционните системи Linux, ChromeOS и Android. Създадената библиотека евентуално може да замести използваната към момента V4L2.

Проектът е написан на C++ и се разпространява под LGPLv2.1 лиценза. С този проект разработчиците ще се стремят да обърнат ситуацията, в която към момента за използването на видео устройства са необходими драйвъри, които обикновено са със затворен код. По този начин потребителите на подобни устройства са задължени да използват затворении драйвъри и специфични програмни интерфейси.

Библиотеката V4L2, която се използва в момента и се осигурява от Linux ядрото, е проектирана да работи с традиционните самостоятелни уеб камери, но е много слабо пригодена за последните тенденции в сферата за преместване на товара от MCU вградения в устройствата процесор към процесора на машината и именно тук са необходими въпросните драйвъри, които са със затворен код и по този начин не могат да се осигурят и за други операционни системи.

Участниците в проекта libcamera и поддръжниците на производителите на софтуер и оборудване с отворен код ще се опитат да създадат компромисно решение, което ще удовлетвори нуждите на разработчиците от една страна, а от друга ще защити интелектуалната собственост на производителите на фотоапарати. За да се осигури съвместимост със съществуващите софтуерни среди и приложения, се осигуряват слоеве, които дават съвместимост на ниво Gstreamer, API V4L и Android Camera HAL.

Прочетете още:  Linux инсталаторът Calamares се приготвя за Wayland

Всеки един фотоапарат има специфични затворени компоненти, които комуникират с оборудването под формата на модули, които се изпълняват в отделни процеси и взаимодействат с библиотеката чрез IPC. Тези въпросни модули нямат директен достъп до устройството, а за такъв се обръщат към междинен 3A API. Заявките отправени към този API биват проверявани, ограничавани и филтрирани само с помощта на функционалността, необходима за контролиране на камерата.

Проектът libcamera също така ще има за цел и предоставянето на различни функии и възможности като контрол на заснемането на данни от камери на ниво отделни кадри и синхронизиране на изображения със светкавица, ще бъдат изработени алгоритми за подобряване на качеството на изображението като стабилизация на видеото, баланс на белия цвят, намаляване на шумовете в изображението и пр., възможности за едновременно заснемане на няколко видео потока от една камера, API за определяне на списъка с наличните външни и вградени камери, възможности за едновременно заснемане на няколко видео потока от една камера, осигуряване на структури с информация за възможностите на всяка камера и др.

0/5 (0 Reviews)