PULP DSP  Version 1.0
Digital Signal Processing library for PULP processors (pulp-platform.org)
 All Classes Files Functions Groups Pages
Modules | Functions
Basic Convolution

Modules

 Basic Convolution Kernels
 

Functions

void plp_conv_i16 (const int16_t *pSrcA, const uint32_t srcALen, const int16_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 16-bit integer vectors. More...
 
void plp_conv_i16_parallel (const int16_t *pSrcA, const uint32_t srcALen, const int16_t *pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t *pRes)
 Glue code for parallel convolution of 16-bit integer vectors. More...
 
void plp_conv_i32 (const int32_t *pSrcA, const uint32_t srcALen, const int32_t *pSrcB, const uint32_t srcBLen, int32_t *__restrict__ pRes)
 Glue code for convolution of 32-bit integer vectors. More...
 
void plp_conv_i32_parallel (const int32_t *pSrcA, const uint32_t srcALen, const int32_t *pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t *pRes)
 Glue code for parallel convolution of 32-bit integer vectors. More...
 
void plp_conv_i8 (const int8_t *pSrcA, const uint32_t srcALen, const int8_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 8-bit integer vectors. More...
 
void plp_conv_i8_parallel (const int8_t *pSrcA, const uint32_t srcALen, const int8_t *pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t *pRes)
 Glue code for parallel convolution of 8-bit integer vectors. More...
 
void plp_conv_valid_i16 (const int16_t *pSrcA, const uint32_t srcALen, const int16_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 16-bit integer vectors in valid range. More...
 
void plp_conv_valid_i32 (const int32_t *pSrcA, const uint32_t srcALen, const int32_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 32-bit integer vectors in valid range. More...
 
void plp_conv_valid_i8 (const int8_t *pSrcA, const uint32_t srcALen, const int8_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 8-bit integer vectors in valid range. More...
 
void plp_conv_valid_rep_i16 (const int16_t *pSrcA, const uint32_t srcALen, const int16_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 16-bit integer vectors in valid range. More...
 
void plp_conv_valid_rep_i8 (const int8_t *pSrcA, const uint32_t srcALen, const int8_t *pSrcB, const uint32_t srcBLen, int32_t *pRes)
 Glue code for convolution of 8-bit integer vectors in valid range. More...
 

Detailed Description

This module contains the glue code for Basic Convolution. The kernel codes (kernels) are in the Moducle Basic Convolution Kernels.

Function Documentation

void plp_conv_i16 ( const int16_t *  pSrcA,
const uint32_t  srcALen,
const int16_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 16-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
void plp_conv_i16_parallel ( const int16_t *  pSrcA,
const uint32_t  srcALen,
const int16_t *  pSrcB,
const uint32_t  srcBLen,
const uint8_t  nPE,
int32_t *  pRes 
)

Glue code for parallel convolution of 16-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[in]nPENumber of cores to compute on
[out]pResoutput result returned here
Returns
none
void plp_conv_i32 ( const int32_t *  pSrcA,
const uint32_t  srcALen,
const int32_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *__restrict__  pRes 
)

Glue code for convolution of 32-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
void plp_conv_i32_parallel ( const int32_t *  pSrcA,
const uint32_t  srcALen,
const int32_t *  pSrcB,
const uint32_t  srcBLen,
const uint8_t  nPE,
int32_t *  pRes 
)

Glue code for parallel convolution of 32-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[in]nPENumber of cores to compute on
[out]pResoutput result returned here
Returns
none
void plp_conv_i8 ( const int8_t *  pSrcA,
const uint32_t  srcALen,
const int8_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 8-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
void plp_conv_i8_parallel ( const int8_t *  pSrcA,
const uint32_t  srcALen,
const int8_t *  pSrcB,
const uint32_t  srcBLen,
const uint8_t  nPE,
int32_t *  pRes 
)

Glue code for parallel convolution of 8-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[in]nPENumber of cores to compute on
[out]pResoutput result returned here
Returns
none
void plp_conv_valid_i16 ( const int16_t *  pSrcA,
const uint32_t  srcALen,
const int16_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 16-bit integer vectors in valid range.

Glue code for convolution (valid) of 16-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here, of size |srcALen - srcBLen| + 1
Returns
none
void plp_conv_valid_i32 ( const int32_t *  pSrcA,
const uint32_t  srcALen,
const int32_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 32-bit integer vectors in valid range.

Glue code for convolution (valid) of 32-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here, of size |srcALen - srcBLen| + 1
Returns
none
void plp_conv_valid_i8 ( const int8_t *  pSrcA,
const uint32_t  srcALen,
const int8_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 8-bit integer vectors in valid range.

Glue code for convolution (valid) of 8-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here, of size |srcALen - srcBLen| + 1
Returns
none
void plp_conv_valid_rep_i16 ( const int16_t *  pSrcA,
const uint32_t  srcALen,
const int16_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 16-bit integer vectors in valid range.

Glue code for convolution (valid with replication) of 16-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector, must be on L2
[in]srcALenength of the first input vector
[in]pSrcBpoints to the second input vector, must be on L2
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here, of size |srcALen - srcBLen| + 1, preferably in L1
Returns
none
void plp_conv_valid_rep_i8 ( const int8_t *  pSrcA,
const uint32_t  srcALen,
const int8_t *  pSrcB,
const uint32_t  srcBLen,
int32_t *  pRes 
)

Glue code for convolution of 8-bit integer vectors in valid range.

Glue code for convolution (valid with data replication) of 8-bit integer vectors.

Parameters
[in]pSrcApoints to the first input vector, must be on L2
[in]srcALenength of the first input vector
[in]pSrcBpoints to the second input vector, must be on L2
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here, of size |srcALen - srcBLen| + 1, preferably in L1
Returns
none