aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/NEON/functions/NEGaussianPyramid.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2017-09-18 17:55:22 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit3021edfb5e72ef4cd91dbc754ce6ac55388ebc4e (patch)
tree4dba45b5e0ea8401c3bcbd66fc2b97d18d119dc6 /src/runtime/NEON/functions/NEGaussianPyramid.cpp
parentd910ffa3ae6433404649f91ac53c8fa08bd6e196 (diff)
downloadComputeLibrary-3021edfb5e72ef4cd91dbc754ce6ac55388ebc4e.tar.gz
COMPMID-417: Fix NEGaussianPyramidOrb.
Change-Id: I9e89136a926f33cc591784d4e7785618bba7b0b2 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/88116 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'src/runtime/NEON/functions/NEGaussianPyramid.cpp')
-rw-r--r--src/runtime/NEON/functions/NEGaussianPyramid.cpp22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/runtime/NEON/functions/NEGaussianPyramid.cpp b/src/runtime/NEON/functions/NEGaussianPyramid.cpp
index 90bd5842eb..84ea0ca058 100644
--- a/src/runtime/NEON/functions/NEGaussianPyramid.cpp
+++ b/src/runtime/NEON/functions/NEGaussianPyramid.cpp
@@ -116,8 +116,7 @@ void NEGaussianPyramidHalf::run()
}
NEGaussianPyramidOrb::NEGaussianPyramidOrb() // NOLINT
- : _offsets(),
- _gaus5x5(),
+ : _gaus5x5(),
_scale_nearest()
{
}
@@ -140,29 +139,18 @@ void NEGaussianPyramidOrb::configure(const ITensor *input, IPyramid *pyramid, Bo
if(num_levels > 1)
{
_gaus5x5 = arm_compute::support::cpp14::make_unique<NEGaussian5x5[]>(num_levels - 1);
- _scale_nearest = arm_compute::support::cpp14::make_unique<NEScaleKernel[]>(num_levels - 1);
- _offsets = arm_compute::support::cpp14::make_unique<Image[]>(num_levels - 1);
+ _scale_nearest = arm_compute::support::cpp14::make_unique<NEScale[]>(num_levels - 1);
PyramidInfo pyramid_info(num_levels - 1, SCALE_PYRAMID_ORB, pyramid->info()->tensor_shape(), Format::U8);
_tmp.init(pyramid_info);
for(unsigned int i = 0; i < num_levels - 1; ++i)
{
- const size_t width = _pyramid->get_pyramid_level(i + 1)->info()->dimension(0);
- const size_t height = _pyramid->get_pyramid_level(i + 1)->info()->dimension(1);
-
- /* Allocate Image for the offsets used by NEAREST interpolation */
- TensorInfo tensor_info(TensorShape(width, height), Format::S32);
- _offsets[i].allocator()->init(tensor_info);
-
/* Configure gaussian 5x5 */
_gaus5x5[i].configure(_pyramid->get_pyramid_level(i), _tmp.get_pyramid_level(i), border_mode, constant_border_value);
- /* Configure scale image kernel */
- _scale_nearest[i].configure(_tmp.get_pyramid_level(i), nullptr, nullptr, _offsets.get() + i, _pyramid->get_pyramid_level(i + 1), InterpolationPolicy::NEAREST_NEIGHBOR,
- border_mode == BorderMode::UNDEFINED);
-
- _offsets[i].allocator()->allocate();
+ /* Configure scale */
+ _scale_nearest[i].configure(_tmp.get_pyramid_level(i), _pyramid->get_pyramid_level(i + 1), InterpolationPolicy::NEAREST_NEIGHBOR, BorderMode::UNDEFINED);
}
_tmp.allocate();
@@ -182,6 +170,6 @@ void NEGaussianPyramidOrb::run()
for(unsigned int i = 0; i < num_levels - 1; ++i)
{
_gaus5x5[i].run();
- NEScheduler::get().schedule(_scale_nearest.get() + i, Window::DimY);
+ _scale_nearest[i].run();
}
}