Topic: Best possible settings? Hardware not even trying?

So, I recently purchased the Pro version of SVP to support you guys in this endeavor. As a highly placed member of a community-run project myself, I know how tricky these things can be.

I've been fiddling around with and investigating the settings in this program to try and get the best possible smoothness and lack of artifacting and I've encountered two... Well, I won't call them problems, but curiosities.

1: Sometimes the program just outright fails. Falls flat on its face, no matter what the settings. Particularly apparent when a thin object is against a varied, fast-moving background. Yet when one uses a similar mode on a high-end modern television, that doesn't happen. Are their algorithms really that much better than here, or am I missing something else?

2: Artifacting seems to be a fact of life when you're pursuing smoothness, yet my PC is barely breaking a sweat. I've an i7 4720HQ and a 980m. The GPU basically idles at 10% load, and the CPU never, ever goes above about 30-35%... No matter what I do, I can't push that higher. Given there's a lot of room for improvement in the image quality front, am I missing some tweaks or settings to push the hardware for a better result?

All in all, fab product and project that I really hope continues to gain traction. One day maybe filming at 60FPS will be the norm smile

Re: Best possible settings? Hardware not even trying?

Kinda offtopic but best thing to improve quality is straight multi like 3x, not 2.5x. If monitor is 60Hz, OCing it to 72 wouuld be best for 24fps video.

Re: Best possible settings? Hardware not even trying?

I'm running at 100Hz, and have SVP set to X4 source resulting in ~95. All my sources are 1080p, monitor is running at 3440*1440

Re: Best possible settings? Hardware not even trying?

Oh, I do the same by the way!

Re: Best possible settings? Hardware not even trying?

IceDreamer
Do you see any dropped frames at your screen 3400x1440 @ 100 fps?
You can use dropped frames number from madVR ctrl-J statistics or look to graphical red line from EVR ctrl-J statistics.
Also tearing test line Ctrl-T (Ctrl-Win-T) must move flawlessly without any jerks.

I ask you because the first thing to get better smoothness is to view every frame of video without dropped frames or frame jumps.

6 (edited by xenonite 07-02-2017 18:34:02)

Re: Best possible settings? Hardware not even trying?

IceDreamer;
Sadly, there are a few reasons why we won't see real 'high quality' smooth motion in our lifetimes (which I will quickly list below).

1) Temporal Aliasing and The Aperture Problem both place strict mathematical limits on the accuracy of interpolated frames, even with an infinitely fast computer and a mathematically 'perfect' algorithm.

2) Most consumers DO NOT want movies\videos to have smooth motion (look at the backlash against The Hobbit's use of 48-fps, which is not even close to actual 'smooth' motion) and cannot be made to understand that they can just trow away all the 'extra' frames to make the motion as jittery as they would like, while we cannot just make up new frames to get the motion as smooth as we want (so even though we have had the technical feasibility to do so for decades already, the free market simply cannot sustain such media creation).

3) Gains in practical, workstation-level performance have slowed to a crawl since the end of the 2000's. So, while we do have some very high quality motion interpolation algorithms at our disposal, it will take a very long time before we will see the requisite practical (i.e. Single-Threaded performance equivalent) computational power at 50% market penetration.

However, it is still possible to at least generate an interpolated video stream with an acceptable trade-off between artifacts and smoothness (mainly because 24-fps is so incredibly bad, that even a relatively large amount of artifacts can be generated without being as distracting as trying to resolve motion at 24-fps). Unfortunately, SVP uses literally the worst (quality wise; it is also the fastest / cheapest) of the practical motion interpolation algorithms (in any case, SVP's main goal has always been to try to bring motion interpolation to the attention of the masses and not to implement the highest quality quality motion interpolation algorithms; which would be pretty expensive to develop and too demanding for most people's systems to handle).

That being said, I have found that the following produces, on average, the best PSNR (which correlates very strongly with my own visual perception, but apparently not with that of most other people) on a variety of real-life content (NOT Anime!):

/***** SVSuper options *****/

levels.pel                = 3;
levels.gpu                = 0; //SUBJECTIVE: Compare performance and quality with gpu=1 for yourself

levels.scale.up            = 2;
levels.scale.down            = 4;
levels.full                = true;

/***** SVAnalyse options *****/

analyse.vectors            = 3;
analyse.block.w            = 16;
analyse.block.h            = 16;
analyse.block.overlap            = 3;

analyse.main.levels            = 0;
analyse.main.search.type        = 4;
analyse.main.search.distance        = -24;
analyse.main.search.sort        = true;
analyse.main.search.satd        = true; //VERY slow if 'true', but gives slightly higher quality
analyse.main.search.coarse.type    = 4;
analyse.main.search.coarse.distance    = -24;
analyse.main.search.coarse.satd    = true;
analyse.main.search.coarse.trymany    = true;
analyse.main.search.coarse.width    = 1920; //This is for 1080p content. Use 4096 for 4k, however it may crash, run out of memory, etc.
analyse.main.search.coarse.bad.sad    = 190;
analyse.main.search.coarse.bad.range    = -38;

analyse.main.penalty.lambda        = 11.2;
analyse.main.penalty.plevel        = 1.65;
analyse.main.penalty.lsad        = 4000;
analyse.main.penalty.pnew        = 40;
analyse.main.penalty.pglobal        = 50;
analyse.main.penalty.pzero        = 80;
analyse.main.penalty.pnbour        = 30;
analyse.main.penalty.prev        = 20;

