View Full Version : madVR 10-bit Display Support Test
Pages :
1
2
3
4
5
6
[
7]
8
9
10
11
12
13
6233638
7th September 2015, 15:54
Again, I don't understand why that is needed. If 8bit is selected in NVidia CP and 10bit is selected in madVR, the image is much smoother than if 8bit is selected in madVR. All that assuming no madVR dithering and proper settings.It is smoother because you are comparing 8-bit dithered to 8-bit undithered.
The driver is doing the dithering from 10-bit to 8-bit instead of madVR.
To get an actual 10-bit output, the output in the NVIDIA Control Panel must be set to ≥ 10-bit.
What bit depth output do modern "consumer" nvidia gpus support? Lots of threads say you need a quadro to get 10bit but that sounds wrong.You need to be using Windows 7 with Aero disabled and a Quadro if you want a 10-bit OpenGL output from Adobe's applications.
I thought that you also needed a FirePro/FireGL card from AMD if you wanted 10-bit support there too.
A full-screen exclusive D3D11 output can support > 8-bit on consumer GPUs.
The only two applications I am aware of which use this mode are madVR and the game Alien: Isolation (http://store.steampowered.com/app/214490/).
I don't understand why some 10bit displays cannot accept a 10bit input signal by default. It must be due to driver problems. Isn't a 10bit panel basically useless if it cannot accept a 10bit input?It's not entirely useless if the display has an internal LUT for calibration.
The internal processing/calibration can still be ≥ 10-bit despite the input only being 8-bit.
Performing that sort of processing in 8-bit would result in a lot of banding/posterization.
It would, of course, be best to preserve as much precision throughout the process as possible and send them a 10-bit input though. (or > 10-bit)
Eizo displays have 16-bit internal processing for example, so you would always want to perform calibration inside the display, rather than the GPU LUT.
Arm3nian
7th September 2015, 21:16
a 10 bit or 8 bit + FRC display with 8 bit input only can use this to lower the error on internal processing.
i don't know a 10 bit display that doesn't allow 10 bit input. 8 bit + FRC is more like a marketing thing to me anyway. i mean just look at a 6 bit + FRC it's smooth yes but it's nothing like a real 8 bit panel.
It's not entirely useless if the display has an internal LUT for calibration.
The internal processing/calibration can still be ≥ 10-bit despite the input only being 8-bit.
Performing that sort of processing in 8-bit would result in a lot of banding/posterization.
Yeah this explains that: http://www.eizo.com/library/basics/maximum_display_colors/
Eizo displays have 16-bit internal processing for example, so you would always want to perform calibration inside the display, rather than the GPU LUT.
The NEC display I linked doesn't have a high bit LUT but it does have 14bit internal processing. Are you saying giving madVR a 3D LUT would degrade color quality? Or are you talking about the higher end displays like this one http://www.necdisplay.com/p/desktop-monitors/pa322uhd-bk that have a 14bit 3D LUT built in. Or is this something completely different.
huhn
7th September 2015, 21:30
using madVR with a 3D LUT to calibrate your screen isn't lowering the quality.
some high end displays for photo usage have a pretty good color correction which maybe better than a 3d LUT, but i doubt this... with madVR you can create a 16 bit 256³ 3D LUT which is hard to beat.
the GPU gamma ramp is a bad joke avoid this if possible and thanks to madVR you can avoid it.
6233638
7th September 2015, 22:19
using madVR with a 3D LUT to calibrate your screen isn't lowering the quality.It depends on what the display's capabilities are.
If it has a 10-bit panel, but only accepts an 8-bit input, you would be better doing the calibration inside the display.
Even if the display is 8-bit+FRC it may be better to use internal processing, as the FRC may be operating at a much higher frequency than madVR. (which only dithers once per frame)
huhn
7th September 2015, 22:23
i highly doubt the controls can provide an as accurate picture as a 3d LUT in the first place.
and madVR dithering should be higher quality too. taking response time of LCD display into account i don't see how FRC can be any good even with an crappy TN.
nevcairiel
7th September 2015, 22:25
i highly doubt the controls can provide an as accurate picture as a 3d LUT in the first place.
Maybe, maybe not. But if your TV offers any decent CMS features, you should still use them to get as close to a good result as you can, and the finish it with a 3DLUT.
XMonarchY
16th September 2015, 19:47
How is FRC different from 10bit to 8bit driver dithering? I thought FRC was a TYPE of dithering.
Asmodian
17th September 2015, 02:57
FRC is temporal dithering while driver (or madVR) dithering is spacial dithering. I prefer spacial dithering, at least for 8 to 6-bit on LCDs as I have never specifically tested 10 to 8-bit dithering methods, but both techniques work.
It depends on what the display's capabilities are.
If it has a 10-bit panel, but only accepts an 8-bit input, you would be better doing the calibration inside the display.
Even if the display is 8-bit+FRC it may be better to use internal processing, as the FRC may be operating at a much higher frequency than madVR. (which only dithers once per frame)
Given pixel transition times is it possible to have an LCD dither much faster than the frame times? Do the manufactures know the color displayed during the transition and account for it in the dither algorithm?
XMonarchY
17th September 2015, 16:39
So in your opinion, 8bit input + 10bit to 8bit dithering by the driver provides better picture quality / gradient transitions than 10bit input on an 8bit + FRC display?
Wouldn't drive dithering occur regardless of the input/output bit depth, even on top of FRC?
I was also told that 12bit TV's do not exist, yet my TV allows for a 12bit input/output. Does that mean it is only 10bit + FRC dithering + driver dithering?
huhn
17th September 2015, 16:41
internal processing in TVs is easily 10 or 12 bit
XMonarchY
17th September 2015, 22:14
internal processing in TVs is easily 10 or 12 bit
I do not understand... Did you not say that there are NO TV's that can do 12bit? Are you saying they are all internal processing @ 12bit and then the actual LCD is only 8bit? So there are no true 10bit TV's and displays out there? How do you know this for a fact?
Asmodian
17th September 2015, 22:27
So in your opinion, 8bit input + 10bit to 8bit dithering by the driver provides better picture quality / gradient transitions than 10bit input on an 8bit + FRC display?
In my opinion having madVR dither to 6-bit is better than sending a 6-bit+FRC monitor 8-bit. I do not know how this translates to an 8-bit+FRC display but I would suspect I would prefer 8-bit dithered by madVR to sending 10-bit to the display but I could be wrong. As I said I have not tested this. I do not know why I would ever have the driver do the dithering.
I do not understand... Did you not say that there are NO TV's that can do 12bit?
That was when discussing panel bit-depth, internal processing bit-depth is not the same as panel bit-depth.
10-bit is the most any panel can actually display but it is possible for a TV to accept 12-bit input, do any internal processing in 14-bit, and then dither to 10-bit for display.
baii
17th September 2015, 22:30
Internal processing range from say 8 to 16 bit. For consumer color display, there aren't any panel more than 1
0 bit. True 10bit VA aren't that rare.
Sent from my 306SH
huhn
17th September 2015, 22:42
Internal processing range from say 8 to 16 bit. For consumer color display, there aren't any panel more than 1
0 bit. True 10bit VA aren't that rare.
Sent from my 306SH
the are going to be standard soon.
XMonarchY
20th September 2015, 05:27
OK, so why is it NVidia drivers, in my case, dither ONLY my FG2421 display, but not my Samsung HDTV when 8bit is selected for both? TV is connected via High Speed HDMI and FG2421 via DisplayPort.
Asmodian
20th September 2015, 06:22
OK, so why is it NVidia drivers, in my case, dither ONLY my FG2421 display, but not my Samsung HDTV when 8bit is selected for both? TV is connected via High Speed HDMI and FG2421 via DisplayPort.
I suppose it is because Nvdia still doesn't quite understand what it means to output video correctly. Checking for correct dithering might be hard in their QC process. :p
This is one of the reasons I always have madVR dither to the output bit-depth. It is hard to beat ED 1 or 2 and they add very little visible noise even if there is further processing by the display. Even ordered dithering is quite good and it is extremely low noise. :)
omarank
20th September 2015, 08:19
Note that only random dither will completely eliminate all banding, however this is at the cost of higher noise.
What about Error Diffusion Option 2 (low noise) at 10 bit? At 8 bit, it tends to show patterns, but at 10 bit those patterns should not be visible. Do you find that this option still doesn’t completely remove banding at 10 bit output?
pankov
20th September 2015, 11:22
OK, so why is it NVidia drivers, in my case, dither ONLY my FG2421 display, but not my Samsung HDTV when 8bit is selected for both? TV is connected via High Speed HDMI and FG2421 via DisplayPort.
XMonarchY,
why don't you connect the monitor also via HDMI (may be not at the same time as the TV if you don't have multiple HDMI ouputs) so you can rule out the output type causing the difference?
After all it's been so long that you discuss this topic and you should do your best to compare apples to apples not to oranges.
huhn
20th September 2015, 11:25
he should use AMD for this.
pankov
25th September 2015, 23:39
huhn,
I'm not saying that he should judge the supported bitdepth of his monitor but simply try to find why the two displays he uses behave differently.
After all it does sound strange that only one of them dithers, doesn't it?
huhn
26th September 2015, 00:00
and that's why AMD is way better to test this.
you have full control over the output bitdeep 12 bit 10 bit 8 bit or even 6 bit if possible. you can disable the drivers dithering.
nvidia is more than strange even with output set to 8 bit it is still sending a 12 bit signal to the end device when the driver gets more than 8 bit as an input. according to 6233638 it looks different which doesn't make a lot of sense. so it either is ignoring this setting for my TV and not for 6233638 or it is send 8 bit in 6233638 case.
6233638
26th September 2015, 01:39
nvidia is more than strange even with output set to 8 bit it is still sending a 12 bit signal to the end device when the driver gets more than 8 bit as an input. according to 6233638 it looks different which doesn't make a lot of sense. so it either is ignoring this setting for my TV and not for 6233638 or it is send 8 bit in 6233638 case.NVCP 8-bit, madVR 8-bit: 8-bit signal, no GPU dither
NVCP 8-bit, madVR 10-bit: 8-bits precision displayed, GPU dithers 10-bit > 8-bit
NVCP 12-bit, madVR 8-bit: 12-bit signal with 8-bits precision displayed, no GPU dither
NVCP 12-bit, madVR 10-bit: 12-bit signal with 10-bits precision displayed, no GPU dither
I don't know how to make it any more concise.
I do wish the forum supported tables though, it would make formatting easier.
What about Error Diffusion Option 2 (low noise) at 10 bit? At 8 bit, it tends to show patterns, but at 10 bit those patterns should not be visible. Do you find that this option still doesn’t completely remove banding at 10 bit output?The issue seems to be that any value which is equal to one in the output bit-depth has "no error" and thus will not have any dither applied to it when using error diffusion.
These areas without dither are distinct when they are next to areas which do have dither.
So it results in visible "bands" in the image, even though they are not errors due to imprecision.
Only random dither seems to eliminate this.
This comparison hopefully demonstrates the issue. I know that it can be difficult to see.
http://abload.de/img/dither-comparet5oik.gif
This image has those undithered bands marked to highlight the area you should be looking at. (http://abload.de/img/dither-2w4urd.gif)
10-bits is not enough precision to eliminate this, in my testing.
But it may depend on how much you notice banding. Some people are more sensitive to it than others.
huhn
26th September 2015, 03:12
NVCP 8-bit, madVR 10-bit: 8-bit signal, GPU dithers 10-bit > 8-bit
in this case it is still sending 12 bit and this doesn't make sense.
6233638
26th September 2015, 03:48
in this case it is still sending 12 bit and this doesn't make sense.Your display is reporting a 12-bit input, or the display is capable of showing 12-bit gradation?
My display does not report the input bit-depth, so it is possible that the signal is 12-bit.
Irrespective of the signal bit-depth, there is only 8-bits of precision in use.
huhn
26th September 2015, 05:17
the display was reporting 12 bit.
we talked about this before. just showing nvidia behaviour isn't transparent.
XMonarchY
1st October 2015, 00:30
If madVR's 10bit settings on an 8bit display can force 10bit to 8bit dithering from NVidia driver, then can't other applications do? There's got to be a registry entry or something that force 10bit to 8bit dithering. I also know AMD cards allow selection of 10bit on all displays, regardless of display's true bit-depth. That setting triggers 10bit to 8bit dithering on 8bit display, doesn't it? NVidia needs to step up with these kind of features.
huhn
1st October 2015, 02:32
If madVR's 10bit settings on an 8bit display can force 10bit to 8bit dithering from NVidia driver, then can't other applications do?
in theory yes. 10 bit output is rarely used.
There's got to be a registry entry or something that force 10bit to 8bit dithering. I also know AMD cards allow selection of 10bit on all displays, regardless of display's true bit-depth. That setting triggers 10bit to 8bit dithering on 8bit display, doesn't it? NVidia needs to step up with these kind of features.
AMD only let you select the bit deep the screen allows as an input. 10 bit isn't always possible: http://abload.de/img/amdbitdeeprrs6z.png
if the input in the driver is higher than the selected or possible bit deep it will dither to the selected bit deep with AMD. nvidia should do the same. and at least for me it does.
it took nvidia years to add limited range and full range as an option in the driver so...
XMonarchY
1st October 2015, 04:33
Gotcha!
BTW, I can still select 12bit output for my Samsung TV even without post-processing using "PC Mode" (4:4:4 direct pass-through mode or 1:1 pixel mode - it has many names, depending on the manufacturer). Does that mean that in that mode there isn't any internal 12bit LUT processing? It passes 10bit madVR test when 12bit is selected in NVidia CP with TV's "PC Mode" enabled. UNLIKE my monitor, this TV does NOT pass when 8bit is selected in NVidia CP and 10bit is selected in madVR - there is no 10bit-to-8bit dithering. However, I am more curious about how and why "PC Mode" manages to pass 10bit madVR test when 12bit is selected in NVidia CP. That means it either bypasses internal 12bit processing and just uses pure 10bit mode, doesn't it?
A few more odd things:
1. When I run ArgyllCMS bit-depth test (on desktop, not madVR), I get "unknown/undetermined" bit-depth result for my TV when its using 12bit setting in NVidia CP in BOTH - "Movie Mode" with post-processing (although all of it is disabled in TV options) and in "PC Mode". That means that "PC Mode" and "Movie Mode" both use internal 12bit processing. How can this be reconciled at all then?
2. Wen I use ArgyllCMS bit-depth test (on desktop, not madVR), I get "10bit depth" result for my Eizo monitor when it is using 8bit setting in NVidia CP!!! How is that possible? That would be possible only if NVidia dithers from 10bit-to-8bit by default, without madVR's request for 10bit, BUT that also makes no sense because in that case, 8bit NVidia setting and 8bit madVR setting would result in passing 10bit test (no visible banding on gradeints) since NVidia would dither from 10bit to 8bit by default, regardless of madVR's bit-depth setting!
huhn
1st October 2015, 06:14
Gotcha!
BTW, I can still select 12bit output for my Samsung TV even without post-processing using "PC Mode" (4:4:4 direct pass-through mode or 1:1 pixel mode - it has many names, depending on the manufacturer). Does that mean that in that mode there isn't any internal 12bit LUT processing? It passes 10bit madVR test when 12bit is selected in NVidia CP with TV's "PC Mode" enabled. UNLIKE my monitor, this TV does NOT pass when 8bit is selected in NVidia CP and 10bit is selected in madVR - there is no 10bit-to-8bit dithering. However, I am more curious about how and why "PC Mode" manages to pass 10bit madVR test when 12bit is selected in NVidia CP. That means it either bypasses internal 12bit processing and just uses pure 10bit mode, doesn't it?
it's a black box.
it could take the 12 bit with 10 bit information and always dither this to 8 bit in the first place before doing anything else.
or it could use 16 bit processing on it and dither at the end we don't know it a black box.
and setting at your TV shouldn't change the EDID and what the TV supports as input. but there is a chance a TV in gaming mode lowers internal processing for low input lag.
A few more odd things:
1. When I run ArgyllCMS bit-depth test (on desktop, not madVR), I get "unknown/undetermined" bit-depth result for my TV when its using 12bit setting in NVidia CP in BOTH - "Movie Mode" with post-processing (although all of it is disabled in TV options) and in "PC Mode". That means that "PC Mode" and "Movie Mode" both use internal 12bit processing. How can this be reconciled at all then?
you can't check internal processing with this test. the windows desktop is 8 bit and the picture send isn't worth anything more no matter if your meter reads this as 10 or 12 bit it just shows how powerful dither is.
2. Wen I use ArgyllCMS bit-depth test (on desktop, not madVR), I get "10bit depth" result for my Eizo monitor when it is using 8bit setting in NVidia CP!!! How is that possible? That would be possible only if NVidia dithers from 10bit-to-8bit by default, without madVR's request for 10bit, BUT that also makes no sense because in that case, 8bit NVidia setting and 8bit madVR setting would result in passing 10bit test (no visible banding on gradeints) since NVidia would dither from 10bit to 8bit by default, regardless of madVR's bit-depth setting!
as long as madVR isn't using d3d11 in FSE with 10 bit it is sending 8 bit (or lower) and if you haven't disabled dither it can be read easily as 11 or 12 bit. it doesn't matter what settings are used in NVIDIA the picture only holds 8 bit information nothing more in this case. it is technically not possible with the windows desktop
baii
1st October 2015, 16:30
Argyll bit depth test report video card gamma bit depth (dcg documentation). "The apparent VideoLUT entry number of significant bits." (From Argyll documentation)
Sent from my 306SH
panetesan2k6
2nd October 2015, 19:44
Hi.
I openend the gradient png in Photoshop. Even at 1:1 fullscreen I see banding. Then I follow the procedure and MadVR shows me no banding.
My equipment:
Win8.1 x64
GTX 970
Asus VS239 IPS
I gather that Windows only works in 8 bit color depth. There is no option to change color from 32bit to 40bit in the Nvidia panel.
Also, I understand that either the monitor accepts 10bit from MadVR FSE or the Nvidia driver is outputing 8bit after doing 10bit > 8bit+dithering.
huhn
2nd October 2015, 20:08
photoshop doesn't even dither and they want money for the tool?
panetesan2k6
2nd October 2015, 20:33
I moved on to test on my TV, this time through my laptop.
Win8.1 x64
Samsung B651 32"
Radeon Mobility HD5670
Before adding the "no dither" entry to the registry:
CCC: 8 bit RGB 4:4:4 Full
MadVR FSE = Smooth gradient.
MadVR no FSE = Banding gradients.
CCC: 10 bit RGB 4:4:4 Full
MadVR FSE = Smooth Gradient.
MadVR no FSE = Banding Gradient.
After adding the "no dither" entry to the registry:
CCC: 8 bit RGB 4:4:4 Full
MadVR FSE = Banding gradients.
MadVR no FSE = Banding gradients.
CCC: 10 bit RGB 4:4:4 Full
MadVR FSE = Smooth Gradient.
MadVR no FSE = Banding Gradient.
So...
-Either the display is not compatible with 8bit
-Either you need to set CCC to 10bit
-Either is not compatible with 8bit and setting CCC to 10bit only forces back dithering.
What do you think?
Tomorrow I will test the same TV with the GTX 970, just to see how interacts with the NVIDIA hardware.
huhn
2nd October 2015, 20:51
can you make a screen from the none FSE?
panetesan2k6
3rd October 2015, 03:22
can you make a screen from the none FSE?
I'm gonna make some more tests tomorrow and will take that screens.
I'm planning to cross tests between monitor/TV and laptop/desktop, just to try and narrow down what hardware is doing what.
So exciting :D
panetesan2k6
3rd October 2015, 04:16
Just wondering.
Let's assume I conclude that my Asus monitor can do 10 bit through this tests though it doesn't say so anywhere in specs... Why is not posible to set desktop color to 40bits? Is it because the EDID is telling the graphics card that the monitor can only do 8 bit? I would like to override this and try Windows in 40bit, mainly because photo editing.
huhn
3rd October 2015, 06:30
the reason is windows can't do 10 bit in desktop. you need a quadro card to do this with photpshop. and i guess an type of openGL overlay is used in this case to get 10 bit.
as long as the monitor EDID say it is 8 bit is will never get 10 bit from the GPU driver.
panetesan2k6
3rd October 2015, 12:07
Well, there you go.
http://s25.postimg.org/irhu62f0b/10bit_tests.jpg (http://postimg.org/image/irhu62f0b/)
I don't know what to think about the displays capabilities. Either:
A) Displays are capable of 10bit (assuming Nvidia is not dithering in any case) but Catalyst needs to be set to 10bit (if this NOT means bypassing the registry DWORD back to dithering...)
B) None of the displays are capable of 10bit; Nvidia is dithering always and Catalyst too, but if you disable dithering in the registry for Catalyst, it comes back on when selecting 10bit in CCC.
:rolleyes:
huhn
3rd October 2015, 20:07
the asus can't accept a 10 bit signal so nothing to bother about.
and did you disable dithering in madVR?
panetesan2k6
3rd October 2015, 20:17
the asus can't accept a 10 bit signal so nothing to bother about.
Then I have to assume that Nvidia dithered 10bit to 8bit, right?
If it were the monitor dithering, it would have done it as well in the other scenarios.
and did you disable dithering in madVR?
Yes.
huhn
3rd October 2015, 20:24
the monitor doesn't have an option to choice 10 bit so it never gets 10 bit.
everything is working as it should.
aufkrawall
3rd October 2015, 20:46
That AMD 8 bit dithering is probably also helpful in games?
Asmodian
3rd October 2015, 21:13
That AMD 8 bit dithering is probably also helpful in games?
No games are always rendered in 8-bit.
XMonarchY
3rd October 2015, 23:46
No games are always rendered in 8-bit.
Banding/gradients are smoother though. Also, some games, like Alien: Isolation, support 10bit and it can be enabled in options.
Asmodian
3rd October 2015, 23:58
Banding/gradients are smoother though. Also, some games, like Alien: Isolation, support 10bit and it can be enabled in options.
Maybe disabling AMD's dithering turns off dithering after a color calibration is applied?
When taking the 8-bit video rendered by a game and sending 8-bit to the monitor without processing a dithering step does not do anything.
That might be the only game that supports 10-bit output, I have never heard of a game that used >8-bit before.
That said I would never leave dithering disabled for normal use, you never know when there might be some processing that needs dithering after it.
panetesan2k6
4th October 2015, 11:36
the monitor doesn't have an option to choice 10 bit so it never gets 10 bit.
everything is working as it should.
Then, Nvidia was dithering when I got smooth gradients. No?
chros
4th October 2015, 11:47
i just tried my HD4400 with my TV.
madVR said the output is 10 bit but the FSE change is instant and the picture looks like undithered 8 bit.
so i guess the intel isn't outputting 10 bit at all.
it depends on gpu and display device.
for example,a playstation3(2006)can output 12bit full range through HDMI 1.3
and for my tv(a sony HX750),AMD card ouput bit depends on catalyst CC setting.NV card(a very old GT240) output 12bit in both 10bit/16bit D3D11 scan-out format.and Intel(HD4000) output 8bit in 10bit scan-out,and 12bit for 16bit scan-out format.
there is also a R10G10B10_XR_BIAS scan-out format mapping to xvYcc gamut.all 3 GPU above support that format but I can't comfirm if the HDMI signal is xvYcc.
So, has somebody managed to get 10bit output from an intel iGPU? (I have HD4000 with nvidia in muxless optimus mode, that means all the color properties are only in the intel control panel). Would xvColor setting help about this in intel control panel for my TV via HDMI? (my TV have the setting)
Thanks
omarank
5th October 2015, 06:01
The issue seems to be that any value which is equal to one in the output bit-depth has "no error" and thus will not have any dither applied to it when using error diffusion.
These areas without dither are distinct when they are next to areas which do have dither.
So it results in visible "bands" in the image, even though they are not errors due to imprecision.
Only random dither seems to eliminate this.
This comparison hopefully demonstrates the issue. I know that it can be difficult to see.
That’s a good demonstration. Does “change dither for every frame” option alleviate this issue of undithered bands?
6233638
7th October 2015, 18:30
That’s a good demonstration. Does “change dither for every frame” option alleviate this issue of undithered bands?No - that will change the pattern in any area which is dithered, but any area where there is "no error" would be unaffected by it.
XMonarchY
8th October 2015, 15:00
Maybe disabling AMD's dithering turns off dithering after a color calibration is applied?
When taking the 8-bit video rendered by a game and sending 8-bit to the monitor without processing a dithering step does not do anything.
That might be the only game that supports 10-bit output, I have never heard of a game that used >8-bit before.
That said I would never leave dithering disabled for normal use, you never know when there might be some processing that needs dithering after it.
There were a few other games that supported 10-bit color, but they were indeed very rare.
However, wouldn't 10bit to 8bit dithering or true 10bit still benefit gradients/banding in games?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.