Yes, and I can't really tell if it makes a difference because it only allows +/- 250ms whereas my audio is a fair bit more out of sync.

Thanks, the audio delay in MPC-HC is having no effect though.

Other options on the audio switcher screen work though, such as Boost.

Thanks for the replies, in the end I changed my source because it was incorrectly outputting 30fps anyway when it should have been 25 so I no longer need the @30 profile.

I did try the exclude profiles with different frame rates but it made no difference.

I am capturing via a USB capture device and experiencing major audio sync the more threads I set SVP to use.

At 2 threads there is no discernible issue, but at Auto (which I think means 8 threads in my case) the audio leads the video by something like 750ms.

I'm using MPC-HC, SVP-core, ffdshow and AVIsynth.

I've tried different renderers but it made no difference.

The capture is uncompressed video and audio.

Tried setting the audio delay in the built in audio switcher but it made no difference.

Any experts out there have a clue how I can further diagnose this - maybe something to do with my capture being uncompressed or something?

The problem is that I can use more effective SVP settings by allowing more threads - at 2 threads things start to stutter on screen sooner than when I use Auto.

Intuitively it feels as if the audio isn't being buffered/processed at all - for example when SVP switches profile/activates smoothing I see the video freeze momentarily while it buffers the video but there is no such pause on the audio, so unsurpringly the audio leads the video.

55

(4 replies, posted in Using SVP)

I've read elsewhere that there is little point in going below 12px for this setting.

However, my own observations, at least with Intel integrated graphics, is that CPU soon becomes the determining factor.

Basically, I've observed my graphics card load being pretty minimal and only CPU load rising as this and other settings are made more intensive.

Maybe different graphics card can assume some of this processing, I don't know, but certainly in my setup I haven't observed more than about 15% load on the Intel HD graphics 5000 IGP.

It would be interesting to know whether other graphics cards make more use of SVP.

56

(9 replies, posted in Using SVP)

Thanks, Chainik.

So I guess I need to take these CPU load measurements with a pinch of salt then basically.

57

(9 replies, posted in Using SVP)

Right, so it seems that 60-70% CPU usage (Windows task manager) is the point at which stutter occurs at least for our scenarios. Maybe that is just the way it is then.

It's interesting that the actual uncompressed capture and display of the HDMI signal uses almost no CPU or GPU, it must literally whack the data from the usb3 capture device (I'm using Inogeni) to the screen.

58

(9 replies, posted in Using SVP)

@Fanty

Well it's with any of the settings, not just the motion vectors grid and yes I'm not hung up about getting that setting particularly low, it was just an example. Basically any combination of settings that pushes CPU up at some point around 40-50% introduces stutter.

However I did notice on closer inspection that the Windows CPU utilisation as reported by Windows 8.1 task manager runs about 10-20% higher than the CPU usage reported by SVP, so typically if SVP reports 40-50 it can be up to 70% for Windows as a whole when it starts stuttering.

Also, the stuttering does coincide with the SVP index becoming less stable, so maybe I just have unrealistic expectations of being able to use the whole CPU, or maybe these stats are averages and don't show the occasionally peaks where it maxes out the CPU and causes frame drops or something.

Finally, I downloaded GPU-Z and found that with SVP hardware acceleration turned on the GPU Load was around 16% maximum and 0% when I turned off SVP hardware acceleration.

I suppose this makes sense because my USB3 capture is uncompressed and I'm not re-encoding or saving it so the GPU doesn't have much to do? Still, it struck me as a bit odd - wouldn't the act of getting the uncompressed frames onto the screen use any GPU at all?

How are you measuring GPU load - are you using the same utility?

@Jeff

Well, with SVP turned off or settings not too high it captures flawlessly so presumably if the bottleneck was the USB speed it would stutter before SVP gets involved?

Unless I've misunderstood you, which is highly likely!

59

(9 replies, posted in Using SVP)

As per my other posts I've been experimenting a lot with SVP lately, but one thing that I consistently notice is that when I dial-up the settings for higher quality - let's say by reducing the motion vectors grid - then of course the CPU usage (as shown inside the SVP profile popup) increases but once I get to about 40-50% CPU usage I start to get stutter.

Is this normal? I would have expected stutter to occur when the CPU maxes out, but this happens quite some way before maximum CPU usage.

I've noticed this with both 720p and 1080p sources, both of which are directshow captures from a USB3 device. The difference is with 720p I can use higher quality settings (vs 1080p) before CPU rises to 40-50% and stutter kicks in again.

