Modification de Cadence vidéo sur PC

Aller à : navigation, rechercher

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

Cette modification va être annulée. Veuillez vérifier les différences ci-dessous, puis publier l’annulation si c’est bien ce que vous voulez faire.
Version actuelle Votre texte
Ligne 1 : Ligne 1 :
Si vous utilisez un PC pour lire des vidéos et que vous voulez lire des films/séries dans de bonnes conditions (c'est-à-dire sans ''aucune'' saccade d'aucune sorte), vous devriez lire cette page.
+
Si vous utilisez un PC pour lire des vidéos et que vous voulez lire des films/séries dans de bonnes conditions, vous devriez lire cette page.
 
 
'''NOUVEAU Janvier 2024: [https://github.com/dechamps/videojitter videojitter] peut être utilisé pour mesurer et caractériser les problèmes présentés dans cet article.'''
 
 
 
'''Cet article est à jour vis-à-vis de l'état de l'art en avril 2018'''
 
  
 
= TL;DR =
 
= TL;DR =
Ligne 12 : Ligne 8 :
 
# Dans les options de madVR, activez la fonctionnalité appelée "Smooth Motion".
 
# Dans les options de madVR, activez la fonctionnalité appelée "Smooth Motion".
 
# Vous êtes paré !
 
# Vous êtes paré !
 
