Ce logigiel permet de changer le nombre d'images par seconde d'un flux video progressif. Il fait appel aux mjpegtools ( http://mjpeg.sf.net ). A l'inverse de yuvfps, qui ne fait qu'ajouter ou enlever des trames, yuvmotionfps calcule les trames intermédiaires en interpolant le mouvement des objets entre les trames, en utilisant un algorithme ressemblant à celui de compensation des mouvements du standard MPEG.
Nouvelle version 1.6 qui
corrige plein de bugs.
Grosse améliorations aux bords de l'image,
détection des
changements de scènes, calcul exact du nombre d'images par
seconde en sortie, et plein de paramêtres a bidouiller.
Tous les formats 4:2:0 ainsi que 4:1:1 sont pris en compte; je
recherche toujours des testeurs, si il y a encore un bug, dites
le moi
Vous pouvez le recupérer ici: yuvmotionfps-1.6.tgz
!!!!
Pour installer :
./configure && make && make install
Ca sera plus facile
à comprendre avec un exemple.
Disons qu'on veut convertir un film à 2 images/seconde en
film
à 3 images/seconde.
Le film en entrée resemble à ça:
Si on utilise yuvfps pour changer les nombre d'images/seconde, ça va simplement copier certaines trames, ce qui rend le mouvement saccadé, comme ci-dessous:
En fait, si on regarde ce qui doit se passer réellement (en fonction du temps) ca donne quelque chose comme ca:
|
||||||||
|
C'est ici qu'on fait le tour de
magie: yuvmotionfps va calculer le
mouvement des différents objets dans l'image, et interpoler
les
trames correspondantes.
Par exemple, au temps = 2/3, la trame de sortie sera un
mélange
de la trame 1 et de la trame 2 comme ci-dessous:
Time = 0 | Time = 2/3 | Time = 1 |
Le mouvement du ballon (le point rouge) entre le moment t=0 et t=1 est calculé (flèche verte). Pour calculer la position du ballon au temps t=2/3, on interpole simplement: position(t=2/3)=position(t=0)+2/3*mouvement(0->1).
Le résultat final est une approximation très propre de la trame telle qu'elle aurait été prise, comme ci-dessous:
|
||||||||
|
Voila ! on a maintenant un mouvement très fluide. Alors sortez vos vieilles vidéos super 8 à 18 images/secondes et convertissez les en film a 24 images/secondes!
OK, il y a quelques trucs à savoir... Tout d'abord, c'est du code plutôt recent, donc il peut y avoir quelques bugs. Deuxièmement, il ne faut pas espérer avoir la même qualité que si le film avait été filmé directement au nombre d'images/seconde de sortie. Il peut y avoir des artefacts (des carrés), et/ou des blocs mal mélanges, ce qui peut rendre les parties en mouvement un peu floues; je vous rassure, c'est quand même très rare en utilisant les bons paramètres. L'estimation des mouvement est vraiment lente.
Nooooon ! Pour cela, il vaut mieux utiliser Téléciné ou 3:2 pulldown. C'est fait pour ça, et en plus c'est un processus réversible: le lecteur de DVD "progressive scan" sera capable de reconstruire le film original à 23.97 fps en utilisant le processus d'"Inverse Telecine".
Je serais tempté de
répondre non à cette
question, parce que yuvmotionfps va interpoler la plupart des trames,
ce qui revient à perdre la plupart des trames originales
(plutot
mauvais). Les 2 méthodes classiques sont
d'accélerer le
film par un facteur 25/24, c'est à dire environ 4%;
evidemment,
il faut accélerer la piste son aussi. L'autre
méthode est
de répliquer une trame sur 24, ce qui peut donner des
sacades
(en particulier durant un travelling), mais qui passe
inaperçu
la plupart du temps (c'est comme ca que font les DVDs). Franchement,
faites comme vous voulez.
C'est l'outil ideal pour ca. Une fois de plus, ça n'est pas génial pour archiver les films (à cause de l'interpolation), mais pour les visionner sur des systèmes conventionnels, c'est super.
Ca marche bien, à un detail près: il faut faire attention a l'entrelacement. yuvmotionfps ne traite que les flux videos progressifs, donc pour les videos entrelacées, je suggère d'utiliser yuvdeinterlace avant. Vous trouverez yuvdeinterlace dans le CVS des mjpegtools, ou la version 1.7.0 quand elle sera sortie.
Je fournis un paquet tar.gz, il
faut aussi un version récente
des mjpegtools (CVS ou 1.7.0 quand elle sera sortie)
Les paquets se trouvent ici