Beep6581 / RawTherapee

A powerful cross-platform raw photo processing program
https://rawtherapee.com
GNU General Public License v3.0
2.75k stars 313 forks source link

Dead patches vary with color space selections when Lab chrominance noise reduction is used #2520

Closed Beep6581 closed 9 years ago

Beep6581 commented 9 years ago

Originally reported on Google Code with ID 2537

When changing working color spaces, small dead patches or bright speckles show up, even
on in-gamut colors. They vary with different working color spaces even when output
is rendered. It renders the output unacceptable for production and print purposes.

When chrominance noise reduction is processed in RGB, this doesn't occur. It only occurs
when chrominance noise is processed in Lab at any value on the Master slider above
0. I prefer Lab to RGB for how I work.

This behavior has been observed on X-TRANS photos. I have not tested others.

Link to page hosting test file known to exhibit behavior: http://www.imaging-resource.com/PRODS/fuji-x-t1/XT1hSLI00400NR1.RAF.HTM
Thanks to Imaging Resource for making these files available. :)

Area of image to observe behavior the best: colored craft thread in upper right quadrant.
Shadows in orange thread show the dead patches the best. Center area of light blue
(cyan) thread show speckles the best.

Reported by scoutmeister on 2014-10-15 15:29:27

Beep6581 commented 9 years ago
Please show screenshots (don't upload them here, use imgur.com or filebin.net), your
sample PP3 file, state which version of RawTherapee you're using, etc. 
http://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports

Also make sure you're using the latest patch from this issue:
https://code.google.com/p/rawtherapee/issues/detail?id=2495

Reported by entertheyoni on 2014-10-15 15:39:05

Beep6581 commented 9 years ago
Update to 4.1.80 fixes most of the dead patch issue, but not the varying speckles and
sparkles.

Example with minimal speckles in blue (sRGB working space): https://farm4.staticflickr.com/3944/14947539594_ec17b182a3_o.png

Example with many speckles in blue (ProPhoto working space): https://farm4.staticflickr.com/3927/14947539564_ed2bff7407_o.png

Changing between Lab and RGB noise reduction does alter the number of speckles. Turning
NR off completely does as well, but no longer eliminates the speckles as was seen in
previous versions.

Reported by scoutmeister on 2014-10-19 00:49:03

Beep6581 commented 9 years ago
I cannot reproduced ! With your raw X-trans (and others)...no problem, images are clear,
no speckles, no sparkles !

And as says Entertheyoni...can I have pp3 !

:)

Reported by jdesmis on 2014-10-21 05:51:59

Beep6581 commented 9 years ago
Here's the file: https://onedrive.live.com/redir?resid=86CD46241B8F9509!20598&authkey=!ADI1sgn2O8lOTFw&ithint=file%2cpp3

Does RawTherapee use GPU processing? Maybe there's a processing error with my system.
I'm using i5-2400 CPU with embedded Intel GPU.

Reported by scoutmeister on 2014-10-22 03:13:03

Beep6581 commented 9 years ago
I used your pp3 on your raw files, and on others (same picture with D4S 50 ISO)and artifacts
appears !

You use at the same time, functions as "CIECAM", "sharpening" (Deconvolution),  "Contrast
by Details level", with or without "Noise reduction" on colors that are in space prophoto
but well outside sRGB.
For example, dark blue in blue craft, have value as L=6 a=13 b-71 which is outside
of sRGB, Adobe or even WideGamut.
As mentioned in the documentation (Rawpedia - CIECAM02 - limitation) the great spaces
as Prophoto can cause artifacts with CIECAM. In this case prefer sRGB.
If you turn over in CIECAM02, Hot filter bad pixels (2), artifacts are mitigated with
Prophoto and disappear in sRGB...Also, limit the use of such functions (sharpening,
CBDL) will reduce artifacts, if you want to use CIECAM.

So known limitation, particularly CIECAM, and not a bug of Noise Reduction. Differences
between Lab and RGB come from the best separation of luminance and chrominance in the
Lab method. RGB blurs the fact that poorer separation.

:)

Reported by jdesmis on 2014-10-22 05:52:53

Beep6581 commented 9 years ago
@ scoutmeister

These are really EXTREME sharpening settings together with extreme color denoise !!.
What was you trying to fight with these ??

I think the root of the problem (speckles - fringes) could be some remaining defects
of X-trans demosaic which will be refined after Ingo start again working on it :)

Reported by iliasgiarimis on 2014-10-22 11:35:35

Beep6581 commented 9 years ago
Ilias, I don't agree. The speckles are caused by ciecam02. I'm looking. Wouldn't be
the first time that I find the reason. Let's hope.

Reported by heckflosse@i-weyrich.de on 2014-10-22 11:46:25

Beep6581 commented 9 years ago
The X-TRANS is more problematic than the Bayer filter array for false color
issues. If you were to look at the color fabric wheel without the noise
reduction settings, you'd see colorized tiger striping show up on some of
the swatches (especially the green and tan wedges). Also, I've fiddled with
the settings to find what helped the red wedge retain detail. To completely
fix the tiger striping problem with positive red-green chrominance
reduction would damage the red swatch too much, so I pulled higher chroma
and ran with a negative red-green. The image fidelity at this point is
actually quite good.

RawTherapee has been the best raw converter for X-TRANS I've tried. That's
compared to Lightroom/ACR, SilkyPix, CaptureOne, LightZone, AfterShot, and
Photo Ninja.

Reported by scoutmeister on 2014-10-22 11:59:39

Beep6581 commented 9 years ago
Also, the sharpening settings do play a role in the speckles, but don't
completely eliminate it. They simply change them around a bit. The working
color space still plays the largest role in altering the speckles.

I've completely disabled noise reduction and sharpening and still get
plenty of sparkly speckles in the problem areas.

I suppose it does have something to do with the demosaicing. Adjusting
those settings also has an impact, but again, does not eliminate them.
False Color Supression also has an impact, but doesn't eliminate them.

Everything seems to move the speckles around or reduce them, but not
eliminate them. The rendered output has them as well. I can choose to
render as 8-bit sRGB JPG or 16-bit ProPhoto Uncompressed TIF and the
results are the same in terms of speckles.

Reported by scoutmeister on 2014-10-22 12:13:11

Beep6581 commented 9 years ago
So they are... specktacular?

Reported by entertheyoni on 2014-10-22 12:21:10

Beep6581 commented 9 years ago
re #9: Did you try with ciecam enabled or disabled?

Reported by heckflosse@i-weyrich.de on 2014-10-22 12:23:34

Beep6581 commented 9 years ago
Hmm, I tested different values of TS in x-trans interpolation. Though there shouldn't
be differences in output for different values of TS, in fact there are differences.
I'll have a look now.

Reported by heckflosse@i-weyrich.de on 2014-10-22 12:58:24

Beep6581 commented 9 years ago
Ingo, thanks for investigating

I think we will come in agreement in the end :)

I had in mind that the exaggerated color speckles are only amplified by sharpening
and ciecam but exist (as outliers/salse color) from the start (demosaic)

- the hot/dead pixel that will eliminate some abnormal values and I am sure that will
help with some speckles
- the possible implementation of autoCA .. this could eliminate more some fringes/false
colors at first place (if the behavior is analogous with the Bayer version)

Then perhaps a slightly different approach in demosaic in order to have more robust
color (although it could be in the expense of some sharpness ..) 

Reported by iliasgiarimis on 2014-10-22 13:21:53

Beep6581 commented 9 years ago
The ripples on the fabrics come from aliasing in raw data (due to sparse color sampling
without lowpass filtering) and the best one can do is to filter them in the early stages.
Or use techniques used in Amaze to find gradients and adapt them in x-trans demosaicing

I am interested in what the consumer raw converters do with this. As I don't have recent
ACR or Capture One if anyone can make conversions would be nice. I guess they either
lowpass the color and give a less sharp result and desaturated colors (red letters)
or else they will also have aliasing :) 

Reported by iliasgiarimis on 2014-10-22 14:42:44

Beep6581 commented 9 years ago
Ilias, there is a relation between Input profile and speckles. Try with different settings
in camconst.json. You can clearly see the difference in this screenshot.

http://www.i-weyrich.de/rt/artifacts.png

Left one is 

    { // Quality B
        "make_model": [ "FUJIFILM X-T1", "FUJIFILM X-E2" ],
//        "dcraw_matrix": [ 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 ], //
DNG D65
        "dcraw_matrix": [ 9289,-3279,-632,-3539,11137,2758,-1049,1950,6544 ], // X-RITE
D55
        "ranges": { "white": 16100 }
    },

right one is 

    { // Quality B
        "make_model": [ "FUJIFILM X-T1", "FUJIFILM X-E2" ],
        "dcraw_matrix": [ 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 ], // DNG
D65
//        "dcraw_matrix": [ 9289,-3279,-632,-3539,11137,2758,-1049,1950,6544 ], //
X-RITE D55
        "ranges": { "white": 16100 }
    },

Ingo

Reported by heckflosse@i-weyrich.de on 2014-10-22 21:51:08

Beep6581 commented 9 years ago
I forgot to attach the pp3. Here it is

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:04:51


Beep6581 commented 9 years ago
Dng's matrix gives less outliers, logical as it is less saturated also .. we currently
use the DNG matrix in camconst.json so no problem ..

So do you think that it is a color management situation (out of space values) or maybe
NANs as I see a lot black pixels ?.

Hmm .. on many occasions problems with saturated blues have reported .. either turning
black (now solved I think) or just get oversaturated!.

Reported by iliasgiarimis on 2014-10-22 22:13:16

Beep6581 commented 9 years ago
Actually I don't know the reason. I just wanted to point you to this relation between
the speckles and the profiles...

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:28:10

Beep6581 commented 9 years ago
The 'Saturated blues problem' has been solved only for Lab, not for ciecam02 IIRC

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:29:40

Beep6581 commented 9 years ago
Another point, try with 'No Profile' Of course you'll get wrong colors but also no speckles.

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:35:16

Beep6581 commented 9 years ago
Tried your pp3 (neutral with just ciecam it is) then turn ciecam off .. specles are
still there just fainted .

With AdobeRGB as workings space they are a bit less and sRGB lesser .. (this goes together
with desaturation )

Optically this reminds me the situation with using the UniWB as reference predemosaicWB,
although they are now mostly in order (vertical candles)

Reported by iliasgiarimis on 2014-10-22 22:41:47

Beep6581 commented 9 years ago
Ilias, I meant using Input Profile 'No Profile'. Then there are no speckles

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:49:31

Beep6581 commented 9 years ago
but colors are wrong then of course

Reported by heckflosse@i-weyrich.de on 2014-10-22 22:50:07

Beep6581 commented 9 years ago
Well we should talk about candles not specles :)

Tried with Adobe standard.dcp colors are half desaturated and speckles are much less
visible .. but still there. Same happens with no profile .. more desaturation less
specles visibility but still there ..  

No in 400% I see many candles in the red cloth horizontally and vertically :(

It must be from the demosaicing :( 

I have an idea, how about using local predemosaicWB ?? :) .. Tiles 

Reported by iliasgiarimis on 2014-10-22 22:57:06

Beep6581 commented 9 years ago
Yes, I'm still searching for the tiling Issue. But I guess it's not the thing we search.
You can try yourself with different values for TS (line 3290 of demosaic_algos.cc).
The difference is only visible when amplified by a big amount. But nevertheless I want
to solve this tiling Issue

Reported by heckflosse@i-weyrich.de on 2014-10-22 23:07:30

Beep6581 commented 9 years ago
I am not sure I was clear about tiles. I mean to calculate the predemosaicWB locally
.. say divide the frame in 16 tiles (with a reasonable overlap) and apply the local
WB multipliers.

Just for my curiosity .. can you describe the x-trans algorithms in human language
?. I want to try to understand what is happening.
I think that maybe a color softening is needed, maybe a median filter in the demosaicing
stages (like in LMMSE). Dcraw also uses median filtering on x-trans  I think ..

Reported by iliasgiarimis on 2014-10-22 23:23:41

Beep6581 commented 9 years ago
Ilias, can you post a screenshot of the 'candles'?

Reported by heckflosse@i-weyrich.de on 2014-10-22 23:24:07

Beep6581 commented 9 years ago
Ilias, re #26, I'll try to do, but most probably not before Wednesday, because I'm in
spain from Saturday to Tuesday. btw: RT x-trans is almost the sane as Dcraw x-trans.
No changes in structure of algorithm.

Reported by heckflosse@i-weyrich.de on 2014-10-22 23:28:57

Beep6581 commented 9 years ago
If someone wants to see how a commercial tool renders this, Here's CaptureOne: https://farm6.staticflickr.com/5605/15601614941_8613e05d3d_o.png

The color and exposure are a little off, but offer a much better starting point than
the over-saturation from RT.

But... take a look at the red fabric losing continuity and detail and you'll see why
I prefer RT: https://farm6.staticflickr.com/5615/15605106912_0b744212d3_o.png

You can also see some of the mosaicking artifacts in the weave on the other color fabric
swatches that CaptureOne is famous for, even with a Bayer array to some extent. RT
is already winning the demosaic game here.

Reported by scoutmeister on 2014-10-22 23:55:03

Beep6581 commented 9 years ago
No need for a screenshot I think, by "candles" I mean groups of 2-6 pixels in straight
line 

You can visualize it better by selecting the green channel preview (g) on the blue
filaments (your screenshot) or the red textile.
In fact most of these dark speckles are due to one (or more) color falling sharply
close to zero.

http://i.imgur.com/7pd7r8L.jpg  

Reported by iliasgiarimis on 2014-10-23 00:01:56

Beep6581 commented 9 years ago
#29 This is why I talk about color filtering used by (all??) commercial converters ..
of course together with artifact suppression on same places comes the destroy of detail
on others .. balance is difficult :)

#28 Ingo, any time it's easy for you :).
About Dcraw I though I had seen it reporting median filtering after 3-pass-x-trans
but I was wrong :(

Reported by iliasgiarimis on 2014-10-23 00:24:57

Beep6581 commented 9 years ago
Is RawDigger showing that the candles and speckles have a near-empty color channel,
or is this an RT demosaic technique that's causing it?

Reported by scoutmeister on 2014-10-23 15:30:02

Beep6581 commented 9 years ago
#15 @heckflo, what's the code difference between left and right? I'm not seeing any
difference from what you posted.

Reported by scoutmeister on 2014-10-30 19:44:49

Beep6581 commented 9 years ago
@scoutmeister. No code difference, but difference in camconst.json (the one I posted
in #15)

Ingo

Reported by heckflosse@i-weyrich.de on 2014-10-30 19:58:09

Beep6581 commented 9 years ago
Set to fixed because bug is not reproducible in revision 6463150c2b39

Reported by heckflosse@i-weyrich.de on 2015-07-03 17:11:23