View Full Version : madVR - high quality video renderer (GPU assisted)
madshi
11th May 2015, 18:32
I'm also not sure if the display dithers or maybe the GPU. It's really hard to say. In the end, we can only compare and use whichever mode looks best to our eyes.
James Freeman
11th May 2015, 18:33
Personally, I find its much more obvious on that particular pattern if you disable debanding, since debanding is a dithering algorithm in itself.
NO, don't disable debanding, that is the whole point !!
This gradient video by itself is NOT smooth that is why I use debanding to make it smooth because of 16bit madVR's processing.
Of course you'll see the gradients of this video with debanding disabled!
The whole point is to have a true 16bit smooth gradient and output true 8bit or 10 bit pattern without Dithering (which should be disabled).
A true 16bit gradient video would be ideal.. Where is VerGreeneyes when you need him.
This make all the difference!! Now I can see the change. Even in 10-bit I still can differentiate the gradient bars.
I suppose this is confirmation then :)
Confirmation of what? That your TV does not support 10bit?
Devrim
11th May 2015, 18:34
A DX9 game fullscreen and madvr in Direct3D11 mode seems to be a no go, is this a known limitation or bug?
madshi
11th May 2015, 18:38
NO, don't disable debanding, that is the whole point !!
This gradient video by itself is NOT smooth that is why I use debanding to make it smooth because of 16bit madvr processing.
A true 16bit gradient video would be ideal.. Where is VerGreeneyes when you need him.
Simply use the madTestPattern "smallramp.ytp" and zoom it to fullscreen (not with DXVA). That will give you near 16bit without any dithering in it.
A DX9 game fullscreen and madvr in Direct3D11 mode seems to be a no go, is this a known limitation or bug?
Didn't know that, but there's probably nothing I can do anything about it.
madshi
11th May 2015, 18:43
madVR v0.88.3 released
http://madshi.net/madVR.zip
* fixed another media player shutdown crash/freeze
* LGPL issue fixed: changing "legal stuff\nnedi3ocl.cl" takes effect now
* LGPL issue fixed: changing "legal stuff\Shiandow\*" takes effect now
phoenix369
11th May 2015, 18:43
Confirmation of what? That your TV does not support 10bit?
Well I thought the contrary, that it does support 10-bit.:confused:
When I switch to FSE in 10-bit I can see the banding in the gradient clearly. Non FSE 10-bit looked like 8-bit. Is this the expected result for a 10-bit panel?
Moony349
11th May 2015, 18:52
I have both a 10-bit capable LCD TV (Vizio M602i-B3) and a not sure-bit capable Plasma (Panasonic P55UT50) connected to my PC via up to 16-bit per channel active hdmi cables. For what it's worth, using grayscale ramps:
I can't really tell on the Pano plasma. I suspect this is either because the TV itself does a lot of dithering and/or it's not 10-bit capable. Anyway, I can't really see a difference so I've left it at 10-bit. There's definitely no degradation; so, my assumption is that it's either the same or marginally better.
The 10-bit capable LCD looks a lot better; even with error correction on. The gradients are super smooth in both 8 bit and 10 bit but I can see an improvement.
Overall, I'm a fan. I can't see any drawbacks to outputting 10-bit.
EDIT: Even though I haven't seen any drawbacks to 10-bit, I definitely wouldn't try to output 10-bit over, say, single-link dvi or an old hdmi cable. I wonder if it would be possible to create a test for this; say; by putting 8-bit and 10-bit grayscale ramps next to one another.
James Freeman
11th May 2015, 18:58
Simply use the madTestPattern "smallramp.ytp" and zoom it to fullscreen (not with DXVA). That will give you near 16bit without any dithering in it.
True, this will do but with x86 version of madVR only.
madshi
11th May 2015, 19:03
The madVR debanding algorithm works by doing some kind of dithering. That's what nevcairiel meant. It's better to zoom "smallramp.ytp" because that will give a noise-free very smooth ramp.
In the new version same issues with the not filled render queue, and the present stats peaking from D3D9 0.10ms to 0,80 ms with D3D11, nvidia gtx 550ti, 350.12.
madshi
11th May 2015, 19:18
@Siso, I've lost overview of whom I asked this and whom I didn't: In your GPU control panel, have you set the "Max Pre-Rendered Frames" to "application controlled"? If you have, then I've no idea what's causing the issue for you.
James Freeman
11th May 2015, 19:22
In the new version same issues with the not filled render queue,
Same here, but only in windowed mode.
In FSE the render queues are filling as they should.
Maybe Aero is limiting this queue somehow?
madshi
11th May 2015, 19:24
Not in Windows 8.1 x64, at least. Works fine here with all Intel, NVidia and AMD GPUs.
Same here, but only in windowed mode.
In FSE the render queues are filling as they should.
Maybe Aero is limiting this queue somehow?
Could be, I'll test in FSE. I'm on win 7 x64.
PS:just tested in FSE, the queues are filling, and an odd thing, if i set present frames in advance to 10, it limits the present queue to 8-9/10,if i set it to 8 frames in advance it is 7-8/8, how it should be, also the average present time starts from 2.00ms and it drops every second, while the max present stats are 0.11ms - 0.12 ms.
@madshi, on 88.3, everytime I drag a VIDEO.TS file onto MPC-HC64, get madvr crash report....arg. Works fine with 88.2. Happens everytime, you want the crash report?
meh, happening with MC20 too.... 88.2 works fine....sent the crash report from MC20...
There is a function in windows, called "print screen", there is even a key like that on your keyboard.... :)
MAN
I KNOW IT
I WAS IN FSE
THATS WHY I ASKED
THATS WHY IT DIDNT WORK
peace
yok833
11th May 2015, 19:41
Last build didn't seems to work here... when I launch mpchc I have a message "please wait a moment" and madvr crash immediadely...When I revert to 88.2 everthing is ok... I have just sended a bug report.....
iSunrise
11th May 2015, 19:42
madshi, I get an instant crash with 0.88.3 right after loading a movie (MPC-HC or PotPlayer, doesn't matter, happens in both).
100% reproducible, 0.88.1 works fine.
It shows an "Information - Please wait a moment..." window and directly afterwards it shows a "An error occured in madVR." bug report window, which I submitted, hope this helps.
If you need more info, please ask.
James Freeman
11th May 2015, 19:48
madVR 10-bit Display Support Test is here: http://forum.doom9.org/showthread.php?t=172128
Less pollution more solutions.... lame I know. :p
madshi
11th May 2015, 19:57
Does this one fix the crashes?
http://madshi.net/madVR883fix.rar
iSunrise
11th May 2015, 20:01
Does this one fix the crashes?
http://madshi.net/madVR883fix.rar
Unfortunately not :/
Do you need another crash report with the fix in place?
yok833
11th May 2015, 20:05
Unfortunately not :/
Do you need another crash report with the fix in place?
Nope... I have sent another bug report
madshi
11th May 2015, 20:13
Hmmmm... This build should show a MessageBox and then close the media player:
http://madshi.net/madVR883test.rar
What does the MessageBox say? (And why oh why do these crashes *never* occur on my PC!?!?!?)
luk008
11th May 2015, 20:16
Thanks for the new release, madshi.
10-bit Display Support Test
This test will make it easier to see if your display actually supports 10bit input to output.
I've just done your test and the banding is different from 8 bit to 10 bit in my LG LB6500 42". The 10 bit banding is almost imperceptible compared to 8 bit.
The only thing I found strange is that 10 bit color depth is not available at my catalyst options menu (only 8 is available). I've thought that my TV was 8 bit only (if it really were 8 bit only the banding from 10 and 9 would be the same, right?).
With 10 bit I don't need to use the madvr dithering right?
iSunrise
11th May 2015, 20:16
Hmmmm... This build should show a MessageBox and then close the media player:
http://madshi.net/madVR883test.rar
What does the MessageBox say? (And why oh why do these crashes *never* occur on my PC!?!?!?)
http://abload.de/img/0.88.3_crash_infocgubq.png
madshi
11th May 2015, 20:20
Thanks. Does this one fix it?
http://madshi.net/madVR883fix2.rar
James Freeman
11th May 2015, 20:20
I've thought that my TV was 8 bit only (if it really were 8 bit only the banding from 10 and 9 would be the same, right?).
Correct, that's the whole point.
With 10 bit I don't need to use the madvr dithering right?
NO, you should always use dithering; 1024 points is still not enough mathematically, even though visually it is (in 1000:1 display).
Dithered 10bit is more like 13-14bit visually..
The only thing I found strange is that 10 bit color depth is not available at my catalyst options menu (only 8 is available).
The OS is 8bit as always, but Direct3D 11 allows 10 and 16 bit when in exclusive fullscreen mode and not only in madVR.
Lets move this 10-bit Display Support Test discussion to this thread: http://forum.doom9.org/showthread.php?t=172128
iSunrise
11th May 2015, 20:22
Thanks. Does this one fix it?
http://madshi.net/madVR883fix2.rar
Fixed. :)
Mind me asking, what the problem was that only some people like me got that? Is it a workaround or was it just an oversight with the code?
Thanks. Does this one fix it?
http://madshi.net/madVR883fix2.rar
yep, here on MPC-HC and MC20
madshi
11th May 2015, 20:26
Was a stupid bug on my side, which seemingly Windows 8.1 x64 didn't have a problem with. My best guess is that Windows 7 didn't like it.
James Freeman
11th May 2015, 20:28
Was a stupid bug on my side, which seemingly Windows 8.1 x64 didn't have a problem with. My best guess is that Windows 7 didn't like it.
Nope.
W7 64 over here, and the first 88.3 worked fine.
madshi
11th May 2015, 20:28
madVR v0.88.4 released
http://madshi.net/madVR.zip
* fixed startup crash in Windows 7, introduced in v0.88.3
* NNEDI3 doubling: chroma is now always upscaled with max 2 taps
Razoola
11th May 2015, 20:49
088.4 has seemed to fix a lot of issues I was having with MPC-HC not closing down correctly :)
iSunrise
11th May 2015, 20:50
* NNEDI3 doubling: chroma is now always upscaled with max 2 taps
Can you please explain the last two changes regarding NNEDI3 chroma doubling in a bit more detail?
I guess you removed NNEDI3 chroma doubling, because there really was no use case for it and no one could see differences?* What exactly is the second change, I am not sure I understand it and what your intention with that change is?
Thanks!
*I think I remember that chroma upscaling was used first anyway and when you do image doubling afterwards, you basically already have a fully upsampled chroma so the whole image (chroma+luma) is doubled, so no need for chroma doubling anymore. Correct?
yok833
11th May 2015, 20:53
madVR v0.88.4 released
http://madshi.net/madVR.zip
* fixed startup crash in Windows 7, introduced in v0.88.3
* NNEDI3 doubling: chroma is now always upscaled with max 2 taps
Many thanks Madshi.... :) I dream that one day the developers from nvidia fix their firmwares as fast as you do :)
madshi
11th May 2015, 21:25
Can you please explain the last two changes regarding NNEDI3 chroma doubling in a bit more detail?
I guess you removed NNEDI3 chroma doubling, because there really was no use case for it and no one could see differences?* What exactly is the second change, I am not sure I understand it and what your intention with that change is?
When doing image doubling, the "input" into the doubling algorithm is always RGB. When using NNEDI3 for doubling, this RGB image is then split into Luma and Chroma. Luma is doubled with NNEDI3. Chroma is doubled by using the "image upscaling" algorithm - but only if it has less than 3 taps. If the "image upscaling" algorithm has 3 taps or more, madVR doubles Chroma by using Catmull-Rom instead. I've implemented these changes because the algorithm used for Chroma doubling is very very unimportant, so it's no use wasting precious GPU processing time there.
iSunrise
11th May 2015, 21:30
Wow! I cannot believe it. This is just great.
Even though all information I could find about firmware and internals said otherwise, my Eizo CG243W does indeed accept full 10bit input over a single-link DVI-D connection (it doesn't have dual-link).
For anyone that is interested, I am testing with LightIllusion's official calibration images (.TIF) in 16bit (48bit) precision, where I can clearly discern differences between 8bit and 10bit. And I didn't expect that I could even tell them apart, but I clearly can. The pattern is completely smooth, like a baby's arse (so to speak). Huge improvement compared to 8bit. Didn't expect that at all.
Finally I am able to use my expensive CG also for maximum precision movie playback! Perfect!
Thank you so much madshi for creating madVR, this is another of these times when I am completely astounded by your work. Just...genius.
One very big important thing though:
It only works in FSE mode, so don't get fooled when it doesn't work in windowed, you have to be in FSE.
Anima123
11th May 2015, 21:32
madVR v0.88.4 released
http://madshi.net/madVR.zip
* fixed startup crash in Windows 7, introduced in v0.88.3
* NNEDI3 doubling: chroma is now always upscaled with max 2 taps
Can someone confirm that the dithering of Error Diffusion not working anymore? I mostly judge by the rendering time not increasing when enabled, unlike before.
iSunrise
11th May 2015, 21:35
Can someone confirm that the dithering of Error Diffusion not working anymore? I mostly judge by the rendering time not increasing when enabled, unlike before.
Works just fine for me.
You can easily test it if you go to the display's native bitdepth setting and set something very low like 2bit. When you enable any of the dithering options they all work as intended, you get a lot more precision as a result (lots of dots).
madshi
11th May 2015, 21:44
Wow! I cannot believe it. This is just great.
Even though all information I could find about firmware and internals said otherwise, my Eizo CG243W does indeed accept full 10bit input over a single-link DVI-D connection (it doesn't have dual-link).
For anyone that is interested, I am testing with LightIllusion's official calibration images (.TIF) in 16bit (48bit) precision, where I can clearly discern differences between 8bit and 10bit. And I didn't expect that I could even tell them apart, but I clearly can. The pattern is completely smooth, like a baby's arse (so to speak). Huge improvement compared to 8bit. Didn't expect that at all.
Is that with dithering enabled or disabled? FWIW, if 10bit works correctly from start to finish, if you enable dithering, you should not see any difference in smoothness, but you should see a lower noise floor in 10bit compared to 8bit. Is that what you're seeing?
Can someone confirm that the dithering of Error Diffusion not working anymore? I mostly judge by the rendering time not increasing when enabled, unlike before.
It's working fine here. However, with active 10bit output (in D3D11 FSE mode) error diffusion is disabled automatically and ordered dithering is used instead. The reason for that is that at 10bit, the quality of the dithering should play no role for image quality, anymore. This only applies to 10bit FSE mode, though. In windowed mode (which is always max 8bit) error diffusion is still used.
JarrettH
11th May 2015, 21:55
Try Lanczos3 AR instead. Or even Catmull Rom AA. If you're using image doubling + quadrupling, the image upscaling algorithm is much less important, and it's used for upscaling the chroma part of the image, when using NNEDI3 for image doubling.
Could you expand on that? What effect does the choice of luma upscaling have on image doubling? Is only chroma upscaling happening?
What happens with image doubling?
If my video is 1280x720, does it then become 2560x1440, then downscaled to fit my 1080p screen?
:thanks:
iSunrise
11th May 2015, 21:58
Is that with dithering enabled or disabled? FWIW, if 10bit works correctly from start to finish, if you enable dithering, you should not see any difference in smoothness, but you should see a lower noise floor in 10bit compared to 8bit. Is that what you're seeing?
I basically disabled dithering and worked my way up from 2bit to fnally 10bit, where the important step from 8bit to 10bit is making a huge difference. When I am at 8bit I can still see very tiny "lines" from top to bottom [with the described 16bit (48bit) BWramp] and with 10bit I cannot discern any gradient steps anymore with my eyes, even when my nose is glued to the display. It's like a B&W rainbow with too many steps that I cannot make out anymore. Completely smooth.
About the additional dithering, yes, that should indeed lead to a lower noise floor, since your output is fp16, right? When judging purely with my eyes, though, 10bit seems to be the absolute limit that I can personally perceive (on this display at least). The additional dithering may just be the icing on the cake.
What happens with image doubling?
If my video is 1280x720, does it then become 2560x1440, then downscaled to fit my 1080p screen?
:thanks:
that's how image doubling works. and the reason i think 1.2x or always are a total waste.
Asmodian
11th May 2015, 22:11
Could you expand on that? What effect does the choice of luma upscaling have on image doubling? Is only chroma upscaling happening?
What happens with image doubling?
If my video is 1280x720, does it then become 2560x1440, then downscaled to fit my 1080p screen?
In your example:
1280x720 luma is doubled to 2560x1440 and then scaled to 1920x1080 with image downscaling.
1280x720 chroma is scaled to 1920x1080 with image upscaling.
madshi
11th May 2015, 22:25
I basically disabled dithering and worked my way up from 2bit to fnally 10bit, where the important step from 8bit to 10bit is making a huge difference. When I am at 8bit I can still see very tiny "lines" from top to bottom [with the described 16bit (48bit) BWramp] and with 10bit I cannot discern any gradient steps anymore with my eyes, even when my nose is glued to the display. It's like a B&W rainbow with too many steps that I cannot make out anymore. Completely smooth.
About the additional dithering, yes, that should indeed lead to a lower noise floor, since your output is fp16, right? When judging purely with my eyes, though, 10bit seems to be the absolute limit that I can personally perceive (on this display at least). The additional dithering may just be the icing on the cake.
Ok, disabling dithering is a valid test, but only for checking if there's any difference between 8bit and 10bit output at all. You should always have dithering enabled in real life. So that's what you should test with, in order to decide whether using 10bit output has any real benefit. So I would recommend to enable dithering again and then check if you can see any difference in image quality between 8bit and 10bit.
Moony349
11th May 2015, 22:39
When doing image doubling, the "input" into the doubling algorithm is always RGB. When using NNEDI3 for doubling, this RGB image is then split into Luma and Chroma. Luma is doubled with NNEDI3. Chroma is doubled by using the "image upscaling" algorithm - but only if it has less than 3 taps. If the "image upscaling" algorithm has 3 taps or more, madVR doubles Chroma by using Catmull-Rom instead. I've implemented these changes because the algorithm used for Chroma doubling is very very unimportant, so it's no use wasting precious GPU processing time there.
http://i.imgur.com/QDKCs85.png
Hi madshi,
So if I understand correctly, we should ignore the chroma > Jinc3 AR above and, going forward, MadVR defaults to Catmull-Rom for chroma if NNEDI3 is used for luma?
Anima123
11th May 2015, 22:41
Is that with dithering enabled or disabled? FWIW, if 10bit works correctly from start to finish, if you enable dithering, you should not see any difference in smoothness, but you should see a lower noise floor in 10bit compared to 8bit. Is that what you're seeing?
According to the GPU usage, I am afraid dithering fall back to ordered dithering all the time even with 8-bit output. Could you please double check?
I didn't encounter such problem with previous versions.
nevcairiel
11th May 2015, 22:43
So if I understand correctly, we should ignore the chroma > Jinc3 AR above and, going forward, MadVR defaults to Catmull-Rom for chroma if NNEDI3 is used for luma?
It even tells you this in the second Chroma line.
First, 4:2:0 Chroma is upscaled to 4:4:4/RGB using your selected chroma upscaling algorithm. Then image doubling is used for Luma, and the chroma is upscaled further using Catmull-Rom AR.
aufkrawall
11th May 2015, 22:44
I found out that my problem with NNEDI3 + FineSharp afterwards is caused by image quadrupling.
Doubling 64 + FS works fine, but additional quadroupling 64 produces corruption and NV driver failure.
Anyone confirm? Be sure that quadrupling is actually active.
I found out that my problem with NNEDI3 + FineSharp afterwards is caused by image quadrupling.
Doubling 64 + FS works fine, but additional quadroupling 64 produces corruption and NV driver failure.
Anyone confirm? Be sure that quadrupling is actually active.
Finesharp (and luma sharp) works fine with quadrupling, it's super res that crashes in this situation for me, lol :confused:
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.