• 1
  • 31
  • 32
  • 33(current)
  • 34
  • 35
  • 92
Release Kodi Matrix 19.0 HDR Windows API (merged)
(2020-02-10, 11:00)larsete Wrote: For me and many others, the reference on how Windows/GPU (Not Kodi problem) works internally on the RGB vs YCbCr thing, is still this "madshi" post: https://forum.doom9.org/showpost.php?p=1...ostcount=2

It should clarify a bit the internals, and also leaves the best option for those using the HTPC just for video content and for the ones using it for Desktop/Video-games also.
Hi

I know this post.

This post is 11 years old as is the article on HDMI on madshis HP.
On the HP article it is said that the testing was done using Windows XP - anyone old enough here to remember what that was [emoji23]? - and he said that in XP the chance of ycbcr processing is about 50% wit ATI and Nvidia.

Since then there has been a massive technological advancement in GPU and operating system technology (Win 7, 8 and 10) and drivers - nowdays everything is digital, mastering a whole movie is likely completely different today, and back in 2009 you could still buy and rent VHS cassettes!!

So just from those facts alone there is enough reason to re-evaluate this observation.



Edit /PS:
The most likely point of screwing up the source material, so that you could easily see a difference in quality, is when using RGB full, so letting the player, in our case, Kodi render the source in full mode - hence making a 16-235 source content into a 0-255 content this is what should be avoided - this is also stated in the Kodi wiki.

I still stand to the point that ycbcr for exclusive film content is best, followed by either:
GPU RGB full - Kodi limited - TV limit (no expansion here)
and GPU RGB limited - Kodi limited - TV limited is best.

Doing an expansion of source material by the player from 16-235 to 0-255 should be avoided but it might be the only solution for people who want to game from the same source machine
Reply
@ichkriegediekri 

May I suggest you have a read through Warner's detailed observations on the topic: https://forum.kodi.tv/showthread.php?tid=259188

Specifically post #2 where he goes in depth about the various chain possibilities. It appears Full Range throughout is among the best options to go with.
Reply
Yeah I know it's old, but he also edited it on 2017, probably to add the FreeSync part, but if something had changed on the RGB part, I think he would have edited that part as well. Taking into account MadVR is still being adapted to new Windows versions, I still think that's accurate, but I also think what you say might be in part true, as in nowadays maybe the YCbCr processing done by the GPU is good enough. But since I don't have all the knowledge/internals needed to judge for myself, I need to believe what others more involved in that kind of development say.

In any case, there are many testing patterns available so we can choose what it looks better to us in the end Smile
Reply
Damn guys, didn't meant to hijack this thread.

Thanks for the input! There seems to be a lot going on and I don't follow ALL the technical details. But the discussions is allready here and I was wondering one more thing:

8 bit (SDR): you get 256 shades of each primary color (and off course the discussion with limited and full range)

But my question was more related to a 10-bit HDR file...
10 bit (HDR): you get 1,024 shades of each primary color
Does the discussion of limited (16-235) and full range (0-255) still apply? And what to do with the sliders in Kodi and Intel graphics center then?
Or am I misunderstanding something here?


EDIT:
I Also read topic 259188 as suggested by Cinephile. I understand that videolevels and bithdepth are two diffterent things...
Windows 10 Pro (64bit), Kodi v19.1 "Matrix"
Intel NUC8i3BEH (Samsung 970 Evo, G. Skill Ripjaws 8GB)
Samsung UE49KS7000, Logitech Harmony remote 350
AudioEngine D1, Synology DS218j NAS (SMB protocol)
Reply
(2020-02-10, 14:17)Cinephile Wrote: @ichkriegediekri 

May I suggest you have a read through Warner's detailed observations on the topic: https://forum.kodi.tv/showthread.php?tid=259188

Specifically post #2 where he goes in depth about the various chain possibilities. It appears Full Range throughout is among the best options to go with.
K, I'll take a look
Reply
(2020-02-10, 14:36)Zokkel Wrote: 8 bit (SDR): you get 256 shades of each primary color (and off course the discussion with limited and full range)

But my question was more related to a 10-bit HDR file...
10 bit (HDR): you get 1,024 shades of each primary color
Does the discussion of limited (16-235) and full range (0-255) still apply? And what to do with the sliders in Kodi and Intel graphics center then?
Or am I misunderstanding something here?

Unfortunately it doesn't change much.

The "only" difference is each video component has 1024 steps. But limited vs full is still here:

In limited range below 64 is black....   (only multiply 8-bit values by 4)

The good thing is that even losing some values at the ends there are many more steps available and the banding will be invaluable.


If everything is set correctly, it is not necessary to change any setting (in graphics control panel / TV / Kodi settings) to be able to enjoy HDR and SDR mixed content. Only manual HDR toggle / F11.
Reply
@Cinephile

From this other thread, page 1, in the 2nd post:

“If your PC is a dedicated HTPC, you might consider this approach:


