Removed benchmark code and made Color::gammatabThumb a LUTuc
This commit is contained in:
parent
1b220543f3
commit
f0113b8f57
@ -52,6 +52,8 @@
|
|||||||
* LUTf stands for LUT<float>
|
* LUTf stands for LUT<float>
|
||||||
* LUTi stands for LUT<int>
|
* LUTi stands for LUT<int>
|
||||||
* LUTu stands for LUT<unsigned int>
|
* LUTu stands for LUT<unsigned int>
|
||||||
|
* LUTd stands for LUT<double>
|
||||||
|
* LUTuc stands for LUT<unsigned char>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef LUT_H_
|
#ifndef LUT_H_
|
||||||
@ -65,6 +67,7 @@
|
|||||||
#define LUTi LUT<int>
|
#define LUTi LUT<int>
|
||||||
#define LUTu LUT<unsigned int>
|
#define LUTu LUT<unsigned int>
|
||||||
#define LUTd LUT<double>
|
#define LUTd LUT<double>
|
||||||
|
#define LUTuc LUT<unsigned char>
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
|
@ -36,7 +36,7 @@ LUTf Color::cachef;
|
|||||||
LUTf Color::gamma2curve;
|
LUTf Color::gamma2curve;
|
||||||
|
|
||||||
LUTf Color::gammatab;
|
LUTf Color::gammatab;
|
||||||
unsigned char* Color::gammatabThumb = nullptr;
|
LUTuc Color::gammatabThumb;
|
||||||
LUTf Color::igammatab_srgb;
|
LUTf Color::igammatab_srgb;
|
||||||
LUTf Color::gammatab_srgb;
|
LUTf Color::gammatab_srgb;
|
||||||
// LUTf Color::igammatab_709;
|
// LUTf Color::igammatab_709;
|
||||||
@ -141,7 +141,7 @@ void Color::init ()
|
|||||||
cachef(maxindex, LUT_CLIP_BELOW);
|
cachef(maxindex, LUT_CLIP_BELOW);
|
||||||
gamma2curve(maxindex, LUT_CLIP_BELOW | LUT_CLIP_ABOVE);
|
gamma2curve(maxindex, LUT_CLIP_BELOW | LUT_CLIP_ABOVE);
|
||||||
gammatab(maxindex, 0);
|
gammatab(maxindex, 0);
|
||||||
gammatabThumb = new unsigned char[maxindex];
|
gammatabThumb(maxindex, 0);
|
||||||
|
|
||||||
igammatab_srgb(maxindex, 0);
|
igammatab_srgb(maxindex, 0);
|
||||||
gammatab_srgb(maxindex, 0);
|
gammatab_srgb(maxindex, 0);
|
||||||
@ -163,20 +163,25 @@ void Color::init ()
|
|||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp parallel sections
|
#pragma omp parallel sections
|
||||||
#endif // _OPENMP
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp section
|
#pragma omp section
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
int epsmaxint = eps_max;
|
||||||
|
|
||||||
for (int i = 0; i < maxindex; i++) {
|
for (; i <= epsmaxint; i++)
|
||||||
if (i > eps_max) {
|
{
|
||||||
cachef[i] = 327.68 * std::cbrt((double)i / MAXVALF);
|
|
||||||
} else {
|
|
||||||
cachef[i] = 327.68 * ((kappa * i / MAXVALF + 16.0) / 116.0);
|
cachef[i] = 327.68 * ((kappa * i / MAXVALF + 16.0) / 116.0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
for(; i < maxindex; i++)
|
||||||
|
{
|
||||||
|
cachef[i] = 327.68 * std::cbrt((double)i / MAXVALF);
|
||||||
|
}
|
||||||
|
}
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp section
|
#pragma omp section
|
||||||
#endif
|
#endif
|
||||||
@ -293,7 +298,6 @@ void Color::init ()
|
|||||||
gammatab_26_11[i] = 65535.0 * gamma26_11 (i / 65535.0);
|
gammatab_26_11[i] = 65535.0 * gamma26_11 (i / 65535.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//gammatab_145_3
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#pragma omp section
|
#pragma omp section
|
||||||
#endif
|
#endif
|
||||||
@ -335,10 +339,6 @@ void Color::cleanup ()
|
|||||||
if (linearGammaTRC) {
|
if (linearGammaTRC) {
|
||||||
cmsFreeToneCurve(linearGammaTRC);
|
cmsFreeToneCurve(linearGammaTRC);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gammatabThumb) {
|
|
||||||
delete [] gammatabThumb;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Color::rgb2hsl(float r, float g, float b, float &h, float &s, float &l)
|
void Color::rgb2hsl(float r, float g, float b, float &h, float &s, float &l)
|
||||||
|
@ -148,7 +148,7 @@ public:
|
|||||||
|
|
||||||
// look-up tables for the simple exponential gamma
|
// look-up tables for the simple exponential gamma
|
||||||
static LUTf gammatab;
|
static LUTf gammatab;
|
||||||
static unsigned char *gammatabThumb; // for thumbnails
|
static LUTuc gammatabThumb; // for thumbnails
|
||||||
|
|
||||||
|
|
||||||
static void init ();
|
static void init ();
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
#include "rtthumbnail.h"
|
#include "rtthumbnail.h"
|
||||||
#include "../rtgui/profilestore.h"
|
#include "../rtgui/profilestore.h"
|
||||||
#include "../rtgui/threadutils.h"
|
#include "../rtgui/threadutils.h"
|
||||||
#define BENCHMARK
|
|
||||||
#include "StopWatch.h"
|
|
||||||
|
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
{
|
{
|
||||||
@ -41,7 +39,6 @@ MyMutex* lcmsMutex = NULL;
|
|||||||
|
|
||||||
int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDir)
|
int init (const Settings* s, Glib::ustring baseDir, Glib::ustring userSettingsDir)
|
||||||
{
|
{
|
||||||
BENCHFUN
|
|
||||||
settings = s;
|
settings = s;
|
||||||
iccStore->init (s->iccDirectory, baseDir + "/iccprofiles");
|
iccStore->init (s->iccDirectory, baseDir + "/iccprofiles");
|
||||||
iccStore->findDefaultMonitorProfile();
|
iccStore->findDefaultMonitorProfile();
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
#include "rawimagesource.h"
|
#include "rawimagesource.h"
|
||||||
#include "improcfun.h"
|
#include "improcfun.h"
|
||||||
#include "opthelper.h"
|
#include "opthelper.h"
|
||||||
#define BENCHMARK
|
//#define BENCHMARK
|
||||||
#include "StopWatch.h"
|
#include "StopWatch.h"
|
||||||
|
|
||||||
#define MAX_RETINEX_SCALES 8
|
#define MAX_RETINEX_SCALES 8
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include "iimage.h"
|
#include "iimage.h"
|
||||||
#include "rtthumbnail.h"
|
#include "rtthumbnail.h"
|
||||||
#include "rawimagesource.h"
|
#include "rawimagesource.h"
|
||||||
#include "StopWatch.h"
|
|
||||||
|
|
||||||
using namespace rtengine;
|
using namespace rtengine;
|
||||||
using namespace procparams;
|
using namespace procparams;
|
||||||
@ -144,9 +143,7 @@ PreviewImage::PreviewImage (const Glib::ustring &fname, const Glib::ustring &ext
|
|||||||
rawImage.getImage (wb, TR_NONE, image, pp, params.toneCurve, params.icm, params.raw);
|
rawImage.getImage (wb, TR_NONE, image, pp, params.toneCurve, params.icm, params.raw);
|
||||||
output = new Image8(fw, fh);
|
output = new Image8(fw, fh);
|
||||||
rawImage.convertColorSpace(image, params.icm, wb);
|
rawImage.convertColorSpace(image, params.icm, wb);
|
||||||
StopWatch Stop1("inspector loop");
|
|
||||||
#pragma omp parallel for schedule(dynamic, 10)
|
#pragma omp parallel for schedule(dynamic, 10)
|
||||||
|
|
||||||
for (int i = 0; i < fh; ++i)
|
for (int i = 0; i < fh; ++i)
|
||||||
for (int j = 0; j < fw; ++j) {
|
for (int j = 0; j < fw; ++j) {
|
||||||
image->r(i, j) = Color::gamma2curve[image->r(i, j)];
|
image->r(i, j) = Color::gamma2curve[image->r(i, j)];
|
||||||
@ -154,7 +151,6 @@ PreviewImage::PreviewImage (const Glib::ustring &fname, const Glib::ustring &ext
|
|||||||
image->b(i, j) = Color::gamma2curve[image->b(i, j)];
|
image->b(i, j) = Color::gamma2curve[image->b(i, j)];
|
||||||
}
|
}
|
||||||
|
|
||||||
Stop1.stop();
|
|
||||||
|
|
||||||
image->resizeImgTo<Image8>(fw, fh, TI_Nearest, output);
|
image->resizeImgTo<Image8>(fw, fh, TI_Nearest, output);
|
||||||
data = output->getData();
|
data = output->getData();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user