aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/MultiImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/MultiImage.cpp')
-rw-r--r--src/runtime/MultiImage.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/runtime/MultiImage.cpp b/src/runtime/MultiImage.cpp
index bdafe4c9a2..6eba71bf1d 100644
--- a/src/runtime/MultiImage.cpp
+++ b/src/runtime/MultiImage.cpp
@@ -25,6 +25,7 @@
#include "arm_compute/core/Error.h"
#include "arm_compute/core/TensorInfo.h"
+#include "arm_compute/core/Utils.h"
#include "arm_compute/runtime/TensorAllocator.h"
using namespace arm_compute;
@@ -51,7 +52,8 @@ void MultiImage::init_auto_padding(unsigned int width, unsigned int height, Form
void MultiImage::internal_init(unsigned int width, unsigned int height, Format format, bool auto_padding)
{
- TensorInfo info(width, height, Format::U8);
+ TensorShape shape = adjust_odd_shape(TensorShape{ width, height }, format);
+ TensorInfo info(shape, Format::U8);
if(auto_padding)
{
@@ -72,7 +74,7 @@ void MultiImage::internal_init(unsigned int width, unsigned int height, Format f
case Format::YUYV422:
case Format::UYVY422:
{
- TensorInfo info_full(width, height, format);
+ TensorInfo info_full(shape, format);
if(auto_padding)
{
@@ -85,7 +87,8 @@ void MultiImage::internal_init(unsigned int width, unsigned int height, Format f
case Format::NV12:
case Format::NV21:
{
- TensorInfo info_uv88(width / 2, height / 2, Format::UV88);
+ const TensorShape shape_uv88 = calculate_subsampled_shape(shape, Format::UV88);
+ TensorInfo info_uv88(shape_uv88, Format::UV88);
if(auto_padding)
{
@@ -98,7 +101,8 @@ void MultiImage::internal_init(unsigned int width, unsigned int height, Format f
}
case Format::IYUV:
{
- TensorInfo info_sub2(width / 2, height / 2, Format::U8);
+ const TensorShape shape_sub2 = calculate_subsampled_shape(shape, Format::IYUV);
+ TensorInfo info_sub2(shape_sub2, Format::U8);
if(auto_padding)
{
@@ -120,7 +124,7 @@ void MultiImage::internal_init(unsigned int width, unsigned int height, Format f
break;
}
- _info.init(width, height, format);
+ _info.init(shape.x(), shape.y(), format);
}
void MultiImage::allocate()