Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 13th May 2015, 19:46   #29881  |  Link
ibius
Registered User
 
Join Date: Jan 2005
Location: Germany
Posts: 52
Hi, my first post here in madVR thread.
madshi, thank you very much for this great piece of software, I love it, I love SM FRC on my 60Hz screen and I love all the other bells and whistles it gives me.
I'm sooo used to madVR now, can't use EVR(CP) anymore.

I like the (small) performance increase D3D11 presentation path provides on my system, and it also being the requirement for 10-bit output, looks like we/I will have to switch to D3D11 sooner or later, so I wanted to give you my feedback on it as well.
D3D9 works perfectly for me, D3D11 needs some work.

Issues with D3D11:
1. Going FSE is fine, but after first seek presentation glitches start piling up by the dozen every second during playback, enabling 'Present a frame for every v-sync' fixes it, but windowed FS mode works fine without. All queues apart from render queue (see below) are full at the time.
2. After going windowed FS or FSE, render queue is always only 3-5/8, other queues are full, and I get increased CPU usage, e.g. from ~7% to ~30% on my 3,6GHz Intel Core2Duo.
3. Sometimes after seeking/stopping playback video gets stuck in a loop, jumping between few frames.
4. Render times are better compared to D3D9, but present times are way worse, e.g. going from 0.12ms to 0.9x/1.xx ms in windowed mode, in windowed FS or FSE they are even higher (although only chroma is scaled).


Config:
latest nightly madVR, LAV, MPC-HC x64, GTX 550Ti (2 different stable Fermi-drivers tested) on 60Hz 8-bit Eizo, Win8.1 x64

Flush settings all set to 'Dont flush', except for 'after last render step' only when checking render times, never had tearing, dropped frames or presentation glitches (with D3D9).

'use a separate device for presentation' enabled, it gives me better render times.

windowed(FS) mode (new path), FSE only used to test D3D11.

SM FRC enabled, delay playback start/after seeking too enabled, ordered dithering, few of the default trade quality for performace options enabled, no new scaling refinements enabled (yet).

LAV Video set to defaults, using DXVA2-CBd decoder

Nvidia control panel set to defaults, including 'Application-controlled' for 'Max. pre-rendered frames'

Last edited by ibius; 13th May 2015 at 19:48.
ibius is offline   Reply With Quote
Old 13th May 2015, 20:05   #29882  |  Link
tobindac
Registered User
 
Join Date: May 2013
Posts: 115
I noticed that ordered dithering is a very noisy process. I found it fun lately to turn on 1bit output and see very obviously some algorithmic patterns. It appears not dithering at all gives the most "stable" unnoisy picture while error diffusion is more stable and 'random' is a total mess.

I'm surprised, but it appears no dithering at all is a viable choice.

Choices..
tobindac is offline   Reply With Quote
Old 13th May 2015, 20:09   #29883  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,958
Quote:
Originally Posted by tobindac View Post
I noticed that ordered dithering is a very noisy process. I found it fun lately to turn on 1bit output and see very obviously some algorithmic patterns. It appears not dithering at all gives the most "stable" unnoisy picture while error diffusion is more stable and 'random' is a total mess.

I'm surprised, but it appears no dithering at all is a viable choice.

Choices..
if you like banding yes it is a viable choice.
huhn is offline   Reply With Quote
Old 13th May 2015, 20:12   #29884  |  Link
tobindac
Registered User
 
Join Date: May 2013
Posts: 115
Quote:
Originally Posted by huhn View Post
if you like banding yes it is a viable choice.
Spare me the passive aggressiveness. If the source is suitable, it may be better in some specific cases. I know banding makes it worse in some cases.

I wouldn't be surprised if various modern movies from good sources do not require dithering filters for a good viewing experience.

If that is achieved why not avoid the extra noise? The packaged result might be a better outcome.

