40 std::span<const float* const> src,
41 std::span<float* const> dst,
42 uint32_t w, uint32_t
h,
43 std::span<const float> kernel);
57 std::span<const float* const> src,
58 std::span<float* const> dst,
59 uint32_t w, uint32_t
h,
60 std::span<const float> kernel);
79 std::span<const float> src, uint32_t w, uint32_t
h,
80 std::span<const float> kernel_x, std::span<const float> kernel_y);
97 std::span<const float> src,
100 uint32_t w, uint32_t
h,
101 std::span<const float> kernel_x,
102 std::span<const float> kernel_y);
121 std::span<const float> src, uint32_t w, uint32_t
h,
float sigma);
134 std::span<const float> src,
135 std::span<float> tmp,
136 std::span<float> dst,
137 uint32_t w, uint32_t
h,
std::vector< float > filter_separable(std::span< const float > src, uint32_t w, uint32_t h, std::span< const float > kernel_x, std::span< const float > kernel_y)
Apply a separable 2D filter via two 1D passes.
void filter_horizontal_planes(std::span< const float *const > src, std::span< float *const > dst, uint32_t w, uint32_t h, std::span< const float > kernel)
Fused horizontal separable filter over N planes.
std::vector< float > gaussian_blur(std::span< const float > src, uint32_t w, uint32_t h, float sigma)
Separable Gaussian blur.
void filter_vertical_planes(std::span< const float *const > src, std::span< float *const > dst, uint32_t w, uint32_t h, std::span< const float > kernel)
Fused vertical separable filter over N planes.