Blender  V2.93
Macros | Functions
filter_nlm_cpu.h File Reference

Go to the source code of this file.

Macros

#define load4_a(buf, ofs)   (*((float4 *)((buf) + (ofs))))
 
#define load4_u(buf, ofs)   load_float4((buf) + (ofs))
 

Functions

ccl_device_inline void kernel_filter_nlm_calc_difference (int dx, int dy, const float *ccl_restrict weight_image, const float *ccl_restrict variance_image, const float *ccl_restrict scale_image, float *difference_image, int4 rect, int stride, int channel_offset, int frame_offset, float a, float k_2)
 
ccl_device_inline void kernel_filter_nlm_blur (const float *ccl_restrict difference_image, float *out_image, int4 rect, int stride, int f)
 
ccl_device_inline void nlm_blur_horizontal (const float *ccl_restrict difference_image, float *out_image, int4 rect, int stride, int f)
 
ccl_device_inline void kernel_filter_nlm_calc_weight (const float *ccl_restrict difference_image, float *out_image, int4 rect, int stride, int f)
 
ccl_device_inline void kernel_filter_nlm_update_output (int dx, int dy, const float *ccl_restrict difference_image, const float *ccl_restrict image, float *temp_image, float *out_image, float *accum_image, int4 rect, int channel_offset, int stride, int f)
 
ccl_device_inline void kernel_filter_nlm_construct_gramian (int dx, int dy, int t, const float *ccl_restrict difference_image, const float *ccl_restrict buffer, float *transform, int *rank, float *XtWX, float3 *XtWY, int4 rect, int4 filter_window, int stride, int f, int pass_stride, int frame_offset, bool use_time)
 
ccl_device_inline void kernel_filter_nlm_normalize (float *out_image, const float *ccl_restrict accum_image, int4 rect, int w)
 

Macro Definition Documentation

◆ load4_a

#define load4_a (   buf,
  ofs 
)    (*((float4 *)((buf) + (ofs))))

Definition at line 19 of file filter_nlm_cpu.h.

◆ load4_u

#define load4_u (   buf,
  ofs 
)    load_float4((buf) + (ofs))

Definition at line 20 of file filter_nlm_cpu.h.

Function Documentation

◆ kernel_filter_nlm_blur()

ccl_device_inline void kernel_filter_nlm_blur ( const float *ccl_restrict  difference_image,
float out_image,
int4  rect,
int  stride,
int  f 
)

Definition at line 71 of file filter_nlm_cpu.h.

References high(), load4_a, low(), make_float4, max, min, round_down(), stride, int4::w, int4::x, x, int4::y, y, y1, and int4::z.

Referenced by filter_nlm_blur().

◆ kernel_filter_nlm_calc_difference()

ccl_device_inline void kernel_filter_nlm_calc_difference ( int  dx,
int  dy,
const float *ccl_restrict  weight_image,
const float *ccl_restrict  variance_image,
const float *ccl_restrict  scale_image,
float difference_image,
int4  rect,
int  stride,
int  channel_offset,
int  frame_offset,
float  a,
float  k_2 
)

◆ kernel_filter_nlm_calc_weight()

ccl_device_inline void kernel_filter_nlm_calc_weight ( const float *ccl_restrict  difference_image,
float out_image,
int4  rect,
int  stride,
int  f 
)

◆ kernel_filter_nlm_construct_gramian()

ccl_device_inline void kernel_filter_nlm_construct_gramian ( int  dx,
int  dy,
int  t,
const float *ccl_restrict  difference_image,
const float *ccl_restrict  buffer,
float transform,
int *  rank,
float XtWX,
float3 XtWY,
int4  rect,
int4  filter_window,
int  stride,
int  f,
int  pass_stride,
int  frame_offset,
bool  use_time 
)

◆ kernel_filter_nlm_normalize()

ccl_device_inline void kernel_filter_nlm_normalize ( float out_image,
const float *ccl_restrict  accum_image,
int4  rect,
int  w 
)

Definition at line 239 of file filter_nlm_cpu.h.

References int4::w, w(), int4::x, x, int4::y, y, and int4::z.

Referenced by filter_nlm_normalize().

◆ kernel_filter_nlm_update_output()

ccl_device_inline void kernel_filter_nlm_update_output ( int  dx,
int  dy,
const float *ccl_restrict  difference_image,
const float *ccl_restrict  image,
float temp_image,
float out_image,
float accum_image,
int4  rect,
int  channel_offset,
int  stride,
int  f 
)

◆ nlm_blur_horizontal()

ccl_device_inline void nlm_blur_horizontal ( const float *ccl_restrict  difference_image,
float out_image,
int4  rect,
int  stride,
int  f 
)