476

(18 replies, posted in Using SVP)

Fanty1972 wrote:

Default Setting of that is "Automatic", so it looks at the scene (the estaminated quality of the motion pathes if I understand it right) and decides if it can do 2m, 1.5m, 1m or Uniform.
Only if it thinks that the scene is very easy to do and there wont be any worse artefacts it choses "Uniform". Thats possibly the case in camera pans and stuff like that.
If the calculation shows that there might be worse artefacts coming (because the quality of the motion pathes is foretold to be bad) then it goes down with the setting and if the scene is really worse and will be totaly full of artefacts then it picks 2m, wich "feels" almost like non-smoothed (but if you try 2m on a camera pan, you see its better than no SVP at all, but it feels like "no SVP at all", if you dont compare it.)

It's a good timing you're saying this because I had just found this "Uniform" option and was wondering about it. It does seem to make the videos considerably smoother.

As for the artifacts, I'm not quite sure whether it is degrading image quality and how. What should I be looking for? Does it just cause more buggy artifacts on some scenes and textures? Or it subtly degrades the images in some other way?

477

(104 replies, posted in Using SVP)

I'd be curious as to how the previous 2.6 MT compares in performance.

But I guess the point is that performance doesn't change much, all that changes is the number of threads required, which doesn't change the number of threads that actually get created (I think 15 by default on GPU+8 CPU?)

478

(104 replies, posted in Using SVP)

With the 4GB patch, you could advertise SVP's ability to "finally make your 8GB RAM useful" as a feature!

479

(1 replies, posted in Using SVP)

Before I mentioned how SVP sometimes selected a weird high ratio for 29.97 videos that would cause the system to lag.

This also sometimes happen with 24fps videos. I just had problems with a 23.976 fps video that played at 22:9 instead of 5:2. Going into the profile and selecting the 24->60 (2.5x) solves the problem.

I'm mentioning this because the next version of SVP could do a better job at properly selecting the right ratios, and that should be easy to fix.

480

(104 replies, posted in Using SVP)

MaXimus, regular builds don't support MT which tend to be less stable. Multi-Threading is generally only supported in special builds. SVP requires Multi-Threading to do its job in real-time.

SEt is saying the MT will be there, so there you'll have your better alternative! (finally)

mmm the "Decrease frame size" is actually doing one thing right: it is doing the resize BEFORE applying SVP which saves processing power and allows for higher quality processing.

You mentioned that ffdshow had options for applying rendering filters (madVR) before doing the other processing. If doing madVR resizing could be added to the Decrease Frame Size option list, that would be bad ass.

The videos that causes issues are generally 1080p 29.97fps.

One option is to create a new profile for those to make sure it uses a 2:1 ratio.

Or another option would be to disable SVP in this profile as 29.97 could be considered smooth enough and madVR would then do a better job.

For now I'll probably leave it to 2:1, and if I run into further issues with those videos, I might consider Plan B

OK... after testing, my system cannot run SVP in 1080p + Catmull downscaling to 768p

So I just have to forget about Catmull downscaling.

Now that I'm looking at it, Catmull-Rom is too demanding for my computer in any cases. Without Anti-Ringing and without SVP, it has a rendering time of 16.8 which is slightly too high.

Ok... in any way, I want my setup to work on both 768p display and 1080p display (where there would be no downscaling to reduce CPU load).

So in this case, I might be better off disabling the resize option so that madVR can do its job properly. And then see what quality difference I get.

One feature request for SVP: it builds profiles based on video types, but it would also be good if could make different profiles depending on the output type (768p or 1080p)

SVP has an option where it downscales 1080p content to fit the screen resolution to make processing easier.

Does that mean madVR's advanced downscaling algorithm isn't being used at all and we're only getting basic bilinear downscaling?

If that's the case, that would be another good reason to only increase frame rate after madVR is done.

What anti-virus (and/or firewall) are you using?

When I re-installed Kaspersky Anti-Virus, at first I couldn't open PayPal because it hadn't yet updated its database of certificates.

487

(104 replies, posted in Using SVP)

This whole AviSynth versions thing is really nuts.

What I ended up doing is

For SVP: AviSynth 2.6 MT

For my encoder in preview mode: AviSynth+ (official non-MT!), for best stability

For my encoder in rendering mode: AviSynth 2.6 MT, for best performance

And the one you chose was 2.5.8 MT, custom build for SVP

And after all that, none of these versions is ideal.

488

(104 replies, posted in Using SVP)

Just looking at the file size (twice bigger than 2.5.8), I'm not sure I want to look at it.

