19#ifndef DT_DEVELOP_DWT_H
20#define DT_DEVELOP_DWT_H
52 const int return_layer,
const int merge_from_scale,
void *user_data,
53 const float preview_scale,
const int use_sse);
78void dwt_denoise(
float *
const img,
const int width,
const int height,
const int bands,
const float *
const noise);
93 const int per_pass = ((
height + stride - 1) / stride);
94 const int long_passes =
height % stride;
96 if (long_passes == 0 || rowid < long_passes * per_pass)
97 return (rowid / per_pass) + stride * (rowid % per_pass);
98 const int rowid2 = rowid - long_passes * per_pass;
99 return long_passes + (rowid2 / (per_pass-1)) + stride * (rowid2 % (per_pass-1));
105typedef struct dt_dwt_cl_global_t
107 int kernel_dwt_add_img_to_layer;
108 int kernel_dwt_subtract_layer;
109 int kernel_dwt_hat_transform_col;
110 int kernel_dwt_hat_transform_row;
111 int kernel_dwt_init_buffer;
114typedef struct dwt_params_cl_t
116 dt_dwt_cl_global_t *global;
124 int merge_from_scale;
129typedef cl_int(_dwt_layer_func_cl)(cl_mem layer, dwt_params_cl_t *
const p,
const int scale);
131dt_dwt_cl_global_t *dt_dwt_init_cl_global(
void);
132void dt_dwt_free_cl_global(dt_dwt_cl_global_t *g);
134dwt_params_cl_t *dt_dwt_init_cl(
const int devid, cl_mem image,
const int width,
const int height,
const int scales,
135 const int return_layer,
const int merge_from_scale,
void *user_data,
136 const float preview_scale);
137void dt_dwt_free_cl(dwt_params_cl_t *p);
139int dwt_get_max_scale_cl(dwt_params_cl_t *p);
141int dt_dwt_first_scale_visible_cl(dwt_params_cl_t *p);
143cl_int dwt_decompose_cl(dwt_params_cl_t *p, _dwt_layer_func_cl layer_func);
int width
Definition bilateral.h:1
int height
Definition bilateral.h:1
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
void dwt_decompose(dwt_params_t *p, _dwt_layer_func layer_func)
Definition dwt.c:356
int dwt_get_max_scale(dwt_params_t *p)
Definition dwt.c:82
void dt_dwt_free(dwt_params_t *p)
Definition dwt.c:55
static int dwt_interleave_rows(const int rowid, const int height, const int stride)
Definition dwt.h:89
dwt_params_t * dt_dwt_init(float *image, const int width, const int height, const int ch, const int scales, const int return_layer, const int merge_from_scale, void *user_data, const float preview_scale, const int use_sse)
Definition dwt.c:34
int dt_dwt_first_scale_visible(dwt_params_t *p)
Definition dwt.c:105
void dwt_denoise(float *const img, const int width, const int height, const int bands, const float *const noise)
Definition dwt.c:507
void() _dwt_layer_func(float *layer, dwt_params_t *const p, const int scale)
Definition dwt.h:38
ch
Definition derive_filmic_v6_gamut_mapping.py:11
int use_sse
Definition dwt.h:34
void * user_data
Definition dwt.h:32
float preview_scale
Definition dwt.h:33
int return_layer
Definition dwt.h:30
int width
Definition dwt.h:27
int scales
Definition dwt.h:29
int height
Definition dwt.h:28
int ch
Definition dwt.h:26
float * image
Definition dwt.h:25
int merge_from_scale
Definition dwt.h:31