Đố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 tương phản độ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 chế độ hỗ trợ cho các cấu hình 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 các ứng dụng camera phát hiện các hồ sơ dải tương phản độ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ể DynamicRangeProfiles
, bao gồm thông tin về các hồ sơ dải tương phản độ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
.
Các ứ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 Các cấu hình bổ sung được đảm bảo cho đầu ra 10 bit trong phần Chụp thông thường.
Yêu cầu
Để hỗ trợ đầu ra của 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 chế độ hỗ trợ 10 bit, hãy xem phần 7.5. Camera trong CDD.
Triển khai
Để hỗ trợ đầu ra của 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 HAL AIDL Camera sau đây:
- Bao gồm
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
trong các chức năng của camera. - Điền sẵn
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
bằng tất cả các cấu hình dải tương phản động được hỗ trợ và một bitmap về các ràng buộc của chúng. Hồ sơHLG10
phải được hỗ trợ. Bạn cũng phải thêm một hồ sơ dải tương phản động được đề xuất để thông báo cho các ứ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 tương phản động, hãy đặt vùng đệm siêu dữ liệu tĩnh hoặc động của các vùng đệ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 của camera 10 bit trong Camera HAL, hãy xem phần sau trong metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- Thông tin về HAL cho
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
Để tham khảo cách triển khai HAL của camera hỗ trợ đầu ra của 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 của camera 10 bit và đảm bảo rằng các ứng dụng 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 đây.
- Kiểm thử 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 tương phản động tiêu chuẩn và dải tương phản động cao
Để xác thực trực quan đầu ra của camera 10 bit, giả sử thiết bị hỗ trợ hiển thị HDR (màn hình có độ sáng trên 1000 nit) và ứng dụng xem video (ví dụ: Google Photos) hỗ trợ phát video HDR.
Kiểm thử tính chính xác về chức năng của API
Để kiểm thử tính chính xác về chức năng API của đầu ra camera 10 bit, hãy chạy các kiểm thử CTS, ITS camera và VTS sau:
hardware/interfaces/camera/provider/aidl/vts/
: Kiểm thử khả năng khám phá, đị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 camera hoạt động theo quy cách API của 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 thử 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ả chụp video 10 bit bằng ứng dụng bên thứ ba tương tự (nếu không muốn nói là 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 tương phản độ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 ghi hình của một ứng dụng bên thứ ba hỗ trợ đầu ra của camera 10 bit trên thiết bị, 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à lựa chọn ưu tiên của nhà cung cấp.
Các cảnh đề 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 nhiều cảnh khác nhau bằng cả ứng dụng camera gốc và ứng dụng mẫu Camera2Video. Sau đây là những cảnh được đề xuất để sử dụng cho việc 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 một 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 tương phản động.
- Một cảnh ngoài trời sáng sủa với màu sắc rực rỡ và các vật thể phản chiếu như cản mạ crom trên ô tô, tạo ra các điểm sáng. Điều này xác nhận việc kết xuất cho các cảnh sáng với vùng sáng thậm chí còn sáng hơn.
- Cảnh có dải tương phản động thấp, chẳng hạn như cảnh thiên nhiên trong nhà ở nhà riêng 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 cảnh giúp bạn dễ dàng so sánh các cảnh liên tiếp.
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àng so với hồ sơ dải động tiêu chuẩn, hãy so sánh các bản ghi video 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 bản ghi. Để 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à các ứng dụng bên thứ ba.
Sau đây là những khía cạnh chính cần xác minh trong các cảnh được đề xuất. Các tấm nền màn hình có khả năng hiển thị HDR có mức độ sáng khác nhau (được đo bằng nit hoặc lumen), vì vậy, các con số sau đây chỉ mang tính chất ví dụ:
- Trong cảnh có ánh sáng trung bình đến ánh sáng yếu, vùng sáng của ngọn 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 1.000 nit) trong đoạn video HDR và được kết xuất ở độ sáng tối đa cho SDR (khoảng 100 nit) trong đoạn video SDR. Trong đoạn video HDR, các điểm sáng phải nổi bật trên màn hình, ghi lại cảm nhận của người dùng về dải tương phản động thực sự của cảnh. So với đoạn video HDR, đoạn video SDR sẽ có vẻ phẳng và ít sáng hơn.
- Trong cảnh đầu ra sáng, tuỳ thuộc vào chế độ điều chỉnh của thiết bị, đoạn video HDR cho thấy sự khác biệt rõ ràng về độ sáng màn hình so với đoạn video SDR. Đối với đoạn video HDR, độ sáng màn hình cho cảnh tổng thể (tuỳ thuộc vào khoảng không gian) phải cao hơn, ví dụ: lên đến 800 nit, và thậm chí cao hơn nữa đối với các vùng sáng như cản mạ crom, khoảng độ sáng tối đa.
- Ở dải động thấp trong nhà, các đoạn video HDR và SDR có màu sắc và tông màu tương tự nhau, trong đó đoạn video HDR có thể sáng hơn đoạn video 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.