Smooth Video Project : Améliorer la fluidité de vos films en augmentant le nombre d’images par secondes

interpolation imageBonjour à tous ! Aujourd’hui, nous allons continuer sur le thème de HTPC (Home Theater Personnal Computer). En effet, en plus de l’informatique en générale, j’ai une autre grande passion, c’est le cinéma. Du coup, j’aime optimiser mon espace « home cinéma ». On a déjà vu comment ajouter des lumières d’ambiance sur votre écran ou votre TV grâce au Lightpack pour améliorer l’immersion à la façon de l’Ambilightde Phillips. Maintenant, nous allons voir comment faire de la compensation de mouvement ou encore interpolation d’images comme sur les TV haut de gamme.
Il est maintenant temps d’ajouter un petit peu de fluidité dans vos films en augmentant le nombre d’images par seconde. Vous êtes curieux de voir le résultat? Dans ce cas, suivez-moi.

Pourquoi augmenter le nombre d’images par seconde?

Vous le savez peut-être déjà, mais le nombre d’images par seconde pour le cinéma est normalisé à 24 ips (images par seconde) et à la TV on est à 25 ips. C’est un minimum syndical pour donner l’impression à votre œil que vous captez des mouvements fluides, en dessous, vous auriez l’étrange sensation que le film « rame ».

Seulement, nos écrans actuels sont en général normalisés à 60hz ou un de ses multiples. Par exemple, mon écran de pc a un taux de rafraîchissement de 60hz, ce qui veut dire qu’il est capable d’afficher 60 images par seconde. Vous me direz donc, comment fait-il pour afficher 25ips sur un écran 60hz? Et bien c’est simple, on va doubler ou tripler certaines images selon un certain algorithme pour atteindre la fréquence de rafraîchissement de l’écran. Je ne vais pas rentrer dans les détails de l’algo, mais globalement, sachez que si vous diffusez un film sur un écran, vous n’aurez que 24 images différentes sur une seconde et que certaines seront affichées deux ou trois fois afin d’atteindre les 60 images par secondes.

Sans le savoir, vous avez déjà ressenti cet effet que votre film « lag » dans certaines scènes, non? Notamment les scènes de travelling avec un grand-angle ou une grande profondeur de champ.

Le travelling qu’est-ce que c’est?

D’après notre ami Wikipédia : « Letravelling est un déplacement de la caméra au cours de la prise de vues, dont l’une des utilisations est de suivre un sujet parallèlement à son mouvement, une autre de se rapprocher ou de s’éloigner du sujet, de le contourner et éventuellement d’en révéler de nouveaux aspects. »

Vous avez déjà vu ce type de prise de vue partout, l’exemple le plus parlant pour nous est un déplacement de droite à gauche pour montrer le panorama sur un grand paysage.

Est-ce que vous avez déjà ressenti la sensation de « saccade » dans ce genre de scène ? La raison de ce problème est due au fait que 60 n’est pas un multiple de 24 : la division de 60 par 24 donne 2.5. Cela signifie que l’on va répéter en moyenne 2.5 fois chaque image. Sauf que 2.5 n’est pas un nombre juste, on ne peut pas répéter 2.5 fois une image. Du coup, pour atteindre le taux de rafraîchissement de votre écran, certaines images vont être répétées deux fois alors que d’autres le seront trois fois.

Cela va avoir comme effet de faire ressentir une sorte de saccade lorsqu’une image est répétée 3 fois au lieu de 2 ce qui va casser le rythme auquel vous serez habitué.

La compensation de mouvement : la solution

La compensation de mouvement est un principe utilisé à la fois en compression vidéo, mais aussi comme système d’interpolation d’image comme dans notre cas.

La compensation de mouvement en compression vidéo

Imaginons que vous voulez compresser une vidéo. Votre but est donc de gagner de l’espace disque.

Vous remarquez que dans beaucoup de cas, entre deux images peu de choses changent. Imaginez un personnage qui amène sa main à son visage. L’ensemble de la scène est immobile, le fond est inchangé. Les seuls changements se situent au niveau du bras, de la main du personnage et de son visage. Alors, pourquoi enregistrer des images complètes alors qu’en réalité elles sont à 80% identiques? C’est là que la compensation de mouvement entre en jeu. Nous allons nous contenter d’enregistrer les changements au lieu d’enregistrer des images complètes.

