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 February 2014, 14:20   #23061  |  Link
drew_afx
Registered User
 
Join Date: Dec 2012
Posts: 12
Looks like I've been setting up my display wrong the entire time...
setting native display bitdepth to 6bit in madvr results in cleaner gradient (less banding artifacts) than setting it to 8bit!
e-ips is 6bit native yet I thought the monitor would handle 8 bit madvr output with its own dithering method
drew_afx is offline   Reply With Quote
Old 13th February 2014, 14:25   #23062  |  Link
Anime Viewer
Troubleshooter
 
Anime Viewer's Avatar
 
Join Date: Feb 2014
Posts: 333
nl6 vs nl1

Quote:
Originally Posted by madshi View Post
Hmmmm... Did you test the other NL builds, too, or just NL6? How about e.g. NL1?

I hadn't tried nl1. I had only tried nl6 since there was talk about it popping quite a bit, and I wanted to see if I noticed any additional seperation (either foreground or background) compared to what I remember seeing in video played through MPC-HC with MadVR. I tested nl1, and it seemed to look pretty good too. I have to work in ~1 hour, but when I get off work and return in ~7-8 hours I can do further testing of different builds and their relation to 3d effect. If there is certain ones you want me to test from that perspective let me know.
__________________
System specs: Sager NP9150 SE with i7-3630QM 2.40GHz, 16 GB RAM, 64-bit Windows 10 Pro, NVidia GTX 680M/Intel 4000 HD optimus dual GPU system. Video viewed on LG notebook screen and LG 3D passive TV.
Anime Viewer is offline   Reply With Quote
Old 13th February 2014, 14:43   #23063  |  Link
Ver Greeneyes
Registered User
 
Join Date: May 2012
Posts: 445
Quote:
Originally Posted by drew_afx View Post
setting native display bitdepth to 6bit in madvr results in cleaner gradient (less banding artifacts) than setting it to 8bit!
I believe using a setting other than 8-bit also disables error diffusion (you'll get random dithering instead), so that's something to keep in mind. It would be nice if ED worked for 6-bit as well considering that should benefit even more.. I can't remember if madshi has said whether it would be feasible to offer 6-bit and 7-bit versions of ED.

Last edited by Ver Greeneyes; 13th February 2014 at 14:46.
Ver Greeneyes is offline   Reply With Quote
Old 13th February 2014, 15:01   #23064  |  Link
drew_afx
Registered User
 
Join Date: Dec 2012
Posts: 12
Quote:
Originally Posted by Ver Greeneyes View Post
I believe using a setting other than 8-bit also disables error diffusion (you'll get random dithering instead), so that's something to keep in mind. It would be nice if ED worked for 6-bit as well considering that should benefit even more.. I can't remember if madshi has said whether it would be feasible to offer 6-bit and 7-bit versions of ED.
Nope I tested with "random dithering" checked, 6bit definitely seem much smoother than 7bit or 8bit settings.
It's that banding artifact which is much more noticeable than error diffusion dithering artifact.
Even with "no dithering" checked I can spot more banding artifact in 8bit than 6bit
drew_afx is offline   Reply With Quote
Old 13th February 2014, 15:23   #23065  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Quote:
Originally Posted by Anime Viewer View Post
I hadn't tried nl1. I had only tried nl6 since there was talk about it popping quite a bit, and I wanted to see if I noticed any additional seperation (either foreground or background) compared to what I remember seeing in video played through MPC-HC with MadVR. I tested nl1, and it seemed to look pretty good too. I have to work in ~1 hour, but when I get off work and return in ~7-8 hours I can do further testing of different builds and their relation to 3d effect. If there is certain ones you want me to test from that perspective let me know.
It would be nice if you could try all the builds. If you can't see a difference, that's fine. Maybe some builds stand out positively or negatively. Or maybe not. Just let me know what your eyes tell you. Thanks.
madshi is offline   Reply With Quote
Old 13th February 2014, 15:23   #23066  |  Link
Matching_Mole
Registered User
 
Join Date: Feb 2009
Posts: 99
Yesterday evening, I watched an upscaled DVD to 720p48hz (old projector) using Jinc 3 AR either for Luma and Chroma.

NL6 made video noise really stronger and so less pleasant that DC3 ED version that I used previously. However NL1 was far much better than DC3 (and so NL6) because the video noise was not increased but the picture looked sharper. So I vote personally for NL1 at least in case of DVD upscale.

I will check this result using a blu-ray.
Matching_Mole is offline   Reply With Quote
Old 13th February 2014, 15:47   #23067  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by cyberbeing View Post
I'm finding it more interesting this time to just observe, and see which build people naturally lean towards.
I'd rather you did post which build from each type was your favorite.

Not that there is anything wrong with it, but most people seem to be picking with their gut rather than doing the extensive testing and comparisons that you have done so far.

This is the approach I would have taken (see all my previous posts on scaling algorithms etc.) but analyzing the dither patterns just isn't my thing really, and I've not had the time spare to do proper testing lately.
6233638 is offline   Reply With Quote
Old 13th February 2014, 16:00   #23068  |  Link
clsid
Registered User
 
Join Date: Feb 2005
Posts: 5,064
Quote:
Originally Posted by kstuart View Post
What does madVR do when the "movie resolution" is close to the "target resolution", e.g. 1916 x 1076 and 1920 x 1080, due to cropping ?

Does it still do luma upscaling as if it were a big change like 720p to 1080p ?

Is there a way to have it not bother, i.e. just output black bars for the 4 pixels ?
I think this is a valid suggestion.

madVR should of course still respect the size requested by the player. Doing padding instead of resizing could be beneficial for quality (and performance). It could be a "Trade quality for performance" option to do padding when size difference is <16 pixels in both dimensions.
clsid is offline   Reply With Quote
Old 13th February 2014, 16:06   #23069  |  Link
DarkSpace
Registered User
 
Join Date: Oct 2011
Posts: 204
Quote:
Originally Posted by clsid View Post
madVR should of course still respect the size requested by the player. Doing padding instead of resizing could be beneficial for quality (and performance). It could be a "Trade quality for performance" option to do padding when size difference is <16 pixels in both dimensions.
What if you want to zoom into the picture by a bit (e.g. pressing NUMPAD-6 in MPC-HC) and that happens to fall into these 16 pixels? I foresee complications...
DarkSpace is offline   Reply With Quote
Old 13th February 2014, 16:11   #23070  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Quote:
Originally Posted by drew_afx View Post
setting native display bitdepth to 6bit in madvr results in cleaner gradient (less banding artifacts) than setting it to 8bit!
e-ips is 6bit native yet I thought the monitor would handle 8 bit madvr output with its own dithering method
I think the same may happen some time in the future (probably not soon) when madVR gets native 10bit output: With some displays it will look worse than letting madVR dither down to 8bit. So basically every user will have to test which produces the better overall quality.

Quote:
Originally Posted by Matching_Mole View Post
Yesterday evening, I watched an upscaled DVD to 720p48hz (old projector) using Jinc 3 AR either for Luma and Chroma.

NL6 made video noise really stronger and so less pleasant that DC3 ED version that I used previously. However NL1 was far much better than DC3 (and so NL6) because the video noise was not increased but the picture looked sharper. So I vote personally for NL1 at least in case of DVD upscale.

I will check this result using a blu-ray.
Thanks, appreciated.

Quote:
Originally Posted by clsid View Post
I think this is a valid suggestion.

madVR should of course still respect the size requested by the player. Doing padding instead of resizing could be beneficial for quality (and performance). It could be a "Trade quality for performance" option to do padding when size difference is <16 pixels in both dimensions.
I haven't said this yet, but I did already plan to support something like this in a future version, together with some other related changes.

Quote:
Originally Posted by 6233638 View Post
I've not had the time spare to do proper testing lately.
Would still like to hear your feedback. If you don't have time to test all the builds, at least I'd love to hear your opinion about how nl1 and nl6 compare, because those are the 2 builds mentioned most often by other users.
madshi is offline   Reply With Quote
Old 13th February 2014, 16:20   #23071  |  Link
clsid
Registered User
 
Join Date: Feb 2005
Posts: 5,064
Quote:
Originally Posted by DarkSpace View Post
What if you want to zoom into the picture by a bit (e.g. pressing NUMPAD-6 in MPC-HC) and that happens to fall into these 16 pixels? I foresee complications...
It will work just fine. The size of the video surface will be exactly the same, it is just filled differently.

Quote:
I haven't said this yet, but I did already plan to support something like this in a future version, together with some other related changes.
Cool.
clsid is offline   Reply With Quote
Old 13th February 2014, 16:48   #23072  |  Link
trip_let
Registered User
 
Join Date: Sep 2012
Posts: 47
Quote:
Originally Posted by drew_afx View Post
Looks like I've been setting up my display wrong the entire time...
setting native display bitdepth to 6bit in madvr results in cleaner gradient (less banding artifacts) than setting it to 8bit!
e-ips is 6bit native yet I thought the monitor would handle 8 bit madvr output with its own dithering method
Looks like if you set 6 bits, madVR dithers down to 6 bits, which should make gradients better at the expense of definitely noticeable extra noise. Just because banding is lower doesn't mean overall quality is better.

Maybe setting 7 bits is a good compromise? In any case, it might be worth a try as well for those on 6 bits + AFRC displays. At least, try all the options.

edit: I tried it and setting 6 bits and 7 bits looks worse at least on the display I used. There's just too much difference between the pixels. Maybe the more appropriate solution would be dithering with even higher noise, allowing values like 10.4 -> 12 sometimes? I don't know if that's of much interest in general.

Last edited by trip_let; 13th February 2014 at 17:13.
trip_let is offline   Reply With Quote
Old 13th February 2014, 17:28   #23073  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
Quote:
Originally Posted by Ver Greeneyes View Post
I believe using a setting other than 8-bit also disables error diffusion (you'll get random dithering instead), so that's something to keep in mind. It would be nice if ED worked for 6-bit as well considering that should benefit even more.. I can't remember if madshi has said whether it would be feasible to offer 6-bit and 7-bit versions of ED.
FWIW since it is now impossible for error diffusion to round something like 127.81 to 129 it should be possible to achieve this by simply dividing all pixel values by 2 or 4. As far as I know error diffusion uses pure power gamma correction which would mean that relative distances are still correct.

Edit: After thinking about it you may need to divide by a value slightly larger than 2 or 4 to completely prevent 'out of range' values like 128 or 64 but it should still be quite easy to do error diffusion for 6 and 7 bits.

Last edited by Shiandow; 13th February 2014 at 18:59.
Shiandow is offline   Reply With Quote
Old 13th February 2014, 19:09   #23074  |  Link
MistahBonzai
Registered User
 
Join Date: Mar 2013
Posts: 101
Quote:
Originally Posted by Matching_Mole View Post
...NL6 made video noise really stronger and so less pleasant that DC3 ED version that I used previously. However NL1 was far much better than DC3 (and so NL6) because the video noise was not increased but the picture looked sharper...
I had settled on NL6 while viewing a HBR monochrome 720p video shot with a "RED M".

All AVIsynth off. MadVR at default settings except Chrome Upscaling=Jinc 3 tap, Image Upscaling=Jinc 3 tap.

Play video full screen (with NL1 and NL6) and navigate to frame 1420 of each. Full screen capture (Alt+Printscreen). Open in editor, 200% zoom and cropped the upper left corners (1920-1440, 0-405). Performed this twice to insure conformity of process.

What I discovered was that NL6 is noticeably sharper while NL1 provides 'smoother' dithering. See attachments (hopefully). edit: Darn..second capture runs 225KB. Using smaller crop.

nl1a-frame1420
nl6a-frame1420

Last edited by MistahBonzai; 13th February 2014 at 19:51. Reason: external image links
MistahBonzai is offline   Reply With Quote
Old 13th February 2014, 19:26   #23075  |  Link
iSunrise
Registered User
 
Join Date: Dec 2008
Posts: 497
@MistahBonzai
Just FYI, attaching something to this forum does take a really long time to get approval, so even the people in say usually recommend to use an external image host.
iSunrise is offline   Reply With Quote
Old 13th February 2014, 19:35   #23076  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Quote:
Originally Posted by Shiandow View Post
FWIW since it is now impossible for error diffusion to round something like 127.81 to 129 it should be possible to achieve this by simply dividing all pixel values by 2 or 4. As far as I know error diffusion uses pure power gamma correction which would mean that relative distances are still correct.

Edit: After thinking about it you may need to divide by a value slightly larger than 2 or 4 to completely prevent 'out of range' values like 128 or 64 but it should still be quite easy to do error diffusion for 6 and 7 bits.
The problem is that with 6bit or 7bit panels I'm not sure where the exact "border" is when a pixel is displayed as different. E.g. for 6bit should I output 8bit values 0, 4, 8? Or should I output 2, 6, 10? And is this identical over the whole gamma range? I'm not really sure about all this, that's why I'm currently simply using random dithering instead of error diffusion if the user selects 6bit or 7bit.

Quote:
Originally Posted by MistahBonzai View Post
I had settled on NL6 while viewing a HBR monochrome 720p video shot with a "RED M".

All AVIsynth off. MadVR at default settings except Chrome Upscaling=Jinc 3 tap, Image Upscaling=Jinc 3 tap.

Play video full screen (with NL1 and NL6) and navigate to frame 1420 of each. Full screen capture (Alt+Printscreen). Open in editor, 200% zoom and cropped the upper left corners (1920-1440, 0-405). Performed this twice to insure conformity of process.

What I discovered was that NL6 is noticeably sharper while NL1 provides 'smoother' dithering. See attachments (hopefully). edit: Darn..second capture runs 225KB. Using smaller crop.
Hmmm... Did you try the other test builds, too? Or just NL1 and NL6? Thanks...
madshi is offline   Reply With Quote
Old 13th February 2014, 19:57   #23077  |  Link
MistahBonzai
Registered User
 
Join Date: Mar 2013
Posts: 101
Quote:
Originally Posted by madshi View Post
Hmmm... Did you try the other test builds, too? Or just NL1 and NL6? Thanks...
Commencing to do so..
MistahBonzai is offline   Reply With Quote
Old 13th February 2014, 20:25   #23078  |  Link
kstuart
Registered User
 
Join Date: Feb 2014
Posts: 19
As always, all input is appreciated.

Quote:
Originally Posted by madshi View Post
As the other users have already said, madVR does what the media player tells it to do. madVR reports to the media player which resolution the video has and the media player tell madVR which target resolution to use.
It would be helpful if someone (not a developer, since they have better uses of their time) creates a flow chart of exactly which piece of software and hardware asks for which piece of information.

(I certainly understand that it is a kludge based on what giant corporations have decided they are willing to do.)

Between the monitor, the GPU, the GPU driver, GPU software package, other Windows drivers & APIs, media player, video filters, audio filters, video renderer, you really need a pre-existing "scorecard" to know what asks for what (and that is without extra complications like Reclock).
Quote:
If a 1280x720 video is upscaled to 1920x1080 then your media player is *NOT* set to 100% zoom. With 100% zoom 1280x720 video would play letterboxed in 1280x720 resolution in the middle of your 1920x1080 screen.
Actually, if I play a 1280x720 video and then click on the "100%" setting, it does just that.
It turns out that Jriver has a bug whereby it displays a checkmark next to "100%" when "Fit Window" is also checked, so a casual glance indicates that the former is in effect, when it is actually the latter.
But, actually, I don't want to manually set it to "100%" only for these corner cases, so it is a moot point. (In fact, manually checking each file with MediaInfo before playing, and then manually changing settings during playback, is contrary to the whole point of profiles - and software in general - which is to automate complex tasks.)

Quote:
Originally Posted by clsid
Doing padding instead of resizing could be beneficial for quality (and performance). It could be a "Trade quality for performance" option to do padding when size difference is <16 pixels in both dimensions.
Quote:
Originally Posted by madshi
I haven't said this yet, but I did already plan to support something like this in a future version, together with some other related changes.
That would be appreciated, and I can use my workaround in the meantime.
kstuart is offline   Reply With Quote
Old 13th February 2014, 20:53   #23079  |  Link
bacondither
Registered User
 
Join Date: Oct 2013
Location: Sweden
Posts: 128
I used the 16-bit "gradient-perceptual.mkv" at the specific frame of "59, 29.970" and clipped the histogram at 4.
A random dither and a non dither version is included as comparison.

nl? testbuilds

The blurred version is blurred by paint.net, gaussian blur, radius 2.

nl? testbuilds blurred


I vote for NL6.
bacondither is offline   Reply With Quote
Old 13th February 2014, 20:56   #23080  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 6,373
Quote:
It would be helpful if someone (not a developer, since they have better uses of their time) creates a flow chart of exactly which piece of software and hardware asks for which piece of information.
think like this change with decoder not all decoder giving all informations and dxva runs on gpu like other decoder. render types overlay fullscreen exclusive, adding deinterlacing change a lot too. thinigs change with content codecs and a lot more... and this is a very very short list.

just take things as they are or you have to read a lot...
huhn 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 01:26.


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