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 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 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])
 

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);
#define TS
Definition markesteijn.c:10

◆ 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

Referenced by xtrans_fdc_interpolate(), and xtrans_markesteijn_interpolate().

◆ xtrans_fdc_interpolate()

static 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 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
Todo:
: these constants come from integer math constants in

References CLAMPS, dt_alloc_perthread(), dt_free_align, dt_get_perthread, f(), FCxtrans(), height, dt_iop_roi_t::height, hexmap(), memset_zero(), MIN, SQR, TRANSLATE, TS, width, and dt_iop_roi_t::width.

Referenced by process().