En gros, imaginons que vous avez deux images qui sont à 80% identiques. Dans ce cas, on va enregistrer 100% de la première image et ensuite seulement les 20% qui diffèrent. On aura gagné 80% de l’espace de la seconde image.

Cette méthode est au cœur de la compression MPEG. Je vous rassure, c’est en réalité bien plus compliqué que cela, ce qui explique le temps monstrueux de la compression vidéo et tout cela repose sur de gros algorithmes mais vous avez l’idée.

Le calcul d’images intermédiaires et interpolation pour augmenter le nombre d’ips

Tout est dans le titre : pour augmenter le nombre d’ips (images par seconde) nous allons calculer des images intermédiaires grâce à la compensation de mouvement aussi appelée interpolation d’images. Ici, le but n’est plus de gagner de l’espace comme pour la compression, mais plutôt de faire l’effet inverse, on va calculer la différence entre deux images pour en ajouter une autre entre les deux.

Petit rappel : le but de la compensation de mouvement est de calculer la différence entre deux images. Grâce à cette information, il est « facile » de calculer le mouvement moyen entre deux images pour créer une image intermédiaire. Ce n’est pas très clair? Voyez l’exemple en dessous.

Reprenons notre image du personnage qui amène sa main à son visage. Imaginons qu’entre l’image 1 et 2 sa main va se déplacer de 20cm (j’exagère pour mieux montrer l’idée). Nous allons utiliser la compensation de mouvement pour calculer la différence entre l’image 1 et 2 (20cm) et pour ainsi créer une image intermédiaire que nous appellerons l’image 1.5. Cette image 1.5 va faire le lien entre l’image 1 et l’image 2.

Notre personnage va donc toujours déplacer sa main de 20cm entre l’image 1 et 2 mais maintenant nous allons afficher une image intermédiaire entre les deux qui va faire un déplacement de seulement 10cm. Du coup, au lieu d’avoir un déplacement de 20cm entre deux images, nous aurons un déplacement de 10cm entre la 1 et la 1.5 puis un autre de 10 cm entre la 1.5 et la 2. Cela va donner une impression de fluidité et un mouvement moins saccadé.

Grâce à cette méthode, nous allons pouvoir remplacer les images en double par des images intermédiaires. Ainsi, pour un écran de 60hz, on aura 24 vraies images + 36 images intermédiaires calculées. C’est quand même mieux que 24 images répétées deux ou trois fois.

Si on y réfléchit, c’est énorme, on va rajouter 1.5 fois plus d’images dans notre vidéo. Cela va avoir comme effet d’ajouter de la fluidité à votre vidéo et, croyez moi, quand on y a pris goût on ne peut plus s’en passer. Maintenant, quand je vois la TV chez des amis j’ai l’étrange impression que leur TV rame…

La théorie c’est bien, mais passons maintenant à la pratique, voyons comment intégrer cette solution à son PC.

Smooth Video Project (SVP) : la solution logicielle

Avant de commencer, il faut MPC-HC

Tout est dans le titre : avant de vous lancer dans SVP, il va vous falloir un logiciel compatible qui s’appelle Media Player Classic Home Cinema (MPC-HC).
Malheureusement SVP n’est pas encore totalement compatible avec Kodi ou VLC. Ou alors il va vous falloir vous armer de patience pour configurer le premier ou encore, payer pour pouvoir utilisez la version pro de SVP pour pouvoir l’utiliser sur VLC (fonctionnalité encore en bêta).

Du coup, nous allons utiliser un logiciel totalement compatible avec SVP et gratuit. Allez sur le site de Media Player Classic Home Cinema, téléchargez-le et installez-le. N’ayez pas peur c‘est un logiciel libre et open source qui ne va rien installer en plus sur votre ordinateur (un logiciel comme je les aime). De plus vous pourrez aussi faire de l’upscaling 4k ou 1080p avec ce logiciel en suivant mon autre tutoriel : upscaling dans MPC-HC.

Smooth Video Project (SVP)

Voilà, vous pouvez maintenant télécharger SVP sur le site officiel. Prenez la version gratuite, elle sera amplement suffisante. Si après avoir testé vous êtes fan, rien ne vous interdira de prendre la version pro pour 15$ pour soutenir les développeurs (version qui en plus supporte VLC).