(madVR) TV levels (16-235) -> (media front-end) Use limited color range (16-235) -> (GPU) Full Range RGB 0-255 -> (Display) Output as RGB 16-235“

Here recommended is NOT to use FULL RGB for the whole chain and it is recommended to avoid expanding the video levels by the video player from 16-235 to 0-255 - just as I said this is really a bad idea.
The compromise in picture quality for RGB full for the whole chain only makes if you do gaming on the same source PC - otherwise it should be avoided.

And if I setup my PC and TV with this chain HDR does not work, colors are washed out.


PS:
Sorry for hijacking this thread, maybe we can move those posts to new thread in the next days to clear this up and just make a reference in here somewhere
Reply
(2020-02-10, 15:15)jogal Wrote:
(2020-02-10, 14:36)Zokkel Wrote: 8 bit (SDR): you get 256 shades of each primary color (and off course the discussion with limited and full range)

But my question was more related to a 10-bit HDR file...
10 bit (HDR): you get 1,024 shades of each primary color
Does the discussion of limited (16-235) and full range (0-255) still apply? And what to do with the sliders in Kodi and Intel graphics center then?
Or am I misunderstanding something here?

Unfortunately it doesn't change much.

The "only" difference is each video component has 1024 steps. But limited vs full is still here:

In limited range below 64 is black....   (only multiply 8-bit values by 4)

The good thing is that even losing some values at the ends there are many more steps available and the banding will be invaluable.


If everything is set correctly, it is not necessary to change any setting (in graphics control panel / TV / Kodi settings) to be able to enjoy HDR and SDR mixed content. Only manual HDR toggle / F11.  
Well, This was actually the answer I was waiting for Smile
I'm happy with my chain (Limited-Full-Limited) and I don't have to change anything for playing 10bit HDR files on this build (who plays 10bit HDR flawless on my setup btw!)
So again thanks!
Windows 10 Pro (64bit), Kodi v19.1 "Matrix"
Intel NUC8i3BEH (Samsung 970 Evo, G. Skill Ripjaws 8GB)
Samsung UE49KS7000, Logitech Harmony remote 350
AudioEngine D1, Synology DS218j NAS (SMB protocol)
Reply
(2020-02-10, 15:26)ichkriegediekri Wrote: @Cinephile

From this other thread, page 1, in the 2nd post:

“If your PC is a dedicated HTPC, you might consider this approach:


(madVR) TV levels (16-235) -> (media front-end) Use limited color range (16-235) -> (GPU) Full Range RGB 0-255 -> (Display) Output as RGB 16-235“

Here recommended is NOT to use FULL RGB for the whole chain and it is recommended to avoid expanding the video levels by the video player from 16-235 to 0-255 - just as I said this is really a bad idea.
The compromise in picture quality for RGB full for the whole chain only makes if you do gaming on the same source PC - otherwise it should be avoided.

And if I setup my PC and TV with this chain HDR does not work, colors are washed out.


PS:
Sorry for hijacking this thread, maybe we can move those posts to new thread in the next days to clear this up and just make a reference in here somewhere
Sure, but then he goes on to say under Option 3:
Quote:This is usually the optimal setting for those with displays and GPUs supporting full range output (the majority of users).
So whilst Option 2 is certainly going to work, Option 3 seems more desirable.
Reply
(2020-02-11, 01:14)Cinephile Wrote:
(2020-02-10, 15:26)ichkriegediekri Wrote: @Cinephile

From this other thread, page 1, in the 2nd post:

“If your PC is a dedicated HTPC, you might consider this approach:


(madVR) TV levels (16-235) -> (media front-end) Use limited color range (16-235) -> (GPU) Full Range RGB 0-255 -> (Display) Output as RGB 16-235“

Here recommended is NOT to use FULL RGB for the whole chain and it is recommended to avoid expanding the video levels by the video player from 16-235 to 0-255 - just as I said this is really a bad idea.
The compromise in picture quality for RGB full for the whole chain only makes if you do gaming on the same source PC - otherwise it should be avoided.

And if I setup my PC and TV with this chain HDR does not work, colors are washed out.


PS:
Sorry for hijacking this thread, maybe we can move those posts to new thread in the next days to clear this up and just make a reference in here somewhere
Sure, but then he goes on to say under Option 3:
Quote:This is usually the optimal setting for those with displays and GPUs supporting full range output (the majority of users).
So whilst Option 2 is certainly going to work, Option 3 seems more desirable.
I should have made that clearer, though I thought it's obvious:

Warner is using MadVR, and we are NOT!!

MadVR is a lot better and cleverer, that is why option 3 is OK with MadVR but not with Kodi player - because MadVR does Not expand 16-235 to 0-255, it will clip below 16 and above 235 it and leave the levels 16-235 untouched - this way option 3 has the same result with MadVR as option 2 (option 2 is necessary if the TV only accepts limited - but here was explained that expanding is not recommended )