The hardware is as I've mentioned in another post an Intel NUC 54250WYK which is Intel HD graphics 5000 but the CPU is an i5 Haswell. SVPMark gives me a score of the order of about 1000 (you can see my details under my username on your excellent online spreadsheet).

I apologise if my question is a stupid one, I'm trying to better understand how all this fits together - maybe my GPU is maxing out as I increase the settings, if so how can I check that?

More prolonged testing showed a few issues with the single PC approach - sometimes when changing the capture framerate and refreshrate of both 'displays' it would lead to some tearing effects, other times not. Or sometimes it seemed to get in a state where SVP simply didn't smooth at all (the OSD said it was smoothing, but it clearly wasn't), but relaunching MPC-HC would fix it.

Maybe it's a limitation of asking one of these mini computers to do a little bit too much, although CPU was never above 30-40% when these things occurred, so perhaps it was GPU related.

I have a directshow capture device and have three profiles, 1280x720@25, 29.97 and 30.

If I set the capture to 25fps, it picks the @25 profile.

If I set the capture to 29.97, it picks the @29.97 profile.

If I set the capture to 30, it still picks the @29.97 profile, not the @30 profile.

The OSD confirms my capture rates are as I expect, eg. For the @30 capture it confirms 30fps and a 2:1 smoothing to 60fps.

Now if I delete the @29.97 and @30 profiles, then when I set the capture to @29.97 and choose 'Add profile' it defaults the new profile to 1280x720@29.97 in the popup, and similarly if I set the capture to @30 and choose 'Add profile' it defaults the new profile to 1280x720@30, so clearly SVP is able to differentiate at this stage - but not when switching between capture rates. It seems to be treating 29.97 and 30 as identical.

However I would like to differentiate because for some reason I have to lower the profile settings for @30 as it can't quite cope with those I get away with for @29.97, strange as it sounds.

I'm using SVP core, ffdshow and avisynth as linked on your website and MPC-HC 1.7.1.

I managed to reduce my system down to just one PC for this setup.

These Intel NUCs have dual display outputs, so I made the capture device act as the main 'display' which SlingFront outputs to, and then the second display (the TV) runs MPC-HC/SVP to do the capture and output the results to the TV.

It works really well, and interestingly it doesn't appear to use significantly more CPU/GPU than the dual PC setup.

Everything is remembered on a reboot and I just made sure it auto starts MPC-HC on the second display.

One hassle I had was that I have had to use the System Default renderer, otherwise if I used EVR custom, VMR7, VMR9 etc I got bad audio sync issues - but funnily enough only when the capture was 25fps (smoothed to 50fps). No such trouble if the capture is 29.97 (smoothed to 59.94). I didn't get any such issue when I chose the System Default renderer, which is odd because I'd have thought it would just resolve to EVR or VMR or something. This wasn't a SVP issue by the way, if I took that out if the equation I saw the same issues described above.

So these buffer back/ahead values, whatever I put in gets overwritten according to the number of threads I've chosen, as I've read elsewhere.

So I've chosen 2 threads, which gives minimum audio sync issue (auto leaves things badly out of sync). It then adds 3 to this to get a number for the buffer ahead of 5.

What is the current situation - does SVP need to look 5 ahead to do its work, with only 2 threads? I realise I can try it out in hidden settings but maybe it would need the full 5 frame look ahead at some point but not very often?

My setup is ffdshow, avisynth and SVP core, and MPC-HC of course. I wanted to understand how this all fits together which was why I haven't downloaded the full install and extras as I don't know whether I need them yet.

Thanks, I'll take a look at those settings.

Just a small update for anybody remotely interested - got this working quite nicely now.

One PC is setup as a Slingplayer PC, ie devoted purely to displaying the stream from my Slingbox via the SlingFront software. Unfortunately it's hardcoded to use the MS DVD decoder and I've tried various workarounds to make it use ffdshow without success.

Hence setting up another PC and a usb3 capture device to grab the uncompressed output from PC1, capture it into MPC-HC and thus giving me access to SVP.

SVP set to use 2 threads, otherwise latency becomes annoying. Actually, I'd like to try one thread as it still adds a little more delay than I would like (half a second maybe) but it only goes down to 2? Would a faster machine reduce the latency still keeping with 2 threads?

My main problem was when PC 1 changes to a stream with a different framerate and thus switched screen refreshrate there was no way I could see of PC 2 knowing that it needs to restart the capture with a different framerate. So I first modified MPC-HC adding some commands/functions for starting a capture in full screen with the different frame rates I need then set it up to listen on a UDP socket for instructions. Then I modified SlingFront to send a small packet over UDP when the frame rate changes (such as connecting to a Slingbox with a different source) instructing MPC-HC to restart the capture at an appropriate framerate.

