Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
7dd9bb7
pixelpipe: added filter annotation to disable plugins on export
hanatos Jun 20, 2012
6440d86
denoise: add buttons and stubs of background jobs.
hanatos Jun 20, 2012
d5a3918
denoise: write out seed images halfway through the pipe as pfm.
hanatos Jun 20, 2012
a0bbd36
denoise: two new files to encapsulate the denoising code.
hanatos Jun 21, 2012
9f47c5b
denoise: some support code.
hanatos Jun 23, 2012
8c8552f
denoise: compile fixes (tmp)
hanatos Jun 23, 2012
fa554d2
denoise: this works, is slow and somewhat underwhelming.
hanatos Jun 25, 2012
9c183b9
denoise: added edge buffers + blurring (buggy)
hanatos Jun 27, 2012
80375ff
denoise: add downsized prior accumulation.
hanatos Sep 21, 2012
3c59cad
superres: initial plugin stub.
hanatos Sep 22, 2012
d1f3c9c
superres: upsize using almost naive upsampling first.
hanatos Sep 23, 2012
ad45cee
superres: added rough outline of the algo.
hanatos Sep 26, 2012
9648146
superres: some debugging work.
hanatos Sep 27, 2012
671fe8d
superres: a few bugfixes. still sucks.
hanatos Oct 5, 2012
3c602db
Merge branch 'master' into superres
hanatos Oct 28, 2012
106311b
denoise: bilateral with better sigma estimates.
hanatos Oct 28, 2012
6767e90
noise profile support code.
hanatos Nov 1, 2012
d12ea4a
imageio: one step ahead supporting non-bayer dng (still doesn't work …
hanatos Nov 3, 2012
193d626
noise profiling: more tools.
hanatos Nov 3, 2012
ec26e84
noise profile: some histogram flattening.
hanatos Nov 3, 2012
a07ae74
superres: use max instead of weighted sum. works totally shitty.
hanatos Nov 4, 2012
45b29b7
another useless ldr dng fix.
hanatos Nov 6, 2012
34eac7e
noise profile: histogram loading wip
hanatos Nov 6, 2012
e30d308
noise profile: remove debugging code.
hanatos Nov 10, 2012
e7d3cd3
color picker: keep gui in sync.
hanatos Nov 10, 2012
6b7aff7
Merge branch 'master' into superres
hanatos Nov 10, 2012
f025aa3
noise profile: more experiments.
hanatos Nov 11, 2012
d770677
noise profile: first checkin of denoise module that goes with it.
hanatos Nov 14, 2012
54c3a8d
flush denormals to zero, makes compute go faster.
hanatos Nov 17, 2012
07a268b
added denoise profiled to dependencies.
hanatos Nov 17, 2012
2df8cc3
denoise profiled: update priority manually to avoid conflicts.
hanatos Nov 17, 2012
865efc9
noise profile: more debugging output.
hanatos Nov 17, 2012
a0a0235
noise profile: normalize cdf and try to fit a few other functions
hanatos Nov 18, 2012
549d6b5
noise profiling: add two more papers worth of stuff.
hanatos Nov 20, 2012
a0c0b65
noise profile: more robust fitting.
hanatos Nov 22, 2012
8460e82
noise profile: some work on the actual dt implementation.
hanatos Nov 22, 2012
5a649e6
noise profile: update module order.
hanatos Nov 22, 2012
4c6180f
noise profile: pipeline ordering.
hanatos Nov 22, 2012
46ed05e
global tonemap: add to iop dependencies.
hanatos Nov 22, 2012
661985e
noise profile: wip module with input transform.
hanatos Nov 23, 2012
8d8b269
noise profile: first look :)
hanatos Nov 25, 2012
ab2631c
noise profile: some cleanup and trying to get absolute values right.
hanatos Nov 25, 2012
c5c27bd
Merge branch 'master' into superres
hanatos Nov 25, 2012
6939766
noise profile: more debugging.
hanatos Nov 29, 2012
76d9104
bauhaus: also follow pointer if initial state is 0/100
hanatos Dec 1, 2012
ff27f19
noise profile: more 5dm2 profiles to test.
hanatos Dec 1, 2012
c9954d7
noise profile: put some arbitrary manual finetuning in the mix.
hanatos Dec 1, 2012
b7baf62
Merge branch 'superres' into denoise
hanatos Dec 1, 2012
0da0d9b
superres: disable for now, stays alive it its own branch.
hanatos Dec 1, 2012
ac7d1e2
basecurve: put comments back to where they belong.
hanatos Dec 2, 2012
9e61280
noise profile: nicer list of per camera/iso presets.
hanatos Dec 2, 2012
6980a0f
noise profile: better tooltips.
hanatos Dec 2, 2012
2da2ff5
noise profile: switch to asymptotic inverse of anscombe transform.
hanatos Dec 2, 2012
b5306ef
noise profile: exponential spatial falloff. needs experiments.
hanatos Dec 2, 2012
5eb9f71
Revert "noise profile: exponential spatial falloff. needs experiments."
hanatos Dec 2, 2012
d9bccf2
noise profile: more tools.
hanatos Dec 2, 2012
1637c07
noise profile: wip integrate wavelets instead of nlmeans.
hanatos Dec 5, 2012
63f8930
nlmeans: correct double square distance.
hanatos Dec 5, 2012
3df8df8
noise profile: debug: try to put some sharpness back.
hanatos Dec 7, 2012
d71652b
Merge branch 'master' into denoise
hanatos Dec 7, 2012
2df1656
export: added $(ISO_EXIF) to variables.
hanatos Dec 7, 2012
4bc33d9
move: print out error message.
hanatos Dec 8, 2012
bf5c712
noise profile: new and more complete presets for eos 5dm2
hanatos Dec 8, 2012
74c063a
noise profile: better PSNR.
hanatos Dec 8, 2012
0c202cb
noise profile: directly output copy/pastable presets
hanatos Dec 8, 2012
7a186af
noise profile: added sony a700 contributed by wolf kuehnel.
hanatos Dec 13, 2012
95b61f9
presets: fix a bug in a header
hanatos Dec 13, 2012
363315d
noise profiles: only show for matching camera.
hanatos Dec 13, 2012
caf0bf4
Merge remote-tracking branch 'origin/master' into denoise
hanatos Dec 13, 2012
9860289
presets: another bugfix for filtering.
hanatos Dec 13, 2012
ae60719
noise profiles: adjust metadata to show eos camera again.
hanatos Dec 13, 2012
02f9232
noise profile: contributed presets for pentax k-5 by elliott.
hanatos Dec 13, 2012
3dfbe38
noise profile: two new cameras: pentax k100d and sony nex 6.
hanatos Dec 13, 2012
ea1f5f5
noise profile: fixed exif data for sony nex-*.
hanatos Dec 13, 2012
4cf54bb
noise profile: presets for olympus e-pl1 contributed by José Carlos R…
hanatos Dec 13, 2012
3c37b36
noise profile: compile fix.
hanatos Dec 14, 2012
551e04e
noise profile: first step for easier (compile free) testing.
hanatos Dec 14, 2012
88b357e
noise profile: simpler script and testing without recompile.
hanatos Dec 15, 2012
c2bb9cb
noise profile: added canon eos 550D
hanatos Dec 15, 2012
136cad7
noise profile: Add profile for Canon EOS 20D
dumbbell Dec 15, 2012
d047423
noise profile: make.sh to yell at you in case it can't find floatdump.
hanatos Dec 16, 2012
ca302d7
noise profile: support changed/old/new database schemas in make.sh
hanatos Dec 16, 2012
52a91f6
noise profile: presets for the D5000
hanatos Dec 16, 2012
daa9fe8
Add profiling data for the Nikon D800.
TurboGit Dec 17, 2012
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/common/darktable.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#include <sys/param.h>
#include <unistd.h>
#include <locale.h>
#include <xmmintrin.h>

