![]() |
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>
Include dependency graph for nlmeans_core.c: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 |