Google cam kết thúc đẩy công bằng chủng tộc cho các cộng đồng Đen. Xem thế nào.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Camera HAL3

Lớp trừu tượng phần cứng máy ảnh của Android (HAL) kết nối các API khung máy ảnh cấp cao hơn trong android.hardware.camera2 với trình điều khiển và phần cứng camera bên dưới của bạn. Android 8.0 đã giới thiệu Treble , chuyển API CameraHal sang giao diện ổn định được xác định bởi Ngôn ngữ mô tả giao diện HAL (HIDL). Nếu trước đây bạn đã phát triển mô-đun HAL và trình điều khiển cho Android 7.0 trở xuống, hãy lưu ý đến những thay đổi đáng kể trong đường ống camera.

Tính năng camera HAL3

Mục đích của thiết kế lại API Camera Android là tăng đáng kể khả năng các ứng dụng kiểm soát hệ thống con camera trên các thiết bị Android trong khi sắp xếp lại API để làm cho nó hiệu quả hơn và có thể bảo trì. Kiểm soát bổ sung giúp dễ dàng xây dựng các ứng dụng camera chất lượng cao trên các thiết bị Android có thể hoạt động đáng tin cậy trên nhiều sản phẩm trong khi vẫn sử dụng thuật toán dành riêng cho thiết bị bất cứ khi nào có thể để tối đa hóa chất lượng và hiệu suất.

Phiên bản 3 của hệ thống con camera cấu trúc các chế độ hoạt động thành một chế độ xem thống nhất duy nhất, có thể được sử dụng để thực hiện bất kỳ chế độ nào trước đó và một số chế độ khác, chẳng hạn như chế độ chụp liên tục. Điều này dẫn đến việc kiểm soát người dùng tốt hơn để lấy nét và phơi sáng và xử lý hậu kỳ nhiều hơn, chẳng hạn như giảm nhiễu, độ tương phản và độ sắc nét. Hơn nữa, chế độ xem đơn giản hóa này giúp các nhà phát triển ứng dụng sử dụng các chức năng khác nhau của máy ảnh dễ dàng hơn.

API mô hình hóa hệ thống con máy ảnh như một đường ống chuyển đổi các yêu cầu đến để chụp khung hình thành khung hình, trên cơ sở 1: 1. Các yêu cầu gói gọn tất cả thông tin cấu hình về việc chụp và xử lý khung. Điều này bao gồm độ phân giải và định dạng pixel; cảm biến thủ công, ống kính và điều khiển flash; Chế độ vận hành 3A; Kiểm soát xử lý RAW-> YUV; thế hệ thống kê; và như thế.

Nói một cách đơn giản, khung ứng dụng yêu cầu một khung từ hệ thống con camera và hệ thống con camera trả về kết quả cho luồng đầu ra. Ngoài ra, siêu dữ liệu chứa thông tin như không gian màu và độ bóng của ống kính được tạo cho mỗi bộ kết quả. Bạn có thể nghĩ máy ảnh phiên bản 3 là đường truyền đến luồng một chiều của máy ảnh phiên bản 1. Nó chuyển đổi từng yêu cầu chụp thành một hình ảnh được cảm biến chụp, được xử lý thành:

  • Một đối tượng Kết quả với siêu dữ liệu về việc chụp.
  • Một đến N bộ đệm dữ liệu hình ảnh, mỗi bộ vào Surface đích của chính nó.

Tập hợp các bề mặt đầu ra có thể được cấu hình sẵn:

  • Mỗi Surface là một đích cho một luồng bộ đệm hình ảnh có độ phân giải cố định.
  • Chỉ một số lượng nhỏ Bề mặt có thể được cấu hình làm đầu ra cùng một lúc (~ 3).

Một yêu cầu chứa tất cả các cài đặt chụp mong muốn và danh sách các Bề mặt đầu ra để đẩy bộ đệm hình ảnh vào cho yêu cầu này (trong tổng số bộ được định cấu hình). Một yêu cầu có thể là một lần (với capture() ) hoặc có thể được lặp lại vô thời hạn (với setRepeatingRequest() ). Chụp có ưu tiên hơn các yêu cầu lặp lại.

Mô hình dữ liệu camera

Hình 1. Mô hình hoạt động lõi camera

Tổng quan về camera HAL1

Phiên bản 1 của hệ thống con camera được thiết kế dưới dạng hộp đen với các điều khiển cấp cao và ba chế độ hoạt động sau:

  • Xem trước
  • Ghi lại video
  • Chụp

Mỗi chế độ có một chút khác nhau và khả năng chồng chéo. Điều này khiến cho việc thực hiện các tính năng mới như chế độ chụp liên tục trở nên khó khăn, nằm giữa hai chế độ vận hành.

Sơ đồ khối camera

Hình 2. Các thành phần máy ảnh

Android 7.0 tiếp tục hỗ trợ camera HAL1 vì nhiều thiết bị vẫn dựa vào nó. Ngoài ra, dịch vụ camera Android hỗ trợ triển khai cả HAL (1 và 3), rất hữu ích khi bạn muốn hỗ trợ camera mặt trước kém khả năng hơn với camera HAL1 và camera mặt sau tiên tiến hơn với camera HAL3.

Có một mô-đun HAL camera đơn (có số phiên bản riêng), liệt kê nhiều thiết bị camera độc lập mà mỗi thiết bị có số phiên bản riêng. Mô-đun máy ảnh 2 hoặc mới hơn được yêu cầu để hỗ trợ các thiết bị 2 hoặc mới hơn và các mô-đun máy ảnh đó có thể có các phiên bản thiết bị máy ảnh (đây là ý nghĩa của chúng tôi khi chúng tôi nói Android hỗ trợ triển khai cả HAL).