From 9414f64c231a013664102e2c284b10266c6b4d4e Mon Sep 17 00:00:00 2001 From: Ioan-Cristian Szabo Date: Fri, 27 Oct 2017 17:35:40 +0100 Subject: COMPMID-582: Add validation to channel_extract kernels. Change-Id: I5022d02f06f9d849dad76e3d9b8e48632c236429 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/121191 Reviewed-by: Anthony Barbier Tested-by: Jenkins --- src/runtime/MultiImage.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/runtime/MultiImage.cpp') 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() -- cgit v1.2.1