Đối với các thiết bị chạy Android 13 trở lên, Android hỗ trợ đầu ra camera 10 bit thông qua các hồ sơ dải động mà ứng dụng camera có thể định cấu hình trong quá trình định cấu hình luồng. Nhà sản xuất thiết bị có thể thêm tính năng hỗ trợ cho các hồ sơ dải động 10 bit như HLG10, HDR 10, HDR 10+ và Dolby Vision.
Tính năng hỗ trợ đầu ra camera 10 bit cho phép ứng dụng camera phát hiện các hồ sơ dải động 10 bit
được hỗ trợ của một thiết bị bằng cách gọi
getSupportedProfiles.
Sau đó, khung sẽ trả về một thực thể của
DynamicRangeProfiles,
bao gồm thông tin về các hồ sơ dải động được hỗ trợ và các ràng buộc về yêu cầu chụp (nếu
có). Hồ sơ
HLG10
phải được hỗ trợ. Hồ sơ dải động được đề xuất có trong
trường
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE.
Ứng dụng camera có thể định cấu hình các tổ hợp luồng bằng cách gọi
setDynamicRangeProfile.
Để biết thêm thông tin về các tổ hợp luồng đầu ra bắt buộc, hãy xem bảng
10-bit output additional guaranteed configurations trong phần
Regular capture.
Yêu cầu
Để hỗ trợ đầu ra camera 10 bit, thiết bị phải có cảm biến camera 10 bit trở lên có hỗ trợ ISP tương ứng. Để biết thông tin chi tiết về các yêu cầu tương thích liên quan đối với tính năng hỗ trợ 10 bit, hãy xem phần 7.5. Camera trong CDD.
Triển khai
Để hỗ trợ đầu ra camera 10 bit, nhà sản xuất thiết bị phải thực hiện các hoạt động tích hợp Camera AIDL HAL sau:
- Thêm
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BITvào các tính năng của camera. - Điền
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAPbằng tất cả các hồ sơ dải động được hỗ trợ và bitmap về các ràng buộc của chúng. Hồ sơHLG10phải được hỗ trợ. Bạn cũng phải thêm một hồ sơ dải động được đề xuất để thông báo cho ứng dụng camera về định dạng được hỗ trợ tối ưu. - Đảm bảo hỗ trợ giá trị hồ sơ dải động trong quá trình định cấu hình luồng cho các luồng sử dụng định dạng P010 hoặc hỗ trợ định dạng do quá trình triển khai xác định (
ImageFormat.PRIVATE). - Tuỳ thuộc vào hồ sơ dải động, hãy đặt bộ đệm siêu dữ liệu tĩnh hoặc động của các bộ đệm Gralloc 4 đã xử lý trước khi thông báo cho dịch vụ camera.
Để biết thêm thông tin chi tiết về đầu ra camera 10 bit trong Camera HAL, hãy xem các nội dung sau trong metadata_definitions.xml:
DYNAMIC_RANGE_TEN_BIT- Thông tin chi tiết về HAL cho
availableDynamicRangeProfilesMap recommendedTenBitDynamicRangeProfile10BIT_OUTPUT
Để tham khảo cách triển khai Camera HAL hỗ trợ đầu ra camera 10 bit, hãy xem
/hardware/google/camera/devices/EmulatedCamera/hwl.
Xác nhận kết quả
Để xác thực việc triển khai đầu ra camera 10 bit và đảm bảo rằng các ứng dụng của bên thứ ba có thể bật tính năng này, bạn nên thực hiện 3 giai đoạn xác thực sau.
- Kiểm tra tính chính xác về chức năng của API
- So sánh camera gốc và ứng dụng bên thứ ba
- So sánh dải động tiêu chuẩn và dải động cao
Để xác thực trực quan đầu ra camera 10 bit, giả sử thiết bị hỗ trợ hiển thị HDR (màn hình 1000+ nit) và ứng dụng xem video (ví dụ: Google Photos) hỗ trợ phát video HDR.
Kiểm tra tính chính xác về chức năng của API
Để kiểm tra tính chính xác về chức năng của API đối với đầu ra camera 10 bit, hãy chạy các bài kiểm tra CTS, camera ITS và VTS sau:
hardware/interfaces/camera/provider/aidl/vts/: Kiểm tra tính năng phát hiện, định cấu hình và phát trực tuyến cơ bản, đồng thời kiểm tra sự hiện diện của siêu dữ liệu HDR khi cần.tests/camera/src/android/hardware/camera2/cts/: Đảm bảo rằng camera hoạt động theo quy cách API AOSP.cts/apps/CameraITS: Xác nhận rằng hành vi chung của video nhất quán khi sử dụng hồ sơ HDR. Bài kiểm tra cụ thể làtests/scene4/test_video_aspect_ratio_and_crop.py.
So sánh camera gốc và ứng dụng bên thứ ba
Bạn nên đảm bảo rằng kết quả của việc quay video 10 bit bằng ứng dụng bên thứ ba tương tự (nếu không giống hệt) với ứng dụng camera gốc. Điều này có nghĩa là các lựa chọn điều chỉnh, chẳng hạn như độ phơi sáng, dải động và màu sắc, sẽ được chuyển từ ứng dụng gốc sang ứng dụng bên thứ ba. Để xác minh hành vi quay video của một ứng dụng bên thứ ba hỗ trợ đầu ra camera 10 bit trên thiết bị của bạn, hãy sử dụng ứng dụng mẫu Camera2Video trên GitHub. Hướng dẫn sau đây minh hoạ các khía cạnh có thể nhìn thấy của HDR mà không có số liệu khách quan, do sự khác biệt về cảm biến, bảng điều khiển, điều kiện xem và tuỳ chọn của nhà cung cấp.
Các cảnh được đề xuất để so sánh
Để so sánh giữa ứng dụng camera gốc và ứng dụng bên thứ ba, hãy quay video bằng một số cảnh khác nhau bằng cả ứng dụng camera gốc và ứng dụng mẫu Camera2Video. Sau đây là các cảnh được đề xuất để so sánh:
- Một cảnh có ánh sáng trung bình đến ánh sáng yếu với một vật thể sáng, chẳng hạn như nến hoặc ánh sáng nhỏ nhưng sáng tạo ra dải độ sáng đáng kể. Điều này xác nhận hành vi phơi sáng tự động và dải động.
- Một cảnh ngoài trời sáng với màu sắc rực rỡ và các vật thể phản chiếu như cản mạ crôm trên ô tô, tạo ra các vùng sáng. Điều này xác nhận quá trình kết xuất cho các cảnh sáng với các vùng sáng thậm chí còn sáng hơn.
- Một cảnh có dải động thấp, tầm trung, chẳng hạn như cảnh tự nhiên trong nhà ở nhà hoặc văn phòng. Điều này xác nhận rằng các điều kiện ánh sáng ít khắc nghiệt hơn hoạt động như mong đợi.
Đối với tất cả các cảnh, bạn nên có người và khuôn mặt để xác minh độ phơi sáng, màu sắc và cách xử lý tông màu da. Việc giảm sự khác biệt giữa các bức ảnh giúp so sánh dễ dàng hơn.
So sánh dải động tiêu chuẩn và dải động cao
Để đảm bảo rằng việc sử dụng hồ sơ dải động 10 bit mang lại lợi ích rõ rệt so với hồ sơ dải động tiêu chuẩn, hãy so sánh các video được quay bằng SDR (không có hồ sơ HDR) với video HDR để xác nhận rằng các khía cạnh chính của HDR xuất hiện trong các video được quay. Để so sánh SDR và HDR, hãy sử dụng ứng dụng mẫu Camera2Video và các cảnh được đề xuất để so sánh ứng dụng camera gốc và ứng dụng của bên thứ ba.
Sau đây là các khía cạnh chính cần xác minh trong các cảnh được đề xuất. Các bảng điều khiển có khả năng hiển thị HDR có độ sáng khác nhau (được đo bằng nit hoặc lumen), vì vậy, các số sau đây chỉ là ví dụ:
- Trong cảnh có ánh sáng trung bình đến ánh sáng yếu, các vùng sáng của nến hoặc ánh sáng nhỏ được kết xuất ở độ sáng tối đa cho màn hình (có thể lên đến 1000 nit) trong clip HDR và được kết xuất ở độ sáng tối đa cho SDR (khoảng 100 nit) trong clip SDR. Trong clip HDR, các vùng sáng phải sáng hơn màn hình, ghi lại nhận thức của người dùng về dải động thực của cảnh. So với clip HDR, clip SDR sẽ xuất hiện phẳng hơn và ít sáng hơn.
- Trong cảnh đầu ra sáng, tuỳ thuộc vào quá trình điều chỉnh của thiết bị, clip HDR cho thấy sự khác biệt rõ rệt về độ sáng màn hình so với clip SDR. Đối với clip HDR, độ sáng màn hình cho toàn bộ cảnh (tuỳ thuộc vào khoảng không) phải cao hơn, ví dụ: lên đến 800 nit và thậm chí còn cao hơn đối với các vùng sáng như cản mạ crôm, khoảng độ sáng tối đa.
- Trong quá trình quay trong nhà có dải động thấp, tầm trung, các clip HDR và SDR có màu sắc và tông màu tương tự nhau, trong đó video được quay bằng HDR có thể sáng hơn video được quay bằng SDR. HDR không được tối hơn SDR. Nếu các lựa chọn điều chỉnh khiến điều này không thể thực hiện được, hãy đảm bảo rằng hành vi của ứng dụng bên thứ ba khớp với hành vi của ứng dụng camera gốc.