diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 36362ce7a..84544bb95 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -237,7 +237,9 @@ namespace rtengine { } //initial impulse denoise - impulse_nr (labdn, 50.0f/20.0f); + if (dnparams.luma>0.01) { + impulse_nr (labdn, MIN(50.0f,dnparams.luma)/20.0f); + } int datalen = labdn->W * labdn->H; @@ -263,7 +265,9 @@ namespace rtengine { //TODO: at this point wavelet coefficients storage can be freed //second impulse denoise - impulse_nr (labdn, 50.0f/20.0f); + if (dnparams.luma>0.01) { + impulse_nr (labdn, MIN(50.0f,dnparams.luma)/20.0f); + } //PF_correct_RT(dst, dst, defringe.radius, defringe.threshold); //wavelet denoised L channel diff --git a/rtengine/cplx_wavelet_dec.h b/rtengine/cplx_wavelet_dec.h index cb1a5eba7..0df25fa72 100644 --- a/rtengine/cplx_wavelet_dec.h +++ b/rtengine/cplx_wavelet_dec.h @@ -379,15 +379,15 @@ public: //initialize wavelet filters - wavfilt_len = Haar_len; - wavfilt_offset = Haar_offset; + wavfilt_len = Daub4_len; + wavfilt_offset = Daub4_offset; wavfilt_anal = new float[2*wavfilt_len]; wavfilt_synth = new float[2*wavfilt_len]; for (int n=0; n<2; n++) { for (int i=0; i