Functions
VXLIB_multiply_i8u_i8u_o8u

Functions

VXLIB_STATUS VXLIB_multiply_i8u_i8u_o8u (const uint8_t src0[restrict], const VXLIB_bufParams2D_t *src0_addr, const uint8_t src1[restrict], const VXLIB_bufParams2D_t *src1_addr, uint8_t dst[restrict], const VXLIB_bufParams2D_t *dst_addr, uint16_t overflow_policy, VXLIB_F32 scale)
 
VXLIB_STATUS VXLIB_multiply_i8u_i8u_o8u_checkParams (const uint8_t src0[], const VXLIB_bufParams2D_t *src0_addr, const uint8_t src1[], const VXLIB_bufParams2D_t *src1_addr, const uint8_t dst[], const VXLIB_bufParams2D_t *dst_addr, uint16_t overflow_policy, VXLIB_F32 scale)
 

Detailed Description

Function Documentation

◆ VXLIB_multiply_i8u_i8u_o8u()

VXLIB_STATUS VXLIB_multiply_i8u_i8u_o8u ( const uint8_t  src0[restrict],
const VXLIB_bufParams2D_t *  src0_addr,
const uint8_t  src1[restrict],
const VXLIB_bufParams2D_t *  src1_addr,
uint8_t  dst[restrict],
const VXLIB_bufParams2D_t *  dst_addr,
uint16_t  overflow_policy,
VXLIB_F32  scale 
)
Description:
Performs element-wise multiplication between two unsigned 8-bit images and a scalar value and results in an unsigned 8-bit image. The overflow handling is controlled by an overflow-policy parameter. Use VXLIB_CONVERT_POLICY_WRAP as the parameter for wrap and VXLIB_CONVERT_POLICY_SATURATE for saturate.
Method:
The multiplication is computed using the following equation:
 dst(x,y) = src0(x,y) * src1(x,y) * scale
Parameters
[in]src0[]Pointer to array containing first input image (UQ8.0)
[in]src0_addr[]Pointer to structure containing dimensional information of src0
[in]src1[]Pointer to array containing second input image (UQ8.0)
[in]src1_addr[]Pointer to structure containing dimensional information of src1
[out]dst[]Pointer to array containing output image (UQ8.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst
[in]overflow_policyParameter indicating overflow policy
[in]scaleParameter indicating scale
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • Negative scale values are not supported.
Performance Considerations:
  • For best performance, the following parameter settings are recommended:
    • Set widths equal to strides
    • 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
    • Scale values of positive integer values or 1/2^n values are optimized for speed.

◆ VXLIB_multiply_i8u_i8u_o8u_checkParams()

VXLIB_STATUS VXLIB_multiply_i8u_i8u_o8u_checkParams ( const uint8_t  src0[],
const VXLIB_bufParams2D_t *  src0_addr,
const uint8_t  src1[],
const VXLIB_bufParams2D_t *  src1_addr,
const uint8_t  dst[],
const VXLIB_bufParams2D_t *  dst_addr,
uint16_t  overflow_policy,
VXLIB_F32  scale 
)
Description:
Checks the parameters for programming errors for the VXLIB_multiply_i8u_i8u_o8u 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
  • overflow_policy shall be either VXLIB_CONVERT_POLICY_WRAP or VXLIB_CONVERT_POLICY_SATURATE
Parameters
[in]src0[]Pointer to array containing first input image (UQ8.0)
[in]src0_addr[]Pointer to structure containing dimensional information of src0
[in]src1[]Pointer to array containing second input image (UQ8.0)
[in]src1_addr[]Pointer to structure containing dimensional information of src1
[out]dst[]Pointer to array containing output image (UQ8.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst
[in]overflow_policyParameter indicating overflow policy
[in]scaleParameter indicating scale

Copyright 2023, Texas Instruments Incorporated