![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/box_filters.h"
#include "common/guided_filter.h"
#include "common/math.h"
#include "common/opencl.h"
#include <assert.h>
#include <float.h>
#include <stdlib.h>
#include <string.h>
Data Structures | |
struct | tile |
struct | color_image |
Macros | |
#define | GF_TILE_SIZE 512 |
#define | SIMD_FOR for |
#define | _mm_prefetch(where, hint) |
#define | INP_MEAN 0 |
#define | GUIDE_MEAN_R 1 |
#define | GUIDE_MEAN_G 2 |
#define | GUIDE_MEAN_B 3 |
#define | COV_R 0 |
#define | COV_G 1 |
#define | COV_B 2 |
#define | VAR_RR 3 |
#define | VAR_RG 4 |
#define | VAR_RB 5 |
#define | VAR_GG 6 |
#define | VAR_BB 8 |
#define | VAR_GB 7 |
#define | A_RED 0 |
#define | A_GREEN 1 |
#define | A_BLUE 2 |
#define | B 3 |
Typedefs | |
typedef struct tile | tile |
typedef struct color_image | color_image |
Functions | |
static color_image | new_color_image (int width, int height, int ch) |
static void | free_color_image (color_image *img_p) |
static float * | get_color_pixel (color_image img, size_t i) |
static void | guided_filter_tiling (color_image imgg, gray_image img, gray_image img_out, tile target, const int w, const float eps, const float guide_weight, const float min, const float max) |
static int | compute_tile_height (const int height, const int w) |
static int | compute_tile_width (const int width, const int w) |
void | guided_filter (const float *const guide, const float *const in, float *const out, const int width, const int height, const int ch, const int w, const float sqrt_eps, const float guide_weight, const float min, const float max) |
#define _mm_prefetch | ( | where, | |
hint | |||
) |
#define A_BLUE 2 |
#define A_GREEN 1 |
#define A_RED 0 |
#define B 3 |
#define COV_B 2 |
#define COV_G 1 |
#define COV_R 0 |
#define GF_TILE_SIZE 512 |
#define GUIDE_MEAN_B 3 |
#define GUIDE_MEAN_G 2 |
#define GUIDE_MEAN_R 1 |
#define INP_MEAN 0 |
#define SIMD_FOR for |
#define VAR_BB 8 |
#define VAR_GB 7 |
#define VAR_GG 6 |
#define VAR_RB 5 |
#define VAR_RG 4 |
#define VAR_RR 3 |
typedef struct color_image color_image |
|
static |
References GF_TILE_SIZE, height, and max_i().
Referenced by guided_filter().
|
static |
References GF_TILE_SIZE, max_i(), and width.
Referenced by guided_filter().
|
inlinestatic |
References color_image::data, and dt_free_align.
Referenced by guided_filter_tiling().
|
inlinestatic |
References color_image::data, and color_image::stride.
Referenced by guided_filter_tiling().
void guided_filter | ( | const float *const | guide, |
const float *const | in, | ||
float *const | out, | ||
const int | width, | ||
const int | height, | ||
const int | ch, | ||
const int | w, | ||
const float | sqrt_eps, | ||
const float | guide_weight, | ||
const float | min, | ||
const float | max | ||
) |
References compute_tile_height(), compute_tile_width(), eps, guided_filter_tiling(), height, min_i(), and width.
Referenced by _develop_blend_process_feather(), and process().
|
static |
References A_BLUE, A_GREEN, A_RED, B, BOXFILTER_KAHAN_SUM, COV_B, COV_G, COV_R, color_image::data, gray_image::data, dt_alloc_perthread_float(), dt_box_mean(), dt_box_mean_horizontal(), dt_box_mean_vertical(), dt_free_align, dt_get_perthread, eps, free_color_image(), get_color_pixel(), GUIDE_MEAN_B, GUIDE_MEAN_G, GUIDE_MEAN_R, height, color_image::height, INP_MEAN, tile::left, tile::lower, max_i(), min_i(), new_color_image(), tile::right, size, color_image::stride, tile::upper, VAR_BB, VAR_GB, VAR_GG, VAR_RB, VAR_RG, VAR_RR, width, color_image::width, and gray_image::width.
Referenced by guided_filter().
|
inlinestatic |
References dt_alloc_align_float(), height, and width.
Referenced by guided_filter_tiling().