34 #ifndef VXLIB_CONVOLVE_IXX_IXX_OXX_PRIV_H_
35 #define VXLIB_CONVOLVE_IXX_IXX_OXX_PRIV_H_
37 #include "../common/VXLIB_utility.h"
40 #include "VXLIB_types.h"
55 #define VXLIB_CONVOLVE_IXX_IXX_OXX_PBLOCK_SIZE (3 * VXLIB_SE_PARAM_SIZE + 2 * VXLIB_SA_PARAM_SIZE)
62 #define VXLIB_CONVOLVE_I8U_C16S_O8U \
63 ((dTypeIn == VXLIB_UINT8) && (dTypeFilter == VXLIB_INT16) && (dTypeOut == VXLIB_UINT8))
65 #define VXLIB_CONVOLVE_I8U_C16S_O16S \
66 ((dTypeIn == VXLIB_UINT8) && (dTypeFilter == VXLIB_INT16) && (dTypeOut == VXLIB_INT16))
73 #define VXLIB_CONVOLVE_TYPENAME_I8U_C16S_O8U uint8_t, int16_t, uint8_t
74 #define VXLIB_CONVOLVE_TYPENAME_I8U_C16S_O16S uint8_t, int16_t, int16_t
81 #define VXLIB_CONVOLVE_DTYPE_I8U_C16S_O8U VXLIB_UINT8, VXLIB_INT16, VXLIB_UINT8
82 #define VXLIB_CONVOLVE_DTYPE_I8U_C16S_O16S VXLIB_UINT8, VXLIB_INT16, VXLIB_INT16
89 #define VXLIB_CONVOLVE_I8U_C16S_O8U_TEMPLATE(dTypeOut) \
90 (std::is_same<dTypeOut, uint8_t>::value)
91 #define VXLIB_CONVOLVE_I8U_C16S_O16S_TEMPLATE(dTypeOut) \
92 (std::is_same<dTypeOut, int16_t>::value)
102 void *restrict pFilter,
103 void *restrict pOut);
136 template <u
int32_t dTypeIn, u
int32_t dTypeFilter, u
int32_t dTypeOut>
163 template <
typename dTypeIn,
typename dTypeFilter,
typename dTypeOut>
183 template <
typename dTypeIn,
typename dTypeFilter,
typename dTypeOut>
VXLIB_STATUS VXLIB_convolve_exec_cn(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pFilter, void *restrict pOut)
This function is the main execution function for the natural C implementation of the kernel....
VXLIB_STATUS(* pFxnVXLIB_convolve_exec)(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pFilter, void *restrict pOut)
This is a function pointer type that conforms to the declaration of VXLIB_convolve_exec_ci and VXLIB_...
VXLIB_STATUS VXLIB_convolve_init_ci(VXLIB_kernelHandle handle, const VXLIB_bufParams2D_t *bufParamsIn, const VXLIB_bufParams2D_t *bufParamsFilter, const VXLIB_bufParams2D_t *bufParamsOut, const VXLIB_convolve_InitArgs *pKerInitArgs)
This function is the initialization function for the C7x implementation of the kernel....
#define VXLIB_CONVOLVE_IXX_IXX_OXX_PBLOCK_SIZE
Macro to define the size of bufPblock array of VXLIB_convolve_PrivArgs structure.
VXLIB_STATUS VXLIB_convolve_exec_ci(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pFilter, void *restrict pOut)
This function is the main execution function for the C7x implementation of the kernel....
void * VXLIB_kernelHandle
Handle type for VXLIB operations.
VXLIB_STATUS_NAME VXLIB_STATUS
Return value for VXLIB functions.
VXLIB_STATUS_NAME
The enumeration of all status codes.
A structure for a 2 dimensional buffer descriptor.
Structure containing the parameters to initialize the kernel.
Structure that is reserved for internal use by the kernel.
VXLIB_convolve_InitArgs pKerInitArgs
Initargs of the kernel.
pFxnVXLIB_convolve_exec execute
Function pointer to point to the right execution variant between VXLIB_convolve_exec_cn and VXLIB_con...
size_t width
Width of image
size_t strideInElements
Stride of input in elements.
size_t numBlocks
Number of blocks to be processed after simidfication.
size_t strideOutElements
Stride of output in elements.
size_t height
Height of image