v18 Kodi 18 RC4 on Nvidia Shield TV - no Lanczos3, Spline36 upscaling.
#1
Hello good sirs,

I installed K18 RC4 on Nvidia Shield TV.

With SPMC, if I disable Hardware Acceleration, I can select Spline36 or Lanczos3 for upscaling. The video is then decoded and upscaled by software (higher power draw from the Shield TV, but w/e- image quality is noticeably better).

I hope you can implement this feature in the future on Android.

The NV Shield TV is able to decode 1080p 60fps and upscale it to 4K using Lanczos3 in Software! Lanczos3 upscaling looks better than 95% of the TVs out there can do. Most TVs really have trash upscaling quality with very few exceptions like higher end Sony TVs etc.

The only thing where NV Shields CPU is not quite powerful enough is if you additionally use Yadif x2 deinterlacing or even Yadif x1 (for 1080i50 or 1080i60) and then Lanczos3 upscaling and decoding all in software - it will stutter and framerate will go down.

Im sure that the next Shield TV (its upgraded CPU) will have no issues with Yadif x2 + Lanczos3 + decoding all in software.

I do notice a big difference between the default "bilinear" which is used when hardware acceleration is turned on and Lanczos3.

It is quite relevant if you watch Twitch.tv streams through the Kodi plugin.

Honestly I really dont get why Nvidia doesnt "bake in" better upscaling/downscaling algorithms into the SoC or into their GPUs but rather use the biggest garbage upscaling technique, which is most likely bilinear.
They go out advertising the "deep learning" capabilities of ther Tegra chip and whatnot and then use some garbage upscaling for video content. If anyone could put a high end upscaling/downscaling algorithms into a SOC, then sure it must be Nvidia with all their experience. I mean they work for years with sdks like Nvenc and so on and still use some garbage upscaling and deinterlacing techniques for video..

They could even add it to the already released NV Shield TV product on driver level inside Android if they really cared. But it seems like even Apple takes video quality more seriously than Nvidia. I hear the upscaling/downscaling on Apple 4K TV is quite good.
Reply
#2
Works for me if I disable both mediacodecs.

As for nvidia, I think they said they're planning to add better scalers for Shield. In the last official update (7.2) they bumped the kernel from 3.1 or whatever it was to 4.9. More changes should come, including the colorspace auto-switching, which is available for testing if you sign-up for on their forums.
Reply
#3
(2019-01-04, 20:27)8-BaLL Wrote: Honestly I really don't get why Nvidia doesn't "bake in" better upscaling/downscaling algorithms into the SoC or into their GPUs but rather use the biggest garbage upscaling technique, which is most likely bilinear.

They go out advertising the "deep learning" capabilities of their Tegra chip and whatnot and then use some garbage upscaling for video content. If anyone could put a high end upscaling/downscaling algorithms into a SOC, then sure it must be Nvidia with all their experience. I mean they work for years with sdks like Nvenc and so on and still use some garbage upscaling and deinterlacing techniques for video..

Agreed.

This picture quality upscaling topic has a LOT of people scratching their heads in astonishment for years now - considering the 4K capable Shield comes from a well known GPU card company.
Maybe NVIDIA's focus has been more on Gaming and other areas as opposed to video and upscaled picture quality.

Keep making noise about this topic over on the NVIDIA forums as well to keep the focus on this issue.

Reply
#4
@adun79 thanks for the tip, I only disable 1 of them, will have to try to disable both. Thanks for the hint good sir!

@wrxtasy absolutely. I mean I will give them some benefit of the doubt, since it was their first Media Player device, which wasnt even intended for that but rather for game streaming/playing.

But even with games, theres no game out there that can run at 4k natively and very rarely at 1080p, so 99.9% of all games will rely on some sort of upscaling. The question is if the game devs use the "baked in" upscaling in the SoC or can use their own upscaling methods.
I assume that the SoC does the upscaling. So even with games- they would look much better if Nvidia cared to implement a better upscaling algorithm!

Lets be honest, with the technology and ressources that the company actually has, it is absolutely unacceptable to have this trash-level upscaling and deinterlacing quality. They brag about Tegra's "deep learning" and "AI" capabilities and whatnot- that is exactly the stuff you need to implement good upscaling algorithms. It wouldnt even require much work.

Heck if nothing else, they can just copy and paste Lanczos 3 and "bake" it into the SoC on driver level, so that every single app makes use of this (Amazon Prime, Yotube, Netflix etc.). I dont know if Lanczos 3 and so on are open source, but sure Nvidia has some Devs who could at least create their own algorithm to match Lanczos 3 (or better)..

If they have so much AI-capable technology at their hands- for freak's sake, let the AI do the work! I am sure it will come up with something that is better than the current bilinear upscaling. Its almost impossible to come up with something worse than that!
(ofcourse Im overdamatising a little bit, but that is required in order to get my point across very clearly Wink )

Oh yeah and do you guys remember than Nvidia Big Screen 4K TV @ 120 Hz that was shown a while ago? Basically a huge Display with NV Shield Hardware inside. Well if it was still gonna use the same horrible Upscaling and Deinterlacing as the NV Shield TV, you could throw that TV into garbage.

