View Full Version : Vapoursynth
jackoneill
18th June 2016, 20:59
http://www.vapoursynth.com/doc/functions/levels.html doesn't mention the 'gamma' option of levels.
I didn't know what to say about it. Any suggestions?
Selur
18th June 2016, 21:01
Whoever is responsible for the doc should also add the gamma option to the description,...
jackoneill
18th June 2016, 21:25
Whoever is responsible for the doc should also add the gamma option to the description,...
Any suggestions for what the documentation should say about the gamma parameter?
Selur
18th June 2016, 21:35
Something along the lines that http://avisynth.nl/index.php/Levels mentions. ;)
I think much explanation isn't necessary, main thing is that the doc should mention all options.
Selur
26th June 2016, 09:34
Is there an alternative to VFRtoCFR (http://forum.doom9.org/showthread.php?t=165045) for Vapoursynth? (a filter, which isn't a source filter, which can do a vfr -> cfr conversion)
Reel.Deel
26th June 2016, 12:31
Is there an alternative to VFRtoCFR (http://forum.doom9.org/showthread.php?t=165045) for Vapoursynth? (a filter, which isn't a source filter, which can do a vfr -> cfr conversion)
There's tc2cfr (https://github.com/gnaggnoyil/tc2cfr) but it does not support Matroska timecodes (v2) files.
Myrsloik
26th June 2016, 12:49
Is there an alternative to VFRtoCFR (http://forum.doom9.org/showthread.php?t=165045) for Vapoursynth? (a filter, which isn't a source filter, which can do a vfr -> cfr conversion)
Or you could simply add VapourSynth support to it yourself. It has the calculations all nicely split into a separate function...
Selur
29th June 2016, 05:41
@myesloik: that would require some reading into how to do that and spending time in the future on potential bug fixes etc.
-> no thanks, my free time is already cramped with lots of stuff I want to code, not keen on adding another 'project'.
l33tmeatwad
29th June 2016, 16:28
Could matrix be added to the output for vspipe --info? Currently working on a GUI for FFMPEG that uses vspipe to encode scripts and being able to pull that info would be nice.
Myrsloik
29th June 2016, 16:44
Could matrix be added to the output for vspipe --info? Currently working on a GUI for FFMPEG that uses vspipe to encode scripts and being able to pull that info would be nice.
That's a per frame property and not a constant thing so there's no single matrix value to return. Not sure what to do about it.
LigH
11th July 2016, 10:28
With AssVapour, a filter for ASS text script based hard subtitling does exist for VapourSynth. But there is no plugin listed yet supporting subpicture bitmap based hard subtitling.
I found VapourSynth-XY-VSFilter by Tsuki on Github (https://github.com/Tsuki/VapourSynth-XY-VSFilter/), if it already works well, it should possibly be added to the plugins list (http://www.vapoursynth.com/doc/pluginlist.html).
jackoneill
11th July 2016, 16:06
With AssVapour, a filter for ASS text script based hard subtitling does exist for VapourSynth. But there is no plugin listed yet supporting subpicture bitmap based hard subtitling.
I found VapourSynth-XY-VSFilter by Tsuki on Github (https://github.com/Tsuki/VapourSynth-XY-VSFilter/), if it already works well, it should possibly be added to the plugins list (http://www.vapoursynth.com/doc/pluginlist.html).
You should volunteer to test it... if you can find binaries.
LigH
11th July 2016, 17:29
I do not even have material at the moment ... but Selur is very interested, to boost up Hybrid, I believe.
There are 19 releases (https://github.com/Tsuki/VapourSynth-XY-VSFilter/releases) so far. But I did not yet download to check if they are publicly usable already... :o
Selur
11th July 2016, 17:34
the releases do only contain the source, no compiled dlls :/
to boost up Hybrid, I believe.
Yup
mawen1250
12th July 2016, 14:53
I haven't used that ported VSFilter yet. But as far as I know, there were someone encountering random crash with it. It might still be a safer choice to use the AviSynth API instead.
EDIT: it's probably the problem with xy-VSFilter, plain VSFilter should be OK.
Myrsloik
16th July 2016, 13:26
R33 test 3 (https://dl.dropboxusercontent.com/u/73468194/VapourSynth-R33-test3.exe).
Lots of changes to VSFS (now called AVFS an merged with the avisynth version), vfw which can now output a lot more raw formats and avisource which should be able to read a lot more raw fourccs formats.
Note that the avisource change are completely untested so if you want to help give all the raw input formats supported by avisource a try.
r33:
directshowsource from recent avs+ can now be used
fixed swapped uv planes with yuv411 output in vsvfw and avfs
merged vsfs with the latest version of avfs, avfs now work for both vapoursynth and avisynth scripts and no longer has shell integration
avisource can now open all formats vsvfw can output plus b48r
fixed corrupted output in vfm when clip2 isn't 8 bit
fixed crash due to stack overflow if an extremely long filter graph is freed
now installs the vs2015 update 3 runtimes on windows
vsvfw will now automatically convert rgb24 to packed bgra for convenience
added b64a and P416 output to vsvfw
updated to zimg v2.1 branch
mixed imwri fixes
fixed rare access violation in expr when ternary operator is used (jackoneill)
Selur
19th July 2016, 04:39
using r32 (portable) with:
# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/Support/fmtconv.dll")
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/SourceFilter/FFMS2/ffms2.dll")
# Loading Source: F:\TestClips&Co\MPEG-4 H.264\00000.m2ts
clip = core.ffms2.Source(source="F:/TESTCL~1/MPEG-4~1.264/00000~1.M2T",cachefile="H:/Temp/m2ts_072de0f49267ed8dfe42a17f5d571a8e_4827.ffindex",fpsnum=25)
original = clip
# adjusted resizing of clio to achieve PAR 1:1 for preview
#clip = core.fmtc.resample(clip=clip, kernel="spline16", w=966, h=544, interlaced=False)
# adjusted resizing of original to achieve PAR 1:1 for preview
#original = core.fmtc.resample(clip=original, kernel="spline16", w=966, h=544, interlaced=False)
stacked = core.std.StackHorizontal([original,clip])
# Output
stacked.set_output()
works fine, but:
# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/Support/fmtconv.dll")
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/SourceFilter/FFMS2/ffms2.dll")
# Loading Source: F:\TestClips&Co\MPEG-4 H.264\00000.m2ts
clip = core.ffms2.Source(source="F:/TESTCL~1/MPEG-4~1.264/00000~1.M2T",cachefile="H:/Temp/m2ts_072de0f49267ed8dfe42a17f5d571a8e_4827.ffindex",fpsnum=25)
original = clip
# adjusted resizing of clio to achieve PAR 1:1 for preview
clip = core.fmtc.resample(clip=clip, kernel="spline16", w=966, h=544, interlaced=False)
# adjusted resizing of original to achieve PAR 1:1 for preview
original = core.fmtc.resample(clip=original, kernel="spline16", w=966, h=544, interlaced=False)
stacked = core.std.StackHorizontal([original,clip])
# Output
stacked.set_output() crashes VSPipe.
# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/Support/fmtconv.dll")
core.std.LoadPlugin(path="G:/Hybrid/Vapoursynth/vapoursynth64/plugins/SourceFilter/FFMS2/ffms2.dll")
# Loading Source: F:\TestClips&Co\MPEG-4 H.264\00000.m2ts
clip = core.ffms2.Source(source="F:/TESTCL~1/MPEG-4~1.264/00000~1.M2T",cachefile="H:/Temp/m2ts_072de0f49267ed8dfe42a17f5d571a8e_4827.ffindex",fpsnum=25)
# adjusted resizing of clio to achieve PAR 1:1 for preview
clip = core.fmtc.resample(clip=clip, kernel="spline16", w=966, h=544, interlaced=False)
original = clip
stacked = core.std.StackHorizontal([original,clip])
# Output
stacked.set_output()
works too, but using 'core.fmtc.resample' on two 'different' clips seems to fail.
Am I missing/overlocking something?
feisty2
19th July 2016, 12:42
I get weird crashes sometimes when previewing complex and slow scripts, and the debugger traced the error back to fmtconv.dll dereferencing a nullptr like every time when that happened
http://i.imgur.com/gq3tF2g.png
maybe there's a bug or something in fmtconv, who knows anyways
Mystery Keeper
19th July 2016, 13:55
Sounds awfully like a memory allocation failure. Open Process Explorer/Task Manager and see how VapourSynth is taking memory. You're probably running out of it.
Myrsloik
19th July 2016, 14:11
...
Am I missing/overlocking something?
I can't reproduce it so I'm not sure what it could be. Maybe you're using an older fmtconv?
It's probably not an out of memory error either since VS only uses 1GB of ram as cache at most by default.
Mystery Keeper
19th July 2016, 20:12
I can't reproduce it so I'm not sure what it could be. Maybe you're using an older fmtconv?
It's probably not an out of memory error either since VS only uses 1GB of ram as cache at most by default.
Cache is one thing, but there's also memory, allocated by filters. Intermediate buffers and such. When these buffers need to be large for large frames - you can easily run out of continuous memory chunks to allocate them.
Howdy folks,
I'm having some difficulty getting qtgmc to work with r32. Here is my script:
import vapoursynth as vs
import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")
import mvsfunc
import adjust
import havsfunc as hf
import functools
core = vs.get_core()
core.std.LoadPlugin("/usr/local/lib/libffms2.so")
core.std.LoadPlugin("/usr/local/lib/libmvtools.so")
core.std.LoadPlugin("/usr/local/lib/libnnedi3.so")
core.std.LoadPlugin("/usr/local/lib/libfmtconv.so")
core.std.LoadPlugin("/usr/local/lib/libtemporalsoften.so")
#core.std.LoadPlugin("/usr/local/lib/vapoursynth/libremovegrain.so")
video = core.ffms2.Source('lossless.avi')
deint = hf.QTGMC(video, Preset='Medium', TFF=True)
deint.set_output()
and here is the error I'm receiving:
vspipe --y4m 1.vpy - | ffmpeg -i - -c:v huffyuv qtgmc.avi
ffmpeg version N-81036-g2b14204 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --enable-gpl --enable-version3 --enable-shared --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 50.100 / 57. 50.100
libavformat 57. 42.100 / 57. 42.100
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 47.100 / 6. 47.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Script evaluation failed:
Python exception: No attribute with the name scd exists. Did you mistype a plugin namespace?
Traceback (most recent call last):
File "vapoursynth.pyx", line 1491, in vapoursynth.vpy_evaluateScript (src/cython/vapoursynth.c:24032)
File "1.vpy", line 19, in <module>
deint = hf.QTGMC(video, Preset='Medium', TFF=True)
File "/usr/local/lib/python2.7/site-packages/havsfunc.py", line 980, in QTGMC
if TR0 > 0: ts1 = TemporalSoften(bobbed, 1, 255 << shift, CMts << shift, 28 << shift, 2) # 0.00 0.33 0.33 0.33 0.00
File "/usr/local/lib/python2.7/site-packages/havsfunc.py", line 4330, in TemporalSoften
clip = set_scenechange(clip, scenechange)
File "/usr/local/lib/python2.7/site-packages/havsfunc.py", line 4362, in set_scenechange
sc = core.scd.Detect(sc, thresh)
File "vapoursynth.pyx", line 1105, in vapoursynth.Core.__getattr__ (src/cython/vapoursynth.c:18358)
AttributeError: No attribute with the name scd exists. Did you mistype a plugin namespace?
Any ideas why I can't find that module?
VS_Fan
21st July 2016, 04:55
Howdy folks,
sc = core.scd.Detect(sc, thresh) ...
AttributeError: No attribute with the name scd exists. Did you mistype a plugin namespace?
You're missing the SceneChange (http://forum.doom9.org/showthread.php?t=166769) plugin.
Thank you for the reply vs_fan.
I have downloaded the package, and see c code, but no configure or make file for compiling on Linux.
Those of you using Linux, how did you compile this plugin? My early attempts with gcc are failing.
jackoneill
21st July 2016, 18:39
Thank you for the reply vs_fan.
I have downloaded the package, and see c code, but no configure or make file for compiling on Linux.
Those of you using Linux, how did you compile this plugin? My early attempts with gcc are failing.
Try this:
gcc -fPIC -O2 -msse2 -std=c99 -shared -I/usr/lib/vapoursynth -o libscenechange.so scenechange.c
Thanks jackoneill. That got me going. I had to do the same for the temporalsoften.c file that came with chikuzen's scene change package.
Selur
23rd July 2016, 06:48
I can't reproduce it so I'm not sure what it could be. Maybe you're using an older fmtconv?
I'm using 64bit version for fmtconv r20 from https://github.com/EleonoreMizo/fmtconv/releases
Is there a newer version to try?
-> redownloaded the version, rebooted system cleared python cache and now it works
---------------
Just wondering:
Is there a IVTC filter for Vapoursynth with works with all color spaces?
(IT (https://github.com/HomeOfVapourSynthEvolution/VapourSynth-IT) and VIVTC (http://www.vapoursynth.com/doc/plugins/vivtc.html) seem to only work with YUV420P8 from what I could gather.)
I was hoping to get rid of all the ConvertTo...-calls which I sometimes have to add to my AvisynthScripts to be able to use all filters.
feisty2
24th July 2016, 15:19
requested by @Mystery Keeper here (http://forum.doom9.org/showthread.php?p=1771651#post1771651)
floating point TemporalSoften, don't wanna start another thread so I'll just post it here
src:https://github.com/IFeelBloated/TemporalSoften
bin:https://github.com/IFeelBloated/TemporalSoften/releases/tag/r1
namespace changed to "tsoft"
luma/chroma_threshold, scenechange are all floating point parameters now and they range from 0.0 to 255.0 still for compatibility reasons.
edit:
uhmm, and the useless parameter "mode" got its ass kicked
Myrsloik
24th July 2016, 21:35
I'm using 64bit version for fmtconv r20 from https://github.com/EleonoreMizo/fmtconv/releases
Is there a newer version to try?
-> redownloaded the version, rebooted system cleared python cache and now it works
---------------
Just wondering:
Is there a IVTC filter for Vapoursynth with works with all color spaces?
(IT (https://github.com/HomeOfVapourSynthEvolution/VapourSynth-IT) and VIVTC (http://www.vapoursynth.com/doc/plugins/vivtc.html) seem to only work with YUV420P8 from what I could gather.)
I was hoping to get rid of all the ConvertTo...-calls which I sometimes have to add to my AvisynthScripts to be able to use all filters.
Nope, vivtc only does its decision in one colorspace. Use the clip2 argumebt to apply thr matches to the unconverted clip. It's slightly more awkward but there's just so little telecined material in higher bitdepths...
aegisofrime
27th July 2016, 04:58
Hi all,
I'm wondering, is anyone actively developing a native Vapoursynth version of DGDecNV?
I somehow had a native version of DGDecNV (I think it was released by Donald Graft himself), but then I just upgraded to the GTX 1070. The older version of DGNV doesn't work at all with the Pascal cards, so I had to update my version to DGNV to the latest ones.
Now, the problem is that the older version of DGDecNV won't open an index file created by a newer version, and I can't import the AVS dll of DGDecNV because it's an Avisynth 2.5 plugin. So at this point it feels like I'm screwed. What are my options now?
Selur
27th July 2016, 05:17
Afaik. Donald Graft is the only one with the source code, so he is probably the only one with the means to implement a native Vapoursynth version of DGDecNV.
IIrc DG won't write a native version for Vapoursynth unless Vapoursynth changes, see: http://rationalqm.us/board/viewtopic.php?f=8&t=441
your options are probably:
a. hope the Vapoursynth developers change their code (Avisynth 2.5 filter support and/or handling the frame rate normalization)
b. hope that DG changes his code (dropping Avisynth 2.5 support or alternatively share a 2.5 and 2.6 filter and/or so the frame rate normalization)
c. you could try if it works to create an avisynth script where you use DGDecNV and then open that script as source using vsavsreader, but reading the end of http://forum.doom9.org/showthread.php?t=165957 that might also not work
d. forget DGDecNV in Vapoursynth for the time being
-> my guess is that if c. doesn't work you are stuck with d.
-----
Use the clip2 argumebt to apply thr matches to the unconverted clip.
thanks, totally overlooked that parameter :)
Cu Selur
Mystery Keeper
27th July 2016, 10:59
requested by @Mystery Keeper here (http://forum.doom9.org/showthread.php?p=1771651#post1771651)
floating point TemporalSoften, don't wanna start another thread so I'll just post it here
src:https://github.com/IFeelBloated/TemporalSoften
bin:https://github.com/IFeelBloated/TemporalSoften/releases/tag/r1
namespace changed to "tsoft"
luma/chroma_threshold, scenechange are all floating point parameters now and they range from 0.0 to 255.0 still for compatibility reasons.
edit:
uhmm, and the useless parameter "mode" got its ass kicked
CMts = 255.0 if chromamotion else 0.0
ts1 = core.tsoft.TemporalSoften(bob, 1, 255.0, CMts, 28.0)
ts2 = core.tsoft.TemporalSoften(bob, 2, 255.0, CMts, 28.0)
Segfaults every time in temporalsoften_x64_avx2.dll
from __future__ import print_function
import vapoursynth as vs
core = vs.get_core(threads=8)
core.set_max_cache_size(8000)
#core.std.LoadPlugin(r'D:\Programming\vapoursynth-sandbox\build\release-64bit-gcc\vapoursynth-sandbox.dll')
import sys
sys.path.append('D:\\vapoursynth-plugins\\py\\')
import platform
architecture = platform.architecture()
if architecture[0] == '64bit':
vapoursynth_plugins_path = 'D:\\vapoursynth-plugins\\64bit\\'
else:
vapoursynth_plugins_path = 'D:\\vapoursynth-plugins\\32bit\\'
print('Plugins folder: ', vapoursynth_plugins_path, end='\n', file=sys.stderr)
import os
for filename in os.listdir(vapoursynth_plugins_path):
if filename[-4:] != '.dll':
continue
try:
core.std.LoadPlugin(vapoursynth_plugins_path + filename)
except Exception as e:
print('Error: ', e, end='\n', file=sys.stderr)
clip = core.ffms2.Source(r'F:\Video\Mystery Keeper\Sound Horizon - 石畳の緋き悪魔.mkv')
clip = core.resize.Spline16(clip, format=vs.YUV444PS)
clip = core.tsoft.TemporalSoften(clip, 1, 255.0, 255.0, 28.0)
clip.set_output()
Same. The script does evaluate in VSEdit. But segfaults on preview.
feisty2
27th July 2016, 12:47
guess I messed "scenechange" up
investigating...
kolak
27th July 2016, 20:08
Could someone translate this into vs please:
changeFPS(60000, 1001)
assumeTFF()
separateFields()
selectEvery(4, 0, 3)
weave()
if it's actually possible. Thx!
~SimpleX~
27th July 2016, 21:35
Could someone translate this into vs please:
changeFPS(60000, 1001)
assumeTFF()
separateFields()
selectEvery(4, 0, 3)
weave()
if it's actually possible. Thx!
import vapoursynth as vs
import havsfunc as haf
import mvsfunc as mvs
core = vs.get_core()
src = ...
last = src
last = haf.ChangeFPS(last, 60000, 1001)
last = mvs.AssumeTFF(last) # Actually, not all filters support this, unfortunately
last = core.std.SeparateFields(last)
last = core.std.SelectEvery(last, 4, [0, 3])
last = haf.Weave(last, tff=True) # this one doesn't
last.set_output()
This should do it. You need mvsfunc and havsfunc for this to work.
kolak
27th July 2016, 22:14
:thanks:
I assume this won't support 8bit+ bit depths?
feisty2
28th July 2016, 07:42
CMts = 255.0 if chromamotion else 0.0
ts1 = core.tsoft.TemporalSoften(bob, 1, 255.0, CMts, 28.0)
ts2 = core.tsoft.TemporalSoften(bob, 2, 255.0, CMts, 28.0)
Segfaults every time in temporalsoften_x64_avx2.dll
from __future__ import print_function
import vapoursynth as vs
core = vs.get_core(threads=8)
core.set_max_cache_size(8000)
#core.std.LoadPlugin(r'D:\Programming\vapoursynth-sandbox\build\release-64bit-gcc\vapoursynth-sandbox.dll')
import sys
sys.path.append('D:\\vapoursynth-plugins\\py\\')
import platform
architecture = platform.architecture()
if architecture[0] == '64bit':
vapoursynth_plugins_path = 'D:\\vapoursynth-plugins\\64bit\\'
else:
vapoursynth_plugins_path = 'D:\\vapoursynth-plugins\\32bit\\'
print('Plugins folder: ', vapoursynth_plugins_path, end='\n', file=sys.stderr)
import os
for filename in os.listdir(vapoursynth_plugins_path):
if filename[-4:] != '.dll':
continue
try:
core.std.LoadPlugin(vapoursynth_plugins_path + filename)
except Exception as e:
print('Error: ', e, end='\n', file=sys.stderr)
clip = core.ffms2.Source(r'F:\Video\Mystery Keeper\Sound Horizon - 石畳の緋き悪魔.mkv')
clip = core.resize.Spline16(clip, format=vs.YUV444PS)
clip = core.tsoft.TemporalSoften(clip, 1, 255.0, 255.0, 28.0)
clip.set_output()
Same. The script does evaluate in VSEdit. But segfaults on preview.
https://github.com/IFeelBloated/TemporalSoften/releases/tag/r2
should work now, I wasn't cautious enough with all that pointer arithmetic stuff...
and added sanity check
Mystery Keeper
28th July 2016, 08:43
https://github.com/IFeelBloated/TemporalSoften/releases/tag/r2
should work now, I wasn't cautious enough with all that pointer arithmetic stuff...
and added sanity checkIt works! Thank you!
feisty2
28th July 2016, 09:41
It works! Thank you!
just out of curiosity, no offense, you obviously should be a much better programmer than me cuz you wrote vsedit, and making a floating point version of temporalsoften should be easy like a blink to you, right?
Mystery Keeper
28th July 2016, 09:48
just out of curiosity, no offense, you obviously should be a much better programmer than me cuz you wrote vsedit, and making a floating point version of temporalsoften should be easy like a blink to you, right?If I knew how it was supposed to work - yes. If I would dedicate time to read and understand the original filter - sure, I could have rewritten it for float input. Or even simply upgrade the existing one. But I've got much on my plate. Not even working on vsedit as much as I'd like to.
feisty2
28th July 2016, 17:37
just rewrote TemporalSoften, now it supports all sample types except half precision
and changed the namespace back to "focus"
x64+avx2 binary here, https://github.com/IFeelBloated/TemporalSoften/releases/tag/r3
replace VapourSynth\core64\plugins\libtemporalsoften.dll with this
compile the cpp yourself if you're looking for the x86 binary or if you don't have an AVX2 cpu
Myrsloik
28th July 2016, 17:42
just rewrote TemporalSoften, now it supports all sample types except half precision
and changed the namespace back to "focus"
x64+avx2 binary here, https://github.com/IFeelBloated/TemporalSoften/releases/tag/r3
replace VapourSynth\core64\plugins\libtemporalsoften.dll with this
compile the cpp yourself if you're looking for the x86 binary or if you don't have an AVX2 cpu
Does avx2 actually make it faster? Visual studio is generally shit at autovectorizing and even trivial things can make it give up.
And if this thing actually works and isn't slower than the previous version I guess I'll include it in the installer.
feisty2
28th July 2016, 17:46
Does avx2 actually make it faster? Visual studio is generally shit at autovectorizing and even trivial things can make it give up.
And if this thing actually works and isn't slower than the previous version I guess I'll include it in the installer.
dunno, simply turned the autovectorizing switch on...
I'll be thrilled if someone could make a gcc build..
Myrsloik
28th July 2016, 17:47
Here's R33 test4 (https://dl.dropboxusercontent.com/u/73468194/VapourSynth-R33-test4.exe)
Main attraction: float support added to just about all remaining core functions. Also spaghetti intrinsics optimized so everything should be much faster.
Beware of bugs and check any script using the updated functions a bit extra.
Changes:
r33:
the rshift argument of sobel/prewitt is now deprecated because it's pointless, simply scale the min and max args as appropriate
optimized minimum, maximum, median, deflate, inflate, convolution (1x3, 3x1 and 3x3) on x86 cpus
added float support to minimum, maximum, median, deflate, inflate, convolution, prewitt, sobel, invert, limiter, binarize and levels functions, note that most of the arguments have been changed from int to float
the whole project can now be compiled with clang-cl under windows
directshowsource from recent avs+ can now be used
fixed swapped uv planes with yuv411 output in vsvfw and avfs
merged vsfs with the latest version of avfs, avfs now work for both vapoursynth and avisynth scripts and no longer has shell integration
avisource can now open all formats vsvfw can output plus b48r
fixed corrupted output in vfm when clip2 isn't 8 bit
fixed crash due to stack overflow if an extremely long filter graph is freed
now installs the vs2015 update 3 runtimes on windows
vsvfw will now automatically convert rgb24 to packed bgra for convenience
added b64a and P416 output to vsvfw
updated to zimg v2.1 branch
mixed imwri fixes
fixed rare access violation in expr when ternary operator is used (jackoneill)
feisty2
28th July 2016, 18:19
@Myrsloik
my version runs faster
import vapoursynth as vs
core = vs.get_core()
clp = blah
clp = core.fmtc.bitdepth(clp,bits=16,fulls=False,fulld=True)
clp = core.std.ShufflePlanes(clp,0,vs.GRAY)
clp= core.focus.TemporalSoften(clp,luma_threshold=255)
clp.set_output()
my version
http://i.imgur.com/PvvToxY.png
the one comes with the installer
http://i.imgur.com/h1hag8u.png
feisty2
28th July 2016, 18:32
maybe the compiler inlined all lambda expressions so my version runs faster but not SIMD kind of faster (both are AVX2)
modern c++ is awesome
jackoneill
28th July 2016, 18:38
1. Use the dot as output file name so vspipe doesn't write the frames anywhere.
2. Let vspipe finish and post the speeds printed at the end.
feisty2
28th July 2016, 19:05
my version
http://i.imgur.com/aLAgGQd.png
installer one
http://i.imgur.com/03KIYsI.png
my version runs slower this time and actually it's kind of expected, my version contains an extra clamping on integer samples to prevent possible over/underflow and the installer one doesn't
it's just weird my version ran faster the first time..
LigH
28th July 2016, 19:58
I hope there is also still an SSE2 only version, or I could not use it on my Phenom-II PCs.
feisty2
28th July 2016, 21:07
Does avx2 actually make it faster? Visual studio is generally shit at autovectorizing and even trivial things can make it give up.
you're right, visual studio compiler is a piece of lame shit, so I switched autovectorizing off and the performance is exactly the same as when it was on...damn
so maybe my version runs slower cuz it has no SIMD opt and the installer one does..
I hope there is also still an SSE2 only version, or I could not use it on my Phenom-II PCs.
I replaced r3 with a plain x64 binary without any SIMD opt..
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.