1

(12 replies, posted in Using SVP)

How can I pass a variable as an argument for the SVP script in vapoursynth?
NVM I figured it out.

In cuda only mode it is still a lot slower than vulkan.

3

(12 replies, posted in Using SVP)

MAG79 wrote:

You can enable NVOF in SVP, playback video in player and check how script looks.
SVP menu Information > Additional information > Last generated script

I am trying to run the script on a different pc with only the dll files, that is why I am asking.
But even with SVP manager generated script, it doesn't tell me how nvof_src is formulated.

4

(12 replies, posted in Using SVP)

Chainik wrote:

the NVOF one would be like this:

nvof_blk = 16
nvof_src = input.BicubicResize(input.width/nvof_blk*4,input.height/nvof_blk*4,src_width=-(input.width % nvof_blk),src_height=-(input.height % nvof_blk))
SVSmoothFps_NVOF(input, smoothfps_params, nvof_src=nvof_src, mt=threads)

"smoothfps_params" string is exactly the same
you can play with different "nvof_blk" values (4,8,16,32), but the NVOF engine itself always uses 4*4 blocks - that is why we need to prepare resized clip first to emulate other block sizes

Hello,
Thanks for the sample script!
What would be the vapoursynth equivalent of this?
I tried:

nvof_blk = 16
nvof_src = input.resize.Bicubic(input.width/nvof_blk*4,input.height/nvof_blk*4,src_width=-(input.width % nvof_blk),src_height=-(input.height % nvof_blk))
smooth=core.svp2.SmoothFps_NVOF(input, "{gpuid:11}", nvof_src=nvof_src)

But this hangs the player (MPC-BE 64bit,VS R60 64 bit, Python 3.10.8 64 bit).

UHD wrote:

What is your result for Rife via Vulkan v4 for this file:
original demo video from the creator of RIFE

Transcoding via SVP Manager with NVENC into H264 8Mb/s by the end it was working at 78 fps but it was climbing throughout the whole transcode. I am not sure if the fps counter in SVP Manager is accurate, is there any other way of keeping track of how fast my GPU is spitting out frames?

UHD wrote:

I'm also curious to know what kind of TV you have and if you have compared the quality of TV interpolation with transcoded anime in full 1080p quality (RIFE) and good lossy or lossless compression.

It is an LG Oled C1 48". It has a setting named TrueMotion and you can manually set de-judder and de-blur setting on a scale of 0 to 10. It seems like the video retains all of it's quality and the interpolation looks very smooth both in anime and movie footage. I would say it has less artifacts than RIFE x2 but on very few scenes (very choppy camera pans in anime) there is still some judder left. To be fair I believe on those scenes RIFE has problems as well but I haven't cross tested the same footage to compare them yet.

UHD wrote:

And remember that you will always get a higher quality when interpolating with RIFE x3 than when interpolating with x2 - see Figure 6: https://arxiv.org/pdf/2204.03513.pdf

With my current knowledge, I don't understand this figure but I will believe you. Still, compromising resolution for interpolation accuracy is a hard decision and I will have to test more to find the sweet spot.

Today I found out that if I run a very simple script in Vapoursynth filter instead of SVP manager, I get a lot more consistent performance and without frame drops or gpu usage spikes. Now I can run 1536x864 resolution real time without any problems.

UHD wrote:

If you are happy with the interpolation on your TV, then why bother?

I don't always watch content on the TV as it is shared with others. That is why I searched for a universal solution that I can use on PC. I don't want to pre-encode hundreds of episodes into higher framerate because I don't feel like making my my gpu work at 100% for weeks constantly and I don't want the size of my shows to extend and to amass terabytes of storage. That is why I seeked a real-time solution. But maybe you are right, I should just re-encode them with rife in full resolution, that would be the highest quality option. I can run transcoding with vulkan v4 at around 35 FPS and cuda pytorch at around 21-22 FPS at 1080p. Almost realtime but not quite. I just need 12 fps more.

Hello!
Recently I got a new TV and it had interpolation techniques built into the software so I searched for the same thing for PC and I found this. I tried the standard algorithm and Nvidia optical flow but they were both artifacting so I tried RIFE. It has a lot less artifacts and the flow of the images are smooth I very like it. The only problem is my weak GPU. I have to downscale my source material for it to work realtime. My current setup is:

Source material:
8bit 1080p 23.976 fps 8Mb/s (anime)

Rife via Vulkan v4
Windows 10
MPC-BE x64 + LAV decoder (CUVID) + MadVR
GTX 1660 Super 6GB, 2100Mhz core, 7800Mhz memory

Downscale via Spline64 to 1280x720 (via avisynth)
Interpolate with rife (x2)
Upscale via MadVR Jinc back to 1920x1080 (1920x1078 actual)
GPU usage 71-74%
Power 100-110 W

I can also downscale by integer and use nearest neighbour for resizing for increased smoothness:
Downscale via Pointresize to 960x540
Interpolate with rife (x3)
Upscale via MadVR nearest neighbour
GPU usage 90-94%
Power 110-120W

Actually what I found strange was Rife with high GPU utilization was consuming less power than either NVOF or standard SVP algorithm, both used around 115-130W.
The quality suffers but the interpolation makes movement smooth and nice on those few scenes where there is camera movement. 540p was a bit too pixellated for my like so I remained at 720p interpolation with Rife.
I tried to increase the resolution but it would always make the video choppy and max out mx GPU utilization even when I only upped the resolution by a little like to 1408x792 (frequent dropped frames, GPU usage spiking, EDIT: after a minute of playback gpu usage normalizes and playback gets smooth with around 85% GPU usage EDIT2: it start spiking and dropping frames again even in not very busy scenes so I had to go back to 720p).
What do you think about my current settings? Do you think there is a better way of achieving real time interpolation with my computer and in better quality? I feel like x2 interpolation is smooth enough I don't need x3 but I would like to increase resolution or quality somehow if possible. I tried Cuda but it freezes my player on start, in mpv it worked but it's speed was half of vulkan v4.