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);
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));
139 const int return_layer,
const int merge_from_scale,
void *user_data,
140 const float preview_scale);
static const dt_aligned_pixel_simd_t const dt_adaptation_t const float p
dt_dwt_cl_global_t * dt_dwt_init_cl_global(void)
int dwt_denoise(float *const img, const int width, const int height, const int bands, const float *const noise)
int dt_dwt_first_scale_visible_cl(dwt_params_cl_t *p)
int() _dwt_layer_func(float *layer, dwt_params_t *const p, const int scale)
int dwt_decompose(dwt_params_t *p, _dwt_layer_func layer_func)
int dwt_get_max_scale(dwt_params_t *p)
void dt_dwt_free(dwt_params_t *p)
dwt_params_cl_t * dt_dwt_init_cl(const int devid, cl_mem image, const int width, const int height, const int scales, const int return_layer, const int merge_from_scale, void *user_data, const float preview_scale)
static int dwt_interleave_rows(const int rowid, const int height, const int stride)
void dt_dwt_free_cl_global(dt_dwt_cl_global_t *g)
cl_int() _dwt_layer_func_cl(cl_mem layer, dwt_params_cl_t *const p, const int scale)
void dt_dwt_free_cl(dwt_params_cl_t *p)
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)
cl_int dwt_decompose_cl(dwt_params_cl_t *p, _dwt_layer_func_cl layer_func)
int dwt_get_max_scale_cl(dwt_params_cl_t *p)
int dt_dwt_first_scale_visible(dwt_params_t *p)
float *const restrict const size_t const size_t ch
int kernel_dwt_hat_transform_row
int kernel_dwt_init_buffer
int kernel_dwt_add_img_to_layer
int kernel_dwt_hat_transform_col
int kernel_dwt_subtract_layer
dt_dwt_cl_global_t * global