Composizione mista SDR e HDR

Questa pagina descrive i requisiti, la configurazione e la convalida della funzionalità di oscuramento dei contenuti SDR per la composizione mista SDR e HDR.

Android 13 migliora il supporto per la presentazione simultanea della composizione SDR e HDR sullo schermo introducendo le seguenti funzionalità:

  • Mappatura tonale della luminanza HDR a un intervallo compatibile con SDR.

    Utilizzando libtonemap, la mappatura tonale può essere resa coerente tra Hardware Composer (HWC), SurfaceFlinger e app. Gli OEM possono implementare le proprie curve di mappatura tonale da condividere tra i componenti del fornitore e del framework.

  • Oscuramento dei contenuti SDR sullo schermo quando vengono presentati contemporaneamente ai contenuti HDR.

    Quando i contenuti HDR sono sullo schermo, la luminosità dello schermo viene aumentata per adattarsi all'intervallo di luminanza maggiore dei contenuti HDR. Qualsiasi contenuto SDR presente sullo schermo viene oscurato senza problemi all'aumentare della luminosità dello schermo, in modo che la luminosità percettiva dei contenuti SDR non cambi. I produttori di apparecchiature originali possono configurare i display integrati per oscurare i contenuti SDR sullo schermo quando vengono presentati insieme ai contenuti HDR.

Requisiti dei produttori di apparecchiature originali

Per utilizzare la composizione migliorata per i contenuti HDR e SDR tramite l'oscuramento dei contenuti SDR, segui questi requisiti:

  • Implementa la versione AIDL di HWC, che include il supporto per l'oscuramento con accelerazione hardware nella pipeline dei colori del dispositivo. Consulta AIDL per HWC per l'implementazione delle funzionalità richieste.

  • L'oscuramento accurato delle sovrapposizioni hardware in HWC richiede hardware specifico per scalare la luce lineare delle sovrapposizioni. Le implementazioni senza hardware sufficiente sono tenute a rinviare la composizione alla GPU tramite SurfaceFlinger, causando un consumo eccessivo della batteria e un possibile oscuramento di bassa qualità.

  • Il dispositivo deve supportare almeno una tecnologia HDR segnalata da Display.getHdrCapabilities.

Configurazione

La funzionalità di composizione di contenuti misti SDR e HDR può essere configurata in base alle caratteristiche del dispositivo di visualizzazione integrato, in modo da stabilire il compromesso tra durata della batteria, burn-in e fedeltà dei contenuti.

L'attivazione e la regolazione della composizione migliorata vengono eseguite tramite una configurazione del display il cui schema si trova in display-device-config.xsd. I seguenti nuovi elementi chiave sono importanti per impostare la configurazione del display:

  • L'elemento sdrHdrRatioMap consente l'oscuramento SDR e definisce una tabella di ricerca (LUT) per mappare la luminosità dello schermo per l'HDR da visualizzare al punto di bianco SDR quando sono presenti contenuti HDR sullo schermo.

    Se sdrHdrRatioMap è definito, nell'ambito del controllo della luminosità dello schermo, DisplayManagerService comunica il punto di bianco SDR desiderato a SurfaceFlinger in modo che SurfaceFlinger possa inviare il rapporto di oscuramento appropriato per livello a HWC.

    Se sdrHdrRatioMap non è definito, l'oscuramento SDR non è abilitato, anche se l'implementazione HWC lo supporta.

  • L'elemento minimumHdrPercentOfScreen, con un valore compreso tra 0 e 100, controlla quando è consentito attivare la modalità di luminosità elevata di un pannello. Con Android 13, questa soglia è regolabile per abilitare la modalità di luminosità elevata in più situazioni, ad esempio negli scenari picture-in-picture. Le versioni precedenti di AOSP hanno fissato questo valore al 50%.

Vedi il seguente blocco di codice per gli elementi chiave della configurazione del display:

<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>

Precisazioni

L'attivazione delle funzionalità di mappatura tonale e di oscuramento dei contenuti SDR può portare alle seguenti situazioni:

  • La fedeltà dei contenuti HDR riprodotti sul dispositivo può aumentare, poiché gli elementi dei contenuti SDR vengono oscurati.

  • La durata della batteria può diminuire nei seguenti scenari:

    • Le implementazioni HWC che rinviano le operazioni di oscuramento alla GPU possono causare un aumento dell'utilizzo della GPU.

    • Le configurazioni del display che consentono una soglia inferiore per l'attivazione della modalità di luminosità elevata possono aumentare il consumo di energia per l'esecuzione dello schermo a una luminosità maggiore.

  • La salute dello schermo può essere compromessa a causa dell'aumento del tempo trascorso in modalità di luminosità elevata, che può causare problemi a lungo termine come il burn-in con la salute del display.

Convalida

I produttori di apparecchiature originali possono utilizzare i test VTS, inclusi nella suite di test di HWC, per verificare la correttezza dell'oscuramento e per convalidare il rapporto di oscuramento di input.

La convalida di questa funzionalità dipende dal dispositivo, pertanto non sono disponibili test CTS o GTS per supportarla.

I produttori di apparecchiature originali devono eseguire test manuali per verificare che la qualità dell'immagine degli elementi SDR oscurati sia accettabile. I produttori di apparecchiature originali possono riprodurre contenuti per gli standard HDR supportati dal dispositivo su SurfaceView per verificare che gli elementi SDR riprodotti insieme ai contenuti HDR non diventino eccessivamente luminosi.

Problemi

L'oscuramento delle immagini SDR può causare black crush o perdita di informazioni nelle aree più scure dell'immagine originale. Ciò è dovuto al fatto che i valori di colore più scuri si riducono a un insieme più piccolo di codici scuri.

Un'implementazione per l'oscuramento che causa un black crush inaccettabile deve implementare algoritmi di dithering, che inseriscono rumore nell'immagine finale in modo da ridurre gli effetti di banding.

Le implementazioni HWC che non sono in grado di eseguire il dithering dell'immagine nella posizione appropriata nella pipeline dei colori devono richiedere a SurfaceFlinger di applicare l'oscuramento e il dithering sulla GPU.

Le implementazioni possono anche regolare il valore di sdrHdrRatioMap per limitare la quantità di oscuramento per gli elementi SDR. L'oscuramento a livelli di luminosità molto bassi richiede l'utilizzo della GPU, che migliora la qualità dell'immagine ma può ridurre la durata della batteria.