Composizione mista SDR e HDR

Questa pagina descrive i requisiti, la configurazione e la convalida della funzionalità di oscuramento del contenuto SDR per composizioni miste SDR e HDR.

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

  • Mappatura dei toni della luminanza HDR su una gamma compatibile con SDR.

    Utilizzando libtonemap , la mappatura dei toni 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 il fornitore e i componenti della struttura.

  • Oscuramento del contenuto SDR sullo schermo quando presentato contemporaneamente al contenuto HDR.

    Quando sullo schermo è presente contenuto HDR, la luminosità dello schermo viene aumentata per adattarsi alla maggiore gamma di luminanza del contenuto HDR. Qualsiasi contenuto SDR presente anche sullo schermo viene oscurato senza interruzioni man mano che la luminosità dello schermo aumenta, in modo che la luminosità percettiva del contenuto SDR non cambi. Gli OEM possono configurare i propri display integrati per oscurare i contenuti SDR sullo schermo quando presentati insieme a contenuti HDR.

Requisiti dell'OEM

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

  • Implementare la versione AIDL dell'HWC, che include il supporto per l'oscuramento con accelerazione hardware nella pipeline del colore del dispositivo. Fare riferimento a AIDL per HWC per implementare la funzionalità richiesta.

  • L'oscuramento accurato degli overlay hardware nell'HWC richiede hardware specifico per ridimensionare la luce lineare degli overlay. Sono necessarie implementazioni senza hardware sufficiente per rinviare la composizione alla GPU da parte di SurfaceFlinger, causando il consumo 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 mista di contenuti 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'abilitazione 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 nell'impostazione della configurazione del display:

  • L'elemento sdrHdrRatioMap abilita l'attenuazione SDR e definisce una tabella di ricerca (LUT) per mappare la luminosità dello schermo per l'HDR da visualizzare sul punto bianco SDR quando è presente contenuto HDR sullo schermo.

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

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

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

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

Avvertenze

L'abilitazione delle funzionalità di mappatura dei toni e attenuazione del contenuto 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 maggiore utilizzo della GPU.

    • Le configurazioni dello schermo che consentono una soglia inferiore per abilitare la modalità ad alta luminosità possono aumentare l'assorbimento di potenza per far funzionare lo schermo con una luminosità più elevata.

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

Validazione

Gli OEM possono utilizzare i test VTS, inclusi come parte della suite di test dell'HWC, per verificare la correttezza del dimming e per convalidare il rapporto di dimming in ingresso .

La convalida di questa funzionalità dipende dal dispositivo, quindi non esistono test CTS o GTS per supportarla.

Gli OEMS devono eseguire test manuali per verificare che la qualità dell'immagine degli elementi SDR oscurati sia accettabile. Gli OEM possono riprodurre contenuti per gli standard HDR supportati dal dispositivo su SurfaceView per verificare che eventuali elementi SDR riprodotti insieme al contenuto HDR non diventino eccessivamente luminosi.

Problemi

L'oscuramento delle immagini SDR può provocare una schiacciamento del nero o una perdita di informazioni nelle aree più scure dell'immagine originale. Ciò è dovuto al fatto che i valori di colore più scuri collassano su un insieme più piccolo di codici scuri.

Un'implementazione per l'attenuazione che provoca una compressione del nero inaccettabile 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 eseguire il dithering dell'immagine nella posizione appropriata nella pipeline del colore devono richiedere che SurfaceFlinger applichi l'attenuazione 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'uso della GPU, che migliora la qualità dell'immagine ma può ridurre la durata della batteria.