So it is perfectly correct that expansion from 16-235 to 0-255 should be avoided - hence:
GPU full - Kodi full - TV full is NOT the best setup as it will alter the image quality - if anyone can prove that Kodi does indeed clip like MadVR does I will revoke my opinion (though that which is unlikely because then Kodi would not need a dithering option) but until then my point stands and is valid.
Reply
I think the only reason we're discussing this, is because jogals last version is working great and we have nothing left to say Big Grin . So now the only thing we can do, is nitpick over fine-tuning our set-up. But if this discussion could be moved to a separate thread, it would be better.
Reply
(2020-02-11, 08:41)Statler1978 Wrote: I think the only reason we're discussing this, is because jogals last version is working great and we have nothing left to say Big Grin . So now the only thing we can do, is nitpick over fine-tuning our set-up. But if this discussion could be moved to a separate thread, it would be better.
Well since we are discussing HDR it's a bit more than splitting hairs.

HDR comes with UHD resolution and both exist to deliver high quality video content - so I would assume that the basic setup of the graphical processing is quite important. Otherwise why would you want to buy a OLED, Qled TV for 1500 bucks if you don't want quality content.
So screwing up the content inside the PC should be avoided, and obviously there is lot of misconception in this regard.

On the technical side:
Kodi works on PCs and for a final release we should try to test as many setups as possible to guarantee that as many users can benefit from the HDR option.

So far I only could get HDR to display correctly with the following setup:

GPU RGB full - Kodi full - TV RGB full - this as shown in the posts above is not a desired setup since it does alter the image quality by expanding the video levels on the PC with Kodi (with MadVR it is OK to use) - I can see that in mostly dark scenes, it introduces banding.


HDR does not work for me with:

GPU RGB full - Kodi limited - TV RGB limited - this is the recommended setup for Kodi on the Kodi wiki page.
For me this introduces extremely washed out colors in HDR mode

GPU ycbcr - Kodi limited - TV limited - HDR not working, washed out colors.

GPU RGB limites - Kodi limited - TV RGB limited - not tested yet

My hardware:
AMD Ryzen 2200g APU, Denon x6200 AVR, Panasonic OLED 2018

I encourage everyone to test those setup so that we can see what is working and what is not on different hardware configurations so that we get a broad compatibility in a final and official build.
Reply
ISTM that a couple things can be said:

1.  For any conversion of YCbCr to RGB, if the source is 4:2:2 or 4:2:0. the chroma have to be interpolated to provide 4:4:4 (but, since the reduction to 4:2:0 is considered to have no perception loss, interpolating shouldn't causes a problem).

2.  In doing the matrix math from YCbCr to RGB, ISTM there is the possibility of values outside of 16 and 235/240 so if you restrict your output to "limited" you have to decide what to do with the outliers.  Clip is one solution but that obviously throws away data.

3.  Since the data are gamma or PQ adjusted, the impact of losing data is probably different at different intensities. 

scott s.
.
Reply
(2020-02-12, 03:41)scott967 Wrote: ISTM that a couple things can be said:

1.  For any conversion of YCbCr to RGB, if the source is 4:2:2 or 4:2:0. the chroma have to be interpolated to provide 4:4:4 (but, since the reduction to 4:2:0 is considered to have no perception loss, interpolating shouldn't causes a problem).

2.  In doing the matrix math from YCbCr to RGB, ISTM there is the possibility of values outside of 16 and 235/240 so if you restrict your output to "limited" you have to decide what to do with the outliers.  Clip is one solution but that obviously throws away data.

3.  Since the data are gamma or PQ adjusted, the impact of losing data is probably different at different intensities. 

scott s.
.
Correct.

And this means that staying in ycbcr is optimal in theory. However if Kodi renders RGB only it depends on the TV set what will display better.
Besides that another reason NOT to use RGB with Kodi is:

Anyone who is using an AVR has 1 cable from the AVR to the TV.
So all sources that are connected to the AVR need to have the same colorspace in order for the TV to display it correctly - DVD/BluRay Player and setop boxes of any kind use ycbcr - so unless someone wants to change the TVs setting for that specific input depending on the source ycbcr will be most reliable here - I know that there is Auto-signaling with auto detection but that doesn't always work
Reply
While I understand the attractiveness of going the Limited, Full, Limited way, I wanted to add that this is a Windows build. I obviously don't have *any* statistics to prove my thinking but I'd be led to believe that there are not so many Windows Kodi machine where the PC is used *only* for Kodi. A Windows HTPC allows you to browse, to play games... having all other colors "wrong" I think it's not too attractive for many, many users.

But again, maybe I'm in the minority in wanting to use my PC for more than just video playback (plus, since I currently still use DSPlayer with madVR I'm just chiming in for "academic" reasons).
For troubleshooting and bug reporting please make sure you read this first (usually it's enough to follow instructions in the second post).
Reply
  • 1
  • 31
  • 32
  • 33(current)
  • 34
  • 35
  • 92

Logout Mark Read Team Forum Stats Members Help
Kodi Matrix 19.0 HDR Windows API (merged)2