Voir aussi la section [[#Recommandations|recommandations]].
 
  
 
= Les problèmes à résoudre =
 
= Les problèmes à résoudre =
Ligne 31 : Ligne 25 :
 
Si la fréquence de rafraîchissement est un multiple du framerate (par exemple : 48, 72, 96, 120, 144 Hz), alors le comportement décrit ci-dessus a pour effet de  répéter chaque frame un certain nombre de fois (respectivement : 2, 3, 4, 5, ou 6 fois) de manière constante et régulière. Là encore le problème ne se pose pas.
 
Si la fréquence de rafraîchissement est un multiple du framerate (par exemple : 48, 72, 96, 120, 144 Hz), alors le comportement décrit ci-dessus a pour effet de  répéter chaque frame un certain nombre de fois (respectivement : 2, 3, 4, 5, ou 6 fois) de manière constante et régulière. Là encore le problème ne se pose pas.
  
Par contre, si vous êtes en 60 Hz comme l'immense majorité des gens, alors ce n'est pas si simple, car 60 n'est pas un multiple de 24. Il faudrait répéter chaque frame 2.5 fois, mais ça n'a pas de sens. Au lieu de ça, le comportement décrit ci-dessus va avoir le résultat suivant : la première frame va être répétée 3 fois, puis la frame suivante 2 fois, puis la frame suivante 3 fois, etc. (Ce processus est souvent appelé "[[wikipedia:Three-two_pull_down|3:2 pull down]]", mais ce terme n'est pas tout à fait correct ici car le flux n'est pas entrelacé.) Par exemple, une série de frames 24 FPS "A B C D E" va être convertie en 60 FPS sous la forme "AAA BB CCC DD EEE".
+
Par contre, si vous êtes en 60 Hz comme l'immense majorité des gens, alors ce n'est pas si simple, car 60 n'est pas un multiple de 24. Il faudrait répéter chaque frame 2.5 fois, mais ça n'a pas de sens. Au lieu de ça, le comportement décrit ci-dessus va avoir le résultat suivant : la première frame va être répétée 3 fois, puis la frame suivante 2 fois, puis la frame suivante 3 fois, etc. (Ce processus est souvent appelé "[https://en.wikipedia.org/wiki/Three-two_pull_down 3:2 pull down]", mais ce terme n'est pas tout à fait correct ici car le flux n'est pas entrelacé.) Par exemple, une série de frames 24 FPS "A B C D E" va être convertie en 60 FPS sous la forme "AAA BB CCC DD EEE".
  
Ce comportement est correct dans la mesure où il permet à la vidéo d'être lue à la bonne vitesse. Mais cette approche présente un gros problème : la vidéo finale une fois convertie ne respecte pas la cadence d'origine. Normalement, dans la vidéo 24 FPS d'origine, chaque frame est affichée pendant ~41 ms. Mais dans la vidéo 60 FPS finale, ce n'est pas le cas : une frame sur deux est affichée pendant ~50 ms, tandis que l'autre est affichée pendant ~33 ms. C'est une dégradation - la vidéo parait saccadée car le rythme de présentation des frames est incorrect. Il s'agit du "[[wikipedia:Telecine#Telecine_judder|Telecine judder]]". La documentation de [https://mpv.io/ mpv] propose [https://github.com/mpv-player/mpv/wiki/Interpolation#32-pulldown une autre présentation] de ce phénomène.
+
Ce comportement est correct dans la mesure où il permet à la vidéo d'être lue à la bonne vitesse. Mais cette approche présente un gros problème : la vidéo finale une fois convertie ne respecte pas la cadence d'origine. Normalement, dans la vidéo 24 FPS d'origine, chaque frame est affichée pendant ~41 ms. Mais dans la vidéo 60 FPS finale, ce n'est pas le cas : une frame sur deux est affichée pendant ~50 ms, tandis que l'autre est affichée pendant ~33 ms. C'est une dégradation - la vidéo parait saccadée car le rythme de présentation des frames est incorrect. Il s'agit du "[https://en.wikipedia.org/wiki/Telecine#Telecine_judder Telecine judder]".
  
 
Un objet qui bouge de manière constante à l'écran, par exemple, donnera l'impression de tressauter au lieu de présenter un mouvement constant, doux et fluide. L'effet n'est pas catastrophique parce que la cadence reste plus ou moins régulière (dans le sens où la procession 3:2:3:2, elle, reste constante), mais néanmoins visible dans certaines scènes, en particulier lorsque les objets sont nets et la caméra est en mouvement. Un générique défilant peut également servir d'exemple. Un œil initié qui sait ce qu'il cherche peut remarquer le problème après seulement quelques secondes de lecture, en fonction du contenu.
 
Un objet qui bouge de manière constante à l'écran, par exemple, donnera l'impression de tressauter au lieu de présenter un mouvement constant, doux et fluide. L'effet n'est pas catastrophique parce que la cadence reste plus ou moins régulière (dans le sens où la procession 3:2:3:2, elle, reste constante), mais néanmoins visible dans certaines scènes, en particulier lorsque les objets sont nets et la caméra est en mouvement. Un générique défilant peut également servir d'exemple. Un œil initié qui sait ce qu'il cherche peut remarquer le problème après seulement quelques secondes de lecture, en fonction du contenu.
 
Cette cadence 3:2 apparaît lorsqu'on lit une vidéo 24p à 60 Hz. Dans d'autres cas, comme 25p à 60 Hz (qui n'est pas rare en dehors des films/séries) ou 24p à 50 Hz, un phénomène similaire apparaît mais la cadence n'est pas la même ; elle est généralement pire et les saccades sont bien plus visibles.
 
  
 
== Horloge désynchronisée (discontinuités) ==
 
== Horloge désynchronisée (discontinuités) ==
  
Dans un appareil dédié à la vidéo, tel qu'un lecteur Blu-ray de salon, la cadence de lecture est sous le contrôle d'un seul et unique [[wikipedia:Clock_signal|signal d'horloge]]. Lors de la lecture d'une vidéo à 24 FPS, ce signal d'horloge donne le « top » toutes les ~41.7 ms pour envoyer la frame suivante.
+
Dans un appareil dédié à la vidéo, tel qu'un lecteur Blu-ray de salon, la cadence de lecture est sous le contrôle d'un seul et unique [https://en.wikipedia.org/wiki/Clock_signal signal d'horloge]. Lors de la lecture d'une vidéo à 24 FPS, ce signal d'horloge donne le « top » toutes les ~41.7 ms pour envoyer la frame suivante.
  
 
Le son d'une vidéo est typiquement échantillonné à 48 kHz. Dans l'exemple d'un lecteur dédié, la cadence sonore est gérée par le même signal d'horloge. Cet arrangement garantit que la vidéo et le son progressent à la même vitesse. Il y aura précisément 2002 échantillons audio entre chaque frame (48000 / 23.976), parce que la vidéo et le son sont régis par le même « top ». Ils avancent de manière parfaitement synchronisée. (Ou, du moins, s'il y a décalage il sera constant.)
 
Le son d'une vidéo est typiquement échantillonné à 48 kHz. Dans l'exemple d'un lecteur dédié, la cadence sonore est gérée par le même signal d'horloge. Cet arrangement garantit que la vidéo et le son progressent à la même vitesse. Il y aura précisément 2002 échantillons audio entre chaque frame (48000 / 23.976), parce que la vidéo et le son sont régis par le même « top ». Ils avancent de manière parfaitement synchronisée. (Ou, du moins, s'il y a décalage il sera constant.)
Ligne 51 : Ligne 43 :
 
Dans un monde parfait, ces horloges seraient parfaitement précises - une fréquence de rafraîchissement « nominale » de 60 Hz a pour effet d'envoyer très précisément 60 images par seconde à l'écran, et une fréquence d’échantillonnage audio « nominale » de 48 kHz a pour effet d'envoyer très précisément 48000 échantillons audio via la sortie (analogique ou numérique). Mais nous ne vivons pas dans un monde parfait, les composants électroniques ont leurs limites, et une horloge censée débiter du 60 Hz pourrait en réalité débiter 59.99 Hz, ou bien 60.01 Hz. Même chose pour l'horloge audio.
 
Dans un monde parfait, ces horloges seraient parfaitement précises - une fréquence de rafraîchissement « nominale » de 60 Hz a pour effet d'envoyer très précisément 60 images par seconde à l'écran, et une fréquence d’échantillonnage audio « nominale » de 48 kHz a pour effet d'envoyer très précisément 48000 échantillons audio via la sortie (analogique ou numérique). Mais nous ne vivons pas dans un monde parfait, les composants électroniques ont leurs limites, et une horloge censée débiter du 60 Hz pourrait en réalité débiter 59.99 Hz, ou bien 60.01 Hz. Même chose pour l'horloge audio.
  
Pour l'horloge vidéo, il y a un problème supplémentaire lié à la configuration. Les paramètres standards ([[wikipedia:Coordinated_Video_Timings|CVT]]) pour du 1080p24 (~23.97'''60''' Hz) nécessitent une ''pixel clock'' de ~74.1759 MHz. Mais en pratique le GPU n'acceptera pas une configuration aussi fine ; la pixel clock n'est ajustable que par paliers de 0.01 MHz. (Sous Linux la situation est meilleure : le [[wikipedia:X.Org_Server|serveur X.Org]] offre des paliers de 0.001 MHz.) Du coup, on se retrouve forcé de régler la pixel clock à 74.1700 MHz (fréquence de rafraîchissement ~23.97'''41''' Hz, une déviation de ~0.007%) ou à 74.1800 MHz (fréquence de rafraîchissement ~23.97'''73''' Hz, une déviation de ~0.005%). L'horloge audio, elle, n'accepte que précisément 48000 Hz et rien d'autre.
+
Pour l'horloge vidéo, il y a un problème supplémentaire lié à la configuration. Les paramètres standards (CTA) pour du 1080p24 (~23.97'''60''' Hz) nécessitent une ''pixel clock'' de ~74.1759 MHz. Mais en pratique le GPU n'acceptera pas une configuration aussi fine ; la pixel clock n'est ajustable que par paliers de 0.01 MHz. Du coup, on se retrouve forcé de régler la pixel clock à 74.1700 MHz (fréquence de rafraîchissement ~23.97'''41''' Hz, une déviation de ~0.007%) ou à 74.1800 MHz (fréquence de rafraîchissement ~23.97'''73''' Hz, une déviation de ~0.005%). L'horloge audio, elle, n'accepte que précisément 48000 Hz et rien d'autre.
  
 
Si il n'y avait qu'une seule horloge, comme dans un appareil dédié, une telle déviation ne serait pas un problème. Après tout, il s'agit là de déviations minimes - de l'ordre de 0.01%, soit moins d'une seconde sur un film de 2 heures. La vidéo sera lue trop vite ou trop lentement, mais la différence est imperceptible. À moins que vous ne vérifiez la longueur du film chronomètre en main (et de bons réflexes), vous ne remarquerez rien.
 
Si il n'y avait qu'une seule horloge, comme dans un appareil dédié, une telle déviation ne serait pas un problème. Après tout, il s'agit là de déviations minimes - de l'ordre de 0.01%, soit moins d'une seconde sur un film de 2 heures. La vidéo sera lue trop vite ou trop lentement, mais la différence est imperceptible. À moins que vous ne vérifiez la longueur du film chronomètre en main (et de bons réflexes), vous ne remarquerez rien.
Ligne 87 : Ligne 79 :
  
 
Par ailleurs, certains écrans ne supportent pas une fréquence de rafraîchissement de 24 Hz, en particulier les moniteurs PC. Pire : certains écrans accepteront un tel signal mais sont incapables de faire du "vrai" 24 Hz - ils appliqueront un 3:2 pulldown en interne, ce qui nous ramène à la case départ. Les écrans capables de produire du "vrai" 24 Hz sont désignés par la mention "[https://www.rtings.com/tv/tests/motion/24p Judder-Free 24p]" sur [https://www.rtings.com/ Rtings].
 
Par ailleurs, certains écrans ne supportent pas une fréquence de rafraîchissement de 24 Hz, en particulier les moniteurs PC. Pire : certains écrans accepteront un tel signal mais sont incapables de faire du "vrai" 24 Hz - ils appliqueront un 3:2 pulldown en interne, ce qui nous ramène à la case départ. Les écrans capables de produire du "vrai" 24 Hz sont désignés par la mention "[https://www.rtings.com/tv/tests/motion/24p Judder-Free 24p]" sur [https://www.rtings.com/ Rtings].
 
Certains logiciels vidéo, en particulier [http://madvr.net/ madVR], sont capables de passer l'écran dans un mode donné (par exemple 24 Hz) automatiquement lorsque la lecture commence, et de repasser en mode « normal » (par exemple 60 Hz) lorsque la lecture est terminée. Cette fonctionnalité est particulièrement pratique lorsque le PC est également utilisé pour autre chose que de la lecture vidéo, ou pour lire des vidéos de framerates différents.
 
  
 
=== Le piège du 24.000 Hz vs. 23.976 Hz ===
 
=== Le piège du 24.000 Hz vs. 23.976 Hz ===
Ligne 104 : Ligne 94 :
 
Une variante de la solution précédente.
 
Une variante de la solution précédente.
  
Certains écrans ne supportent pas 24 Hz, mais supportent 50 Hz (le framerate de la TV en Europe). Dans ce cas il y a fort à parier que l'écran acceptera 48 Hz, puisque c'est suffisamment proche de 50 Hz (dans les 5% de tolérance permise par le standard VESA DMT). Attention, comme dans la solution précédente rien ne garantit que l'écran produira du "vrai" 48 Hz dans ce cas : méfiez-vous. Aussi, comme 48 Hz n'est pas une fréquence standard, il vous faudra la créer manuellement à l'aide d'un logiciel adéquat, tel que l'[[#En_pratique_3|assistant de madVR]] ou l'outil intégré aux drivers nVidia ("résolutions personnalisées").
+
Certains écrans ne supportent pas 24 Hz, mais supportent 50 Hz (le framerate de la TV en Europe). Dans ce cas il y a fort à parier que l'écran acceptera 48 Hz, puisque c'est suffisamment proche de 50 Hz (dans les 5% de tolérance permise par le standard VESA DMT). Attention, comme dans la solution précédente rien ne garantit que l'écran produira du "vrai" 48 Hz dans ce cas : méfiez-vous. Aussi, comme 48 Hz n'est pas une fréquence standard, il vous faudra la créer manuellement à l'aide d'un logiciel adéquat, tel que l'assistant de madVR (voir ci-dessous) ou l'outil intégré aux drivers nVidia ("résolutions personnalisées").
  
 
Et bien sûr, n'oublions pas que beaucoup d'écrans PC "gaming" supportent des fréquences très élevées, telles que 120 ou 144 Hz. Coup de bol, il s'agit de multiples de 24 ! Par ailleurs, avec une fréquence aussi élevée les discontinuités liées aux différences d'horloge deviennent tellement courtes qu'elles pourraient potentiellement devenir indistinguables (corrigeant ainsi les deux problèmes à la fois), mais [[#Questions_ouvertes|ça reste à démontrer]].
 
Et bien sûr, n'oublions pas que beaucoup d'écrans PC "gaming" supportent des fréquences très élevées, telles que 120 ou 144 Hz. Coup de bol, il s'agit de multiples de 24 ! Par ailleurs, avec une fréquence aussi élevée les discontinuités liées aux différences d'horloge deviennent tellement courtes qu'elles pourraient potentiellement devenir indistinguables (corrigeant ainsi les deux problèmes à la fois), mais [[#Questions_ouvertes|ça reste à démontrer]].
Ligne 110 : Ligne 100 :
 
Encore une fois, [[#Le_pi.C3.A8ge_du_24.000_Hz_vs._23.976_Hz|n'oubliez pas]] qu'il faut choisir ~47.952, ~119.880 ou ~143.856 Hz, pas les chiffres ronds.
 
Encore une fois, [[#Le_pi.C3.A8ge_du_24.000_Hz_vs._23.976_Hz|n'oubliez pas]] qu'il faut choisir ~47.952, ~119.880 ou ~143.856 Hz, pas les chiffres ronds.
  
À noter qu'en utilisant un multiple le signal est moins « propre » qu'en 24 Hz parce que chaque frame est répétée plusieurs fois. Normalement ça ne devrait faire aucune différence, mais certains algorithmes temporels utilisés dans certaines TVs (par exemple, [https://www.rtings.com/tv/tests/motion/motion-interpolation-soap-opera-effect motion interpolation] ou, plus inquiétant, des caractéristiques ayant trait au [https://www.rtings.com/tv/tests/motion/stutter stutter]) peuvent théoriquement donner des résultats non optimaux avec un tel signal.
+
À noter qu'en utilisant un multiple le signal est moins « propre » qu'en 24 Hz parce que chaque frame est répétée plusieurs fois. Normalement ça ne devrait faire aucune différence, mais certains algorithmes temporels utilisés dans certaines TVs (par exemple, motion interpolation) peuvent théoriquement donner des résultats erratiques avec un tel signal.
  
 
== Écran capable de détecter 24p@60 Hz (inverse telecine) ==
 
== Écran capable de détecter 24p@60 Hz (inverse telecine) ==
 
Certains TV et projecteurs sont capables de détecter une [[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|cadence 3:2]] dans le signal d'entrée. Si un tel motif est détecté, l'écran passera automatiquement en 24p et sautera les frames dupliquées, éliminant ainsi le telecine judder de manière transparente.
 
 
Malheureusement, cette solution souffre d'un certain nombre de contraintes :
 
 
* Il faut disposer d'un écran proposant cette fonctionnalité. Ils sont désignés par la mention "[https://www.rtings.com/tv/tests/motion/24p Judder-Free 24p via 60p]" sur [https://www.rtings.com/ Rtings]. Cette fonctionnalité semble être apparue en 2017 sur les TVs, et n'est généralement pas proposée sur les moniteurs PC.
 
* Cette approche ne fonctionnera probablement pas si l'écran est en mode "low input lag", "gaming" ou "PC", car ces modes ont tendance à désactiver ce genre de traitement pour gagner en latence et/ou « pureté ».
 
* La fiabilité de cette solution dépend beaucoup de la qualité du traitement interne effectué par l'écran. Un algorithme mal branlé peut causer des discontinuités supplémentaires.
 
* Il peut y avoir des implications concernant la qualité d'image, en fonction des traitements effectués par l'écran.
 
* Il est [https://forum.doom9.org/showthread.php?p=1838792#post1838792 impossible] d'utiliser madVR dans ce cas, car il ne permet pas d'obtenir une cadence stable en 24p@60Hz pour le moment.
 
 
Pour plus d'informations sur cette solution, vous pouvez lire les discussions sur le [https://forum.nofrag.com/viewtopic.php?p=1085046#p1085046 forum NoFrag] et le [https://forum.doom9.org/showthread.php?p=1838789#post1838789 forum madVR].
 
 
À l'instar des solutions précédentes, cette solution ne fait rien pour résoudre le [[#Le_Seigneur_des_PC_:_les_Deux_Horloges|problème des horloges]]. Assurez-vous au moins de choisir ~59.940 Hz, pas 60 Hz, pour diminuer la fréquence des discontinuités.
 
 
'''Note : '''cette solution n'a rien à voir avec l'option "inverse telecine" des drivers nVidia, qui n'a aucune importance et n'a aucun effet en pratique.
 
  
 
== Ajuster la vitesse audio (ReClock) ==
 
== Ajuster la vitesse audio (ReClock) ==
 
Dans la section sur le [[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|problème des horloges]], il est [[#Audio_ou_vid.C3.A9o_:_It.27s_Time_To_Choose|expliqué]] que le lecteur vidéo choisit d'utiliser l'horloge audio, pas l'horloge vidéo, car débiter l'audio à la mauvaise vitesse produit des discontinuités audio audibles (craquements).
 
 
Pour éviter ces discontinuités, on peut essayer de caler l'horloge audio sur l'horloge vidéo. Par exemple, si l'horloge vidéo avance 0.01% plus vite que l'horloge audio, alors on pourrait demander à la sortie son de tourner à 48004.8 Hz au lieu de 48000 Hz.
 
 
En pratique ce n'est pas aussi simple (48004.8 Hz n'est pas une fréquence standard et sera refusée par le driver son), mais il est par contre tout à fait possible d'effectuer un traitement sur la bande sonore pour l'accélérer ou la ralentir tout en gardant la même fréquence d’échantillonnage ; cette opération s'appelle le "[[wikipedia:Sample-rate_conversion|sample rate conversion]]" (SRC), ou "resampling". Normalement cette opération est utilisée pour changer la fréquence d’échantillonnage sans changer la vitesse de lecture, mais ça marche aussi dans le sens inverse - changer la vitesse de lecture sans changer la fréquence d’échantillonnage.
 
 
Notons qu'une telle solution est uniquement capable d'éliminer le [[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|problème des horloges]] ; elle n'élimine pas le [[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|telecine judder]]. Elle peut cependant être combinée avec une des solutions ci-dessus pour arriver à une solution complète. Par ailleurs, cette solution est utilisable avec une fréquence « ronde » (par exemple 24.000 Hz au lieu de 23.976 Hz), car la déviation de 0.1% induite par cette erreur est compensée également ; il reste néanmoins plus propre de choisir la bonne fréquence nominale.
 
 
Cette solution peut potentiellement dégrader la qualité audio de deux manières, toutes deux bénignes :
 
* L'algorithme de SRC lui-même peut dégrader la qualité. En pratique, les algorithmes modernes ne produisent pas de dégradation audible.
 
* Le changement de vitesse lui-même modifie la hauteur des notes, mais cela est [[wikipedia:Pitch_(music)#Just-noticeable_difference|imperceptible]] en-deça de 0.2%, un chiffre nettement supérieur à la déviation qu'on cherche à corriger.
 
** Pour les paranos, il est possible de compenser la différence de hauteur (''time stretching''), mais ce traitement supplémentaire est overkill et peut causer plus de mal que de bien.
 
 
Limitation notoire de cette solution : elle est incompatible avec le ''bitstreaming'', c'est-à-dire le décodage de l'audio en aval du PC (par exemple sur un ampli 5.1). En effet, pour pouvoir appliquer un traitement (SRC) sur l'audio, il faut le décoder d'abord. En pratique ce n'est un problème que si le bitstreaming est une nécessité pour vous, ce qui n'est pas une situation courante - vous n'avez pas à vous en soucier sauf cas très précis comme envoyer du Dolby Digital/DTS à travers une liaison S/PDIF, ou pour exploiter des formats dernier cri tels que Dolby Atmos ou DTS-X.
 
 
=== En pratique ===
 
 
Il est possible d'effectuer cette correction manuellement en mesurant la déviation d'horloge, puis en appliquant un filtre SRC adéquat sur la bande son de la vidéo. Ce serait incroyablement laborieux ; heureusement, des logiciels existent pour effectuer ce traitement à la volée.
 
 
Au début de la lecture, le logiciel prend quelques secondes pour mesurer la vitesse des horloges audio et vidéo. Une fois la déviation déterminée avec une précision suffisante, le logiciel prend le contrôle de l'horloge pour ajuster la vitesse de lecture audio, et applique un filtre SRC pour éliminer les discontinuités audio qui seraient causées par le changement de vitesse.
 
 
* [https://forum.redfox.bz/forums/reclock.85/ ReClock] est la référence dans ce domaine ; il s'agit du logiciel le plus vieux (première version sortie en 2002 !) et le plus connu. Il peut s'intégrer avec n'importe quel lecteur vidéo compatible DirectShow, par exemple [https://mpc-hc.org/ MPC-HC], et en particulier est compatible avec [https://www.cyberlink.com/products/powerdvd-ultra/features_en_GB.html PowerDVD].
 
** Bémols : le développement de ReClock est plus ou moins abandonné, il n'est pas compatible avec un lecteur vidéo 64-bit, et il peut parfois avoir des difficultés à estimer la vitesse de l'horloge vidéo.
 
* [https://wiki.jriver.com/index.php/VideoClock VideoClock] est une fonctionnalité intégrée au lecteur (payant) [https://www.jriver.com/ JRiver MediaCenter].
 
* [https://github.com/zachsaw/MPDN_Extensions/wiki/Rate-Tuner Rate-Tuner] est une extension pour le lecteur vidéo [http://www.zachsaw.com/mpdn/ MPDN].
 
* [https://mpv.io/ mpv] (et [[wikipedia:Mpv_(media_player)#Interface_and_graphical_front-ends|dérivés]] tels que [https://www.smplayer.info/ SMPlayer]) propose l'[https://mpv.io/manual/master/#options-video-sync option <code>video-sync</code>] qui [https://github.com/mpv-player/mpv/wiki/Display-synchronization#display-sync implémente cette fonctionnalité] (valeur <code>display-resample</code>).
 
* [https://potplayer.daum.net/ Potplayer] semble inclure cette fonctionnalité en standard. [https://wiki.mikejung.biz/PotPlayer#Potplayer_Playback_Settings] [https://forum.doom9.org/showthread.php?p=1843214#post1843214]
 
  
 
== Frame blending (Smooth Motion) ==
 
== Frame blending (Smooth Motion) ==
 
[[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|Souvenez-vous]] du principe de fonctionnement d'un moteur de rendu vidéo : on envoie une frame au GPU au point temporel adéquat, et le GPU se charge ensuite de délivrer cette frame au rafraîchissement suivant. Ce comportement peut donner lieu à des ''frame repeats'' indésirables si la sortie vidéo rafraîchit plus vite que le framerate de la vidéo, à cause du [[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|telecine judder]] ou du [[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|problème des horloges]].
 
 
Madshi, l'auteur de l'excellent moteur de rendu vidéo [http://madvr.net/ madVR], a inventé une solution innovante à ce problème, qu'il a baptisé "Smooth Motion" : au lieu de laisser le GPU répéter une frame, on lui envoie une frame supplémentaire qui est une moyenne (mix/blend) de la frame précédente et de la frame suivante. Par exemple, dans le cas du telecine judder, au lieu d'envoyer la cadence "AAA BB CCC DD", on envoie la cadence "AA X BB CC Y DD", où X est une frame artificielle constituée à 50/50 de A et B, et Y est une frame artificielle  constituée à 50/50 de C et D. On remarque que chaque frame est répétée "2.5" fois (le .5 correspondant au blend), au lieu de 2:3:2:3 fois. La documentation de [https://mpv.io/ mpv] propose [https://github.com/mpv-player/mpv/wiki/Interpolation#smoothmotion une autre présentation] de cette solution.
 
 
Le même procédé est utilisé pour « adoucir » une discontinuité due à l'horloge : au lieu de répéter ou retirer une frame, on peut la fusionner à la place. Cette solution peut donc être utilisée pour résoudre les deux problèmes simultanément. En fait, l'algorithme se contrefout de savoir si un frame repeat ou un frame drop est causé par du 3:2 pulldown ou une discontinuité : dans les deux cas il fusionnera mécaniquement les frames sans chercher à comprendre. Cela en fait une solution très flexible et très générique, tout en étant très simple d'utilisation.
 
 
L'objection évidente à ce genre de traitement est qu'il altère la vidéo. Notons cependant qu'il ne faut pas confondre ce traitement avec du ''motion interpolation'', qui n'a quasiment rien à voir : ici on ne cherche pas à calculer des vecteurs de mouvement et à reconstituer des frames intermédiaires, au lieu de ça on génère simplement du flou de mouvement pour « gommer » le problème. En particulier, le frame blending, contrairement à l'interpolation, ne ''peut pas'' donner à la vidéo une apparence plus "fluide" (soap opera effect) que la vidéo d'origine - le rendu reste authentique et conforme à la référence cinéma.
 
 
Pour obtenir les meilleurs résultats, il faut que les frames "blendées" soient affichées pendant le moins de temps possible, pour éviter que le spectateur ne puisse voir la supercherie. Il faut donc utiliser la fréquence de rafraîchissement la plus haute possible. En particulier, et de manière contre-intuitive, il est recommandé de ''rester en 60 Hz'' (ou plus) si Smooth Motion est utilisé, ''même si le contenu est en 24p'' (!). Utiliser Smooth Motion en 24 Hz est une mauvaise idée parce qu'une frame "blendée" restera à l'écran pendant beaucoup plus de temps. Par ailleurs, la précision de la fréquence de rafraîchissement n'est pas primordiale parce que Smooth Motion gommera toute discontinuité liée à l'horloge vidéo de toute façon.
 
 
De manière surprenante et remarquable, Smooth Motion en 24p@60Hz est capable de produire un résultat peu ou prou indistinguable du 24p « natif ». Il semblerait que ces frames "blendées" soient capables de berner l'œil humain de manière très efficace. En fait, il est même théoriquement possible d'obtenir un résultat plus "doux" que du 24p "sample and hold" natif parce que le flou de mouvement ainsi créé a tendance à renforcer l'impression de fluidité (une technique similaire est utilisée dans beaucoup de jeux vidéo). L'impression finale semble néanmoins varier selon les individus et l'écran utilisé.
 
 
Dans tous les cas, le flou créé par cette technique aura forcément tendance à diminuer la netteté de l'image dans les mouvements. Cela dit, dans le cas de contenu 24p les mouvements sont rarement nets en premier lieu, en raison des contraintes intrinsèques du format.
 
 
Smooth Motion est la seule vraie solution utilisable avec un écran qui n'accepte que du 60 Hz, ce qui inclut notamment certains moniteurs PC et en particulier les laptops. Dans le cas d'une TV ou d'un projecteur, gardez en tête que les algorithmes de traitement temporel intégrés à l'écran (motion interpolation, etc.) n'apprécieront pas forcément de se retrouver avec des frames blendées en entrée.
 
 
Il s'agit également de la seule solution qui est capable de s'adapter de manière transparente et automatique à toutes les situations mêmes les plus exotiques, comme les vidéos à framerate inhabituel (par exemple 25p), voire les (très rares) vidéos à framerate variable. C'est une solution idéale si vous regardez des contenus de formats très divers.
 
 
=== En pratique ===
 
 
Il est théoriquement possible de traiter la vidéo à l'avance pour appliquer le frame blending, mais ce serait incroyablement laborieux. Heureusement, certains moteurs de rendu vidéo proposent de faire ce traitement à la volée :
 
 
* L'excellent [http://madvr.net/ madVR] propose l'option "Smooth Motion". madVR nécessite l'utilisation d'un lecteur vidéo compatible DirectShow, tel que [https://mpc-hc.org/ MPC-HC].
 
* Le lecteur vidéo [http://www.zachsaw.com/mpdn/ MPDN] semble proposer une option similaire appellée "Fluid Motion".
 
* [https://mpv.io/ mpv] (et [[wikipedia:Mpv_(media_player)#Interface_and_graphical_front-ends|dérivés]] tels que [https://www.smplayer.info/ SMPlayer]) propose l'[https://mpv.io/manual/master/#options-interpolation option <code>interpolation</code>] qui implémente cette fonctionnalité. La technique utilisée semble être subtilement différente ([https://github.com/mpv-player/mpv/wiki/Interpolation#convolution-based-interpolation convolution]) comparé à la solution classique ([https://github.com/mpv-player/mpv/wiki/Interpolation#smoothmotion smoothmotion]).
 
  
 
== Ajustement avancé de la fréquence de rafraîchissement (Custom Mode) ==
 
== Ajustement avancé de la fréquence de rafraîchissement (Custom Mode) ==
 
On a vu plus haut une solution consistant à [[#Ajuster_la_vitesse_audio_.28ReClock.29|ajuster la vitesse de lecture audio]] pour se caler sur la vitesse de l'horloge vidéo. En théorie, on pourrait faire le contraire : ajuster la fréquence de rafraîchissement vidéo pour se caler sur l'horloge audio. En effet, les drivers GPU modernes permettent (du moins en théorie) de créer des « résolutions personnalisées » avec des fréquences de rafraîchissement arbitraires.
 
 
En réalité, si on cherche à implémenter une telle solution de manière « naïve », on va se heurter à un problème qui a déjà été mentionné [[#Le_Seigneur_des_PC_:_les_Deux_Horloges|précédemment]] : il est impossible de personnaliser la fréquence de rafraîchissement de manière suffisamment fine. En pratique il y a une différence de l'ordre de 0.01% entre deux configurations adjacentes (par exemple, entre 23.9741 Hz et 23.9773 Hz), ce qui n'est pas suffisamment « fin » pour obtenir un résultat acceptable - on se retrouve avec une discontinuité toutes les quelques minutes. Idéalement, pour avoir une chance d'éviter toute discontinuité en 24 Hz dans un film de 2 heures, il faut pouvoir ajuster la fréquence de rafraîchissement par paliers extrêmement fins, de l'ordre de 0.0005% (5 ppm).
 
 
La fréquence de rafraîchissement est dérivée directement de la "pixel clock", qui est le signal d'horloge principal de la sortie vidéo. C'est cette pixel clock qui nous limite, car elle n'est ajustable que par paliers de 0.01 MHz. Mais Madshi (oui, encore lui), a trouvé un moyen de « tricher » : en plus de la pixel clock, il est également possible de « jouer » avec d'autres paramètres de la sortie vidéo qui ont également une influence sur la fréquence de rafraîchissement finale. En particulier le "[https://electronics.stackexchange.com/questions/201011/what-is-front-porch-and-back-porch-of-a-video-signal-in-crt-display back porch]" horizontal et vertical, qui sont des paramètres extrêmement techniques (et pas particulièrement utiles en temps normal) et qui ont trait aux intervalles de temps laissés « blancs » entre chaque ligne et chaque frame qui est envoyée à l'écran. En exploitant ces paramètres exotiques, on obtient plus de contrôle sur la fréquence de rafraîchissement finale, à tel point qu'il devient possible de l'ajuster de manière suffisamment fine pour résoudre notre problème. Cette solution est désignée sous le terme "Custom Modes".
 
 
En théorie, personne n'est censé modifier ces paramètres avancés - ils sont codifiés dans le standard VESA "[[wikipedia:Coordinated_Video_Timings|Coordinated Video Timings]]". Pour cette raison, un écran n'appréciera pas forcément de tels ajustements, et il n'y a aucune garantie qu'il acceptera un signal ainsi modifié. Ces problèmes de compatibilité dépendent du matériel utilisé et sont plus ou moins imprévisibles ; il faut faire le test pour vérifier. C'est le principal inconvénient de cette technique.
 
 
Notons que, strictement parlant, cette solution est uniquement capable d'éliminer le [[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|problème des horloges]] ; elle n'élimine pas le [[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|telecine judder]]. Cela dit, il est évidemment possible de faire d'une pierre deux coups et d'éliminer les deux à la fois en ajustant une fréquence de rafraîchissement qui est déjà proche de [[#Utiliser_24_Hz_au_lieu_de_60_Hz|24 Hz]] (ou d'un [[#Utiliser_un_multiple_de_24_Hz_.2848.2F72.2F96.2F120.2F144.29_au_lieu_de_60_Hz|multiple]]) au départ, à supposer que l'écran est compatible avec une telle fréquence.
 
 
Rappellons également que contrairement à d'autres solutions comme [[#Ajuster_la_vitesse_audio_.28ReClock.29|ReClock]] ou [[#Frame_blending_.28Smooth_Motion.29|Smooth Motion]], cette approche n'a pas une précision infinie : elle peut réduire fortement la probabilité qu'une discontinuité va apparaître pendant la lecture d'une vidéo, mais elle ne peut pas réduire cette probabilité à zéro.
 
 
=== En pratique ===
 
 
Contrairement à d'autres solutions décrites dans ce document, il n'est pas possible de faire ces ajustements à la volée au début ou au cours de la lecture vidéo, car les drivers GPU ne sont pas conçus pour changer ces paramètres à la volée de manière transparente.
 
 
Il faut donc configurer ces "custom modes" à l'avance. Fort heureusement, [http://madvr.com/ madVR] propose un « assistant » pour vous aider à les générer ; en particulier, il est capable de mesurer la déviation d'horloge pour vous et de vous aider à trouver le bon mode, tout en vous prévenant de potentiels problèmes de compatibilité. La procédure reste tout de même relativement laborieuse. Pour plus d'informations, référez-vous au [http://madvr.com/crt/CustomResTutorial.html tutoriel de Madshi].
 
 
Une fois un "custom mode" adéquat généré pour une fréquence donnée (par exemple, 23.976 Hz), il suffit de l'activer avant de lire une vidéo pour profiter d'une lecture sans discontinuités. Bien que l'assistant de création fasse partie de madVR, en théorie un mode généré de cette manière peut être utilisé dans n'importe quelle application, y compris n'importe quel lecteur vidéo. Par exemple, cette solution peut être utilisée pour corriger la sortie d'une application type Netflix. Cela contraste avec d'autres solutions qui nécessitent de la « coopération » de la part du lecteur vidéo pour fonctionner.
 
 
En plus de potentiels problèmes de compatibilité avec les écrans, et la configuration assez laborieuse, il peut également y avoir des problèmes de stabilité : comme ces "custom modes" sont statiques, ils ne s'adaptent pas automatiquement à des changements qui peuvent avoir un impact potentiel sur la vitesse des horloges audio et vidéo, tels qu'un changement de matériel (notamment un changement de sortie son) ou même des écarts de température (!). Cela dit, dans le cas spécifique où l'audio et la vidéo sont au final contrôlés par le même signal d'horloge (par exemple, les deux passent par la même sortie HDMI), la relation entre les deux horloges devrait rester fixe et le "custom mode" ainsi généré devrait en principe être parfaitement stable.
 
 
Enfin, les drivers GPU ont tendance à poser des problèmes supplémentaires en raison du cas d'utilisation bizarre et exotique, qui a la fâcheuse tendance à soulever des bugs latents. Par exemple il n'est pas rare de voir des gens se plaindre que les drivers refusent d'appliquer un custom mode sans raison apparente, ou que les modes sont effacés de manière intempestive.
 
 
Sous Linux le support des "custom modes" est meilleur : [[wikipedia:X.Org_Server|X.Org]] les supporte nativement, et la pixel clock est réglable par paliers de 0.001 MHz (contre 0.01 MHz sous Windows). Cela implique cependant de modifier manuellement la configuration du serveur X.
 
 
= Recommandations =
 
 
* Si votre écran ne supporte pas du « vrai » 24p, alors le [[#Frame_blending_.28Smooth_Motion.29|frame blending]] est votre seule et unique option.
 
* Si vous voulez une solution qui fonctionne avec n'importe quel lecteur vidéo (Netflix, etc.), alors un [[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|custom mode]] en 24 Hz (ou un multiple) est votre seule et unique option.
 
 
Si vous n'êtes pas contraint par les cas ci-dessus, alors :
 
 
* Si votre ordinateur est à usage mixte, et en particulier si votre écran est un moniteur de PC ou un laptop, ou que vous ne voulez pas vous prendre la tête, restez en 60 Hz (ou plus) et utilisez la solution du [[#Frame_blending_.28Smooth_Motion.29|frame blending]]. Cette solution est très simple, ne nécessite pas de changer de mode et donnera des résultats très corrects dans tous les cas.
 
* S'il s'agit d'un HTPC dédié connecté à une TV ou un vidéoprojecteur, et que vous voulez les meilleurs résultats possibles, alors un [[#Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|custom mode]] (en 24 Hz) est probablement la meilleure option, car elle produit un signal 24 Hz parfaitement propre pour votre TV/projecteur. La méthode de l'[[#Ajuster_la_vitesse_audio_.28ReClock.29|ajustement audio]] est également une bonne approche.
 
  
 
= Récapitulatif des solutions =
 
= Récapitulatif des solutions =
 +
== Solutions ne reposant pas sur le support 24p@60Hz de l'écran ==
  
== Problèmes résolus ==
+
Ces solutions sont utilisables sur tout type d'écran, sauf indication contraire dans la section « compatibilité ».
  
 
{| class="wikitable"
 
{| class="wikitable"
 
!
 
!
![[#Utiliser_24_Hz_au_lieu_de_60_Hz|24 Hz]]
+
!24p@60Hz
![[#Utiliser_un_multiple_de_24_Hz_.2848.2F72.2F96.2F120.2F144.29_au_lieu_de_60_Hz|Multiple de 24 Hz]]
+
!24p@24Hz
![[#.C3.89cran_capable_de_d.C3.A9tecter_24p.4060_Hz_.28inverse_telecine.29|Inverse telecine]]
+
!Audio resampling<br/>(ReClock)
![[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]
+
!Frame blending<br/>(Smooth Motion)
![[#Frame_blending_.28Smooth_Motion.29|Frame blending]]
+
!Custom mode
![[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]
 
 
|-
 
|-
![[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|Telecine judder]]
+
!colspan="7"|Résultat final
|X
 
|X
 
|X
 
|
 
|X
 
|
 
|-
 
![[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|Discontinuités]]
 
|
 
|
 
|
 
|X
 
|X
 
|X
 
|}
 
 
 
== Combinaisons possibles ==
 
 
 
{| class="wikitable"
 
!
 
![[#Utiliser_24_Hz_au_lieu_de_60_Hz|24 Hz]]
 
![[#Utiliser_un_multiple_de_24_Hz_.2848.2F72.2F96.2F120.2F144.29_au_lieu_de_60_Hz|Multiple de 24 Hz]]
 
![[#.C3.89cran_capable_de_d.C3.A9tecter_24p.4060_Hz_.28inverse_telecine.29|Inverse telecine]]
 
![[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]
 
![[#Frame_blending_.28Smooth_Motion.29|Frame blending]]
 
![[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]
 
|-
 
![[#Utiliser_24_Hz_au_lieu_de_60_Hz|24 Hz]]
 
|
 
|
 
|
 
|X
 
|
 
|X
 
|-
 
![[#Utiliser_un_multiple_de_24_Hz_.2848.2F72.2F96.2F120.2F144.29_au_lieu_de_60_Hz|Multiple de 24 Hz]]
 
|
 
|
 
|
 
|X
 
|
 
|X
 
|-
 
![[#.C3.89cran_capable_de_d.C3.A9tecter_24p.4060_Hz_.28inverse_telecine.29|Inverse telecine]]
 
|
 
|
 
|
 
|X
 
|
 
|X
 
|-
 
![[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]
 
|X
 
|X
 
|X
 
|
 
|
 
|
 
|-
 
![[#Frame_blending_.28Smooth_Motion.29|Frame blending]]
 
|
 
|
 
|
 
|
 
|
 
|
 
|-
 
![[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]
 
|X
 
|X
 
|X
 
|
 
|
 
|
 
|}
 
 
 
== Résumé global ==
 
 
 
Dans le cas des solutions "[[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]", et "[[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]", il est supposé que la fréquence de rafraîchissement nominale est approximativement correcte (voir ligne « fréquence de rafraîchissement utilisée »).
 
 
 
{| class="wikitable"
 
!
 
!colspan="6"|Sans [[#.C3.89cran_capable_de_d.C3.A9tecter_24p.4060_Hz_.28inverse_telecine.29|Inverse Telecine]]
 
!colspan="3"|Avec [[#.C3.89cran_capable_de_d.C3.A9tecter_24p.4060_Hz_.28inverse_telecine.29|Inverse Telecine]]
 
|-
 
!
 
!60Hz (cas par défaut)
 
![[#Utiliser_24_Hz_au_lieu_de_60_Hz|24 Hz]]
 
![[#Utiliser_un_multiple_de_24_Hz_.2848.2F72.2F96.2F120.2F144.29_au_lieu_de_60_Hz|Multiple de 24 Hz]]
 
![[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]
 
![[#Frame_blending_.28Smooth_Motion.29|Frame blending]]
 
![[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]
 
!60Hz (cas par défaut)
 
![[#Ajuster_la_vitesse_audio_.28ReClock.29|Ajustement audio]]
 
![[##Ajustement_avanc.C3.A9_de_la_fr.C3.A9quence_de_rafra.C3.AEchissement_.28Custom_Mode.29|Custom mode]]
 
|-
 
!Résultat final
 
!colspan="9"|
 
 
|-
 
|-
 
!Qualité du rendu vidéo
 
!Qualité du rendu vidéo
 
|style="background-color:#fdd;"|Très mauvais
 
|style="background-color:#fdd;"|Très mauvais
|style="background-color:#fdd;"|Mauvais
+
|style="background-color:#fdd;"|Très mauvais
|style="background-color:#fdd;"|Mauvais
 
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Bon/excellent
 
|style="background-color:#dfd;"|Bon/excellent
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#fdd;"|Mauvais
 
|style="background-color:#dfd;"|Excellent
 
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
 
|-
 
|-
 
!Qualité du rendu audio
 
!Qualité du rendu audio
|style="background-color:#dfd;"|Parfait
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Excellent
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|-
 
|-
!Cadence
+
!colspan="7"|Cadence
!colspan="9"|
 
 
|-
 
|-
![[#Telecine_judder_.28saccades_continues_-_24p.4060Hz.2C_.223:2_pull_down.22.29|Telecine judder]]
+
!Variance continue
|style="background-color:#fdd;"|Mauvais
+
|style="background-color:#fdd;"|Très mauvais
|style="background-color:#dfd;"|Parfait
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|-
 
|-
![[#Horloge_d.C3.A9synchronis.C3.A9e_.28discontinuit.C3.A9s.29|Discontinuités]]
+
!Discontinuités
 
|style="background-color:#fdd;"|Très fréquentes,<br/>visibles
 
|style="background-color:#fdd;"|Très fréquentes,<br/>visibles
|style="background-color:#fdd;"|Fréquentes,<br/>très visibles
 
|style="background-color:#fdd;"|Fréquentes,<br/>visibles
 
|style="background-color:#dfd;"|Très rares,<br/>très visibles
 
|style="background-color:#dfd;"|Très fréquentes,<br/>invisibles
 
|style="background-color:#dfd;"|Rares,<br/>très visibles
 
 
|style="background-color:#fdd;"|Très fréquentes,<br/>très visibles
 
|style="background-color:#fdd;"|Très fréquentes,<br/>très visibles
 
|style="background-color:#dfd;"|Très rares,<br/>très visibles
 
|style="background-color:#dfd;"|Très rares,<br/>très visibles
 +
|style="background-color:#dfd;"|Inexistantes
 
|style="background-color:#dfd;"|Rares,<br/>très visibles
 
|style="background-color:#dfd;"|Rares,<br/>très visibles
 
|-
 
|-
 
!Netteté des mouvements
 
!Netteté des mouvements
|style="background-color:#dfd;"|Parfait
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Bon/excellent
 
|style="background-color:#dfd;"|Bon/excellent
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|-
 
|-
!Compatibilité
+
!colspan="7"|Compatibilité
!colspan="9"|
 
 
|-
 
|-
!Nécessite un écran capable de détecter 24p@60Hz
+
!Nécessite un écran supportant 24 Hz<br />(ou un multiple)
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 +
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 +
 
|-
 
|-
!Empêche l'utilisation de modes<br />"low input lag", "gaming", "PC"
+
!Prend des libertés avec les normes DVI/HDMI/DP
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
Ligne 419 : Ligne 178 :
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 +
|-
 +
!Peut interférer avec du post-traitement temporel<br />effectué par l'écran
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
|style="background-color:#fdd;"|Oui
 
|-
 
!Nécessite un écran supportant 24 Hz<br />(ou un multiple)
 
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
|style="background-color:#fdd;"|Oui
+
|style="background-color:#dfd;"|Non
|style="background-color:#fdd;"|Oui
 
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|-
 +
!Peut buter contre les limites de HDMI <2.2<br />(10-bit 2160p@60Hz)
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|-
 
|-
!Prend des libertés avec les normes [[wikipedia:Coordinated_Video_Timings|CVT]]
+
!Support par les drivers GPU
|style="background-color:#dfd;"|Non
+
|style="background-color:#dfd;"|Parfait
|style="background-color:#dfd;"|Non
+
|style="background-color:#dfd;"|Excellent
|style="background-color:#dfd;"|Non
+
|style="background-color:#dfd;"|Excellent
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#fdd;"|Mauvais
 +
|-
 +
!Nécessite un lecteur vidéo DirectShow<br />(MPC-HC, etc.)
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
 
|-
 
|-
!Peut interférer avec du traitement temporel<br />effectué par l'écran
+
!Nécessite de décoder l'audio côté PC<br/>(pas de bitstreaming)
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
Ligne 452 : Ligne 213 :
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
 
|-
 
|-
!Support par les drivers GPU
+
!colspan="7"|Divers
 +
|-
 +
!Fréquence de rafraîchissement utilisée
 +
|style="background-color:#dfd;"|60 Hz
 +
|style="background-color:#fdd;"|24 Hz
 +
|style="background-color:#fdd;"|24 Hz
 +
|style="background-color:#dfd;"|60 Hz
 +
|style="background-color:#fdd;"|24 Hz
 +
|-
 +
!Simplicité de mise en place
 +
|style="background-color:#dfd;"|Rien à faire
 +
|style="background-color:#dfd;"|Très facile
 +
|style="background-color:#dfd;"|Facile
 +
|style="background-color:#dfd;"|Facile
 +
|style="background-color:#fdd;"|Laborieux
 +
|-
 +
!Stabilité de la configuration
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#ffd;"|Moyen
 +
|}
 +
 +
== Solutions reposant sur le support 24p@60Hz de l'écran ==
 +
 +
Ces solutions ne sont utilisables que sur un écran supportant ce que [https://www.rtings.com/tv Rtings] appelle le [https://www.rtings.com/tv/tests/motion/24p "Judder-Free 24p via 60p"]. Elles nécessitent une TV ou projecteur incluant cette fonctionnalité. (Dans le cas d'un moniteur PC, c'est très improbable.) Par ailleurs, toutes les solutions décrites dans cette section souffrent d'un certain nombre de contraintes supplémentaires :
 +
* Ces solutions ne fonctionneront probablement pas si l'écran est en mode "low input lag", "gaming" ou "PC".
 +
* La fiabilité de ces solutions dépend beaucoup de la qualité du traitement interne effectué par l'écran. Le tableau ci-dessous suppose que le comportement de l'écran est totalement fiable.
 +
* Ces solutions peuvent avoir des implications concernant la qualité d'image, en fonction des traitements effectués par l'écran.
 +
* Il est [https://forum.doom9.org/showthread.php?p=1838792#post1838792 impossible] d'utiliser madVR avec ces solutions, car il ne permet pas d'obtenir une cadence stable en 24p@60Hz pour le moment.
 +
 +
Si ces contraintes vous sont inacceptables, vous pouvez vous rabattre sur les solutions de la section précédente.
 +
 +
{| class="wikitable"
 +
!
 +
!24p@60Hz
 +
!Audio resampling<br/>(ReClock)
 +
!Custom mode
 +
|-
 +
!colspan="7"|Résultat final
 +
|-
 +
!Qualité du rendu vidéo
 +
|style="background-color:#ffd;"|Moyen
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
|style="background-color:#ffd;"|Moyen
 
 
|style="background-color:#dfd;"|Excellent
 
|style="background-color:#dfd;"|Excellent
 +
|-
 +
!Qualité du rendu audio
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Excellent
 +
|style="background-color:#dfd;"|Parfait
 +
|-
 +
!colspan="7"|Cadence
 +
|-
 +
!Variance continue
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Parfait
 +
|-
 +
!Discontinuités
 +
|style="background-color:#fdd;"|Très fréquentes,<br/>visibles
 +
|style="background-color:#dfd;"|Très rares,<br/>visibles
 +
|style="background-color:#dfd;"|Rares,<br/>visibles
 +
|-
 +
!Netteté des mouvements
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
|style="background-color:#fdd;"|Mauvais
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
|style="background-color:#fdd;"|Mauvais
 
 
|-
 
|-
!Nécessite un logiciel de lecture spécifique<br />([http://madvr.com/ madVR], [http://www.zachsaw.com/mpdn/ MPDN], [https://mpv.io/ mpv], etc.)
+
!colspan="7"|Compatibilité
 +
|-
 +
!Nécessite un écran supportant 24 Hz<br />(ou un multiple)
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
|style="background-color:#fdd;"|Oui
+
|-
|style="background-color:#fdd;"|Oui
+
!Prend des libertés avec les normes DVI/HDMI/DP
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
|style="background-color:#dfd;"|Non
 
 
|-
 
|-
!Nécessite de décoder l'audio côté PC<br/>(pas de bitstreaming)
+
!Peut interférer avec du post-traitement temporel<br />effectué par l'écran
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|-
 +
!Peut buter contre les limites de HDMI <2.2<br />(10-bit 2160p@60Hz)
 +
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 +
|style="background-color:#fdd;"|Oui
 +
|-
 +
!Support par les drivers GPU
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#dfd;"|Parfait
 +
|style="background-color:#fdd;"|Mauvais
 +
|-
 +
!Nécessite un lecteur vidéo DirectShow<br />(MPC-HC, etc.)
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 +
|-
 +
!Nécessite de décoder l'audio côté PC<br/>(pas de bitstreaming)
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#fdd;"|Oui
 
|style="background-color:#dfd;"|Non
 
|style="background-color:#dfd;"|Non
 
|-
 
|-
!Divers
+
!colspan="7"|Divers
!colspan="9"|
 
 
|-
 
|-
 
!Fréquence de rafraîchissement utilisée
 
!Fréquence de rafraîchissement utilisée
|style="background-color:#dfd;"|~60 Hz
+
|style="background-color:#dfd;"|60 Hz
|style="background-color:#fdd;"|23.976 Hz
+
|style="background-color:#dfd;"|60 Hz
|style="background-color:#ffd;"|N*23.976 Hz
+
|style="background-color:#dfd;"|60 Hz
|style="background-color:#fdd;"|~24 Hz
 
|style="background-color:#dfd;"|~60+ Hz
 
|style="background-color:#fdd;"|~24 Hz
 
|style="background-color:#dfd;"|~60 Hz
 
|style="background-color:#dfd;"|~60 Hz
 
|style="background-color:#dfd;"|~60 Hz
 
 
|-
 
|-
 
!Simplicité de mise en place
 
!Simplicité de mise en place
|style="background-color:#dfd;"|Rien à faire
 
|style="background-color:#dfd;"|Très facile
 
|style="background-color:#dfd;"|Facile
 
|style="background-color:#dfd;"|Facile
 
|style="background-color:#dfd;"|Facile
 
|style="background-color:#fdd;"|Laborieux
 
 
|style="background-color:#dfd;"|Rien à faire
 
|style="background-color:#dfd;"|Rien à faire
 
|style="background-color:#dfd;"|Facile
 
|style="background-color:#dfd;"|Facile
Ligne 514 : Ligne 333 :
 
|-
 
|-
 
!Stabilité de la configuration
 
!Stabilité de la configuration
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#ffd;"|Moyen
 
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#dfd;"|Parfait
 
|style="background-color:#ffd;"|Moyen
 
|style="background-color:#ffd;"|Moyen
 
|}
 
|}

Notez bien que toutes les contributions à NoFrag peuvent être modifiées, transformées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés contre votre gré, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. (voir NoFrag:Copyrights pour plus de détails). N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !

Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)