Sejak diperkenalkannya video rentang dinamis tinggi (HDR), layanan streaming telah mulai menstreaming video HDR, yang berfokus pada pengalaman layar penuh. Baru-baru ini, aplikasi media sosial telah meluncurkan dukungan untuk video HDR dan Ultra HDR, yang menunjukkan meningkatnya minat terhadap penggunaan HDR di berbagai aplikasi.
Dukungan Android untuk HDR
Berikut adalah tonggak pencapaian dukungan Android untuk teknologi HDR selama beberapa tahun:
Android 7
- Dukungan awal untuk decoding dan tampilan video HDR.
- Kemajuan berkelanjutan dalam kemampuan HDR.
Android 13
- Dukungan menyeluruh untuk perekaman, encoding, dan tampilan video HDR.
- Pengenalan Komposisi SDR dan HDR campuran, yang menentukan rentang luminans yang dapat ditampilkan yang berbeda antara SDR dan HDR.
Android 14
- Dukungan untuk gambar HDR dengan Ultra HDR.
Dukungan screenshot dengan HDR juga telah berkembang dan mengalami sejumlah perubahan selama bertahun-tahun.
Kemajuan dalam kemampuan screenshot HDR
Bagian ini melacak progres kemampuan screenshot HDR dalam update Android terbaru.
Android 9
SurfaceFlinger, compositor grafis Android, memperkenalkan dukungan video HDR. Rendering GPU untuk video dan screenshot HDR didukung dengan pemetaan tone polinomial yang kompleks. Kurva pemetaan tone ini tidak selalu setara dengan pemetaan tone layar, sehingga screenshot berbeda dengan konten di layar.
Android 13
Plugin tone mapping ditambahkan ke blok rendering GPU SurfaceFlinger, yang memungkinkan OEM menyediakan shader GPU agar cocok dengan kurva tone mapping layar mereka. Screenshot hampir cocok dengan yang ada di layar, tetapi dengan perbedaan berikut:
- Screenshot tetap dalam format SDR. Akibatnya, saat dilihat bersama dengan tampilan HDR, area HDR dalam screenshot akan tampak lebih redup.
- Luminans SDR tidak dikelola, sehingga konten SDR dalam screenshot terlihat secerah konten HDR.
Dengan kata lain, setiap video HDR yang diambil dalam screenshot akan dikonversi menjadi video SDR.
Android 14
Ultra HDR menimbulkan tantangan yang signifikan untuk mengambil screenshot. Tidak seperti video, gambar biasanya dirender dalam framebuffer UI, yang memiliki dua implikasi utama:
- Gambar tidak boleh memiliki pemrosesan gambar, termasuk tonemapping, yang berbeda dari UI di sekitarnya.
- Aplikasi bertanggung jawab untuk pemetaan tone berbasis sumber saat merender UI-nya.
Untuk mengurangi tantangan ini, ada tiga kemungkinan penerapan screenshot:
- Mempertahankan detail HDR gambar Ultra HDR, sehingga UI aplikasi menjadi gelap dalam screenshot.
- Mempertahankan detail UI aplikasi, sehingga menyebabkan pemangkasan gambar Ultra HDR.
- Kompromi dengan mencerahkan UI aplikasi sekaligus memotong sorotan HDR.
Android 14 menerapkan pendekatan ketiga untuk mencerahkan UI aplikasi dan memotong sorotan HDR.
Android 15-QPR1
SurfaceFlinger menyertakan algoritma pemetaan tone lokal untuk screenshot. Proses ini melibatkan:
- Membagi gambar input menjadi gambar yang lebih kecil.
- Menghitung luminans maksimum di setiap gambar, dan menghapus nilai luminans rendah dalam setiap bagian.
- Menginterpola luminans yang dihitung melalui pemburaman dan pengambilan sampel ulang.
- Menerapkan tonemapper Reinhard berparameter ke gambar input, berdasarkan nilai luminans yang diinterpolasi.
Algoritma ini menunjukkan peningkatan screenshot yang signifikan antara Android 14 dan Android 15-QPR1, seperti yang ditunjukkan dalam contoh berikut:
Contoh 1 adalah screenshot video HDR yang ditempatkan di atas halaman Chrome yang berisi Ultra HDR. Warna UI sebagian besar dipertahankan dalam penerapan baru, dan gambar tidak lagi terpotong.
Android 14 Android 15-QPR1 Gambar 1. Perbandingan Android 14 dan Android 15-QPR1 untuk Contoh 1.
Contoh 2 adalah screenshot video HDR yang ditempatkan di atas Setelan dengan screenshot berikutnya. Di Android 14, warna screenshot akan menjadi lebih gelap secara bertahap. Di Android 15-QPR1, tonemapper mereplikasi dan mempertahankan warna UI dengan benar.
Android 14 Android 15-QPR1 Gambar 2. Perbandingan Android 14 dan Android 15-QPR1 untuk Contoh 2.