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 di perangkat dengan memanggil
getSupportedProfiles
.
Kemudian, framework menampilkan instance
DynamicRangeProfiles
,
yang mencakup informasi tentang profil rentang dinamis yang didukung dan, jika
tersedia, batasan permintaan pengambilan. Profil
HLG10
harus didukung. Profil rentang dinamis yang direkomendasikan tercantum di kolom
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
Klien kamera dapat mengonfigurasi kombinasi streaming dengan memanggil
setDynamicRangeProfile
.
Untuk mengetahui informasi selengkapnya tentang kombinasi aliran output wajib, lihat tabel
Konfigurasi tambahan yang dijamin untuk output 10-bit di
Perekaman reguler.
Persyaratan
Untuk mendukung output kamera 10-bit, perangkat harus memiliki sensor kamera yang mampu menghasilkan 10-bit atau lebih tinggi dengan dukungan ISP masing-masing. Untuk mengetahui detail tentang persyaratan kompatibilitas terkait untuk dukungan 10-bit, lihat bagian 7.5. Kamera di CDD.
Implementasi
Untuk memberikan dukungan pada output kamera 10-bit, produsen perangkat harus melakukan integrasi HAL AIDL Kamera 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 batasan profil tersebut. ProfilHLG10
harus didukung. Anda juga harus menyertakan profil rentang dinamis yang direkomendasikan untuk memberi tahu klien kamera tentang format yang didukung secara optimal. - Pastikan dukungan untuk nilai profil rentang dinamis selama konfigurasi streaming untuk streaming yang menggunakan format P010 atau dukungan untuk format yang ditentukan implementasi (
ImageFormat.PRIVATE
). - Bergantung pada profil rentang dinamis, tetapkan buffer metadata statis atau dinamis dari buffer Gralloc 4 yang diproses sebelum memberi tahu layanan kamera.
Untuk mengetahui detail lebih lanjut tentang output kamera 10-bit di Camera HAL, lihat
berikut ini di metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- Detail HAL untuk
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
Untuk implementasi Camera HAL referensi yang mendukung output kamera 10-bit, lihat
/hardware/google/camera/devices/EmulatedCamera/hwl
.
Validasi
Untuk memvalidasi penerapan output kamera 10-bit dan memastikan bahwa aplikasi pihak ketiga dapat mengaktifkan fitur tersebut, sebaiknya lakukan tiga tahap validasi berikut.
- Menguji kebenaran fungsional API
- Membandingkan aplikasi kamera bawaan dan aplikasi pihak ketiga
- Membandingkan rentang dinamis standar dan rentang dinamis tinggi
Untuk validasi visual output kamera 10-bit, diasumsikan bahwa perangkat mendukung tampilan HDR (tampilan 1000+ nit), dan aplikasi penampil video (misalnya, Google Foto) mendukung pemutaran video HDR.
Menguji kebenaran fungsional API
Untuk menguji kebenaran fungsional API output kamera 10-bit, jalankan pengujian CTS, ITS kamera, dan VTS berikut:
hardware/interfaces/camera/provider/aidl/vts/
: Menguji penemuan, konfigurasi, dan streaming dasar, serta memeriksa keberadaan metadata HDR jika diperlukan.tests/camera/src/android/hardware/camera2/cts/
: Memastikan bahwa kamera berperilaku sesuai dengan spesifikasi AOSP API.cts/apps/CameraITS
: Mengonfirmasi bahwa perilaku video umum konsisten saat profil HDR digunakan. Pengujian spesifiknya adalahtests/scene4/test_video_aspect_ratio_and_crop.py
.
Membandingkan kamera bawaan dan aplikasi pihak ketiga
Sebaiknya pastikan hasil pengambilan video 10-bit dengan aplikasi pihak ketiga serupa, jika tidak identik, dengan aplikasi kamera bawaan. Artinya, pilihan penyesuaian, seperti eksposur, rentang dinamis, dan warna, harus diteruskan dari aplikasi bawaan ke aplikasi pihak ketiga. Untuk memverifikasi perilaku perekaman video aplikasi pihak ketiga yang mendukung output kamera 10-bit di perangkat Anda, gunakan aplikasi contoh Camera2Video di GitHub. Panduan berikut berfungsi untuk mengilustrasikan aspek HDR yang terlihat tanpa angka objektif, karena variabilitas sensor, panel, kondisi tampilan, dan preferensi vendor.
Adegan yang disarankan untuk perbandingan
Untuk membandingkan aplikasi kamera bawaan dan aplikasi pihak ketiga, rekam video menggunakan beberapa adegan yang berbeda dengan aplikasi kamera bawaan dan aplikasi contoh Camera2Video. Berikut adalah saran adegan yang dapat digunakan untuk perbandingan:
- Adegan dengan cahaya sedang hingga redup dengan objek terang, seperti lilin atau cahaya terang kecil yang menciptakan rentang kecerahan yang signifikan. Hal ini mengonfirmasi perilaku eksposur otomatis dan rentang dinamis.
- Adegan luar ruangan yang cerah dengan warna-warna cerah dan objek reflektif seperti bumper krom pada mobil, yang menciptakan sorotan cerah. Hal ini mengonfirmasi rendering untuk adegan cerah dengan sorotan yang lebih cerah.
- Adegan rentang dinamis rendah hingga sedang, seperti adegan alami di dalam ruangan di rumah atau kantor. Hal ini mengonfirmasi bahwa kondisi pencahayaan yang tidak terlalu ekstrem berperilaku seperti yang diharapkan.
Untuk semua adegan, sebaiknya ada orang dan wajah untuk memverifikasi eksposur, warna, dan penanganan warna kulit. Mengurangi variasi pengambilan gambar ke pengambilan gambar mempermudah perbandingan berurutan.
Membandingkan rentang dinamis standar dan rentang dinamis tinggi
Untuk memastikan bahwa ada manfaat yang dirasakan dari penggunaan profil rentang dinamis 10-bit dibandingkan dengan profil rentang dinamis standar, bandingkan rekaman video menggunakan SDR (tanpa profil HDR) dengan video HDR untuk mengonfirmasi bahwa aspek utama HDR muncul dalam rekaman. Untuk membandingkan SDR dan HDR, gunakan aplikasi contoh Camera2Video dan adegan yang disarankan untuk membandingkan aplikasi kamera bawaan dan aplikasi pihak ketiga.
Berikut adalah aspek utama yang perlu diverifikasi dalam adegan yang disarankan. Panel layar yang kompatibel dengan HDR memiliki tingkat kecerahan yang berbeda-beda (diukur dalam nit atau lumen), sehingga angka berikut diberikan sebagai contoh:
- Dalam adegan cahaya sedang hingga cahaya redup, sorotan terang lilin atau cahaya kecil dirender pada kecerahan maksimum untuk layar (mungkin hingga 1.000 nit) dalam klip HDR, dan dirender pada kecerahan maksimum untuk SDR (sekitar 100 nit) dalam klip SDR. Dalam klip HDR, sorotan terang harus bersinar dari layar, menangkap persepsi pengguna tentang rentang dinamis sebenarnya dari adegan tersebut. Dibandingkan dengan klip HDR, klip SDR akan tampak lebih datar dan kurang cerah.
- Dalam adegan output yang cerah, bergantung pada penyetelan perangkat, klip HDR menunjukkan perbedaan yang jelas dalam kecerahan layar dibandingkan dengan klip SDR. Untuk klip HDR, kecerahan layar untuk keseluruhan adegan (bergantung pada ruang atas) harus lebih tinggi, misalnya, hingga 800 nit, dan bahkan lebih tinggi lagi untuk sorotan terang seperti bumper krom, di sekitar kecerahan maksimum.
- Pada pengambilan dalam ruangan dengan rentang dinamis rendah di kelas menengah, klip HDR dan SDR memiliki warna dan nada yang serupa, dengan pengambilan HDR yang berpotensi lebih terang daripada SDR. HDR tidak boleh lebih gelap daripada SDR. Jika pilihan penyetelan membuat hal ini tidak mungkin, pastikan perilaku aplikasi pihak ketiga cocok dengan perilaku aplikasi kamera bawaan.