All other big companies out there like Sony, Samsung and LG implement AI algorithms in their newest TVs for better upscaling. If any other company could do the same or even BETTER, then sure it must be Nvidia with all the technology, experience, ressources and manpower available.
Reply
#5
Lanczos is just a convolution filter with sinc weights. The real issue here is doing it fast, up to 60 times per second outputting 4k with 576i input.

Kodi GL4 path has such an implementation, but gles platforms would need Gles 3.1 support for that or texellookup will kill memory bus.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#6
@fritsch out of curiosity- is there something better than Lanczos3, that could be implemented into Kodi, maybe something like "nnedi3"? Dont get me wrong, Lanczos3 is quite good in terms of sharpness for upscaling and does a great job for the cpu ressources it consumes, but I wonder if it could be further improved?

Anyways- I am waithing until Kodi supports HDR (and maybe DV) on x86/x64 hardware. Android devices seem to have way too many limitations and problems. It also doesnt help that the ARM soc manufacturers dont release proper driver support for their hardware, which only increases the limitations and problems on those devices.

So if I got it correctly, Nvidia card support will be dropped in future Kodi developments, due to some limitations with Nvenc/Nvdec and whatnot. What will remain? Support for intel Cgpus and maybe AMD cgpus? Im just wondering if there are any options available at all for further x86 development.

Thanks in advance!
Reply
#7
Kodi already does Tone-Mapping properly. The only solution if the OS cannot properly flag HDR metadata.
Scalers: There are better scalers. Perhaps the one you named. Though: The real question is: do you actually see the difference when sitting in front of your TV in 3 to 5m distance. It's clear that one easily sees the difference between bilinear and e.g. lanczos - but would you see the difference between lanczos3 and bicubic? Would you see the difference between lanczos3 and nnedi3?

That everyone has to answer for themselves. But don't forget: Kodi's focus is on watching and therefore "what one does not see does not matter" :-)

Nvidia dropped itself by killing VDPAU.

For future: I don't know as I personally don't have any plans that I could implement myself (everyday life + job). Therefore: Use the kennedy theorem :-) Don't ask what kodi can provide to you, but rather what you could provide for kodi. Cuvid / NVDEC -> welcome.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#8
I can see the difference between bicubic and Lanczos3 from the distance that I usually watch TV from. In terms of lanczos 3 vs nnedi3, I had no chance to compare both yet, but it could be a rather even match, unlike bilinear vs lanczos3.
a
As the trend goes towards bigger screen TVs, I wouldnt rule out that it would be beneficial to have even better upscaling. In terms of "what one doesnt see, doesnt matter"- I would say that "what one doesnt see, could be clearly visible for someone else".

If we would follow this rule of thumb: "oh you wont see a difference anyways"- we could stay at 1080p for another 20 years or so, because most ppl have small tvs at home and sit 5+ meters away from them. Then why even bother with 4k? I dont think thats the right approach for progress.

What I could provide, well I would be willing to pay for the software incl. updates. But then again I would expect it to be constantly developed and improved and most wanted features added. But since it is not a commercial project and nobody but a few devs decide what will be implemented and what wont, it is a different thing.

Once again, if Kodi ever releases a Media Player box that gets constant support and updates, I would buy the device. Preferably it shouldnt be android/arm based, because both are garbage.

Before 4K and HDR I had the Dune HD media player, which had solid upscaling quality and deinterlacing and worked well overall. It was a bit pricey, but it didnt matter- because it received updates and really most stuff worked fine. I kinda miss a similar product that is 4k/hdr capable, has good upscaling/deinterlacing and receives updates constantly. Apple 4k tv comes close to that, but then again- its apple. No usb slots, nothing. And theres only 1 app that does the job right (mrmc), if apple decides to remove it from the store or restrict it in some ways- the devices becomes a brick in terms of media player, you can use it as a door stopper. Im not down for that. I mean its unlikely for them to do it, but with apple you never know. Plus I dont wat to rely on 1 single app that is actually of any use for playing media files on the whole 4k tv, there are no alternatives. If the mrmc dev decides to pull it from store or stops support- you can play hockey with the 4k tv.
Reply
#9
Quote:As the trend goes towards bigger screen TVs, I wouldnt rule out that it would be beneficial to have even better upscaling. In terms of "what one doesnt see, doesnt matter"- I would say that "what one doesnt see, could be clearly visible for someone else".

If one sees it, it does matter.

Kodi is developed by volunteers in our freetime. No one gets a single cent. There are kodi forks out there who perhaps can provide the support you need.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#10
(2019-01-05, 13:08)8-BaLL Wrote: Lets be honest, with the technology and ressources that the company actually has, it is absolutely unacceptable to have this trash-level upscaling and deinterlacing quality.

Out of interest what is wrong with the Shield's Hardware deinterlacing ?
Is it not as good as CPU derived YADIF2X deinterlacing or are you commenting on upscaled deinterlaced SD picture outputs ?

