In questa pagina vengono descritti 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 della presentazione simultanea della composizione SDR e HDR sullo schermo grazie alle seguenti funzionalità:
Mappatura dei toni della luminanza HDR in base a un intervallo compatibile con SDR.
Con
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 del framework.Attenuazione dei contenuti SDR sullo schermo quando presentati contemporaneamente con contenuti HDR.
Quando sullo schermo sono presenti contenuti HDR, la luminosità dello schermo viene aumentata per adattarsi all'intervallo di luminanza maggiore dei contenuti HDR. I contenuti SDR che sono presenti anche sullo schermo vengono attenuati man mano che la luminosità dello schermo aumenta in modo che la luminosità percettiva dei contenuti SDR non cambi. Gli OEM possono configurare i display integrati in modo da attenuare la luminosità dei contenuti SDR sullo schermo quando vengono presentati insieme ai contenuti HDR.
Requisiti OEM
Per utilizzare la composizione migliorata per i contenuti HDR e SDR tramite l'attenuazione dei contenuti SDR, segui questi requisiti:
Implementare la versione AIDL di HWC, che include il supporto per la luminosità con accelerazione hardware nella pipeline di colore del dispositivo. Per implementare le funzionalità richieste, consulta AIDL per HWC.
Per oscurare accuratamente gli overlay hardware nell'HWC è necessario un 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 di contenuti misti SDR e HDR può essere configurata in base alle caratteristiche del display integrato, in modo da stabilire un 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 l'oscuramento SDR e definisce una tabella di ricerca (LUT) per mappare la luminosità dello schermo affinché l'HDR venga visualizzato in base al punto di bianco SDR quando sono presenti contenuti HDR sullo schermo.Se viene definito
sdrHdrRatioMap
, nell'ambito del controllo della luminosità dello schermo,DisplayManagerService
comunica a SurfaceFlinger il punto di bianco SDR desiderato, in modo che SurfaceFlinger possa inviare il rapporto di luminosità 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. In Android 13, questa soglia è regolabile per abilitare la modalità alta luminosità 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>
Precisazioni
L'attivazione delle funzionalità di mappatura dei toni 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 sono attenuati.
La durata della batteria può diminuire nei seguenti casi:
Le implementazioni HWC che rinviano le operazioni di oscuramento alla GPU possono causare un maggiore utilizzo della GPU.
Le configurazioni dei display che consentono una soglia più bassa per l'attivazione della modalità ad alta luminosità possono aumentare l'assorbimento di potenza per l'esecuzione 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 di HWC, per verificare la correttezza dell'oscuramento e per convalidare il rapporto di luminosità dell'input.
La convalida di questa funzionalità dipende dal dispositivo, pertanto non sono previsti test CTS o GTS a supporto.
Gli OEM devono eseguire test manuali per confermare che la qualità dell'immagine degli elementi SDR attenuati sia accettabile. Gli OEM possono riprodurre contenuti per gli standard HDR che il dispositivo supporta 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 dell'oscuramento che causa un'operazione di schiacciamento del nero inaccettabile deve implementare algoritmi di dithering, che inseriscono rumore nell'immagine finale in modo da ridurre gli effetti di strisce.
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'attenuazione a livelli di luminosità molto bassi
richiede l'utilizzo della GPU, che migliora la qualità delle immagini, ma può ridurre
la durata della batteria.