Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
markesteijn.c File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SQR(x)   ((x) * (x))
 
#define TS   122
 
#define TRANSLATE(n, size)   ((n >= size) ? (2 * size - n - 2) : abs(n))
 
#define TS   122
 
#define TRANSLATE(n, size)   ((n >= size) ? (2 * size - n - 2) : abs(n))
 
#define CONV_FILT(VAR, FILT)
 
#define PIX_SWAP(a, b)
 
#define PIX_SORT(a, b)
 

Functions

static const short * hexmap (const int row, const int col, short(*const allhex)[3][8])
 
static __DT_CLONE_TARGETS__ void xtrans_markesteijn_interpolate (float *out, const float *const in, const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, const uint8_t(*const xtrans)[6], const int passes)
 
static __DT_CLONE_TARGETS__ void xtrans_fdc_interpolate (struct dt_iop_module_t *self, float *out, const float *const in, const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, const uint8_t(*const xtrans)[6])
 
static int process_markesteijn_cl (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const gboolean smooth)
 

Macro Definition Documentation

◆ CONV_FILT

#define CONV_FILT (   VAR,
  FILT 
)
Value:
VAR = 0.0f + 0.0f * _Complex_I; \
for(fdc_row = 0, myrow = row - 6; fdc_row < 13; fdc_row++, myrow++) \
for(fdc_col = 0, mycol = col - 6; fdc_col < 13; fdc_col++, mycol++) \
VAR += FILT[12 - fdc_row][12 - fdc_col] * *(i_src + TS * myrow + mycol);
static const int row
Definition colorspaces_inline_conversions.h:35
#define TS
Definition markesteijn.c:27

◆ PIX_SORT

#define PIX_SORT (   a,
 
)
Value:
{ \
if((a) > (b)) PIX_SWAP((a), (b)); \
}
#define PIX_SWAP(a, b)

◆ PIX_SWAP

#define PIX_SWAP (   a,
 
)
Value:
{ \
tempf = (a); \
(a) = (b); \
(b) = tempf; \
}

◆ SQR

#define SQR (   x)    ((x) * (x))

◆ TRANSLATE [1/2]

#define TRANSLATE (   n,
  size 
)    ((n >= size) ? (2 * size - n - 2) : abs(n))

◆ TRANSLATE [2/2]

#define TRANSLATE (   n,
  size 
)    ((n >= size) ? (2 * size - n - 2) : abs(n))

◆ TS [1/2]

#define TS   122

◆ TS [2/2]

#define TS   122

Function Documentation

◆ hexmap()

static const short * hexmap ( const int  row,
const int  col,
short(*)  allhex[3][8] 
)
inlinestatic

Lookup for allhex[], making sure that row/col aren't negative

References row.

Referenced by xtrans_fdc_interpolate(), and xtrans_markesteijn_interpolate().

◆ process_markesteijn_cl()

static int process_markesteijn_cl ( struct dt_iop_module_t self,
const dt_dev_pixelpipe_t pipe,
const dt_dev_pixelpipe_iop_t piece,
cl_mem  dev_in,
cl_mem  dev_out,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out,
const gboolean  smooth 
)
static

References dt_iop_demosaic_data_t::color_smoothing, color_smoothing_cl(), d, dt_dev_pixelpipe_iop_t::data, dt_iop_demosaic_data_t::demosaicing_method, dt_dev_pixelpipe_t::devid, dt_dev_pixelpipe_iop_t::dsc_in, DT_DEBUG_OPENCL, DT_IOP_DEMOSAIC_MARKESTEIJN_3, dt_opencl_alloc_device(), dt_opencl_alloc_device_buffer(), dt_opencl_copy_host_to_device_constant(), dt_opencl_enqueue_copy_buffer_to_buffer(), dt_opencl_enqueue_copy_image(), dt_opencl_enqueue_kernel_2d(), dt_opencl_enqueue_kernel_2d_with_local(), dt_opencl_local_buffer_opt(), dt_opencl_release_mem_object(), dt_opencl_set_kernel_arg(), dt_print(), error(), FALSE, FCxtrans(), g, dt_iop_module_t::global_data, height, dt_iop_roi_t::height, i, IS_NULL_PTR, dt_iop_demosaic_global_data_t::kernel_markesteijn_accu, dt_iop_demosaic_global_data_t::kernel_markesteijn_convert_yuv, dt_iop_demosaic_global_data_t::kernel_markesteijn_differentiate, dt_iop_demosaic_global_data_t::kernel_markesteijn_final, dt_iop_demosaic_global_data_t::kernel_markesteijn_green_minmax, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_max, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_max_corr, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_quench, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_set, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_sum, dt_iop_demosaic_global_data_t::kernel_markesteijn_homo_threshold, dt_iop_demosaic_global_data_t::kernel_markesteijn_initial_copy, dt_iop_demosaic_global_data_t::kernel_markesteijn_interpolate_green, dt_iop_demosaic_global_data_t::kernel_markesteijn_interpolate_twoxtwo, dt_iop_demosaic_global_data_t::kernel_markesteijn_recalculate_green, dt_iop_demosaic_global_data_t::kernel_markesteijn_red_and_blue, dt_iop_demosaic_global_data_t::kernel_markesteijn_solitary_green, dt_iop_demosaic_global_data_t::kernel_markesteijn_zero, n, process_vng_cl(), dt_iop_buffer_dsc_t::processed_maximum, ROUNDUP, ROUNDUPDHT, ROUNDUPDWD, row, dt_opencl_local_buffer_t::sizex, dt_opencl_local_buffer_t::sizey, TRUE, v, width, dt_iop_roi_t::width, dt_iop_roi_t::x, dt_opencl_local_buffer_t::xoffset, dt_iop_buffer_dsc_t::xtrans, and dt_iop_roi_t::y.

Referenced by process_cl().

◆ xtrans_fdc_interpolate()

static __DT_CLONE_TARGETS__ void xtrans_fdc_interpolate ( struct dt_iop_module_t self,
float *  out,
const float *const  in,
const dt_iop_roi_t *const  roi_out,
const dt_iop_roi_t *const  roi_in,
const uint8_t(*)  xtrans[6] 
)
static

◆ xtrans_markesteijn_interpolate()

static __DT_CLONE_TARGETS__ void xtrans_markesteijn_interpolate ( float *  out,
const float *const  in,
const dt_iop_roi_t *const  roi_out,
const dt_iop_roi_t *const  roi_in,
const uint8_t(*)  xtrans[6],
const int  passes 
)
static