La riproduzione di video HDR (High Dynamic Range) sui dispositivi mobili spesso presenta un difetto importante: l'incoerenza visiva tra i diversi pannelli. Quando si sfogliano feed con contenuti misti in cui coesistono elementi SDR (Standard Dynamic Range) e HDR, le pipeline di rendering faticano a bilanciarli. Ciò comporta transizioni irregolari e brusche e picchi di luminosità imprevedibili.
Per i creator di contenuti, questa mancanza di uniformità compromette l'intento artistico. Un video HDR classificato meticolosamente su un monitor professionale può essere visualizzato con alte luci tagliate, tonalità sbiadite o ombre schiacciate quando viene visualizzato su un dispositivo consumer.
Eclipsa video è un moderno standard video HDR progettato per risolvere queste esatte sfide dell'ecosistema cross-device. Basato sulla specifica SMPTE ST 2094-50, Eclipsa video consente ai display di adattare dinamicamente la mappatura dei contenuti in base alle funzionalità hardware fisiche e alle condizioni di illuminazione ambientale in tempo reale. Supportato dall'integrazione integrata e senza configurazione in Jetpack Media3 ExoPlayer e nelle pipeline di acquisizione standard Camera2, Eclipsa video offre ai team di ingegneria mobile un percorso senza costi e senza problemi per implementare lo streaming video adattivo all'hardware di nuova generazione che preserva l'intento artistico su ogni schermo.
Architettura tecnica di SMPTE ST 2094-50
I display dei dispositivi mobili variano notevolmente in termini di headroom di luminanza, ovvero la quantità di luminosità disponibile al di sopra del punto di bianco di riferimento del display. Quando le limitazioni hardware di un display non sono in linea con i requisiti di mastering di un video HDR, i punti salienti vengono tagliati o appaiono opachi. L'headroom e il punto di bianco di riferimento effettivi di uno schermo cambiano in modo dinamico man mano che i sensori della luce ambientale regolano il pannello in base all'ambiente circostante.
Lo standard SMPTE ST 2094-50 risolve questo problema introducendo metadati a doppio livello che garantiscono la coerenza visiva attraverso due pilastri principali:
L'ancoraggio bianco di riferimento
In questo modo viene stabilita una base di riferimento rigorosa che mappa la luminosità di picco degli elementi SDR direttamente al punto di bianco di riferimento del display. Qualsiasi valore di luminanza superiore a questo punto di ancoraggio è riservato esclusivamente alle luci HDR. Questo meccanismo di ancoraggio prevedibile garantisce che quando i livelli SDR e HDR vengono composti insieme sullo schermo, mantengano la relazione visiva prevista senza sovraesporsi a vicenda.
Curve di guadagno adattive al margine di miglioramento
Anziché forzare una curva di mappatura statica del tono, i creator incorporano metadati parametrici che indicano alla pipeline di visualizzazione esattamente come scalare quando è disponibile un headroom limitato. Lo standard offre ai creator la flessibilità granulare di scegliere se un pannello di destinazione deve tagliare delicatamente le alte luci, tagliarle in modo netto o comprimere i mezzitoni e le ombre per preservare attivamente i dettagli più fini nelle regioni luminose.
Supporto piattaforme
Il supporto a livello di piattaforma per la riproduzione e l'acquisizione di video Eclipsa è stato introdotto in Android 17 (livello API 37).
Implementare la riproduzione
Per lo sviluppo di app standard, Media3 ExoPlayer fornisce il supporto predefinito per i video Eclipsa. Durante l'analisi dei file incorporati con i metadati SMPTE 2094-50, ExoPlayer estrae e applica i metadati senza problemi, senza richiedere configurazioni personalizzate del player.
Inizializzazione standard del player:per creare un'istanza della superficie del player, consulta la Panoramica di Media3 ExoPlayer.
Override delle tracce:se la tua app esegue query o blocca in modo programmatico profili HDR specifici, consulta l'API di selezione delle tracce di Media3.
Ti consigliamo di scaricare le pipeline di riproduzione su Jetpack Media3. ExoPlayer gestisce in modo nativo l'estrazione dei contenitori di basso livello, che aggira completamente gli artefatti di decodifica a livello di piattaforma presenti nei livelli di rendering legacy in Android 16 (livello API 36) e versioni precedenti.
Implementare l'acquisizione video
Per registrare video Eclipsa da un dispositivo, la pipeline della videocamera deve essere configurata per generare metadati SMPTE 2094-50 assegnando un profilo di gamma dinamica compatibile.
Una volta convalidato il supporto del dispositivo utilizzando CameraCharacteristics, indirizza lo
stream alla superficie dell'encoder utilizzando il
profilo DynamicRangeProfiles.HLG10_SMPTE_2094_50. Per istruzioni su come
interrogare e configurare i profili di gamma dinamica nelle sessioni della videocamera, consulta
Acquisizione video HDR.
Non è richiesta alcuna configurazione esplicita del codec per i metadati SMPTE 2094-50. Il framework multimediale Android allega e trasmette automaticamente i metadati se esistono nel profilo dinamico attivo.
Considerazioni su compatibilità e prestazioni
Per monitorare le prestazioni, recupera l'oggetto Display e controlla la presenza di
LutProperties nel relativo overlayProperties per identificare la disponibilità di
percorsi con accelerazione hardware.
Per i dispositivi che non dispongono di funzionalità di accelerazione hardware, è in fase di sviluppo il supporto per la disattivazione del rendering video Eclipsa in ExoPlayer.
Risorse aggiuntive
- La specifica SMPTE ST 2094-50
- HDR Explorer: app web per l'ispezione dei metadati SMPTE ST 2094-50 e delle curve di guadagno