Bản phát hành đầu tiên của libCamera, một ngăn xếp hỗ trợ máy ảnh trên Linux

Sau bốn năm phát triển, bản phát hành đầu tiên của dự án libCamera (0.0.1) đã được hình thành, cung cấp một gói phần mềm để làm việc với máy quay video, máy ảnh và bộ điều chỉnh TV trong Linux, Android và ChromeOS, tiếp tục phát triển API V4L2 và cuối cùng sẽ thay thế nó. Do API của thư viện vẫn đang thay đổi và chưa được ổn định hoàn toàn nên dự án cho đến nay đã phát triển mà không phân nhánh các bản phát hành riêng lẻ bằng mô hình phát triển liên tục. Để đáp ứng nhu cầu phân phối nhằm theo dõi các thay đổi API ảnh hưởng đến khả năng tương thích và để đơn giản hóa việc phân phối thư viện trong các gói, quyết định hiện đã được đưa ra là tạo các bản phát hành định kỳ phản ánh mức độ thay đổi của ABI và API. Mã dự án được viết bằng C++ và được phân phối theo giấy phép LGPLv2.1.

Dự án đang được phát triển bởi các nhà phát triển hệ thống con đa phương tiện của nhân Linux cùng với một số nhà sản xuất máy ảnh nhằm bình thường hóa tình trạng hỗ trợ Linux cho máy ảnh cho điện thoại thông minh và thiết bị nhúng được gắn với trình điều khiển độc quyền. API V4L2, đã có sẵn trong nhân Linux, đã từng được tạo ra để hoạt động với các máy ảnh web riêng biệt truyền thống và kém thích ứng với xu hướng gần đây là chuyển chức năng MCU lên vai CPU.

Không giống như các máy ảnh truyền thống, trong đó các hoạt động xử lý hình ảnh chính được thực hiện trên bộ xử lý chuyên dụng được tích hợp trong máy ảnh (MCU), trong các thiết bị nhúng, để giảm chi phí, các chức năng này được thực hiện trên vai của CPU chính và yêu cầu một trình điều khiển phức tạp. bao gồm các thành phần được cấp phép không phải nguồn mở. Là một phần của dự án libCamera, những người đề xuất phần mềm nguồn mở và các nhà sản xuất phần cứng đã cố gắng tạo ra một giải pháp thỏa hiệp, một mặt đáp ứng nhu cầu của các nhà phát triển phần mềm nguồn mở, mặt khác, cho phép bảo vệ tài sản trí tuệ của các nhà sản xuất máy ảnh.

Ngăn xếp do thư viện libCamera cung cấp được triển khai hoàn toàn trong không gian người dùng. Để đảm bảo khả năng tương thích với các ứng dụng và môi trường phần mềm hiện có, các lớp tương thích được cung cấp cho API V4L, Gstreamer và Android Camera HAL. Các thành phần độc quyền dành riêng cho từng camera để tương tác với thiết bị được thiết kế dưới dạng mô-đun chạy trong các quy trình riêng biệt và tương tác với thư viện thông qua IPC. Các mô-đun không có quyền truy cập trực tiếp vào thiết bị và truy cập thiết bị thông qua API trung gian, các yêu cầu qua đó được kiểm tra, lọc và giới hạn chỉ truy cập chức năng cần thiết để điều khiển máy ảnh.

Thư viện cũng cung cấp quyền truy cập vào các thuật toán xử lý và cải thiện chất lượng hình ảnh và video (điều chỉnh cân bằng trắng, giảm nhiễu, ổn định video, tự động lấy nét, chọn độ phơi sáng, v.v.), có thể được kết nối dưới dạng thư viện mở bên ngoài hoặc độc quyền. các mô-đun bị cô lập. API cung cấp quyền truy cập vào các tính năng như xác định chức năng của camera bên ngoài và camera tích hợp hiện có, sử dụng hồ sơ thiết bị, xử lý các sự kiện kết nối và ngắt kết nối camera, quản lý việc thu thập dữ liệu camera ở cấp khung hình riêng lẻ và đồng bộ hóa hình ảnh với đèn flash. Có thể làm việc riêng biệt với một số camera trong hệ thống và tổ chức ghi đồng thời nhiều luồng video từ một camera (ví dụ: một camera có độ phân giải thấp cho hội nghị truyền hình và một camera khác có độ phân giải cao để ghi lưu trữ vào đĩa).

Nguồn: opennet.ru

Thêm một lời nhận xét