analyse.refine[0].thsad        = 170;
analyse.refine[0].search.type        = 4;
analyse.refine[0].search.distance    = -38;
analyse.refine[0].search.satd        = true;
analyse.refine[0].penalty.lambda    = 9.8;
analyse.refine[0].penalty.lsad    = 3900;
analyse.refine[0].penalty.pnew    = 50;

/***** SVSmoothFps options *****/

smooth.rate.num            = 3; //Set this to auto, or to your <TargetFrameRate>/<SourceFrameRate>
smooth.rate.den            = 1;
smooth.algo                = 23;
smooth.block                = false;
smooth.cubic                = 1;
smooth.linear                = true; //Only works with GPU rendering, i.e. use gpu=1

smooth.mask.cover            = 40; //Therse values are your main trade-off between smoothness and artifacts
smooth.mask.area            = 15; //Making them larger decreases smoothness and obtrusive artifacts
smooth.mask.area_sharp        = 1.65; // See https://www.svp-team.com/wiki/Plugins:_SVPflow for details

smooth.scene.mode            = 0;
smooth.scene.force13        = false;
smooth.scene.luma            = 1.66;
smooth.scene.blend            = false;
smooth.scene.limits.m1        = 1600;
smooth.scene.limits.m2        = 2800;
smooth.scene.limits.scene        = 3000;
smooth.scene.limits.zero        = 180;
smooth.scene.limits.blocks        = 33; //Adjust this value for scene-change detection. Higher values makes it less sensitive and might cause it to try
                                                         //interpolating scene-changes!

Unfortunately, your system is not even remotely powerful enough to get an acceptable real-time result, however you can still try these settings out by running an AviSynth conversion (through VirtualDub) on a test clip (i.e. Create an AviSynth script, open said script in VirtualDub, output the RAW avi, view in video player WITHOUT SVP).
Just use the above settings to create the strings as per this documentation page:
https://www.svp-team.com/wiki/Plugins:_SVPflow
It will take quite a long time, so I would recommend only parsing a hundred or so frames (use something like the AviSynth Trim or Select* commands) and letting it run overnight.

Re: Best possible settings? Hardware not even trying?

IceDreamer wrote:

I'm running at 100Hz, and have SVP set to X4 source resulting in ~95. All my sources are 1080p, monitor is running at 3440*1440

Actually, 23.976 x4 ~ 96, but still, that mismatch would create a HUGE amount of judder. Rather set your monitor to an integer multiple of 24, and then use reclock to 'scale-up' your playback speed to match 24 fps.

Re: Best possible settings? Hardware not even trying?

> I've an i7 4720HQ and a 980m. <..> and the CPU never, ever goes above about 30-35%...

For a 1080p videos I suppose...

For the "best" result in quality it's probably a good idea to stick to Inteframe's highest preset, SubJunk did a huge job comparing quality between a bunch of values combinations.

9 (edited by IceDreamer 08-02-2017 03:26:02)

Re: Best possible settings? Hardware not even trying?

xenonite wrote:
IceDreamer wrote:

I'm running at 100Hz, and have SVP set to X4 source resulting in ~95. All my sources are 1080p, monitor is running at 3440*1440

Actually, 23.976 x4 ~ 96, but still, that mismatch would create a HUGE amount of judder. Rather set your monitor to an integer multiple of 24, and then use reclock to 'scale-up' your playback speed to match 24 fps.

It's GSync. Whatever it needs, it should be showing...

Re: Best possible settings? Hardware not even trying?

Well, I've already lost confidence in advice from Xenonite. "levels.pel                = 3;" is found in his settings, yet this value is invalid according to the DOCs...

Re: Best possible settings? Hardware not even trying?

I am also definitely doing something wrong regarding the scripts. I put his settings into override.js and ran a video using MPC, and SVP's control panel says 20-30% CPU as usual. GPU idling. I can only conclude I've not loaded the script. How exactly does one make sure that's happening?

Additionally, it would seem that SVP + MPC does NOT output GSync compatible frames... My monitor is an Acer Predator X34, and it won't go to a refresh rate of 96. I can choose 100 or 95.

12 (edited by James D 08-02-2017 07:36:18)

Re: Best possible settings? Hardware not even trying?

Is GSYNC turnd on for windowed and fs modes?
http://i.imgur.com/nKIxEye.png

Re: Best possible settings? Hardware not even trying?

Yes, it's on for both. The monitor has a built-in option to show an actual displayed FPS top-right. It's a steady 100 exactly when watching SVP-boosted content (Any non game content TBF)...

Re: Best possible settings? Hardware not even trying?

95 probably means 95.9~ which means it was working. You can try actual 60 fps video (make sure it's 59.9~ and not 60.0) and see what monitor outputs.

Re: Best possible settings? Hardware not even trying?

Hi IceDreamer,

afaik there are no 'perfect' settings for SVP. There are several types of artifacts and more smoothness usually means more artifacts. My personal favorite settings are:
24p -> 48p
Grid 14px. Average 1
Decrease Grid step by 3-4 (very expensive, possibly only placebo)
Search radius small
Artifact masking weak

The rest is default.

Thanks for your support on FAF btw!