Le tone mapping comprime une large plage de luminance dans une plage étroite, en gardant le détail des hautes lumières et des ombres. Il est nécessaire quand le fichier porte du HDR et que l’écran ou le chemin de lecture attend du SDR. L’endroit où votre serveur l’effectue, et la question de savoir s’il doit l’effectuer, décident de ce que vous coûte un film en 4K.
1. Ce que le serveur lit comme du HDR
Deux signaux, tous deux tirés de l’analyse du fichier et non de son nom :
| Est compté comme | Quand |
|---|---|
| HDR10 | La fonction de transfert est SMPTE ST.2084 (la courbe PQ), ou le fichier porte des métadonnées annexes de l’écran de mastering ou de niveau de lumière du contenu, qui restent fiables même lorsque la caractéristique de transfert a disparu |
| HLG | La fonction de transfert est ARIB STD-B67, la courbe de la diffusion hertzienne |
Le Dolby Vision n’a pas de branche propre dans la décision de diffusion. L’analyse lit son profil et son niveau, et les statistiques de votre bibliothèque comptent ces fichiers sous une plage dynamique à part dans l’onglet Statistiques. La plupart des copies Dolby Vision portent une base HDR10 qui signale PQ : le fichier est donc converti comme du HDR10, et les métadonnées scène par scène restent non interprétées.
2. Quand le serveur convertit
| Client | Ce qui se passe |
|---|---|
| Applications de bureau et mobiles | Elles indiquent au serveur qu’elles peuvent ouvrir le fichier elles-mêmes : la session prend le chemin du fichier direct, et les octets partent tels qu’ils sont sur le disque. Le test HDR n’est jamais atteint |
| Navigateurs récents | Le profil couvre du H.264 à l’AV1 jusqu’à la 4K et 25 Mbit/s. Le HDR10 s’y ajoute lorsque l’écran affiche le HDR et que le navigateur décode le HEVC 10 bits ; ailleurs, un film HDR passe par le tone mapping, sauf si la personne qui regarde demande autre chose |
| Récepteurs AirPlay | Ils conservent le HDR10 et acceptent le HEVC : une Apple TV reçoit donc la plage dynamique telle qu’elle a été créée |
| Récepteur Chromecast par défaut | Il n’accepte que le H.264 et l’AAC : un titre HDR diffusé depuis un téléphone est donc converti pour le codec et pour la plage dynamique |
Chaque conversion évitée garde la qualité intacte et laisse un cœur libre pour une session qui n’a pas le choix.
3. Quel backend effectue le tone mapping
| Backend | Le tone mapping s’exécute sur |
|---|---|
| NVIDIA (NVENC ou CUDA) | Le matériel graphique, par libplacebo sur un périphérique Vulkan choisi indépendamment de l’encodeur : les cartes dédiées d’abord, puis les puces intégrées, les rastériseurs logiciels et les périphériques virtuels étant exclus |
| Intel Quick Sync | Son unité de traitement vidéo. Sur un titre 4K HDR, trente secondes y ont pris 3,43 secondes, contre 27,4 secondes par libplacebo sur la même puce intégrée |
| VAAPI sous Linux (Intel et AMD) | L’unité de traitement vidéo, tant que les images décodées sont encore sur le périphérique. Après un repli sur le décodage logiciel, la chaîne du processeur s’exécute et le résultat est envoyé à l’encodeur |
| AMD AMF sous Windows | Le processeur, avec l’encodage sur la carte. La même carte sur un hôte Linux convertit sur le GPU par VAAPI |
| Apple VideoToolbox sous macOS | Le processeur, avec l’encodage sur le matériel |
Auto prend le premier backend qui passe la validation, dans l’ordre NVENC, Quick Sync, VAAPI, VideoToolbox, AMF, puis, sous Linux, un périphérique V4L2 doté d’un codec.
Pour le vérifier ou l’imposer, un administrateur ouvre Paramètres, l’onglet Qualité, Transcodage du serveur. L’onglet Infos & Diagnostic liste sous forme de pastilles, sous Backends d’accélération matérielle, ce que votre machine a validé, et un backend qui n’a jamais réussi son test d’exécution n’est pas proposé.
4. L’image reste la même d’un backend à l’autre
L’opérateur est Hable partout. La chaîne logicielle convertit en lumière linéaire avec une crête nominale de cent nits, applique le tone mapping de Hable sans désaturation, puis revient en BT.709, et libplacebo reçoit le même opérateur Hable pour que les deux concordent. Faire passer le serveur du processeur à la carte graphique ne change donc pas l’étalonnage, et une mesure faite avant le changement garde son sens après.
5. Quand une carte décroche en cours de session
- Une session matérielle qui s’arrête avant son premier segment est relancée avec le décodage logiciel, l’encodeur matériel conservé et le tone mapping sur le processeur.
- Si le second lancement s’arrête de la même manière, le backend est marqué comme défaillant (tainted). La session redémarre entièrement en logiciel, et toutes les sessions suivantes de ce processus passent directement par libx264.
Le journal nomme chaque étape, alors cherchez-y :
| Ligne du journal | Signification |
|---|---|
Hardware decode failed at startup on {backend}; retrying with software decode |
La première étape |
Hardware acceleration {backend} tainted |
La deuxième étape. L’indicateur vit en mémoire : redémarrer le serveur l’efface, et le backend est de nouveau testé |
GPU HDR tonemap support detected: False |
Le filtre libplacebo ou le périphérique Vulkan n’a jamais démarré |
| Un avertissement indiquant qu’un périphérique Vulkan nommé corrompt ses transferts d’images | Ce périphérique a échoué au contrôle qui les vérifie |
6. Mesurer avec de vrais médias
La résolution, le codec source, la profondeur de couleur, les sous-titres incrustés et le débit de sortie font tous varier le coût d’un transcodage. Le HDR avec incrustation est la tâche la plus lourde du serveur, parce que la superposition exige que l’image revienne en mémoire système et que seuls NVIDIA et Quick Sync peuvent garder l’encodeur matériel pendant l’opération. Sur tout autre backend, cette combinaison fait passer la session en logiciel, et c’est dans une bibliothèque de copies de disques avec des sous-titres en image que vous la rencontrerez. Le guide des disques explique le coût du choix de l’une de ces pistes.
- Choisissez un fichier 4K HDR représentatif de votre bibliothèque, un film que vous regardez vraiment.
- Lisez-le avec le client et sur le réseau que vous utiliserez vraiment.
- Laissez-le tourner assez longtemps pour que l’encodeur se stabilise, idéalement le film entier.
Un test de capacité vous dit seulement qu’un périphérique est présent. Une charge soutenue montre si la lecture tient.
Ordre de préférence : d’abord la lecture HDR directe, puis un chemin de tone mapping accéléré qui a survécu à une vraie session, puis le processeur, qui fonctionne partout et demande une marge généreuse à haute résolution.
Questions fréquentes
Pourquoi ma Radeon encode-t-elle sans tone mapping ?
Vous êtes sous Windows, où AMF effectue l’encodage sur la carte et confie la conversion HDR au processeur. Sous Linux, une carte AMD est pilotée par VAAPI, dont l’unité de traitement vidéo convertit les images sur place.
Mon serveur utilisait la carte graphique hier et utilise le processeur aujourd’hui. Qu’est-ce qui a changé ?
Le plus probable est qu’une session a échoué au démarrage et que le backend a été écarté pour toute la durée de vie du processus. Cherchez tainted dans le journal du serveur. Redémarrer le serveur efface cet état et teste de nouveau le backend, et un second échec révèle une vraie panne.
Puis-je empêcher un navigateur d’appliquer le tone mapping à un film HDR ?
Oui. Ouvrez Paramètres, l’onglet Qualité, et regardez Image HDR. Automatique, la valeur par défaut, conserve l’image HDR10 pendant un transcodage partout où l’écran affiche le HDR et où le navigateur décode le HEVC 10 bits. Conserver le HDR la conserve sur tous les écrans, et Convertir en SDR confie le tone mapping au serveur. Choisissez Convertir en SDR si le HDR ne s’affiche pas correctement sur votre écran, puisque c’est un moniteur SDR recevant un flux HDR qui donne l’image grisâtre. L’application de bureau reçoit le fichier entier.
Le serveur comprend-il le Dolby Vision ?
Il lit la couche de base HDR10 que porte presque chaque fichier Dolby Vision et effectue la conversion sur celle-ci. Les métadonnées scène par scène sont enregistrées pendant l’analyse et comptées dans vos statistiques, mais pas interprétées pour un tone mapping. Lire le fichier sans modification dans une application de bureau ou mobile laisse le flux entier intact, cette couche comprise.