Go to the source code of this file.
|
| static void | weight (const float *c1, const float *c2, const float sharpen, dt_aligned_pixel_t weight) |
| |
| void | eaw_decompose (float *const restrict out, const float *const restrict in, float *const restrict detail, const int scale, const float sharpen, const int32_t width, const int32_t height) |
| |
| void | eaw_synthesize (float *const out, const float *const in, const float *const restrict detail, const float *const restrict threshold, const float *const restrict boost, const int32_t width, const int32_t height) |
| |
| static float | dn_weight (const float *c1, const float *c2, const float inv_sigma2) |
| |
| void | eaw_dn_decompose (float *const restrict out, const float *const restrict in, float *const restrict detail, dt_aligned_pixel_t sum_squared, const int scale, const float inv_sigma2, const int32_t width, const int32_t height) |
| |
◆ SUM_PIXEL_CONTRIBUTION [1/2]
| #define SUM_PIXEL_CONTRIBUTION |
( |
|
ii, |
|
|
|
jj |
|
) |
| |
Value: do \
{ \
const float f = filter[(ii)] * filter[(jj)]; \
weight(px, px2, sharpen, wp); \
for_four_channels(c,aligned(px2)) \
{ \
wgt[c] += w[c]; \
pd[c] = w[c] * px2[c]; \
sum[c] += pd[c]; \
} \
} while(0)
const dt_aligned_pixel_t f
float dt_aligned_pixel_t[4]
Definition at line 46 of file eaw.c.
◆ SUM_PIXEL_CONTRIBUTION [2/2]
| #define SUM_PIXEL_CONTRIBUTION |
( |
|
ii, |
|
|
|
jj |
|
) |
| |
Value: do \
{ \
const float f = filter[(ii)] * filter[(jj)]; \
const float wp =
dn_weight(px, px2, inv_sigma2); \
const float w =
f * wp; \
for_each_channel(c,aligned(px2)) \
{ \
pd[c] = w * px2[c]; \
wgt[c] += w; \
sum[c] += pd[c]; \
} \
} while(0)
static float dn_weight(const float *c1, const float *c2, const float inv_sigma2)
Definition at line 46 of file eaw.c.
◆ SUM_PIXEL_EPILOGUE [1/2]
| #define SUM_PIXEL_EPILOGUE |
Value:
{ \
sum[c] /= wgt[c]; \
pcoarse[c] = sum[c]; \
const float det = (px[c] - sum[c]); \
pdetail[c] = det; \
} \
px += 4; \
pdetail += 4; \
pcoarse += 4;
#define for_each_channel(_var,...)
Definition at line 67 of file eaw.c.
◆ SUM_PIXEL_EPILOGUE [2/2]
| #define SUM_PIXEL_EPILOGUE |
Value:
{ \
sum[c] /= wgt[c]; \
pcoarse[c] = sum[c]; \
const float det = (px[c] - sum[c]); \
pdetail[c] = det; \
sum_sq.v[c] += (det*det); \
} \
px += 4; \
pdetail += 4; \
pcoarse += 4;
Definition at line 67 of file eaw.c.
◆ SUM_PIXEL_PROLOGUE
| #define SUM_PIXEL_PROLOGUE |
Value:
Definition at line 63 of file eaw.c.
◆ _aligned_pixel
◆ dn_weight()
| static float dn_weight |
( |
const float * |
c1, |
|
|
const float * |
c2, |
|
|
const float |
inv_sigma2 |
|
) |
| |
|
inlinestatic |
◆ eaw_decompose()
| void eaw_decompose |
( |
float *const restrict |
out, |
|
|
const float *const restrict |
in, |
|
|
float *const restrict |
detail, |
|
|
const int |
scale, |
|
|
const float |
sharpen, |
|
|
const int32_t |
width, |
|
|
const int32_t |
height |
|
) |
| |
◆ eaw_dn_decompose()
| void eaw_dn_decompose |
( |
float *const restrict |
out, |
|
|
const float *const restrict |
in, |
|
|
float *const restrict |
detail, |
|
|
dt_aligned_pixel_t |
sum_squared, |
|
|
const int |
scale, |
|
|
const float |
inv_sigma2, |
|
|
const int32_t |
width, |
|
|
const int32_t |
height |
|
) |
| |
Definition at line 243 of file eaw.c.
References __OMP_PARALLEL_FOR__, dwt_interleave_rows(), for_each_channel, height, i, out, SUM_PIXEL_CONTRIBUTION, SUM_PIXEL_EPILOGUE, SUM_PIXEL_PROLOGUE, _aligned_pixel::v, width, and x.
Referenced by process().
◆ eaw_synthesize()
| void eaw_synthesize |
( |
float *const |
out, |
|
|
const float *const |
in, |
|
|
const float *const restrict |
detail, |
|
|
const float *const restrict |
threshold, |
|
|
const float *const restrict |
boost, |
|
|
const int32_t |
width, |
|
|
const int32_t |
height |
|
) |
| |
◆ weight()
Definition at line 30 of file eaw.c.
References c1, c2, for_each_channel, and weight().
Referenced by _bin_pixels_waveform_in_roi(), _build_xtrans_bilinear_lookup(), HashTablePermutohedral< KD, VD >::Value::add(), HashTablePermutohedral< KD, VD >::Value::addTo(), apply_correction(), auto_detect_WB(), blur_line(), dt_control_merge_hdr_process(), dt_iop_colorreconstruct_bilateral_slice(), dt_iop_colorreconstruct_bilateral_splat(), expand_2D_Bspline(), get_clusters(), get_theta(), init_gaussian_kernel(), inpaint_noise(), lin_interpolate(), line_detect(), local_laplacian_internal(), mask_clipped_pixels(), nlmeans_denoise(), process(), process(), process_cl(), process_vng_cl(), ransac(), reduce_2D_Bspline(), region2rect(), scrolled(), vng_interpolate(), and weight().