SDR vs HDR en profondeur : PQ, HLG, tone mapping et encodage HDR10
PQ et HLG, 10 bits, métadonnées HDR10 et tone mapping expliqués, avec des commandes x265, SVT-AV1 et FFmpeg testées.
L’essentiel
SDR et HDR diffèrent par la façon dont une vidéo transforme des valeurs de code en lumière. Le SDR utilise une courbe gamma pensée pour un écran de 100 nits et les couleurs BT.709 ; le HDR utilise la courbe PQ ou HLG de l’ITU-R BT.2100, les couleurs BT.2020, au moins 10 bits, et souvent des métadonnées qui indiquent à l’écran quelle était la luminosité du master.
- SDR et HDR diffèrent sur quatre plans : fonction de transfert, primaires colorimétriques, profondeur de bits et métadonnées.
- PQ associe chaque valeur de code à un niveau de lumière fixe, jusqu’à 10 000 nits. HLG est relatif à la luminance maximale de l’écran et n’a donc pas besoin de métadonnées de mastering.
- PQ exige au moins 10 bits : selon notre calcul, un pas PQ en 8 bits vers 100 nits représente un saut de lumière de 4,7 %, contre 1,1 % en 10 bits.
- Le tone mapping fait tenir les hautes lumières HDR sur un écran moins lumineux, avec une courbe statique par titre ou des métadonnées dynamiques (HDR10+, Dolby Vision) par scène.
- Les tags ne font qu’étiqueter les pixels. Changer ce que les pixels signifient demande une vraie conversion, et ffprobe permet de vérifier les deux.
Qu’est-ce qui fait qu’une vidéo est HDR ?
Une vidéo HDR est une vidéo dont les valeurs de code décrivent une plage de lumière bien plus large que le SDR, encodée avec la fonction de transfert PQ ou HLG de l’ITU-R BT.2100 et transportée avec les primaires BT.2020 en 10 ou 12 bits.
| Plan | SDR | HDR |
|---|---|---|
| Fonction de transfert | Courbe caméra BT.709, courbe d’affichage BT.1886 (gamma 2,4) | PQ (SMPTE ST 2084) ou HLG (ARIB STD-B67), toutes deux dans BT.2100 |
| Luminance maximale de référence | 100 nits | PQ jusqu’à 10 000 nits ; HLG relatif, 1 000 nits en référence |
| Blanc de référence | Environ 90 % du signal dans un SDR étalonné | 203 nits : 58 % du signal PQ, 75 % en HLG |
| Primaires | BT.709 | BT.2020 |
| Profondeur de bits | 8 bits courants en diffusion | 10 ou 12 bits |
| Métadonnées | Aucune | Statiques (HDR10), dynamiques (HDR10+, Dolby Vision) ou aucune (HLG) |
Ces plans sont indépendants : un fichier peut être en SDR 10 bits, ou en PQ sans métadonnées. Chacun a son propre tag, et les lecteurs lisent les tags au lieu de deviner à partir des pixels.
Fonctions de transfert : BT.1886, PQ et HLG
Une fonction de transfert fait correspondre des valeurs de signal à de la lumière. L’ITU-R BT.1886 définit la courbe d’affichage SDR comme une fonction puissance 2,4 avec un blanc de référence à 100 nits ; la courbe caméra BT.709 en est le pendant, une puissance 0,45 avec un segment linéaire près du noir.
PQ (SMPTE ST 2084) se réfère à l’écran : chaque valeur de code correspond à une luminance précise, jusqu’à 10 000 nits. BT.2100 indique que PQ couvre une très large plage de luminosité pour une profondeur de bits donnée, grâce à une courbe calée sur la vision humaine. En appliquant sa formule, 100 nits se trouvent à 51 % du signal, 203 nits à 58 % et 1 000 nits à 75 % ; la moitié inférieure de la plage couvre de 0 à environ 92 nits.
HLG (ARIB STD-B67) se réfère à la scène : le signal décrit la lumière relative de la scène, et c’est l’écran qui décide avec quelle luminosité l’afficher. Le rapport ITU-R BT.2390 décrit une courbe en racine carrée dans la moitié inférieure du signal, proche du SDR, et une courbe logarithmique au-dessus. BT.2100 fixe le gamma système de l’écran à 1,2 à 1 000 nits et l’ajuste pour d’autres luminances maximales (γ = 1,2 + 0,42 log10(Lw / 1000)) : un même signal HLG s’adapte ainsi à un téléviseur de 600 nits ou à un moniteur de 1 500 nits, sans métadonnées.

