Replies: 7 comments
-
Hey, I've been lurking on this repo for a while, but haven't got the occasion to spend some time messing with trying to use these settings on VapourSynth (if that's even possible) to make use in my project, I've also made a post on doom9 explaining my objective on a larger scale if you're curious I'm interested in learning C/C++ to make VapourSynth plugins but I really don't know where to start, the only thing I found is this |
Beta Was this translation helpful? Give feedback.
-
Importing the settings is certainly possible... If it helps, here's my half-finished VapourSynth Test Script with UltraLight Animated Preset's settings enabled:
For some reason it's performing far worse than the AviSynth+ version, but at least it runs and has fairly readable formatting. |
Beta Was this translation helpful? Give feedback.
-
I think a function to convert multi-line string that removes spaces and new-lines into a single line string would be great to improve readability, so we can use JSON-like indentation/spacing and pass that thru a |
Beta Was this translation helpful? Give feedback.
-
This isn't working code at all, just an idea of how it could work: AnalyseParams = helpers.Wrap('''
{
block:{
w:32,
h:32,
overlap:0
},
main:{
search:{
distance:-0,
type:4,
satd:false,
sort:false,
coarse:{
distance:-21,
type:2,
satd:false,
trymany:false,
width:241,
bad:{
range:0
}
}
},
levels:3,
penalty:{
lambda:3.3,
plevel:1.25,
pnew:44,
pglobal:104,
pzero:240,
pnbour:74,
prev:-1
}
}
}
''')
SmoothFPSParams = helpers.Wrap('''
{
rate:{
num:"2",
den:"1",
Abs:"false"
},
mask:{
cover:99
},
algo:2,
cubic:1,
linear:false,
scene:{
mode:0,
blend:false,
limits:{
scene:2220,
zero:4,
blocks:42
},
luma:1
}
}
''') or in a less verbose-y way: AnalyseParams = helpers.Wrap('''
{
block:{w:32,h:32,overlap:0},
main:{
search:{
distance:-0,type:4,satd:false,sort:false,
coarse:{
distance:-21,type:2,satd:false,
trymany:false,width:241,
bad:{range:0}
}
},
levels:3,
penalty:{
lambda:3.3,plevel:1.25,pnew:44,
pglobal:104,pzero:240,pnbour:74,prev:-1
}
}
}
''')
SmoothFPSParams = helpers.Wrap('''
{
rate:{
num:"2",den:"1",Abs:"false"
},
mask:{cover:99},
algo:2,cubic:1,linear:false,
scene:{
mode:0,blend:false,
limits:{
scene:2220,zero:4,blocks:42
},
luma:1
}
}
''') |
Beta Was this translation helpful? Give feedback.
-
Personally i prefer keeping the configurations in just a few densely populated lines grouped into repeating patterns; that way it's quick and easy to review various versions and revisions in WinMerge's 3-way compare mode without needing to scroll around. One of the reasons i'm rethinking readability in the first place has to do with my plans to make a simple GUI configuration tool later on. For example, i have following considerations for editing parameters:
Currently i'm thinking of using something like this as a template:
...that way i can find & replace almost anything using spaces (e.g. ' sort:false ' -> ' sort: true ') as separators and the remaining ones i could differentiate using Regular Expression wildcards and look-behind assertions (e.g. Moving |
Beta Was this translation helpful? Give feedback.
-
What is your opinion on using mvtools with VapourSynth? |
Beta Was this translation helpful? Give feedback.
-
I read somewhere that mvtools is slow and CPU only, which means it might not be suitable for realtime use or at least may require 16+ core CPU. However i don't really have enough experience with it to have an opinion one way or another. |
Beta Was this translation helpful? Give feedback.
-
I have more or less finished refining these scripts now, but am thinking of taking the project into new directions...
Here are some of my current ideas for possible future improvements:
AutoHotkey & Regular Expression based GUI with a systray-icon, menu and configuration window.
Making VapourSynth versions of my scripts. However due to lack of built in cache features and experience on my part, the progress has been practically non-existant; with my current test scripts only getting 8-14 fps, so not even worth sharing.
Creating a C-Plugin for AviSynth+ to get more granular motion interpolation using more or less the same logic as the script below; however i have no experience with writing AviSynth filters either...
Although the output from the above script is looking amazingly smooth, it's currently only getting ~20 fps, due to not being thread safe.
Beta Was this translation helpful? Give feedback.
All reactions