Integrare il video di Eclipsa

La distribuzione di video HDR (High Dynamic Range) sui dispositivi mobili spesso presenta un grave difetto: l'incoerenza visiva tra i diversi pannelli. Quando si sfogliano feed di contenuti misti in cui coesistono elementi SDR (Standard Dynamic Range) e HDR, le pipeline di rendering faticano a bilanciarli. Il risultato sono transizioni irregolari e stridenti e picchi di luminosità imprevedibili.

Per i creator di contenuti, questa mancanza di uniformità compromette l'intento artistico. Un video HDR con una correzione cromatica meticolosa su un monitor professionale può essere riprodotto con alte luci tagliate, toni sbiaditi o ombre schiacciate se visualizzato su un dispositivo consumer.

Eclipsa video è un moderno standard video HDR progettato per risolvere esattamente queste 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 sia alle funzionalità hardware fisiche sia alle condizioni di illuminazione ambientale in tempo reale. Grazie all'integrazione integrata e senza configurazione in Jetpack Media3 ExoPlayer e alle pipeline di acquisizione Camera2 standard, Eclipsa video offre ai team di ingegneria mobile un percorso a costo zero 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 drasticamente 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, le alte luci vengono tagliate o appaiono opache. L'headroom effettivo e il punto di bianco di riferimento di uno schermo cambiano dinamicamente man mano che i sensori di luce ambientale regolano il pannello in base all'ambiente circostante.

SMPTE ST 2094-50 risolve questo problema introducendo metadati a doppio livello che garantiscono la coerenza visiva attraverso due pilastri principali:

L'ancoraggio del punto di bianco di riferimento

Stabilisce 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 che superi questo ancoraggio è riservato esclusivamente alle alte 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 sbiadirsi a vicenda.

Curve di guadagno adattive all'headroom (AGTM)

Anziché forzare una curva di mappatura dei toni statica, 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 leggermente le alte luci, tagliarle completamente 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. Quando analizza i file incorporati con i metadati SMPTE 2094-50, ExoPlayer estrae e applica i metadati senza problemi, senza richiedere configurazioni del player personalizzate.

  • Inizializzazione del player standard: 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 Media3.

Ti consigliamo di scaricare le pipeline di riproduzione su Jetpack Media3. ExoPlayer gestisce in modo nativo l'estrazione dei container di basso livello, che aggira completamente gli artefatti di decodifica a livello di piattaforma noti 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 fotocamera deve essere configurata per generare metadati AGTM assegnando un profilo di intervallo dinamico compatibile.

Dopo aver 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 eseguire query e configurare i profili di intervallo dinamico nelle sessioni della fotocamera, consulta Acquisizione di video HDR.

Non è richiesta alcuna configurazione esplicita del codec per i metadati AGTM. 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 attivo e controlla la presenza di LutProperties in 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 di video Eclipsa in Exoplayer.

Risorse aggiuntive