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

Máy ảnh 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 phần cứng và trình điều khiển máy ảnh bên dưới của bạn. Android 8.0 đã giới thiệu Treble , chuyển API CameraHal sang một 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 trình điều khiển và mô-đun HAL camera cho Android 7.0 trở xuống, hãy lưu ý những thay đổi đáng kể trong đường dẫn camera.

Các tính năng của Camera HAL3

Mục đích của việc thiết kế lại Android Camera API là tăng đáng kể khả năng của các ứng dụng kiểm soát hệ thống con camera trên thiết bị Android trong khi tổ chức lại API để làm cho nó hiệu quả hơn và có thể bảo trì được. Kiểm soát bổ sung giúp dễ dàng xây dựng các ứng dụng máy ảnh 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 các 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 máy ảnh 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 giúp người dùng kiểm soát tốt hơn đối với tiêu điểm và độ phơi sáng cũng như 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 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 cho các lần chụp khung hình thành các khung hình, trên cơ sở 1: 1. Các yêu cầu đóng gói tất cả thông tin cấu hình về việc chụp và xử lý một khung. Điều này bao gồm độ phân giải và định dạng pixel; điều khiển cảm biến, ống kính và đèn flash bằng tay; 3A các chế độ hoạt động; Điều khiển xử lý RAW-> YUV; thống kê thế hệ; và như thế.

Nói một cách dễ hiểu, khung ứng dụng yêu cầu một khung hình từ hệ thống con camera và hệ thống con camera trả về kết quả cho một 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 thấu kính được tạo cho mỗi tập kết quả. Bạn có thể coi camera phiên bản 3 như một đường dẫn đến luồng một chiều của phiên bản camera 1. Nó chuyển đổi mỗi yêu cầu chụp thành một hình ảnh được chụp bởi cảm biến, được xử lý thành:

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

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

  • Mỗi Bề mặt là điểm đến cho một luồng bộ đệm hình ảnh có độ phân giải cố định.
  • Chỉ một số lượng nhỏ các 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ộ đã định cấu hình). Một yêu cầu có thể là một lần (với capture() ) hoặc nó có thể được lặp lại vô thời hạn (với setRepeatingRequest() ). Ảnh chụp được ưu tiên hơn các yêu cầu lặp lại.

Mô hình dữ liệu máy ảnh

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

Tổng quan về máy ảnh HAL1

Phiên bản 1 của hệ thống con máy ảnh được thiết kế như một 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
  • Vẫn chụp

Mỗi chế độ có các khả năng hơi khác nhau và chồng chéo. Điều này gây khó khăn cho việc triển khai các tính năng mới như chế độ chụp liên tục, nằm giữa hai trong số các chế độ hoạt động.

Sơ đồ khối camera

Hình 2. Các thành phần của 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ụ máy ảnh Android hỗ trợ triển khai cả HAL (1 và 3), rất hữu ích khi bạn muốn hỗ trợ máy ảnh mặt trước kém khả năng hơn với máy ảnh HAL1 và máy ảnh mặt sau nâng cao hơn với máy ảnh HAL3.

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