It all works pretty smoothly, although my SVP machine is a little under-specced as mentioned earlier, one of the new Intel NUCs. If I have PC1 outputting 1080p and PC2 capturing (and outputting) 1080p it struggles to cope. CPU goes high but even when it isn't it still judders. Reducing both down to 720p solves it and let's me use all the default SVP settings. Strangely, I can go even better than the defaults and not overload the CPU but then I still get stutter? Is that to be expected?

Other observations, not all SVP-related but still:

- I couldn't use MPC's auto resolution/frame rate switching, it simply didn't appear to take any notice of the capture framerate. Perhaps it only works for files or streams, and not directshow captures?
- I found best performance on my setup by using the Overlay Mixer Renderer in MPC. If I used EVR custom, or VMR9 then I got stutter even when CPU use was pretty low. This went away using Overlay Mixer Renderer.
- Audio was garbled when Audio Renderer in MPC was set to 'System Default' but when I chose 'Intel Display Audio' it was fine.
- Leaving threads at Auto led to the audio being badly out of sync. I had to explicitly choose 4 threads or less to make this problem go away.
- I had to set the hidden SVP setting ChkDeltaFPS to a high value to stop the popup which otherwise appears when changing desktop resolution and capture frame rate at the same time - sometimes you'd briefly end up with an invalid scenario and the popup would appear.
- If the capture framerate is set to a value higher than the actual capture source (let's say PC1 is sending 50fps, but the capture is set to 60fps) then SVP gives a warning about the SVP index. I can sort of see why, but it was confusing at first as it implied the SVP settings were too intensive, when it's actually related to the discrepancy between capture source framerate and capture framerate.

Overall though, I'm pretty enthused with SVP as a whole, so thankyou for making it. I've donated to the project.

My next plan is to get a faster mini PC and see how far I can push the settings, hopefully get it working at 1080p. I'm thinking of the new Zotac ZBOX IQ01. This has Intel hd graphics 4600 (actually a step down from the Intel NUC PC I am using) but I think a much faster processor, quad core I7 4770T vs the dual core I5 4250U mobile one on the NUC.

Of course, I could just a get new TV instead with decent motion interpolation, but where's the fun in that!

By the way, how does SVP with 'maximum' settings compare to the best available TV-tech out there? I've tried LG Trumotion and it's not bad, lower latency than my SVP setup but I don't think it is as good when it comes to fast-moving objects like a football. SVP seems better at that, but not perfect either, and I've not been able to turn up the settings to see how good I can make it.

Finally, is there a roadmap of future changes?

Keep up the good work, anyway.

Oliver

PS jeez, did I say small update...hope you're still awake whoever got this far smile

Yeah you're right, I don't know why I'm over complicating it smile

Many thanks for your help.

Really like the results of the smoothing - only thing that isn't perfect is when watching football it's very hard to get the ball to move perfectlywheb it's tracking quickly (no problem when it's slower). The players, the panning, the studio etc is great, but depending on the settings the ball either appears as 3 balls moving at once (two of them kind of ghosted) or it flickers. Maybe it would be better if I had a machine powerful enough to turn up some of the settings.

Still very good though, and better than LG Trumotion which makes a mess of the ball even more, now it just depends on whether the hardware will work in conjunction with MPC and SVP, eg if the capture source changes resolution can it all cope etc. ideally I want this PC to boot into MPC open the device in full screen and work without further input. Indeed it won't even have a keyboard or mouse, I'll just access it using VNC if necessary, so essentially it'll act as a video processor for the source, passing it onto the TV, remaining switched on in this state indefinitely.

No idea if that is a realistic proposition, whether MPC, SVP, ffdshow. AVISynth.....etc is collectively stable enough.

MAG79 thanks for your input.

I did try the two options for profile selection but the bug still persists.

Here is the information for when I play the 30fps file:

--------------------------

Last processed file parameters:
Filename: 720p30 Sample.avi
Frame size and frame rate: 1280x720 pixels, 30 fps

Detected screen parameters
Screen size and refresh rate: 1280x720 pixels, 60.145 Hz

Video smoothing info
Smooth factor: 2:1
Resulting video frame rate: 60 fps
Repeat 1 frame every 6.9 sec (without ReClock)

Selected profile: 1280x720@29.97

-------------------

I have added profiles for both 1280x720@30 and 1280x720@29.97, so as you can see above it has picked the wrong one.

A rounding error, I reckon, unless I'm meant to just define it as 29fps in the profile. Don't have a 29.97 file to test, unfortunately.

Anyway, it sounds like I can just use the default profiles if MPC is basing screen resolution changes on the source fps, so it's probably not going to be a problem, but it seems to be making a wrong decision to me.

Just noticed what seems like a small bug - I deleted all the profiles and made a bunch more, including 1280x720@29.97 and 1280x720@30. I then loaded a 720p30 file (right click, properties confirmed this) but SVP chose the 1280x720@29.97 profile.

I then deleted the 29.97 profile and made a 1280x720@29 profile, and after that SVP would choose the @30 profile for the 720p30 file. Maybe SVP has incorrectly rounded up the 29.97 to 30? I haven't tried a 29.97 file so I wonder which one it will choose for that.

Oh yes, of course I hadn't thought of setting up the profiles to deal with it.

Nice one, thanks.

Thankyou Chainik.

So in advance of getting the hardware I've been messing about with some sample files recorded with Fraps and Action! with some success. With the newest NUC (Haswell i5, HD5000) I can leave it at default settings if my source is 720p25 and desktop is 720p50. If I try a 1080p25 source and have the desktop at 1080p50 then it overloads the CPU and I have to dial things down quite a bit to the extent I lose some smoothness.

720p is fine though for what I want to use this (smoothing the output from viewing a remote Slingbox)...so the next the hurdle will be to see if one of these new NUCs with USB3 can handle an uncompressed capture (is that going to require a ton of CPU?) ie whether my test of reading an AVI file is valid. I chose the highest quality setting in Action! and it was well over a GB for a few minutes of video, and it seemed to cope with that.

I have a Q though; if my plan works then the source is going to be either 720p25, 720p29, 720p50 or 720p59. My aim is to find a USB3 capture device that will capture at whatever resolution the source is and pass it to USB3 unchanged then what I want is:

- MPC to change the refresh rate to either 50 or 59 according to the source
- SVP to adjust the framerate to this refresh rate

I can see the options for both of these.

However, do you know if MPC will use the original source fps before SVP has adjusted it or will it use the newly smoothed-up fps as the basis for switching the screen refresh rate?

If it's the former then that should be ok, but if it's the latter then I could end up with a situation where the desktop is in say 59p, the source then changes to 25fps but SVP immediately changes it to 59fps (because it it trying to set the fps to match the screen)....and thus MPC would leave things at 59p....when what I would want is MPC to see the new 25fps source and switch the desktop to 50p and then SVP would kick in and smooth things up to 50fps.....

Or, another way of looking at it would be to find a way of making SVP choose fps as follows, so it doesn't reference the screen refresh rate:

25fps - smooth up to 50fps
29fps - smooth up to 59fps
30fps - smooth up to 60fps
50fps - leave unchanged
59fps - leave unchanged
60fps - leave unchanged

Essentially it would be a 'double fps if 30 or below' option.

If SVP did that then all I'd need to do is set MPC to match the source and I wouldn't have any circular dependency.

Maybe there is some script or something I can edit to add such an option?

Hello Chainik

Thanks for your reply - I think I'll give this a go and see what happens.

Only thing I'm not sure about is what sort of hardware might be required. I tried running SVP using MPC to read a 1920x1080@25fps capture on an Intel NUC (last year's i3 with HD graphics 4000) and it struggled but I suppose it was also doing the decoding of the file aswell as the motion stuff - maybe with a DirectShow capture it wouldn't quite need so much power? Or have I misunderstood what a DirectShow capture from a device actually is?

72

(3 replies, posted in Using SVP)

I did try this but it had no effect, but thanks for the suggestion.

A bit unsure how all of this works so please bear with me.

From what I understand, the above device captures from HDMI and delivers it to USB3.0 as uncompressed video, ie it relies on the software to encode and compress.

However it states it is DirectShow compatible, which presumably means it can be 'opened' as a capture device with compatible software. It mentions Potplayer as one such piece of software, VLC another

So would I be able to say use MPC/Potplayer to open this as a source and display it directly, without any encoding/decoding but still be able to apply these nice smoothing effects?

i.e. could such a setup essentially form a simple '30fps HDMI in' to '60fps HDMI out' processor? If so what sort of hardware would be required?

74

(3 replies, posted in Using SVP)

Does anyone know of a way of getting SVP to do its magic with Slingplayer?

On Windows, Slingplayer uses the Microsoft Video Decoder, but this isn't configurable.

Is there a way of forcing an application that is hardcoded to use a particular decoder to use a different one, so that I can then make it use SVP?

SVP would be useful for Slingplayer as in most resolutions the streams are sent from the Slingbox at 25-30fps. For sports, interpolating to 50/60fps could make a big difference to viewing.

Thanks in advance