Composizione mista SDR e HDR

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

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

  • Esegue la mappatura tonale della luminosità HDR in una gamma compatibile con SDR.

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

  • Diminuzione della luminosità dei contenuti SDR sullo schermo quando vengono presentati contemporaneamente ai contenuti HDR.

    Quando sullo schermo sono presenti contenuti HDR, la luminosità dello schermo viene aumentata per adattarsi all'ampliamento dell'intervallo di luminanza dei contenuti HDR. Tutti i contenuti SDR che sono anche sullo schermo vengono attenuati senza interruzioni man mano che la luminosità dello schermo aumenta in modo che la luminosità percettiva dei contenuti SDR non cambi. Gli OEM possono configurare i propri display integrati in modo da attenuare i contenuti SDR sullo schermo quando vengono visualizzati 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 dimmerizzazione con accelerazione hardware nella pipeline dei colori del dispositivo. Per implementare le funzionalità richieste, consulta AIDL per HWC.

  • Per attenuare con precisione gli overlay hardware nell'HWC è necessario hardware specifico per scalare la luce lineare degli overlay. Le implementazioni senza hardware sufficiente devono rimandare la composizione alla GPU da parte di SurfaceFlinger, causando un consumo della batteria e un possibile attenuamento di bassa qualità.

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

Configurazione

La funzionalità di composizione dei 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 la regolazione 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 della Rete Display:

  • L'elemento sdrHdrRatioMap attiva la dimmerizzazione SDR e definisce una tabella di ricerca (LUT) per mappare la luminosità dello schermo per HDR in modo che venga visualizzata nel punto di bianco SDR quando sullo schermo sono presenti contenuti HDR.

    Se sdrHdrRatioMap è definito, nell'ambito del controllo della luminosità dello schermo, DisplayManagerService comunica il punto di bianco SDR desiderato a SurfaceFlinger in modo che quest'ultimo 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 supporta l'attenuazione SDR.

  • 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 attivare 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%.

Consulta il seguente blocco di codice per gli elementi chiave della configurazione della 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>

Limitazioni

L'attivazione delle funzionalità di mappatura tonale e di attenuazione 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 attenuati.

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

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

    • Le configurazioni del display che consentono una soglia più bassa per attivare la modalità di luminosità elevata possono aumentare il consumo di energia per l'utilizzo dello schermo a una luminosità più elevata.

  • La salute dello schermo può essere compromessa a causa del maggiore tempo trascorso in modalità di luminosità elevata, 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 dell'HWC, per verificare la correttezza del dimming e convalidare il rapporto di dimming in entrata.

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à delle immagini degli elementi SDR attenuati sia accettabile. Gli OEM possono riprodurre contenuti per gli standard HDR supportati dal dispositivo oltre 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. Questo è dovuto al fatto che i valori di colore più scuri vengono raggruppati in un insieme più piccolo di codici scuri.

Un'implementazione per l'oscuramento che causa un'attenuazione dei neri non accettabile deve implementare algoritmi di dithering, che iniettano rumore nell'immagine finale in modo da ridurre gli effetti di banding.

Le implementazioni HWC che non sono in grado di applicare il dithering all'immagine nella posizione appropriata della pipeline di colori devono richiedere a SurfaceFlinger di applicare l'attenuazione e il dithering alla GPU.

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