#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__DragonFly__)
#include <malloc.h>
Expand Down Expand Up @@ -384,6 +385,8 @@ int dt_load_from_string(const gchar* input, gboolean open_image_in_dr)

int dt_init(int argc, char *argv[], const int init_gui)
{
// make everything go a lot faster.
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
#ifndef __APPLE__
_dt_sigsegv_old_handler = signal(SIGSEGV,&_dt_sigsegv_handler);
#endif
Expand Down
4 changes: 4 additions & 0 deletions src/common/image.c
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,10 @@ int32_t dt_image_move(const int32_t imgid, const int32_t filmid)
g_list_free(dup_list);
result = 0;
}
else
{
fprintf(stderr, "[dt_image_move] error moving `%s' -> `%s'\n", oldimg, newimg);
}
}

return result;
Expand Down
37 changes: 29 additions & 8 deletions src/common/imageio.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,6 @@ dt_imageio_open_raw(
ret = libraw_unpack(raw);
// img->black = raw->color.black/65535.0;
// img->maximum = raw->color.maximum/65535.0;
img->bpp = sizeof(uint16_t);
// printf("black, max: %d %d %f %f\n", raw->color.black, raw->color.maximum, img->black, img->maximum);
HANDLE_ERRORS(ret, 1);
ret = libraw_dcraw_process(raw);
Expand All @@ -302,6 +301,7 @@ dt_imageio_open_raw(
img->orientation = raw->sizes.flip;
// filters seem only ever to take a useful value after unpack/process
img->filters = raw->idata.filters;
img->bpp = img->filters ? sizeof(uint16_t) : 4*sizeof(float);
img->width = (img->orientation & 4) ? raw->sizes.height : raw->sizes.width;
img->height = (img->orientation & 4) ? raw->sizes.width : raw->sizes.height;
img->exif_iso = raw->other.iso_speed;
Expand All @@ -322,21 +322,34 @@ dt_imageio_open_raw(
free(image);
return DT_IMAGEIO_CACHE_FULL;
}
if(img->filters)
{
#ifdef _OPENMP
#pragma omp parallel for schedule(static) default(none) shared(img, image, raw, buf)
#endif
for(int k=0; k<img->width*img->height; k++)
((uint16_t *)buf)[k] = CLAMPS((((uint16_t *)image->data)[k] - raw->color.black)*65535.0f/(float)(raw->color.maximum - raw->color.black), 0, 0xffff);
for(int k=0; k<img->width*img->height; k++)
((uint16_t *)buf)[k] = CLAMPS((((uint16_t *)image->data)[k] - raw->color.black)*65535.0f/(float)(raw->color.maximum - raw->color.black), 0, 0xffff);
}
// clean up raw stuff.
libraw_recycle(raw);
libraw_close(raw);
free(image);
raw = NULL;
image = NULL;

img->flags &= ~DT_IMAGE_LDR;
img->flags &= ~DT_IMAGE_HDR;
img->flags |= DT_IMAGE_RAW;
if(img->filters)
{
img->flags &= ~DT_IMAGE_LDR;
img->flags &= ~DT_IMAGE_HDR;
img->flags |= DT_IMAGE_RAW;
}
else
{
// ldr dng. it exists :(
img->flags &= ~DT_IMAGE_RAW;
img->flags &= ~DT_IMAGE_HDR;
img->flags |= DT_IMAGE_LDR;
}
return DT_IMAGEIO_OK;
}

Expand Down Expand Up @@ -462,7 +475,7 @@ int dt_imageio_export(
return format->write_image(format_params, filename, NULL, NULL, 0, imgid);
else
return dt_imageio_export_with_flags(imgid, filename, format, format_params,
0, 0, high_quality, 0);
0, 0, high_quality, 0, NULL);
}