It's definitely not working with resize functions. Just create a basic script that has a Spline32Resize function and it has lots of serious visual glitches.

I get what you're saying... and perhaps your time is better spent working on SVP itself while you let others figure out AviSynth MT. That's a WHOLE other project in itself.

Now it's working with either v2.5.8 or v2.6. Perhaps you could give the option during installation as to which version to use. I'd probably recommend v2.6 if they have over 3GB of RAM.

If they want SVP to work in x64, then someone will have to first make a proper AviSynth MT work in x64 first. THEN you can rewrite your assemblies in x64. But for now, most video components are still working in x86. Might be different a few years from now.

When I was looking into testing x64 AviSynth, the people in the community were under the impression that you weren't interested in providing a x64 version of SVP. That's not actually the case. You want to support that, but there just is no version of AviSynth that supports x64, MT and ffdshow. You just have to let them know that. As soon as any version supports x64, MT and ffdshow, you'll be more than happy to provide x64 SVP binaries for it. Until then, there's no point in spending time there.

489

(104 replies, posted in Using SVP)

Now I did the SVP/Interframe encoding test with AviSynth+ MT. I've set the threads to 14 as that's the default in generate.js for 8 CPU + GPU.

It worked fine and performance is impressive: 31s! (compared to 41-25s with v2.5.8)

What causes massive visual glitches is resizing. A script with a simple Spline32Resize causes problems; so does NNEDI3 resizing.

Bugs so far:
- AviSynth+ MT doesn't work with resizing
- It crashes when closing
- Drop frames / clock desync problem

With v2.5.8 / v2.6 I don't need to enter Prefetch(14) because InterFrame takes care of it. If I specify Prefetch on top of what Interframe does, am I duplicating the thread creation?

The performance, however, looks very promising!!

I believe that getting AviSynth+ MT to work properly, combined with processing frames *after* madVR, would allow for much better output quality (drastically improved performance, but would have to be tested)

Denoise/Sharpen with FFT3DFilter is working (not crashing). Keep in mind that there may be all kinds of subtle bugs that change the output quality and are hard to see.

490

(104 replies, posted in Using SVP)

Chainik wrote:

You've just opened my eyes  big_smile

That's what the 'Thanks' button is for

For now I'll stick to 2.6 MT for video encoding. With MT enabled, it gives better performance than the official AviSynth+ which also works well just not for SVP.

Development-wise, I think the memory leaks of 2.6 MT would be easier to fix than all the bugs in AviSynth+ MT!

And does SVP really have to work on top of ffdshow and avisynth, which are 2 very old pieces of codes not well maintained? Could it run as a rendering filter like madVR, or in some other way? And if you were to make SVP do its job *after* madVR, what would need to change in its structure?

491

(104 replies, posted in Using SVP)

MAG79 wrote:

You need to add line

Distributor()

to the end of scriprt to make MT working.
* For AVS+ last line of script must be:

Prefetch([threads_number])

Oh, this isn't in SubJunk's instructions for encoding videos in 60fps.

The line "Prefetch([threads_number])" isn't valid. I'm guessing I have to replace [threads_number] by a number? I tried putting 4.

It plays... but with LOTS of visual glitches! If I instead put number 2, there are still visual glitches but much less.

With 2 threads, I got the encoding in 5m54 instead of 5m36 with v2.6. Haven't done SVP encoding test yet.


What mean clock deviation and how it related to AVS-script or Avisynth library version?

You should know more than I do what it means, but it only happens with this version of AviSynth+

and MPC-HC crashes when closing.

This "thing" (AviSynth+ MT) is far from being a finished product...

492

(104 replies, posted in Using SVP)

This isn't good either.

Clock deviation was -2% and was gradually going down (-0.65% on the screenshot)

"1 frame drop every 1.16 seconds" isn't good either; although those don't show up in "dropped frames"

493

(104 replies, posted in Using SVP)

Here's another test with a different script.

AviSynth+ (non-MT): 6m21

PluginPath = "Encoder\"
AviSource("Job2_Input.avi", audio=false).ConvertToYV12()
LoadPlugin(PluginPath+"FFT3DFilter.dll")
fft3dfilter(sigma=3, bt=5, bw=48, bh=48, ow=24, oh=24, ncpu=8)
LoadPlugin(PluginPath+"nnedi3.dll")
nnedi3_rpow2 (2)
nnedi3_rpow2 (2)
Spline36Resize(960, 720)
fft3dfilter(bt=-1, sharpen=0.1, ncpu=8)

AviSynth 2.6 MT: 5m36

