Line |
Branch |
Exec |
Source |
1 |
|
|
// SPDX-FileCopyrightText: 2025 Arm Limited and/or its affiliates <open-source-office@arm.com> |
2 |
|
|
// |
3 |
|
|
// SPDX-License-Identifier: Apache-2.0 |
4 |
|
|
|
5 |
|
|
#include "kleidicv/filters/median_blur.h" |
6 |
|
|
#include "median_blur_sorting_network_sc.h" |
7 |
|
|
|
8 |
|
|
namespace kleidicv::sme { |
9 |
|
|
|
10 |
|
|
template <typename T> |
11 |
|
|
KLEIDICV_LOCALLY_STREAMING KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t |
12 |
|
1610 |
median_blur_sorting_network_stripe(const T* src, size_t src_stride, T* dst, |
13 |
|
|
size_t dst_stride, size_t width, |
14 |
|
|
size_t height, size_t y_begin, size_t y_end, |
15 |
|
|
size_t channels, size_t kernel_width, |
16 |
|
|
size_t kernel_height, |
17 |
|
|
FixedBorderType border_type) { |
18 |
|
1610 |
return median_blur_sorting_network_stripe_sc( |
19 |
|
1610 |
src, src_stride, dst, dst_stride, width, height, y_begin, y_end, channels, |
20 |
|
1610 |
kernel_width, kernel_height, border_type); |
21 |
|
|
} |
22 |
|
|
|
23 |
|
|
#define KLEIDICV_INSTANTIATE_TEMPLATE(type) \ |
24 |
|
|
template KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t \ |
25 |
|
|
median_blur_sorting_network_stripe<type>( \ |
26 |
|
|
const type* src, size_t src_stride, type* dst, size_t dst_stride, \ |
27 |
|
|
size_t width, size_t height, size_t y_begin, size_t y_end, \ |
28 |
|
|
size_t channels, size_t kernel_width, size_t kernel_height, \ |
29 |
|
|
FixedBorderType border_type) |
30 |
|
|
|
31 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(int8_t); |
32 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(uint8_t); |
33 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(int16_t); |
34 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(uint16_t); |
35 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(int32_t); |
36 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(uint32_t); |
37 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(float); |
38 |
|
|
|
39 |
|
|
} // namespace kleidicv::sme |
40 |
|
|
|