Functions
VXLIB_fastCornersNMS_i8u

Functions

VXLIB_STATUS VXLIB_fastCornersNMS_i8u (const VXLIB_bufParams2D_t *src_addr, const uint32_t corners_in[], const uint8_t strengths_in[], uint32_t num_corners_in, uint32_t corners_out[], uint8_t strengths_out[], uint32_t *num_corners_out, uint8_t scratch[], uint32_t scratch_size)
 
VXLIB_STATUS VXLIB_fastCornersNMS_i8u_checkParams (const VXLIB_bufParams2D_t *src_addr, const uint32_t corners_in[], const uint8_t strengths_in[], uint32_t num_corners_in, const uint32_t corners_out[], const uint8_t strengths_out[], const uint32_t *num_corners_out, const uint8_t scratch[], uint32_t scratch_size)
 

Detailed Description

Function Documentation

◆ VXLIB_fastCornersNMS_i8u()

VXLIB_STATUS VXLIB_fastCornersNMS_i8u ( const VXLIB_bufParams2D_t *  src_addr,
const uint32_t  corners_in[],
const uint8_t  strengths_in[],
uint32_t  num_corners_in,
uint32_t  corners_out[],
uint8_t  strengths_out[],
uint32_t *  num_corners_out,
uint8_t  scratch[],
uint32_t  scratch_size 
)
Description:
Performs the FAST9 non-maximum suppression on a corner list.
Method:
Feature is kept if it's strength is >= a feature on the left, and the 3 features to the top, and it's strength is > a feature on the right, and the 3 features to the bottom.
Parameters
[in]src_addr[]Pointer to structure containing dimensional information of src
[in]corners_in[]Pointer to array containing input corner keypoint list (UQ32.0)
[in]strengths_in[]Pointer to array containing input strength list, coresponding to corners_in[] (UQ8.0)
[in]num_corners_inTotal number of corners in the corners_in list.
[out]corners_out[]Pointer to array containing output corner keypoint list (UQ32.0)
[out]strengths_out[]Pointer to array containing output strength list, coresponding to corners_out[] (UQ8.0)
[out]*num_corners_outTotal number of corners returned in the corners_out list.
[in]scratch[]Pointer to scratch buffer (UQ8.0)
[in]scratch_sizeSize of the scratch buffer (for parameter checking)
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • The corners_in[] array is ordered in raster-scan across and image
  • Each 32-bit word in corners[] array is composed of 2 16-bit half words representing x and y coordinates, such that corners[i] = (y(i) << 16) | x(i);
  • The strengths_in[] array corresponds to the corners_in list
  • The scratch buffer should be 8 byte aligned.
  • The scratch buffer should be at least (4 * src_addr->dim_x) + num_corners_in + 15 bytes
  • The scratch buffer should be filled with 0s prior to calling the function each time.
Performance Considerations:
  • For best performance, the following parameter settings are recommended:
    • When the num_corners_in parameter is a multiple of 4.

◆ VXLIB_fastCornersNMS_i8u_checkParams()

VXLIB_STATUS VXLIB_fastCornersNMS_i8u_checkParams ( const VXLIB_bufParams2D_t *  src_addr,
const uint32_t  corners_in[],
const uint8_t  strengths_in[],
uint32_t  num_corners_in,
const uint32_t  corners_out[],
const uint8_t  strengths_out[],
const uint32_t *  num_corners_out,
const uint8_t  scratch[],
uint32_t  scratch_size 
)
Description:
Checks the parameters for programming errors for the VXLIB_fastCornersNMS_i8u function.
Method:
The following checks are made:
  • There shall be no NULL pointers
Parameters
[in]src_addr[]Pointer to structure containing dimensional information of src
[in]corners_in[]Pointer to array containing input corner keypoint list (UQ32.0)
[in]strengths_in[]Pointer to array containing input strength list, coresponding to corners_in[] (UQ8.0)
[in]num_corners_inTotal number of corners in the corners_in list.
[out]corners_out[]Pointer to array containing output corner keypoint list (UQ32.0)
[out]strengths_out[]Pointer to array containing output strength list, coresponding to corners_out[] (UQ8.0)
[out]*num_corners_outTotal number of corners returned in the corners_out list.
[in]scratch[]Pointer to scratch buffer (UQ8.0)
[in]scratch_sizeSize of the scratch buffer (for parameter checking)

Copyright 2023, Texas Instruments Incorporated