From 50f9fd73536fd359137702ac9c42c9a1c61ff415 Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Mon, 19 Jun 2017 17:05:30 +0100 Subject: COMPMID-378 NEON/CL Sobel 3x3 and 5x5 tests. Change-Id: Ic90edd77c7f694f95663d8163623db3837a48616 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78284 Tested-by: Kaizen Reviewed-by: Moritz Pflanzer --- tests/validation/ReferenceCPP.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/validation/ReferenceCPP.cpp') diff --git a/tests/validation/ReferenceCPP.cpp b/tests/validation/ReferenceCPP.cpp index 5c429ea864..ca6bb6cec4 100644 --- a/tests/validation/ReferenceCPP.cpp +++ b/tests/validation/ReferenceCPP.cpp @@ -48,6 +48,26 @@ namespace test { namespace validation { +// Sobel 3x3 +void ReferenceCPP::sobel_3x3(RawTensor &src, RawTensor &dst_x, RawTensor &dst_y, BorderMode border_mode, uint8_t constant_border_value) +{ + ARM_COMPUTE_ERROR_ON(src.data_type() != DataType::U8 || dst_x.data_type() != DataType::S16 || dst_y.data_type() != DataType::S16); + Tensor s(src.shape(), src.data_type(), src.fixed_point_position(), reinterpret_cast(src.data())); + Tensor dx(dst_x.shape(), dst_x.data_type(), dst_x.fixed_point_position(), reinterpret_cast(dst_x.data())); + Tensor dy(dst_y.shape(), dst_y.data_type(), dst_y.fixed_point_position(), reinterpret_cast(dst_y.data())); + tensor_operations::sobel_3x3(s, dx, dy, border_mode, constant_border_value); +} + +// Sobel 5x5 +void ReferenceCPP::sobel_5x5(RawTensor &src, RawTensor &dst_x, RawTensor &dst_y, BorderMode border_mode, uint8_t constant_border_value) +{ + ARM_COMPUTE_ERROR_ON(src.data_type() != DataType::U8 || dst_x.data_type() != DataType::S16 || dst_y.data_type() != DataType::S16); + Tensor s(src.shape(), src.data_type(), src.fixed_point_position(), reinterpret_cast(src.data())); + Tensor dx(dst_x.shape(), dst_x.data_type(), dst_x.fixed_point_position(), reinterpret_cast(dst_x.data())); + Tensor dy(dst_y.shape(), dst_y.data_type(), dst_y.fixed_point_position(), reinterpret_cast(dst_y.data())); + tensor_operations::sobel_5x5(s, dx, dy, border_mode, constant_border_value); +} + // Absolute difference void ReferenceCPP::absolute_difference(const RawTensor &src1, const RawTensor &src2, RawTensor &dst) { -- cgit v1.2.1