24.02.1
ScaleUtils.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020, 2022 Arm Limited.
3
*
4
* SPDX-License-Identifier: MIT
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in all
14
* copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
* SOFTWARE.
23
*/
24
#ifndef UTILS_CORE_SCALEUTILS_H
25
#define UTILS_CORE_SCALEUTILS_H
26
27
#include "
arm_compute/core/Types.h
"
28
29
namespace
arm_compute
30
{
31
namespace
scale_utils
32
{
33
/** Returns resize ratio between input and output with consideration of aligned corners
34
*
35
* @param[in] input_size The input size
36
* @param[in] output_size the output size
37
* @param[in] align_corners True to align corners of input and output. Defaults to false.
38
*
39
* @return The ratio between input and output (i.e., the input size divided by the output size)
40
*/
41
float
calculate_resize_ratio
(
size_t
input_size
,
size_t
output_size
,
bool
align_corners =
false
);
42
43
/** Returns if aligned corners are allowed for the given sampling policy
44
*
45
* @param[in] sampling_policy The sampling policy to consider
46
*
47
* @return True if aligned corners are allowed
48
*/
49
inline
bool
is_align_corners_allowed_sampling_policy
(
SamplingPolicy
sampling_policy
)
50
{
51
return
sampling_policy
!=
SamplingPolicy::CENTER
;
52
}
53
54
/** Returns if precomputation of indices and/or weights is required or/not
55
*
56
* @param[in] data_layout Data layout
57
* @param[in] data_type Data type
58
* @param[in] policy Interpolation policy
59
* @param[in] border_mode Border Mode
60
*
61
* @return True if precomputation is required
62
*/
63
bool
is_precomputation_required
(
DataLayout
data_layout
,
64
DataType
data_type
,
65
InterpolationPolicy
policy,
66
BorderMode
border_mode);
67
68
}
// namespace scale_utils
69
}
// namespace arm_compute
70
#endif
/* UTILS_CORE_SCALEUTILS_H */
arm_compute::DataLayout
DataLayout
[DataLayout enum definition]
Definition:
CoreTypes.h:110
arm_compute::SamplingPolicy
SamplingPolicy
Available Sampling Policies.
Definition:
Types.h:84
Types.h
arm_compute::test::validation::sampling_policy
sampling_policy
Definition:
Scale.cpp:250
arm_compute::InterpolationPolicy
InterpolationPolicy
Interpolation method.
Definition:
Types.h:360
arm_compute::cpu::data_layout
constexpr auto data_layout
Definition:
impl.h:36
arm_compute::scale_utils::is_precomputation_required
bool is_precomputation_required(DataLayout data_layout, DataType data_type, InterpolationPolicy policy, BorderMode border_mode)
Returns if precomputation of indices and/or weights is required or/not.
Definition:
ScaleUtils.cpp:44
arm_compute::test::validation::data_type
data_type
Definition:
Cast.cpp:222
arm_compute::scale_utils::is_align_corners_allowed_sampling_policy
bool is_align_corners_allowed_sampling_policy(SamplingPolicy sampling_policy)
Returns if aligned corners are allowed for the given sampling policy.
Definition:
ScaleUtils.h:49
arm_compute
Copyright (c) 2017-2024 Arm Limited.
Definition:
introduction.dox:24
arm_compute::scale_utils::calculate_resize_ratio
float calculate_resize_ratio(size_t input_size, size_t output_size, bool align_corners=false)
Returns resize ratio between input and output with consideration of aligned corners.
Definition:
ScaleUtils.cpp:32
arm_compute::SamplingPolicy::CENTER
@ CENTER
Samples are taken at pixel center.
arm_compute::BorderMode
BorderMode
Methods available to handle borders.
Definition:
Types.h:231
arm_compute::test::validation::output_size
const int output_size
Definition:
LSTMLayerQuantized.cpp:459
arm_compute::DataType
DataType
Available data types.
Definition:
CoreTypes.h:83
arm_compute::test::validation::input_size
const int input_size
Definition:
LSTMLayerQuantized.cpp:458
src
core
utils
ScaleUtils.h
Generated on Mon Mar 18 2024 11:32:00 for Compute Library by
1.8.17