![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#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>
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 |
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) |
#define debug_dump_PFM | ( | p, | |
n, | |||
b, | |||
w, | |||
h, | |||
s | |||
) |
#define DT_DENOISE_PROFILE_NONE_V9 4 |
#define DT_IOP_DENOISE_PROFILE_BANDS 7 |
#define DT_IOP_DENOISE_PROFILE_INSET DT_PIXEL_APPLY_DPI(5) |
#define DT_IOP_DENOISE_PROFILE_P_FULCRUM 0.05f |
#define DT_IOP_DENOISE_PROFILE_RES 64 |
#define DT_IOP_DENOISE_PROFILE_V8_BANDS 5 |
#define MAX_MAX_SCALE DT_IOP_DENOISE_PROFILE_BANDS |
#define NUM_BUCKETS 4 |
#define REDUCESIZE 64 |
#define USE_NEW_IMPL_CL 0 |
typedef struct dt_iop_denoiseprofile_data_t dt_iop_denoiseprofile_data_t |
typedef struct dt_iop_denoiseprofile_gui_data_t dt_iop_denoiseprofile_gui_data_t |
typedef enum dt_iop_denoiseprofile_mode_t dt_iop_denoiseprofile_mode_t |
typedef struct dt_iop_denoiseprofile_params_t dt_iop_denoiseprofile_params_t |
typedef union floatint_t floatint_t |
|
inlinestatic |
References for_each_channel.
Referenced by nlmeans_backtransform(), and process_wavelets().
|
inlinestatic |
References for_each_channel, and MAX.
Referenced by nlmeans_backtransform(), and process_wavelets().
|
inlinestatic |
References for_each_channel, and MAX.
Referenced by process_wavelets().
void cleanup_global | ( | dt_iop_module_so_t * | module | ) |
References dt_iop_module_so_t::data, dt_opencl_free_kernel(), dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_accu, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_backtransform, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_backtransform_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_decompose, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_dist, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_finish, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_finish_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_horiz, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_init, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_precondition, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_precondition_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_reduce_first, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_reduce_second, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_synthesize, and dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_vert.
void cleanup_pipe | ( | struct dt_iop_module_t * | self, |
dt_dev_pixelpipe_t * | pipe, | ||
dt_dev_pixelpipe_iop_t * | piece | ||
) |
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 | ||
) |
commit is the synch point between core and gui, so it copies params to pipe data.
References dt_noiseprofile_t::a, dt_iop_denoiseprofile_data_t::a, dt_noiseprofile_t::b, dt_iop_denoiseprofile_data_t::b, dt_iop_denoiseprofile_data_t::bias, dt_iop_denoiseprofile_data_t::central_pixel_weight, dt_iop_denoiseprofile_data_t::curve, dt_dev_pixelpipe_iop_t::data, DT_DENOISE_PROFILE_NONE, dt_draw_curve_calc_values(), dt_draw_curve_set_point(), DT_IOP_DENOISE_PROFILE_BANDS, dt_iop_denoiseprofile_get_auto_profile(), dt_iop_denoiseprofile_data_t::fix_anscombe_and_nlmeans_norm, dt_iop_denoiseprofile_data_t::force, infer_bias_from_profile(), infer_radius_from_profile(), infer_scattering_from_profile(), infer_shadows_from_profile(), dt_iop_denoiseprofile_data_t::mode, MODE_NLMEANS_AUTO, MODE_WAVELETS_AUTO, dt_iop_denoiseprofile_data_t::nbhood, dt_iop_denoiseprofile_data_t::overshooting, dt_iop_denoiseprofile_data_t::radius, dt_iop_denoiseprofile_data_t::scattering, dt_iop_denoiseprofile_data_t::shadows, dt_iop_denoiseprofile_data_t::strength, dt_iop_denoiseprofile_data_t::use_new_vst, dt_iop_denoiseprofile_data_t::wavelet_color_mode, and dt_iop_denoiseprofile_data_t::wb_adaptive_anscombe.
|
static |
int default_colorspace | ( | dt_iop_module_t * | self, |
dt_dev_pixelpipe_t * | pipe, | ||
dt_dev_pixelpipe_iop_t * | piece | ||
) |
References IOP_CS_RGB.
int default_group | ( | ) |
References IOP_GROUP_REPAIR.
|
static |
References darktable, dt_iop_module_t::default_params, darktable_t::develop, dt_dev_add_history_item, dt_draw_curve_calc_value(), DT_IOP_DENOISE_PROFILE_BANDS, DT_IOP_DENOISE_PROFILE_INSET, FALSE, dt_iop_module_t::gui_data, height, dt_iop_module_t::params, TRUE, dt_iop_module_t::widget, width, dt_iop_denoiseprofile_params_t::x, and dt_iop_denoiseprofile_params_t::y.
Referenced by gui_init().
|
static |
References FALSE, dt_iop_module_t::gui_data, and TRUE.
Referenced by gui_init().
|
static |
References darktable_t::bauhaus, darktable, dt_cairo_image_surface_create(), DT_DENOISE_PROFILE_ALL, DT_DENOISE_PROFILE_B, DT_DENOISE_PROFILE_G, DT_DENOISE_PROFILE_NONE, DT_DENOISE_PROFILE_R, DT_DENOISE_PROFILE_U0V0, DT_DENOISE_PROFILE_Y0, dt_draw_curve_calc_values(), dt_draw_curve_set_point(), dt_draw_grid(), DT_IOP_DENOISE_PROFILE_BANDS, DT_IOP_DENOISE_PROFILE_INSET, DT_IOP_DENOISE_PROFILE_RES, dt_iop_denoiseprofile_get_params(), DT_PIXEL_APPLY_DPI, f(), dt_iop_module_t::gui_data, height, M_PI, MODE_RGB, dt_bauhaus_t::pango_font_desc, dt_iop_module_t::params, TRUE, and width.
Referenced by gui_init().
|
static |
References darktable, FALSE, darktable_t::gui, dt_iop_module_t::gui_data, and dt_gui_gtk_t::reset.
Referenced by gui_init().
|
static |
References dt_iop_module_t::gui_data, and TRUE.
Referenced by gui_init().
|
static |
References darktable, darktable_t::develop, dt_dev_add_history_item, DT_IOP_DENOISE_PROFILE_INSET, dt_iop_denoiseprofile_get_params(), dt_iop_module_t::gui_data, height, dt_iop_module_t::params, TRUE, and width.
Referenced by gui_init().
|
static |
|
static |
References darktable, DT_DENOISE_PROFILE_Y0, darktable_t::gui, dt_iop_module_t::gui_data, MODE_Y0U0V0, dt_iop_module_t::params, dt_gui_gtk_t::reset, and dt_iop_module_t::widget.
Referenced by gui_init().
const char ** description | ( | struct dt_iop_module_t * | self | ) |
References dt_iop_set_description().
|
static |
References dt_iop_module_t::dev, dt_noiseprofile_free(), dt_noiseprofile_generic, dt_noiseprofile_get_matching(), dt_noiseprofile_interpolate(), dt_image_t::exif_iso, dt_develop_t::image_storage, and dt_noiseprofile_t::iso.
Referenced by commit_params(), gui_changed(), gui_update(), and legacy_params().
|
static |
References DT_IOP_DENOISE_PROFILE_BANDS, and f().
Referenced by denoiseprofile_draw(), and denoiseprofile_motion_notify().
int flags | ( | ) |
References IOP_FLAGS_ALLOW_TILING, and IOP_FLAGS_SUPPORTS_BLENDING.
void gui_changed | ( | dt_iop_module_t * | self, |
GtkWidget * | w, | ||
void * | previous | ||
) |
References dt_noiseprofile_t::a, dt_bauhaus_slider_set(), DT_DENOISE_PROFILE_ALL, DT_DENOISE_PROFILE_Y0, dt_iop_denoiseprofile_get_auto_profile(), FALSE, dt_iop_module_t::gui_data, infer_bias_from_profile(), infer_radius_from_profile(), infer_scattering_from_profile(), infer_shadows_from_profile(), MODE_NLMEANS_AUTO, MODE_RGB, MODE_WAVELETS_AUTO, MODE_Y0U0V0, dt_iop_module_t::params, and TRUE.
void gui_cleanup | ( | dt_iop_module_t * | self | ) |
References dt_draw_curve_destroy(), dt_noiseprofile_free(), dt_iop_module_t::gui_data, and IOP_GUI_FREE.
void gui_init | ( | dt_iop_module_t * | self | ) |
References darktable_t::bauhaus, CATMULL_ROM, darktable, dt_iop_module_t::default_params, denoiseprofile_button_press(), denoiseprofile_button_release(), denoiseprofile_draw(), denoiseprofile_draw_variance(), denoiseprofile_leave_notify(), denoiseprofile_motion_notify(), denoiseprofile_scrolled(), denoiseprofile_tab_switch(), dt_bauhaus_combobox_add(), dt_bauhaus_combobox_from_params(), dt_bauhaus_combobox_new(), dt_bauhaus_slider_from_params(), dt_bauhaus_slider_set_digits(), dt_bauhaus_slider_set_soft_max(), dt_bauhaus_slider_set_soft_range(), DT_BAUHAUS_SPACE, dt_bauhaus_toggle_from_params(), dt_bauhaus_widget_set_label(), dt_conf_get_bool(), dt_conf_get_int(), dt_draw_curve_add_point(), dt_draw_curve_new(), DT_GUI_MODULE, DT_IOP_DENOISE_PROFILE_BANDS, dt_ui_label_new(), dt_ui_notebook_page(), dtgtk_drawing_area_new_with_aspect_ratio(), FALSE, darktable_t::gui, IOP_GUI_ALLOC, mode_callback(), profile_callback(), dt_gui_gtk_t::scroll_mask, TRUE, void(), and dt_iop_module_t::widget.
void gui_reset | ( | dt_iop_module_t * | self | ) |
void gui_update | ( | dt_iop_module_t * | self | ) |
References dt_noiseprofile_t::a, dt_noiseprofile_t::b, dt_bauhaus_combobox_add(), dt_bauhaus_combobox_length(), dt_bauhaus_combobox_set(), dt_bauhaus_slider_set(), DT_DENOISE_PROFILE_ALL, DT_DENOISE_PROFILE_B, DT_DENOISE_PROFILE_Y0, dt_iop_denoiseprofile_get_auto_profile(), FALSE, dt_iop_module_t::gui_data, infer_bias_from_profile(), infer_radius_from_profile(), infer_scattering_from_profile(), infer_shadows_from_profile(), MODE_NLMEANS, MODE_NLMEANS_AUTO, MODE_RGB, MODE_VARIANCE, MODE_WAVELETS, MODE_WAVELETS_AUTO, MODE_Y0U0V0, and dt_iop_module_t::params.
|
inlinestatic |
References MAX.
Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().
|
inlinestatic |
References MIN.
Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().
|
inlinestatic |
References MIN.
Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().
|
inlinestatic |
Referenced by commit_params(), gui_changed(), gui_update(), and reload_defaults().
void init | ( | dt_iop_module_t * | module | ) |
void init_global | ( | dt_iop_module_so_t * | module | ) |
References dt_opencl_create_kernel(), dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_accu, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_backtransform, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_backtransform_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_backtransform_Y0U0V0, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_decompose, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_dist, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_finish, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_finish_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_horiz, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_init, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_precondition, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_precondition_v2, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_precondition_Y0U0V0, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_reduce_first, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_reduce_second, dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_synthesize, and dt_iop_denoiseprofile_global_data_t::kernel_denoiseprofile_vert.
void init_pipe | ( | struct dt_iop_module_t * | self, |
dt_dev_pixelpipe_t * | pipe, | ||
dt_dev_pixelpipe_iop_t * | piece | ||
) |
References CATMULL_ROM, dt_iop_denoiseprofile_data_t::curve, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_iop_module_t::default_params, DT_DENOISE_PROFILE_NONE, dt_draw_curve_add_point(), dt_draw_curve_new(), DT_IOP_DENOISE_PROFILE_BANDS, dt_iop_denoiseprofile_params_t::x, and dt_iop_denoiseprofile_params_t::y.
void init_presets | ( | dt_iop_module_so_t * | self | ) |
|
static |
Referenced by set_up_conversion_matrices().
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().
|
static |
References darktable, darktable_t::develop, dt_bauhaus_combobox_get(), dt_dev_add_history_item, FALSE, dt_iop_module_t::gui_data, MODE_NLMEANS, MODE_NLMEANS_AUTO, MODE_RGB, MODE_VARIANCE, MODE_WAVELETS, MODE_WAVELETS_AUTO, MODE_Y0U0V0, dt_iop_module_t::params, and TRUE.
Referenced by gui_init().
const char * name | ( | ) |
Referenced by reload_defaults().
|
static |
|
static |
References dt_iop_denoiseprofile_data_t::fix_anscombe_and_nlmeans_norm, and P.
Referenced by process_nlmeans_cpu().
|
static |
References dt_iop_denoiseprofile_data_t::a, dt_iop_denoiseprofile_data_t::b, compute_wb_factors(), DT_IOP_DENOISE_PROFILE_P_FULCRUM, for_each_channel, dt_iop_roi_t::height, MAX, precondition(), precondition_v2(), dt_iop_denoiseprofile_data_t::shadows, dt_iop_denoiseprofile_data_t::strength, dt_iop_denoiseprofile_data_t::use_new_vst, and dt_iop_roi_t::width.
Referenced by process_nlmeans_cpu().
|
static |
References DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_PREVIEW, DT_DEV_PIXELPIPE_THUMBNAIL, MAX, MIN, dt_dev_pixelpipe_iop_t::pipe, and dt_iop_denoiseprofile_data_t::scattering.
Referenced by process_nlmeans_cpu().
|
inlinestatic |
References for_each_channel.
Referenced by nlmeans_precondition(), and process_wavelets().
|
inlinestatic |
References for_each_channel, and MAX.
Referenced by nlmeans_precondition(), process_variance(), and process_wavelets().
|
inlinestatic |
References for_each_channel, and MAX.
Referenced by process_wavelets().
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 |
References nlmeans_denoise(), and process_nlmeans_cpu().
Referenced by process().
|
static |
References dt_iop_denoiseprofile_data_t::central_pixel_weight, dt_dev_pixelpipe_iop_t::colors, dt_dev_pixelpipe_iop_t::data, DT_DEV_PIXELPIPE_DISPLAY_MASK, dt_free_align, DT_IMGSZ_INPUT, dt_iop_alloc_image_buffers(), dt_iop_alpha_copy(), dt_iop_have_required_input_format(), dt_iop_roi_t::height, dt_dev_pixelpipe_iop_t::iscale, dt_iop_denoiseprofile_data_t::nbhood, nlmeans_backtransform(), nlmeans_norm(), nlmeans_precondition(), nlmeans_scattering(), P, dt_dev_pixelpipe_iop_t::pipe, dt_iop_denoiseprofile_data_t::radius, dt_iop_roi_t::scale, and dt_iop_roi_t::width.
Referenced by process_nlmeans().
|
static |
References dt_iop_denoiseprofile_data_t::a, dt_iop_denoiseprofile_data_t::b, compute_wb_factors(), dt_dev_pixelpipe_iop_t::data, DT_DEV_PIXELPIPE_PREVIEW, DT_IMGSZ_INPUT, dt_iop_alloc_image_buffers(), DT_IOP_DENOISE_PROFILE_P_FULCRUM, for_each_channel, dt_iop_module_t::gui_data, height, dt_iop_roi_t::height, MAX, dt_dev_pixelpipe_iop_t::pipe, precondition_v2(), dt_iop_denoiseprofile_data_t::shadows, dt_iop_denoiseprofile_data_t::strength, sum_rec(), variance_rec(), width, and dt_iop_roi_t::width.
Referenced by process().
|
static |
References dt_iop_denoiseprofile_data_t::a, dt_iop_denoiseprofile_data_t::b, backtransform(), backtransform_v2(), backtransform_Y0U0V0(), dt_iop_denoiseprofile_data_t::bias, dt_dev_pixelpipe_iop_t::buf_in, dt_dev_pixelpipe_iop_t::colors, compute_wb_factors(), dt_dev_pixelpipe_iop_t::data, debug_dump_PFM, DT_DEV_PIXELPIPE_DISPLAY_MASK, dt_free_align, dt_iop_alloc_image_buffers(), dt_iop_alpha_copy(), dt_iop_copy_image_roi(), DT_IOP_DENOISE_PROFILE_P_FULCRUM, dt_log2f(), for_each_channel, height, dt_iop_roi_t::height, dt_dev_pixelpipe_iop_t::iscale, MAX, MAX_MAX_SCALE, MIN, MODE_RGB, dt_dev_pixelpipe_iop_t::pipe, precondition(), precondition_v2(), precondition_Y0U0V0(), dt_iop_roi_t::scale, set_up_conversion_matrices(), dt_iop_denoiseprofile_data_t::shadows, dt_iop_denoiseprofile_data_t::strength, thrs, TRUE, dt_iop_denoiseprofile_data_t::use_new_vst, variance_stabilizing_xform(), dt_iop_denoiseprofile_data_t::wavelet_color_mode, width, and dt_iop_roi_t::width.
Referenced by process().
|
static |
References dt_noiseprofile_t::a, dt_noiseprofile_t::b, darktable, darktable_t::develop, dt_bauhaus_combobox_get(), dt_dev_add_history_item, dt_iop_module_t::gui_data, dt_iop_module_t::params, and TRUE.
Referenced by gui_init().
void reload_defaults | ( | dt_iop_module_t * | module | ) |
this will be called to init new defaults if a new image is loaded from film strip mode.
References dt_iop_denoiseprofile_params_t::a, dt_iop_denoiseprofile_params_t::b, dt_iop_denoiseprofile_params_t::bias, dt_iop_module_t::dev, dt_bauhaus_combobox_add(), dt_bauhaus_combobox_clear(), dt_bauhaus_slider_set_default(), dt_noiseprofile_free(), dt_noiseprofile_generic, dt_noiseprofile_get_matching(), dt_noiseprofile_interpolate(), dt_iop_module_t::gui_data, dt_develop_t::image_storage, infer_bias_from_profile(), infer_radius_from_profile(), infer_scattering_from_profile(), infer_shadows_from_profile(), dt_noiseprofile_t::iso, dt_noiseprofile_t::name, name(), dt_iop_denoiseprofile_params_t::radius, dt_iop_denoiseprofile_params_t::scattering, and dt_iop_denoiseprofile_params_t::shadows.
|
static |
References invert_matrix().
Referenced by process_wavelets().
|
static |
References for_each_channel, and sum_rec().
Referenced by process_variance(), and sum_rec().
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 | ||
) |
References dt_dev_pixelpipe_iop_t::buf_in, dt_dev_pixelpipe_iop_t::data, DT_IOP_DENOISE_PROFILE_BANDS, dt_log2f(), dt_iop_roi_t::height, dt_dev_pixelpipe_iop_t::iscale, dt_iop_denoiseprofile_params_t::mode, MODE_NLMEANS, MODE_NLMEANS_AUTO, dt_iop_denoiseprofile_params_t::nbhood, NUM_BUCKETS, P, dt_iop_denoiseprofile_params_t::radius, dt_iop_roi_t::scale, dt_iop_denoiseprofile_params_t::scattering, and dt_iop_roi_t::width.
|
static |
References for_each_channel, and variance_rec().
Referenced by process_variance(), and variance_rec().
|
static |
References DT_DENOISE_PROFILE_ALL, DT_DENOISE_PROFILE_B, DT_DENOISE_PROFILE_G, DT_DENOISE_PROFILE_R, DT_DENOISE_PROFILE_U0V0, DT_DENOISE_PROFILE_Y0, DT_IOP_DENOISE_PROFILE_BANDS, for_each_channel, dt_iop_denoiseprofile_data_t::force, MAX, MODE_RGB, thrs, and dt_iop_denoiseprofile_data_t::wavelet_color_mode.
Referenced by process_wavelets().