22 #ifndef TI_SFM_ALG_INT_H 23 #define TI_SFM_ALG_INT_H 25 #include <./../common/tiadalg_alg_int_interface.h> 26 #include <./../common/tiadalg_common_utils.h> 34 #include <./../common/profile.h> 42 #define MAX_NUM_IN_POINTS (20000) 47 #define MAX_NUM_OUT_POINTS MAX_NUM_IN_POINTS 52 #define CAM_EXT_PRM_BUF_DEPTH (VLIB_TRIANG_MAX_POINTS_IN_TRACK) 57 #define MAX_3D_POINTS (MAX_NUM_OUT_POINTS) 62 #define NUM_VECTORS_TOGATHER (48) 67 #define NUM_TRACKS_TOGATHER (NUM_VECTORS_TOGATHER * VLIB_TRIANG_NUM_TRACKS_IN_ONE_VECTOR) 73 #define L2_SCRATCH_BUF_SIZE (448*1024) 78 #define DDR_SCRATCH_BUF_SIZE (8*1024) 82 #define SIMD_WIDTH (16) 84 #define TIADALG_DMA_CHANNEL_PING_PONG ((int32_t) 0) 85 #define TIADALG_DMA_CHANNEL_CBCR_PING_PONG ((int32_t) 1) 86 #define TIADALG_DMA_CHANNEL_MEMCPY_2 ((int32_t) 2) 87 #define TIADALG_DMA_CHANNEL_MEMCPY ((int32_t) 3) 88 #define TIADALG_DMA_CHANNEL_MAX ((int32_t) 4) 90 #define TIADALG_FLOW_CTRL_OPT_ONLY (0) 91 #define TIADALG_FLOW_CTRL_REF_ONLY (1) 92 #define TIADALG_FLOW_CTRL_NATC_ONLY (2) 154 uint8_t memcpyTr[64U];
155 uint8_t pingPongDofTr[64U];
156 uint8_t pingPongCbCrTr[64U];
188 const IALG_Params *params,
189 struct IALG_Fxns **parentFxns,
214 const IALG_MemRec *memRec,
216 const IALG_Params *params
274 int32_t
SFM_TI_free(IALG_Handle handle, IALG_MemRec *memRec);
278 IVISION_Handle handle,
280 const IALG_Params *inParams,
281 IALG_Params *outParams
327 IVISION_Handle handle,
328 IVISION_InBufs *inBufs,
329 IVISION_OutBufs *outBufs,
330 IVISION_InArgs *inArgs,
331 IVISION_OutArgs *outArgs
333 #define TIADALG_DOF_CONFIDENCE_TO_UINT8_SCALING (17) 477 #define SE_PARAM_BASE (0x0000) 478 #define SE0_PARAM_OFFSET (SE_PARAM_BASE) 479 #define SE1_PARAM_OFFSET (SE0_PARAM_OFFSET + SE_PARAM_SIZE) 480 #define SE2_PARAM_OFFSET (SE1_PARAM_OFFSET + SE_PARAM_SIZE) 481 #define SE3_PARAM_OFFSET (SE2_PARAM_OFFSET + SE_PARAM_SIZE) 482 #define SE4_PARAM_OFFSET (SE3_PARAM_OFFSET + SE_PARAM_SIZE) 483 #define SE5_PARAM_OFFSET (SE4_PARAM_OFFSET + SE_PARAM_SIZE) 484 #define MAX_NUM_STRM_TEMPLATE (6) 486 #define SE_PARAM_WORDS ((uint32_t)SE_PARAM_SIZE/sizeof(uint32_t)) sSFM_TI_EqSolvePrm eqSolvePrm
Definition: sfm_ti_alg_int.h:440
uint8_t * sfmL3Scratch
Definition: sfm_ti_alg_int.h:680
int32_t numRowInOgVisBuf
Definition: sfm_ti_alg_int.h:674
sSFM_TI_PrunPrm prunPrm
Definition: sfm_ti_alg_int.h:442
uint16_t * indexMap
Definition: sfm_ti_alg_int.h:614
Triangulation related mutually exclusive scratch data.
Definition: sfm_ti_alg_int.h:439
uSFM_TI_MatData * matData
Definition: sfm_ti_alg_int.h:632
#define VLIB_TRIANG_MAX_POINTS_IN_TRACK
Definition: VLIB_triangulatePoints_types.h:31
int32_t SFM_TI_numAlloc(void)
Definition: sfm_ti_alg_int.h:109
Definition: sfm_ti_alg_int.h:141
uint8_t algState
Definition: sfm_ti_alg_int.h:145
#define VLIB_TRIANG_MAT_AROW
Definition: VLIB_triangulatePoints_types.h:57
uint32_t numMemRecs
Definition: sfm_ti_alg_int.h:146
Definition: sfm_ti_alg_int.h:108
Definition: sfm_ti_alg_int.h:112
L1D scratch memory definition. Base address of ever element in below structure is double word aligned...
Definition: sfm_ti_alg_int.h:488
#define VLIB_TRIANG_CAMERA_INTRINSIC_PARAM_ASIZE
Definition: VLIB_triangulatePoints_types.h:26
L1D scratch memory definition. Base address of ever element in below structure is double word aligned...
Definition: sfm_ti_alg_int.h:588
int32_t keyPointBitMapSize
Definition: sfm_ti_alg_int.h:668
uint8_t * tempImgPtCldL2
Definition: sfm_ti_alg_int.h:620
uint8_t * tempImgOgL2
Definition: sfm_ti_alg_int.h:621
Definition: sfm_ti_alg_int.h:111
uSFM_TI_MatData matData
Definition: sfm_ti_alg_int.h:542
Definition: profile.h:125
uint8_t * constCbCrBuf
Definition: sfm_ti_alg_int.h:600
void SFM_TI_activate(IALG_Handle handle)
3D pruning related parameters
Definition: sfm_ti_alg_int.h:422
void * dmaUtilsContext
Definition: sfm_ti_alg_int.h:152
#define VLIB_TRIANG_MAT_ROW
Definition: VLIB_triangulatePoints_types.h:48
uint16_t * curBlkIndx
Definition: sfm_ti_alg_int.h:624
uint16_t * curOutTrackIdx
Definition: sfm_ti_alg_int.h:609
int32_t isLocalOg
Definition: sfm_ti_alg_int.h:601
eAlgState
State of Feature Plane computation applet.
Definition: sfm_ti_alg_int.h:121
uint8_t * intAlgHandle
Definition: sfm_ti_alg_int.h:150
uint8_t * dofBufInt
Definition: sfm_ti_alg_int.h:610
sSFM_TI_EqInitMat eqInitMat
Definition: sfm_ti_alg_int.h:441
SFM_TI_trackInfo * track
Definition: sfm_ti_alg_int.h:592
#define VLIB_TRIANG_MAT_COL
Definition: VLIB_triangulatePoints_types.h:52
int32_t SFM_TI_alloc(const IALG_Params *params, struct IALG_Fxns **parentFxns, IALG_MemRec *memRec)
uint8_t * constYBuf
Definition: sfm_ti_alg_int.h:599
Definition: sfm_ti_alg_int.h:107
int32_t dofBlockBufSize
Definition: sfm_ti_alg_int.h:669
TI_DSP_PrfInfo prfInfo
Definition: sfm_ti_alg_int.h:676
int8_t * ogBuf
Definition: sfm_ti_alg_int.h:597
eMemrecs
Memory records for Feature Plane classification applet.
Definition: sfm_ti_alg_int.h:101
Place holder for initial data matrices. From this data matrix Pseudo AtA and Pseudo Atb matrices are ...
Definition: sfm_ti_alg_int.h:405
int32_t SFM_TI_control(IVISION_Handle handle, IALG_Cmd cmd, const IALG_Params *inParams, IALG_Params *outParams)
uint16_t * blkIndx
Definition: sfm_ti_alg_int.h:623
float * prevPoints
Definition: sfm_ti_alg_int.h:616
uint32_t curFrameNum
Definition: sfm_ti_alg_int.h:661
uint16_t num3DPoints
Definition: sfm_ti_alg_int.h:660
sSfm_TI_L2DMem * sfmL2Prm
Definition: sfm_ti_alg_int.h:679
This structure defines the format in which SFM module expects a particular feature point's tracked lo...
Definition: sfm_ti_alg_int.h:358
#define CAM_EXT_PRM_BUF_DEPTH
Definition: sfm_ti_alg_int.h:52
uint16_t profileEn
Definition: sfm_ti_alg_int.h:665
uint8_t * isInlier
Definition: sfm_ti_alg_int.h:613
#define NUM_VECTORS_TOGATHER
Definition: sfm_ti_alg_int.h:62
uint8_t idx
Definition: sfm_ti_alg_int.h:361
int32_t maxNumTracks
Definition: sfm_ti_alg_int.h:663
void SFM_TI_deactivate(IALG_Handle handle)
float * firstCamExtPrmL1
Definition: sfm_ti_alg_int.h:650
Definition: sfm_ti_alg_int.h:123
IVISION_Fxns * ivision
Definition: sfm_ti_alg_int.h:143
uint8_t curLargeBufIndx
Definition: sfm_ti_alg_int.h:662
uint16_t * curInTrackIdx
Definition: sfm_ti_alg_int.h:608
Definition: sfm_ti_alg_int.h:106
void SFM_TI_updatePtrs(sSfm_TI_L1DMem *sfmL1Prm, sSfm_TI_L2DMem *sfmL2Prm, sSfm_TI_ExtMem *sfmPrm, SFM_TI_CreateParams *createParams)
SFM_TI_trackInfo * trackInt
Definition: sfm_ti_alg_int.h:593
int32_t trackIndxBufSize
Definition: sfm_ti_alg_int.h:667
Definition: sfm_ti_alg_int.h:114
SFM_TI_output * sfmOutputL2
Definition: sfm_ti_alg_int.h:619
uint8_t * curFeatInTrack
Definition: sfm_ti_alg_int.h:630
uint8_t * keyPointBitMap
Definition: sfm_ti_alg_int.h:607
Definition: sfm_ti_alg_int.h:113
#define VLIB_TRIANG_NUM_UNIQUE_ELEMENTS_IN_ATA
Definition: VLIB_triangulatePoints_types.h:44
Definition: sfm_ti_alg_int.h:110
#define NUM_TRACKS_TOGATHER
Definition: sfm_ti_alg_int.h:67
#define SE_PARAM_WORDS
Definition: sfm_ti_alg_int.h:486
uint8_t age
Definition: sfm_ti_alg_int.h:360
L2 scratch memory definition. Base address of every element in below structure is double word aligned...
Definition: sfm_ti_alg_int.h:530
#define DDR_SCRATCH_BUF_SIZE
Definition: sfm_ti_alg_int.h:78
int32_t SFM_TI_process(IVISION_Handle handle, IVISION_InBufs *inBufs, IVISION_OutBufs *outBufs, IVISION_InArgs *inArgs, IVISION_OutArgs *outArgs)
Definition: sfm_ti_alg_int.h:124
uint16_t * trackId
Definition: sfm_ti_alg_int.h:629
void * udmaDrvObj
Definition: sfm_ti_alg_int.h:151
#define MAX_NUM_STRM_TEMPLATE
Definition: sfm_ti_alg_int.h:484
uint8_t * colorIndx
Definition: sfm_ti_alg_int.h:622
Buffers required for equation solving (AtA * x = Atb) in triangulation Since total NUM_TRACKS_TOGATHE...
Definition: sfm_ti_alg_int.h:383
float * curPoints
Definition: sfm_ti_alg_int.h:615
int32_t numDofBlocks
Definition: sfm_ti_alg_int.h:671
This structure contains all the parameters which controls SFM algorithm at create time...
Definition: tiadalg_structure_from_motion.h:202
#define MAX_NUM_FRAMES_TO_TRACK
Definition: tiadalg_structure_from_motion.h:77
int32_t numRowInPtCldVisBuf
Definition: sfm_ti_alg_int.h:673
int32_t numRowsInDofBlock
Definition: sfm_ti_alg_int.h:670
sSfm_TI_L1DMem * sfmL1Prm
Definition: sfm_ti_alg_int.h:678
#define VLIB_TRIANG_NUM_TRACKS_IN_ONE_VECTOR
Definition: VLIB_triangulatePoints_types.h:37
float * camIntPrmL1
Definition: sfm_ti_alg_int.h:646
int32_t SFM_TI_init(IALG_Handle handle, const IALG_MemRec *memRec, IALG_Handle parent, const IALG_Params *params)
int32_t SFM_TI_free(IALG_Handle handle, IALG_MemRec *memRec)
#define VLIB_TRIANG_CAMERA_EXTRENSIC_PARAM_ASIZE
Definition: VLIB_triangulatePoints_types.h:22
SFM_TI_CreateParams createParams
Definition: sfm_ti_alg_int.h:148
SFM_TI_Obj * SFM_TI_Handle
Definition: sfm_ti_alg_int.h:159
void * fMatParams
Definition: sfm_ti_alg_int.h:664
float * camInvIntPrmL1
Definition: sfm_ti_alg_int.h:648
This structure defines the format of output buffer given out from algorithm.
Definition: tiadalg_structure_from_motion.h:416
int8_t * ogBufInt
Definition: sfm_ti_alg_int.h:598