À noter : BT.2100 demande aux productions d’utiliser un seul système de bout en bout et de ne pas mélanger PQ et HLG. Passer de l’un à l’autre est une conversion, pas un simple changement d’étiquette.
Primaires colorimétriques : BT.709 ou BT.2020
Les primaires fixent le rouge le plus rouge, le vert le plus vert et le bleu le plus bleu qu’un signal peut décrire. BT.709 les place en (0,640 ; 0,330), (0,300 ; 0,600) et (0,150 ; 0,060) sur le diagramme xy CIE 1931 ; BT.2100 utilise les primaires BT.2020 en (0,708 ; 0,292), (0,170 ; 0,797) et (0,131 ; 0,046). Les deux utilisent le point blanc D65. Selon notre calcul, le triangle BT.2020 a une surface environ 1,9 fois plus grande que celui du BT.709, et rares sont les masters qui le remplissent : les moniteurs d’étalonnage sont souvent en P3-D65, d’où l’exemple de chaîne de mastering de la documentation x265, qui en décrit un.

Une même couleur a des valeurs de code différentes dans chaque conteneur : le rouge pur BT.709 devient en BT.2020 un RVB linéaire d’environ (0,627 ; 0,069 ; 0,016). Réétiqueter des pixels BT.709 en BT.2020 sans conversion sursature toutes les couleurs ; YouTube avertit que des masters P3 tagués avec les primaires Rec. 2020 paraissent sursaturés, avec des teintes décalées.
Profondeur de bits : pourquoi PQ exige 10 bits ou plus
Le banding apparaît quand l’écart de lumière entre deux valeurs de code voisines devient assez grand pour se voir, et PQ étale de 0 à 10 000 nits sur la plage de codes que le SDR consacre à 0-100 nits. Notre calcul à partir des formules BT.2100 et BT.1886, pour des codes en plage limitée :
| Niveau de lumière | PQ 8 bits | PQ 10 bits | PQ 12 bits | SDR 8 bits, gamma 2,4 |
|---|---|---|---|---|
| 1 nit | 9,4 % par pas | 2,3 % par pas | 0,56 % par pas | 7,7 % par pas |
| 100 nits | 4,7 % par pas | 1,1 % par pas | 0,28 % par pas | 1,1 % par pas |
| 1 000 nits | 4,3 % par pas | 1,1 % par pas | 0,26 % par pas | Hors de la plage SDR |
Vers 100 nits, le PQ 10 bits est à peu près aussi fin que le SDR 8 bits à son blanc, tout en couvrant 10 000 nits. BT.2390 compare ces pas à un seuil de visibilité tiré du modèle de Barten : le PQ 12 bits reste sous ce seuil de 10 000 nits jusqu’à moins de 0,001 nit, et le PQ 10 bits le dépasse légèrement, ce que le bruit réaliste d’une caméra masque en pratique.

Gardez donc les étapes intermédiaires en 10 bits ou plus, et appliquez un tramage (dither) quand vous redescendez en 8 bits. Dans notre test, l’option d=error_diffusion de zscale a conservé les mêmes niveaux dans une rampe sombre après tone mapping, mais a cassé les bords droits des bandes en un bruit fin. Pour le débandage, voir vidéo 8 bits ou 10 bits.
Métadonnées HDR : statiques et dynamiques
Le HDR10, c’est du PQ avec les primaires BT.2020 en 10 bits, plus des métadonnées statiques : une seule description pour tout le titre.
| Métadonnée | Ce qu’elle décrit | Définie dans |
|---|---|---|
| Écran de mastering | Primaires, point blanc, luminance maximale et noir du moniteur d’étalonnage | SMPTE ST 2086 (master-display de x265) |
| MaxCLL | Pixel le plus lumineux du titre, en nits | CTA-861.3 (première valeur de max-cll) |
| MaxFALL | Niveau de lumière moyen le plus élevé sur une image, en nits | CTA-861.3 (seconde valeur de max-cll) |
| HDR10+ | Luminosité, contraste et couleur scène par scène ou image par image | SMPTE ST 2094-40 (dhdr10-info de x265) |
| Dolby Vision | Métadonnées dynamiques pour chaque image, couleur jusqu’à 12 bits | Dolby |
Avec des métadonnées statiques, un film plutôt sombre avec une seule explosion très lumineuse reçoit une courbe unique choisie en fonction de l’explosion. HDR10+ présente ses métadonnées dynamiques comme des instructions qui permettent à l’écran d’optimiser le tone mapping en temps réel, et Dolby explique que Dolby Vision adapte chaque image aux capacités du téléviseur. HLG ne transporte pas de métadonnées de mastering : c’est le gamma système de l’écran qui assure l’adaptation.
Astuce : décrivez votre vrai moniteur d’étalonnage et vos niveaux mesurés. Si vous ne pouvez pas mesurer la MaxCLL, x265 vous permet d’indiquer 0, qui signifie « aucun maximum indiqué » : c’est préférable à une estimation.
Tone mapping : faire tenir le HDR sur un écran moins lumineux
Le tone mapping réduit la plage dynamique d’une image pour l’adapter à un écran ; le rapport ITU-R BT.2446 appelle l’opération inverse tone mapping inverse. Un mapping statique utilise une seule courbe pour tout le titre, le plus souvent choisie d’après la luminance maximale de mastering ou la MaxCLL. Un mapping dynamique évolue dans le temps, à partir de métadonnées ou en mesurant les images ; BT.2390 note qu’il peut s’adapter à des statistiques comme le maximum de la scène.
| Courbe | Ce qu’elle fait | Compromis |
|---|---|---|
| Clip | Garde les valeurs dans la plage, coupe le reste | Les hautes lumières deviennent des aplats |
| Reinhard | Atténuation simple, L / (L + c) | Luminosité homogène, détails et couleurs plus ternes |
| Hable (filmique) | Courbe en S avec pied et épaule | Détails aux deux extrémités, image un peu plus sombre |
| Möbius | Intacte sous un coude, atténuée au-dessus | Préserve le contraste et la couleur dans la plage |
| EETF BT.2390 | 1:1 sous un coude, spline d’Hermite au-dessus, sur le signal PQ | Conçue pour des écrans PQ moins lumineux que le master |
L’EETF normalise le signal PQ sur la plage de mastering, place le début du coude à KS = 1,5 × maxLum − 0,5 (maxLum étant la luminance maximale cible sur cette échelle), et courbe le haut pour que le maximum de la source tombe sur celui de l’écran. Pour un master de 1 000 nits, le coude se trouve vers 28 nits sur un écran de 100 nits et vers 161 nits sur un écran de 300 nits.

