Kodi Community Forum
Req Implementing FSRCNNX upscaler? - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Discussions (https://forum.kodi.tv/forumdisplay.php?fid=222)
+--- Forum: Feature Requests (https://forum.kodi.tv/forumdisplay.php?fid=9)
+--- Thread: Req Implementing FSRCNNX upscaler? (/showthread.php?tid=358662)

Pages: 1 2


Implementing FSRCNNX upscaler? - ashlar - 2020-11-24

After reading this comparison https://artoriuz.github.io/blog/mpv_upscaling.html I've discovered that the winner (or tie winner in some cases) is FSRCNNX.

The upscaler exists already as a GLSL shader (as far as my very limited tech knowledge allows me to understand), which if I'm not wrong is the same format Kodi uses for its shaders: https://github.com/igv/FSRCNN-TensorFlow/releases

Would it be possible to add this to Kodi? It would probably put to rest for good the need for DSPlayer on Windows (now that we have HDR, 3DLut and dithering) and would give best class upscaling capabilities to Kodi, on platforms capable of handling it (I suppose a dedicated GPU is needed, don't think that low level GPUs on CPUs can handle that algorithm but I've never tried it.


RE: Implementing FSRCNNX upscaler? - sarbes - 2020-11-24

This would far exceed the capabilities of the average Kodi system. From all my devices, only my workstation would be able to handle such scalers.

The infrastructure to handle prescaling, downscaling and whatnot is simply not there. It would be a challenge to integrate it in a suitable fashion.

The shaders you posted run on OpenGL, which (in the context of Kodi) is Linux/MacOS exclusive. For Windows, they would have to be ported to DirectX. Not a huge challenge, but still...

Personally, the only shader that I would add is SSSR, as it can scale to arbitrary resolutions. Even then, our rendering system would have to be extended a fair bit. Other than that, I'm more focused on improving our low to mid-range scalers and adding some cosmetic filters (anti ringing, chroma scaling, watermark removal, ...).


Better shaders would be nice to have, but adding them would take serious effort.


RE: Implementing FSRCNNX upscaler? - ashlar - 2020-11-25

Ok, thank you for your detailed answer. At a basic level could it be said that current Kodi focus is more on the low end device rather than higher end? Not implying this would be bad, per se. A wider audience is an understandable objective.
For me, by now a sort of "HTPC grognard" who buys high/mid tier GPUs just to extract that little bit of quality more... it creates a conundrum. As I still find Kodi's user interface, ease of use, extensibility unparalleled but video quality takes a back seat and with DSPlayer not being actively developed anymore, I am trying to see how this could be "cured".
(2020-11-24, 21:51)sarbes Wrote: The infrastructure to handle prescaling, downscaling and whatnot is simply not there. It would be a challenge to integrate it in a suitable fashion.
Here you mean that Kodi would not know how to handle a doubler like FSRCNNX because it would not "know" how to handle the downscaling that is often necessary afterward?


RE: Implementing FSRCNNX upscaler? - sarbes - 2020-11-25

Maybe you are not familiar with this style of open source development, but programming for Kodi is pretty selfish. I (and I think I speak for a lot of others) code because I want to see a feature or other improvements; sometimes even out of fun. Having a user presentable result is almost a byproduct.

I'm not saying that HQ scalers have no place in Kodi - far from it. After all, Kodi is geared towards enthusiasts. I'm just saying that it doesn't interests me too much.

Implementing such a feature is not trivial, as it requires lots of additions - essentially a new rendering pipeline. The amount of logic to cover all different (edge) cases on all platforms is huge. Packing all of it in our 10ft UI is a challenge in itself.


RE: Implementing FSRCNNX upscaler? - ashlar - 2020-11-25

(2020-11-25, 09:22)sarbes Wrote: Maybe you are not familiar with this style of open source development, but programming for Kodi is pretty selfish
No, I am :-) I've been following Kodi development since it was still XBMC. I even had a previous account, I registered in 2005. And I totally see why it is this way and I am not protesting or anything. I just wanted to understand the challenges involved.

Unfortunately I am no developer, otherwise, through selfishness, Kodi by now would have the best quality attainable from the open source codebase (or maybe I would be a lousy developer :-D ). The only thing I can offer is money and I did donate several times in the past. I even offered hundreds of dollars for somebody updating DSPlayer, since I understand that that's a niche of a niche. But when I saw the awesome results of this upscaler I thought that it would have been better to implement it in vanilla Kodi and be done with the DSPlayer experiment. Maybe other devs will be selfish in a way that makes this happen. One can always hope. :-)

Thanks a lot for the time you spent answering my questions (and all the time you're dedicating to Kodi development).


RE: Implementing FSRCNNX upscaler? - jjd-uk - 2020-11-25

I would say it's more complicated that just being selfish in what we work on, a big factor is also how much time something is going to take up. So you may work on something that is of zero personal interest to you, but you know you can get it done quickly, or perhaps use it as a learning opportunity. However when it comes to the non-trival stuff that's going to take a lot of time and effort, then yes you're going to need some personal investment to keep the motivation up in getting it done.


RE: Implementing FSRCNNX upscaler? - wsnipex - 2020-11-26

(2020-11-25, 16:07)jjd-uk Wrote: I would say it's more complicated that just being selfish in what we work on, a big factor is also how much time something is going to take up. So you may work on something that is of zero personal interest to you, but you know you can get it done quickly, or perhaps use it as a learning opportunity. However when it comes to the non-trival stuff that's going to take a lot of time and effort, then yes you're going to need some personal investment to keep the motivation up in getting it done.

that sums it up very well


RE: Implementing FSRCNNX upscaler? - ashlar - 2020-11-27

(2020-11-25, 16:07)jjd-uk Wrote: However when it comes to the non-trival stuff that's going to take a lot of time and effort, then yes you're going to need some personal investment to keep the motivation up in getting it done.
Yes, I understand. My initial request was due to me not understanding how hard/easy this would have been to implement. The fact that Kodi does not have the logic to handle doublers (that often need a second downscaling passage) clearly complicates thing, I did not think about that.


RE: Implementing FSRCNNX upscaler? - jjd-uk - 2020-11-27

The main thrust of my response was meant to be that we are not only motivated by selfish reasons. For example I mainly work on Estuary related stuff at the moment, so when free time to work on Kodi stuff is at a premium then yes I selfishly concentrate on things I want to see changed, however when I've more free time I will look at user requests and if I see something that I agree is a good idea, even if it's of no personal use to me, then I'll see what I can do in order to improve the Kodi experience for users. As I'm relatively new to skinning (I joined the Team for other things) then anything I do acts as a good learning experience even if it's a feature/function I'll never personally use. Many others on the Team are the same, just didn't want people thinking that we only ever work on stuff for purely selfish reasons, and personal interest is the only factor, it's much more nuanced than that.


RE: Implementing FSRCNNX upscaler? - ashlar - 2020-11-27

(2020-11-27, 12:43)jjd-uk Wrote: The main thrust of my response was meant to be that we are not only motivated by selfish reasons. For example I mainly work on Estuary related stuff at the moment, so when free time to work on Kodi stuff is at a premium then yes I selfishly concentrate on things I want to see changed, however when I've more free time I will look at user requests and if I see something that I agree is a good idea, even if it's of no personal use to me, then I'll see what I can do in order to improve the Kodi experience for users. As I'm relatively new to skinning (I joined the Team for other things) then anything I do acts as a good learning experience even if it's a feature/function I'll never personally use. Many others on the Team are the same, just didn't want people thinking that we only ever work on stuff for purely selfish reasons, and personal interest is the only factor, it's much more nuanced than that.
Got it. Personally I've never believed that all that happened on Kodi, during so many years, happened just for selfish reasons. I do remember developers that genuinely went out of their way to cater for users needs and requests.
What I wished to stress in my replies is that even if all this happened just for "selfish reasons" (let's use this as a shortcut for that approach)... it would be understandable and there would basically be nothing to complain.


RE: Implementing FSRCNNX upscaler? - sarbes - 2020-11-27

You say potato, I say potäto. I should have put "selfish" in quote marks.

The things you pointed out are still mostly for "personal gain", may it be in form of fun or as a learning experience.

In my eyes, the core driver for most individuals spending time on Kodi (or rather hobbies in general) is deeply rooted in personal interests. From an external perspective, I've described the whole act of contributing as being self centered, mainly driven by personal motives. This is especially true when comparing to working for monetary gain at a commercial level, as our media center approaches levels of commercial grade software in some cases. The result is secondary.

And no, I did not write that we are driven by purely selfish reasons. There are certain altruistic elements to it (with varying levels from individual to individual), which I did not exclude in my post.


To contribute something to the main thread, if someone wants to implement such scalers, I'd be glad to help at the best of my abilities.


RE: Implementing FSRCNNX upscaler? - ashlar - 2021-08-25

(2020-11-27, 16:16)sarbes Wrote: To contribute something to the main thread, if someone wants to implement such scalers, I'd be glad to help at the best of my abilities.
Bumping in case some new developer (or potential new developer) could be interested. I hope this is not wrong to do.


RE: Implementing FSRCNNX upscaler? - Calvi - 2023-01-03

FWIW I’d love to see this as well.
I use Kodi, Zoomplayer and MadVR to achieve HDR, 3D-Lut and NGU up scaling on my system.

Nothing against Zoomplayer, but if Kodi had FSRCNNX then I could remove it and MadVR thus simplifying the playback chain and setup in general and have a more seamless experience.


RE: Implementing FSRCNNX upscaler? - ashlar - 2023-06-08

This recent development with Super Video Resolution has rekindled my hope for a more advanced scaler to be implemented. SVR is even more limited in its scope, as far hardware supporting it is concerned. So maybe there's hope. :-)


RE: Implementing FSRCNNX upscaler? - ashlar - 2023-07-13

(2020-11-24, 21:51)sarbes Wrote: Personally, the only shader that I would add is SSSR, as it can scale to arbitrary resolutions.
You were referring to this? https://gist.github.com/igv/2364ffa6e81540f29cb7ab4c9bc05b6b

If so, that would be great!