Compute Library
 21.02
NEConvolutionRectangle Class Reference

Basic function to execute non-square convolution. More...

#include <NEConvolution.h>

Collaboration diagram for NEConvolutionRectangle:
[legend]

Public Member Functions

 NEConvolutionRectangle ()=default
 Constructor. More...
 
 NEConvolutionRectangle (const NEConvolutionRectangle &)=delete
 Prevent instances of this class from being copied (As this class contains pointers) More...
 
NEConvolutionRectangleoperator= (const NEConvolutionRectangle &)=delete
 Prevent instances of this class from being copied (As this class contains pointers) More...
 
 NEConvolutionRectangle (NEConvolutionRectangle &&)=delete
 Prevent instances of this class from being moved (As this class contains non movable objects) More...
 
NEConvolutionRectangleoperator= (NEConvolutionRectangle &&)=delete
 Prevent instances of this class from being moved (As this class contains non movable objects) More...
 
 ~NEConvolutionRectangle ()
 Default destructor. More...
 
void configure (ITensor *input, ITensor *output, const int16_t *conv, uint32_t rows, uint32_t cols, uint32_t scale, BorderMode border_mode, uint8_t constant_border_value=0)
 Initialize the function's source, destination, conv and border_mode. More...
 
- Public Member Functions inherited from INESimpleFunction
 INESimpleFunction ()
 Constructor. More...
 
 INESimpleFunction (const INESimpleFunction &)=delete
 Prevent instances of this class from being copied (As this class contains pointers) More...
 
 INESimpleFunction (INESimpleFunction &&)=default
 Default move constructor. More...
 
INESimpleFunctionoperator= (const INESimpleFunction &)=delete
 Prevent instances of this class from being copied (As this class contains pointers) More...
 
INESimpleFunctionoperator= (INESimpleFunction &&)=default
 Default move assignment operator. More...
 
 ~INESimpleFunction ()
 Default destructor. More...
 
void run () override final
 Run the kernels contained in the function. More...
 
- Public Member Functions inherited from IFunction
virtual ~IFunction ()=default
 Destructor. More...
 
virtual void prepare ()
 Prepare the function for executing. More...
 

Detailed Description

Basic function to execute non-square convolution.

This function calls the following Neon kernels:

  1. NEFillBorderKernel (executed if border_mode == CONSTANT or border_mode == REPLICATE)
  2. NEConvolutionRectangleKernel or
Note
Convolution rectangle should have dimensions of 3, 5, 7, 9
Deprecated:
This function is deprecated and is intended to be removed in 21.05 release

Definition at line 149 of file NEConvolution.h.

Constructor & Destructor Documentation

◆ NEConvolutionRectangle() [1/3]

Constructor.

◆ NEConvolutionRectangle() [2/3]

Prevent instances of this class from being copied (As this class contains pointers)

◆ NEConvolutionRectangle() [3/3]

Prevent instances of this class from being moved (As this class contains non movable objects)

◆ ~NEConvolutionRectangle()

~NEConvolutionRectangle ( )
default

Default destructor.

Referenced by NEConvolutionSquare< matrix_size >::run().

Member Function Documentation

◆ configure()

void configure ( ITensor input,
ITensor output,
const int16_t *  conv,
uint32_t  rows,
uint32_t  cols,
uint32_t  scale,
BorderMode  border_mode,
uint8_t  constant_border_value = 0 
)

Initialize the function's source, destination, conv and border_mode.

Parameters
[in,out]inputSource tensor. Data type supported: U8. (Written to only for border_mode != UNDEFINED)
[out]outputDestination tensor, Data types supported: U8 or S16.
[in]convMatrix_size x matrix_size S16 coefficients structured as a row-major 2D array in a linear buffer.
[in]rowsRows of convolution kernel.
[in]colsColumns of convolution kernel.
[in]scaleScale of the convolution matrix. If 0 is passed, it will be set to the sum of the coefficients of the convolution or 1 if they add up to 0.
[in]border_modeStrategy to use for borders.
[in]constant_border_value(Optional) Constant value to use for borders if border_mode is set to CONSTANT.

Definition at line 138 of file NEConvolution.cpp.

References arm_compute::test::validation::b, arm_compute::CONSTANT, and arm_compute::UNDEFINED.

139 {
140  border_mode = (border_mode == BorderMode::UNDEFINED) ? BorderMode::CONSTANT : border_mode;
141  auto k = std::make_unique<NEConvolutionRectangleKernel>();
142  k->configure(input, output, conv, rows, cols, scale, false);
143  _kernel = std::move(k);
144 
145  auto b = std::make_unique<NEFillBorderKernel>();
146  b->configure(input, _kernel->border_size(), border_mode, PixelValue(constant_border_value));
147  _border_handler = std::move(b);
148 }
SimpleTensor< float > b
Definition: DFT.cpp:157
Borders are left undefined.

◆ operator=() [1/2]

NEConvolutionRectangle& operator= ( const NEConvolutionRectangle )
delete

Prevent instances of this class from being copied (As this class contains pointers)

◆ operator=() [2/2]

NEConvolutionRectangle& operator= ( NEConvolutionRectangle &&  )
delete

Prevent instances of this class from being moved (As this class contains non movable objects)


The documentation for this class was generated from the following files: