1 (edited by Nintendo Maniac 64 09-12-2017 06:29:19)

Topic: Changing the downscaling algorithm to one that is less intensive?

EDIT:

Nintendo Maniac 64 wrote:

Exactly 1 month later, I figured out why my GPU utilization was higher than expected...

It turns out that not using D3D Fullscreen increases both the CPU and the GPU utilization - it was my impression that D3D Fullscreen reduced CPU utilization but increased GPU utilization, not decreased both.


So yes, I can confirm that SVP's downscaling algorithm does in fact use the CPU.  Unfortunately for me, it seems like this downscaling algorithm is actually kind of demanding on the CPU since I have to reduce my SVP profile settings considerably.

Presumably there's no way to use a lighter-weight algorithm, correct?

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

Original post

From some testing I just did, if you have...

  • GPU acceleration disabled in SVP via the overall settings and the video profile settings

  • Frame size is set to "Decrease to HD" in SVP

  • LAVFilters has the decoder set to "none"

  • Use EVR (custom presenter) with "D3D Fullscreen" disabled in MPC-HC

  • The video size set to "normal" in MPC-HC

And then play a 1080p video, the downscaling algorithm that SVP uses will still use the GPU.

Is this intentional behavior?

Re: Changing the downscaling algorithm to one that is less intensive?

Downscaling algorythm in SVP uses avisynth function BicubicResize.
Information > Additional Information - Get generated AVS script:

global resize_string = "BicubicResize(1364,768,b=0,c=0.75)"

As I know it implemented on CPU.

3 (edited by Nintendo Maniac 64 26-10-2016 07:35:32)

Re: Changing the downscaling algorithm to one that is less intensive?

Exactly 1 month later, I figured out why my GPU utilization was higher than expected...

It turns out that not using D3D Fullscreen increases both the CPU and the GPU utilization - it was my impression that D3D Fullscreen reduced CPU utilization but increased GPU utilization, not decreased both.


So yes, I can confirm that SVP's downscaling algorithm does in fact use the CPU.  Unfortunately for me, it seems like this downscaling algorithm is actually kind of demanding on the CPU since I have to reduce my SVP profile settings considerably.

Presumably there's no way to use a lighter-weight algorithm, correct?

4 (edited by brucethemoose 26-10-2016 08:17:52)

Re: Changing the downscaling algorithm to one that is less intensive?

Nintendo Maniac 64 wrote:

Exactly 1 month later, I figured out why my GPU utilization was higher than expected...

It turns out that not using D3D Fullscreen increases both the CPU and the GPU utilization - it was my impression that D3D Fullscreen reduced CPU utilization but increased GPU utilization, not decreased both.


So yes, I can confirm that SVP's downscaling algorithm does in fact use the CPU.  Unfortunately for me, it seems like this downscaling algorithm is actually kind of demanding on the CPU since I have to reduce my SVP profile settings considerably.

Presumably there's no way to use a lighter-weight algorithm, correct?

Just use DXVA scaling. If you're trying to save resources, it doesn't actually use your GPU's shaders: it uses a separate encoding block on it, and won't have any impact on other things you do on the GPU.

There are lighter weight AviSynth algorithms too, but AviSynth scripting is one heck of a rabbit hole to go down...

5 (edited by Nintendo Maniac 64 26-10-2016 08:45:22)

Re: Changing the downscaling algorithm to one that is less intensive?

brucethemoose wrote:

Just use DXVA scaling.

That's even worse for performance because SVP will be trying to interpolate at 1080p then rather than at 720p.

And for reference, I already use DXVA scaling for upscaling.

Re: Changing the downscaling algorithm to one that is less intensive?

Nintendo Maniac 64 wrote:
brucethemoose wrote:

Just use DXVA scaling.

That's even worse for performance because SVP will be trying to interpolate at 1080p then rather than at 720p.

And for reference, I already use DXVA scaling for upscaling.

You can sort of compensate for that by increasing the block size.

AFAIK, bigger block sizes at high res is similar to smaller sizes at lower res.

Re: Changing the downscaling algorithm to one that is less intensive?

Nintendo Maniac 64 wrote:

Presumably there's no way to use a lighter-weight algorithm, correct?

You can "override" default SVP downscaling algorithm BicubicResize by ffdShow's Fast Resize. I got economy by 2% CPU load. Try it smile

Post's attachments

ffdShow_resize.png, 28.77 kb, 554 x 468
ffdShow_resize.png 28.77 kb, 534 downloads since 2016-10-28 

ffdShow_resize_settings.png, 29.56 kb, 554 x 468
ffdShow_resize_settings.png 29.56 kb, 474 downloads since 2016-10-28 

Re: Changing the downscaling algorithm to one that is less intensive?

brucethemoose wrote:

You can sort of compensate for that by increasing the block size.

AFAIK, bigger block sizes at high res is similar to smaller sizes at lower res.

But I have to use settings so reduced that it's much better just to use 720p than 1080p.

MAG79 wrote:

You can "override" default SVP downscaling algorithm BicubicResize by ffdShow's Fast Resize. I got economy by 2% CPU load. Try it smile

Thanks!  I'll definitely look into this.  While it may only be 2% for you, it could very well be much more on my weaker hardware.

9 (edited by Nintendo Maniac 64 27-10-2016 23:06:13)

Re: Changing the downscaling algorithm to one that is less intensive?

OK yeah, on my CPU it's actually a difference of 10% CPU utilization - for reference that's basically the difference between decoding Xvid vs decoding VP9 (both in software).

With SVP's downscaling I was only able to do half pixel + 16px with Xvid (VP9 required too much CPU).  Using "fast billinear" downscaling, I was able to do half pixel + 16px with VP9 at similar CPU utilization.

Re: Changing the downscaling algorithm to one that is less intensive?

Nintendo Maniac 64
Good cool

Images above replaced to normal scaled ones. wink

11 (edited by Nintendo Maniac 64 09-12-2017 06:10:06)

Re: Changing the downscaling algorithm to one that is less intensive?

Apologies for the 13-months-later grave-dig, but I just want to confirm if the above method of using ffdshow to resize the video stream is still the best way to use a lighter-weight downscaling algorithm with SVP.

Unless there's now a way to change SVP's built-in downscaling algorithm to a lighter-weight one?



For reference, I'm planning on moving my HTPC's SVP configuration away from 32bit MPC-HC and I wanted to find out if there's a better way to do things now (in particular, I don't believe the ffdshow method works with players like mpv).