Last edited by tobindac; 13th May 2015 at 20:17.
tobindac is offline   Reply With Quote
Old 13th May 2015, 20:15   #29885  |  Link
Ver Greeneyes
Registered User
 
Join Date: May 2012
Posts: 445
Yes, dithering is the process of introducing noise to compensate for rounding errors. This helps average out the rounding errors either across the image or between frames (or both), and the noise is based on the actual error being compensated for, but it's still noise.

Last edited by Ver Greeneyes; 13th May 2015 at 20:20.
Ver Greeneyes is offline   Reply With Quote
Old 13th May 2015, 20:18   #29886  |  Link
tobindac
Registered User
 
Join Date: May 2013
Posts: 115
Quote:
Originally Posted by Ver Greeneyes View Post
Yes, dithering is the process of introducing noise to compensate for rounding errors. This helps average out the rounding errors either across the image or between frames (or both), and the noise is based on the actual error being compensated for, but it's still noise.
It reminds of antialiasing. It smooths the picture, yes. But at the end of the day it's even with the best algorithm a glorified version of "targeted blur".
tobindac is offline   Reply With Quote
Old 13th May 2015, 20:23   #29887  |  Link
Ver Greeneyes
Registered User
 
Join Date: May 2012
Posts: 445
All the processing that madVR does (including the color space conversions and the chroma doubling that almost all material needs) introduces rounding errors, so just because the source is 'good' doesn't mean you don't need dithering. It might mean you don't need debanding, but that's a different matter.

But - sure, if the noise bothers you when madVR is set to the correct output bitdepth, turn it off. Or turn off "change dither for every frame", which will make it less effective but might make it less visible (except on very uniform surfaces that are displayed for a considerable length of time). But it does mean you'll get more of a rounding error on average, reducing color accuracy.
Ver Greeneyes is offline   Reply With Quote
Old 13th May 2015, 20:27   #29888  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,958
Quote:
Originally Posted by tobindac View Post
Spare me the passive aggressiveness. If the source is suitable, it may be better in some specific cases. I know banding makes it worse in some cases.

I wouldn't be surprised if various modern movies from good sources do not require dithering filters for a good viewing experience.
i can't disagree that not all scene need dithering no question.

but a movie without a dark scene or gradations is unlikely.
even with really high bit deep there could be banding in a BD when dithering isn't used.
huhn is offline   Reply With Quote
Old 13th May 2015, 20:33   #29889  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 9,832
Quote:
Originally Posted by tobindac View Post
I wouldn't be surprised if various modern movies from good sources do not require dithering filters for a good viewing experience.
You will *always* need dithering, because its about the mathematical process, not about the quality of the source. In fact, its entirely independent of that (although its going to be more obvious in some sources than in others, of course)
If such a perfect source would exist, then dithering also wouldn't add noise, since dithering, by definition and design, is only used to spread the rounding error to multiple pixels, instead of accumulating it all in one. If there wouldn't be a rounding error, there would be no "noise".

At the end of the day, movies are all going to be in YUV, and YUV needs to be converted to RGB. This conversion process (if done right) results in floating point values, which need to be converted to 8-bit (or recently, 10-bit) on output. If you don't use dithering, you will effectively cut off data. Thats also were your analogy goes wrong, dithering isn't about hiding flaws, its about preserving data when converting to a lower bitdepth (ie. from 16/32-bit float, to 8/10-bit integer for output)

Of course you are free to use whatever settings you like, but please don't spread them as advice.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 13th May 2015 at 20:38.
nevcairiel is offline   Reply With Quote
Old 13th May 2015, 20:35   #29890  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 1,009
I'm a bit confused when you ask "what mode my PC is", where should I look that? Control panel just said (roughly) 1080 native, 60Hz.

Anyways I had a look and I don't find any video that turns my TV to 1080p60 mode, it stays always in PC mode which is fine and bad at the same time... I would expect a bit more consistency for these things (I should be able to treat 60fps sources as every other non-PC source, TV settings wise). 1080p59 is also defaulting to PC mode.

