Kodi Community Forum

Full Version: nVidia Super Video Resolution for Windows under Kodi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
https://blogs.nvidia.com/blog/2023/02/28...esolution/

This was initially announced only for Chrome and Edge webbrowsers but someone built a fork of MADVR that could take advantage of it and I did some testing using MPC-HC and this build:

https://github.com/emoose/VideoRenderer/releases

It also seems that since then VLC made it available in Beta.

I thought this might be a terrible thing, one of those 'It tries and it ties too hard mushing everything up' but I've been frankly impressed with it's restraint?  But maybe that's because it seems to be trained for a very specific task: Modern HD video scaled down to lower bitrates and resolution for streaming, that needs to be scaled back up.

Feeding clean but highly compressed video seems to benefit the most which is kinda a 'duh'.  It does some nice work on compression artifacts, that chunkiness you see in reds, and such. I tried very clean, DVD Remuxed mid2000's animation into it and it mostly just did a better scale to 4K than you'd see with bilinear or other typical scaling methods without going all 'AI Destructive'. Contrasting that, with similar animation that was low bitrate 480p stream copies and it did a nice job on the compression artifacts. I also tried SD 90's television (Sourced from DVD without re-encoding of course), with grain, bounciness, composite dotcrawl and the like and frankly it seemed to do nothing at all other than minor scaling improvements and improvements on compression artifacts.  It seemingly looks for some specific traits and scales better but doesn't suffer from 'Overkill' as I'd once expected.  When you go outside of what the model was likely trained for, it seems to hold back and not do much but it does some neat things on bitrate staved encodes.

This would be pretty neat to see as an internally supported scaling option in the Windows build of Kodi.
Doubt you'll see a Windows only implementation.
Implemented in https://github.com/xbmc/xbmc/pull/23336

Image


and is already included in latest v21/Omega nightly build:

​​​​​​KodiSetup-20230531-cadbb36b-master-x64.exe 
(2023-06-02, 15:49)jogal Wrote: [ -> ]and is already included in latest v21/Omega nightly build:

​​​​​​KodiSetup-20230531-cadbb36b-master-x64.exe 

I'm unsure what words to use to express my surprise and pleasure that this happened so quickly.

Uhh, let's go with 'Sick!' shall we?
(2023-06-02, 15:49)jogal Wrote: [ -> ]Implemented in https://github.com/xbmc/xbmc/pull/23336

Image


and is already included in latest v21/Omega nightly build:

​​​​​​KodiSetup-20230531-cadbb36b-master-x64.exe 
Whaaaaat?!?!?!?!?

Just like that?

So... to get best results one needs to output in 4K, correct? With a 4K screen, I mean.
@jogal another question.

To use this one has to set DXVA as scaling method, right? I mean that's what my eyes are telling me but I prefer to be extra sure.

For the longest time I have thought that the scaling algorithms should be in the Settings/Player screen and not in the playback menu, where one has to look for them, understand they have to use "set as default for all videos"... but this new feature makes it even more clear. If one doesn't know where to look, they end up activating it under Settings/Player and they're not gonna see a difference, because the scaling algorithm doesn't change, unless changed from the playback menu.
(2023-06-05, 22:54)ashlar Wrote: [ -> ]Whaaaaat?!?!?!?!?

Just like that?

So... to get best results one needs to output in 4K, correct? With a 4K screen, I mean.
It more depends on the scaling ratio.  My only machine currently capable of using it is my desktop, with a 3080, but it has a 1440p screen and you can see it kicking in.

Though I think the build provided is actually skipping HEVC 10 bit for a memory leak issue that's since been fixed in the driver?

Honestly, it's a bit tricky to determine when it's actually engaged or not in some cases and Kodi seems to offer no feedback to the user.
(2023-06-06, 00:22)ashlar Wrote: [ -> ]For the longest time I have thought that the scaling algorithms should be in the Settings/Player screen and not in the playback menu, where one has to look for them, understand they have to use "set as default for all videos"... but this new feature makes it even more clear. If one doesn't know where to look, they end up activating it under Settings/Player and they're not gonna see a difference, because the scaling algorithm doesn't change, unless changed from the playback menu.

