libcamera, biblioteka obsługi aparatu dla systemów Linux, Android i ChromeOS

libcamera

libcamera to stos kamer o otwartym kodzie źródłowym

Po czterech latach rozwoju, wypuszczono pierwszą wersję projektu libcamera (0.0.1), który oferuje stos oprogramowania do pracy z kamerami, kamerami i tunerami telewizyjnymi w systemach Linux, Android i ChromeOS, który kontynuuje rozwój interfejsu API V4L2 i ostatecznie go zastąpi.

Ponieważ API biblioteki wciąż się zmienia i nie jest w pełni ustabilizowane, do tej pory projekt był rozwijany bez rozwidlenia poszczególnych wersji przy użyciu modelu ciągłego rozwoju.

W odpowiedzi na potrzebę śledzenia przez dystrybucje zmian API, które mają wpływ na kompatybilność, oraz aby ułatwić dostarczanie biblioteki w paczkach, zdecydowano się teraz tworzyć regularne wydania, które odzwierciedlają zakres zmian ABI i API .

O libcamera

Projekt ijest rozwijany przez twórców podsystemów multimedialnych jądra Linuksa razem z niektórymi producentami aparatów w celu standaryzacji obsługi Linuksa dla aparatów smartfonów i urządzeń wbudowanych, które są powiązane z zastrzeżonymi sterownikami.

API V4L2, które jest już dostępne w jądrze Linux kiedyś został zbudowany do pracy z tradycyjnymi samodzielnymi kamerami internetowymi i nie pasuje do ostatniego trendu przenoszenia funkcjonalności z MCU na procesor.

W przeciwieństwie do tradycyjnych kamer, w których podstawowe operacje przetwarzania obrazu są wykonywane w procesorze specjalnego przeznaczenia (MCU) wbudowanym w kamerę, w urządzeniach wbudowanych, w celu obniżenia kosztów, funkcje te są umieszczone na barkach głównego procesora i wymagają wyrafinowanego sterownik zawierający licencjonowane komponenty, których nie można otworzyć.

W ramach projektu libcamera, im Zwolennicy wolnego oprogramowania i producenci sprzętu próbowali stworzyć rozwiązanie kompromisowe który z jednej strony spełnia potrzeby programistów open source, a z drugiej chroni własność intelektualną producentów aparatów fotograficznych.

Bateria, która oferuje biblioteka libcamera jest w całości zaimplementowany w przestrzeni użytkownika. Aby zapewnić zgodność z istniejącymi aplikacjami i środowiskami programistycznymi, udostępniono warstwy zapewniające zgodność z interfejsem API V4L, Gstreamerem i Android Camera HAL.

Komponenty interakcji zastrzeżony sprzęt do kamer są pakowane jako moduły, które działają w osobnych procesach i interakcji z biblioteką za pośrednictwem IPC. Moduły nie mają bezpośredniego dostępu do urządzenia i uzyskują dostęp do sprzętu poprzez pośredni interfejs API, przez który żądania dostępu do funkcjonalności potrzebnej do sterowania kamerą są przeglądane, filtrowane i dławione.

Biblioteka zapewnia również dostęp do algorytmów przetwarzania i poprawy jakości zdjęć i filmów (korekta balansu bieli, usuwanie szumów, stabilizacja wideo, autofokus, wybór ekspozycji itp.), które można podłączyć jako otwarte biblioteki zewnętrzne lub zastrzeżone izolowane moduły.

La API zapewnia dostęp do funkcji takie jak określanie funkcjonalności istniejących kamer wbudowanych i zewnętrznych, korzystanie z profili urządzeń, obsługa zdarzeń podłączania i odłączania kamery, zarządzanie przechwytywaniem danych z kamery na poziomie poszczególnych klatek oraz synchronizacja obrazów z działaniem lampy błyskowej. Można pracować oddzielnie z kilkoma kamerami w systemie i organizować przechwytywanie kilku strumieni wideo z jednej kamery jednocześnie (np. jedna o niskiej rozdzielczości do wideokonferencji,

to wydanie poprawki inicjuje procedury wydawania pakietu dla projektu. Pierwsze wydania będą obejmować zwiększenie numeru wersji łatki (0.0.x), a także odpowiedni wzrost imienia syna.

Wreszcie, ci, którzy chcą dowiedzieć się więcej na ten temat, powinni wiedzieć, że kod projektu jest napisany w C++ i jest rozpowszechniany na licencji LGPLv2.1. Można zapoznać się z kodem projektu, a także z instrukcją skompilowania biblioteki do pracy z nim W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.