SetMTMode(3,4)
PluginPath = "Encoder\"
AviSource("Job2_Input.avi", audio=false).ConvertToYV12()
SetMTMode(2)
LoadPlugin(PluginPath+"FFT3DFilter.dll")
fft3dfilter(sigma=3, bt=5, bw=48, bh=48, ow=24, oh=24, ncpu=8)
LoadPlugin(PluginPath+"nnedi3.dll")
nnedi3_rpow2 (2)
nnedi3_rpow2 (2)
Spline36Resize(960, 720)
fft3dfilter(bt=-1, sharpen=0.1, ncpu=8)

That "thing" (2.6 MT) is actually doing quite well (besides memory usage).

If you can tell me what's wrong with my AviSynth+ MT script, I'll give it another try.

494

(104 replies, posted in Using SVP)

I have done some performance tests with SVP encoding via Interframe

For each version I tried with and without the first command "Setmemorymax(512)"

2.5.8 MT:   0m45
2.5.8 MT 512MB:   0m41
2.6 MT:   0m43
2.6 MT 512MB:   0m49
+ MT:   1m20
+ MT 512MB:   1m20


AviSynth 2.5.8 / 2.6 MT Script

SetMTMode(3,4)
PluginPath = "Encoder\"
AviSource("Job3_Input.avi", audio=false).ConvertToYV12()
SetMTMode(2)
Spline36Resize(384, 288)
LoadPlugin(PluginPath+"svpflow1.dll")
LoadPlugin(PluginPath+"svpflow2.dll")
Import(PluginPath+"InterFrame2.avsi")
InterFrame(Cores=8, NewNum=60000, NewDen=1001, GPU=true)

AviSynth+ MT Script (not sure I got this right)

SetFilterMTMode("",2)
SetFilterMTMode("ffdShow_source",3)
PluginPath = "Encoder\"
AviSource("Job3_Input.avi", audio=false).ConvertToYV12()
Spline36Resize(384, 288)
LoadPlugin(PluginPath+"svpflow1.dll")
LoadPlugin(PluginPath+"svpflow2.dll")
Import(PluginPath+"InterFrame2.avsi")
InterFrame(Cores=8, NewNum=60000, NewDen=1001, GPU=true)

495

(104 replies, posted in Using SVP)

I tried using this build of AviSynth+ MT for encoding videos with EEDI3+NNEDI3, and am getting about 3-4% lower performance than with the official build.

496

(104 replies, posted in Using SVP)

Oh it doesn't even have a compiled version! Thanks, I really wasn't interested in compiling it myself.

So far it's working, with memory usage between 600-1000MB (similar to 2.5.8)

There might be a slight additional lag when initializing videos.

Anything I should pay attention to when testing it?

The main problem with 2.5.8 MT is that especially when controlling MPC-HC via API, it crashes very regularly and I need to scan the process every few seconds to detect a crash to auto-kill the process.

One question about SVP... if I wanted to patch 'generate.js' during setup, is there a way for me to programmatically know in which folder SVP was installed? MPC-HC has a registry key with its installation path, but I haven't found anything to indicate SVP's location.

And another quick question (perhaps off-topic): when using SVP with Interframe, what happens if I always specify to use the GPU and it runs on a computer that doesn't support it?

497

(104 replies, posted in Using SVP)

Chainik wrote:

why you think we didn't tried? smile
in fact anyone with basic knowledge of JavaScript can "port" it, just edit a few lines in generate.js

replace

avs.WriteLine('SetMTMode(3,threads)');

with

avs.WriteLine('SetFilterMTMode("",2)');
avs.WriteLine('SetFilterMTMode("ffdShow_source",3)');

remove

avs.WriteLine('SetMTMode(2)');

replace

avs.WriteLine("distributor()");

with

avs.WriteLine("Prefetch("+threads+")");

I tried it but get an error that SetFilterMTMode doesn't exist.

Now I get what you're saying that MT isn't in the official AviSynth+ build... so where do I get the MT version then? I searched for it and can't find a MT version of AviSynth+

That's madVR's smooth motion that is off. You want to keep it that way.

If it doesn't play at 60 or 120fps, you'll know by looking at the image.

499

(104 replies, posted in Using SVP)

OK. I haven't got any such random crashes in 2.6. These are embedded in a software I made so I'll keep 2.5.8 in it for now, perhaps letting them know they can replace with v2.6

If it helps, I can also give it a try with AviSynth+ and let you know what happens.

madVR is different than SVP. Read madVR's documentation. When a video plays, madVR's tray icon appears so click on it to open its settings and follow the documentation to create video profiles. Keep madVR's Smooth Motion OFF as SVP provides better smooth motion features.