Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
bilateral.c File Reference
#include "common/bilateral.h"
#include "common/darktable.h"
#include "common/math.h"
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
+ Include dependency graph for bilateral.c:

Macros

#define DT_COMMON_BILATERAL_MAX_RES_S   3000
 
#define DT_COMMON_BILATERAL_MAX_RES_R   50
 

Functions

void dt_bilateral_grid_size (dt_bilateral_t *b, const int width, const int height, const float L_range, float sigma_s, const float sigma_r)
 
size_t dt_bilateral_memory_use (const int width, const int height, const float sigma_s, const float sigma_r)
 
size_t dt_bilateral_memory_use2 (const int width, const int height, const float sigma_s, const float sigma_r)
 
size_t dt_bilateral_singlebuffer_size (const int width, const int height, const float sigma_s, const float sigma_r)
 
size_t dt_bilateral_singlebuffer_size2 (const int width, const int height, const float sigma_s, const float sigma_r)
 
static size_t image_to_grid (const dt_bilateral_t *const b, const int i, const int j, const float L, float *xf, float *yf, float *zf)
 
static size_t image_to_relgrid (const dt_bilateral_t *const b, const int i, const float L, float *xf, float *zf)
 
dt_bilateral_tdt_bilateral_init (const int width, const int height, const float sigma_s, const float sigma_r)
 
void dt_bilateral_splat (const dt_bilateral_t *b, const float *const in)
 
static void blur_line_z (float *buf, const int offset1, const int offset2, const int offset3, const int size1, const int size2, const int size3)
 
static void blur_line (float *buf, const int offset1, const int offset2, const int offset3, const int size1, const int size2, const int size3)
 
void dt_bilateral_blur (const dt_bilateral_t *b)
 
void dt_bilateral_slice (const dt_bilateral_t *const b, const float *const in, float *out, const float detail)
 
void dt_bilateral_slice_to_output (const dt_bilateral_t *const b, const float *const in, float *out, const float detail)
 
void dt_bilateral_free (dt_bilateral_t *b)
 

Macro Definition Documentation

◆ DT_COMMON_BILATERAL_MAX_RES_R

#define DT_COMMON_BILATERAL_MAX_RES_R   50

◆ DT_COMMON_BILATERAL_MAX_RES_S

#define DT_COMMON_BILATERAL_MAX_RES_S   3000

Function Documentation

◆ blur_line()

static void blur_line ( float *  buf,
const int  offset1,
const int  offset2,
const int  offset3,
const int  size1,
const int  size2,
const int  size3 
)
static

References w1, and w2.

Referenced by dt_bilateral_blur().

◆ blur_line_z()

static void blur_line_z ( float *  buf,
const int  offset1,
const int  offset2,
const int  offset3,
const int  size1,
const int  size2,
const int  size3 
)
static

References w1, and w2.

Referenced by dt_bilateral_blur().

◆ dt_bilateral_blur()

void dt_bilateral_blur ( const dt_bilateral_t b)

◆ dt_bilateral_free()

void dt_bilateral_free ( dt_bilateral_t b)

◆ dt_bilateral_grid_size()

void dt_bilateral_grid_size ( dt_bilateral_t b,
const int  width,
const int  height,
const float  L_range,
float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_init()

dt_bilateral_t * dt_bilateral_init ( const int  width,
const int  height,
const float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_memory_use()

size_t dt_bilateral_memory_use ( const int  width,
const int  height,
const float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_memory_use2()

size_t dt_bilateral_memory_use2 ( const int  width,
const int  height,
const float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_singlebuffer_size()

size_t dt_bilateral_singlebuffer_size ( const int  width,
const int  height,
const float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_singlebuffer_size2()

size_t dt_bilateral_singlebuffer_size2 ( const int  width,
const int  height,
const float  sigma_s,
const float  sigma_r 
)

◆ dt_bilateral_slice()

void dt_bilateral_slice ( const dt_bilateral_t *const  b,
const float *const  in,
float *  out,
const float  detail 
)

References height, image_to_grid(), and width.

Referenced by _retouch_blur(), process(), and process().

◆ dt_bilateral_slice_to_output()

void dt_bilateral_slice_to_output ( const dt_bilateral_t *const  b,
const float *const  in,
float *  out,
const float  detail 
)

References height, image_to_grid(), MAX, and width.

Referenced by detail_enhance(), and process().

◆ dt_bilateral_splat()

void dt_bilateral_splat ( const dt_bilateral_t b,
const float *const  in 
)

◆ image_to_grid()

static size_t image_to_grid ( const dt_bilateral_t *const  b,
const int  i,
const int  j,
const float  L,
float *  xf,
float *  yf,
float *  zf 
)
static

References CLAMPS, and MIN.

Referenced by dt_bilateral_slice(), and dt_bilateral_slice_to_output().

◆ image_to_relgrid()

static size_t image_to_relgrid ( const dt_bilateral_t *const  b,
const int  i,
const float  L,
float *  xf,
float *  zf 
)
static

References CLAMPS, and MIN.

Referenced by dt_bilateral_splat().