further adjustments of processing parameters for the fast export pipeline
This commit is contained in:
parent
bdde222609
commit
6f08233c6f
@ -1369,34 +1369,18 @@ private:
|
|||||||
params.crop.enabled = false;
|
params.crop.enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.resize.enabled) {
|
assert(params.resize.enabled);
|
||||||
|
|
||||||
// resize image
|
// resize image
|
||||||
LabImage *resized = new LabImage(imw, imh);
|
LabImage *resized = new LabImage(imw, imh);
|
||||||
ipf.Lanczos(tmplab, resized, tmpScale);
|
ipf.Lanczos(tmplab, resized, tmpScale);
|
||||||
delete tmplab;
|
delete tmplab;
|
||||||
tmplab = resized;
|
tmplab = resized;
|
||||||
params.resize.enabled = false;
|
|
||||||
|
|
||||||
params.sharpening = params.prsharpening;
|
adjust_procparams(tmpScale);
|
||||||
params.impulseDenoise.thresh =
|
|
||||||
int(float(params.impulseDenoise.thresh) * tmpScale);
|
|
||||||
if (tmpScale < 0.5) {
|
|
||||||
params.impulseDenoise.enabled = false;
|
|
||||||
}
|
|
||||||
params.wavelet.strength =
|
|
||||||
int(float(params.wavelet.strength) * tmpScale);
|
|
||||||
params.dirpyrDenoise.luma *= tmpScale;
|
|
||||||
//params.dirpyrDenoise.smethod = "shal";
|
|
||||||
|
|
||||||
const double dirpyreq_scale = min(tmpScale * 1.5, 1.0);
|
|
||||||
for (int i = 0; i < 6; ++i) {
|
|
||||||
auto &n = params.dirpyrequalizer.mult[i];
|
|
||||||
n = 1.0 + (n - 1.0) * dirpyreq_scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
fw = imw;
|
fw = imw;
|
||||||
fh = imh;
|
fh = imh;
|
||||||
}
|
|
||||||
|
|
||||||
delete baseImg;
|
delete baseImg;
|
||||||
baseImg = new Imagefloat(fw, fh);
|
baseImg = new Imagefloat(fw, fh);
|
||||||
@ -1404,6 +1388,56 @@ private:
|
|||||||
delete tmplab;
|
delete tmplab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void adjust_procparams(double scale_factor)
|
||||||
|
{
|
||||||
|
procparams::ProcParams& params = job->pparams;
|
||||||
|
procparams::ProcParams defaultparams;
|
||||||
|
|
||||||
|
#define ADJUST_RADIUS_(n, f) \
|
||||||
|
do { \
|
||||||
|
auto delta = (params. n - defaultparams. n) * f; \
|
||||||
|
params. n = defaultparams. n + delta; \
|
||||||
|
} while (false)
|
||||||
|
|
||||||
|
params.resize.enabled = false;
|
||||||
|
|
||||||
|
if (params.prsharpening.enabled) {
|
||||||
|
params.sharpening = params.prsharpening;
|
||||||
|
} else {
|
||||||
|
ADJUST_RADIUS_(sharpening.radius, scale_factor);
|
||||||
|
}
|
||||||
|
params.impulseDenoise.thresh =
|
||||||
|
int(float(params.impulseDenoise.thresh) * scale_factor);
|
||||||
|
if (scale_factor < 0.5) {
|
||||||
|
params.impulseDenoise.enabled = false;
|
||||||
|
}
|
||||||
|
params.wavelet.strength =
|
||||||
|
int(float(params.wavelet.strength) * scale_factor);
|
||||||
|
params.dirpyrDenoise.luma *= scale_factor;
|
||||||
|
//params.dirpyrDenoise.smethod = "shal";
|
||||||
|
for (auto &p : params.dirpyrDenoise.lcurve) {
|
||||||
|
p *= scale_factor;
|
||||||
|
}
|
||||||
|
for (auto &p : params.dirpyrDenoise.cccurve) {
|
||||||
|
p *= scale_factor;
|
||||||
|
}
|
||||||
|
|
||||||
|
params.epd.scale *= scale_factor;
|
||||||
|
params.epd.edgeStopping *= scale_factor;
|
||||||
|
|
||||||
|
const double dirpyreq_scale = min(scale_factor * 1.5, 1.0);
|
||||||
|
for (int i = 0; i < 6; ++i) {
|
||||||
|
ADJUST_RADIUS_(dirpyrequalizer.mult[i], dirpyreq_scale);
|
||||||
|
// auto &n = params.dirpyrequalizer.mult[i];
|
||||||
|
// n = 1.0 + (n - 1.0) * dirpyreq_scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
ADJUST_RADIUS_(defringe.radius, scale_factor);
|
||||||
|
ADJUST_RADIUS_(sh.radius, scale_factor);
|
||||||
|
|
||||||
|
#undef ADJUST_RADIUS_
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProcessingJobImpl* job;
|
ProcessingJobImpl* job;
|
||||||
int& errorCode;
|
int& errorCode;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user