23#ifndef DT_DEVELOP_DWT_H
24#define DT_DEVELOP_DWT_H
56 const int return_layer,
const int merge_from_scale,
void *user_data,
57 const float preview_scale,
const int use_sse);
82int dwt_denoise(
float *
const img,
const int width,
const int height,
const int bands,
const float *
const noise);
97 const int per_pass = ((
height + stride - 1) / stride);
98 const int long_passes =
height % stride;
100 if (long_passes == 0 || rowid < long_passes * per_pass)
101 return (rowid / per_pass) + stride * (rowid % per_pass);
102 const int rowid2 = rowid - long_passes * per_pass;
103 return long_passes + (rowid2 / (per_pass-1)) + stride * (rowid2 % (per_pass-1));
109typedef struct dt_dwt_cl_global_t
111 int kernel_dwt_add_img_to_layer;
112 int kernel_dwt_subtract_layer;
113 int kernel_dwt_hat_transform_col;
114 int kernel_dwt_hat_transform_row;
115 int kernel_dwt_init_buffer;
118typedef struct dwt_params_cl_t
120 dt_dwt_cl_global_t *global;
128 int merge_from_scale;
133typedef cl_int(_dwt_layer_func_cl)(cl_mem layer, dwt_params_cl_t *
const p,
const int scale);
135dt_dwt_cl_global_t *dt_dwt_init_cl_global(
void);
136void dt_dwt_free_cl_global(dt_dwt_cl_global_t *
g);
138dwt_params_cl_t *dt_dwt_init_cl(
const int devid, cl_mem image,
const int width,
const int height,
const int scales,
139 const int return_layer,
const int merge_from_scale,
void *user_data,
140 const float preview_scale);
141void dt_dwt_free_cl(dwt_params_cl_t *
p);
143int dwt_get_max_scale_cl(dwt_params_cl_t *
p);
145int dt_dwt_first_scale_visible_cl(dwt_params_cl_t *
p);
147cl_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
static const dt_aligned_pixel_simd_t const dt_adaptation_t const float p
Definition chromatic_adaptation.h:315
const float g
Definition colorspaces_inline_conversions.h:925
int dwt_denoise(float *const img, const int width, const int height, const int bands, const float *const noise)
Definition dwt.c:536
int() _dwt_layer_func(float *layer, dwt_params_t *const p, const int scale)
Definition dwt.h:42
int dwt_decompose(dwt_params_t *p, _dwt_layer_func layer_func)
Definition dwt.c:385
int dwt_get_max_scale(dwt_params_t *p)
Definition dwt.c:91
void dt_dwt_free(dwt_params_t *p)
Definition dwt.c:64
static int dwt_interleave_rows(const int rowid, const int height, const int stride)
Definition dwt.h:93
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:43
int dt_dwt_first_scale_visible(dwt_params_t *p)
Definition dwt.c:114
ch
Definition derive_filmic_v6_gamut_mapping.py:35
int use_sse
Definition dwt.h:38
void * user_data
Definition dwt.h:36
float preview_scale
Definition dwt.h:37
int return_layer
Definition dwt.h:34
int width
Definition dwt.h:31
int scales
Definition dwt.h:33
int height
Definition dwt.h:32
int ch
Definition dwt.h:30
float * image
Definition dwt.h:29
int merge_from_scale
Definition dwt.h:35