Komposisi SDR dan HDR campuran

Halaman ini menjelaskan persyaratan, konfigurasi, dan validasi fitur peredupan konten SDR untuk komposisi SDR dan HDR campuran.

Android 13 meningkatkan dukungan untuk menyajikan komposisi SDR dan HDR secara bersamaan di layar dengan memperkenalkan fitur berikut:

  • Memetakan nada luminans HDR ke rentang yang kompatibel dengan SDR.

    Dengan libtonemap, pemetaan nada dapat dibuat konsisten antara Hardware Composer (HWC), SurfaceFlinger, dan aplikasi. OEM dapat menerapkan kurva pemetaan tone mereka sendiri untuk dibagikan antara komponen vendor dan framework.

  • Meredupkan konten SDR di layar saat ditampilkan secara bersamaan dengan konten HDR.

    Saat konten HDR ditampilkan di layar, kecerahan layar akan ditingkatkan untuk mengakomodasi peningkatan rentang luminans konten HDR. Konten SDR apa pun yang juga ada di layar diredupkan dengan lancar saat kecerahan layar meningkat sehingga kecerahan persepsi konten SDR tidak berubah. OEM dapat mengonfigurasi layar bawaannya untuk meredupkan konten SDR di layar saat ditampilkan bersama konten HDR.

Persyaratan OEM

Untuk menggunakan komposisi yang ditingkatkan untuk konten HDR dan SDR melalui peredupan konten SDR, ikuti persyaratan berikut:

  • Terapkan HWC versi AIDL, yang mencakup dukungan untuk peredupan yang dipercepat hardware di pipeline warna perangkat. Lihat AIDL untuk HWC untuk menerapkan kemampuan yang diperlukan.

  • Meredupkan overlay hardware secara akurat di HWC memerlukan hardware khusus untuk menskalakan cahaya linear overlay. Implementasi tanpa hardware yang memadai diwajibkan untuk menunda komposisi ke GPU oleh SurfaceFlinger, yang menyebabkan pengosongan baterai dan kemungkinan peredupan berkualitas rendah.

  • Perangkat harus mendukung setidaknya satu teknologi HDR yang dilaporkan oleh Display.getHdrCapabilities.

Konfigurasi

Fitur komposisi konten SDR dan HDR campuran dapat dikonfigurasi sesuai dengan karakteristik perangkat layar bawaan, sehingga kompromi antara masa pakai baterai, burn-in, dan fidelitas konten dapat ditetapkan.

Mengaktifkan dan menyesuaikan komposisi yang ditingkatkan ini dilakukan melalui konfigurasi tampilan yang skemanya terletak di display-device-config.xsd. Elemen utama baru berikut penting dalam menetapkan konfigurasi tampilan:

  • Elemen sdrHdrRatioMap memungkinkan peredupan SDR dan menentukan tabel pencarian (LUT) untuk memetakan kecerahan layar agar HDR ditampilkan ke titik putih SDR saat ada konten HDR di layar.

    Jika sdrHdrRatioMap ditentukan, sebagai bagian dari mengontrol kecerahan layar, DisplayManagerService akan menyampaikan titik putih SDR yang diinginkan ke SurfaceFlinger sehingga SurfaceFlinger dapat mengirim rasio peredupan yang sesuai per lapisan ke HWC.

    Jika sdrHdrRatioMap tidak ditentukan, peredupan SDR tidak akan diaktifkan, meskipun implementasi HWC mendukung peredupan SDR.

  • Elemen minimumHdrPercentOfScreen, dengan nilai antara 0 hingga 100, mengontrol kapan mode kecerahan tinggi panel diizinkan untuk diaktifkan. Dengan Android 13, nilai minimum ini dapat disetel untuk mengaktifkan mode kecerahan tinggi dalam lebih banyak situasi, seperti skenario picture-in-picture. AOSP versi sebelumnya telah memperbaiki nilai ini hingga 50%.

Lihat blok kode berikut untuk elemen utama konfigurasi tampilan:

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

Peringatan

Mengaktifkan fitur pemetaan tone dan peredupan konten SDR dapat menyebabkan situasi berikut:

  • Fidelitas konten HDR yang diputar di perangkat dapat meningkat, saat elemen konten SDR diredupkan.

  • Masa pakai baterai dapat berkurang dalam skenario berikut:

    • Implementasi HWC yang menunda operasi peredupan ke GPU dapat menyebabkan peningkatan penggunaan GPU.

    • Konfigurasi tampilan yang mengizinkan batas lebih rendah untuk mengaktifkan mode kecerahan tinggi dapat meningkatkan penggunaan daya untuk menjalankan layar pada kecerahan yang lebih tinggi.

  • Kesehatan layar dapat terpengaruh karena meningkatnya waktu yang dihabiskan dalam mode kecerahan tinggi, yang dapat menyebabkan masalah jangka panjang seperti burn-in pada kesehatan layar.

Validasi

OEM dapat menggunakan pengujian VTS, yang disertakan sebagai bagian dari rangkaian pengujian HWC, untuk memeriksa ketepatan peredupan dan untuk memvalidasi rasio peredupan input.

Validasi untuk fitur ini bergantung pada perangkat, sehingga tidak ada pengujian CTS atau GTS untuk mendukungnya.

OEM harus menjalankan pengujian manual untuk memvalidasi bahwa kualitas gambar elemen SDR yang diredupkan dapat diterima. OEM dapat memutar konten untuk standar HDR yang didukung perangkat melalui SurfaceView untuk memvalidasi bahwa elemen SDR yang diputar bersama konten HDR tidak menjadi terlalu terang.

Masalah

Meredupkan gambar SDR dapat menyebabkan black crush, atau hilangnya informasi di area yang lebih gelap pada gambar asli. Hal ini disebabkan oleh nilai warna yang lebih gelap yang diciutkan ke kumpulan kode gelap yang lebih kecil.

Implementasi untuk peredupan yang menyebabkan black crush yang tidak dapat diterima harus menerapkan algoritma dithering, yang memasukkan noise ke dalam gambar akhir sehingga efek banding dikurangi.

Implementasi HWC yang tidak dapat melakukan dithering pada gambar di lokasi yang sesuai dalam pipeline warna harus meminta SurfaceFlinger menerapkan penumraman dan dithering pada GPU.

Implementasi juga dapat menyesuaikan nilai sdrHdrRatioMap untuk membatasi jumlah peredupan elemen SDR. Menurunkan kecerahan ke tingkat kecerahan yang sangat rendah memerlukan penggunaan GPU, yang meningkatkan kualitas gambar, tetapi dapat mengurangi masa pakai baterai.