Impecc ça Olivier ! Pourquoi n'y avons nous pas pensé avant?...
J'imagine cependant que les deux côtés sont upscalés si tu upscales via ffdshow?
|
Modérateurs: Modération Forum Home-Cinéma, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: gargamel60, mentosse, roonie et 9 invités
Tout ce qui concerne les logiciels lié au HC sur ordinateur (PC, Mac, Linux...)
Règles du forum
Avant de poster, merci de prendre connaissance des règles du forum : à lire avant de poster
Avant de poster, merci de prendre connaissance des règles du forum : à lire avant de poster
Optimisation AviSynth
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
Nickel !!
Envoyé de mon SM-N9005 en utilisant Tapatalk
Envoyé de mon SM-N9005 en utilisant Tapatalk
- Daigoro
- Messages: 10873
- Inscription Forum: 16 Mai 2003 22:57
- Localisation: Le Havre
Francois76l a écrit:Impecc ça Olivier ! Pourquoi n'y avons nous pas pensé avant?...
J'imagine cependant que les deux côtés sont upscalés si tu upscales via ffdshow?
Les résolutions des 2 vidéos Avant / Après ne sont pas touchées pour pouvoir juger du vrai impact à l'image.
Pour ce faire, je les ai croppées donc aucun souci de ce côté là
- Olivier C.
- Messages: 2812
- Inscription Forum: 19 Sep 2001 2:00
- Localisation: Yutz (Nord-Est, France)
Tu croppes et tu appliques tes filtres sur un crop en laissant l'autre dans l'etat mais tu ne fais aucun upscale c'est bien ça ? On aurait pu imaginer que tu upscales sharp et downscale le crop en question sous ffdshow et que tu rassembles les deux partie à la fin.
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
Francois76l a écrit:Tu croppes et tu appliques tes filtres sur un crop en laissant l'autre dans l'etat mais tu ne fais aucun upscale c'est bien ça ? On aurait pu imaginer que tu upscales sharp et downscale le crop en question sous ffdshow et que tu rassembles les deux partie à la fin.
Pour la partie "APRES", j'applique le script normalement :
Post-traitement, upscale, filtres (pas de downscale car c'est madVR qui le fait)
puis je crop
Pour la partie "AVANT" :
Pas de post-traitement, mais je dois effectuer un upscaling tout de même car sinon impossible de les empiler côte à côte.
Puis je crop
J'assemble les 2 (contrainte : les 2 images doivent être de même taille)
Mais pas bien important car je veux peaufiner mes filtres et pas mon resize.
Donc pour le moment ça me parait correct, sauf si vous voyez des choses qui ne vont pas ?
Je gagne un temps fou sur mes peaufinages et comparaisons de réglages de filtres.
- Olivier C.
- Messages: 2812
- Inscription Forum: 19 Sep 2001 2:00
- Localisation: Yutz (Nord-Est, France)
C'est nickel le seul truc qui me gêne c'est que tu as une partie qui est upscalé sans aucun traitement de sharpen derrière. Donc au final tu as 1 partie de l'image floutée alors que l'autre sera traiter dans les règles. Ça sera forcément en faveur du traitement complet.
Mais l'initiative est terrible. Je peux peut être t'aider si tu veux.
Mais l'initiative est terrible. Je peux peut être t'aider si tu veux.
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
C'est pour ça que je pensais à un traitement complet via avisynth sans downscaler sous madvr. Il y a un mec qui travaille sur l'importation du lanczos avec anti ringing et linear map de madvr sous avisynth. Je peux le retrouver si tu veux.
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
Olivier C. a écrit:Je suis en train de créer un script pour m'aider à mieux visualiser l'impact d'un filtre
J'ai un truc du genre depuis des années ^^
- Code: Tout sélectionner
#############################################################################################
mode="LR" # "LR", "RR" or "LL"
#############################################################################################
LoadPlugin("C:\Program Files\DVD-RB PRO\DGDecode.dll")
source=mpeg2source("D:\MES KVCD\D2VAVS\V01.D2V",idct=7)
left=source.script1()
right=source.script2()
source1=left
source2=right
width=left.width()/2
height=left.height()
left = (mode == "RR") ? crop(left,width,0,width,height).addborders(0,0,2,0,$0000FF).crop(2,0,-0,-0):crop(left,0,0,width,height).addborders(0,0,2,0,$0000FF).crop(2,0,-0,-0)
right = (mode == "LL") ? crop(right,0,0,width,height).addborders(2,0,0,0,$0000FF).crop(0,0,-2,-0):crop(right,width,0,width,height).addborders(2,0,0,0,$0000FF).crop(0,0,-2,-0)
StackHorizontal(left.subtitle("Script1",10,20),right.subtitle("Script2",10,20))
#Interleave(source1.subtitle("Script1",10,20),source2.subtitle("Script2",10,20),Subtract(source1,source2))
#Interleave(source1.subtitle("Script1",10,20),source2.subtitle("Script2",10,20))
function script1(clip c) {
c
#----- ENTER CODE OF SCRIPT ONE HERE -----
#TDeint(tryweave=true)
#ColorMatrix(mode="rec.601->rec.709") # for TMPGEnc
#ColorMatrix(mode="rec.709->rec.601") # for TMPGEnc
#LimitedSharpenFaster()
#LRemoveDust_YV12(17,1)
MT("LimitedSharpenFaster()",2)
#----- END OF CODE OF SCRIPT ONE-----
}
function script2(clip c) {
c
#----- ENTER CODE OF SCRIPT TWO HERE -----
#TDeint(tryweave=true)
#ColorMatrix(mode="rec.709->rec.601") # for TMPGEnc
MT("LimitedSharpenFaster()",2)
ColorMatrix(d2v="D:\MES KVCD\D2VAVS\V01.D2V")
#----- END OF CODE OF SCRIPT TWO-----
}
Là c'est la dernière fois que je m'en suis servi pour comparer quelques filtres, en septembre 2010 si j'en crois la date du fichier
Il suffit de mettre ses scripts à comparer dans les 2 fonctions adéquates et de choisir le mode, mais c'est un petit peu plus compliqué si une des deux moitiés doit subir un upscale différent du reste. Je m'en servais pour tester l'effet de filtres, mais pas d'algo d'upscale c'est vrai.
Le mode "interleave" c'est si on veut se passer cela image par image, dans virtualdub par exemple. On y retrouve le filtre "substract" que tu dois utiliser sur ton exemple 2 je pense. Je préférais l'interleave au Stack parce que de toutes facons le CPU ne suivait pas alors 4 im/s ou image par image ça changeait pas grand chose
Voila, si ça peut t'aider. Rien de vraiment compliqué à comprendre, mais j'avoue que je scripte depuis 30 ans (du basic, pas de l'avisynth ).
-
Dialhot - Supervision Technique Forum
- Messages: 30681
- Inscription Forum: 25 Aoû 2005 13:26
- Localisation: Doral, FL
Dialhot a écrit:source=mpeg2source("D:\MES KVCD\D2VAVS\V01.D2V",idct=7)
J'ai un peu près un script identique sauf que mon script marche pour n'importe quel type de vidéo. Je préfère ça plutôt que de l'ouvrir manuellement dans le script.
Sinon c'est dans le même état d'esprit...
- Olivier C.
- Messages: 2812
- Inscription Forum: 19 Sep 2001 2:00
- Localisation: Yutz (Nord-Est, France)
Francois76l a écrit:C'est nickel le seul truc qui me gêne c'est que tu as une partie qui est upscalé sans aucun traitement de sharpen derrière. Donc au final tu as 1 partie de l'image floutée alors que l'autre sera traiter dans les règles. Ça sera forcément en faveur du traitement complet.
Mais l'initiative est terrible. Je peux peut être t'aider si tu veux.
Non en fait avec le script je peux comparer 2 scripts quels qu'ils soient.
Je peux tester un upscale Lanczos contre un upscale Spline par exemple en live.
Ou alors 2 vidéos upscalées en Spline144 et comparer ensuite 2 réglages différents d'UnsharpHQ.
Tout est possible, c'était juste un exemple que je donnais.
Le script permet de comparer 2 post-traitements différents, quels qu'ils soient.
Francois76l a écrit:Mais l'initiative est terrible. Je peux peut être t'aider si tu veux
C'est gentil, merci
En fait le script est terminé et marche du tonnerre
- Olivier C.
- Messages: 2812
- Inscription Forum: 19 Sep 2001 2:00
- Localisation: Yutz (Nord-Est, France)
Olivier C. a écrit:Francois76l a écrit:C'est nickel le seul truc qui me gêne c'est que tu as une partie qui est upscalé sans aucun traitement de sharpen derrière. Donc au final tu as 1 partie de l'image floutée alors que l'autre sera traiter dans les règles. Ça sera forcément en faveur du traitement complet.
Mais l'initiative est terrible. Je peux peut être t'aider si tu veux.
Non en fait avec le script je peux comparer 2 scripts quels qu'ils soient.
Je peux tester un upscale Lanczos contre un upscale Spline par exemple en live.
Ou alors 2 vidéos upscalées en Spline144 et comparer ensuite 2 réglages différents d'UnsharpHQ.
Tout est possible, c'était juste un exemple que je donnais.
Le script permet de comparer 2 post-traitements différents, quels qu'ils soient.Francois76l a écrit:Mais l'initiative est terrible. Je peux peut être t'aider si tu veux
C'est gentil, merci
En fait le script est terminé et marche du tonnerre
"C'est gentil, merci
En fait le script est terminé et marche du tonnerre"
Tu partages
- jfmdesign
- Messages: 408
- Inscription Forum: 12 Déc 2010 13:19
- Localisation: Belgique
Olivier C. a écrit:Non en fait avec le script je peux comparer 2 scripts quels qu'ils soient.
Je peux tester un upscale Lanczos contre un upscale Spline par exemple en live.
Ou alors 2 vidéos upscalées en Spline144 et comparer ensuite 2 réglages différents d'UnsharpHQ.
Tout est possible, c'était juste un exemple que je donnais.
Le script permet de comparer 2 post-traitements différents, quels qu'ils soient.
Ah oui effectivement
Je pensais que ton but était de comparer l'image source sans aucun traitement versus une image postraitée (upscale puis downscale compris).
Mais effectivement avec ta méthode tu peux comparer deux upscales différents.
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
Francois76l a écrit:Tu croppes et tu appliques tes filtres sur un crop en laissant l'autre dans l'etat mais tu ne fais aucun upscale c'est bien ça ? On aurait pu imaginer que tu upscales sharp et downscale le crop en question sous ffdshow et que tu rassembles les deux partie à la fin.
Sinon oui on peut aussi si on veut faire le downscale dans avisynth en Lanczos 4 taps par exemple avec LL et AR si on veut comparer un vrai AVANT / APRES.
Je pense que c'est de cela que tu parlais ?
Oui, c'est possible aussi
Sur doom9 ils ont donné le filtre AR et je crois même que madshi s'en est inspiré si j'ai bonne mémoire...
- Olivier C.
- Messages: 2812
- Inscription Forum: 19 Sep 2001 2:00
- Localisation: Yutz (Nord-Est, France)
Madshi a donné son lanczos modifié avec anti ringing et LL pour qu'il soit développé sous avisynth. Malheureusement ça s'est arrêté là.
Mais oui c'est exactement ce que je voulais dire. Je me pencherai sur la question demain. C'est le temps pour moi de dormir
Mais oui c'est exactement ce que je voulais dire. Je me pencherai sur la question demain. C'est le temps pour moi de dormir
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
Voici mon script de comparaison (inspiré de celui de Dialhot)
J'y ai ajouter le script avisynth que j'utilise pour mes mkv 1080p. Il est appliqué sur une partie de l'image (upscale et downscale compris l'autre partie étant totalement inchangée)
Saurez-vous me dire sur quelle zone mon script travaille?
http://www.hostingpics.net/viewer.php?id=812526EscapePlanmkvsnapshot01203020140319155021.jpg
C'est vraiment top pour voir le gain obtenu grâce à avisynth! Merci pour cette superbe idée Olivier!
J'y ai ajouter le script avisynth que j'utilise pour mes mkv 1080p. Il est appliqué sur une partie de l'image (upscale et downscale compris l'autre partie étant totalement inchangée)
- Code: Tout sélectionner
SetMTMode(3,0)
ffdshow_source()
SetMTMode(2)
newWidth = last.width
newHeight = last.height
BorderWidth = 10 #Taille de la bordure en pixels
Left = crop(0,0,-newWidth/2-BorderWidth ,0).AddBorders(0,0,BorderWidth ,0)
Right = crop(newWidth/2 ,0,0,0)
#Traitement des différentes parties avec les scripts associés
LeftAfterTreatment=Left.script1()
RightAfterTreatment=Right.script2()
#Recollage des deux parties précedemment post-traitées
StackHorizontal(LeftAfterTreatment,RightAfterTreatment)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
function script1(clip c) {
c
#=========CODE Script partie gauche=========
#========FIN CODE Script partie gauche========
}
function script2(clip c) {
c
#=========CODE Script partie droite==========
#Denoiser
#TTempSmooth(maxr=3,lthresh=4,cthresh=3,lmdiff=3,cmdiff=2,strength=2,interlaced=false)
#UpSize by Spline144
ss=1.333
spline144resize(round(ss*last.width/8)*8,last.height)
spline144resize(last.width,round(ss*last.height/8)*8)
#Deband
GradFun2db()
#Sharpen
LimitedSharpenFasterHC(strength=40)
#Unsharp Mask
unsharpHQ(str=1.2)
#DownSize by Lanczos4
ss=1/ss
Lanczos4Resize(round(ss*last.width/8)*8,last.height) #.repair(gaussresize(p=100),mode=1)
Lanczos4Resize(last.width,round(ss*last.height/8)*8) #.repair(gaussresize(p=100),mode=1)
#========FIN CODE Script partie droite=========
}
Saurez-vous me dire sur quelle zone mon script travaille?
http://www.hostingpics.net/viewer.php?id=812526EscapePlanmkvsnapshot01203020140319155021.jpg
C'est vraiment top pour voir le gain obtenu grâce à avisynth! Merci pour cette superbe idée Olivier!
- Francois76l
- Pro-Commercant
- Messages: 1001
- Inscription Forum: 19 Mai 2009 19:35
- Localisation: Essonne
|
Retourner vers Logiciel PC Home-cinéma
|