better (local) caching of fattal results in dcrop
Use new M_HDR todo code instead of using M_RGBCURVE for fattal (ported from Hombre's commit a9d02a7dca0b5dcd31f642046d94e1663b17c9ff)
This commit is contained in:
@@ -168,7 +168,7 @@ void Crop::update (int todo)
|
||||
|
||||
bool needstransform = parent->ipf.needsTransform();
|
||||
|
||||
if (todo & (M_INIT | M_LINDENOISE)) {
|
||||
if (todo & (M_INIT | M_LINDENOISE | M_HDR)) {
|
||||
MyMutex::MyLock lock (parent->minit); // Also used in improccoord
|
||||
|
||||
int tr = getCoarseBitMask (params.coarse);
|
||||
@@ -691,8 +691,8 @@ void Crop::update (int todo)
|
||||
createBuffer (cropw, croph);
|
||||
|
||||
std::unique_ptr<Imagefloat> fattalCrop;
|
||||
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.fattal.enabled) {
|
||||
Imagefloat *f = baseCrop;
|
||||
if ((todo & M_HDR) && params.fattal.enabled) {
|
||||
Imagefloat *f = origCrop;
|
||||
int fw = skips(parent->fw, skip);
|
||||
int fh = skips(parent->fh, skip);
|
||||
bool need_cropping = false;
|
||||
@@ -726,18 +726,14 @@ void Crop::update (int todo)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (f == origCrop) {
|
||||
fattalCrop.reset(baseCrop->copy());
|
||||
f = fattalCrop.get();
|
||||
}
|
||||
parent->ipf.ToneMapFattal02(f);
|
||||
|
||||
// crop back to the size expected by the rest of the pipeline
|
||||
if (need_cropping) {
|
||||
Imagefloat *c = new Imagefloat(cropw, croph);
|
||||
Imagefloat *c = origCrop;
|
||||
|
||||
int oy = cropy / skip;
|
||||
int ox = cropx / skip;
|
||||
int oy = trafy / skip;
|
||||
int ox = trafx / skip;
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for
|
||||
#endif
|
||||
@@ -750,7 +746,6 @@ void Crop::update (int todo)
|
||||
c->b(y, x) = f->b(cy, cx);
|
||||
}
|
||||
}
|
||||
fattalCrop.reset(c);
|
||||
baseCrop = c;
|
||||
} else {
|
||||
baseCrop = f;
|
||||
|
@@ -280,7 +280,7 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
|
||||
}
|
||||
}
|
||||
|
||||
if (todo & (M_INIT | M_LINDENOISE)) {
|
||||
if (todo & (M_INIT | M_LINDENOISE | M_HDR)) {
|
||||
MyMutex::MyLock initLock (minit); // Also used in crop window
|
||||
|
||||
imgsrc->HLRecovery_Global ( params.toneCurve); // this handles Color HLRecovery
|
||||
@@ -385,16 +385,13 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
|
||||
|
||||
readyphase++;
|
||||
|
||||
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.fattal.enabled) {
|
||||
Imagefloat *fattalprev = orig_prev->copy();
|
||||
ipf.ToneMapFattal02(fattalprev);
|
||||
if ((todo & M_HDR) && params.fattal.enabled) {
|
||||
ipf.ToneMapFattal02(orig_prev);
|
||||
if (oprevi != orig_prev) {
|
||||
delete oprevi;
|
||||
}
|
||||
oprevi = fattalprev;
|
||||
} else {
|
||||
oprevi = orig_prev;
|
||||
}
|
||||
oprevi = orig_prev;
|
||||
|
||||
progress ("Rotate / Distortion...", 100 * readyphase / numofphases);
|
||||
// Remove transformation if unneeded
|
||||
|
@@ -514,9 +514,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
DARKFRAME, // EvLensCorrMode
|
||||
DARKFRAME, // EvLensCorrLensfunCamera
|
||||
DARKFRAME, // EvLensCorrLensfunLens
|
||||
RGBCURVE, // EvTMFattalEnabled
|
||||
RGBCURVE, // EvTMFattalThreshold
|
||||
RGBCURVE // EvTMFattalAmount
|
||||
ALLNORAW, // EvTMFattalEnabled
|
||||
HDR, // EvTMFattalThreshold
|
||||
HDR // EvTMFattalAmount
|
||||
|
||||
};
|
||||
|
||||
|
@@ -20,22 +20,23 @@
|
||||
#define __REFRESHMAP__
|
||||
|
||||
// Use M_VOID if you wish to update the proc params without updating the preview at all !
|
||||
#define M_VOID (1<<16)
|
||||
#define M_VOID (1<<17)
|
||||
// Use M_MINUPDATE if you wish to update the preview without modifying the image (think about it like a "refreshPreview")
|
||||
// Must NOT be used with other event (i.e. will be used for MINUPDATE only)
|
||||
#define M_MINUPDATE (1<<15)
|
||||
#define M_MINUPDATE (1<<16)
|
||||
// Force high quality
|
||||
#define M_HIGHQUAL (1<<14)
|
||||
#define M_HIGHQUAL (1<<15)
|
||||
|
||||
// Elementary functions that can be done to
|
||||
// the preview image when an event occurs
|
||||
#define M_MONITOR (1<<13)
|
||||
#define M_RETINEX (1<<12)
|
||||
#define M_CROP (1<<11)
|
||||
#define M_PREPROC (1<<10)
|
||||
#define M_RAW (1<<9)
|
||||
#define M_INIT (1<<8)
|
||||
#define M_LINDENOISE (1<<7)
|
||||
#define M_MONITOR (1<<14)
|
||||
#define M_RETINEX (1<<13)
|
||||
#define M_CROP (1<<12)
|
||||
#define M_PREPROC (1<<11)
|
||||
#define M_RAW (1<<10)
|
||||
#define M_INIT (1<<9)
|
||||
#define M_LINDENOISE (1<<8)
|
||||
#define M_HDR (1<<7)
|
||||
#define M_TRANSFORM (1<<6)
|
||||
#define M_BLURMAP (1<<5)
|
||||
#define M_AUTOEXP (1<<4)
|
||||
@@ -46,12 +47,13 @@
|
||||
|
||||
// Bitfield of functions to do to the preview image when an event occurs
|
||||
// Use those or create new ones for your new events
|
||||
#define FIRST (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR|M_MONITOR) // without HIGHQUAL
|
||||
#define ALL (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR) // without HIGHQUAL
|
||||
#define DARKFRAME (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define FLATFIELD (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define DEMOSAIC (M_RAW|M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define ALLNORAW (M_INIT|M_LINDENOISE|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define FIRST (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR|M_MONITOR) // without HIGHQUAL
|
||||
#define ALL (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR) // without HIGHQUAL
|
||||
#define DARKFRAME (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define FLATFIELD (M_PREPROC|M_RAW|M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define DEMOSAIC (M_RAW|M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define ALLNORAW (M_INIT|M_LINDENOISE|M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define HDR (M_HDR|M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define TRANSFORM (M_TRANSFORM|M_BLURMAP|M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define AUTOEXP (M_AUTOEXP|M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
#define RGBCURVE (M_RGBCURVE|M_LUMACURVE|M_LUMINANCE|M_COLOR)
|
||||
|
Reference in New Issue
Block a user