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
.
Framework kemudian menampilkan instance
DynamicRangeProfiles
,
yang menyertakan informasi tentang profil rentang dinamis yang didukung dan, jika
tersedia, tangkap batasan permintaan. 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 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 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.
Implementasi
Guna memberikan dukungan untuk output kamera 10-bit, produsen perangkat harus melakukan integrasi Camera AIDL HAL berikut:
- Menyertakan
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 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, setel buffer metadata statis atau dinamis dari buffer Gralloc 4 yang diproses sebelum memberi tahu layanan kamera.
Untuk mengetahui detail selengkapnya tentang output kamera 10-bit di Camera HAL, lihat
hal berikut 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 ketepatan fungsi API
- Membandingkan kamera native dan aplikasi pihak ketiga
- Membandingkan rentang dinamis standar dan rentang dinamis tinggi
Untuk validasi visual output kamera 10-bit, dianggap bahwa perangkat mendukung tampilan HDR (layar 1000+ nits), dan aplikasi untuk menonton video (misalnya, Google Foto) mendukung pemutaran video HDR.
Menguji kebenaran fungsi API
Untuk menguji ketepatan fungsi 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 adanya metadata HDR jika diperlukan.tests/camera/src/android/hardware/camera2/cts/
: Memastikan 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 native dan aplikasi pihak ketiga
Sebaiknya pastikan hasil pengambilan video 10-bit dengan aplikasi pihak ketiga serupa, jika tidak identik, dengan aplikasi kamera native. Artinya, pilihan penyesuaian, seperti eksposur, rentang dinamis, dan warna, harus dibawa dari aplikasi native 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 yang terlihat dari HDR tanpa angka objektif, karena variabilitas sensor, panel, kondisi tampilan, dan preferensi vendor.
Adegan yang disarankan untuk perbandingan
Untuk membuat perbandingan antara aplikasi kamera native dan aplikasi pihak ketiga, rekam video menggunakan beberapa scene yang berbeda dengan aplikasi kamera native dan aplikasi contoh Camera2Video. Berikut adalah scene yang disarankan untuk digunakan untuk perbandingan:
- Tampilan cahaya sedang hingga redup dengan objek terang, seperti lilin atau cahaya terang kecil yang menciptakan rentang kecerahan yang signifikan. Tindakan ini akan mengonfirmasi 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 terang. Hal ini mengonfirmasi rendering untuk adegan cerah dengan sorotan yang lebih terang.
- Adegan rentang dinamis rendah dan menengah seperti adegan alami dalam ruangan di rumah atau kantor. Hal ini mengonfirmasi bahwa kondisi pencahayaan yang tidak terlalu ekstrem berperilaku seperti yang diharapkan.
Untuk semua scene, sebaiknya gunakan orang dan wajah untuk memverifikasi penanganan eksposur, warna, dan warna kulit. Mengurangi variasi pengambilan gambar akan memudahkan perbandingan berturut-turut.
Membandingkan 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 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 native dan aplikasi pihak ketiga.
Berikut adalah aspek utama yang perlu diverifikasi dalam scene yang disarankan. Panel layar yang mampu menampilkan HDR memiliki tingkat kecerahan yang bervariasi (diukur dalam nit atau lumen), sehingga angka berikut yang diberikan dimaksudkan sebagai contoh:
- Pada pemandangan cahaya tengah 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 cerah akan bersinar di luar layar, yang menangkap persepsi pengguna tentang rentang dinamis yang sebenarnya dari scene tersebut. Dibandingkan dengan klip HDR, klip SDDR akan terlihat lebih datar dan kurang terang.
- Dalam tampilan output yang terang, bergantung pada penyesuaian perangkat, klip HDR menunjukkan perbedaan yang jelas pada kecerahan layar dibandingkan dengan klip SDR. Untuk klip HDR, kecerahan layar untuk keseluruhan scene (bergantung pada headroom) harus lebih tinggi, misalnya, hingga 800 nit, dan lebih tinggi lagi untuk sorotan terang seperti bumper krom, sekitar kecerahan maksimum.
- Dalam perekaman dalam ruangan dengan rentang dinamis rendah dan menengah, klip HDR dan SDR memiliki warna dan tone yang serupa, dengan perekaman HDR berpotensi lebih terang daripada SDR. HDR tidak boleh lebih gelap daripada SDR. Jika pilihan penyesuaian membuat hal ini tidak mungkin, pastikan perilaku aplikasi pihak ketiga cocok dengan perilaku aplikasi kamera native.