Then I played a 50fps video and screen turned to 50p mode, so here the story does apply.
Anyways I removed the 1080p50 entry and it defaulted to 1080p60 now seemingly and oddly enough "PC mode" (I still think passthrough should be a better idea?). I will report back when I find something strange. Sorry to disturb.

I'm still curious on why I can't seem to enable chroma NNEDI doubling. I even tried with "always - if upscaling is needed", only luma gets upscaled with nnedi.
Dogway is offline   Reply With Quote
Old 13th May 2015, 20:36   #29891  |  Link
cvrkuth
Registered User
 
Join Date: Apr 2011
Posts: 49
Quote:
Originally Posted by cvrkuth View Post
Yes, madvr display modes work correctly now. Thanks!
My playback is fine (no dropped frames, no glitches).

Anyway, just for info .. when I watch movie 24.000 and refresh rate fix is active, render queue and present queue are low (render queue 3-5/8 and present queue 2-3/8. Average stats present 31.00 ms which is abnormally high, usually 0.05 ms.)
When I watch movie 23.976 and refresh rate fix is not active, everything is fine with numbers (render queue 7-8/8 and present queue 6-7/8. Average stats present is 0.05 ms.)

Hope this help,
Regards
__________________
Intel Core i7-4790 CPU @ 3.60GHz, RAM 32 GB Dual-Channel DDR3 @ 665MHz (9-9-9-24),
Panasonic TX-P42G20E, NVIDIA GeForce GTX 970, Win 10 Pro x64,
PotPlayer 1.7.16291 64-bit, madVR v0.92.17
cvrkuth is offline   Reply With Quote
Old 13th May 2015, 20:38   #29892  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,958
Quote:
Originally Posted by Dogway View Post
I'm a bit confused when you ask "what mode my PC is", where should I look that? Control panel just said (roughly) 1080 native, 60Hz.

Anyways I had a look and I don't find any video that turns my TV to 1080p60 mode, it stays always in PC mode which is fine and bad at the same time... I would expect a bit more consistency for these things (I should be able to treat 60fps sources as every other non-PC source, TV settings wise). 1080p59 is also defaulting to PC mode.

Then I played a 50fps video and screen turned to 50p mode, so here the story does apply.
Anyways I removed the 1080p50 entry and it defaulted to 1080p60 now seemingly and oddly enough "PC mode" (I still think passthrough should be a better idea?). I will report back when I find something strange. Sorry to disturb.

I'm still curious on why I can't seem to enable chroma NNEDI doubling. I even tried with "always - if upscaling is needed", only luma gets upscaled with nnedi.
nnedi3 chroma doubling was removed under image doubling.
huhn is offline   Reply With Quote
Old 13th May 2015, 20:41   #29893  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 1,009
Quote:
Originally Posted by huhn View Post
nnedi3 chroma doubling was removed under image doubling.
Since what version? I'm using v0.87.21
Dogway is offline   Reply With Quote
Old 13th May 2015, 20:42   #29894  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,958
Quote:
Originally Posted by Dogway View Post
Since what version? I'm using v0.87.21
since 88.x

but if you are using 87.21 can you give me a screen from the osd ?
huhn is offline   Reply With Quote
Old 13th May 2015, 20:55   #29895  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 1,009
Quote:
Originally Posted by huhn View Post
since 88.x

but if you are using 87.21 can you give me a screen from the osd ?


Dogway is offline   Reply With Quote
Old 13th May 2015, 21:01   #29896  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 5,958
on this screen chroma doubling is used.

BTW. any reason you didn't use smooth motion on this 60 Hz screen?

just interested in your reasoning.
huhn is offline   Reply With Quote
Old 13th May 2015, 21:02   #29897  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 3,698
Quote:
Originally Posted by tobindac View Post
I noticed that ordered dithering is a very noisy process. I found it fun lately to turn on 1bit output and see very obviously some algorithmic patterns. It appears not dithering at all gives the most "stable" unnoisy picture while error diffusion is more stable and 'random' is a total mess.