// internal function: to avoid exif blob reading + 8-bit byteorder flag + high-quality override
Expand All @@ -474,7 +487,8 @@ int dt_imageio_export_with_flags(
const int32_t ignore_exif,
const int32_t display_byteorder,
const gboolean high_quality,
const int32_t thumbnail_export)
const int32_t thumbnail_export,
const char *filter)
{
dt_develop_t dev;
dt_dev_init(&dev, 0);
Expand Down Expand Up @@ -511,6 +525,13 @@ int dt_imageio_export_with_flags(
dt_dev_pixelpipe_create_nodes(&pipe, &dev);
dt_dev_pixelpipe_synch_all(&pipe, &dev);
dt_dev_pixelpipe_get_dimensions(&pipe, &dev, pipe.iwidth, pipe.iheight, &pipe.processed_width, &pipe.processed_height);
if(filter)
{
if(!strncmp(filter, "pre:", 4))
dt_dev_pixelpipe_disable_after(&pipe, filter+4);
if(!strncmp(filter, "post:", 5))
dt_dev_pixelpipe_disable_before(&pipe, filter+5);
}
dt_show_times(&start, "[export] creating pixelpipe", NULL);

// find output color profile for this image:
Expand Down
3 changes: 2 additions & 1 deletion src/common/imageio.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ dt_imageio_export_with_flags(
const int32_t ignore_exif,
const int32_t display_byteorder,
const gboolean high_quality,
const int32_t thumbnail_export);
const int32_t thumbnail_export,
const char *filter);

int dt_imageio_write_pos(int i, int j, int wd, int ht, float fwd, float fht, int orientation);

Expand Down
2 changes: 1 addition & 1 deletion src/common/mipmap_cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ _init_8(
dat.head.max_height = ht;
dat.buf = buf;
// export with flags: ignore exif (don't load from disk), don't swap byte order, don't do hq processing, and signal we want thumbnail export
res = dt_imageio_export_with_flags(imgid, "unused", &format, (dt_imageio_module_data_t *)&dat, 1, 1, 0, 1);
res = dt_imageio_export_with_flags(imgid, "unused", &format, (dt_imageio_module_data_t *)&dat, 1, 1, 0, 1, NULL);
if(!res)
{
// might be smaller, or have a different aspect than what we got as input.
Expand Down
3 changes: 3 additions & 0 deletions src/common/variables.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ gboolean _variable_get_value(dt_variables_params_t *params, gchar *variable,gcha

/* image exif time */
gboolean have_exif_tm = FALSE;
int exif_iso = 100;
struct tm exif_tm= {0};
if (params->imgid)
{
Expand All @@ -136,6 +137,7 @@ gboolean _variable_get_value(dt_variables_params_t *params, gchar *variable,gcha
exif_tm.tm_mon--;
have_exif_tm = TRUE;
}
exif_iso = img->exif_iso;
dt_image_cache_read_release(darktable.image_cache, img);
}

Expand All @@ -152,6 +154,7 @@ gboolean _variable_get_value(dt_variables_params_t *params, gchar *variable,gcha
else if( g_strcmp0(variable,"$(EXIF_HOUR)") == 0 && (got_value=TRUE) ) sprintf(value,"%.2d", (have_exif_tm?exif_tm.tm_hour:tim->tm_hour));
else if( g_strcmp0(variable,"$(EXIF_MINUTE)") == 0 && (got_value=TRUE) ) sprintf(value,"%.2d", (have_exif_tm?exif_tm.tm_min:tim->tm_min));
else if( g_strcmp0(variable,"$(EXIF_SECOND)") == 0 && (got_value=TRUE) ) sprintf(value,"%.2d", (have_exif_tm?exif_tm.tm_sec:tim->tm_sec));
else if( g_strcmp0(variable,"$(EXIF_ISO)") == 0 && (got_value=TRUE) ) sprintf(value,"%d", exif_iso);
else if( g_strcmp0(variable,"$(ID)") == 0 && (got_value=TRUE) ) sprintf(value,"%d", params->imgid);
else if( g_strcmp0(variable,"$(JOBCODE)") == 0 && (got_value=TRUE) ) sprintf(value,"%s",params->jobcode);
else if( g_strcmp0(variable,"$(ROLL_NAME)") == 0 && params->filename && (got_value=TRUE) ) sprintf(value,"%s",g_path_get_basename(g_path_get_dirname(params->filename)));
Expand Down
6 changes: 6 additions & 0 deletions src/control/jobs/control_jobs.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@ void dt_control_copy_images();
void dt_control_export(int max_width, int max_height, int format_index, int storage_index, gboolean high_quality);
void dt_control_merge_hdr();

void dt_control_gpx_apply(const gchar *filename, int32_t filmid, const gchar *tz);
void dt_control_time_offset(const long int offset, long int imgid);

void dt_control_seed_denoise();
void dt_control_denoise();

struct dt_similarity_t;
void dt_control_match_similar(struct dt_similarity_t *data);

Expand Down
16 changes: 9 additions & 7 deletions src/develop/develop.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,11 +346,13 @@ void dt_dev_reload_image(dt_develop_t *dev, const uint32_t imgid)
float dt_dev_get_zoom_scale(dt_develop_t *dev, dt_dev_zoom_t zoom, int closeup_factor, int preview)
{
float zoom_scale;
// set processed width to something useful while image is not there yet:
int procw, proch;
dt_dev_get_processed_size(dev, &procw, &proch);
const float w = preview ? dev->preview_pipe->backbuf_width : procw;
const float h = preview ? dev->preview_pipe->backbuf_height : proch;

const float w = preview ? dev->preview_pipe->processed_width : dev->pipe->processed_width;
const float h = preview ? dev->preview_pipe->processed_height : dev->pipe->processed_height;
const float ps = dev->pipe->backbuf_width ?
dev->pipe->processed_width/(float)dev->preview_pipe->processed_width :
dev->preview_pipe->iscale / dev->preview_downsampling;

switch(zoom)
{
case DT_ZOOM_FIT:
Expand All @@ -361,11 +363,11 @@ float dt_dev_get_zoom_scale(dt_develop_t *dev, dt_dev_zoom_t zoom, int closeup_f
break;
case DT_ZOOM_1:
zoom_scale = closeup_factor;
if(preview) zoom_scale *= dev->preview_pipe->iscale / dev->preview_downsampling;
if(preview) zoom_scale *= ps;
break;
default: // DT_ZOOM_FREE
DT_CTL_GET_GLOBAL(zoom_scale, dev_zoom_scale);
if(preview) zoom_scale *= dev->preview_pipe->iscale / dev->preview_downsampling;
if(preview) zoom_scale *= ps;
break;
}
return zoom_scale;
Expand Down
35 changes: 35 additions & 0 deletions src/develop/pixelpipe_hb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1413,6 +1413,41 @@ int dt_dev_pixelpipe_process_no_gamma(dt_dev_pixelpipe_t *pipe, dt_develop_t *de
return ret;
}

void dt_dev_pixelpipe_disable_after(
dt_dev_pixelpipe_t *pipe,
const char *op)
{
GList *nodes = g_list_last(pipe->nodes);
dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)nodes->data;
while(strcmp(piece->module->op, op))
{
piece->enabled = 0;
piece = NULL;
nodes = g_list_previous(nodes);
if(!nodes) break;
piece = (dt_dev_pixelpipe_iop_t *)nodes->data;
}
// disable the last (matching one), too
if(piece) piece->enabled = 0;
}

void dt_dev_pixelpipe_disable_before(
dt_dev_pixelpipe_t *pipe,
const char *op)
{
GList *nodes = pipe->nodes;
dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)nodes->data;
while(strcmp(piece->module->op, op))
{
piece->enabled = 0;
piece = NULL;
nodes = g_list_next(nodes);
if(!nodes) break;
piece = (dt_dev_pixelpipe_iop_t *)nodes->data;
}
// disable the last (matching one), too
if(piece) piece->enabled = 0;
}

static int
dt_dev_pixelpipe_process_rec_and_backcopy(dt_dev_pixelpipe_t *pipe, dt_develop_t *dev, void **output, void **cl_mem_output, int *out_bpp,
Expand Down
5 changes: 5 additions & 0 deletions src/develop/pixelpipe_hb.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@ int dt_dev_pixelpipe_process(dt_dev_pixelpipe_t *pipe, struct dt_develop_t *dev,
// convenience method that does not gamma-compress the image.
int dt_dev_pixelpipe_process_no_gamma(dt_dev_pixelpipe_t *pipe, struct dt_develop_t *dev, int x, int y, int width, int height, float scale);

// disable given op and all that comes after it in the pipe:
void dt_dev_pixelpipe_disable_after(dt_dev_pixelpipe_t *pipe, const char *op);
// disable given op andn all that comes before it in the pipe:
void dt_dev_pixelpipe_disable_before(dt_dev_pixelpipe_t *pipe, const char *op);


// TODO: future application: remove/add modules from list, load from disk, user programmable etc
// TODO: add n-th module in dev list to gegl pipeline
Expand Down
1 change: 1 addition & 0 deletions src/gui/gtkentry.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ dt_gtkentry_get_default_path_compl_list ()
{ "EXIF_HOUR", N_("$(EXIF_HOUR) - exif hour") },
{ "EXIF_MINUTE", N_("$(EXIF_MINUTE) - exif minute") },
{ "EXIF_SECOND", N_("$(EXIF_SECOND) - exif second") },
{ "EXIF_ISO", N_("$(EXIF_ISO) - iso value") },
{ "STARS", N_("$(STARS) - star rating") },
{ "LABELS", N_("$(LABELS) - colorlabels") },
{ "PICTURES_FOLDER", N_("$(PICTURES_FOLDER) - pictures folder") },
Expand Down
2 changes: 1 addition & 1 deletion src/gui/presets.c
Original file line number Diff line number Diff line change
Expand Up @@ -954,7 +954,7 @@ void dt_gui_presets_update_filter(const char *name, dt_dev_operation_t op, const
DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, filter);
DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, op, strlen(op), SQLITE_TRANSIENT);
DT_DEBUG_SQLITE3_BIND_INT(stmt, 3, version);
DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 3, name, strlen(name), SQLITE_TRANSIENT);
DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 4, name, strlen(name), SQLITE_TRANSIENT);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
}
Expand Down
2 changes: 1 addition & 1 deletion src/gui/presets.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ void dt_gui_presets_update_ldr(const char *name, dt_dev_operation_t op, const in
/** set auto apply property of preset. */
void dt_gui_presets_update_autoapply(const char *name, dt_dev_operation_t op, const int32_t version, const int autoapply);
/** set filter mode. if 1, the preset will only show for matching images. */
void dt_gui_presets_update_autoapply(const char *name, dt_dev_operation_t op, const int32_t version, const int filter);
void dt_gui_presets_update_filter(const char *name, dt_dev_operation_t op, const int32_t version, const int filter);

/** show a popup menu without initialized module. */
void
Expand Down
3 changes: 2 additions & 1 deletion src/iop/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set(MODULES tonecurve gamma temperature colorcorrection exposure
colortransfer colorize invert shadhi
cacorrect overexposed bloom soften clahe equalizer highpass
hotpixels lowlight spots rawdenoise borders nlmeans levels
flip globaltonemap bilat)
flip globaltonemap bilat denoiseprofile)

add_library(soften MODULE "soften.c")
add_library(bloom MODULE "bloom.c")
Expand Down Expand Up @@ -64,6 +64,7 @@ add_library(vibrance MODULE "vibrance.c")
add_library(flip MODULE "flip.c")
add_library(globaltonemap MODULE "globaltonemap.c")
add_library(bilat MODULE "bilat.c")
add_library(denoiseprofile MODULE "denoiseprofile.c")

if(RSVG2_FOUND)
add_library(watermark MODULE "watermark.c")
Expand Down
34 changes: 17 additions & 17 deletions src/iop/basecurve.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,40 +129,40 @@ basecurve_preset_t;
static const basecurve_preset_t basecurve_presets[] =
{
// just remove noise in dark areas:
// pascals canon eos curve (well tested):
// pascals alternate canon eos curve for 5D Mark II and III and potentially a future IV
// pascals nikon curve (new curve, needs testing):
// pascals alternate nikon curve for (four digit) Nikon Dxxxx models
// pascals sony alpha curve (needs testing):
// pascals pentax curve (needs testing):
// (needs testing):
// pascals olympus curve (needs testing):
// pascals alternate olympus curve for E-M5
// pascals panasonic/leica curves (needs testing):
// (needs testing):
// pascals kodak curve
// pascals minolta curve
// pascals samsung curve (needs testing):
// pascals fujifilm curve
// Fotogenetic - Point and shoot v4.1
// Fotogenetic - EV3 v4.2
{dark_contrast, "", "", 0, 51200, {{{{0.000000, 0.000000},{0.072581, 0.040000},{0.157258, 0.138710},{0.491935, 0.491935},{0.758065, 0.758065},{1.000000, 1.000000}}}, {6}, {m}}, 0},
// pascals canon eos curve (well tested):
{canon_eos, "Canon", "", 0, 51200, {{{{0.000000, 0.000000},{0.028226, 0.029677},{0.120968, 0.232258},{0.459677, 0.747581},{0.858871, 0.967742},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals alternate canon eos curve for 5D Mark II and III and potentially a future IV
{canon_eos_alt, "Canon", "EOS 5D Mark", 0, 51200, {{{{0.000000, 0.000000},{0.026210, 0.029677},{0.108871, 0.232258},{0.350806, 0.747581},{0.669355, 0.967742},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals nikon curve (new curve, needs testing):
{nikon, "NIKON", "", 0, 51200, {{{{0.000000, 0.000000},{0.036290, 0.036532},{0.120968, 0.228226},{0.459677, 0.759678},{0.858871, 0.983468},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals alternate nikon curve for (four digit) Nikon Dxxxx models
{nikon_alt, "NIKON", "D____", 0, 51200, {{{{0.000000, 0.000000},{0.012097, 0.007322},{0.072581, 0.130742},{0.310484, 0.729291},{0.611321, 0.951613},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals sony alpha curve (needs testing):
{sony_alpha, "SONY", "", 0, 51200, {{{{0.000000, 0.000000},{0.031949, 0.036532},{0.105431, 0.228226},{0.434505, 0.759678},{0.855738, 0.983468},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals pentax curve (needs testing):
{pentax, "PENTAX", "", 0, 51200, {{{{0.000000, 0.000000},{0.032258, 0.024596},{0.120968, 0.166419},{0.205645, 0.328527},{0.604839, 0.790171},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// (needs testing):
{ricoh, "RICOH", "", 0, 51200, {{{{0.000000, 0.000000},{0.032259, 0.024596},{0.120968, 0.166419},{0.205645, 0.328527},{0.604839, 0.790171},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals olympus curve (needs testing):
{olympus, "OLYMPUS", "", 0, 51200, {{{{0.000000, 0.000000},{0.012097, 0.010322},{0.116935, 0.167742},{0.556452, 0.711291},{0.899194, 0.956855},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals alternate olympus curve for E-M5
{olympus_alt, "OLYMPUS", "E-M5", 0, 51200, {{{{0.000000, 0.000000},{0.012097, 0.010322},{0.072581, 0.167742},{0.310484, 0.711291},{0.645161, 0.956855},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals panasonic/leica curves (needs testing):
{panasonic, "Panasonic", "", 0, 51200, {{{{0.000000, 0.000000},{0.036290, 0.024596},{0.120968, 0.166419},{0.205645, 0.328527},{0.604839, 0.790171},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// (needs testing):
{leica, "Leica Camera AG", "", 0, 51200, {{{{0.000000, 0.000000},{0.036291, 0.024596},{0.120968, 0.166419},{0.205645, 0.328527},{0.604839, 0.790171},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals kodak curve
{kodak_easyshare, "EASTMAN KODAK COMPANY", "", 0, 51200, {{{{0.000000, 0.000000},{0.044355, 0.020967},{0.133065, 0.154322},{0.209677, 0.300301},{0.572581, 0.753477},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals minolta curve
{konica_minolta, "MINOLTA", "", 0, 51200, {{{{0.000000, 0.000000},{0.020161, 0.010322},{0.112903, 0.167742},{0.500000, 0.711291},{0.899194, 0.956855},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals samsung curve (needs testing):
{samsung, "SAMSUNG", "", 0, 51200, {{{{0.000000, 0.000000},{0.040323, 0.029677},{0.133065, 0.232258},{0.447581, 0.747581},{0.842742, 0.967742},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// pascals fujifilm curve
{fujifilm, "FUJIFILM", "", 0, 51200, {{{{0.000000, 0.000000},{0.028226, 0.029677},{0.104839, 0.232258},{0.387097, 0.747581},{0.754032, 0.967742},{1.000000, 1.000000}}}, {6}, {m}}, 1},
// Fotogenetic - Point and shoot v4.1
{fotogenetic_v41, "", "", 0, 51200, {{{{0.000000, 0.000000},{0.087879, 0.125252},{0.175758, 0.250505},{0.353535, 0.501010},{0.612658, 0.749495},{1.000000, 0.876573}}}, {6}, {m}}, 0},
// Fotogenetic - EV3 v4.2
{fotogenetic_v42, "", "", 0, 51200, {{{{0.000000, 0.000000},{0.100943, 0.125252},{0.201886, 0.250505},{0.301010, 0.377778},{0.404040, 0.503030},{1.000000, 0.876768}}}, {6}, {m}}, 0}
};
#undef m
Expand Down
Loading