Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
denoiseprofile.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/eaw.h"
#include "common/exif.h"
#include "common/imagebuf.h"
#include "common/nlmeans_core.h"
#include "common/noiseprofiles.h"
#include "common/opencl.h"
#include "control/control.h"
#include "develop/blend.h"
#include "develop/imageop.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.h"
#include "develop/tiling.h"
#include "dtgtk/drawingarea.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include "iop/iop_api.h"
#include <gtk/gtk.h>
#include <math.h>
#include <stdlib.h>
+ Include dependency graph for denoiseprofile.c:

Data Structures

struct  dt_iop_denoiseprofile_params_v1_t
 
struct  dt_iop_denoiseprofile_params_v4_t
 
struct  dt_iop_denoiseprofile_params_v5_t
 
struct  dt_iop_denoiseprofile_params_v6_t
 
struct  dt_iop_denoiseprofile_params_v7_t
 
struct  dt_iop_denoiseprofile_params_v8_t
 
struct  dt_iop_denoiseprofile_params_v9_t
 
struct  dt_iop_denoiseprofile_params_v10_t
 
struct  dt_iop_denoiseprofile_params_t
 
struct  dt_iop_denoiseprofile_gui_data_t
 
struct  dt_iop_denoiseprofile_data_t
 
struct  dt_iop_denoiseprofile_global_data_t
 
union  floatint_t
 

Macros

#define USE_NEW_IMPL_CL   0
 
#define REDUCESIZE   64
 
#define NUM_BUCKETS   4
 
#define DT_IOP_DENOISE_PROFILE_INSET   DT_PIXEL_APPLY_DPI(5)
 
#define DT_IOP_DENOISE_PROFILE_RES   64
 
#define DT_IOP_DENOISE_PROFILE_V8_BANDS   5
 
#define DT_IOP_DENOISE_PROFILE_BANDS   7
 
#define DT_IOP_DENOISE_PROFILE_P_FULCRUM   0.05f
 
#define DT_DENOISE_PROFILE_NONE_V9   4
 
#define debug_dump_PFM(p, n, b, w, h, s)
 
#define MAX_MAX_SCALE   DT_IOP_DENOISE_PROFILE_BANDS
 

Typedefs

typedef enum dt_iop_denoiseprofile_mode_t dt_iop_denoiseprofile_mode_t
 
typedef enum dt_iop_denoiseprofile_wavelet_mode_t dt_iop_denoiseprofile_wavelet_mode_t
 
typedef enum dt_iop_denoiseprofile_channel_t dt_iop_denoiseprofile_channel_t
 
typedef struct dt_iop_denoiseprofile_params_v1_t dt_iop_denoiseprofile_params_v1_t
 
typedef struct dt_iop_denoiseprofile_params_v4_t dt_iop_denoiseprofile_params_v4_t
 
typedef struct dt_iop_denoiseprofile_params_v5_t dt_iop_denoiseprofile_params_v5_t
 
typedef struct dt_iop_denoiseprofile_params_v6_t dt_iop_denoiseprofile_params_v6_t
 
typedef struct dt_iop_denoiseprofile_params_v7_t dt_iop_denoiseprofile_params_v7_t
 
typedef struct dt_iop_denoiseprofile_params_v8_t dt_iop_denoiseprofile_params_v8_t
 
typedef struct dt_iop_denoiseprofile_params_v9_t dt_iop_denoiseprofile_params_v9_t
 
typedef struct dt_iop_denoiseprofile_params_v10_t dt_iop_denoiseprofile_params_v10_t
 
typedef struct dt_iop_denoiseprofile_params_t dt_iop_denoiseprofile_params_t
 
typedef struct dt_iop_denoiseprofile_gui_data_t dt_iop_denoiseprofile_gui_data_t
 
typedef struct dt_iop_denoiseprofile_data_t dt_iop_denoiseprofile_data_t
 
typedef struct dt_iop_denoiseprofile_global_data_t dt_iop_denoiseprofile_global_data_t
 
typedef union floatint_t floatint_t
 

Enumerations

enum  dt_iop_denoiseprofile_mode_t {
  MODE_NLMEANS = 0 ,
  MODE_WAVELETS = 1 ,
  MODE_VARIANCE = 2 ,
  MODE_NLMEANS_AUTO = 3 ,
  MODE_WAVELETS_AUTO = 4
}
 
enum  dt_iop_denoiseprofile_wavelet_mode_t {
  MODE_RGB = 0 ,
  MODE_Y0U0V0 = 1
}
 
