Tous les dll et avsi présents dans le répertoire \AviSynth 2.5\Plugins\ sont chargés automatiquement par avisynth, et dans ce cas, inutile de mettre des loadplugin et import pour les charger. C'est pour cela que j'ai conseillé à ricou de décompresser le zip dans ce répertoire.Subbat a écrit :@leon : Et en mettant les dll et le avsi de softsharpen on a pas besoin d'ajouter les loadplugin des dll et l'import de l'avsi ?
SoftSharpen 8.8 - Script vidéo AviSynth
Modérateur : Modérateurs
Si, si, dans le cas où on ne veut pas mélanger les différentes versions des dll et avsi (pour éviter des incompatibilités, etc.), on peut créer des répertoires spécifiques et il faut préciser le chemin d'accès.Subbat a écrit :Ah... bah c'est bon à savoir... Du coup mon truc que je t'avais demander d'intégrer dans l'aide en ligne sur le repertoire des dll n'a pas plus d'intérêt que ça...
Ce que j'ai d'ailleurs fait dans un souci de rangement.
J'ai donc tout lu et je trouve ça formidable, rapide d'utilisation et explications bien détaillées, je vais m'en servir souvent (dès que la prochaine maj de m4ng sortira !).
Il ne me reste qu'une seule question sur toutes ces options : est-ce que mettre la profondeur d'analyse de débruitage à 3 sur un film propre comme un dvd peut engendrer un débruitage intempestif amenant du flou, ou ça ne peut pas faire de mal et ce sera juste du temps perdu à l'encodage ?
J'ai donc tout lu et je trouve ça formidable, rapide d'utilisation et explications bien détaillées, je vais m'en servir souvent (dès que la prochaine maj de m4ng sortira !).
Il ne me reste qu'une seule question sur toutes ces options : est-ce que mettre la profondeur d'analyse de débruitage à 3 sur un film propre comme un dvd peut engendrer un débruitage intempestif amenant du flou, ou ça ne peut pas faire de mal et ce sera juste du temps perdu à l'encodage ?
merciricou a écrit :Ce que j'ai d'ailleurs fait dans un souci de rangement.
J'ai donc tout lu et je trouve ça formidable, rapide d'utilisation et explications bien détaillées, je vais m'en servir souvent (dès que la prochaine maj de m4ng sortira !).
Et si tu as des remarques ou des questions, n'hésite pas !
Sur un DVD propre, je crois qu'une profondeur d'analyse 1 suffit et que mettre une profondeur 3 induit surtout une perte de temps pour un faible gain de compressibilité par rapport à 1.ricou a écrit :Il ne me reste qu'une seule question sur toutes ces options : est-ce que mettre la profondeur d'analyse de débruitage à 3 sur un film propre comme un dvd peut engendrer un débruitage intempestif amenant du flou, ou ça ne peut pas faire de mal et ce sera juste du temps perdu à l'encodage ?
Du coté des risques de floutage, je ne pense pas qu'il soit plus risqué de mettre 3 que 1.
Bon... nouvelle version 8.6 qui optimise la version précédente :
- la diminution de FPS se fait maintenant en utilisant la librairie FDecimate (plus rapide que le bout de script avs que j'avais écrit) ;
- l'option deblend a été améliorée (surtout concernant l'initialisation qui est maintenant d'une vitesse normale).
Subbat,
si tu es toujours sur ton manga "horrible", tu peux essayer de voir si la commande
softsharpen(preset="anim", debl=10, blend=5)
te donne (très petite...) satisfaction avec cette version 8.6 : sur certains passages de la vidéo d'origine, les blocs sont parfois sur des images "mélangées" (blend), mais ils disparaissent parfois lorsqu'on réduit le blend...
- la diminution de FPS se fait maintenant en utilisant la librairie FDecimate (plus rapide que le bout de script avs que j'avais écrit) ;
- l'option deblend a été améliorée (surtout concernant l'initialisation qui est maintenant d'une vitesse normale).
Subbat,
si tu es toujours sur ton manga "horrible", tu peux essayer de voir si la commande
softsharpen(preset="anim", debl=10, blend=5)
te donne (très petite...) satisfaction avec cette version 8.6 : sur certains passages de la vidéo d'origine, les blocs sont parfois sur des images "mélangées" (blend), mais ils disparaissent parfois lorsqu'on réduit le blend...
Le même phénomène m'est aussi arrivé (mais était-ce pour la même raison ?). Le souci venait apparemment de la version de la librairie avisynth.dll présente dans un des sous-répertoires de windows. Personnellement, j'utilise cette version d'avisynth (elle est en plus MultiThread, on en reparlera peut-être...) :
http://leon1789.perso.sfr.fr/avisynth/avisynth.dll (version 2.5.8.5 MT)
Il suffit de renommer l'ancienne avisynth.dll en avisynth.dll.old et de copier le nouveau fichier au même endroit, et enfin tester si tout va mieux.
(La version 2.6 MT pose ce souci de bande verte chez moi.)
http://leon1789.perso.sfr.fr/avisynth/avisynth.dll (version 2.5.8.5 MT)
Il suffit de renommer l'ancienne avisynth.dll en avisynth.dll.old et de copier le nouveau fichier au même endroit, et enfin tester si tout va mieux.
(La version 2.6 MT pose ce souci de bande verte chez moi.)
- Subbat
- Administrateur
- Messages : 8836
- Enregistré le : jeu. 11 déc., 2008 20:12
- Localisation : Quelque part... dans le centre de la France...
J'ai essayé avec cette commande... et pour être honnête, vu la merde qu'est la source, j'ai du mal à faire la différence entre les différents tests... Je penses que je vais te faire confiance sur ce coup là... par contre, juste pour info, tu réduis le fps ou pas sur cette vidéo ?leon1789 a écrit :Subbat,
si tu es toujours sur ton manga "horrible", tu peux essayer de voir si la commande
softsharpen(preset="anim", debl=10, blend=5)
te donne (très petite...) satisfaction avec cette version 8.6 : sur certains passages de la vidéo d'origine, les blocs sont parfois sur des images "mélangées" (blend), mais ils disparaissent parfois lorsqu'on réduit le blend...
J'avoue que je ne suis réellement satisfait d'aucun de mes tests, sinon je te l'aurai dit depuis longtemps !!Subbat a écrit : J'ai essayé avec cette commande... et pour être honnête, vu la merde qu'est la source, j'ai du mal à faire la différence entre les différents tests... Je penses que je vais te faire confiance sur ce coup là... par contre, juste pour info, tu réduis le fps ou pas sur cette vidéo ?
Si on avait la "toute première version originale" du manga, elle serait probablement en 29.976 ips et entrelacée. Il aurait alors fallu la désentrelacer et faire une descente à 23.976 ips, les choses auraient claires et nettes.
Mais ta source est en 25 ips, donc on peut tenter de la mettre à 23.976 ips : on gagne un très petit poil en débit et/ou en qualité d'encodage, mais on peut se demander si cela vaut le coup...
Et vu qu'il y a souvent 2 images consécutives identiques sur la vidéo source, j'ai même tenté une version avec 18 images par seconde ! ici : http://leon1789.perso.sfr.fr/tmp/Subbat_FPS=18.mkv
Il est clair qu'avec 18 ips (des fois, 18 images par seconde permettent d’avoir une fluidité suffisante du mouvement, voir format Super8), on gagne significativement au niveau débit et/ou qualité d'encodage, mais le résultat est-il satisfaisant visuellement ?
Si tu veux diminuer le fps, utilise l'option de softsharpen, car elle est plus efficace qu'un simple changeFPS ou convertFPS. En effet, elle cherche à éliminer prioritairement les images répétées, alors que la commande changeFPS élimine bêtement de manière linéaire indépendamment du contenu, et la commande convertFPS mélange les images (et c'est pas le top pour ta vidéo qui a déjà beaucoup d'images mélangées !)
Pour ce qui est de l'option blend=5 ou 10, vu le nombre important d'images mélangées, je suis assez convaincu que cela gagne nettement en débit et/ou en qualité d'encodage, sans dégradation visuelle.
Modifié en dernier par leon1789 le sam. 04 août, 2012 8:45, modifié 1 fois.
humm... le problème vient peut-être d'ailleurs ! Avant d'essayer de remplacer la version 2.6 par une version antérieur (ce serait dommage), est-ce que tu utilises MPEG2Source pour lire le .d2v ? si oui, avec quelles options ?ricou a écrit :Effectivement j'utilise avisynth 2.6, qui me convenait jusqu'à présent.
J'essaierai ta dll, merci, d'autant plus que le multi thread était un sujet que je souhaitais aborder dans quelques jours.
Alors là aucune idée, je laisse m4ng se débrouiller pour ça.leon1789 a écrit : humm... le problème vient peut-être d'ailleurs ! Avant d'essayer de remplacer la version 2.6 par une version antérieur (ce serait dommage), est-ce que tu utilises MPEG2Source pour lire le .d2v ? si oui, avec quelles options ?
Je peux te donner le script avisynth
Code : Tout sélectionner
# **** m4ng & AVIsynth 2.5x script **** pass 2+
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\undot.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\FluxSmooth.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\Convolution3D.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\MaskTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\MVTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\Asharp.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\MSharpen.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\ASharp.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\DctFilter.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\Deen.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\DGDecode.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\GradFun2db.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\MSharpen.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\mt_MaskTools")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\mvTools2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\RemoveGrainSSE2.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\TDeint.dll")
Import("C:\Program Files (x86)\AviSynth 2.5\plugins\leon\SoftSharpen.avsi")
Source="i:\NOUVEA~1\NOUVEA~1\karajan1\vts_04_0.ifo"
Largeur=720
Hauteur=576
ratio =1.250000
vratio =1.250000
real_l=704
real_l4=704
Crop_g=8
Crop_d=-8
Crop_h=2
Crop_b=-2
Borders_g=0
Borders_d=0
Borders_h=0
Borders_b=0
Indice=0.388787
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\DGDecode.dll")
Video=MPEG2Source("i:\NOUVEA~1\NOUVEA~1\karajan1\vts_04_1.d2v")
Audio=DirectShowSource("i:\NOUVEA~1\NOUVEA~1\karajan1\VTS_04~1.WAV").DelayAudio(0.000000)
Import("C:\PROGRA~2\m4ng_v3\system\AudioMix.avsi") #(c) 2oo9 - Dirk Pitt
# ====================================================================
Audio=Audio.AudioChannels == 6 ? DownMix( Audio ) : Audio
Audio=Audio.AudioChannels == 1 ? MonoToStereo( Audio ) : Audio
Video=Audiodub(Video, Audio)
Video=BilinearResize(Video, Largeur, Hauteur)
Video=Crop(Video, crop_g, crop_h, crop_d, crop_b)
video = video.SoftSharpen(preset="film", sharp=25.0, deNoisT=7.2, move=11, blur=12, dct=4, deInt=true, aa=true)
Return(AssumeFrameBased(Video))
En tout cas avec ta dll 2.5 ça fonctionne. J'ai conservé la 2.6, on pourra faire des tests si tu veux.
Par contre avec ta dll j'ai toujours le processus avs2yuv.exe qui utilise un seul coeur du proc.
ouiricou a écrit : C'est ça que tu veux ?
okricou a écrit :Le problème survenant uniquement lorsque j'insère la ligne softsharpen.
<< j'ai toujours >> : tu veux dire qu'avec la version 2.6 ou la 2.5, tu n'as qu'un seul coeur utilisé ?ricou a écrit : En tout cas avec ta dll 2.5 ça fonctionne. J'ai conservé la 2.6, on pourra faire des tests si tu veux.
Par contre avec ta dll j'ai toujours le processus avs2yuv.exe qui utilise un seul coeur du proc.
Si tu veux faire du multithreading avec la 2.5, il faut récupérer la librairie MT.dll :
http://leon1789.perso.sfr.fr/avisynth/mt.dll
et la placer dans répertoire avisynth2.5\plugins\ .
Ensuite, il faut par exemple utiliser la commande SetMTMode(2,0) en début de script avisynth. Quand tu vas lancer la lecture ou l'encodage du script, tous les coeurs vont être utilisés.
Cela dit, le monde du MT n'est pas sans souci ! C'est même un peu le bor... des fois. En ce qui concerne Softsharpen, les options de deblocking et debanding ne sont pas compatible avec MT (---> debl=0 et deban=0)
Ton lien ne fonctionne pas mais je me suis débrouillé pour la trouver, et j'ai testé.
Résultat concluant dans la prévisualisation de M4NG, puisque la vidéo est presque fluide (un peu plus de 50% du proc utilisé) alors que je n'ai que quelques fps en temps normal.
Par contre une fois l'encodage lancé rien n'a changé, toujours 25% du proc utilisé par avs2yuv.exe et le même nombre de fps.
J'ai voulu tester différentes commandes MT (selon la doc) mais c'est au delà de mes compétences, je n'ai pas réussi.
J'ai également testé avec avisynth 2.5.7, 2.5.8 et 2.6 avec exactement les mêmes résultats pour les 3.
La solution serait donc d'utiliser cuda...
Sinon du nouveau pour cet avisynth 2.6 avec softsharpen ?
Résultat concluant dans la prévisualisation de M4NG, puisque la vidéo est presque fluide (un peu plus de 50% du proc utilisé) alors que je n'ai que quelques fps en temps normal.
Par contre une fois l'encodage lancé rien n'a changé, toujours 25% du proc utilisé par avs2yuv.exe et le même nombre de fps.
J'ai voulu tester différentes commandes MT (selon la doc) mais c'est au delà de mes compétences, je n'ai pas réussi.
J'ai également testé avec avisynth 2.5.7, 2.5.8 et 2.6 avec exactement les mêmes résultats pour les 3.
La solution serait donc d'utiliser cuda...
Sinon du nouveau pour cet avisynth 2.6 avec softsharpen ?
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Tu encodes en quoi aussi ? Parce qu'il est probable que le goulot d'étranglement soit l'encodage en lui même et non le script.
PS : Je ne suis pas sûr que Cuda donne de très bon résultat pour ce type d'usage. Le calcul en lui même pourrait sans doute être assez bien accéléré pour certains types de filtres mais l'aller-retour entre le CPU et le GPU est très coûteux.
PS : Je ne suis pas sûr que Cuda donne de très bon résultat pour ce type d'usage. Le calcul en lui même pourrait sans doute être assez bien accéléré pour certains types de filtres mais l'aller-retour entre le CPU et le GPU est très coûteux.
en x264.
Je ne pense pas que ce soit l'encodage :
sans script avisynth : avs2yuv à 20-25% du proc et x264_64 à 60-70% (soit 160fps)
Avec softsharpen : avs2yuv à 25% et x264_64 à 8-10% d'utilisation du proc (soit 11fps)
Sur un quad-coeur sans hyperthread donc.
Vu la puissance de calcul des cartes graphiques, je pense réellement que l'utilisation de cuda pour avisynth en laissant l'encodage par le proc apporterait un réel gain, mais vu la vitesse de développement d'avisynth je ne rêve pas trop, c'était plutôt une boutade.
Je ne pense pas que ce soit l'encodage :
sans script avisynth : avs2yuv à 20-25% du proc et x264_64 à 60-70% (soit 160fps)
Avec softsharpen : avs2yuv à 25% et x264_64 à 8-10% d'utilisation du proc (soit 11fps)
Sur un quad-coeur sans hyperthread donc.
Vu la puissance de calcul des cartes graphiques, je pense réellement que l'utilisation de cuda pour avisynth en laissant l'encodage par le proc apporterait un réel gain, mais vu la vitesse de développement d'avisynth je ne rêve pas trop, c'était plutôt une boutade.
- Underground78
- Administrateur
- Messages : 11272
- Enregistré le : mar. 06 févr., 2007 21:54
- Localisation : France
- Contact :
Effectivement visiblement il n'y a aucun multithreading visiblement..ricou a écrit :en x264.
Je ne pense pas que ce soit l'encodage :
sans script avisynth : avs2yuv à 20-25% du proc et x264_64 à 60-70% (soit 160fps)
Avec softsharpen : avs2yuv à 25% et x264_64 à 8-10% d'utilisation du proc (soit 11fps)
Sur un quad-coeur sans hyperthread donc.
Je travaille dans un labo qui fait du calcul haute performance et en ce moment je fais du calcul GPU avec Cuda justement donc je suis vraiment curieux de voir à quel point le transfert des données entre le CPU et le GPU serait rédhibitoire pour un tel cas d'utilisation. Je voulais essayer de faire un petit test pour simuler une situation similaire mais je n'ai pas eu le temps.ricou a écrit :Vu la puissance de calcul des cartes graphiques, je pense réellement que l'utilisation de cuda pour avisynth en laissant l'encodage par le proc apporterait un réel gain, mais vu la vitesse de développement d'avisynth je ne rêve pas trop, c'était plutôt une boutade.
argh, je n'ai pas fait attention : il faut écrire MT.dll en majuscules http://leon1789.perso.sfr.fr/avisynth/MT.dllricou a écrit :Ton lien ne fonctionne pas mais je me suis débrouillé pour la trouver, et j'ai testé.
(étrange que les minuscules ne soient pas équivalentes aux majuscules, non ?)
Oui, je pense avoir identifié les trucs qui posent problème : c'est le deringing et le deblocking. Si cela se confirme, il faudra que je change les choses.ricou a écrit : Sinon du nouveau pour cet avisynth 2.6 avec softsharpen ?
Pour commencer, il faut qu'on ait la même version 2.6.0.3 MT 32 bits : http://leon1789.perso.sfr.fr/avisynth/avisynth.dll
C'est celle qui est disponible ici : http://forum.doom9.org/showpost.php?p=1 ... ostcount=1
Ensuite le même script (le plus simple possible) :
Code : Tout sélectionner
version
softsharpen(derin=10, debl=0)
Code : Tout sélectionner
version
softsharpen(derin=0, debl=10)
Code : Tout sélectionner
version
softsharpen(derin=0, debl=0)
Il faut toujours respecter la casse dans les adresses web. (ou ne jamais utiliser de majuscule pour simplifier).
Ensuite, ton script de test (version softsharpen) ne faisait rien, il n'est pas pris en compte, ne connaissant pas cette syntaxe j'ai testé avec l'habituel
Donc à zéro pas de bande verte, si l'un des 2 est activé il y a des bandes vertes, tu as trouvé.
Ce qui m'amène à la prochaine question :
à quoi servent ces options qui ne sont pas expliquées sur ton site :
Deringing
Deblocking
Debanding
Au passage, j'étais curieux de voir le résultat de l'hyperthread, donc avec un 1/8ème du proc utilisé, soit 12.5% du proc semble-t-il, le nombre de fps est exactement le même que sans hyperthread pour avisynth.
Ensuite, ton script de test (version softsharpen) ne faisait rien, il n'est pas pris en compte, ne connaissant pas cette syntaxe j'ai testé avec l'habituel
Code : Tout sélectionner
video = video.SoftSharpen(derin=0, debl=0)
Ce qui m'amène à la prochaine question :
à quoi servent ces options qui ne sont pas expliquées sur ton site :
Deringing
Deblocking
Debanding
Je suis curieux de connaître le résultat si tu as le tempsUnderground78 a écrit : Je travaille dans un labo qui fait du calcul haute performance et en ce moment je fais du calcul GPU avec Cuda justement donc je suis vraiment curieux de voir à quel point le transfert des données entre le CPU et le GPU serait rédhibitoire pour un tel cas d'utilisation. Je voulais essayer de faire un petit test pour simuler une situation similaire mais je n'ai pas eu le temps.
Au passage, j'étais curieux de voir le résultat de l'hyperthread, donc avec un 1/8ème du proc utilisé, soit 12.5% du proc semble-t-il, le nombre de fps est exactement le même que sans hyperthread pour avisynth.
okricou a écrit :Il faut toujours respecter la casse dans les adresses web. (ou ne jamais utiliser de majuscule pour simplifier).
okricou a écrit :Ensuite, ton script de test (version softsharpen) ne faisait rien, il n'est pas pris en compte, ne connaissant pas cette syntaxe j'ai testé avec l'habituelDonc à zéro pas de bande verte, si l'un des 2 est activé il y a des bandes vertes, tu as trouvé.Code : Tout sélectionner
video = video.SoftSharpen(derin=0, debl=0)
Donc maintenant, il faut que je trouve une correction du problème...
Le "De-" veut dire que l'on corrige un problèmericou a écrit : Ce qui m'amène à la prochaine question :
à quoi servent ces options qui ne sont pas expliquées sur ton site :
Deringing
Deblocking
Debanding
le ringing : http://www.cse.cuhk.edu.hk/~ttwong/pape ... dering.pdf (artefact sur les frontières brutes)
le blocking : http://leon1789.perso.sfr.fr/avisynth/S ... bl_explain (apparition de blocs)
le banding : http://img848.imageshack.us/img848/3285 ... anding.png (effet de vague sur le mur)
Il faut que je prenne le temps de les mentionner sur la page web.
version 8.7 : révision du deringing et deblocking.
-- ces deux options fonctionnent maintenant normalement avec la version 2.6 d'avisynth (avisynth 2.6 et BlindPP sont compatibles seulement sur des vidéos de résolution multiple de 16 en hauteur et 32 en largeur ! )
-- algorithme de deblocking plus puissant que dans les versions précédentes.
Par ailleurs, j'ai complété un peu la page web sur le debanding.
-- ces deux options fonctionnent maintenant normalement avec la version 2.6 d'avisynth (avisynth 2.6 et BlindPP sont compatibles seulement sur des vidéos de résolution multiple de 16 en hauteur et 32 en largeur ! )
-- algorithme de deblocking plus puissant que dans les versions précédentes.
Par ailleurs, j'ai complété un peu la page web sur le debanding.