Untuk perangkat yang menjalankan Android 13 dan yang lebih tinggi, Android mendukung output kamera 10-bit melalui profil rentang dinamis yang dapat dikonfigurasi oleh klien kamera sebagai bagian dari konfigurasi streaming. Produsen perangkat dapat menambahkan dukungan untuk profil rentang dinamis 10-bit seperti HLG10, HDR 10, HDR 10+, dan Dolby Vision.
Dukungan output kamera 10-bit memungkinkan klien kamera menemukan profil rentang dinamis 10-bit yang didukung perangkat dengan memanggil getSupportedProfiles
. Kerangka kerja kemudian mengembalikan instance DynamicRangeProfiles
, yang mencakup informasi tentang profil rentang dinamis yang didukung dan, jika tersedia, menangkap batasan permintaan. Profil HLG10
harus didukung. Profil rentang dinamis yang disarankan tercantum di bidang REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
Klien kamera dapat mengonfigurasi kombinasi aliran dengan memanggil setDynamicRangeProfile
. Untuk informasi lebih lanjut tentang kombinasi aliran keluaran wajib, lihat tabel konfigurasi jaminan tambahan keluaran 10-bit di Pengambilan reguler .
Persyaratan
Untuk mendukung output kamera 10-bit, perangkat harus memiliki sensor kamera berkemampuan 10-bit atau lebih tinggi dengan dukungan ISP masing-masing. Untuk detail tentang persyaratan kompatibilitas terkait untuk dukungan 10-bit, lihat bagian 7.5. Kamera di CDD.
Penerapan
Untuk memberikan dukungan untuk output kamera 10-bit, produsen perangkat harus melakukan integrasi Camera AIDL HAL berikut:
- Sertakan
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
dalam kemampuan kamera. - Isi
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
dengan semua profil rentang dinamis yang didukung dan bitmap batasannya. ProfilHLG10
harus didukung. Anda juga harus menyertakan profil rentang dinamis yang disarankan untuk memberi tahu klien kamera tentang format optimal yang didukung. - Pastikan dukungan untuk nilai profil rentang dinamis selama konfigurasi streaming untuk streaming menggunakan format P010 atau dukungan untuk format yang ditentukan implementasi (
ImageFormat.PRIVATE
). - Bergantung pada profil rentang dinamis, atur buffer metadata statis atau dinamis dari buffer Gralloc 4 yang diproses sebelum memberi tahu layanan kamera.
Untuk detail lebih lanjut tentang output kamera 10-bit di Camera HAL, lihat yang berikut di metadata_definitions.xml
:
-
DYNAMIC_RANGE_TEN_BIT
- Detail HAL untuk DynamicRangeProfilesMap yang
availableDynamicRangeProfilesMap
-
recommendedTenBitDynamicRangeProfile
-
10BIT_OUTPUT
Untuk referensi implementasi Camera HAL yang mendukung output kamera 10-bit, lihat /hardware/google/camera/devices/EmulatedCamera/hwl
.
Validasi
Untuk memvalidasi penerapan output kamera 10-bit Anda dan memastikan bahwa aplikasi pihak ketiga dapat mengaktifkan fitur tersebut, sebaiknya lakukan tiga tahap validasi berikut.
- Uji kebenaran fungsional API
- Bandingkan kamera asli dan aplikasi pihak ketiga
- Bandingkan rentang dinamis standar dan rentang dinamis tinggi
Untuk validasi visual output kamera 10-bit, diasumsikan bahwa perangkat mendukung tampilan HDR (tampilan 1000+ nits), dan aplikasi tampilan video (misalnya, Google Foto) mendukung pemutaran video HDR.
Uji kebenaran fungsional API
Untuk menguji kebenaran fungsional API dari keluaran kamera 10-bit, jalankan pengujian CTS, camera ITS, dan VTS berikut:
-
hardware/interfaces/camera/provider/aidl/vts/
: Menguji penemuan dasar, konfigurasi, dan streaming, serta memeriksa keberadaan metadata HDR jika diperlukan. -
tests/camera/src/android/hardware/camera2/cts/
: Memastikan bahwa kamera berperilaku sesuai dengan spesifikasi API AOSP. -
cts/apps/CameraITS
: Mengonfirmasi bahwa perilaku video secara umum konsisten saat profil HDR digunakan. Tes khusus adalahtests/scene4/test_video_aspect_ratio_and_crop.py
.
Bandingkan kamera asli dan aplikasi pihak ketiga
Kami sangat menyarankan untuk memastikan bahwa hasil perekaman video 10-bit dengan aplikasi pihak ketiga serupa, jika tidak identik, dengan aplikasi kamera asli. Ini berarti bahwa pilihan penyetelan, seperti eksposur, rentang dinamis, dan warna, harus diteruskan dari aplikasi asli ke aplikasi pihak ketiga. Untuk memverifikasi perilaku perekaman video dari aplikasi pihak ketiga yang mendukung output kamera 10-bit di perangkat Anda, gunakan aplikasi sampel Camera2Video di GitHub. Panduan berikut berfungsi untuk menggambarkan aspek HDR yang terlihat tanpa angka objektif, karena variabilitas sensor, panel, kondisi tampilan, dan preferensi vendor.
Adegan yang disarankan untuk perbandingan
Untuk membuat perbandingan antara aplikasi kamera asli dan aplikasi pihak ketiga, rekam video menggunakan beberapa adegan berbeda dengan aplikasi kamera asli dan aplikasi sampel Camera2Video. Berikut ini adalah adegan yang disarankan untuk digunakan sebagai perbandingan:
- Pemandangan cahaya sedang hingga rendah dengan objek terang, seperti lilin atau cahaya terang kecil yang menciptakan rentang kecerahan yang signifikan. Ini menegaskan perilaku eksposur otomatis dan rentang dinamis.
- Pemandangan luar ruangan yang cerah dengan warna-warna cerah dan objek reflektif seperti bumper krom pada mobil, yang menciptakan sorotan cerah. Ini menegaskan rendering untuk pemandangan cerah dengan sorotan yang lebih cerah.
- Adegan rentang dinamis menengah dan rendah seperti pemandangan alam dalam ruangan di rumah atau kantor. Ini menegaskan bahwa kondisi pencahayaan yang kurang ekstrem berperilaku seperti yang diharapkan.
Untuk semua adegan, kami menyarankan agar orang dan wajah memverifikasi eksposur, warna, dan penanganan warna kulit. Mengurangi variasi shot-to-shot memudahkan perbandingan back-to-back.
Bandingkan rentang dinamis standar dan rentang dinamis tinggi
Untuk memastikan bahwa ada manfaat yang dirasakan dari penggunaan profil rentang dinamis 10-bit dibandingkan profil rentang dinamis standar, bandingkan pengambilan video menggunakan SDR (tanpa profil HDR) dengan video HDR untuk mengonfirmasi bahwa aspek utama HDR muncul dalam pengambilan. Untuk membandingkan SDR dan HDR, gunakan aplikasi sampel Camera2Video dan adegan yang disarankan untuk membandingkan aplikasi kamera asli dan aplikasi pihak ketiga.
Berikut ini adalah aspek kunci yang harus diverifikasi dalam adegan yang disarankan. Panel layar yang mampu HDR bervariasi dalam tingkat kecerahan (diukur dalam nits atau lumens), jadi angka-angka berikut ini dimaksudkan sebagai contoh:
- Dalam adegan cahaya sedang hingga cahaya rendah, sorotan terang dari lilin atau cahaya kecil dirender pada kecerahan maksimal untuk tampilan (mungkin hingga 1000 nits) dalam klip HDR, dan dirender pada kecerahan maksimal untuk SDR (sekitar 100 nits) di klip SDR. Dalam klip HDR, sorotan terang harus keluar dari layar, menangkap persepsi pengguna tentang rentang dinamis sebenarnya dari pemandangan itu. Dibandingkan dengan klip HDR, klip SDR akan tampak lebih datar dan kurang cerah.
- Dalam pemandangan keluaran yang cerah, tergantung pada penyetelan perangkat, klip HDR menunjukkan perbedaan yang nyata dalam kecerahan layar dibandingkan dengan klip SDR. Untuk klip HDR, kecerahan layar untuk keseluruhan pemandangan (tergantung pada ruang kepala) harus lebih tinggi, misalnya hingga 800 nits, dan terlebih lagi untuk sorotan terang seperti bumper krom, di sekitar kecerahan maksimum.
- Dalam pengambilan gambar dalam ruangan rentang dinamis menengah dan rendah, klip HDR dan SDR memiliki warna dan nada yang serupa, dengan pengambilan HDR berpotensi lebih cerah daripada SDR. HDR tidak boleh lebih gelap dari SDR. Jika pilihan penyetelan membuat hal ini tidak mungkin, pastikan bahwa perilaku aplikasi pihak ketiga cocok dengan perilaku aplikasi kamera asli.