From 27e67f0b2047cfa2f011f9e242e3068d9e106b39 Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Tue, 16 Feb 2021 11:34:39 +0000 Subject: Remove Compute Vision Neon support Resolves COMPMID-4150 Change-Id: I316e8ab97de796666c71eadfde894715fcf4a1aa Signed-off-by: Michalis Spyrou Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5141 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins --- arm_compute/runtime/NEON/NEFunctions.h | 41 ------ .../runtime/NEON/functions/NEAbsoluteDifference.h | 65 --------- arm_compute/runtime/NEON/functions/NEAccumulate.h | 122 ---------------- arm_compute/runtime/NEON/functions/NEBox3x3.h | 60 -------- arm_compute/runtime/NEON/functions/NECannyEdge.h | 106 -------------- .../runtime/NEON/functions/NEChannelCombine.h | 62 --------- .../runtime/NEON/functions/NEChannelExtract.h | 60 -------- .../runtime/NEON/functions/NEColorConvert.h | 71 ---------- arm_compute/runtime/NEON/functions/NEDerivative.h | 82 ----------- arm_compute/runtime/NEON/functions/NEDilate.h | 57 -------- .../runtime/NEON/functions/NEEqualizeHistogram.h | 89 ------------ arm_compute/runtime/NEON/functions/NEErode.h | 57 -------- arm_compute/runtime/NEON/functions/NEFastCorners.h | 96 ------------- arm_compute/runtime/NEON/functions/NEGaussian3x3.h | 57 -------- arm_compute/runtime/NEON/functions/NEGaussian5x5.h | 88 ------------ .../runtime/NEON/functions/NEGaussianPyramid.h | 154 --------------------- .../runtime/NEON/functions/NEHOGDescriptor.h | 90 ------------ arm_compute/runtime/NEON/functions/NEHOGDetector.h | 73 ---------- arm_compute/runtime/NEON/functions/NEHOGGradient.h | 88 ------------ .../runtime/NEON/functions/NEHOGMultiDetection.h | 119 ---------------- .../runtime/NEON/functions/NEHarrisCorners.h | 119 ---------------- arm_compute/runtime/NEON/functions/NEHistogram.h | 80 ----------- .../runtime/NEON/functions/NEIntegralImage.h | 61 -------- .../runtime/NEON/functions/NELaplacianPyramid.h | 98 ------------- .../NEON/functions/NELaplacianReconstruct.h | 104 -------------- arm_compute/runtime/NEON/functions/NEMagnitude.h | 64 --------- arm_compute/runtime/NEON/functions/NEMeanStdDev.h | 77 ----------- arm_compute/runtime/NEON/functions/NEMedian3x3.h | 58 -------- .../runtime/NEON/functions/NEMinMaxLocation.h | 86 ------------ .../runtime/NEON/functions/NENonLinearFilter.h | 64 --------- arm_compute/runtime/NEON/functions/NEOpticalFlow.h | 108 --------------- arm_compute/runtime/NEON/functions/NEPhase.h | 53 ------- arm_compute/runtime/NEON/functions/NERemap.h | 63 --------- arm_compute/runtime/NEON/functions/NEScharr3x3.h | 61 -------- arm_compute/runtime/NEON/functions/NESobel3x3.h | 61 -------- arm_compute/runtime/NEON/functions/NESobel5x5.h | 92 ------------ arm_compute/runtime/NEON/functions/NESobel7x7.h | 92 ------------ arm_compute/runtime/NEON/functions/NETableLookup.h | 47 ------- arm_compute/runtime/NEON/functions/NEThreshold.h | 65 --------- arm_compute/runtime/NEON/functions/NEWarpAffine.h | 57 -------- .../runtime/NEON/functions/NEWarpPerspective.h | 56 -------- 41 files changed, 3203 deletions(-) delete mode 100644 arm_compute/runtime/NEON/functions/NEAbsoluteDifference.h delete mode 100644 arm_compute/runtime/NEON/functions/NEAccumulate.h delete mode 100644 arm_compute/runtime/NEON/functions/NEBox3x3.h delete mode 100644 arm_compute/runtime/NEON/functions/NECannyEdge.h delete mode 100644 arm_compute/runtime/NEON/functions/NEChannelCombine.h delete mode 100644 arm_compute/runtime/NEON/functions/NEChannelExtract.h delete mode 100644 arm_compute/runtime/NEON/functions/NEColorConvert.h delete mode 100644 arm_compute/runtime/NEON/functions/NEDerivative.h delete mode 100644 arm_compute/runtime/NEON/functions/NEDilate.h delete mode 100644 arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h delete mode 100644 arm_compute/runtime/NEON/functions/NEErode.h delete mode 100644 arm_compute/runtime/NEON/functions/NEFastCorners.h delete mode 100644 arm_compute/runtime/NEON/functions/NEGaussian3x3.h delete mode 100644 arm_compute/runtime/NEON/functions/NEGaussian5x5.h delete mode 100644 arm_compute/runtime/NEON/functions/NEGaussianPyramid.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHOGDescriptor.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHOGDetector.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHOGGradient.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHOGMultiDetection.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHarrisCorners.h delete mode 100644 arm_compute/runtime/NEON/functions/NEHistogram.h delete mode 100644 arm_compute/runtime/NEON/functions/NEIntegralImage.h delete mode 100644 arm_compute/runtime/NEON/functions/NELaplacianPyramid.h delete mode 100644 arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h delete mode 100644 arm_compute/runtime/NEON/functions/NEMagnitude.h delete mode 100644 arm_compute/runtime/NEON/functions/NEMeanStdDev.h delete mode 100644 arm_compute/runtime/NEON/functions/NEMedian3x3.h delete mode 100644 arm_compute/runtime/NEON/functions/NEMinMaxLocation.h delete mode 100644 arm_compute/runtime/NEON/functions/NENonLinearFilter.h delete mode 100644 arm_compute/runtime/NEON/functions/NEOpticalFlow.h delete mode 100644 arm_compute/runtime/NEON/functions/NEPhase.h delete mode 100644 arm_compute/runtime/NEON/functions/NERemap.h delete mode 100644 arm_compute/runtime/NEON/functions/NEScharr3x3.h delete mode 100644 arm_compute/runtime/NEON/functions/NESobel3x3.h delete mode 100644 arm_compute/runtime/NEON/functions/NESobel5x5.h delete mode 100644 arm_compute/runtime/NEON/functions/NESobel7x7.h delete mode 100644 arm_compute/runtime/NEON/functions/NETableLookup.h delete mode 100644 arm_compute/runtime/NEON/functions/NEThreshold.h delete mode 100644 arm_compute/runtime/NEON/functions/NEWarpAffine.h delete mode 100644 arm_compute/runtime/NEON/functions/NEWarpPerspective.h (limited to 'arm_compute') diff --git a/arm_compute/runtime/NEON/NEFunctions.h b/arm_compute/runtime/NEON/NEFunctions.h index e876e3916f..8b6649cc41 100644 --- a/arm_compute/runtime/NEON/NEFunctions.h +++ b/arm_compute/runtime/NEON/NEFunctions.h @@ -24,9 +24,6 @@ #ifndef ARM_COMPUTE_NEFUNCTIONS_H #define ARM_COMPUTE_NEFUNCTIONS_H -/* Header regrouping all the Neon functions */ -#include "arm_compute/runtime/NEON/functions/NEAbsoluteDifference.h" -#include "arm_compute/runtime/NEON/functions/NEAccumulate.h" #include "arm_compute/runtime/NEON/functions/NEActivationLayer.h" #include "arm_compute/runtime/NEON/functions/NEArgMinMaxLayer.h" #include "arm_compute/runtime/NEON/functions/NEArithmeticAddition.h" @@ -38,13 +35,8 @@ #include "arm_compute/runtime/NEON/functions/NEBitwiseOr.h" #include "arm_compute/runtime/NEON/functions/NEBitwiseXor.h" #include "arm_compute/runtime/NEON/functions/NEBoundingBoxTransform.h" -#include "arm_compute/runtime/NEON/functions/NEBox3x3.h" -#include "arm_compute/runtime/NEON/functions/NECannyEdge.h" #include "arm_compute/runtime/NEON/functions/NECast.h" -#include "arm_compute/runtime/NEON/functions/NEChannelCombine.h" -#include "arm_compute/runtime/NEON/functions/NEChannelExtract.h" #include "arm_compute/runtime/NEON/functions/NEChannelShuffleLayer.h" -#include "arm_compute/runtime/NEON/functions/NEColorConvert.h" #include "arm_compute/runtime/NEON/functions/NEConcatenateLayer.h" #include "arm_compute/runtime/NEON/functions/NEConvertFullyConnectedWeights.h" #include "arm_compute/runtime/NEON/functions/NEConvolution.h" @@ -56,18 +48,13 @@ #include "arm_compute/runtime/NEON/functions/NEDepthToSpaceLayer.h" #include "arm_compute/runtime/NEON/functions/NEDepthwiseConvolutionLayer.h" #include "arm_compute/runtime/NEON/functions/NEDequantizationLayer.h" -#include "arm_compute/runtime/NEON/functions/NEDerivative.h" #include "arm_compute/runtime/NEON/functions/NEDetectionPostProcessLayer.h" -#include "arm_compute/runtime/NEON/functions/NEDilate.h" #include "arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h" #include "arm_compute/runtime/NEON/functions/NEElementwiseOperations.h" #include "arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h" -#include "arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h" -#include "arm_compute/runtime/NEON/functions/NEErode.h" #include "arm_compute/runtime/NEON/functions/NEFFT1D.h" #include "arm_compute/runtime/NEON/functions/NEFFT2D.h" #include "arm_compute/runtime/NEON/functions/NEFFTConvolutionLayer.h" -#include "arm_compute/runtime/NEON/functions/NEFastCorners.h" #include "arm_compute/runtime/NEON/functions/NEFill.h" #include "arm_compute/runtime/NEON/functions/NEFillBorder.h" #include "arm_compute/runtime/NEON/functions/NEFlattenLayer.h" @@ -80,38 +67,19 @@ #include "arm_compute/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.h" #include "arm_compute/runtime/NEON/functions/NEGEMMLowpOutputStage.h" #include "arm_compute/runtime/NEON/functions/NEGather.h" -#include "arm_compute/runtime/NEON/functions/NEGaussian3x3.h" -#include "arm_compute/runtime/NEON/functions/NEGaussian5x5.h" -#include "arm_compute/runtime/NEON/functions/NEGaussianPyramid.h" #include "arm_compute/runtime/NEON/functions/NEGenerateProposalsLayer.h" -#include "arm_compute/runtime/NEON/functions/NEHOGDescriptor.h" -#include "arm_compute/runtime/NEON/functions/NEHOGDetector.h" -#include "arm_compute/runtime/NEON/functions/NEHOGGradient.h" -#include "arm_compute/runtime/NEON/functions/NEHOGMultiDetection.h" -#include "arm_compute/runtime/NEON/functions/NEHarrisCorners.h" -#include "arm_compute/runtime/NEON/functions/NEHistogram.h" #include "arm_compute/runtime/NEON/functions/NEInstanceNormalizationLayer.h" -#include "arm_compute/runtime/NEON/functions/NEIntegralImage.h" #include "arm_compute/runtime/NEON/functions/NEL2NormalizeLayer.h" #include "arm_compute/runtime/NEON/functions/NELSTMLayer.h" #include "arm_compute/runtime/NEON/functions/NELSTMLayerQuantized.h" -#include "arm_compute/runtime/NEON/functions/NELaplacianPyramid.h" -#include "arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h" #include "arm_compute/runtime/NEON/functions/NELogical.h" -#include "arm_compute/runtime/NEON/functions/NEMagnitude.h" #include "arm_compute/runtime/NEON/functions/NEMaxUnpoolingLayer.h" -#include "arm_compute/runtime/NEON/functions/NEMeanStdDev.h" #include "arm_compute/runtime/NEON/functions/NEMeanStdDevNormalizationLayer.h" -#include "arm_compute/runtime/NEON/functions/NEMedian3x3.h" -#include "arm_compute/runtime/NEON/functions/NEMinMaxLocation.h" -#include "arm_compute/runtime/NEON/functions/NENonLinearFilter.h" #include "arm_compute/runtime/NEON/functions/NENonMaximaSuppression3x3.h" #include "arm_compute/runtime/NEON/functions/NENormalizationLayer.h" -#include "arm_compute/runtime/NEON/functions/NEOpticalFlow.h" #include "arm_compute/runtime/NEON/functions/NEPReluLayer.h" #include "arm_compute/runtime/NEON/functions/NEPadLayer.h" #include "arm_compute/runtime/NEON/functions/NEPermute.h" -#include "arm_compute/runtime/NEON/functions/NEPhase.h" #include "arm_compute/runtime/NEON/functions/NEPixelWiseMultiplication.h" #include "arm_compute/runtime/NEON/functions/NEPoolingLayer.h" #include "arm_compute/runtime/NEON/functions/NEPriorBoxLayer.h" @@ -123,30 +91,21 @@ #include "arm_compute/runtime/NEON/functions/NERange.h" #include "arm_compute/runtime/NEON/functions/NEReduceMean.h" #include "arm_compute/runtime/NEON/functions/NEReductionOperation.h" -#include "arm_compute/runtime/NEON/functions/NERemap.h" #include "arm_compute/runtime/NEON/functions/NEReorgLayer.h" #include "arm_compute/runtime/NEON/functions/NEReshapeLayer.h" #include "arm_compute/runtime/NEON/functions/NEReverse.h" #include "arm_compute/runtime/NEON/functions/NEScale.h" -#include "arm_compute/runtime/NEON/functions/NEScharr3x3.h" #include "arm_compute/runtime/NEON/functions/NESelect.h" #include "arm_compute/runtime/NEON/functions/NESlice.h" -#include "arm_compute/runtime/NEON/functions/NESobel3x3.h" -#include "arm_compute/runtime/NEON/functions/NESobel5x5.h" -#include "arm_compute/runtime/NEON/functions/NESobel7x7.h" #include "arm_compute/runtime/NEON/functions/NESoftmaxLayer.h" #include "arm_compute/runtime/NEON/functions/NESpaceToBatchLayer.h" #include "arm_compute/runtime/NEON/functions/NESpaceToDepthLayer.h" #include "arm_compute/runtime/NEON/functions/NESplit.h" #include "arm_compute/runtime/NEON/functions/NEStackLayer.h" #include "arm_compute/runtime/NEON/functions/NEStridedSlice.h" -#include "arm_compute/runtime/NEON/functions/NETableLookup.h" -#include "arm_compute/runtime/NEON/functions/NEThreshold.h" #include "arm_compute/runtime/NEON/functions/NETile.h" #include "arm_compute/runtime/NEON/functions/NETranspose.h" #include "arm_compute/runtime/NEON/functions/NEUnstack.h" -#include "arm_compute/runtime/NEON/functions/NEWarpAffine.h" -#include "arm_compute/runtime/NEON/functions/NEWarpPerspective.h" #include "arm_compute/runtime/NEON/functions/NEWinogradConvolutionLayer.h" #endif /* ARM_COMPUTE_NEFUNCTIONS_H */ diff --git a/arm_compute/runtime/NEON/functions/NEAbsoluteDifference.h b/arm_compute/runtime/NEON/functions/NEAbsoluteDifference.h deleted file mode 100644 index f00b144475..0000000000 --- a/arm_compute/runtime/NEON/functions/NEAbsoluteDifference.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEABSOLUTEDIFFERENCE_H -#define ARM_COMPUTE_NEABSOLUTEDIFFERENCE_H - -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run @ref NEAbsoluteDifferenceKernel - * - * @note The image data type for the inputs must be U8 or S16 - * @note The function calculates the absolute difference also when the 2 inputs have different image data types - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEAbsoluteDifference : public INESimpleFunctionNoBorder -{ -public: - /** Default constructor */ - NEAbsoluteDifference() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAbsoluteDifference(const NEAbsoluteDifference &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAbsoluteDifference &operator=(const NEAbsoluteDifference &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAbsoluteDifference(NEAbsoluteDifference &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAbsoluteDifference &operator=(NEAbsoluteDifference &&) = delete; - /** Default destructor */ - ~NEAbsoluteDifference(); - /** Set the inputs and output images - * - * @param[in] input1 Source tensor. Data types supported: U8/S16. - * @param[in] input2 Source tensor. Data types supported: U8/S16. - * @param[out] output Destination tensor. Data types supported: U8/S16. - */ - void configure(const ITensor *input1, const ITensor *input2, ITensor *output); -}; -} -#endif /* ARM_COMPUTE_NEABSOLUTEDIFFERENCE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEAccumulate.h b/arm_compute/runtime/NEON/functions/NEAccumulate.h deleted file mode 100644 index 1881411880..0000000000 --- a/arm_compute/runtime/NEON/functions/NEAccumulate.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEACCUMULATE_H -#define ARM_COMPUTE_NEACCUMULATE_H - -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run @ref NEAccumulateKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEAccumulate : public INESimpleFunctionNoBorder -{ -public: - /** Default constructor */ - NEAccumulate() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulate(const NEAccumulate &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulate &operator=(const NEAccumulate &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulate(NEAccumulate &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulate &operator=(NEAccumulate &&) = delete; - /** Default destructor */ - ~NEAccumulate(); - /** Set the input and accumulation tensors - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[out] output Destination tensor. Data type supported: S16. - */ - void configure(const ITensor *input, ITensor *output); -}; - -/** Basic function to run @ref NEAccumulateWeightedKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEAccumulateWeighted : public INESimpleFunctionNoBorder -{ -public: - /** Default constructor */ - NEAccumulateWeighted() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulateWeighted(const NEAccumulateWeighted &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulateWeighted &operator=(const NEAccumulateWeighted &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulateWeighted(NEAccumulateWeighted &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulateWeighted &operator=(NEAccumulateWeighted &&) = delete; - /** Default destructor */ - ~NEAccumulateWeighted(); - /** Set the input and accumulation tensors, and the scale value - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[in] alpha The input scalar value with a value input the range of [0, 1.0] - * @param[in,out] output Accumulated tensor. Data type supported: U8. - * @param[in] use_fp16 (Optional) If true the FP16 kernels will be used. If false F32 kernels are used. - */ - void configure(const ITensor *input, float alpha, ITensor *output, bool use_fp16 = false); -}; - -/** Basic function to run @ref NEAccumulateSquaredKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEAccumulateSquared : public INESimpleFunctionNoBorder -{ -public: - /** Default constructor */ - NEAccumulateSquared() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulateSquared(const NEAccumulateSquared &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEAccumulateSquared &operator=(const NEAccumulateSquared &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulateSquared(NEAccumulateSquared &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEAccumulateSquared &operator=(NEAccumulateSquared &&) = delete; - /** Default destructor */ - ~NEAccumulateSquared(); - /** Set the input and accumulation tensors and the shift value. - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[in] shift The input with a value input the range of [0, 15] - * @param[in,out] output Accumulated tensor. Data type supported: S16. - */ - void configure(const ITensor *input, uint32_t shift, ITensor *output); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NEACCUMULATE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEBox3x3.h b/arm_compute/runtime/NEON/functions/NEBox3x3.h deleted file mode 100644 index b45cf946e4..0000000000 --- a/arm_compute/runtime/NEON/functions/NEBox3x3.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2017-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEBOX3x3_H -#define ARM_COMPUTE_NEBOX3x3_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute box filter 3x3. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEBox3x3Kernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEBox3x3 : public INESimpleFunction -{ -public: - /** Initialise the function's input, output and border mode. - * - * @note The border handler is run on the input tensor. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor, Data type supported: U8. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * @param[in] use_fp16 (Optional) If true the FP16 kernels will be used. If false F32 kernels are used. - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0, bool use_fp16 = false); -}; -} -#endif /*ARM_COMPUTE_NEBOX3x3_H */ diff --git a/arm_compute/runtime/NEON/functions/NECannyEdge.h b/arm_compute/runtime/NEON/functions/NECannyEdge.h deleted file mode 100644 index 2d8bac1db9..0000000000 --- a/arm_compute/runtime/NEON/functions/NECannyEdge.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2017-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NECANNYEDGE_H -#define ARM_COMPUTE_NECANNYEDGE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NEGradientKernel; -class NEFillBorderKernel; -class NEEdgeNonMaxSuppressionKernel; -class NEEdgeTraceKernel; - -/** Basic function to execute canny edge on Neon. This function calls the following Neon kernels and functions: - * - * -# @ref NEFillBorderKernel (if border_mode == REPLICATE or border_mode == CONSTANT) - * -# @ref NESobel3x3 (if gradient_size == 3) or - * @ref NESobel5x5 (if gradient_size == 5) or - * @ref NESobel7x7 (if gradient_size == 7) - * -# @ref NEGradientKernel - * -# @ref NEEdgeNonMaxSuppressionKernel - * -# @ref NEEdgeTraceKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - * - */ -class NECannyEdge : public IFunction -{ -public: - /** Constructor - * - * Initialize Sobel kernel to nullptr. - * - * @param[in] memory_manager (Optional) Memory manager. - */ - NECannyEdge(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NECannyEdge(const NECannyEdge &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NECannyEdge &operator=(const NECannyEdge &) = delete; - /** Default destructor */ - ~NECannyEdge(); - /** Initialise the function's source, destination, thresholds, gradient size, normalization type and border mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor. Data type supported: U8. - * @param[in] upper_thr Upper threhold used for the hysteresis - * @param[in] lower_thr Lower threshold used for the hysteresis. - * @param[in] gradient_size Gradient size (3, 5 or 7) - * @param[in] norm_type Normalization type. If 1, L1-Norm otherwise L2-Norm - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, int32_t upper_thr, int32_t lower_thr, int32_t gradient_size, int32_t norm_type, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -private: - MemoryGroup _memory_group; /**< Function's memory group */ - std::unique_ptr _sobel; /**< Pointer to Sobel kernel */ - std::unique_ptr _gradient; /**< Gradient kernel */ - std::unique_ptr _non_max_suppr; /**< Non-Maxima suppression kernel */ - std::unique_ptr _edge_trace; /**< Edge tracing kernel */ - std::unique_ptr _border_mag_gradient; /**< Fill border on magnitude tensor kernel */ - std::unique_ptr _border_edge_trace; /**< Fill border before edge trace */ - Tensor _gx; /**< Source tensor - Gx component */ - Tensor _gy; /**< Source tensor - Gy component */ - Tensor _magnitude; /**< Source tensor - Magnitude */ - Tensor _phase; /**< Source tensor - Phase */ - Tensor _nonmax; /**< Source tensor - Non-Maxima suppressed */ - ITensor *_output; /**< Output tensor provided by the user. */ -}; -} -#endif /* ARM_COMPUTE_NECANNYEDGE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEChannelCombine.h b/arm_compute/runtime/NEON/functions/NEChannelCombine.h deleted file mode 100644 index c4ead73343..0000000000 --- a/arm_compute/runtime/NEON/functions/NEChannelCombine.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2017-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NECHANNELCOMBINE_H -#define ARM_COMPUTE_NECHANNELCOMBINE_H - -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class IMultiImage; -class ITensor; -using IImage = ITensor; - -/**Basic function to run @ref NEChannelCombineKernel to perform channel combination. - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEChannelCombine : public INESimpleFunctionNoBorder -{ -public: - /** Initialize function's inputs and outputs. - * - * @param[in] plane0 The 2D plane that forms channel 0. Data type supported: U8 - * @param[in] plane1 The 2D plane that forms channel 1. Data type supported: U8 - * @param[in] plane2 The 2D plane that forms channel 2. Data type supported: U8 - * @param[in] plane3 The 2D plane that forms channel 3. Data type supported: U8 - * @param[out] output The single planar output tensor. Formats supported: RGB888/RGBA8888/UYVY422/YUYV422 - */ - void configure(const ITensor *plane0, const ITensor *plane1, const ITensor *plane2, const ITensor *plane3, ITensor *output); - /** Initialize function's inputs and outputs. - * - * @param[in] plane0 The 2D plane that forms channel 0. Data type supported: U8 - * @param[in] plane1 The 2D plane that forms channel 1. Data type supported: U8 - * @param[in] plane2 The 2D plane that forms channel 2. Data type supported: U8 - * @param[out] output The multi planar output image. Formats supported: NV12/NV21/IYUV/YUV444 - */ - void configure(const IImage *plane0, const IImage *plane1, const IImage *plane2, IMultiImage *output); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NECHANNELCOMBINE_H*/ diff --git a/arm_compute/runtime/NEON/functions/NEChannelExtract.h b/arm_compute/runtime/NEON/functions/NEChannelExtract.h deleted file mode 100644 index 99522d2d74..0000000000 --- a/arm_compute/runtime/NEON/functions/NEChannelExtract.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NECHANNELEXTRACT_H -#define ARM_COMPUTE_NECHANNELEXTRACT_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class IMultiImage; -class ITensor; -using IImage = ITensor; - -/**Basic function to run @ref NEChannelExtractKernel to perform channel extraction. - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEChannelExtract : public INESimpleFunctionNoBorder -{ -public: - /** Initialize the function's source, destination - * - * @param[in] input The input tensor to extract the channel from. Formats supported: Formats supported: RGB888/RGBA8888/YUYV422/UYVY422 - * @param[in] channel The channel to extract. - * @param[out] output The extracted channel. Format supported: U8 - */ - void configure(const ITensor *input, Channel channel, ITensor *output); - /** Initialize the function's source, destination - * - * @param[in] input The multi-planar input image to extract channel from. Formats supported: NV12/NV21/IYUV/YUV444 - * @param[in] channel The channel to extract. - * @param[out] output The extracted channel. Format supported: U8 - */ - void configure(const IMultiImage *input, Channel channel, IImage *output); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NECHANNELEXTRACT_H*/ diff --git a/arm_compute/runtime/NEON/functions/NEColorConvert.h b/arm_compute/runtime/NEON/functions/NEColorConvert.h deleted file mode 100644 index 8974aa63a1..0000000000 --- a/arm_compute/runtime/NEON/functions/NEColorConvert.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NECOLORCONVERT_H -#define ARM_COMPUTE_NECOLORCONVERT_H - -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; -class IMultiImage; -using IImage = ITensor; - -/**Basic function to run @ref NEColorConvertKernel to perform color conversion - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEColorConvert : public INESimpleFunctionNoBorder -{ -public: - /** Initialize the function's source, destination - * - * @param[in] input Source tensor. Formats supported: RGBA8888/UYVY422/YUYV422/RGB888 - * @param[out] output Destination tensor. Formats supported: RGB888 (if the formats of @p input are RGBA8888/UYVY422/YUYV422), - * RGBA8888 (if the formats of @p input are UYVY422/YUYV422/RGB888/), - * U8 (if the formats of @p input is RGB888) - */ - void configure(const ITensor *input, ITensor *output); - /** Initialize the function's source, destination - * - * @param[in] input Multi-planar source image. Formats supported: NV12/NV21/IYUV - * @param[out] output Single-planar destination image. Formats supported: RGB888/RGBA8888 - */ - void configure(const IMultiImage *input, IImage *output); - /** Initialize the function's source, destination - * - * @param[in] input Single-planar source image. Formats supported: RGB888/RGBA8888/UYVY422/YUYV422 - * @param[out] output Multi-planar destination image. Formats supported: NV12/IYUV/YUV444 (if the formats of @p input are RGB888/RGB8888) - */ - void configure(const IImage *input, IMultiImage *output); - /** Initialize the function's source, destination - * - * @param[in] input Multi-planar source image. Formats supported: NV12/NV21/IYUV - * @param[out] output Multi-planar destination image. Formats supported: YUV444/IYUV (if the formats of @p input are NV12/NV21)/NV12 (if the format of @p input is IYUV) - */ - void configure(const IMultiImage *input, IMultiImage *output); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NECOLORCONVERT_H*/ diff --git a/arm_compute/runtime/NEON/functions/NEDerivative.h b/arm_compute/runtime/NEON/functions/NEDerivative.h deleted file mode 100644 index c1e110b55b..0000000000 --- a/arm_compute/runtime/NEON/functions/NEDerivative.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEDERIVATIVE_H -#define ARM_COMPUTE_NEDERIVATIVE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; -class NEDerivativeKernel; -class NEFillBorderKernel; - -/** Basic function to execute first order derivative operator. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEDerivativeKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEDerivative : public IFunction -{ -public: - /** Default constructor */ - NEDerivative(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEDerivative(const NEDerivative &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEDerivative &operator=(const NEDerivative &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEDerivative(NEDerivative &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEDerivative &operator=(NEDerivative &&) = delete; - /** Default destructor */ - ~NEDerivative(); - /** Initialise the function's source, destinations and border mode. - * - * @note At least one of output_x or output_y must be not NULL. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_x (optional) Destination tensor. Derivative along the X direction. Data type supported: S16. - * @param[out] output_y (optional) Destination tensor. Derivative along the Y direction. Data type supported: S16. - * @param[in] border_mode Border mode to use - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output_x, ITensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -private: - std::unique_ptr _kernel; /**< Derivative kernel */ - std::unique_ptr _border_handler; /**< Kernel to handle tensor borders */ -}; -} -#endif /* ARM_COMPUTE_NEDERIVATIVE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEDilate.h b/arm_compute/runtime/NEON/functions/NEDilate.h deleted file mode 100644 index 6c119d0d75..0000000000 --- a/arm_compute/runtime/NEON/functions/NEDilate.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEDILATE_H -#define ARM_COMPUTE_NEDILATE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute dilate. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEDilateKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEDilate : public INESimpleFunction -{ -public: - /** Initialise the kernel's inputs, output and border mode. - * - * @param[in, out] input First tensor input. Data type supported: U8.(Written to only for @p border_mode != UNDEFINED) - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEDILATE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h b/arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h deleted file mode 100644 index 5d50651810..0000000000 --- a/arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEEQUALIZEHISTOGRAM_H -#define ARM_COMPUTE_NEEQUALIZEHISTOGRAM_H - -#include "arm_compute/runtime/Distribution1D.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/Lut.h" - -#include - -namespace arm_compute -{ -class ITensor; -class NEHistogramKernel; -class NECumulativeDistributionKernel; -class NETableLookupKernel; -using IImage = ITensor; - -/** Basic function to execute histogram equalization. This function calls the following Neon kernels: - * - * -# @ref NEHistogramKernel - * -# @ref NECumulativeDistributionKernel - * -# @ref NETableLookupKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEEqualizeHistogram : public IFunction -{ -public: - /** Default Constructor. */ - NEEqualizeHistogram(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEEqualizeHistogram(const NEEqualizeHistogram &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEEqualizeHistogram &operator=(const NEEqualizeHistogram &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEEqualizeHistogram(NEEqualizeHistogram &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEEqualizeHistogram &operator=(NEEqualizeHistogram &&) = delete; - /** Default destructor */ - ~NEEqualizeHistogram(); - /** Initialise the kernel's inputs. - * - * @note Currently the width of the input image must be a multiple of 16. - * - * @param[in] input Input image. Data type supported: U8. - * @param[out] output Output image. Data type supported: same as @p input - */ - void configure(const IImage *input, IImage *output); - - // Inherited methods overridden: - void run() override; - -private: - std::unique_ptr _histogram_kernel; /**< Kernel that calculates the histogram of input. */ - std::unique_ptr _cd_histogram_kernel; /**< Kernel that calculates the cumulative distribution - and creates the relevant LookupTable. */ - std::unique_ptr _map_histogram_kernel; /**< Kernel that maps the input to output using the lut. */ - Distribution1D _hist; /**< Distribution that holds the histogram of the input image. */ - Distribution1D _cum_dist; /**< Distribution that holds the cummulative distribution of the input histogram. */ - Lut _cd_lut; /**< Holds the equalization lookuptable. */ - static constexpr uint32_t nr_bins{ 256 }; /**< Histogram bins of the internal histograms. */ - static constexpr uint32_t max_range{ nr_bins - 1 }; /**< Histogram range of the internal histograms. */ -}; -} -#endif /*ARM_COMPUTE_NEEQUALIZEHISTOGRAM_H */ diff --git a/arm_compute/runtime/NEON/functions/NEErode.h b/arm_compute/runtime/NEON/functions/NEErode.h deleted file mode 100644 index 461bc878c9..0000000000 --- a/arm_compute/runtime/NEON/functions/NEErode.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEERODE_H -#define ARM_COMPUTE_NEERODE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute erode. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEErodeKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEErode : public INESimpleFunction -{ -public: - /** Initialise the kernel's inputs, output and border mode - * - * @param[in, out] input First tensor input. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEERODE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEFastCorners.h b/arm_compute/runtime/NEON/functions/NEFastCorners.h deleted file mode 100644 index c66aeedcca..0000000000 --- a/arm_compute/runtime/NEON/functions/NEFastCorners.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEFASTCORNERS_H -#define ARM_COMPUTE_NEFASTCORNERS_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/Array.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NENonMaximaSuppression3x3Kernel; -class NEFastCornersKernel; -class NEFillBorderKernel; -class NEFillArrayKernel; -using IImage = ITensor; - -/** Basic function to execute fast corners. This function call the following Neon kernels: - * - * -# @ref NEFastCornersKernel - * -# @ref NENonMaximaSuppression3x3Kernel (executed if nonmax_suppression == true) - * -# @ref NEFillArrayKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEFastCorners : public IFunction -{ -public: - /** Constructor */ - NEFastCorners(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEFastCorners(const NEFastCorners &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEFastCorners &operator=(const NEFastCorners &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEFastCorners(NEFastCorners &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEFastCorners &operator=(NEFastCorners &&) = delete; - /** Default destructor */ - ~NEFastCorners(); - /** Initialize the function's source, destination, conv and border_mode. - * - * @param[in, out] input Source image. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[in] threshold Threshold on difference between intensity of the central pixel and pixels on Bresenham's circle of radius 3. - * @param[in] nonmax_suppression If true, non-maximum suppression is applied to detected corners before being placed in the array. - * @param[out] corners Array of keypoints to store the results. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(IImage *input, float threshold, bool nonmax_suppression, KeyPointArray *corners, - BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -private: - MemoryGroup _memory_group; - std::unique_ptr _fast_corners_kernel; - std::unique_ptr _border_handler; - std::unique_ptr _nonmax_kernel; - std::unique_ptr _fill_kernel; - Image _output; - Image _suppressed; - bool _non_max; -}; -} -#endif /*ARM_COMPUTE_NEFASTCORNERS_H */ diff --git a/arm_compute/runtime/NEON/functions/NEGaussian3x3.h b/arm_compute/runtime/NEON/functions/NEGaussian3x3.h deleted file mode 100644 index 8edf558db8..0000000000 --- a/arm_compute/runtime/NEON/functions/NEGaussian3x3.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEGAUSSIAN3x3_H -#define ARM_COMPUTE_NEGAUSSIAN3x3_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute gaussian filter 3x3. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEGaussian3x3Kernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEGaussian3x3 : public INESimpleFunction -{ -public: - /** Initialise the function's input, output and border mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor, Data type supported: U8. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEGAUSSIAN3x3_H */ diff --git a/arm_compute/runtime/NEON/functions/NEGaussian5x5.h b/arm_compute/runtime/NEON/functions/NEGaussian5x5.h deleted file mode 100644 index 8ad9e9a7ed..0000000000 --- a/arm_compute/runtime/NEON/functions/NEGaussian5x5.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEGAUSSIAN5x5_H -#define ARM_COMPUTE_NEGAUSSIAN5x5_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NEGaussian5x5HorKernel; -class NEGaussian5x5VertKernel; -class NEFillBorderKernel; - -/** Basic function to execute gaussian filter 5x5. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEGaussian5x5HorKernel - * -# @ref NEGaussian5x5VertKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEGaussian5x5 : public IFunction -{ -public: - /** Default constructor - */ - NEGaussian5x5(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussian5x5(const NEGaussian5x5 &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussian5x5 &operator=(const NEGaussian5x5 &) = delete; - /** Allow instances of this class to be moved */ - NEGaussian5x5(NEGaussian5x5 &&) = default; - /** Allow instances of this class to be moved */ - NEGaussian5x5 &operator=(NEGaussian5x5 &&) = default; - /** Default destructor */ - ~NEGaussian5x5(); - /** Initialise the function's input, output and border mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor, Data type supported: U8. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -protected: - MemoryGroup _memory_group; /**< Function memory group */ - std::unique_ptr _kernel_hor; /**< kernel for horizontal pass */ - std::unique_ptr _kernel_vert; /**< kernel for vertical pass */ - Tensor _tmp; /**< temporary buffer for output of horizontal pass */ - std::unique_ptr _border_handler; /**< kernel to handle tensor borders */ -}; -} -#endif /*ARM_COMPUTE_NEGAUSSIAN5x5_H */ diff --git a/arm_compute/runtime/NEON/functions/NEGaussianPyramid.h b/arm_compute/runtime/NEON/functions/NEGaussianPyramid.h deleted file mode 100644 index 76a277782d..0000000000 --- a/arm_compute/runtime/NEON/functions/NEGaussianPyramid.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEGAUSSIANPYRAMID_H -#define ARM_COMPUTE_NEGAUSSIANPYRAMID_H - -#include "arm_compute/core/IPyramid.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/NEON/functions/NEGaussian5x5.h" -#include "arm_compute/runtime/NEON/functions/NEScale.h" -#include "arm_compute/runtime/Pyramid.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NEGaussianPyramidHorKernel; -class NEGaussianPyramidVertKernel; -class NEFillBorderKernel; - -/** Common interface for all Gaussian pyramid functions - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEGaussianPyramid : public IFunction -{ -public: - /** Default constructor */ - NEGaussianPyramid(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramid(const NEGaussianPyramid &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramid &operator=(const NEGaussianPyramid &) = delete; - /** Allow instances of this class to be moved */ - NEGaussianPyramid(NEGaussianPyramid &&) = default; - /** Allow instances of this class to be moved */ - NEGaussianPyramid &operator=(NEGaussianPyramid &&) = default; - /** Default destructor */ - virtual ~NEGaussianPyramid() = default; - - /** Initialise the function's source, destinations and border mode. - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[out] pyramid Destination pyramid tensors, Data type supported at each level: U8. - * @param[in] border_mode Border mode to use. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - virtual void configure(const ITensor *input, IPyramid *pyramid, BorderMode border_mode, uint8_t constant_border_value) = 0; - -protected: - const ITensor *_input; - IPyramid *_pyramid; - Pyramid _tmp; -}; - -/** Basic function to execute gaussian pyramid with HALF scale factor. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEGaussianPyramidHorKernel - * -# @ref NEGaussianPyramidVertKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - * - */ -class NEGaussianPyramidHalf : public NEGaussianPyramid -{ -public: - /** Constructor */ - NEGaussianPyramidHalf(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramidHalf(const NEGaussianPyramidHalf &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramidHalf &operator=(const NEGaussianPyramidHalf &) = delete; - /** Allow instances of this class to be moved */ - NEGaussianPyramidHalf(NEGaussianPyramidHalf &&) = default; - /** Allow instances of this class to be moved */ - NEGaussianPyramidHalf &operator=(NEGaussianPyramidHalf &&) = default; - /** Default destructor */ - ~NEGaussianPyramidHalf(); - - // Inherited methods overridden: - void configure(const ITensor *input, IPyramid *pyramid, BorderMode border_mode, uint8_t constant_border_value) override; - void run() override; - -private: - std::vector> _horizontal_border_handler; - std::vector> _vertical_border_handler; - std::vector> _horizontal_reduction; - std::vector> _vertical_reduction; -}; - -/** Basic function to execute gaussian pyramid with ORB scale factor. This function calls the following Neon kernels and functions: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEGaussian5x5 - * -# @ref NEScaleKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - * - */ -class NEGaussianPyramidOrb : public NEGaussianPyramid -{ -public: - /** Constructor */ - NEGaussianPyramidOrb(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramidOrb(const NEGaussianPyramidOrb &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEGaussianPyramidOrb &operator=(const NEGaussianPyramidOrb &) = delete; - /** Allow instances of this class to be moved */ - NEGaussianPyramidOrb(NEGaussianPyramidOrb &&) = default; - /** Allow instances of this class to be moved */ - NEGaussianPyramidOrb &operator=(NEGaussianPyramidOrb &&) = default; - /** Default destructor */ - ~NEGaussianPyramidOrb(); - - // Inherited methods overridden: - void configure(const ITensor *input, IPyramid *pyramid, BorderMode border_mode, uint8_t constant_border_value) override; - void run() override; - -private: - std::vector _gaus5x5; - std::vector _scale_nearest; -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NEGAUSSIANPYRAMID_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHOGDescriptor.h b/arm_compute/runtime/NEON/functions/NEHOGDescriptor.h deleted file mode 100644 index 4f8d8a5f61..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHOGDescriptor.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHOGDESCRIPTOR_H -#define ARM_COMPUTE_NEHOGDESCRIPTOR_H - -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/NEON/functions/NEHOGGradient.h" -#include "arm_compute/runtime/Tensor.h" - -#include - -namespace arm_compute -{ -class IHOG; -class NEHOGOrientationBinningKernel; -class NEHOGBlockNormalizationKernel; - -/** Basic function to calculate HOG descriptor. This function calls the following Neon kernels: - * - * -# @ref NEHOGGradient - * -# @ref NEHOGOrientationBinningKernel - * -# @ref NEHOGBlockNormalizationKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHOGDescriptor : public IFunction -{ -public: - /** Default constructor */ - NEHOGDescriptor(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGDescriptor(const NEHOGDescriptor &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGDescriptor &operator=(const NEHOGDescriptor &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHOGDescriptor(NEHOGDescriptor &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHOGDescriptor &operator=(NEHOGDescriptor &&) = delete; - /** Default destructor */ - ~NEHOGDescriptor(); - /** Initialise the function's source, destination, HOG data-object and border mode - * - * @param[in, out] input Input tensor. Data type supported: U8 - * (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Output tensor which stores the HOG descriptor. DataType supported: F32. The number of channels is equal to the number of histogram bins per block - * @param[in] hog HOG data object which describes the HOG descriptor - * @param[in] border_mode Border mode to use. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, const IHOG *hog, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited method overridden: - void run() override; - -private: - MemoryGroup _memory_group; - NEHOGGradient _gradient; - std::unique_ptr _orient_bin; - std::unique_ptr _block_norm; - Tensor _mag; - Tensor _phase; - Tensor _hog_space; -}; -} - -#endif /* ARM_COMPUTE_NEHOGDESCRIPTOR_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHOGDetector.h b/arm_compute/runtime/NEON/functions/NEHOGDetector.h deleted file mode 100644 index aea1d9f741..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHOGDetector.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHOGDETECTOR_H -#define ARM_COMPUTE_NEHOGDETECTOR_H - -#include "arm_compute/core/IArray.h" -#include "arm_compute/core/IHOG.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; -class ITensorInfo; -/** Basic function to execute HOG detector based on linear SVM. This function calls the following Neon kernel: - * - * -# @ref NEHOGDetectorKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHOGDetector : public INESimpleFunctionNoBorder -{ -public: - /** Constructor */ - NEHOGDetector() = default; - /** Prevent instances of this class from being copied */ - NEHOGDetector(const NEHOGDetector &) = delete; - /** Default move constructor */ - NEHOGDetector(NEHOGDetector &&) = default; - /** Prevent instances of this class from being copied */ - NEHOGDetector &operator=(const NEHOGDetector &) = delete; - /** Default move assignment operator */ - NEHOGDetector &operator=(NEHOGDetector &&) = default; - /** Destructor */ - ~NEHOGDetector(); - /** Initialise the kernel's input, output, HOG data object, detection window stride, threshold and index class - * - * @attention The function does not reset the number of values in @ref IDetectionWindowArray so it is caller's responsibility to clear it. - * - * @param[in] input Input tensor. It is the output of @ref NEHOGDescriptor. Data type supported: F32 - * @param[in] hog HOG data-object that describes the HOG descriptor - * @param[out] detection_windows Array of @ref DetectionWindow used to store the detected objects - * @param[in] detection_window_stride Distance in pixels between 2 consecutive detection windows in x and y directions. - * It must be multiple of the block stride stored in hog - * @param[in] threshold (Optional) Threshold for the distance between features and SVM classifying plane - * @param[in] idx_class (Optional) Index of the class used for evaluating which class the detection window belongs to - */ - void configure(const ITensor *input, const IHOG *hog, IDetectionWindowArray *detection_windows, const Size2D &detection_window_stride, float threshold = 0.0f, size_t idx_class = 0); -}; -} // namespace arm_compute - -#endif /* ARM_COMPUTE_NEHOGDETECTOR_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHOGGradient.h b/arm_compute/runtime/NEON/functions/NEHOGGradient.h deleted file mode 100644 index 16c1d24bca..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHOGGradient.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHOGGRADIENT_H -#define ARM_COMPUTE_NEHOGGRADIENT_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/NEON/functions/NEDerivative.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class ICPPKernel; - -/** Basic function to calculate the gradient for HOG. This function calls the following Neon kernels: - * - * -# @ref NEDerivative - * -# NEMagnitudePhaseKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHOGGradient : public IFunction -{ -public: - /** Default constructor */ - NEHOGGradient(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGGradient(const NEHOGGradient &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGGradient &operator=(const NEHOGGradient &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHOGGradient(NEHOGGradient &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHOGGradient &operator=(NEHOGGradient &&) = delete; - /** Default destructor */ - ~NEHOGGradient(); - /** Initialise the function's source, destinations, phase type and border mode - * - * @param[in, out] input Input tensor. Data type supported: U8. - * (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_magnitude Output tensor (magnitude). Data type supported: U16. - * @param[out] output_phase Output tensor.(phase). Format supported: U8 - * @param[in] phase_type Type of @ref PhaseType - * @param[in] border_mode Border mode to use - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output_magnitude, ITensor *output_phase, PhaseType phase_type, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited method overridden: - void run() override; - -private: - MemoryGroup _memory_group; - NEDerivative _derivative; - std::unique_ptr _mag_phase; - Tensor _gx; - Tensor _gy; -}; -} -#endif /*ARM_COMPUTE_NEHOGGRADIENT_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHOGMultiDetection.h b/arm_compute/runtime/NEON/functions/NEHOGMultiDetection.h deleted file mode 100644 index 5b54d709e2..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHOGMultiDetection.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHOGMULTIDETECTION_H -#define ARM_COMPUTE_NEHOGMULTIDETECTION_H - -#include "arm_compute/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.h" -#include "arm_compute/core/IArray.h" -#include "arm_compute/core/IMultiHOG.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/NEON/functions/NEHOGDetector.h" -#include "arm_compute/runtime/NEON/functions/NEHOGGradient.h" -#include "arm_compute/runtime/Tensor.h" - -#include - -namespace arm_compute -{ -class NEHOGOrientationBinningKernel; -class NEHOGBlockNormalizationKernel; - -/** Basic function to detect multiple objects (or the same object at different scales) on the same input image using HOG. This function calls the following Neon kernels: - * - * -# @ref NEHOGGradient - * -# @ref NEHOGOrientationBinningKernel - * -# @ref NEHOGBlockNormalizationKernel - * -# @ref NEHOGDetector - * -# @ref CPPDetectionWindowNonMaximaSuppressionKernel (executed if non_maxima_suppression == true) - * - * @note This implementation works if all the HOG data-objects within the IMultiHOG container have the same: - * -# Phase type - -# Normalization type - -# L2 hysteresis threshold if the normalization type is L2HYS_NORM - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHOGMultiDetection : public IFunction -{ -public: - /** Default constructor */ - NEHOGMultiDetection(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGMultiDetection(const NEHOGMultiDetection &) = delete; - /** Prevent instances of this class from being moved (As this class contains pointers) */ - NEHOGMultiDetection(NEHOGMultiDetection &&) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHOGMultiDetection &operator=(const NEHOGMultiDetection &) = delete; - /** Prevent instances of this class from being moved (As this class contains pointers) */ - NEHOGMultiDetection &operator=(NEHOGMultiDetection &&) = delete; - /** Default destructor */ - ~NEHOGMultiDetection(); - /** Initialise the function's source, destination, detection window strides, border mode, threshold and non-maxima suppression - * - * @param[in, out] input Input tensor. Data type supported: U8 - * (Written to only for @p border_mode != UNDEFINED) - * @param[in] multi_hog Container of multiple HOG data object. Each HOG data object describes one HOG model to detect. - * This container should store the HOG data-objects in descending or ascending cell_size width order. - * This will help to understand if the HOG descriptor computation can be skipped for some HOG data-objects - * @param[out] detection_windows Array of @ref DetectionWindow used for locating the detected objects - * @param[in] detection_window_strides Array of @ref Size2D used to specify the distance in pixels between 2 consecutive detection windows in x and y directions for each HOG data-object - * The dimension of this array must be the same of multi_hog->num_models() - * The i-th detection_window_stride of this array must be multiple of the block_stride stored in the i-th multi_hog array - * @param[in] border_mode Border mode to use. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * @param[in] threshold (Optional) Threshold for the distance between features and SVM classifying plane - * @param[in] non_maxima_suppression (Optional) Flag to specify whether the non-maxima suppression is required or not. - * True if the non-maxima suppression stage has to be computed - * @param[in] min_distance (Optional) Radial Euclidean distance to use for the non-maxima suppression stage - * - */ - void configure(ITensor *input, const IMultiHOG *multi_hog, IDetectionWindowArray *detection_windows, const ISize2DArray *detection_window_strides, BorderMode border_mode, - uint8_t constant_border_value = 0, - float threshold = 0.0f, bool non_maxima_suppression = false, float min_distance = 1.0f); - - // Inherited method overridden: - void run() override; - -private: - MemoryGroup _memory_group; - NEHOGGradient _gradient_kernel; - std::vector _orient_bin_kernel; - std::vector _block_norm_kernel; - std::vector _hog_detect_kernel; - CPPDetectionWindowNonMaximaSuppressionKernel _non_maxima_kernel; - std::vector _hog_space; - std::vector _hog_norm_space; - IDetectionWindowArray *_detection_windows; - Tensor _mag; - Tensor _phase; - bool _non_maxima_suppression; - size_t _num_orient_bin_kernel; - size_t _num_block_norm_kernel; - size_t _num_hog_detect_kernel; -}; -} // namespace arm_compute -#endif /* ARM_COMPUTE_NEHOGMULTIDETECTION_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHarrisCorners.h b/arm_compute/runtime/NEON/functions/NEHarrisCorners.h deleted file mode 100644 index 424d085737..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHarrisCorners.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHARRISCORNERS_H -#define ARM_COMPUTE_NEHARRISCORNERS_H - -#include "arm_compute/core/CPP/kernels/CPPCornerCandidatesKernel.h" -#include "arm_compute/core/CPP/kernels/CPPSortEuclideanDistanceKernel.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/Array.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/NEON/functions/NENonMaximaSuppression3x3.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NEFillBorderKernel; -class INEHarrisScoreKernel; -using IImage = ITensor; - -/** Basic function to execute harris corners detection. This function calls the following Neon kernels and functions: - * - * -# @ref NESobel3x3 (if gradient_size == 3) or
- * @ref NESobel5x5 (if gradient_size == 5) or
- * @ref NESobel7x7 (if gradient_size == 7) - * -# @ref NEFillBorderKernel - * -# NEHarrisScoreKernel<3> (if block_size == 3) or
- * NEHarrisScoreKernel<5> (if block_size == 5) or
- * NEHarrisScoreKernel<7> (if block_size == 7) - * -# @ref NENonMaximaSuppression3x3 - * -# @ref CPPCornerCandidatesKernel - * -# @ref CPPSortEuclideanDistanceKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHarrisCorners : public IFunction -{ -public: - /** Constructor - * - * Initialize _sobel, _harris_score and _corner_list to nullptr. - * - * @param[in] memory_manager (Optional) Memory manager. - */ - NEHarrisCorners(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHarrisCorners(const NEHarrisCorners &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHarrisCorners &operator=(const NEHarrisCorners &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHarrisCorners(NEHarrisCorners &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHarrisCorners &operator=(NEHarrisCorners &&) = delete; - /** Default destructor */ - ~NEHarrisCorners(); - /** Initialize the function's source, destination, conv and border_mode. - * - * @param[in, out] input Source image. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[in] threshold Minimum threshold with which to eliminate Harris Corner scores (computed using the normalized Sobel kernel). - * @param[in] min_dist Radial Euclidean distance for the euclidean diatance stage - * @param[in] sensitivity Sensitivity threshold k from the Harris-Stephens equation - * @param[in] gradient_size The gradient window size to use on the input. The implementation supports 3, 5, and 7 - * @param[in] block_size The block window size used to compute the Harris Corner score. The implementation supports 3, 5, and 7. - * @param[out] corners Array of keypoints to store the results. - * @param[in] border_mode Border mode to use - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(IImage *input, float threshold, float min_dist, float sensitivity, - int32_t gradient_size, int32_t block_size, KeyPointArray *corners, - BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -private: - MemoryGroup _memory_group; /**< Function's memory group */ - std::unique_ptr _sobel; /**< Sobel function */ - std::unique_ptr _harris_score; /**< Harris score kernel */ - NENonMaximaSuppression3x3 _non_max_suppr; /**< Non-maxima suppression function */ - CPPCornerCandidatesKernel _candidates; /**< Sort kernel */ - CPPSortEuclideanDistanceKernel _sort_euclidean; /**< Euclidean distance kernel */ - std::unique_ptr _border_gx; /**< Border handler before running harris score */ - std::unique_ptr _border_gy; /**< Border handler before running harris score */ - Image _gx; /**< Source image - Gx component */ - Image _gy; /**< Source image - Gy component */ - Image _score; /**< Source image - Harris score */ - Image _nonmax; /**< Source image - Non-Maxima suppressed image */ - std::vector _corners_list; /**< Array of InternalKeypoint. It stores the potential corner candidates */ - int32_t _num_corner_candidates; /**< Number of potential corner candidates */ -}; -} -#endif /*ARM_COMPUTE_NEHARRISCORNERS_H */ diff --git a/arm_compute/runtime/NEON/functions/NEHistogram.h b/arm_compute/runtime/NEON/functions/NEHistogram.h deleted file mode 100644 index d922ef1214..0000000000 --- a/arm_compute/runtime/NEON/functions/NEHistogram.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEHISTOGRAM_H -#define ARM_COMPUTE_NEHISTOGRAM_H - -#include "arm_compute/runtime/IFunction.h" - -#include -#include -#include -#include - -namespace arm_compute -{ -class ITensor; -class IDistribution1D; -class NEHistogramKernel; -using IImage = ITensor; - -/** Basic function to run @ref NEHistogramKernel. - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEHistogram : public IFunction -{ -public: - /** Default Constructor. */ - NEHistogram(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHistogram(const NEHistogram &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEHistogram &operator=(const NEHistogram &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHistogram(NEHistogram &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEHistogram &operator=(NEHistogram &&) = delete; - /** Default destructor */ - ~NEHistogram(); - /** Initialise the kernel's inputs. - * - * @param[in] input Input image. Data type supported: U8. - * @param[out] output Output distribution. - */ - void configure(const IImage *input, IDistribution1D *output); - - // Inherited methods overridden: - void run() override; - -private: - std::unique_ptr _histogram_kernel; - std::vector _local_hist; - std::vector _window_lut; - size_t _local_hist_size; - /** 256 possible pixel values as we handle only U8 images */ - static constexpr unsigned int window_lut_default_size = 256; -}; -} -#endif /*ARM_COMPUTE_NEHISTOGRAM_H */ diff --git a/arm_compute/runtime/NEON/functions/NEIntegralImage.h b/arm_compute/runtime/NEON/functions/NEIntegralImage.h deleted file mode 100644 index 31c0ec9ebe..0000000000 --- a/arm_compute/runtime/NEON/functions/NEIntegralImage.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEINTEGRALIMAGE_H -#define ARM_COMPUTE_NEINTEGRALIMAGE_H - -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run a @ref NEIntegralImageKernel - * -* @deprecated This function is deprecated and is intended to be removed in 21.05 release -* -*/ -class NEIntegralImage : public INESimpleFunction -{ -public: - /** Constructor */ - NEIntegralImage() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEIntegralImage(const NEIntegralImage &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEIntegralImage &operator=(const NEIntegralImage &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEIntegralImage(NEIntegralImage &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEIntegralImage &operator=(NEIntegralImage &&) = delete; - /** Default destructor */ - ~NEIntegralImage(); - /** Initialise the function's source, destinations and border mode. - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[out] output Destination tensor. Data type supported: U32. - */ - void configure(const ITensor *input, ITensor *output); -}; -} -#endif /*ARM_COMPUTE_NEINTEGRALIMAGE_H */ diff --git a/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h b/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h deleted file mode 100644 index 7c8f378d82..0000000000 --- a/arm_compute/runtime/NEON/functions/NELaplacianPyramid.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NELAPLACIANPYRAMID_H -#define ARM_COMPUTE_NELAPLACIANPYRAMID_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/NEON/functions/NEArithmeticSubtraction.h" -#include "arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h" -#include "arm_compute/runtime/NEON/functions/NEGaussian5x5.h" -#include "arm_compute/runtime/NEON/functions/NEGaussianPyramid.h" -#include "arm_compute/runtime/Pyramid.h" - -#include -#include -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute laplacian pyramid. This function calls the following Neon kernels and functions: - * - * -# @ref NEGaussianPyramidHalf - * -# @ref NEGaussian5x5 - * -# @ref NEArithmeticSubtraction - * - * First a Gaussian pyramid is created. Then, for each level i, the corresponding tensor I(i) is blurred with the Gaussian 5x5 filter, and then - * difference between the two tensors is the corresponding level L(i) of the Laplacian pyramid. - * L(i) = I(i) - Gaussian5x5(I(i)) - * Level 0 has always the same first two dimensions as the input tensor. - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NELaplacianPyramid : public IFunction -{ -public: - /** Constructor */ - NELaplacianPyramid(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NELaplacianPyramid(const NELaplacianPyramid &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NELaplacianPyramid &operator=(const NELaplacianPyramid &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NELaplacianPyramid(NELaplacianPyramid &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NELaplacianPyramid &operator=(NELaplacianPyramid &&) = delete; - /** Default destructor */ - ~NELaplacianPyramid(); - /** Initialise the function's source, destinations and border mode. - * - * @param[in] input Source tensor. Data type supported: U8. - * @param[out] pyramid Destination pyramid tensors, Data type supported at each level: S16. - * @param[out] output The lowest resolution tensor necessary to reconstruct the input tensor from the pyramid. Data type supported: S16. - * The first two dimensions of this tensor must match the first two dimensions of the tensor in the last level of the pyramid, that is: - * out.width = in.width() / pow(2,pyramid_levels-1) and out.height = in.height() / pow(2,pyramid_levels-1) - * @param[in] border_mode Border mode to use. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(const ITensor *input, IPyramid *pyramid, ITensor *output, BorderMode border_mode, uint8_t constant_border_value); - - // Inherited methods overridden: - void run() override; - -private: - size_t _num_levels; - NEGaussianPyramidHalf _gaussian_pyr_function; - std::vector _convf; - std::vector _subf; - Pyramid _gauss_pyr; - Pyramid _conv_pyr; - NEDepthConvertLayer _depth_function; -}; -} -#endif /*ARM_COMPUTE_NELAPLACIANPYRAMID_H */ diff --git a/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h b/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h deleted file mode 100644 index 9397dd1828..0000000000 --- a/arm_compute/runtime/NEON/functions/NELaplacianReconstruct.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NELAPLACIANRECONSTRUCT_H -#define ARM_COMPUTE_NELAPLACIANRECONSTRUCT_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/NEON/functions/NEArithmeticAddition.h" -#include "arm_compute/runtime/NEON/functions/NEDepthConvertLayer.h" -#include "arm_compute/runtime/NEON/functions/NEScale.h" -#include "arm_compute/runtime/Pyramid.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -using IImage = ITensor; - -/** Basic function to execute laplacian reconstruction. This function calls the following Neon kernels and functions: - * - * -# @ref NEArithmeticAddition - * -# @ref NEScale - * -# @ref NEDepthConvertLayer - * - * This function reconstructs the original image from a Laplacian Image Pyramid. - * - * The input image is added to the last level of the Laplacian pyramid L(n-2), the resulting image is upsampled to the - * resolution of the next pyramid level. - * - * I(n-2) = upsample( input + L(n-1) - * - * For each pyramid level i, except i=0 and i=n-1: - * I(i-1) = upsample(I(i) + L(i)) - * - * output = I(0) + L(0) - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NELaplacianReconstruct : public IFunction -{ -public: - /** Constructor */ - NELaplacianReconstruct(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NELaplacianReconstruct(const NELaplacianReconstruct &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NELaplacianReconstruct &operator=(const NELaplacianReconstruct &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NELaplacianReconstruct(NELaplacianReconstruct &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NELaplacianReconstruct &operator=(NELaplacianReconstruct &&) = delete; - /** Default destructor */ - ~NELaplacianReconstruct(); - /** Initialise the function's source, destinations and border mode. - * - * The Output image must have the same size as the first level of the pyramid. - * The Input image must have the same size as the last level of the pyramid. - * - * The idea is to reconstuct the original hi-res image from a low-res representation of it and the laplacian pyramid. - * - * @param[in] pyramid Laplacian pyramid tensors, Data type supported at each level: S16. - * @param[in] input Source tensor. Data type supported: S16. - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(const IPyramid *pyramid, ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value); - - // Inherited methods overridden: - void run() override; - -private: - Pyramid _tmp_pyr; - std::vector _addf; - std::vector _scalef; - NEDepthConvertLayer _depthf; -}; -} -#endif /*ARM_COMPUTE_NELAPLACIANRECONSTRUCT_H */ diff --git a/arm_compute/runtime/NEON/functions/NEMagnitude.h b/arm_compute/runtime/NEON/functions/NEMagnitude.h deleted file mode 100644 index e100de2e08..0000000000 --- a/arm_compute/runtime/NEON/functions/NEMagnitude.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEMAGNITUDE_H -#define ARM_COMPUTE_NEMAGNITUDE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run @ref NEMagnitudePhaseKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEMagnitude : public INESimpleFunctionNoBorder -{ -public: - /** Constructor */ - NEMagnitude() = default; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMagnitude(const NEMagnitude &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMagnitude &operator=(const NEMagnitude &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMagnitude(NEMagnitude &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMagnitude &operator=(NEMagnitude &&) = delete; - /** Default destructor */ - ~NEMagnitude(); - /** Initialise the kernel's inputs. - * - * @param[in] input1 First tensor input. Data type supported: S16. - * @param[in] input2 Second tensor input. Data type supported: S16. - * @param[out] output Output tensor. Data type supported: S16. - * @param[in] mag_type (Optional) Magnitude calculation type. Default: L2NORM. - */ - void configure(const ITensor *input1, const ITensor *input2, ITensor *output, MagnitudeType mag_type = MagnitudeType::L2NORM); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NEMAGNITUDE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEMeanStdDev.h b/arm_compute/runtime/NEON/functions/NEMeanStdDev.h deleted file mode 100644 index ce7bb8c5ee..0000000000 --- a/arm_compute/runtime/NEON/functions/NEMeanStdDev.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEMEANSTDDEV_H -#define ARM_COMPUTE_NEMEANSTDDEV_H - -#include "arm_compute/core/IMultiImage.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include - -#include - -namespace arm_compute -{ -class NEMeanStdDevKernel; -class NEFillBorderKernel; - -/** Basic function to execute mean and std deviation. This function calls the following Neon kernels: - * - * @ref NEMeanStdDevKernel - * - */ -class NEMeanStdDev : public IFunction -{ -public: - /** Default Constructor. */ - NEMeanStdDev(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMeanStdDev(const NEMeanStdDev &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMeanStdDev &operator=(const NEMeanStdDev &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMeanStdDev(NEMeanStdDev &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMeanStdDev &operator=(NEMeanStdDev &&) = delete; - /** Default destructor */ - ~NEMeanStdDev(); - /** Initialise the kernel's inputs and outputs. - * - * @param[in, out] input Input image. Data types supported: U8. (Written to only for border filling) - * @param[out] mean Output average pixel value. - * @param[out] stddev (Optional) Output standard deviation of pixel values. - */ - void configure(IImage *input, float *mean, float *stddev = nullptr); - - // Inherited methods overridden: - void run() override; - -private: - std::unique_ptr _mean_stddev_kernel; /**< Kernel that standard deviation calculation. */ - std::unique_ptr _fill_border_kernel; /**< Kernel that fills tensor's borders with zeroes. */ - uint64_t _global_sum; /**< Variable that holds the global sum among calls in order to ease reduction */ - uint64_t _global_sum_squared; /**< Variable that holds the global sum of squared values among calls in order to ease reduction */ -}; -} -#endif /*ARM_COMPUTE_NEMEANSTDDEV_H */ diff --git a/arm_compute/runtime/NEON/functions/NEMedian3x3.h b/arm_compute/runtime/NEON/functions/NEMedian3x3.h deleted file mode 100644 index 90ee9ae5ef..0000000000 --- a/arm_compute/runtime/NEON/functions/NEMedian3x3.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEMEDIAN3x3_H -#define ARM_COMPUTE_NEMEDIAN3x3_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute median filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEMedian3x3Kernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEMedian3x3 : public INESimpleFunction -{ -public: - /** Initialise the function's source, destinations and border mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor, Data type supported: U8. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEMEDIAN3x3_H */ diff --git a/arm_compute/runtime/NEON/functions/NEMinMaxLocation.h b/arm_compute/runtime/NEON/functions/NEMinMaxLocation.h deleted file mode 100644 index e1f765ebd4..0000000000 --- a/arm_compute/runtime/NEON/functions/NEMinMaxLocation.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEMINMAXLOCATION_H -#define ARM_COMPUTE_NEMINMAXLOCATION_H - -#include "arm_compute/core/IArray.h" -#include "arm_compute/runtime/Array.h" -#include "arm_compute/runtime/IFunction.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NEMinMaxKernel; -class NEMinMaxLocationKernel; -using IImage = ITensor; - -/** Basic function to execute min and max location. This function calls the following Neon kernels: - * - * -# NEMinMaxKernel - * -# NEMinMaxLocationKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEMinMaxLocation : public IFunction -{ -public: - /** Constructor */ - NEMinMaxLocation(); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMinMaxLocation(const NEMinMaxLocation &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEMinMaxLocation &operator=(const NEMinMaxLocation &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMinMaxLocation(NEMinMaxLocation &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NEMinMaxLocation &operator=(NEMinMaxLocation &&) = delete; - /** Default destructor */ - ~NEMinMaxLocation(); - /** Initialise the kernel's inputs and outputs. - * - * @param[in] input Input image. Data types supported: U8/S16/F32. - * @param[out] min Minimum value of image. Data types supported: S32 if input type is U8/S16, F32 if input type is F32. - * @param[out] max Maximum value of image. Data types supported: S32 if input type is U8/S16, F32 if input type is F32. - * @param[out] min_loc (Optional) Array of minimum value locations. - * @param[out] max_loc (Optional) Array of maximum value locations. - * @param[out] min_count (Optional) Number of minimum value encounters. - * @param[out] max_count (Optional) Number of maximum value encounters. - */ - void configure(const IImage *input, void *min, void *max, - ICoordinates2DArray *min_loc = nullptr, ICoordinates2DArray *max_loc = nullptr, - uint32_t *min_count = nullptr, uint32_t *max_count = nullptr); - - // Inherited methods overridden: - void run() override; - -private: - std::unique_ptr _min_max; /**< Kernel that performs min/max */ - std::unique_ptr _min_max_loc; /**< Kernel that extracts min/max locations */ -}; -} -#endif /*ARM_COMPUTE_NEMINMAXLOCATION_H */ diff --git a/arm_compute/runtime/NEON/functions/NENonLinearFilter.h b/arm_compute/runtime/NEON/functions/NENonLinearFilter.h deleted file mode 100644 index 1cd523c4dd..0000000000 --- a/arm_compute/runtime/NEON/functions/NENonLinearFilter.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NENONLINEARFILTER_H -#define ARM_COMPUTE_NENONLINEARFILTER_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute non linear filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NENonLinearFilterKernel - * - * @note Supported mask dimensions squares of sizes 3, 5 - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NENonLinearFilter : public INESimpleFunction -{ -public: - /** Initialize the function's source, destination, conv and border_mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor. Data type supported: U8 - * @param[in] function Non linear function to perform - * @param[in] mask_size Mask size. Supported sizes: 3, 5 - * @param[in] pattern Mask pattern - * @param[in] mask The given mask. Will be used only if pattern is specified to PATTERN_OTHER - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, NonLinearFilterFunction function, unsigned int mask_size, MatrixPattern pattern, const uint8_t *mask, BorderMode border_mode, - uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NENONLINEARFILTER_H */ diff --git a/arm_compute/runtime/NEON/functions/NEOpticalFlow.h b/arm_compute/runtime/NEON/functions/NEOpticalFlow.h deleted file mode 100644 index 34f466b81c..0000000000 --- a/arm_compute/runtime/NEON/functions/NEOpticalFlow.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEOPTICALFLOW_H -#define ARM_COMPUTE_NEOPTICALFLOW_H - -#include "arm_compute/core/IArray.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/Array.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/NEON/functions/NEScharr3x3.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include -#include - -namespace arm_compute -{ -class Pyramid; -class NELKTrackerKernel; - -/** Array of LK Internel Keypoints */ -using LKInternalKeypointArray = Array; -/** Basic function to execute optical flow. This function calls the following Neon kernels and functions: - * - * -# @ref NEScharr3x3 - * -# @ref NELKTrackerKernel - * - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEOpticalFlow : public IFunction -{ -public: - /** Constructor - * - * @param[in] memory_manager (Optional) Memory manager. - */ - NEOpticalFlow(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEOpticalFlow(const NEOpticalFlow &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NEOpticalFlow &operator=(const NEOpticalFlow &) = delete; - /** Default destructor */ - ~NEOpticalFlow(); - /** Initialise the function input and output - * - * @param[in] old_pyramid Pointer to the pyramid for the old tensor. Data type supported U8 - * @param[in] new_pyramid Pointer to the pyramid for the new tensor. Data type supported U8 - * @param[in] old_points Pointer to the IKeyPointArray storing old key points - * @param[in] new_points_estimates Pointer to the IKeyPointArray storing new estimates key points - * @param[out] new_points Pointer to the IKeyPointArray storing new key points - * @param[in] termination The criteria to terminate the search of each keypoint. - * @param[in] epsilon The error for terminating the algorithm - * @param[in] num_iterations The maximum number of iterations before terminate the alogrithm - * @param[in] window_dimension The size of the window on which to perform the algorithm - * @param[in] use_initial_estimate The flag to indicate whether the initial estimated position should be used - * @param[in] border_mode The border mode applied at scharr kernel stage - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT - * - */ - void configure(const Pyramid *old_pyramid, const Pyramid *new_pyramid, const IKeyPointArray *old_points, const IKeyPointArray *new_points_estimates, - IKeyPointArray *new_points, Termination termination, float epsilon, unsigned int num_iterations, size_t window_dimension, - bool use_initial_estimate, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -private: - MemoryGroup _memory_group; - std::vector _func_scharr; - std::vector> _kernel_tracker; - std::vector _scharr_gx; - std::vector _scharr_gy; - IKeyPointArray *_new_points; - const IKeyPointArray *_new_points_estimates; - const IKeyPointArray *_old_points; - LKInternalKeypointArray _new_points_internal; - LKInternalKeypointArray _old_points_internal; - unsigned int _num_levels; -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NEOPTICALFLOW_H */ diff --git a/arm_compute/runtime/NEON/functions/NEPhase.h b/arm_compute/runtime/NEON/functions/NEPhase.h deleted file mode 100644 index 1202f1878d..0000000000 --- a/arm_compute/runtime/NEON/functions/NEPhase.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEPHASE_H -#define ARM_COMPUTE_NEPHASE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; -class ITensorInfo; - -/** Basic function to run @ref NEMagnitudePhaseKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEPhase : public INESimpleFunctionNoBorder -{ -public: - /** Initialise the kernel's inputs, output. - * - * @param[in] input1 First tensor input. Data type supported: S16. - * @param[in] input2 Second tensor input. Data type supported: S16. - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] phase_type (Optional) Phase calculation type. Default: SIGNED. - */ - void configure(const ITensor *input1, const ITensor *input2, ITensor *output, PhaseType phase_type = PhaseType::SIGNED); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NEPHASE_H */ diff --git a/arm_compute/runtime/NEON/functions/NERemap.h b/arm_compute/runtime/NEON/functions/NERemap.h deleted file mode 100644 index 84d0f2ee92..0000000000 --- a/arm_compute/runtime/NEON/functions/NERemap.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEREMAP_H -#define ARM_COMPUTE_NEREMAP_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" -#include "arm_compute/runtime/Tensor.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute remap. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NERemapKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NERemap : public INESimpleFunction -{ -public: - /** Initialise the function's sources, destination, interpolation policy and border mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[in] map_x Map for X coordinates. Data type supported: F32. - * @param[in] map_y Map for Y coordinates. Data type supported: F32. - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] policy Interpolation policy to use. Only NEAREST and BILINEAR are supported. - * @param[in] border_mode Border mode to use on the input tensor. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, const ITensor *map_x, const ITensor *map_y, ITensor *output, - InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEREMAP_H */ diff --git a/arm_compute/runtime/NEON/functions/NEScharr3x3.h b/arm_compute/runtime/NEON/functions/NEScharr3x3.h deleted file mode 100644 index e5ed1c7c5a..0000000000 --- a/arm_compute/runtime/NEON/functions/NEScharr3x3.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NESCHARR3x3_H -#define ARM_COMPUTE_NESCHARR3x3_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute scharr 3x3 filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NEScharr3x3Kernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NEScharr3x3 : public INESimpleFunction -{ -public: - /** Initialise the function's source, destinations and border mode. - * - * @note At least one of output_x or output_y must be not NULL. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_x (optional) Destination for the Scharr 3x3 convolution along the X axis. Data type supported: S16. - * @param[out] output_y (optional) Destination for the Scharr 3x3 convolution along the Y axis. Data type supported: S16. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output_x, ITensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NESCHARR3x3_H */ diff --git a/arm_compute/runtime/NEON/functions/NESobel3x3.h b/arm_compute/runtime/NEON/functions/NESobel3x3.h deleted file mode 100644 index bc5f5e4545..0000000000 --- a/arm_compute/runtime/NEON/functions/NESobel3x3.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NESOBEL3x3_H -#define ARM_COMPUTE_NESOBEL3x3_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to execute sobel 3x3 filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NESobel3x3Kernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NESobel3x3 : public INESimpleFunction -{ -public: - /** Initialise the function's source, destinations and border mode. - * - * @note At least one of output_x or output_y must be not NULL. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_x (optional) Destination for the Sobel 3x3 convolution along the X axis. Data type supported: S16. - * @param[out] output_y (optional) Destination for the Sobel 3x3 convolution along the Y axis. Data type supported: S16. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output_x, ITensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NESOBEL3x3_H */ diff --git a/arm_compute/runtime/NEON/functions/NESobel5x5.h b/arm_compute/runtime/NEON/functions/NESobel5x5.h deleted file mode 100644 index e64558c451..0000000000 --- a/arm_compute/runtime/NEON/functions/NESobel5x5.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NESOBEL5x5_H -#define ARM_COMPUTE_NESOBEL5x5_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NESobel5x5HorKernel; -class NESobel5x5VertKernel; -class NEFillBorderKernel; - -/** Basic function to execute sobel 5x5 filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NESobel5x5HorKernel - * -# @ref NESobel5x5VertKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NESobel5x5 : public IFunction -{ -public: - /** Default constructor */ - NESobel5x5(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESobel5x5(const NESobel5x5 &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESobel5x5 &operator=(const NESobel5x5 &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NESobel5x5(NESobel5x5 &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NESobel5x5 &operator=(NESobel5x5 &&) = delete; - /** Default destructor */ - ~NESobel5x5(); - /** Initialise the function's source, destinations and border mode. - * - * @note At least one of output_x or output_y must be not NULL. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_x (optional) Destination for the Sobel 5x5 convolution along the X axis. Data type supported: S16. - * @param[out] output_y (optional) Destination for the Sobel 5x5 convolution along the Y axis. Data type supported: S16. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output_x, ITensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -protected: - MemoryGroup _memory_group; /**< Function memory group */ - std::unique_ptr _sobel_hor; /**< Sobel Horizontal 5x5 kernel */ - std::unique_ptr _sobel_vert; /**< Sobel Vertical 5x5 kernel */ - Tensor _tmp_x; /**< Temporary buffer for Sobel X */ - Tensor _tmp_y; /**< Temporary buffer for Sobel Y */ - std::unique_ptr _border_handler; /**< Kernel to handle tensor borders */ -}; -} -#endif /*ARM_COMPUTE_NESOBEL5x5_H */ diff --git a/arm_compute/runtime/NEON/functions/NESobel7x7.h b/arm_compute/runtime/NEON/functions/NESobel7x7.h deleted file mode 100644 index 6419d67b56..0000000000 --- a/arm_compute/runtime/NEON/functions/NESobel7x7.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NESOBEL7x7_H -#define ARM_COMPUTE_NESOBEL7x7_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/IMemoryManager.h" -#include "arm_compute/runtime/MemoryGroup.h" -#include "arm_compute/runtime/Tensor.h" - -#include -#include - -namespace arm_compute -{ -class ITensor; -class NESobel7x7HorKernel; -class NESobel7x7VertKernel; -class NEFillBorderKernel; - -/** Basic function to execute sobel 7x7 filter. This function calls the following Neon kernels: - * - * -# @ref NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE) - * -# @ref NESobel7x7HorKernel - * -# @ref NESobel7x7VertKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * - */ -class NESobel7x7 : public IFunction -{ -public: - /** Default constructor */ - NESobel7x7(std::shared_ptr memory_manager = nullptr); - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESobel7x7(const NESobel7x7 &) = delete; - /** Prevent instances of this class from being copied (As this class contains pointers) */ - NESobel7x7 &operator=(const NESobel7x7 &) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NESobel7x7(NESobel7x7 &&) = delete; - /** Prevent instances of this class from being moved (As this class contains non movable objects) */ - NESobel7x7 &operator=(NESobel7x7 &&) = delete; - /** Default destructor */ - ~NESobel7x7(); - /** Initialise the function's source, destinations and border mode. - * - * @note At least one of output_x or output_y must be not NULL. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output_x (optional) Destination for the Sobel 7x7 convolution along the X axis. Data type supported: S32. - * @param[out] output_y (optional) Destination for the Sobel 7x7 convolution along the Y axis. Data type supported: S32. - * @param[in] border_mode Border mode to use for the convolution. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - * - */ - void configure(ITensor *input, ITensor *output_x, ITensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0); - - // Inherited methods overridden: - void run() override; - -protected: - MemoryGroup _memory_group; /**< Function memory group */ - std::unique_ptr _sobel_hor; /**< Sobel Horizontal 7x7 kernel */ - std::unique_ptr _sobel_vert; /**< Sobel Vertical 7x7 kernel */ - Tensor _tmp_x; /**< Temporary buffer for Sobel X */ - Tensor _tmp_y; /**< Temporary buffer for Sobel Y */ - std::unique_ptr _border_handler; /**< Kernel to handle tensor borders */ -}; -} -#endif /*ARM_COMPUTE_NESOBEL7x7_H */ diff --git a/arm_compute/runtime/NEON/functions/NETableLookup.h b/arm_compute/runtime/NEON/functions/NETableLookup.h deleted file mode 100644 index 03674cd297..0000000000 --- a/arm_compute/runtime/NEON/functions/NETableLookup.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NETABLELOOKUP_H -#define ARM_COMPUTE_NETABLELOOKUP_H - -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -namespace arm_compute -{ -class ITensor; -class ILut; - -/** Basic function to run @ref NETableLookupKernel */ -class NETableLookup : public INESimpleFunctionNoBorder -{ -public: - /** Initialise the kernel's inputs and output - * - * @param[in] input First tensor input. Data types supported: U8/S16 - * @param[in] lut Input lookup table. - * @param[out] output Output tensor. Data types supported: same as @p input - */ - void configure(const ITensor *input, const ILut *lut, ITensor *output); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NETABLELOOKUP_H */ diff --git a/arm_compute/runtime/NEON/functions/NEThreshold.h b/arm_compute/runtime/NEON/functions/NEThreshold.h deleted file mode 100644 index 443571f5a0..0000000000 --- a/arm_compute/runtime/NEON/functions/NEThreshold.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NETHRESHOLD_H -#define ARM_COMPUTE_NETHRESHOLD_H - -#include "arm_compute/core/KernelDescriptors.h" -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" - -#include - -namespace arm_compute -{ -// Forward declarations -class ITensor; -class ITensorInfo; - -/** Basic function to run @ref NEThresholdKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEThreshold : public INESimpleFunctionNoBorder -{ -public: - /** Initialise the function's source, destination, thresholds and threshold type - * - * @param[in] input First tensor input. Data type supported: U8. - * @param[out] output Output tensor. Data type supported: U8. - * @param[in] info Threshold descriptor - */ - void configure(const ITensor *input, ITensor *output, const ThresholdKernelInfo &info); - /** Static function to check if given info will lead to a valid configuration of @ref NEThreshold - * - * @param[in] input First tensor input. Data type supported: U8. - * @param[in] output Output tensor. Data type supported: U8. - * @param[in] info Threshold descriptor. - * - * @return A status, containing an error code in case of failure - */ - static Status validate(const ITensorInfo *input, const ITensorInfo *output, const ThresholdKernelInfo &info); -}; -} // namespace arm_compute -#endif /*ARM_COMPUTE_NETHRESHOLD_H */ diff --git a/arm_compute/runtime/NEON/functions/NEWarpAffine.h b/arm_compute/runtime/NEON/functions/NEWarpAffine.h deleted file mode 100644 index c83a3cefcf..0000000000 --- a/arm_compute/runtime/NEON/functions/NEWarpAffine.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2016-2021 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEWARPAFFINE_H -#define ARM_COMPUTE_NEWARPAFFINE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run @ref NEWarpAffineKernel - * - * @deprecated This function is deprecated and will be removed in release 21.05 - * -*/ -class NEWarpAffine : public INESimpleFunction -{ -public: - /** Initialize the function's source, destination, interpolation policy and border_mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor. Data type supported: U8 - * @param[in] matrix The perspective matrix. Must be 2x3 of type float. - * The matrix argument requires 9 values, the last 3 values are ignored. - * @param[in] policy The interpolation type. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, const std::array &matrix, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEWARPAFFINE_H */ diff --git a/arm_compute/runtime/NEON/functions/NEWarpPerspective.h b/arm_compute/runtime/NEON/functions/NEWarpPerspective.h deleted file mode 100644 index 31a1477dca..0000000000 --- a/arm_compute/runtime/NEON/functions/NEWarpPerspective.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2016-2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -#ifndef ARM_COMPUTE_NEWARPPERSPECTIVE_H -#define ARM_COMPUTE_NEWARPPERSPECTIVE_H - -#include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" - -#include - -namespace arm_compute -{ -class ITensor; - -/** Basic function to run @ref NEWarpPerspectiveKernel - * - * @deprecated This function is deprecated and is intended to be removed in 21.05 release - * -*/ -class NEWarpPerspective : public INESimpleFunction -{ -public: - /** Initialize the function's source, destination, interpolation policy and border_mode. - * - * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) - * @param[out] output Destination tensor. Data type supported: U8 - * @param[in] matrix The perspective matrix. Must be 3x3 of type float. - * @param[in] policy The interpolation type. - * @param[in] border_mode Strategy to use for borders. - * @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT. - */ - void configure(ITensor *input, ITensor *output, const std::array &matrix, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0); -}; -} -#endif /*ARM_COMPUTE_NEWARPPERSPECTIVE_H */ -- cgit v1.2.1