Affichage des articles dont le libellé est video. Afficher tous les articles
Affichage des articles dont le libellé est video. Afficher tous les articles

mercredi 2 juin 2021

Avisynth - Script pour améliorer la qualitée d'une vidéo (post processing)

 Voici un script Avisynth que j'ai trouvé sur digitalfaq.com et qui donne un très beau rendu.

En effet , le traitement de l'image est vraiment pas mal, sur la fenêtre de gauche (vhs post pocessing.avs) la vidéo traitée, et sur la fenêtre de droite(OpenMPEG2.avs) l'originale :

Voici le script à utiliser :

#Source : http://www.digitalfaq.com/forum/video-capture/9189-horizontal-resolution-vhs.html
#Credit : sanlyn , Edited by : mes-passions-sur-le-net.blogspot.com

 #Import("RemoveDirtMC.avs")

#To open an avi file
#AviSource("file.avi")

#To open a MPEG file
FFMPEGSource2("file.mpg", atrack=1)
AssumeFPS(30000,1001)
AssumeTFF()
ConvertToYUY2(interlaced=true)
SeparateFields()
FixVHSOversharp(20,16,12)
FixVHSOversharpL(20,12,8)
Weave()
Levels(10, 1.0, 255, 16, 255, dither=true, coring=false)

ConvertToYV12(interlaced=true)

#Double the number of frames ex: 25 fps to 50 fps
#QTGMC(preset="medium",EZDenoise=4,denoiser="dfttest",ChromaMotion=true,\
#  border=true,ChromaNoise=true,DenoiseMC=true,sharpness=0.7)

#Stay to original frame rate
QTGMC(preset="medium",EZDenoise=4,denoiser="dfttest",ChromaMotion=true,\
  border=true,ChromaNoise=true,DenoiseMC=true,sharpness=0.7,FPSDivisor=2)

#RemoveDirtMC(30,false)
TemporalSoften(4,4,8,15,2)
ChromaShift(C=2)

QTGMC(preset="medium",EZDenoise=4,denoiser="dfttest",ChromaMotion=true,\
  border=true,ChromaNoise=true,DenoiseMC=true,sharpness=0.7,FPSDivisor=2)

Dither_convert_8_to_16 ()
GradFun3(thr=0.8,mask=0,lsb_in=true,lsb=false,smode=1)

MergeChroma(aWarpSharp2(depth=20).aWarpSharp2(depth=10))
AddGrainC(1.25, 1.25)
Crop(0,0,-6,-18).AddBorders(4,8,2,10)
Spline36resize(720,576)
ConvertToRGB32(interlaced=false)
return last 

Il vous faudra sans doute quelques dépendances comme par exemple : QTGMC, AddgrainC, Chromashift, fftw, FixVHSOversharp, Dfttest et d'autres. Sachez que vous les trouverez sur : http://avisynth.nl en utilisant le moteur de recherche.

Pour ce script, j'ai utilisé ici un fichier MPEG contenant une vidéo encodée en MPEG2 depuis une VHS. Le fichier s'appelle "file.mpg" . Celui-ci a une résolution de 720x576 à 25 fps. La résolution sera à mettre pour Spline36resize.

dimanche 23 mai 2021

Avisynth - Script pour upscaler une vidéo!

 Ayant numérisé une cassette vidéo il y a plus de 20 ans dans une résolution inappropriée aujourd'hui .

La vidéo est issue d'une cassette 8 mm PAL et je l'ai numérisé en 160x120 à 30 fps alors qu'elle aurait dû être en 25 fps et surtout j'aurai dû numériser à une résolution plus grande mais le matériel que j'avais à l'époque ne m'aurait pas permis de le faire. en plus d'un mauvais frame rate, l'encodage en MPEG1 a eu pour effet de faire des artefacts de compression.

Le mieux serait aujourd'hui de numériser cette cassette avec le matérielle que j'ai actuellement, mais malheureusement je ne l'ai plus. Il ne me reste donc plus que ce que j'avais numérisé comme source.

J'ai voulu savoir si il était possible de faire un upscale "software" (en utilisant un programme) pour avoir un résultat correct. Et bien c'est possible.

Sur conseils, j'ai utilisé LanczosResize et plus particulièrement la mouture Lanczos4Resize qui est une des librairire de Aviynth.

Voici le script :

FFMPEGSource2("video.mpg", atrack=1)
Lanczos4Resize(640, 480)

La vidéo s'est retrouvé upscalé en 640x480 avec un premier traitement de l'image. En appliquant un filtre 2d cleaner optimized j'ai pu lisser certains artefacts de compression. Le résultat est pas mal.

Tout à gauche, la vidéo à la résolution d'origine (160x120). Au centre avec un filtre bicubic de VirtualDub d'appliqué pour l'upscaler à 640x480. A droite en utilisant le script Lanczos4Resize.