Restauration de vidéos
Par Florent Manens, jeudi 24 novembre 2005 à 00:15 :: Informatique :: #11 :: rss
Je commence à m'intéresser à la restaurations de vidéos numériques afin de garder dans un format informatique de vieilles cassettes vidéos. J'utilise un magnétoscope de récupération associé à une "carte d'aquisition" de fortune (ça se résume à une carte TV).
Une fois que j'ai le flux vidéo sur mon ordinateur (je pense que cette phrase pourrait faire l'objet d'un article), je suis tenté de traiter les images pour tenter d'améliorer la qualité de la vidéo. Étant donné que la cassette est vieille, l'image n'est pas de très bonne qualité et le son est décalé (une erreur de capture ?).
Avec les filtres Avidemux
Version initiale
Pour traiter les vidéos sous Linux, il existe un outil très pratique : avidemux. Il permet de travailler sur des fichiers vidéos compressés :
- Ajout de filtres Audios/vidéos
- Découpage/Ajouts
- Redimentionnement
- ...
Il m'est impossible d'être exhaustif, ce logiciel est très bien fait. Pour les utilisateurs de windows il existe toujours VirtualDub.
Après avoir joué un petit moment avec avidemux, j'arrive à ça :
Version sans deinterlace
AddVideoFilter(mphqdenoise3d,param1=4,000000,param2=3,000000,param3=6,000000); AddVideoFilter(temporalcleaner,ythresholdMask=5,cthresholdMask=2); AddVideoFilter(stabilize,param=30); AddVideoFilter(gaussian,chroma=1,luma=1); AddVideoFilter(fluxsmooth,temporal_threshold=7,spatial_threshold=7);
Peut être que la pertinence des filtres est à revoir, je ne suis pas expert.
Puis en plaçant judiscieusement un filtre "deinterlacer" (Lav codec PP deinterlacer pour être exacte) et quelques réglages de lumière, j'arrive à une image un tout petit peu mieux :
Version avec deinterlace
AddVideoFilter(lavcppdeint,deintType=5,autolevel=1); AddVideoFilter(gaussian,chroma=1,luma=1); AddVideoFilter(eq2,contrast=1.270000,brightness=0.020000,saturation=1.240000, gamma=1.000000,gamma_weight=1.000000,rgamma=0.990000,ggamma=1.000000,bgamma=1.000000); AddVideoFilter(mphqdenoise3d,param1=4.000000,param2=3.000000,param3=6.000000); AddVideoFilter(soften,radius=4,luma=6,chroma=10);
Avec GREYCstoration
Ça aurait pu s'arrêter là si je n'avais pas eu droit à la sortie de Cimg. Cet outil est une bibliothèque de manipulation d'objets graphiques (c'est un outil écrit par un français, David Tschumperlé, chercheur au CNRS de Caen). En surfant sur le site du laboratoire GREYC, J'ai retrouvé la page de GREYCstoration. Une page de démonstration présente les capacités de l'outil. Vous aurez remarqué avec quelle facilité le peroquet sort de sa cage !
Je me suis dit que je pourrais appliquer ça à la restauration de vidéos. Pour être honête, j'ai peur que travailler sur une vidéo implique des choses (par exemple des informations de passage entre 2 scènes ?) que je ne connais pas bien et qui pourraient influer sur les résultats de mes essais lors du passage en vidéo.
Dans un premier temps, je décide de jouer avec greycstoration (que j'ai recompilé sans problème depuis les sources). Après extraction d'une frame en .bmp (depuis avidemux), je lance quelques tests :
Avec les mauvais paramètres, certains appellent ça de l'art
Les résultats ne sont pas vraiment satisfaisants :
greycstoration -restore chaumes.bmp -h -p2 0.8 -dt 2 -a 2 -sigma 4 -o chaumes_new.bmp
(Ce que l'histoire ne dit pas c'est qu'il a fallut 11 minutes pour arriver à cette image)
Je continue tranquillement mes recherches mais tester les réglages de greycstoration est long ! la dernière image que je viens de tester à pris 21 minutes !
greycstoration -restore chaumes.bmp -h -p2 0.8 -dt 6 -o chaumes_new.bmp
En ce qui concerne le son, comme le décalage n'est pas le même sur l'ensemble de la capture, j'ai décidé de découper en morceux plus courts. Cela me permet de resynchroniser le son pour chaque partie.
Peut être une suite un jour, si j'arrive à me servir de greycstoration ...
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire