Line |
Branch |
Exec |
Source |
1 |
|
|
// SPDX-FileCopyrightText: 2023 - 2025 Arm Limited and/or its affiliates <open-source-office@arm.com> |
2 |
|
|
// |
3 |
|
|
// SPDX-License-Identifier: Apache-2.0 |
4 |
|
|
|
5 |
|
|
#include "morphology_sc.h" |
6 |
|
|
|
7 |
|
|
namespace kleidicv::sme { |
8 |
|
|
|
9 |
|
|
template <typename T> |
10 |
|
|
KLEIDICV_LOCALLY_STREAMING KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t |
11 |
|
186 |
dilate(const T *src, size_t src_stride, T *dst, size_t dst_stride, size_t width, |
12 |
|
|
size_t height, kleidicv_morphology_context_t *context) { |
13 |
|
372 |
return dilate_sc<T, CopyDataSVE2<T> >(src, src_stride, dst, dst_stride, width, |
14 |
|
186 |
height, context); |
15 |
|
|
} |
16 |
|
|
|
17 |
|
|
template <typename T> |
18 |
|
|
KLEIDICV_LOCALLY_STREAMING KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t |
19 |
|
170 |
erode(const T *src, size_t src_stride, T *dst, size_t dst_stride, size_t width, |
20 |
|
|
size_t height, kleidicv_morphology_context_t *context) { |
21 |
|
340 |
return erode_sc<T, CopyDataSVE2<T> >(src, src_stride, dst, dst_stride, width, |
22 |
|
170 |
height, context); |
23 |
|
|
} |
24 |
|
|
|
25 |
|
|
#define KLEIDICV_INSTANTIATE_TEMPLATE(name, type) \ |
26 |
|
|
template KLEIDICV_TARGET_FN_ATTRS kleidicv_error_t name<type>( \ |
27 |
|
|
const type *src, size_t src_stride, type *dst, size_t dst_stride, \ |
28 |
|
|
size_t width, size_t height, kleidicv_morphology_context_t *context) |
29 |
|
|
|
30 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(dilate, uint8_t); |
31 |
|
|
KLEIDICV_INSTANTIATE_TEMPLATE(erode, uint8_t); |
32 |
|
|
|
33 |
|
|
} // namespace kleidicv::sme |
34 |
|
|
|