Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
rawdenoise.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/darktable.h"
#include "common/imagebuf.h"
#include "common/dwt.h"
#include "control/control.h"
#include "develop/imageop.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.h"
#include "develop/openmp_maths.h"
#include "dtgtk/drawingarea.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "iop/iop_api.h"
#include <gtk/gtk.h>
#include <stdlib.h>
#include <strings.h>
+ Include dependency graph for rawdenoise.c:

Data Structures

struct  dt_iop_rawdenoise_params_t
 
struct  dt_iop_rawdenoise_gui_data_t
 
struct  dt_iop_rawdenoise_data_t
 
struct  dt_iop_rawdenoise_global_data_t
 

Macros

#define DT_IOP_RAWDENOISE_INSET   DT_PIXEL_APPLY_DPI(5)
 
#define DT_IOP_RAWDENOISE_RES   64
 
#define DT_IOP_RAWDENOISE_BANDS   5
 
#define BIT16   65536.0
 

Typedefs

typedef enum dt_iop_rawdenoise_channel_t dt_iop_rawdenoise_channel_t
 
typedef struct dt_iop_rawdenoise_params_t dt_iop_rawdenoise_params_t
 
typedef struct dt_iop_rawdenoise_gui_data_t dt_iop_rawdenoise_gui_data_t
 
typedef struct dt_iop_rawdenoise_data_t dt_iop_rawdenoise_data_t
 
typedef struct dt_iop_rawdenoise_global_data_t dt_iop_rawdenoise_global_data_t
 

Enumerations

enum  dt_iop_rawdenoise_channel_t {
  DT_RAWDENOISE_ALL = 0 ,
  DT_RAWDENOISE_R = 1 ,
  DT_RAWDENOISE_G = 2 ,
  DT_RAWDENOISE_B = 3 ,
  DT_RAWDENOISE_NONE = 4
}
 

Functions

int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
const char * name ()
 
const char ** description (struct dt_iop_module_t *self)
 
int flags ()
 
int default_group ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
static void compute_channel_noise (float *const noise, int color, const dt_iop_rawdenoise_data_t *const data)
 
static void wavelet_denoise (const float *const restrict in, float *const restrict out, const dt_iop_roi_t *const roi, const dt_iop_rawdenoise_data_t *const data, const uint32_t filters)
 
static float vstransform (const float value)
 
static void wavelet_denoise_xtrans (const float *const restrict in, float *const restrict out, const dt_iop_roi_t *const restrict roi, const dt_iop_rawdenoise_data_t *const data, const uint8_t(*const xtrans)[6])
 
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)
 
void init (dt_iop_module_t *module)
 
void reload_defaults (dt_iop_module_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)
 
void gui_update (dt_iop_module_t *self)
 
static void dt_iop_rawdenoise_get_params (dt_iop_rawdenoise_params_t *p, const int ch, const double mouse_x, const double mouse_y, const float rad)
 
static gboolean rawdenoise_draw (GtkWidget *widget, cairo_t *crf, gpointer user_data)
 
static gboolean rawdenoise_motion_notify (GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
 
static gboolean rawdenoise_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean rawdenoise_button_release (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean rawdenoise_leave_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static gboolean rawdenoise_scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
 
static void rawdenoise_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

◆ BIT16

#define BIT16   65536.0

◆ DT_IOP_RAWDENOISE_BANDS

#define DT_IOP_RAWDENOISE_BANDS   5

◆ DT_IOP_RAWDENOISE_INSET

#define DT_IOP_RAWDENOISE_INSET   DT_PIXEL_APPLY_DPI(5)

◆ DT_IOP_RAWDENOISE_RES

#define DT_IOP_RAWDENOISE_RES   64

Typedef Documentation

◆ dt_iop_rawdenoise_channel_t

◆ dt_iop_rawdenoise_data_t

◆ dt_iop_rawdenoise_global_data_t

◆ dt_iop_rawdenoise_gui_data_t

◆ dt_iop_rawdenoise_params_t

Enumeration Type Documentation

◆ dt_iop_rawdenoise_channel_t

Enumerator
DT_RAWDENOISE_ALL 
DT_RAWDENOISE_R 
DT_RAWDENOISE_G 
DT_RAWDENOISE_B 
DT_RAWDENOISE_NONE 

Function Documentation

◆ cleanup_pipe()

◆ commit_params()

◆ compute_channel_noise()

static void compute_channel_noise ( float *const  noise,
int  color,
const dt_iop_rawdenoise_data_t *const  data 
)
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_RAW.

◆ default_group()

int default_group ( )

References IOP_GROUP_REPAIR.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ dt_iop_rawdenoise_get_params()

static void dt_iop_rawdenoise_get_params ( dt_iop_rawdenoise_params_t p,
const int  ch,
const double  mouse_x,
const double  mouse_y,
const float  rad 
)
static

◆ flags()

int flags ( )

◆ gui_cleanup()

◆ gui_init()

◆ gui_update()

◆ init()

◆ init_pipe()

◆ 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 
)

◆ name()

const char * name ( )

◆ process()

◆ rawdenoise_button_press()

◆ rawdenoise_button_release()

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

References FALSE, dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ rawdenoise_draw()

◆ rawdenoise_leave_notify()

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

References dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ rawdenoise_motion_notify()

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

◆ rawdenoise_scrolled()

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

◆ rawdenoise_tab_switch()

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

◆ reload_defaults()

void reload_defaults ( dt_iop_module_t module)

◆ vstransform()

static float vstransform ( const float  value)
inlinestatic

References MAX.

Referenced by wavelet_denoise_xtrans().

◆ wavelet_denoise()

static void wavelet_denoise ( const float *const restrict  in,
float *const restrict  out,
const dt_iop_roi_t *const  roi,
const dt_iop_rawdenoise_data_t *const  data,
const uint32_t  filters 
)
static

◆ wavelet_denoise_xtrans()

static void wavelet_denoise_xtrans ( const float *const restrict  in,
float *const restrict  out,
const dt_iop_roi_t *const restrict  roi,
const dt_iop_rawdenoise_data_t *const  data,
const uint8_t(*)  xtrans[6] 
)
static