I'm surprised, but it appears no dithering at all is a viable choice.

Choices..
No dither at all is NOT a viable choice.

I am not at all sure how one could conclude dithering is bad when watching 1-bit output. Watching 1-bit output without dithering makes it hard to see what is going on. Almost all detail is lost. Turn off "change dither for every frame" if you want a more stable image, DO NOT turn of dithering entirely. Ordered dithering has very low apparent noise even at only 4-bit (256 colors), especially with "change dither for every frame" off.

Quote:
Originally Posted by Ver Greeneyes View Post
But - sure, if the noise bothers you when madVR is set to the correct output bitdepth, turn it off. Or turn off "change dither for every frame", which will make it less effective but might make it less visible (except on very uniform surfaces that are displayed for a considerable length of time). But it does mean you'll get more of a rounding error on average, reducing color accuracy.
"change dither for every frame" doesn't make dithering less effective or less accurate. It makes dither patterns easier to see but average rounding error and color accuracy is the same with or without "change dither for every frame".

Turning off "change dither for every frame" trades more visible dither patters for less apparent dither noise.
__________________
madVR options explained
Asmodian is online now   Reply With Quote
Old 13th May 2015, 21:02   #29898  |  Link
x7007
Registered User
 
Join Date: Apr 2013
Posts: 251
Quote:
Originally Posted by cvrkuth View Post
My playback is fine (no dropped frames, no glitches).

Anyway, just for info .. when I watch movie 24.000 and refresh rate fix is active, render queue and present queue are low (render queue 3-5/8 and present queue 2-3/8. Average stats present 31.00 ms which is abnormally high, usually 0.05 ms.)
When I watch movie 23.976 and refresh rate fix is not active, everything is fine with numbers (render queue 7-8/8 and present queue 6-7/8. Average stats present is 0.05 ms.)

Hope this help,
Regards

Same happens to me
x7007 is offline   Reply With Quote
Old 13th May 2015, 21:07   #29899  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 1,009
Quote:
Originally Posted by huhn View Post
on this screen chroma doubling is used.
BTW. any reason you didn't use smooth motion on this 60 Hz screen?
How do you know that? shouldn't it be "chroma > nnedi16 > Mitchel..."?
I never use smooth option (a gimmick IMO) but this is my PC monitor not my TV anyways.
Dogway is offline   Reply With Quote
Old 13th May 2015, 21:08   #29900  |  Link
Ver Greeneyes
Registered User
 
Join Date: May 2012
Posts: 445
Quote:
Originally Posted by Asmodian View Post
"change dither for every frame" doesn't make dithering less effective or less accurate. It makes dither patterns easier to see but average rounding error and color accuracy is the same with or without "change dither for every frame".

Turning off "change dither for every frame" trades more visible dither patters for less apparent dither noise.
Changing the dithering pattern every frame is more effective because it adds a time-based element. Let's take Error Diffusion as an example with a hypothetical losslessly compressed test pattern showing large uniform patches of color. Without temporal dithering, each pixel is going to have a particular color all the time - rounded either up or down depending on its position. Only the patch taken as a whole will have the right color on average. With temporal dithering, each pixel will have the correctly rounded value on average.

Of course in real material the difference is going to be negligible because of changes in what's being displayed, and noise in the source material subtly changing the dithering decisions each frame. Still, if you combine temporal dithering with something like smooth motion so that it changes for every screen refresh, it makes it much more effective (which is why I would prefer dithering to be tied to vsync rather than the video frame rate - but I always use smooth motion anyway, so it's a moot point).

Last edited by Ver Greeneyes; 13th May 2015 at 21:17.
Ver Greeneyes is offline   Reply With Quote
Reply

Tags
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:44.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.