They are different things: video settings (playback context menu) are settings individually for each video, saved in Video Database. Here you can decide use "Spline36" scaling only for one video, DXVA for all, etc.

"Allow Use Super Resolution" setting is globally and allows chose that when DXVA scaling method is used is DXVA "regular"  or DXVA + Super Resolution.

Note that even enabled is not used for all videos: not used for interlaced content, not used if source is >1080p or if source is 1080p and display is also 1080p.  Is used if source is 720p and display 1080p. Is used if source is 1080p and display 4K... When not used is "regular" DXVA scaling.
 
(2023-06-06, 17:15)DJ_Izumi Wrote: [ -> ]Though I think the build provided is actually skipping HEVC 10 bit for a memory leak issue that's since been fixed in the driver?

No, current builds allow use with HEVC/AVC 10 bit SDR. Memory leak is fixed in NVIDIA driver 535.98
 
(2023-06-06, 17:15)DJ_Izumi Wrote: [ -> ]Honestly, it's a bit tricky to determine when it's actually engaged or not in some cases and Kodi seems to offer no feedback to the user.

NVIDIA has not provided any API or indicator that allows you to confirm if is operating.

See NVIDIA FAQ:

https://nvidia.custhelp.com/app/answers/.../a_id/5448
 
Quote:Q: Is there an indicator that RTX Video Super Resolution is operating?
A: There is no indicator at this time, but is something we are considering.

Since the consumption and graphics resources usage change, the most reliable is to look at the GPU usage from Windows task manager or the GPU power usage with GPU-Z.
(2023-06-07, 09:56)jogal Wrote: [ -> ]They are different things: video settings (playback context menu) are settings individually for each video, saved in Video Database. Here you can decide use "Spline36" scaling only for one video, DXVA for all, etc.

"Allow Use Super Resolution" setting is globally and allows chose that when DXVA scaling method is used is DXVA "regular"  or DXVA + Super Resolution.

Note that even enabled is not used for all videos: not used for interlaced content, not used if source is >1080p or if source is 1080p and display is also 1080p.  Is used if source is 720p and display 1080p. Is used if source is 1080p and display 4K... When not used is "regular" DXVA scaling.
Yes, I am aware of that. I am also aware, now, that the "Auto" setting for scaler has DXVA by default in the Windows platform.

BUT

Until this new development of yours, there was little doubt that Lanzos or Spline were better scalers than what offered by DXVA (as far as everything I know... I think it used bicubic at best). As such, a Windows user had to play back a video, whatever video, go into playback settings, select Lanzos or Spline, select "set as default for all videos".

And this is where I think that the way it's set up in Kodi makes absolutely no sense. It's great that one can select a specific algorithm for a specific video. But it makes no sense to have to access the playback UI to set up a scaler for all videos. That settings should be under Settings/Player. Why should it be any different than "Use DXVA2 decoding"?

I also, literally, BEG you, to have a look at this previous request of mine: https://forum.kodi.tv/showthread.php?tid=358662 with this as an alternative option: https://github.com/Alexkral/AviSynthAiUpscale

I ask because you seem interested in high quality scalers and limited hardware supporting them doesn't seem to scare you (like this that needs *very* specific GPUs to work).
Interesting, it doesn't seem to work on interlaced material correctly with my RTX 3080, but I think this is a bigger issue.  My only GPU capable of doing VSR is on my main desktop, an RTX 3080.  My main HTPC runs an older GTX 1080.  I run a lot of DVD remuxes so I'm dependent on the nVidia 'Inverse Telecine' function, but that seems kinda broken on my 3080.  I'm thinking this is more a nVidia driver issue than anything, but on any content that is 'truly' deinterlaced, not just 24p with pulldown flags, the 'DXVA deinterlacing' which I assume is the GPU doing an inverse telecine, is clearly not enabled and also the inverse telecine seems to not happen and it's just dropping a field.  Changing the deinterlacing method from 'DXVA' to 'Deinterlace', it fixes it though you're stuck with Kodi itself trying to deinterlace rather than the GPU attempting inverse telecine.

