diff options
Diffstat (limited to 'arm_compute/runtime/NEON/functions/NEScale.h')
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEScale.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/arm_compute/runtime/NEON/functions/NEScale.h b/arm_compute/runtime/NEON/functions/NEScale.h index e1da891dcf..91cda066e7 100644 --- a/arm_compute/runtime/NEON/functions/NEScale.h +++ b/arm_compute/runtime/NEON/functions/NEScale.h @@ -24,25 +24,30 @@ #ifndef __ARM_COMPUTE_NESCALEIMAGE_H__ #define __ARM_COMPUTE_NESCALEIMAGE_H__ +#include "arm_compute/core/NEON/kernels/NEFillBorderKernel.h" +#include "arm_compute/core/NEON/kernels/NEScaleKernel.h" #include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.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 <cstdint> +#include <memory> namespace arm_compute { class ITensor; /** Basic function to run @ref NEScaleKernel */ -class NEScale : public INESimpleFunction +class NEScale : public IFunction { public: /** Constructor * * Initialize NEScale */ - NEScale(); + NEScale(std::shared_ptr<IMemoryManager> memory_manager = nullptr); /** Initialize the function's source, destination, interpolation type and border_mode. * * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) @@ -53,10 +58,16 @@ public: */ void configure(ITensor *input, ITensor *output, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0); + // Inherited methods overridden: + void run() override; + private: - Tensor _offsets; /**< Offset to access the element with NEAREST interpolation or the top-left element with BILINEAR interpolation in the input tensor */ - Tensor _dx; /**< Element's distance between the X real coordinate and the smallest X following integer */ - Tensor _dy; /**< Element's distance between the Y real coordinate and the smallest Y following integer */ + MemoryGroup _memory_group; /**< Function memory group */ + Tensor _offsets; /**< Offset to access the element with NEAREST interpolation or the top-left element with BILINEAR interpolation in the input tensor */ + Tensor _dx; /**< Element's distance between the X real coordinate and the smallest X following integer */ + Tensor _dy; /**< Element's distance between the Y real coordinate and the smallest Y following integer */ + NEScaleKernel _scale_kernel; /**< Kernel to perform the scaling */ + NEFillBorderKernel _border_handler; /**< kernel to handle tensor borders */ }; } #endif /*__ARM_COMPUTE_NESCALEIMAGE_H__ */ |