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 6th February 2014, 20:43   #22641  |  Link
XMonarchY
Guest
 
Posts: n/a
Quote:
Originally Posted by madshi View Post
That means your 3DLUT probably raises the black level. You could try using a custom pixel shader to lower the black level again to the right value. E.g. the following should lower the black level by 0.1 in 8bit:

Code:
sampler s0 : register(s0);

float4 main(float2 tex : TEXCOORD0) : COLOR
{
  return tex2D(s0, tex) - 0.1 / 255.0;
}
If this doesn't help, try 0.2 / 255.0, or even more until the problem goes away.



Sounds good!
I think the best fix for raised 3DLUT blacks is to use dispcalGUI's official black-level-fix feature (tri-color button in "Show Curves") that corrects ArgyllCMS dispcal.exe black level calibration rise and then use the fixed LUT.cal file to create a 3DLUT. You need to make sure to load the LUT.cal file to your display device (not madVR) first and only then set madVR as a display device. Then, untick "do not use videocard gamma table to apply calibration" before you start profiling to utilize that fixed LUT.cal properly. Profiling does not raise blacks if the LUT.cal file used is black-level-fixed.

I think its even a better idea to create a black-level-fixed LUT.cal file, use it for profile patch measures, but not include the LUT.cal (do not tick "Apply vcgt") during 3DLUT creation (do apply "BT.1886 gamma mapping" "2.4" "Absolute colorimetric with white point scaling"). Then load the generated 3DLUT, untick "disable GPU gamma ramps", and load the saved LUT.cal file with fixed blacks separately! It will make it more flexible as you can also create a different LUT.cal with a different gamma and switch between them to see which one you prefer without having to re-profile or make a different 3DLUT. It is also a good idea because LAV Video doesn't clip WTW and white clipping patterns may show yellow flashing bars when a LUT.cal file is fully integrated into 3DLUT.

Last edited by XMonarchY; 6th February 2014 at 21:01.
  Reply With Quote
Old 6th February 2014, 20:44   #22642  |  Link
The 8472
Registered User
 
Join Date: Jan 2014
Posts: 51
Quote:
Originally Posted by bacondither View Post
iSunrise your test images are wonky... level 17 is clipped which should be visible and black is not black its dark grey.
Quote:
Originally Posted by iSunrise View Post
Like I wrote, too, they are all enhanced with the same settings (minimal gamma adjustment [which is why pure black isnīt really black] and some contrast enhancement) to better illustrate the results and make them a bit more visible. Otherwise it is extremely hard to see the single dots which are in the darkest blacks. They still are perfectly comparable with one another.
How to get more reproduceable resoluts when enhancing this kind of test image:
  1. open in your favorite image editor
  2. use the levels adjustment tool (should have a histogram view)
  3. lock RGB channels together
  4. pick 0-20 or so as source range, the histogram should help you to tell where the input levels stop being relevant
  5. pick 0-255 as output range

Voila, you have expanded the input levels to the output levels without the non-linear effects of adjusting gamma or the like. For reproducibility you can mention the in/out ranges you picked, e.g. [0-20 -> 0-255] when you post them.
The 8472 is offline   Reply With Quote
Old 6th February 2014, 20:48   #22643  |  Link
XMonarchY
Guest
 
Posts: n/a
Quote:
Originally Posted by James Freeman View Post
Anyone who have problems with 3DLUT elevated blacks, blue whites, dithered blacks...
I have posted in AVS Forums (what in my experience) a solution.

ArgyllCMS - MadVR (3DLUT)

I'm a happy camper now, with perfect colors and calibration curve.
Yes, 3DLUT & madVRdirectCompute4 with no noise in the blacks and perfect color and gamma.
Take a look at my latest reply - there an official fix in dispcalGUI for raised blacks and it existed for a while now. You can use it to get that proper BT.1886 2.4 absolute gamma and no raised blacks.

Last edited by XMonarchY; 6th February 2014 at 21:00.
  Reply With Quote
Old 6th February 2014, 21:03   #22644  |  Link
DragonQ
Registered User
 
Join Date: Mar 2007
Posts: 934
Quote:
Originally Posted by kasper93 View Post
NNEDI3 is totally not worth for chroma upscaling.
Is it not still better if your GPU can do it without sacrificing other features?

Quote:
Originally Posted by kasper93 View Post
And I don't get why you don't use such great feature as Smooth motion...
Not everyone needs it. It's extremely awesome for PC displays but usually not necessary for TVs.
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7
DragonQ is offline   Reply With Quote
Old 6th February 2014, 21:28   #22645  |  Link
kasper93
MPC-HC Developer
 
Join Date: May 2010
Location: Poland
Posts: 586
Quote:
Originally Posted by iSunrise View Post
You mean NNEDI3 chroma doubling/quadrupling, as NNEDI3 4:2:2 -> 4:4:4 chroma upscaling definitely gives good improvements.
Quote:
Originally Posted by DragonQ View Post
Is it not still better if your GPU can do it without sacrificing other features?
My point is that you don't notice chroma scaling quality that much. NNEDI3 is still heavy I just don't see a reason to push power consumption only for sake of it. Seriously guys we don't watch movies with magnifier in hand. And don't get me wrong, I'm the one who always pursuit the best possible quality, but we need to be reasonable at the same time and pick settings that we can actually see with our own eyes.

But I have to give you that if you can upscale both luma and chroma with NNEDI3 it's definitely what you want to do. (I missed that part of the post) Though keep in mind to balance your settings and luma upscaling is more noticeable then chroma

Quote:
Originally Posted by DragonQ View Post
Not everyone needs it. It's extremely awesome for PC displays but usually not necessary for TVs.
But why explicitly disabling it then? It won't be used when not needed and when needed it's very nice improvement.
kasper93 is offline   Reply With Quote
Old 6th February 2014, 21:50   #22646  |  Link
iSunrise
Registered User
 
Join Date: Dec 2008
Posts: 496
Quote:
Originally Posted by The 8472 View Post
How to get more reproduceable resoluts when enhancing this kind of test image:
  1. open in your favorite image editor
  2. use the levels adjustment tool (should have a histogram view)
  3. lock RGB channels together
  4. pick 0-20 or so as source range, the histogram should help you to tell where the input levels stop being relevant
  5. pick 0-255 as output range

Voila, you have expanded the input levels to the output levels without the non-linear effects of adjusting gamma or the like. For reproducibility you can mention the in/out ranges you picked, e.g. [0-20 -> 0-255] when you post them.
Ok, thanks. I thought that a quick and dirty way would be sufficient, but I gave it another shot with GIMP, because Irfanview was definitely not able to do change levels/curves like that.

DirectCompute3 ED vs. DirectCompute4 ED vs. Random Dither



In/out ranges are [0-11 -> 0-255]

Iīve also marked each 3 with red boxes at the bottom, too, because Iīve found something strange. Now, please donīt mind the movement of the boxes themselves, because I am not entirely sure how to add a stable second layer with GIMP so they donīt move (I had to do it manually), but what I wanted to illustrate is the movement of the right edge to the left of bar 20 and the movement to the left of the white line in bar 18 inside of the boxes. Because strangely, this does only happen with DirectCompute4 ED+random noise and not with DirectCompute3 ED or the Random Dithering. You probably need to put them in a slideshow (like Irfanview can do) to see it clearly.

Last edited by iSunrise; 6th February 2014 at 22:09.
iSunrise is offline   Reply With Quote
Old 6th February 2014, 21:54   #22647  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,645
Quote:
Originally Posted by bacondither View Post
Worms be gone! madVRdirectCompute4 looks great.

Build 3 Error diffusion
Build 4 Error diffusion
I agree the patterns do look fairly good, but what's with all those lighter pixels, shouldn't it just be changing the pattern and not the color of the pixels? Most visible in 20 and 21.
ryrynz is offline   Reply With Quote
Old 6th February 2014, 22:00   #22648  |  Link
tp4tissue
Registered User
 
tp4tissue's Avatar
 
Join Date: May 2013
Posts: 706
Hi guys..

In the Ati- video - advance color setting..

Are we suppose to set it to 16-235 or 0-255 for best madvr playback..
__________________
Ghetto | 2500k 5Ghz
tp4tissue is offline   Reply With Quote
Old 6th February 2014, 22:02   #22649  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
I was finally able to confirm that using error-diffusion in an image with colour does indeed introduce coloured "noise" because of the misalignment of the different channels. The good news is that the effect isn't as bad as it could be. The bad news is that it does exists and mainly near edges which is unfortunate.

I've generated the pattern by using the Colorbars function from avisynth in the video processor of Potplayer, which for some reason resulted in an image which was horizontally flipped.

I then cropped the image and scaled the range [0-40] to [0-255] and doubled the size (nearest neighbour scaling). This gave the following result for the different algorithms:

normal dithering, error diffusion build 3, error diffusion build 4

You should be able to see that the pattern near the coloured surfaces is slightly coloured where it should be dark-gray. To make this more obvious here are the same three images but with the saturation increase by 100.

normal dithering, error diffusion build 3, error diffusion build 4

Luckily the added noise from build 4 doesn't seem to add more coloured noise than the previous algorithm. It is also fairly hard to detect without special methods, but it might be worth it to see if it is at all possible to do the dithering in YCbCr which, at least in my experiments, should prevent this from happening. This likely won't be free though, although I think it is possible to do it with one 7x3,3x1 matrix multiplication and several if statements.

Edit: I seemed to have accidentally used bicubic scaling on the error diffusion build 4 image, this might explain why the "coloured noise" looks slightly different.

Last edited by Shiandow; 6th February 2014 at 22:06.
Shiandow is offline   Reply With Quote
Old 6th February 2014, 22:02   #22650  |  Link
mindbomb
Registered User
 
Join Date: Aug 2010
Posts: 576
I have a question about how madVR settings are laid out. What is the distinction between processing and rendering? Because it seems to me that smooth motion should be moved from rendering into processing.
mindbomb is offline   Reply With Quote
Old 6th February 2014, 22:07   #22651  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 7,890
Quote:
Originally Posted by tp4tissue View Post
Hi guys..

In the Ati- video - advance color setting..

Are we suppose to set it to 16-235 or 0-255 for best madvr playback..
this is ignored by madvr.

dxva scaling/deint can be affacted
huhn is offline   Reply With Quote
Old 6th February 2014, 22:10   #22652  |  Link
tp4tissue
Registered User
 
tp4tissue's Avatar
 
Join Date: May 2013
Posts: 706
Quote:
Originally Posted by huhn View Post
this is ignored by madvr.

dxva scaling/deint can be affacted
Awesome Thxxxx


so.... for dxva... on my slower single core computers.. Which one do I use
__________________
Ghetto | 2500k 5Ghz
tp4tissue is offline   Reply With Quote
Old 6th February 2014, 22:16   #22653  |  Link
DragonQ
Registered User
 
Join Date: Mar 2007
Posts: 934
Quote:
Originally Posted by kasper93 View Post
But why explicitly disabling it then? It won't be used when not needed and when needed it's very nice improvement.
Why explicitly enable it if it's never needed?
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7
DragonQ is offline   Reply With Quote
Old 6th February 2014, 22:44   #22654  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
Quote:
Originally Posted by tp4tissue View Post
so.... for dxva... on my slower single core computers.. Which one do I use
What do you have the computer connected to? TV, monitor? Are you using YUV 4:4:4?
Stereodude is offline   Reply With Quote
Old 6th February 2014, 22:50   #22655  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 7,890
Quote:
Originally Posted by Stereodude View Post
What do you have the computer connected to? TV, monitor? Are you using YUV 4:4:4?
he is talking about the color setting for videos not for hdmi.

just set everything to "player settings"
huhn is offline   Reply With Quote
Old 6th February 2014, 23:03   #22656  |  Link
flashmozzg
Registered User
 
Join Date: May 2013
Posts: 77
I like DC3 version more. DC4 has higer noise wich is for me more distracting than this patterns.

Last edited by flashmozzg; 7th February 2014 at 00:45.
flashmozzg is offline   Reply With Quote
Old 6th February 2014, 23:07   #22657  |  Link
The 8472
Registered User
 
Join Date: Jan 2014
Posts: 51
Quote:
Originally Posted by Shiandow View Post
I was finally able to confirm that using error-diffusion in an image with colour does indeed introduce coloured "noise" because of the misalignment of the different channels. The good news is that the effect isn't as bad as it could be. The bad news is that it does exists and mainly near edges which is unfortunate.

I've generated the pattern by using the Colorbars function from avisynth in the video processor of Potplayer, which for some reason resulted in an image which was horizontally flipped.

I then cropped the image and scaled the range [0-40] to [0-255] and doubled the size (nearest neighbour scaling). This gave the following result for the different algorithms:

normal dithering, error diffusion build 3, error diffusion build 4

You should be able to see that the pattern near the coloured surfaces is slightly coloured where it should be dark-gray. To make this more obvious here are the same three images but with the saturation increase by 100.

normal dithering, error diffusion build 3, error diffusion build 4

Luckily the added noise from build 4 doesn't seem to add more coloured noise than the previous algorithm. It is also fairly hard to detect without special methods, but it might be worth it to see if it is at all possible to do the dithering in YCbCr which, at least in my experiments, should prevent this from happening. This likely won't be free though, although I think it is possible to do it with one 7x3,3x1 matrix multiplication and several if statements.

Edit: I seemed to have accidentally used bicubic scaling on the error diffusion build 4 image, this might explain why the "coloured noise" looks slightly different.
Since the errors seem to extend in both directions could this actually be the ringing artifacts extending further into the neighboring areas, albeit in the less-significant bits of the high precision color spaces? Either that or madshi is using serpentine traversal.
The fact that the error only extends upwards by ~2 pixels seems to indicate that it's the latter case.

Still interesting that the error consistently only spreads 16-20 pixels in one direction. I guess that even high with 16bit math the rounding lets the error fall below the LSB relatively quickly.

Assuming/speculating the "use 10bit image buffer instead of 16bit" setting also affects dithering then using 10bits might actually taper off faster if my theory is right.


Quote:
Originally Posted by iSunrise View Post
Ok, thanks. I thought that a quick and dirty way would be sufficient, but I gave it another shot with GIMP, because Irfanview was definitely not able to do change levels/curves like that.

DirectCompute3 ED vs. DirectCompute4 ED vs. Random Dither



In/out ranges are [0-11 -> 0-255]

Iīve also marked each 3 with red boxes at the bottom, too, because Iīve found something strange. Now, please donīt mind the movement of the boxes themselves, because I am not entirely sure how to add a stable second layer with GIMP so they donīt move (I had to do it manually), but what I wanted to illustrate is the movement of the right edge to the left of bar 20 and the movement to the left of the white line in bar 18 inside of the boxes. Because strangely, this does only happen with DirectCompute4 ED+random noise and not with DirectCompute3 ED or the Random Dithering. You probably need to put them in a slideshow (like Irfanview can do) to see it clearly.
Version 3 - at least this particular test-case with the applied enhancements - does look more appealing to me. The solid areas actually look flat when you don't zoom in.


@madshi

Which algorithm do you use to add noise in version 4? The one that Shiandow proposed might yield better results. He suggested simply using a handful of different diffusion tables and picking among them at random on each pixel. That should avoid introducing additional noise, it just spreads the errors in a way that seems less like a pattern to the human eye.

Last edited by The 8472; 7th February 2014 at 00:06.
The 8472 is offline   Reply With Quote
Old 6th February 2014, 23:58   #22658  |  Link
tp4tissue
Registered User
 
tp4tissue's Avatar
 
Join Date: May 2013
Posts: 706
Quote:
Originally Posted by huhn View Post
he is talking about the color setting for videos not for hdmi.

just set everything to "player settings"
k, will do, thx
__________________
Ghetto | 2500k 5Ghz
tp4tissue is offline   Reply With Quote
Old 6th February 2014, 23:59   #22659  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
Quote:
Originally Posted by The 8472 View Post
Assuming/speculating the "use 10bit image buffer instead of 16bit" setting also affects dithering then using 10bits might actually taper off faster if my theory is right.
I just tried that, using a 10bit buffer only changes the coloured noise a bit it doesn't seem to lessen it or change the range, actually Madshi said in a previous comment:

Quote:
Originally Posted by madshi View Post
It's somewhat similar to Floyd-Steinberg with serpentine scanning, but I'm using different weights and 16x16 pixel blocks.
So what I suspect is that the coloured noise is confined to those 16x16 blocks, the coloured error which causes the noise doesn't travel past those blocks. This seems the only sensible way to implement error diffusion on a GPU since otherwise you'd have to scan the image pixel by pixel which would mean that using a CPU would be faster.

Also with the way error-diffusion works, changing one value, even slightly, will have an effect on all the following pixels since different rounding errors occur in different places in a very unpredictable way. Given this you'd expect that when you use error diffusion separately on the different channels then it would be extremely unlikely that the result is the same for all channels, which leads to coloured noise.

The reason this doesn't always occur is because error diffusion does exactly the same thing for the same values, this combined with the fact that error diffusion is only used on 16x16 blocks means that when the entire 16x16 block is gray, it will give exactly the same result for the same channels, which leads to an image which is gray.
Shiandow is offline   Reply With Quote
Old 7th February 2014, 00:35   #22660  |  Link
The 8472
Registered User
 
Join Date: Jan 2014
Posts: 51
Quote:
Originally Posted by Shiandow
actually Madshi said in a previous comment:
Quote:
Originally Posted by madshi
It's somewhat similar to Floyd-Steinberg with serpentine scanning, but I'm using different weights and 16x16 pixel blocks.
Ah, I missed that part. That pretty much explains it.
The 8472 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 07:25.


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