22 void temp_jw_smooth(
void* frame_data,
void * _last_frame_data, uint8_t *history)
28 T delta_z =
static_cast<T
>(_delta_param);
30 auto frame =
reinterpret_cast<T*
>(frame_data);
31 auto _last_frame =
reinterpret_cast<T*
>(_last_frame_data);
33 unsigned char mask = 1 << _cur_frame_index;
36 for (
size_t i = 0; i < _current_frm_size_pixels; i++)
39 T prev_val = _last_frame[i];
45 _last_frame[i] = cur_val;
50 T diff =
static_cast<T
>(fabs(cur_val - prev_val));
55 float filtered = _alpha_param * cur_val + _one_minus_alpha * prev_val;
56 T result =
static_cast<T
>(filtered);
58 _last_frame[i] = result;
62 _last_frame[i] = cur_val;
71 unsigned char hist = history[i];
72 unsigned char classification = _persistence_map[hist];
73 if (classification & mask)
82 _cur_frame_index = (_cur_frame_index + 1) % 8;
86 void on_set_persistence_control(uint8_t val);
87 void on_set_alpha(
float val);
88 void on_set_delta(
float val);
90 void recalc_persistence_map();
91 uint8_t _persistence_param;
94 float _one_minus_alpha;
96 size_t _width, _height, _stride;
99 size_t _current_frm_size_pixels;
102 std::vector<uint8_t> _last_frame;
103 std::vector<uint8_t> _history;
104 uint8_t _cur_frame_index;
106 std::array<uint8_t, PRESISTENCY_LUT_SIZE> _persistence_map;
Definition: rs_frame.hpp:21
Definition: rs_frame.hpp:202
Definition: synthetic-stream.h:41
Definition: temporal-filter.h:11
Definition: rs_processing.hpp:13
void temp_jw_smooth(void *frame_data, void *_last_frame_data, uint8_t *history)
Definition: temporal-filter.h:22
void update_configuration(const rs2::frame &f)
rs2::frame prepare_target_frame(const rs2::frame &f, const rs2::frame_source &source)
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition: rs_types.h:94
const size_t PRESISTENCY_LUT_SIZE
Definition: temporal-filter.h:9