Le filtre tonemap de FFmpeg implémente clip, linear, gamma, Reinhard, Hable et Möbius. Sa documentation précise que les courbes ne fonctionnent qu’en lumière linéaire et en virgule flottante : la chaîne linéarise donc avec zscale, applique le tone mapping, puis reconvertit :
ffmpeg -i hdr10.mp4 -vf "zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=mobius:peak=10:desat=0,zscale=t=bt709:m=bt709:r=tv:d=error_diffusion,format=yuv420p" -c:v libx264 -crf 18 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -c:a copy sdr.mp4npl=100 fait correspondre la valeur linéaire 1,0 à 100 nits, donc peak=10 signifie 1 000 nits ; laissé à 0, le maximum est lu dans les métadonnées du fichier. desat=0 désactive l’atténuation par défaut qui fait virer les pixels très lumineux vers le blanc. Sur une rampe PQ synthétique de 0 à 1 000 nits, les codes de sortie 8 bits étaient les suivants (moyennés, plage limitée, donc 235 correspond au blanc) :
| Niveau de la source | clip | reinhard | hable | mobius |
|---|---|---|---|---|
| 25 nits | Code 139 | Code 133 | Code 98 | Code 139 |
| 100 nits | Code 235 | Code 187 | Code 151 | Code 201 |
| 204 nits | Code 235 | Code 209 | Code 182 | Code 218 |
| 1 000 nits | Code 235 | Code 235 | Code 235 | Code 235 |
Clip a transformé tout ce qui dépasse 100 nits en un même blanc ; Hable a conservé le plus d’écart entre les hautes lumières et a le plus assombri les tons moyens ; Möbius a laissé intactes les valeurs sous son coude. Jugez-en sur vos propres images. Pour les symptômes côté SDR, voir pourquoi une vidéo paraît délavée après l’export.
À noter : tonemap n’a pas de mode BT.2390, et la version de FFmpeg 8.1 que nous avons testée ne contient ni libplacebo, ni tonemap_opencl, ni tonemap_vaapi : nous ne les avons donc pas testés.
SDR vers HDR : placer ou étendre
Placer conserve la plage dynamique de l’image et la réencode en PQ ou HLG, pour qu’un contenu SDR puisse s’insérer dans un programme HDR. BT.2446 renvoie pour cela au rapport ITU-R BT.2408, et le point d’ancrage est le blanc de référence HDR, que BT.2100 fixe à 203 nits :
ffmpeg -i input_sdr.mp4 -vf "zscale=t=linear:npl=203,format=gbrpf32le,zscale=p=bt2020:t=smpte2084:m=bt2020nc:r=tv:npl=203,format=yuv420p10le" -c:v libx265 -preset slow -crf 18 -profile:v main10 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc -color_range tv -tag:v hvc1 -c:a copy sdr_in_pq.mp4Dans notre test, le blanc SDR maximal est ressorti au code 10 bits 573, soit 203 nits en PQ ; npl=100 a donné le code 509 (100 nits) et npl=1000 le code 723 (1 000 nits). Le fichier est un PQ valide, mais rien n’y dépasse le blanc de référence.
Étendre, c’est le tone mapping inverse : faire monter les hautes lumières au-dessus du blanc de référence et élargir les couleurs. BT.2446 demande que les ombres et les tons moyens restent proches de l’original, sans relever la luminosité moyenne au point de rendre le visionnage inconfortable, et avertit que l’extension peut amplifier les artefacts déjà présents dans la source. Ses méthodes sont des courbes statiques ; il note qu’il existe aussi des méthodes adaptatives, variables dans l’espace, et c’est là que se situe le SDR vers HDR par IA. Pour la combinaison avec d’autres traitements, voir SDR vers HDR et mouvement fluide.
À noter : changer seulement les tags ne fait ni l’un ni l’autre. Le blanc SDR 10 bits maximal (code 940) lu comme du PQ demande 10 000 nits à l’écran.
Encoder en HDR10 avec x265 et SVT-AV1
L’encodeur doit écrire un profil 10 bits, la description colorimétrique et les métadonnées statiques.
x265 (HEVC Main 10)
ffmpeg -i master_pq.mov -c:v libx265 -preset slow -crf 18 -pix_fmt yuv420p10le -x265-params "profile=main10:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:range=limited:hdr10=1:repeat-headers=1:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,50):max-cll=1000,400" -tag:v hvc1 -c:a copy hdr10.mp4Chaque clé de -x265-params correspond à une option de x265 (--colorprim, --hdr10, --master-display, etc.) :
| Réglage | Ce qu’il fait |
|---|---|
colorprim, transfer, colormatrix | Écrivent BT.2020, PQ et la matrice à luminance non constante comme tags du flux |
master-display | Valeurs ST 2086 : x,y en unités de 0,00002, luminance en 0,0001 nit, donc L(10000000,50) correspond à un maximum de 1 000 nits avec un noir à 0,005 nit |
max-cll=1000,400 | MaxCLL et MaxFALL en nits |
hdr10=1 | Force les messages HDR10, que x265 active aussi dès que master-display ou max-cll est défini |
repeat-headers=1 | Répète les en-têtes du flux à chaque image clé |
Les primaires sont l’exemple documenté par x265 pour un moniteur P3-D65 de 1 000 nits ; utilisez les vôtres. Pour le HLG, réglez transfer=arib-std-b67, supprimez les valeurs de mastering et ajoutez atc-sei=18, que x265 indique comme nécessaire pour le HLG ; le guide HDR pour YouTube donne la commande complète. hdr10-opt=1 ajoute le réglage du QP par bloc de x265 pour une entrée PQ BT.2020 en 10 bits 4:2:0.
SVT-AV1 (AV1, 10 bits)
ffmpeg -i master_pq.mov -c:v libsvtav1 -preset 6 -crf 30 -pix_fmt yuv420p10le -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc -color_range tv -svtav1-params "mastering-display=G(0.265,0.690)B(0.150,0.060)R(0.680,0.320)WP(0.3127,0.3290)L(1000,0.005):content-light=1000,400" -c:a copy hdr10_av1.mkvSVT-AV1 prend les coordonnées CIE x,y en décimales et la luminance en nits ; FFmpeg a transmis ses options -color_* aux options de couleur de l’encodeur. Avec FFmpeg 8.1 et SVT-AV1 4.0.1, les deux commandes ont produit des fichiers 10 bits tagués BT.2020, PQ et BT.2020 NCL, avec les métadonnées de mastering et de niveau de lumière sur la première image.
Corriger des tags manquants sans réencoder. Si les pixels sont déjà en PQ, le filtre de flux binaire hevc_metadata réécrit la description colorimétrique sans toucher à l’image :
ffmpeg -i untagged.mp4 -c copy -bsf:v "hevc_metadata=colour_primaries=9:transfer_characteristics=16:matrix_coefficients=9" retagged.mp4Sur notre fichier de test HEVC en MP4, les images décodées avaient des sommes de contrôle identiques avant et après, et les tags sont passés d’inconnus à BT.2020, PQ et BT.2020 NCL (codes 9, 16 et 9 ; le HLG est 18). Le filtre n’ajoute ni ST 2086 ni MaxCLL : il faut pour cela réencoder.
Vérifier le fichier avec ffprobe
ffprobe -v error -select_streams v:0 -show_entries stream=profile,pix_fmt,color_range,color_space,color_transfer,color_primaries:frame=side_data_list -read_intervals "%+#1" -show_frames -of json hdr10.mp4Un seul appel renvoie les tags de couleur et les données annexes de la première image. Pour le fichier x265 ci-dessus :
| Champ | Valeur | Signification |
|---|---|---|
profile, pix_fmt | Main 10, yuv420p10le | HEVC 10 bits, 4:2:0 |
color_primaries, color_transfer, color_space | bt2020, smpte2084, bt2020nc | BT.2020, PQ, luminance non constante |
color_range | tv | Plage limitée |
| Mastering display metadata | max_luminance=10000000/10000, min_luminance=50/10000 | Maximum de 1 000 nits, noir à 0,005 nit |
| Content light level metadata | max_content=1000, max_average=400 | MaxCLL et MaxFALL |
Les valeurs s’affichent en fractions, dans les unités propres à chaque codec : notre fichier AV1 indiquait max_luminance=256000/256, soit 1 000 nits également. Les fichiers HLG affichent arib-std-b67 et en général aucune donnée de mastering. Un fichier étalonné en HDR qui indique bt709 ou unknown sera lu comme du SDR.
Ce que fait KwaFlux avec le HDR
- SDR vers HDR, c’est du tone mapping inverse. Dans Étalonnage IA, SDR vers HDR étend un clip SDR avec un modèle d’IA vers une plage dynamique plus large, des hautes lumières plus lumineuses et des ombres plus lisibles. Scène définit le rendu : Paysage (par défaut), Paysage nocturne ou Personnalisé, avec un curseur Luminosité de 2,0 à 5,0 (3,8 par défaut).
- Les choix d’export. Espace colorimétrique propose HDR PQ (Rec.2020) (par défaut), HDR HLG (Rec.2020) et SDR (BT.709), avec H.265 (recommandé) ou AV1, et le MKV recommandé. Les exports HDR sont en 10 bits, les exports SDR en 8 bits, et les réglages d’export associent à chaque choix les tags correspondants : fonction de transfert, primaires et matrice BT.2020, plage limitée.
- Vérifiez avant de livrer. Lancez la commande ffprobe ci-dessus sur l’export ; si une plateforme exige des valeurs ST 2086 et MaxCLL absentes du fichier, réencodez avec les réglages x265.
- Aperçus HDR sur écrans SDR. Le moteur d’aperçu décode le PQ et le HLG, convertit les couleurs BT.2020 en BT.709 et compresse les hautes lumières avec une courbe de type Reinhard ; il dispose aussi d’un mode de passage direct HDR pour une sortie HDR.
- Réparation et tâches en plusieurs étapes. Les exports de Réparation de qualité n’ont pas d’option d’espace colorimétrique : vérifiez donc les tags d’un fichier HDR réparé. Entre les étapes d’une tâche en plusieurs étapes, KwaFlux transmet des fichiers intermédiaires en 10 bits, pour que les arrondis 8 bits ne s’accumulent pas en banding.
Problèmes courants
| Problème | Cause probable | Solution |
|---|---|---|
| Le fichier HDR paraît gris et terne | Tags manquants, ou lecteur sans prise en charge du HDR | Vérifiez les tags ; ne réétiquetez que si les pixels sont en PQ ; faites une copie SDR avec tone mapping |
| Un clip SDR tagué PQ paraît agressif | Tags changés sans conversion | Réencodez avec un placement zscale ou un tone mapping inverse |
| Couleurs sursaturées | Pixels BT.709 ou P3 tagués BT.2020 | Convertissez d’abord les primaires avec zscale p=bt2020 |
| Bandes dans le ciel sur la copie SDR | Sortie 8 bits sans tramage | Ajoutez d=error_diffusion ; gardez les intermédiaires en 10 bits |
| Aplats blancs dans les hautes lumières | Courbe clip, ou peak trop bas | Utilisez Möbius, Reinhard ou Hable avec le vrai maximum |
| Pas de métadonnées de mastering | master-display et max-cll non définis | Ajoutez-les dans x265 ou SVT-AV1 et vérifiez la première image |
Les limites
- Le tone mapping ne peut pas afficher 1 000 nits sur un écran de 100 nits. Il choisit ce qu’il garde : détails des hautes lumières, contraste des tons moyens ou couleur.
- Le tone mapping inverse ne récupère pas les détails écrêtés, et BT.2446 avertit qu’il peut rendre visibles les artefacts de compression.
- Les métadonnées ne corrigent pas un étalonnage. Elles décrivent le master pour qu’un écran puisse l’adapter.
- Les tags ne convertissent pas les pixels. Les changer sans conversion modifie l’image.
Conclusion
SDR contre HDR, ce n’est pas une décision mais quatre : courbe, primaires, profondeur de bits et métadonnées. Réglez chacune délibérément, vérifiez-les avec ffprobe, et quand une image passe du SDR au HDR ou l’inverse, convertissez-la au lieu de la réétiqueter.
KwaFlux exécute l’Étalonnage IA sur votre propre GPU, y compris les exports SDR vers HDR en PQ ou en HLG. Le traitement IA tourne sur votre propre GPU et vos fichiers média ne sont pas envoyés pour être traités. KwaFlux fonctionne sous Windows 10 (64 bits, version 1809 ou plus récente), Windows 11 et macOS 12 ou plus récent sur Apple Silicon. Les aperçus ne demandent pas de compte : rendez un aperçu de 1, 3 ou 5 secondes sur n’importe quel clip. Une connexion avec un forfait payant n’est requise que pour exporter, convertir, réparer un fichier ou télécharger un fichier depuis un lien.
Testez sur vos propres images
Téléchargez KwaFlux et prévisualisez gratuitement les effets sur vos propres images avant de payer — sans compte, traitement sur votre GPU, sans envoi de vos médias. Les aperçus vidéo durent 1, 3 ou 5 secondes, ceux de la stabilisation 5, 15 ou 30 secondes.
Questions fréquentes
Pourquoi PQ a-t-il besoin de plus de bits que le gamma SDR ?
Parce que PQ étale de 0 à 10 000 nits sur la plage de codes que le SDR utilise pour 0-100 nits. Selon notre calcul, un pas PQ en 8 bits vers 100 nits change la lumière d’environ 4,7 %, ce qui produit un banding visible ; en 10 bits, on descend à environ 1,1 %. Vidéo 8 bits ou 10 bits présente les corrections du banding.
Le HLG est-il rétrocompatible avec les téléviseurs SDR ?
En partie. Le rapport ITU-R BT.2390 indique que le HLG a été conçu pour offrir une compatibilité significative avec les écrans SDR, mais seulement ceux qui acceptent le conteneur colorimétrique BT.2020. Un écran qui ne gère que le BT.709 a encore besoin d’une version SDR convertie.
Que sont la MaxCLL et la MaxFALL ?
La MaxCLL est le niveau de lumière du pixel le plus lumineux d’un titre, et la MaxFALL le niveau de lumière moyen le plus élevé sur une seule image, toutes deux en nits. Elles viennent de la norme CTA-861.3 et accompagnent le HDR10 sous forme de métadonnées statiques dont les lecteurs peuvent se servir pour choisir une courbe de tone mapping.
Peut-on convertir du HDR en SDR sans perdre les détails des hautes lumières ?
En partie. Une courbe d’atténuation comme Hable, Möbius ou l’EETF BT.2390 conserve les dégradés dans les hautes lumières au lieu de les écrêter. La luminosité supplémentaire ne peut pas survivre sur un écran de 100 nits, et chaque courbe sacrifie un peu de contraste des tons moyens ou de couleur pour garder ces détails.
Suffit-il de changer les tags de couleur pour passer du SDR au HDR ?
Non. Les tags indiquent seulement aux lecteurs comment lire les valeurs, et le blanc SDR 10 bits maximal lu comme du PQ demande 10 000 nits. Placez le SDR dans un conteneur PQ avec une vraie conversion, ou étendez-le par tone mapping inverse ; voir SDR vers HDR et mouvement fluide.
Sources
- ITU-R, Recommendation BT.2100-3 (PQ constants, HLG system gamma, BT.2020 primaries, 203-nit reference white) (consulté le 2026-10-21)
- ITU-R, Recommendation BT.1886 (gamma 2.4 display curve, 100 cd/m² white, BT.709 camera curve and primaries) (consulté le 2026-10-21)
- ITU-R, Report BT.2390-12 (PQ bit depth against the Barten threshold, HLG curve and compatibility) (consulté le 2026-10-21)
- ITU-R, Report BT.2390-8, sections 5.4.1 and 7.4 (EETF; clip, static, and dynamic mapping) (consulté le 2026-10-21)
- ITU-R, Report BT.2446-1 (tone mapping and inverse tone mapping, reference white levels, artifact amplification) (consulté le 2026-10-21)
- x265 Documentation, "Command Line Options" (color, HDR10, and HLG options) (consulté le 2026-10-21)
- SVT-AV1, "Parameters" (color description, mastering-display, content-light) (consulté le 2026-10-21)
- FFmpeg Filters Documentation (`tonemap`, `zscale`) (consulté le 2026-10-21)
- FFmpeg source, vf_tonemap.c (curve formulas for our chart) (consulté le 2026-10-21)
- FFmpeg Bitstream Filters Documentation (`hevc_metadata`) (consulté le 2026-10-21)
- YouTube Help, "Upload High Dynamic Range (HDR) videos" (P3 masters tagged as Rec. 2020) (consulté le 2026-10-21)
- Dolby Professional, "Dolby Vision HDR at Home" (dynamic metadata, 12-bit color) (consulté le 2026-10-21)
- HDR10+, "How does dynamic metadata in HDR10+ improve upon this?" (consulté le 2026-10-21)
- CVRL, CIE 1931 2-degree colour matching functions (spectral locus for our chart) (consulté le 2026-10-21)