(2019-01-05, 19:51)8-BaLL Wrote: Apple TV 4K.... Plus I don' want to rely on 1 single app that is actually of any use for playing media files on the whole 4k tv, there are no alternatives. If the mrmc dev decides to pull it from store or stops support- you can play hockey with the 4k tv.

I seriously doubt that is going to happen. There would be an outcry for an App not labelled "Kodi" and Apps like Infuse and more would need to be pulled as well. For a Plug an Play 4K HDR platform the ATV 4K has the best output picture quality vs everything else I've used (I do not use Kodi on Intel).
I'm interested in better MrMC upscaling, might see if @davilla is interested in implementing something.

(2019-01-05, 19:09)fritsch Wrote: For future: I don't know as I personally don't have any plans that I could implement myself (everyday life + job). Therefore: Use the kennedy theorem :-) Don't ask what kodi can provide to you, but rather what you could provide for kodi.

LOL love it !

We need that on a Kodi Webpage somewhere, with a Big old Man with a Kodi hat on and a pointed finger !
Like those 'ol war posters. Wink

Reply
#11
Why not just use automatic resolution switching and output in 1080p?  The TV is made to accept a 1080p signal and display it, knowing that 90% of content is still in that format.
Reply
#12
(2019-01-06, 07:08)olevelo Wrote: Why not just use automatic resolution switching and output in 1080p?  The TV is made to accept a 1080p signal and display it, knowing that 90% of content is still in that format.
 Most TVs have worse upscaling quality than Lanczos3. Even my LG oled b7 has worse upscaling quality than Lanczos3. I compared it by running some files through the native Media Player of the TV and through Kodi and Kodi with Lanczos3 looked better. Same thing with Twitch.tv streams ran through Kodi + Lanczos3 vs the App "Game Streams" on LG store (both at source resolution of the stream).

And with SD content or 720p content it would still need to be upscaled form 576i to 1080p first by the media player, and then upscaled again by the 4K TV. Other things that also suck when you use resolution switching are quite low-res and blurry menu UI (f. e. if you use subtitles or simple menu UI navigation- it is very low res and looks like mud).

I find a good upscaling algorithm is the most optimal solution, because you also have no delays while the media player and the TV both switch resolution. And then with the newer TVs you have to calibrate the settings for different resolutions separately, which also is kind of a bummer to have to go through all that. It has several downsides to use resolution switching, even if you let the media player output 576i and 720p natively to the TV, its still not optimal.

@wrxtasy the hardware deinterlacing in the shield TV is noticeably worse than yadifx2, maybe not by much for 1080i content, but for SD content it is quite inferior. NV Shield hardware looks a bit more blurry and has more visible interlacing artefacts left compared to yadif. I gotta say that intel has quite good hardware deinterlacing (MCDI- Motion Compensated) which can totally be compared to Yadifx2 in terms of final image quality. It is not surprising too, seeing white papers like that: https://www.intel.com/content/dam/www/pr...lacing.pdf (Altera is owned by intel).
Looks like even intel cares more about video quality than Nvidia.
Reply
#13
(2019-01-06, 12:08)8-BaLL Wrote: I gotta say that intel has quite good hardware deinterlacing (MCDI- Motion Compensated) which can totally be compared to Yadifx2 in terms of final image quality. 

In my experience Intel MCDI seems to be noticeably better than YADIF 2x. (But then I prefer the results of w3fdif to yadif, and use w3fdif for offline deinterlacing of 4:2:2 content...)
Reply
#14
Yes, with Intel I would actually just use MCDI, which is hardware accelerated and save electricity, instead of running Yadif x2 in software.

Quote from the whitepaper in the link above:
Quote:Motion-Compensated Deinterlacing
Motion-compensated deinterlacing is the most advanced deinterlacing technique by far. While this technique is not
described in detail here, it uses the motion-compensation techniques generally used for video compression. The
technique looks at more than one field to determine motion for a block of pixels, then shifts the pixels to compensate
for the motion. This type of deinterlacing is the most computationally demanding technique, but has the best output
quality.

Yadif is by no means one of the best deinterlacing techniques, but is way better than default deinterlacing methods built into 99.9% of all ARM SoCs and it is rather easy on the cpu ressources, so many ARM socs can actually run Yadif in software.

For encoding, I wouldnt use Yadif, but rather QTGMC preset slow/very slow.
Reply
#15
(2019-01-06, 12:08)8-BaLL Wrote:
(2019-01-06, 07:08)olevelo Wrote: Why not just use automatic resolution switching and output in 1080p?  The TV is made to accept a 1080p signal and display it, knowing that 90% of content is still in that format.
 Most TVs have worse upscaling quality than Lanczos3...
I have a C8...will have to see if I can see any difference.  I just find it hard to believe that software is going to do a better job at upscaling than my $2000 tv.  The point about upscaling twice for SD content is valid though.  I'm having trouble finding the best way to play my DVD rips with the best resolution and framerate.
Reply

Logout Mark Read Team Forum Stats Members Help
Kodi 18 RC4 on Nvidia Shield TV - no Lanczos3, Spline36 upscaling.0