L’installation est sans surprises, il suffit de toujours cliquer sur suivant. À l’image de MPC-HC, SVP n’installe pas non plus de logiciels tiers de publicité ou autre (pas besoin de chercher toutes les petites cases à décocher pour ne pas pourrir son ordinateur).

Configurer SVP et tester la configuration

Premier lancement de SVP

Une fois SVP installé, vous pouvez lancer SVP Manager. Lors du premier lancement, celui-ci va analyser votre système pour essayer d’en déduire le profil qu’il utilisera.

Il faut savoir que calculer des images intermédiaires en temps réel peut consommer beaucoup de ressources CPU et graphiques et qu’il pourrait mettre à genoux des configurations modestes sur des vidéos de résolutions élevées (1080p).

N’oubliez pas de fermer toutes les applications qui consomment beaucoup de ressources avant de lancer la détection ou vous aurez ce genre de message :

logiciel d'interpolation vidéo

Smooth video project – Ressources

Une fois l’analyse lancée, vous pouvez aller dans SVP Manager et voir le profil qui a été choisi. Pour ma part, j’ai été outré de voir que sur mon i7 à 8 cœurs avec une R9 280X je n’étais pas au max de la qualité…

Sur un élan de frustration, j’ai tout mis au maximum et j’ai lancé une vidéo en 1080p : 60fps sans aucun ralentissement et seulement 30% d’utilisation du CPU, je le laisse donc à fond sans la moindre hésitation. Il faut croire que SVP est vigilant sur le profil et qu’il préfère ne pas prendre de risque. Si vous ne ressentez aucun souci, n’hésitez pas à le pousser, la qualité n’en sera que meilleure. Si au contraire votre PC est déjà mis à mal avec la configuration par défaut, ne faites rien.

Profitons-en maintenant pour voir un peu plus en détail la configuration.

Tester la configuration de Smooth Video Projet

Voilà à quoi ressemble le panneau de configuration de SVP :

svp manager

Panneau de configuration de SVP

Je vais vous montrer comment tester votre configuration. Tout d’abord, trouvez un film avec une bonne grosse résolution (si vous n’avez pas d’écran 4k limitez-vous à 1080p) et lancez-le avec MPC HC. Si vous avez un écran 3D prenez un film en 3D, cela consomme encore plus de ressources, c’est parfait pour voir jusqu’où va votre PC.
Dans mon cas j’ai testé avec un film 1080p 3D side-by-side et SVP au max : 70% d’utilisation du CPU mais pas de soucis au niveau du nombre d’images par seconde.

Pour savoir combien d’images par seconde vous avez dans votre film, après avoir lancé MPC HC allez dans affichage et sélectionnez statistique. Vous devriez voir en bas de MPC HC quelque chose comme ça :

mpc player

Statistiques dans MPC-HC

Si après une dizaine de secondes votre PC n’est pas à 100% du CPU et que le « Débit d’image » s’est stabilisé entre 59.5 et 60.5, c’est que votre nombre d’images par seconde est environ à 60 et que tout fonctionne bien.
Si le nombre d’images ne se stabilise pas ou que le nombre d’images perdues (ici 3) augmente sans arrêt c’est que votre PC n’est pas assez puissant et qu’il va falloir réduire la qualité dans SVP.

Performances VS Qualité

Vous l’aurez deviné, la première barre sert juste à définir la qualité contre les performances. Globalement, si SVP ne met pas à genou votre PC partez pour la qualité. Si au contraire votre PC n’est pas capable de suivre, réduisez ce paramètre. Je ne peux pas vous donner plus de conseils, c’est à vous de juger. Vous pouvez aussi modifier cette valeur en fonction de la résolution de la vidéo que vous regardez. Pour du 480p (dvdrip) vous devriez pouvoir mettre à fond, le 720p est un poil plus gourmand et le 1080p est une grosse marche au-dessus, pour du 1080p, je conseille une machine avec plusieurs cœurs, au moins 6 Go de RAM et une carte graphique.

Masquage des artefacts

Si vous prenez le temps de regarder une vidéo avec SVP vous tomberez rapidement sur ce qu’on appelle des artefacts. Ce sont des effets indésirables qui surviennent à cause de l’interpolation. Vous les remarquerez comme des défauts sous la forme de zones un peu floues et mal définies sur les contours des objets et plus particulièrement dans les scènes rapides (voilà un exemple).

