19#ifndef DT_IOP_HIGHLIGHTS_BLUR_H
20#define DT_IOP_HIGHLIGHTS_BLUR_H
39 const float *
const restrict guide,
float *
const restrict step_x,
40 float *
const restrict step_y,
const int region_w,
const int region_h,
43static inline void _region_blur(
const float *
const restrict in,
float *
const restrict
out,
const int region_w,
44 const int region_h,
const float sigma)
50 memcpy(
out, in, (
size_t)region_w * region_h * 4 *
sizeof(
float));
61 cl_mem guide, cl_mem data, cl_mem step_x, cl_mem step_y,
const int region_w,
69cl_int
_region_blur_cl(
const int devid, cl_mem in, cl_mem
out,
const int region_w,
const int region_h,
static void _region_blur(const float *const restrict in, float *const restrict out, const int region_w, const int region_h, const float sigma)
void _region_edge_blur(const float *const restrict in, float *const restrict out, const float *const restrict guide, float *const restrict step_x, float *const restrict step_y, const int region_w, const int region_h, const float sigma_s, const float sigma_r)
cl_int _region_edge_blur_cl(const int devid, void *gd_void, cl_mem in_image, cl_mem out_image, cl_mem guide, cl_mem data, cl_mem step_x, cl_mem step_y, const int region_w, const int region_h, const float sigma_s, const float sigma_r)
dt_gaussian_t * _hl_gauss_get(const int width, const int height, const int channels, const float sigma)
void _hl_gauss_cache_flush(void)
cl_int _region_blur_cl(const int devid, cl_mem in, cl_mem out, const int region_w, const int region_h, const float sigma)
dt_gaussian_cl_t * _region_blur_handle(const int devid, const int region_w, const int region_h, const float sigma)
const dt_colormatrix_t dt_aligned_pixel_t out
static float gaussian(float x, float std)
void dt_gaussian_blur_4c(dt_gaussian_t *g, const float *const in, float *const out)