Functions
VXLIB_normL1_i16s_i16s_o16u

Functions

VXLIB_STATUS VXLIB_normL1_i16s_i16s_o16u (const int16_t src_x[restrict], const VXLIB_bufParams2D_t *src_x_addr, const int16_t src_y[restrict], const VXLIB_bufParams2D_t *src_y_addr, uint16_t dst[restrict], const VXLIB_bufParams2D_t *dst_addr)
 
VXLIB_STATUS VXLIB_normL1_i16s_i16s_o16u_checkParams (const int16_t src_x[restrict], const VXLIB_bufParams2D_t *src_x_addr, const int16_t src_y[restrict], const VXLIB_bufParams2D_t *src_y_addr, uint16_t dst[restrict], const VXLIB_bufParams2D_t *dst_addr)
 

Detailed Description

Function Documentation

◆ VXLIB_normL1_i16s_i16s_o16u()

VXLIB_STATUS VXLIB_normL1_i16s_i16s_o16u ( const int16_t  src_x[restrict],
const VXLIB_bufParams2D_t *  src_x_addr,
const int16_t  src_y[restrict],
const VXLIB_bufParams2D_t *  src_y_addr,
uint16_t  dst[restrict],
const VXLIB_bufParams2D_t *  dst_addr 
)
Description:
Computes the L1 norm given 2 16-bit signed inputs, resulting in an unsigned 16-bit norm result.
Method:
The L1 norm is computed using the following equation:
 dst(x,y) = min(abs(src_x(x,y)), 0x7FFF) + min(abs(src_y(x,y)), 0x7FFF)
Parameters
[in]src_x[]Pointer to array containing first input image (SQ15.0)
[in]src_x_addr[]Pointer to structure containing dimensional information of src0
[in]src_y[]Pointer to array containing second input image (SQ15.0)
[in]src_y_addr[]Pointer to structure containing dimensional information of src1
[out]dst[]Pointer to array containing output image (UQ15.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst
Assumptions:
  • I/O buffer pointers are assumed to be not aliased.
  • This is intended to be used on the sobel 3x3 or 5x5 output gradients, so that max values of the abs this is tested with is 24480 (max for 5x5 sobel on u8 input).
  • The case where the gradient of -32768 is used (min s16), then the abs is saturated to 32767.
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

◆ VXLIB_normL1_i16s_i16s_o16u_checkParams()

VXLIB_STATUS VXLIB_normL1_i16s_i16s_o16u_checkParams ( const int16_t  src_x[restrict],
const VXLIB_bufParams2D_t *  src_x_addr,
const int16_t  src_y[restrict],
const VXLIB_bufParams2D_t *  src_y_addr,
uint16_t  dst[restrict],
const VXLIB_bufParams2D_t *  dst_addr 
)
Description:
Checks the parameters for programming errors for the VXLIB_normL1_i16s_i16s_o16u 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
Parameters
[in]src_x[]Pointer to array containing first input image (SQ15.0)
[in]src_x_addr[]Pointer to structure containing dimensional information of src0
[in]src_y[]Pointer to array containing second input image (SQ15.0)
[in]src_y_addr[]Pointer to structure containing dimensional information of src1
[out]dst[]Pointer to array containing output image (UQ15.0)
[in]dst_addr[]Pointer to structure containing dimensional information of dst

Copyright 2022, Texas Instruments Incorporated