Functions
VXLIB_integralImage_i8u_o32u

Functions

VXLIB_STATUS VXLIB_integralImage_i8u_o32u (const uint8_t src[restrict], const VXLIB_bufParams2D_t *src_addr, uint32_t dst[restrict], const VXLIB_bufParams2D_t *dst_addr, uint32_t prevRow[restrict], uint32_t prevCol[restrict], uint32_t prevRowUpdate)
 
VXLIB_STATUS VXLIB_integralImage_i8u_o32u_checkParams (const uint8_t src[], const VXLIB_bufParams2D_t *src_addr, const uint32_t dst[], const VXLIB_bufParams2D_t *dst_addr, const uint32_t prevRow[], const uint32_t prevCol[], uint32_t prevRowUpdate)
 

Detailed Description

Function Documentation

◆ VXLIB_integralImage_i8u_o32u()

VXLIB_STATUS VXLIB_integralImage_i8u_o32u ( const uint8_t  src[restrict],
const VXLIB_bufParams2D_t *  src_addr,
uint32_t  dst[restrict],
const VXLIB_bufParams2D_t *  dst_addr,
uint32_t  prevRow[restrict],
uint32_t  prevCol[restrict],
uint32_t  prevRowUpdate 
)
Description:
Computes the integral image of the input. Each output pixel is the sum of the corresponding input pixel and all other pixels above and to the left of it.
Method:
The integral image is computed using the following equation:
 dst(x,y) = sum(x,y)

 where, for x>=0 and y>=0

 sum(x,y) = src(x,y) + sum(x-1,y) + sum(x,y-1) - sum(x-1,y-1)

 otherwise,

 sum(x,y)=0
Parameters
[in]src[]Pointer to array containing first input image (UQ8.0)
[in]src_addr[]Pointer to structure containing dimensional information of src
[out]dst[]Pointer to array containing output image (UQ32.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst
[in]prevRow[]Pointer to array containing the last row from a previous execution
[in]prevCol[]Pointer to array containing the last column from a previous execution (optional)
[in]prevRowUpdateFlag that indicates if the function should update the prevRow data (0: Don't update, 1: Update)
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • The number of elements in prevRow buffer should be equal to the width of the full image
  • The number of elements in prevCol buffer should be equal to the height of the full image
  • PARAMETER INITIALIZATION:
    • All prevRow entries should be externally initialized to zero before calling the function for the first time since it is always read by the function regardless if the function is being called once per image, or multiple times per image.
      • If calling only once per full image, prevRowUpdate can be set to 0 so that the zero initialized prevRow buffer doesn't get updated by the function, and can be re-used for subsequent images without re-initializing.
    • If a user wants to divide processing of the image into smaller blocks, then it can use the prevRow and prevCol arrays to store the state information between function calls (prevRowUpdate should be set to 1).
    • When using prevCol, all entries should be externally initialized to zero, before calling the function for the first time for each image.
    • As the function is called across different blocks of an image, be sure to change the prevRow and prevCol pointers to align with the y and x offset of the src and dst image pointers, respectivly.
    • If processing the image in horizontal strips (where the width of each strip is the width of the image), then prevCol may still be set to NULL.
    • If processing the image in vertical strips (where the height of each strip is the height of the image), then prevRowUpdate may be set to 0, and prevCol should be non-NULL.
Performance Considerations:
  • For best performance, the following parameter settings are recommended:
    • Align all pointers to 8 byte boundaries
    • Set all stride values to a multiple of 8
    • Set all width values to a multiple of 8

◆ VXLIB_integralImage_i8u_o32u_checkParams()

VXLIB_STATUS VXLIB_integralImage_i8u_o32u_checkParams ( const uint8_t  src[],
const VXLIB_bufParams2D_t *  src_addr,
const uint32_t  dst[],
const VXLIB_bufParams2D_t *  dst_addr,
const uint32_t  prevRow[],
const uint32_t  prevCol[],
uint32_t  prevRowUpdate 
)
Description:
Checks the parameters for programming errors for the VXLIB_integralImage_i8u_o32u function.
Method:
The following checks are made:
  • There shall be no NULL pointers
  • All images shall have the same x and y dimensions
  • The strides of each image shall be equal to or greater than the x dimension
  • prevRowUpdate shall be either 0 or 1
Parameters
[in]src[]Pointer to array containing first input image (UQ8.0)
[in]src_addr[]Pointer to structure containing dimensional information of src
[out]dst[]Pointer to array containing output image (UQ32.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst
[in]prevRow[]Pointer to array containing the last row from a previous execution
[in]prevCol[]Pointer to array containing the last column from a previous execution (optional)
[in]prevRowUpdateFlag that indicates if the function should update the prevRow data (0: Don't update, 1: Update)

Copyright 2023, Texas Instruments Incorporated