C’est là que le masquage d’artefact intervient. Le souci du masquage c’est qu’il va réduire la fluidité. Je considère qu’il est important d’avoir un bon masquage, car sinon cela gâche la qualité de l’image et de la vidéo donc je préfère réduire un peu la fluidité et avoir une image parfaite.
Encore une fois c’est une question de goût, si vous préférez avoir une vidéo très fluide et que vous êtes insensible aux artefacts dans ce cas laissez l’option à « bas ».

Optimisation film ou animation

Cette option n’a pas vraiment besoin d’explication. Les algorithmes d’interpolation vont être plus ou moins performants selon le contenu. Certains vont être très performants sur un animé (manga, dessin animés etc.) et d’autres vont être plus efficaces sur les films.

Il faut savoir que les animés (mise à part les grandes productions type Disney) réduisent volontairement le nombre d’images pour avoir moins de dessin à faire. Ce qui fait que si vous avez bien 24 ips, il n’y a en réalité souvent que 12 vraies images qui sont ensuite doublées pour donner 24ips. Du coup, ici SVP fait un travail magique en rendant les épisodes de votre manga favori bien plus fluide, on passe de 12 images différentes à 60.

Pour revenir à l’option d’optimisation en fonction du contenu, dans mon cas, je laisse toujours cette option sur film et pourtant, en grand fan de manga, je regarde beaucoup d’animés. On va dire que j’ai juste la flemme de changer le paramètre à chaque fois que je regarde un animé et que même si la différence est perfectible elle n’est pas suffisante pour me motiver à faire 4 clics supplémentaires avant de regarder un animé.
Cela dit, si cela ne vous dérange pas de faire le changement à chaque fois (et si vous êtes moins flemmard que moi) allez-y! La compensation de mouvement sur les animés est vraiment bluffante, bien plus que sur les films et particulièrement avec cette option.

Qu’est-ce-que SVP permets de plus avec SVP Pro?

Si vous avez lu mon article sur le Lightpack, un équivalent à l’ambilight de Philips, sachez que SVP Pro intègre SVP Light, un module qui permet de contrôler les leds types Lightpack. Je l’ai testé et il est plutôt performant, même si je ne l’utilise que dans un cas : pour le visionnage de contenu 3D side-by-side. En effet, SVP Light est capable de traiter le contenu est en 3D contrairement à des solutions comme Ambibox. Du coup, et il ne fait pas le travail sur l’image complète, mais seulement sur une moitié et reporte le résultat sur la largeur totale de l’écran. A ma connaissance c’est de loin le moyen de plus simple de faire cela.

De plus, la version Pro apporte le support de VLC et permet donc la compensation de mouvement sur VLC. Gardez cependant à l’esprit que cette option est encore en bêta. Je ne l’ai pas testé car je n’utilise que MPC HC mais je sais que c’est une option qui intéresse beaucoup de monde.

Enfin, même si la version pro ne semble pas ajouter beaucoup d’options, si vous aimez le logiciel et que vous l’utilisez comme moi tous les jours, je vous rappelle que SVP Pro ne coûte que 15$. Une petite somme qui soutiendra les développeurs et leur permettra d’améliorer encore plus ce logiciel.

Voilà, c’est la fin de mon article qui a pour but de rendre vos vidéos plus fluides grâce à la compensation de mouvement, l’interpolation d’image et surtout grâce à Smooth Video Project.

 

4 commentaires

      1. Bonjour , et un grand merci de m avoir fait découvrir ce logiciel qui ameliore vraiment l image … j ai l impression d avoir changer mon materiel ! Votre poste a 4 ans mais comme quoi il sert encore aujourd hui 😉
        Merci pour votre temps partagé.

  1. Merci pour cet article intéressant ! SVP donne effectivement de bon résultats avec MPC-HC, à condition de ne pas être trop gourmand par rapport à la config du PC.
    Je suis à la recherche d’un logiciel ou d’un plug-in qui prend en charge l’interpolation de mouvement pour passer des vidéos natives en 30 fps en 60 fps directement lors de l’encodage. Connaissez-vous des applis capable de faire ça ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *