nice! an interesting lot of work indeed :)

the results look really promising. doesn't seem to do much on the sky,
but the wood is cleaned up nicely. some colour noise seems to stick
around at the edges, which is expected with nlm.

yeah multi-scale is hard and costly with nlm. one of the reasons why i
like wavelets more.

anscombe transform is great but has difficulties near black. we use
the anscombe + unbiased inverse in the profiled denoising module. if
you want to run before black point subtraction, you'd get noisy black
somewhere > 0 which may confuse the transform. not sure what to do
about it. i had a module at some point that was doing raw bayer
wavelets with a kind of Fisz transform to normalise variance to unity.
it was super slow and only really marginally better than what we had
for values near the black level, so i stopped developing it. i'm not
entirely sure we'll need such a thing for nlmeans though. curious to
hear if you have any findings!

cheers,
 jo
On Wed, Sep 12, 2018 at 9:22 AM rawfiner <rawfi...@gmail.com> wrote:
>
> hi,
>
> Le lun. 10 sept. 2018 à 14:47, johannes hanika <hana...@gmail.com> a écrit :
>>
>> hi!
>>
>> nice, your downscaled images look impeccable :) maybe they jump up or
>> down by one pixel or so?
>
>
> I think this is partly due to rounding errors as we multiply a width by a 
> float factor to find the new width.
> Also, as we get fewer and fewer lines and colums, it may be possible that 
> some details appear slightly moved, due to the algorithm itself.
>
>>
>>
>> do you have any example result images for the denoising already? are
>> you running before or after black point subtraction? if you can, i
>> think you should run before.
>
>
> For the moment, I develop the new algorithm as part of the raw denoise 
> module, so I guess it is after black point substraction.
> I will consider to make it run before.
>
> You can find to before/after examples here: 
> https://drive.google.com/open?id=18UU3AAHqyE0oE_zAvTdQbFL2i7zBAgCV
> Images that end with _01 are the "after".
> Note that only raw non local means was used to denoise these images, nothing 
> else. It reduces both luminance and chrominance noise.
>
> Yet, this is only a preliminary result, with a basic nlm algorithm, and I 
> have mainy ideas of improvements:
> - use anscombe transformation (and maybe improve it: see 
> https://ieeexplore.ieee.org/document/7812567/)
> - use downscaling and upscaling to get a multiscale denoising. This should 
> relax the constraints on the neighborhood parameter of the nlm algorithm, and 
> would allow better denoising for very noisy image
> - adapt total variation to raw data so that total variation could be used to 
> get a better patch comparison (MSE+TV), and to avoid denoising pixels which 
> are not noisy
> - use MSE+TV only to get a list of 8-16 most similar patches, and use "two 
> direction non local model" with these patches 
> (https://ieeexplore.ieee.org/abstract/document/6307863/). This should 
> completely solve the "rare patch" issue that we encounter with nlm.
> - and of course, make this run as fast as possible for preview!
>
> So basically, a lot of work remaining, but very exciting work ;-)
>
> cheers,
> rawfiner
>
>>
>>
>> exciting stuff :)
>>
>> cheers,
>>  jo
>>
>>
>> On Wed, Sep 5, 2018 at 9:34 PM rawfiner <rawfi...@gmail.com> wrote:
>> >
>> > Hi!
>> > Some of you may now that I am working on a raw denoising algorithm.
>> > One of the hard thing was that prior to demosaic, the algorithms are 
>> > computed on unscaled data, while after demosaic the algorithms can compute 
>> > a preview on a downscaled image, which is easier in terms of speed.
>> >
>> > So I tried to downscale the raw data, to be able to use that for preview.
>> > There was 2 existing algorithm in darktable to do that (thank you Johannes 
>> > for showing me these algorithms!): dt_iop_clip_and_zoom_mosaic_half_size_f 
>> > for bayer files and dt_iop_clip_and_zoom_mosaic_third_size_xtrans_f for 
>> > xtrans files
>> > My problem was that they only allow to downscale the images by a fixed 
>> > factor (2 in the case of bayer, and 3 in the case of xtrans).
>> >
>> > So I designed an algorithm, that work on both bayer and xtrans, and that 
>> > can be used whatever the scale factor.
>> > The source code is available here:
>> > https://github.com/rawfiner/darktable/tree/rawfiner-fix-downscale-algo
>> > (commit 9992cf66fc8510f637e5e5f8ae26c49c2cba2eaa)
>> > The graphic interface in raw denoise module is just here to be able to see 
>> > the effect of the algorithm in "fit to screen" zoom mode, and to activate 
>> > or desactivate the algorithm. It allows to compare what we get by 
>> > downscaling the picture before demosaic to what we would obtain without 
>> > this downscaling.
>> > The first slider controls the downscaling factor (0.25 means that width is 
>> > multiplied by 0.25, thus divided by 4)
>> > The second slider is useless for now.
>> >
>> > I made a quick video to compare the algorithm with the existing ones, and 
>> > to explain how the algorithm work:
>> > https://youtu.be/oE38w1YOhNQ
>> > Sorry for the slow speed of speech, I am not used yet to do videos in 
>> > english ;-)
>> >
>> > You can also find some examples here:
>> > https://drive.google.com/open?id=19xveG0EeF2RUjlRjDTs1AA9f-TnFZe2W
>> >
>> > cheers,
>> > rawfiner
>> >
>> >
>> > ___________________________________________________________________________
>> >  darktable developer mailing list to unsubscribe send a mail to 
>> > darktable-dev+unsubscr...@lists.darktable.org
>> ___________________________________________________________________________
>> darktable developer mailing list
>> to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org
>>
>
> ___________________________________________________________________________ 
> darktable developer mailing list to unsubscribe send a mail to 
> darktable-dev+unsubscr...@lists.darktable.org
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to