But the thing is, minus the SVP issue, I have the same deinterlacing/inverse telecine issue on Kodi 20.1 as well.  It's just 'broken' on the RTX 3080 now.  My GTX 1080, while obviously lacking SVP support, does the inverse telecine fine.

On 24p DVD remuxs, everything is fine and SVP even works if using a nightly.  Hoping this is more a driver issue with nVidia rather than a Kodi thing.

Edit: Even weirder, this field bob looking inverse telecine seems to be refresh rate specific.  I was testing on a main monitor at 165hz, but moved Kodi to a 60hz side panel and suddenly the inverse telecine works as expected.  I set the main monitor to 60hz and that ALSO fixes the inverse telecine.

However this doesn't change that SVP doesn't seem to work on interlaced video, even with this work around, it just fixes the inverse telecine.  I have MPC-HC configured to use SVP as well, and that seems to work, so this is to some degree a Kodi specific issue it seems.
(2023-06-07, 09:56)jogal Wrote: [ -> ]Note that even enabled is not used for all videos: not used for interlaced content, not used if source is >1080p or if source is 1080p and display is also 1080p.  Is used if source is 720p and display 1080p. Is used if source is 1080p and display 4K... When not used is "regular" DXVA scaling.

Are you or anyone else aware whether Nvidia will change this in the future (emphasis mine, above, regarding interlaced content)?

At the end of the day, 1080i content needs to be upscaled for 4K screens, so I don't understand the limitation (I do understand that it's entirely up to Nvidia, I suppose at least).
It would be useful for interlaced material, as most (all?) of it is <= 1080i.

@jogal did you test interlaced videos? That constraint is not mentioned in nVidia's FAQ.

I don't have the hardware but if you can build your own kodi, it's trivial to change the conditions in CProcessorHD::IsSuperResolutionSuitable (file DXVAHD.cpp) and test.
Comment out those two lines:
Code:

if (picture.iFlags & DVP_FLAG_INTERLACED)
  return false;
(2023-06-19, 01:19)CrystalP Wrote: [ -> ]That constraint is not mentioned in nVidia's FAQ.
 
Quote:RTX Video Super Resolution supports video input resolutions from 360p to 1440p
https://nvidia.custhelp.com/app/answers/.../a_id/5448

 
(2023-06-19, 01:19)CrystalP Wrote: [ -> ]@jogal did you test interlaced videos?

Yes, and not works well: produces picture artifacts and video shakes.

 
(2023-06-07, 18:54)DJ_Izumi Wrote: [ -> ]Interesting, it doesn't seem to work on interlaced material correctly with my RTX 3080

Is already mentioned several times.... and....

Image
My bad, I searched for progressive/interlaced keywords and didn't notice the p!

Would be good of nVidia to add the support, otherwise working around would be painful, with two runs of the processor (once deint once scale), if it even supports the needed input/output combinations.
(2023-06-19, 16:03)jogal Wrote: [ -> ]Is already mentioned several times.... and....

Image
No, this is a different problem, because it does work on interlaced material that is deinterlaced first.  I should probably do a detailed report, but here's what I found so far.

1) Even on Kodi 20.1 Stable, Windows, with my RTX 3080, the built in 'Inverse Telecine' function enabled, the Inverse Telecine breaks if the refresh rate is over 60hz.  it works correctly on 60hz but on a display with more than 60hz, it seems to instead simply discard a field and double it, looks super ugly.

2) In the nightly with SVP support, if I disable DVXA decoding, which then enables the software deinterlacer in Kodi (Not sure why when DVXA decoding must be disabled for Kodi to allow software deinterlacing, but okay), interlaced content with the software deinterlacer enabled is now scaled with SVP.  Though IMO, that is not as good as the IVTC function of the GPU, or at least when that functions correctly.

3) In the nightly with SVP support, even on a 60hz screen, the DXVA deinterlacer doesn't allow SVP scaling to work but the software deinterlacer selected it does work.

4) None of this I can replicate with MPC-HC in Windows using the SVP plugin.  It all just works with SVP.  I can't replicate any of these nVidia IVTC issues in MPC-HC either.
Pages: 1 2 3