diff --git a/rtengine/guidedfilter.cc b/rtengine/guidedfilter.cc index e64ef4e3e..e7fe9b8af 100644 --- a/rtengine/guidedfilter.cc +++ b/rtengine/guidedfilter.cc @@ -154,6 +154,9 @@ void guidedFilter(const array2D &guide, const array2D &src, array2 rad = LIM(rad, 0, (min(s.width(), s.height()) - 1) / 2 - 1); float **src = s; float **dst = d; +#ifdef _OPENMP + #pragma omp parallel if (multithread) +#endif boxblur(src, dst, blur_buf.data, rad, rad, s.width(), s.height()); }; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index e34415c1e..a58362596 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -4348,17 +4348,8 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, } - LUTu hist16Clad; - LUTu hist16Llad; - - //preparate for histograms CIECAM - if (pW != 1) { //only with improccoordinator - hist16Clad(65536); - hist16Clad.clear(); - hist16Llad(65536); - hist16Llad.clear(); - - } + const float histLFactor = pW != 1 ? histLCurve.getSize() / 100.f : 1.f; + const float histCFactor = pW != 1 ? histCCurve.getSize() / 48000.f : 1.f; #ifdef _DEBUG MyTime t1e, t2e; @@ -4863,8 +4854,7 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, //update histogram C if (pW != 1) { //only with improccoordinator - int posp = (int)sqrt(atmp * atmp + btmp * btmp); - hist16Clad[posp]++; + histCCurve[histCFactor * sqrt(atmp * atmp + btmp * btmp)]++; } if (editPipette && editID == EUID_Lab_LCCurve) { @@ -4919,8 +4909,7 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, //update histo LC if (pW != 1) { //only with improccoordinator - int posl = Lprov1 * 327.68f; - hist16Llad[posl]++; + histLCurve[Lprov1 * histLFactor]++; } Chprov1 = sqrt(SQR(atmp) + SQR(btmp)) / 327.68f; @@ -5007,13 +4996,6 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, } } // end of parallelization - if (pW != 1) { //only with improccoordinator - //update histogram C with data chromaticity and not with CC curve - hist16Clad.compressTo(histCCurve); - //update histogram L with data luminance - hist16Llad.compressTo(histLCurve); - } - #ifdef _DEBUG if (settings->verbose) {