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 dei toni della luminanza HDR in un intervallo compatibile con SDR.

    Utilizzando libtonemap, la mappatura della tonalità può essere resa coerente tra Hardware Composer (HWC), SurfaceFlinger e le app. Gli OEM possono implementare le proprie curve di mappatura dei toni 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 alla gamma di luminanza maggiore dei contenuti HDR. Qualsiasi contenuto SDR presente sullo schermo viene oscurato in modo fluido all'aumentare della luminosità dello schermo in modo che la luminosità percepita dei contenuti SDR non cambi. Gli OEM possono configurare i display integrati in modo che i contenuti SDR sullo schermo vengano oscurati quando vengono presentati insieme a contenuti HDR.

Requisiti OEM

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

  • Implementa la versione AIDL dell'HWC, che include il supporto per la regolazione della luminosità con accelerazione hardware nella pipeline dei colori del dispositivo. Per implementare le funzionalità richieste, consulta AIDL per HWC.

  • Per oscurare con precisione le sovrapposizioni hardware in HWC è necessario hardware specifico per scalare la luce lineare delle sovrapposizioni. Le implementazioni senza hardware sufficiente sono tenute a rimandare la composizione alla GPU da 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 SDR e HDR misti 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 l'ottimizzazione della composizione migliorata vengono eseguite tramite una configurazione di visualizzazione 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'attenuazione 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 sullo schermo sono presenti contenuti HDR.

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

    Se sdrHdrRatioMap non è definito, l'attenuazione SDR non è attivata, anche se l'implementazione HWC la supporta.

  • L'elemento minimumHdrPercentOfScreen, con un valore compreso tra 0 e 100, controlla quando è consentito attivare la modalità ad alta luminosità di un pannello. Con Android 13, questa soglia è regolabile per attivare la modalità ad alta luminosità 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 di visualizzazione:

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

Avvertenze

L'attivazione delle funzionalità di mappatura del tono e oscuramento dei contenuti SDR può comportare le 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 rimandano 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à ad alta luminosità possono aumentare il consumo energetico per il funzionamento dello schermo a una luminosità maggiore.

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

Convalida

Gli OEM possono utilizzare i test VTS, inclusi nella suite di test HWC, per verificare la correttezza dell'attenuazione e per convalidare il rapporto di attenuazione dell'input.

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

Gli OEM devono eseguire test manuali per verificare che la qualità dell'immagine degli elementi SDR attenuati sia accettabile. Gli OEM 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'attenuazione delle immagini SDR può causare schiacciamento del nero 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 nero inaccettabile deve implementare algoritmi di dithering, che inseriscono rumore nell'immagine finale in modo che gli effetti di banding vengano ridotti.

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

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