La diffusion de vidéos HDR (High Dynamic Range) sur les appareils mobiles souffre souvent d'un défaut majeur : l'incohérence visuelle sur différents écrans. Lorsque vous parcourez des flux de contenu mixte où des éléments SDR (Standard Dynamic Range) et HDR coexistent, les pipelines de rendu ont du mal à les équilibrer. Cela entraîne des transitions erratiques et brutales, ainsi que des pics de luminosité imprévisibles.
Pour les créateurs de contenu, ce manque d'uniformité compromet l'intention artistique. Une vidéo HDR méticuleusement étalonnée sur un moniteur professionnel peut être rendue avec des tons clairs coupés, des tons délavés ou des tons foncés écrasés lorsqu'elle est visionnée sur un appareil grand public.
La vidéo Eclipsa est une norme vidéo HDR moderne conçue pour résoudre ces problèmes d'écosystème inter-appareils. Basée sur la spécification SMPTE ST 2094-50, la vidéo Eclipsa permet aux écrans d'adapter dynamiquement le mappage de contenu en fonction des capacités matérielles physiques et des conditions d'éclairage ambiant en temps réel. Grâce à une intégration intégrée et sans configuration dans Jetpack Media3 ExoPlayer et les pipelines de capture Camera2 standards, la vidéo Eclipsa offre aux équipes d'ingénierie mobile un moyen sans frais et simple d'implémenter la diffusion vidéo adaptative de nouvelle génération qui préserve l'intention artistique sur tous les écrans.
Architecture technique de SMPTE ST 2094-50
Les écrans mobiles varient considérablement en termes de marge de luminance, c'est-à-dire la quantité de luminosité disponible au-dessus du point blanc de référence de l'écran. Lorsque les limites matérielles d'un écran ne correspondent pas aux exigences de mastering d'une vidéo HDR, les tons clairs sont coupés ou semblent ternes. La marge réelle et le point blanc de référence d'un écran changent de manière dynamique lorsque les capteurs de lumière ambiante ajustent l'écran à l'environnement.
SMPTE ST 2094-50 résout ce problème en introduisant des métadonnées à double couche qui garantissent la cohérence visuelle grâce à deux piliers principaux :
L'ancre blanche de référence
Cela établit une base de référence stricte qui mappe la luminosité maximale des éléments SDR directement au point blanc de référence de l'écran. Toute valeur de luminance dépassant cette ancre est strictement réservée aux tons clairs HDR. Ce mécanisme d'ancrage prévisible garantit que lorsque les calques SDR et HDR sont composés ensemble à l'écran, ils conservent la relation visuelle prévue sans se délaver mutuellement.
Courbes de gain adaptatives à la marge (AGTM)
Au lieu de forcer une courbe de mappage de tonalités statique, les créateurs intègrent des métadonnées paramétriques qui indiquent au pipeline d'affichage comment effectuer la mise à l'échelle lorsque la marge disponible est limitée. La norme offre aux créateurs la flexibilité granulaire de choisir si un écran cible doit couper les tons clairs de manière douce ou dure, ou compresser les tons moyens et les tons foncés pour préserver activement les détails les plus fins dans les zones lumineuses.
Plates-formes compatibles
La compatibilité au niveau de la plate-forme avec la lecture et la capture vidéo Eclipsa est introduite dans Android 17 (niveau d'API 37).
Implémenter la lecture
Pour le développement d'applications standard, Media3 ExoPlayer offre une compatibilité prête à l'emploi avec la vidéo Eclipsa. Lors de l'analyse des fichiers intégrés aux métadonnées SMPTE 2094-50, ExoPlayer extrait et applique les métadonnées de manière transparente, sans nécessiter de configurations de lecteur personnalisées.
Initialisation du lecteur standard : pour instancier votre surface de lecteur, consultez Présentation de Media3 ExoPlayer.
Remplacements de pistes : si votre application interroge ou verrouille par programmation des profils HDR spécifiques, consultez API de sélection de pistes Media3.
Nous vous recommandons de décharger les pipelines de lecture sur Jetpack Media3. ExoPlayer gère de manière native l'extraction de conteneurs de bas niveau, ce qui contourne complètement les artefacts de décodage connus au niveau de la plate-forme présents sur les anciennes couches de rendu dans Android 16 (niveau d'API 36) et versions antérieures.
Implémenter la capture vidéo
Pour enregistrer une vidéo Eclipsa à partir d'un appareil, votre pipeline de caméra doit être configuré pour générer des métadonnées AGTM en attribuant un profil de plage dynamique compatible.
Une fois la compatibilité de l'appareil validée à l'aide de CameraCharacteristics, acheminez le flux vers votre surface d'encodeur à l'aide du profil DynamicRangeProfiles.HLG10_SMPTE_2094_50. Pour savoir comment interroger et configurer des profils de plage dynamique dans les sessions de caméra, consultez
Capture vidéo HDR.
Aucune configuration de codec explicite n'est requise pour les métadonnées AGTM. Le framework multimédia Android joint et transmet automatiquement les métadonnées si elles existent dans le profil dynamique actif.
Considérations relatives à la compatibilité et aux performances
Pour surveiller les performances, récupérez l'objet Display actif et recherchez LutProperties dans ses overlayProperties afin d'identifier la disponibilité des chemins accélérés par le matériel.
Pour les appareils qui ne disposent pas de capacités d'accélération matérielle, la compatibilité avec la désactivation du rendu vidéo Eclipsa dans Exoplayer est en cours de développement.
Ressources supplémentaires
- Spécification SMPTE ST 2094-50
- HDR Explorer : application Web permettant d'inspecter les métadonnées et les courbes de gain SMPTE ST 2094-50