enum  dt_iop_denoiseprofile_channel_t {
  DT_DENOISE_PROFILE_ALL = 0 ,
  DT_DENOISE_PROFILE_R = 1 ,
  DT_DENOISE_PROFILE_G = 2 ,
  DT_DENOISE_PROFILE_B = 3 ,
  DT_DENOISE_PROFILE_Y0 = 4 ,
  DT_DENOISE_PROFILE_U0V0 = 5 ,
  DT_DENOISE_PROFILE_NONE = 6
}
 

Functions

static dt_noiseprofile_t dt_iop_denoiseprofile_get_auto_profile (dt_iop_module_t *self)
 
int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
void init_presets (dt_iop_module_so_t *self)
 
const char * name ()
 
const char ** description (struct dt_iop_module_t *self)
 
int default_group ()
 
int flags ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void tiling_callback (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling)
 
static void precondition (const float *const in, float *const buf, const int wd, const int ht, const dt_aligned_pixel_t a, const dt_aligned_pixel_t b)
 
static void backtransform (float *const buf, const int wd, const int ht, const dt_aligned_pixel_t a, const dt_aligned_pixel_t b)
 
static void precondition_v2 (const float *const in, float *const buf, const int wd, const int ht, const float a, const dt_aligned_pixel_t p, const float b, const dt_aligned_pixel_t wb)
 
static void backtransform_v2 (float *const buf, const int wd, const int ht, const float a, const dt_aligned_pixel_t p, const float b, const float bias, const dt_aligned_pixel_t wb)
 
static void precondition_Y0U0V0 (const float *const in, float *const buf, const int wd, const int ht, const float a, const dt_aligned_pixel_t p, const float b, const dt_colormatrix_t toY0U0V0)
 
static void backtransform_Y0U0V0 (float *const buf, const int wd, const int ht, const float a, const dt_aligned_pixel_t p, const float b, const float bias, const dt_aligned_pixel_t wb, const dt_colormatrix_t toRGB)
 
static void compute_wb_factors (dt_aligned_pixel_t wb, const dt_iop_denoiseprofile_data_t *const d, const dt_dev_pixelpipe_iop_t *const piece, const dt_aligned_pixel_t weights)
 
static gboolean invert_matrix (const dt_colormatrix_t in, dt_colormatrix_t out)
 
static void set_up_conversion_matrices (dt_colormatrix_t toY0U0V0, dt_colormatrix_t toRGB, const dt_aligned_pixel_t wb)
 
static void variance_stabilizing_xform (dt_aligned_pixel_t thrs, const int scale, const int max_scale, const size_t npixels, const float *const sum_y2, const dt_iop_denoiseprofile_data_t *const d)
 
static void process_wavelets (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const eaw_dn_decompose_t decompose, const eaw_synthesize_t synthesize)
 
static float nlmeans_norm (const int P, const dt_iop_denoiseprofile_data_t *const d)
 
static float nlmeans_scattering (int *nbhood, const dt_iop_denoiseprofile_data_t *const d, const dt_dev_pixelpipe_iop_t *const piece, const float scale)
 
static float nlmeans_precondition (const dt_iop_denoiseprofile_data_t *const d, const dt_dev_pixelpipe_iop_t *const piece, dt_aligned_pixel_t wb, const void *const ivoid, const dt_iop_roi_t *const roi_in, float scale, float *in, dt_aligned_pixel_t aa, dt_aligned_pixel_t bb, dt_aligned_pixel_t p)
 
static void nlmeans_backtransform (const dt_iop_denoiseprofile_data_t *const d, float *ovoid, const dt_iop_roi_t *const roi_in, const float scale, const float compensate_p, const dt_aligned_pixel_t wb, const dt_aligned_pixel_t aa, const dt_aligned_pixel_t bb, const dt_aligned_pixel_t p)
 
static void process_nlmeans_cpu (dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, void(*denoiser)(const float *const inbuf, float *const outbuf, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_nlmeans_param_t *const params))
 
static void process_nlmeans (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
static void sum_rec (const size_t npixels, const float *in, float *out)
 
static void variance_rec (const size_t npixels, const float *in, float *out, const dt_aligned_pixel_t mean)
 
static void process_variance (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
void process (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
static unsigned infer_radius_from_profile (const float a)
 
static float infer_scattering_from_profile (const float a)
 
static float infer_shadows_from_profile (const float a)
 
static float infer_bias_from_profile (const float a)
 
void init (dt_iop_module_t *module)
 
void reload_defaults (dt_iop_module_t *module)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
void commit_params (struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void init_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void cleanup_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
static void profile_callback (GtkWidget *w, dt_iop_module_t *self)
 
static void mode_callback (GtkWidget *w, dt_iop_module_t *self)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
void gui_update (dt_iop_module_t *self)
 
void gui_reset (dt_iop_module_t *self)
 
static void dt_iop_denoiseprofile_get_params (dt_iop_denoiseprofile_params_t *p, const int ch, const double mouse_x, const double mouse_y, const float rad)
 
static gboolean denoiseprofile_draw_variance (GtkWidget *widget, cairo_t *crf, gpointer user_data)
 
static gboolean denoiseprofile_draw (GtkWidget *widget, cairo_t *crf, gpointer user_data)
 
static gboolean denoiseprofile_motion_notify (GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
 
static gboolean denoiseprofile_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean denoiseprofile_button_release (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean denoiseprofile_leave_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static gboolean denoiseprofile_scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
 
static void denoiseprofile_tab_switch (GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data)
 
void gui_init (dt_iop_module_t *self)
 
void gui_cleanup (dt_iop_module_t *self)
 

Macro Definition Documentation

◆ debug_dump_PFM

#define debug_dump_PFM (   p,
  n,
  b,
  w,
  h,
 
)

◆ DT_DENOISE_PROFILE_NONE_V9

#define DT_DENOISE_PROFILE_NONE_V9   4

◆ DT_IOP_DENOISE_PROFILE_BANDS

#define DT_IOP_DENOISE_PROFILE_BANDS   7

◆ DT_IOP_DENOISE_PROFILE_INSET

#define DT_IOP_DENOISE_PROFILE_INSET   DT_PIXEL_APPLY_DPI(5)

◆ DT_IOP_DENOISE_PROFILE_P_FULCRUM

#define DT_IOP_DENOISE_PROFILE_P_FULCRUM   0.05f

◆ DT_IOP_DENOISE_PROFILE_RES

#define DT_IOP_DENOISE_PROFILE_RES   64

◆ DT_IOP_DENOISE_PROFILE_V8_BANDS

#define DT_IOP_DENOISE_PROFILE_V8_BANDS   5

◆ MAX_MAX_SCALE

#define MAX_MAX_SCALE   DT_IOP_DENOISE_PROFILE_BANDS

◆ NUM_BUCKETS

#define NUM_BUCKETS   4

◆ REDUCESIZE

#define REDUCESIZE   64

◆ USE_NEW_IMPL_CL

#define USE_NEW_IMPL_CL   0

Typedef Documentation

◆ dt_iop_denoiseprofile_channel_t

◆ dt_iop_denoiseprofile_data_t

◆ dt_iop_denoiseprofile_global_data_t

◆ dt_iop_denoiseprofile_gui_data_t

◆ dt_iop_denoiseprofile_mode_t

◆ dt_iop_denoiseprofile_params_t

◆ dt_iop_denoiseprofile_params_v10_t

◆ dt_iop_denoiseprofile_params_v1_t

◆ dt_iop_denoiseprofile_params_v4_t

◆ dt_iop_denoiseprofile_params_v5_t

◆ dt_iop_denoiseprofile_params_v6_t

◆ dt_iop_denoiseprofile_params_v7_t

◆ dt_iop_denoiseprofile_params_v8_t

◆ dt_iop_denoiseprofile_params_v9_t

◆ dt_iop_denoiseprofile_wavelet_mode_t

◆ floatint_t

typedef union floatint_t floatint_t

Enumeration Type Documentation

◆ dt_iop_denoiseprofile_channel_t

Enumerator
DT_DENOISE_PROFILE_ALL 
DT_DENOISE_PROFILE_R 
DT_DENOISE_PROFILE_G 
DT_DENOISE_PROFILE_B 
DT_DENOISE_PROFILE_Y0 
DT_DENOISE_PROFILE_U0V0 
DT_DENOISE_PROFILE_NONE 

◆ dt_iop_denoiseprofile_mode_t

Enumerator
MODE_NLMEANS 
MODE_WAVELETS 
MODE_VARIANCE 
MODE_NLMEANS_AUTO 
MODE_WAVELETS_AUTO 

◆ dt_iop_denoiseprofile_wavelet_mode_t

Enumerator
MODE_RGB 
MODE_Y0U0V0 

Function Documentation

◆ backtransform()

static void backtransform ( float *const  buf,
const int  wd,
const int  ht,
const dt_aligned_pixel_t  a,
const dt_aligned_pixel_t  b 
)
inlinestatic

◆ backtransform_v2()

static void backtransform_v2 ( float *const  buf,
const int  wd,
const int  ht,
const float  a,
const dt_aligned_pixel_t  p,
const float  b,
const float  bias,
const dt_aligned_pixel_t  wb 
)
inlinestatic

References for_each_channel, and MAX.

Referenced by nlmeans_backtransform(), and process_wavelets().

◆ backtransform_Y0U0V0()

static void backtransform_Y0U0V0 ( float *const  buf,
const int  wd,
const int  ht,
const float  a,
const dt_aligned_pixel_t  p,
const float  b,
const float  bias,
const dt_aligned_pixel_t  wb,
const dt_colormatrix_t  toRGB 
)
inlinestatic

References for_each_channel, and MAX.

Referenced by process_wavelets().

◆ cleanup_global()

◆ cleanup_pipe()

◆ commit_params()

◆ compute_wb_factors()

static void compute_wb_factors ( dt_aligned_pixel_t  wb,
const dt_iop_denoiseprofile_data_t *const  d,
const dt_dev_pixelpipe_iop_t *const  piece,
const dt_aligned_pixel_t  weights 
)
static

◆ default_colorspace()

int default_colorspace ( dt_iop_module_t self,
dt_dev_pixelpipe_t pipe,
dt_dev_pixelpipe_iop_t piece 
)

References IOP_CS_RGB.

◆ default_group()

int default_group ( )

References IOP_GROUP_REPAIR.

◆ denoiseprofile_button_press()

◆ denoiseprofile_button_release()

static gboolean denoiseprofile_button_release ( GtkWidget *  widget,
GdkEventButton *  event,
gpointer  user_data 
)
static

References FALSE, dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ denoiseprofile_draw()

◆ denoiseprofile_draw_variance()

static gboolean denoiseprofile_draw_variance ( GtkWidget *  widget,
cairo_t *  crf,
gpointer  user_data 
)
static

◆ denoiseprofile_leave_notify()

static gboolean denoiseprofile_leave_notify ( GtkWidget *  widget,
GdkEventCrossing *  event,
gpointer  user_data 
)
static

References dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ denoiseprofile_motion_notify()

static gboolean denoiseprofile_motion_notify ( GtkWidget *  widget,
GdkEventMotion *  event,
gpointer  user_data 
)
static

◆ denoiseprofile_scrolled()

static gboolean denoiseprofile_scrolled ( GtkWidget *  widget,
GdkEventScroll *  event,
gpointer  user_data 
)
static

◆ denoiseprofile_tab_switch()

static void denoiseprofile_tab_switch ( GtkNotebook *  notebook,
GtkWidget *  page,
guint  page_num,
gpointer  user_data 
)
static

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ dt_iop_denoiseprofile_get_auto_profile()

◆ dt_iop_denoiseprofile_get_params()

static void dt_iop_denoiseprofile_get_params ( dt_iop_denoiseprofile_params_t p,
const int  ch,
const double  mouse_x,
const double  mouse_y,
const float  rad 
)
static

◆ flags()

int flags ( )

◆ gui_changed()

◆ gui_cleanup()

◆ gui_init()

◆ gui_reset()

◆ gui_update()

◆ infer_bias_from_profile()

static float infer_bias_from_profile ( const float  a)
inlinestatic

References MAX.

Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().

◆ infer_radius_from_profile()

static unsigned infer_radius_from_profile ( const float  a)
inlinestatic

References MIN.

Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().

◆ infer_scattering_from_profile()

static float infer_scattering_from_profile ( const float  a)
inlinestatic

References MIN.

Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().

◆ infer_shadows_from_profile()

static float infer_shadows_from_profile ( const float  a)
inlinestatic

References MAX, and MIN.

Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().

◆ init()

◆ init_global()

◆ init_pipe()

◆ init_presets()

◆ invert_matrix()

static gboolean invert_matrix ( const dt_colormatrix_t  in,
dt_colormatrix_t  out 
)
static

References FALSE, and TRUE.

Referenced by set_up_conversion_matrices().

◆ legacy_params()

int legacy_params ( dt_iop_module_t self,
const void *const  old_params,
const int  old_version,
void new_params,
const int  new_version 
)

References dt_noiseprofile_t::a, dt_iop_denoiseprofile_params_v1_t::a, dt_iop_denoiseprofile_params_v4_t::a, dt_iop_denoiseprofile_params_v5_t::a, dt_iop_denoiseprofile_params_v6_t::a, dt_iop_denoiseprofile_params_v7_t::a, dt_iop_denoiseprofile_params_v8_t::a, dt_iop_denoiseprofile_params_t::a, dt_noiseprofile_t::b, dt_iop_denoiseprofile_params_v1_t::b, dt_iop_denoiseprofile_params_v4_t::b, dt_iop_denoiseprofile_params_v5_t::b, dt_iop_denoiseprofile_params_v6_t::b, dt_iop_denoiseprofile_params_v7_t::b, dt_iop_denoiseprofile_params_v8_t::b, dt_iop_denoiseprofile_params_t::b, dt_iop_denoiseprofile_params_v8_t::bias, dt_iop_denoiseprofile_params_t::bias, dt_iop_denoiseprofile_params_v7_t::central_pixel_weight, dt_iop_denoiseprofile_params_v8_t::central_pixel_weight, dt_iop_denoiseprofile_params_t::central_pixel_weight, dt_iop_module_t::default_params, dt_iop_module_t::dev, DT_DENOISE_PROFILE_NONE, DT_DENOISE_PROFILE_NONE_V9, DT_IOP_DENOISE_PROFILE_BANDS, DT_IOP_DENOISE_PROFILE_V8_BANDS, dt_iop_denoiseprofile_get_auto_profile(), FALSE, dt_iop_denoiseprofile_params_v7_t::fix_anscombe_and_nlmeans_norm, dt_iop_denoiseprofile_params_v8_t::fix_anscombe_and_nlmeans_norm, dt_iop_denoiseprofile_params_t::fix_anscombe_and_nlmeans_norm, legacy_params(), dt_iop_denoiseprofile_params_v1_t::mode, dt_iop_denoiseprofile_params_v4_t::mode, dt_iop_denoiseprofile_params_v5_t::mode, dt_iop_denoiseprofile_params_v6_t::mode, dt_iop_denoiseprofile_params_v7_t::mode, dt_iop_denoiseprofile_params_v8_t::mode, dt_iop_denoiseprofile_params_t::mode, MODE_NLMEANS, MODE_RGB, MODE_WAVELETS, MODE_WAVELETS_AUTO, MODE_Y0U0V0, dt_iop_denoiseprofile_params_v5_t::nbhood, dt_iop_denoiseprofile_params_v6_t::nbhood, dt_iop_denoiseprofile_params_v7_t::nbhood, dt_iop_denoiseprofile_params_v8_t::nbhood, dt_iop_denoiseprofile_params_t::nbhood, dt_iop_denoiseprofile_params_v8_t::overshooting, dt_iop_denoiseprofile_params_t::overshooting, dt_iop_denoiseprofile_params_v1_t::radius, dt_iop_denoiseprofile_params_v4_t::radius, dt_iop_denoiseprofile_params_v5_t::radius, dt_iop_denoiseprofile_params_v6_t::radius, dt_iop_denoiseprofile_params_v7_t::radius, dt_iop_denoiseprofile_params_v8_t::radius, dt_iop_denoiseprofile_params_t::radius, dt_iop_denoiseprofile_params_v6_t::scattering, dt_iop_denoiseprofile_params_v7_t::scattering, dt_iop_denoiseprofile_params_v8_t::scattering, dt_iop_denoiseprofile_params_t::scattering, dt_iop_denoiseprofile_params_v8_t::shadows, dt_iop_denoiseprofile_params_t::shadows, dt_iop_denoiseprofile_params_v1_t::strength, dt_iop_denoiseprofile_params_v4_t::strength, dt_iop_denoiseprofile_params_v5_t::strength, dt_iop_denoiseprofile_params_v6_t::strength, dt_iop_denoiseprofile_params_v7_t::strength, dt_iop_denoiseprofile_params_v8_t::strength, dt_iop_denoiseprofile_params_t::strength, TRUE, dt_iop_denoiseprofile_params_v8_t::use_new_vst, dt_iop_denoiseprofile_params_t::use_new_vst, dt_iop_denoiseprofile_params_t::wavelet_color_mode, dt_iop_denoiseprofile_params_v7_t::wb_adaptive_anscombe, dt_iop_denoiseprofile_params_v8_t::wb_adaptive_anscombe, dt_iop_denoiseprofile_params_t::wb_adaptive_anscombe, dt_iop_denoiseprofile_params_v4_t::x, dt_iop_denoiseprofile_params_v5_t::x, dt_iop_denoiseprofile_params_v6_t::x, dt_iop_denoiseprofile_params_v7_t::x, dt_iop_denoiseprofile_params_v8_t::x, dt_iop_denoiseprofile_params_t::x, dt_iop_denoiseprofile_params_v4_t::y, dt_iop_denoiseprofile_params_v5_t::y, dt_iop_denoiseprofile_params_v6_t::y, dt_iop_denoiseprofile_params_v7_t::y, dt_iop_denoiseprofile_params_v8_t::y, and dt_iop_denoiseprofile_params_t::y.

Referenced by legacy_params().

◆ mode_callback()

◆ name()

const char * name ( )

Referenced by reload_defaults().

◆ nlmeans_backtransform()

static void nlmeans_backtransform ( const dt_iop_denoiseprofile_data_t *const  d,
float *  ovoid,
const dt_iop_roi_t *const  roi_in,
const float  scale,
const float  compensate_p,
const dt_aligned_pixel_t  wb,
const dt_aligned_pixel_t  aa,
const dt_aligned_pixel_t  bb,
const dt_aligned_pixel_t  p 
)
static

◆ nlmeans_norm()

static float nlmeans_norm ( const int  P,
const dt_iop_denoiseprofile_data_t *const  d 
)
static

◆ nlmeans_precondition()

static float nlmeans_precondition ( const dt_iop_denoiseprofile_data_t *const  d,
const dt_dev_pixelpipe_iop_t *const  piece,
dt_aligned_pixel_t  wb,
const void *const  ivoid,
const dt_iop_roi_t *const  roi_in,
float  scale,
float *  in,
dt_aligned_pixel_t  aa,
dt_aligned_pixel_t  bb,
dt_aligned_pixel_t  p 
)
static

◆ nlmeans_scattering()

static float nlmeans_scattering ( int *  nbhood,
const dt_iop_denoiseprofile_data_t *const  d,
const dt_dev_pixelpipe_iop_t *const  piece,
const float  scale 
)
static

◆ precondition()

static void precondition ( const float *const  in,
float *const  buf,
const int  wd,
const int  ht,
const dt_aligned_pixel_t  a,
const dt_aligned_pixel_t  b 
)
inlinestatic

◆ precondition_v2()

static void precondition_v2 ( const float *const  in,
float *const  buf,
const int  wd,
const int  ht,
const float  a,
const dt_aligned_pixel_t  p,
const float  b,
const dt_aligned_pixel_t  wb 
)
inlinestatic

◆ precondition_Y0U0V0()

static void precondition_Y0U0V0 ( const float *const  in,
float *const  buf,
const int  wd,
const int  ht,
const float  a,
const dt_aligned_pixel_t  p,
const float  b,
const dt_colormatrix_t  toY0U0V0 
)
inlinestatic

References for_each_channel, and MAX.

Referenced by process_wavelets().

◆ process()

◆ process_nlmeans()

static void process_nlmeans ( struct dt_iop_module_t self,
dt_dev_pixelpipe_iop_t piece,
const void *const  ivoid,
void *const  ovoid,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)
static

References nlmeans_denoise(), and process_nlmeans_cpu().

Referenced by process().

◆ process_nlmeans_cpu()

◆ process_variance()

◆ process_wavelets()

◆ profile_callback()

◆ reload_defaults()

◆ set_up_conversion_matrices()

static void set_up_conversion_matrices ( dt_colormatrix_t  toY0U0V0,
dt_colormatrix_t  toRGB,
const dt_aligned_pixel_t  wb 
)
static

References invert_matrix().

Referenced by process_wavelets().

◆ sum_rec()

static void sum_rec ( const size_t  npixels,
const float *  in,
float *  out 
)
static

References for_each_channel, and sum_rec().

Referenced by process_variance(), and sum_rec().

◆ tiling_callback()

◆ variance_rec()

static void variance_rec ( const size_t  npixels,
const float *  in,
float *  out,
const dt_aligned_pixel_t  mean 
)
static

References for_each_channel, and variance_rec().

Referenced by process_variance(), and variance_rec().

◆ variance_stabilizing_xform()

static void variance_stabilizing_xform ( dt_aligned_pixel_t  thrs,
const int  scale,
const int  max_scale,
const size_t  npixels,
const float *const  sum_y2,
const dt_iop_denoiseprofile_data_t *const  d 
)
static