libcamera, библиотека поддержки камер для Linux, Android и ChromeOS

библиотека

libcamera — стек камер с открытым исходным кодом

После четырех лет разработки выпущена первая версия проекта libcamera (0.0.1), который предлагает программный стек для работы с видеокамерами, камерами и ТВ-тюнерами в Linux, Android и ChromeOS, который продолжает разработку V4L2 API и в конечном итоге заменит его.

Поскольку API библиотеки все еще меняется и не полностью стабилизирован, пока что проект велся без форка отдельных версий по модели непрерывной разработки.





В ответ на потребность дистрибутивов отслеживать изменения API, влияющие на совместимость, и упростить доставку библиотеки в пакетах, теперь было решено выпускать регулярные выпуски, отражающие степень изменения ABI и API. .





О libcamera

Проект иразрабатывается разработчиками мультимедийной подсистемы ядра линукса вместе с некоторыми производителями камер стандартизировать поддержку Linux для камер смартфонов и встроенных устройств, привязанных к проприетарным драйверам.

API V4L2, который уже доступен в ядре Linux. когда-то он был создан для работы с традиционными автономными веб-камерами и не соответствует недавней тенденции переноса функций с MCU на процессор.





В отличие от традиционных камер, в которых операции первичной обработки изображения выполняются во встроенном в камеру процессоре специального назначения (MCU), во встраиваемых устройствах для снижения затрат эти функции ложатся на плечи основного CPU и требуют сложной драйвер, включающий лицензионные компоненты, которые невозможно открыть.

В рамках проекта libcamera, лос Сторонники свободного программного обеспечения и производители оборудования пытались найти компромиссное решение. что, с одной стороны, отвечает потребностям разработчиков ПО с открытым исходным кодом, а с другой стороны, защищает интеллектуальную собственность производителей камер.

Батарея, которая предлагает библиотека libcamera реализован полностью в пользовательском пространстве. Чтобы обеспечить совместимость с существующими приложениями и средами программирования, предусмотрены слои для совместимости с V4L API, Gstreamer и Android Camera HAL.





Компоненты взаимодействия проприетарное оборудование для конкретной камеры упакованы как модули, которые работают в отдельных процессах и взаимодействовать с библиотекой через IPC. Модули не имеют прямого доступа к устройству и обращаются к оборудованию через промежуточный API, через который просматриваются, фильтруются и дросселируются запросы на доступ к функционалу, необходимому для управления камерой.

Библиотека также предоставляет доступ к алгоритмам обработки и улучшения качества изображений и видео (коррекция баланса белого, шумоподавление, стабилизация видео, автофокус, выбор экспозиции и т. д.), которые можно подключать как открытые внешние библиотеки, так и проприетарные изолированные модули.





La API предоставляет доступ к функциям таких как определение функциональности существующих встроенных и внешних камер, использование профилей устройств, обработка событий подключения и отключения камеры, управление захватом данных камеры на уровне отдельных кадров и синхронизация изображений с работой вспышки. Возможна работа отдельно с несколькими камерами в системе и организация захвата нескольких видеопотоков с одной камеры одновременно (например, один с низким разрешением для видеоконференции,

Este выпуск патча инициирует процедуры выпуска пакета для проекта. Первоначальные выпуски будут включать увеличение номера версии исправления (0.0.x), а также соответствующее увеличение имени сына.

Наконец, для тех, кто хочет узнать об этом больше, следует знать, что код проекта написан на C++ и распространяется под лицензией LGPLv2.1. Код проекта, а также инструкции по компиляции библиотеки для работы с ним можно посмотреть По следующей ссылке.




2022-10-19T01:16:12
приложений