![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/math.h"
#include "common/opencl.h"
#include "control/control.h"
#include "develop/imageop.h"
#include "develop/imageop_math.h"
#include "develop/tiling.h"
#include "iop/iop_api.h"
#include "common/nlmeans_core.h"
#include <stdbool.h>
#include <stdlib.h>
Data Structures | |
struct | patch_t |
Macros | |
#define | SLICE_WIDTH 72 |
#define | SLICE_HEIGHT 60 |
#define | NUM_BUCKETS 4 |
#define | _mm_prefetch(where, hint) |
Typedefs | |
typedef struct patch_t | patch_t |
Functions | |
static float | gh (const float f) |
static int | sign (int a) |
static int | scatter (const float scale, const float scattering, const int index1, const int index2) |
static struct patch_t * | define_patches (const dt_nlmeans_param_t *const params, const int stride, int *num_patches, int *max_shift) |
static float | compute_center_pixel_norm (const float center_weight, const int radius) |
static float | pixel_difference (const float *const pix1, const float *pix2, const dt_aligned_pixel_t norm) |
static float | diff_of_pixels_diff (const float *const pix1, const float *pix2, const float *const pix3, const float *pix4, const dt_aligned_pixel_t norm) |
static void | init_column_sums (float *const col_sums, const patch_t *const patch, const float *const in, const int row, const int chunk_left, const int chunk_right, const int height, const int width, const int stride, const int radius, const float *const norm) |
static int | compute_slice_height (const int height) |
static int | compute_slice_width (const int width) |
__DT_CLONE_TARGETS__ void | nlmeans_denoise (const float *const inbuf, float *const outbuf, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const dt_nlmeans_param_t *const params) |
#define _mm_prefetch | ( | where, | |
hint | |||
) |
#define NUM_BUCKETS 4 |
#define SLICE_HEIGHT 60 |
#define SLICE_WIDTH 72 |
|
static |
References width.
Referenced by nlmeans_denoise().
|
static |
References height, and SLICE_HEIGHT.
Referenced by nlmeans_denoise().
|
static |
References SLICE_WIDTH, and width.
Referenced by nlmeans_denoise().
|
static |
References patch_t::cols, dt_alloc_align, patch_t::offset, patch_t::rows, and scatter().
Referenced by nlmeans_denoise().
|
inlinestatic |
References for_each_channel.
Referenced by nlmeans_denoise().
|
inlinestatic |
References dt_fast_mexp2f(), and f().
Referenced by _circle_get_mask_roi(), _ellipse_get_mask_roi(), _gradient_get_mask(), _gradient_get_mask_roi(), and nlmeans_denoise().
|
static |
References patch_t::cols, height, MAX, MIN, patch_t::offset, pixel_difference(), patch_t::rows, and width.
Referenced by nlmeans_denoise().
__DT_CLONE_TARGETS__ void nlmeans_denoise | ( | const float *const | inbuf, |
float *const | outbuf, | ||
const dt_iop_roi_t *const | roi_in, | ||
const dt_iop_roi_t *const | roi_out, | ||
const dt_nlmeans_param_t *const | params | ||
) |
References _mm_prefetch, patch_t::cols, compute_center_pixel_norm(), compute_slice_height(), compute_slice_width(), define_patches(), diff_of_pixels_diff(), dt_alloc_perthread_float(), dt_free_align, dt_get_perthread, for_each_channel, for_four_channels, gh(), height, dt_iop_roi_t::height, init_column_sums(), MAX, MIN, patch_t::offset, pixel_difference(), patch_t::rows, SLICE_WIDTH, weight(), width, and dt_iop_roi_t::width.
Referenced by process(), and process_nlmeans().
|
inlinestatic |
References for_each_channel.
Referenced by init_column_sums(), and nlmeans_denoise().
|
static |
References sign().
Referenced by define_patches().
|
inlinestatic |