1 // Copyright (c) 2018 Intel Corporation
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 ///////////////////////////////////////////////////////////////////////////////////////////////////
22 /// @addtogroup c_api C API
24 /// @addtogroup c_topology Network Topology
26 /// @addtogroup c_primitives Primitives
33 /// @brief Type of border that will be added to the input by current layer / primitive
34 /// ( @CLDNN_PRIMITIVE_DESC{border} ).
35 typedef enum /*:int32_t*/
37 /// @brief All points in the border are set to constant value.
38 cldnn_border_constant,
39 /// @brief Border is constructed as an mirror of image (edge is also mirrored).
40 /// @details Size of border in any dimension cannot be larger than size of
41 /// input in the same dimension.
43 /// @brief Border is constructed as an replication of edge.
44 /// @details Size of border in any dimension cannot be larger than size of
45 /// input in the same dimension.
47 /// @brief Border is constructed as an mirror of image (edge is NOT mirrored).
48 /// @details Size of border in any dimension cannot be larger than size of
49 /// input in the same dimension decreased by @c 1.
50 cldnn_border_mirror_101
54 /// @brief Adds border around input.
56 /// @details Applies border of specified type around input data. The size of output data is increased
57 /// by @c left_top_sizes and by @right_bottom_sizes.
59 /// @n@b Requirements:
60 /// @n - @c left_top_sizes and @c right_bottom_sizes must be non-negative on all dimensions and compatible
61 /// with size of input (describe the same dimensions).
62 /// @n - For @c border_type equal to @c cldnn_border_mirror, @c left_top_sizes and @c right_bottom_sizes
63 /// must be lower than or equal to size of input on corresponding dimension (for all dimensions)
64 /// @n - For @c border_type equal to @c cldnn_border_mirror_101, @c left_top_sizes and @c right_bottom_sizes
65 /// must be lower than size of input on corresponding dimension (for all dimensions)
66 CLDNN_BEGIN_PRIMITIVE_DESC(border)
67 /// @brief Size of border that needs to be added from left (in X dimension) and from top (in Y dimension).
68 cldnn_tensor left_top_sizes;
69 /// @brief Size of border that needs to be added from right (in X dimension) and from bottom (in Y dimension).
70 cldnn_tensor right_bottom_sizes;
71 /// @brief Type of border that needs to be added to the input.
72 cldnn_border_type border_type;
73 /// @brief Border value that is used in constant mode.
75 CLDNN_END_PRIMITIVE_DESC(border)
78 CLDNN_DECLARE_PRIMITIVE_TYPE_ID(border);