TI J721E Imaging User Guide
hwa_dmpac_dof.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2019-2021 Texas Instruments Incorporated
4  *
5  * All rights reserved not granted herein.
6  *
7  * Limited License.
8  *
9  * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10  * license under copyrights and patents it now or hereafter owns or controls to make,
11  * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12  * terms herein. With respect to the foregoing patent license, such license is granted
13  * solely to the extent that any such patent is necessary to Utilize the software alone.
14  * The patent license shall not apply to any combinations which include this software,
15  * other than combinations with devices manufactured by or for TI ("TI Devices").
16  * No hardware patent is licensed hereunder.
17  *
18  * Redistributions must preserve existing copyright notices and reproduce this license
19  * (including the above copyright notice and the disclaimer and (if applicable) source
20  * code license limitations below) in the documentation and/or other materials provided
21  * with the distribution
22  *
23  * Redistribution and use in binary form, without modification, are permitted provided
24  * that the following conditions are met:
25  *
26  * * No reverse engineering, decompilation, or disassembly of this software is
27  * permitted with respect to any software provided in binary form.
28  *
29  * * any redistribution and use are licensed by TI for use only with TI Devices.
30  *
31  * * Nothing shall obligate TI to provide you with source code for the software
32  * licensed and provided to you in object code.
33  *
34  * If software source code is provided to you, modification and redistribution of the
35  * source code are permitted provided that the following conditions are met:
36  *
37  * * any redistribution and use of the source code, including any resulting derivative
38  * works, are licensed by TI for use only with TI Devices.
39  *
40  * * any redistribution and use of any object code compiled from the source code
41  * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42  *
43  * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44  *
45  * may be used to endorse or promote products derived from this software without
46  * specific prior written permission.
47  *
48  * DISCLAIMER.
49  *
50  * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53  * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59  * OF THE POSSIBILITY OF SUCH DAMAGE.
60  *
61  */
62 
63 #ifndef HWA_DMPAC_DOF_H_
64 #define HWA_DMPAC_DOF_H_
65 
66 #include <VX/vx.h>
67 #include <VX/vx_kernels.h>
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
81 #define TIVX_KERNEL_DMPAC_DOF_NAME "com.ti.hwa.dmpac_dof"
82 
86 #define TIVX_KERNEL_DOF_VISUALIZE_NAME "com.ti.hwa.dof_visualize"
87 
88 /*********************************
89  * DMPAC_DOF Control Commands
90  *********************************/
91 
98 #define TIVX_DMPAC_DOF_CMD_SET_HTS_BW_LIMIT_PARAMS (0x10000000u)
99 
106 #define TIVX_DMPAC_DOF_CMD_CS_PARAMS (0x10000001u)
107 
116 #define TIVX_DMPAC_DOF_CMD_GET_ERR_STATUS (0x10000002u)
117 
118 
119 /*********************************
120  * DMPAC_DOF PREDICTORS
121  *********************************/
123 #define TIVX_DMPAC_DOF_PREDICTOR_NONE (0U)
124 
126 #define TIVX_DMPAC_DOF_PREDICTOR_DELAY_LEFT (1U)
127 
130 #define TIVX_DMPAC_DOF_PREDICTOR_TEMPORAL (2U)
131 
133 #define TIVX_DMPAC_DOF_PREDICTOR_PYR_LEFT (3U)
134 
137 #define TIVX_DMPAC_DOF_PREDICTOR_PYR_COLOCATED (4U)
138 
140 #define TIVX_DMPAC_DOF_MAX_FLOW_VECTOR_DELAY (4U)
141 
142 /*********************************
143  * DMPAC_DOF Defines
144  *********************************/
145 
147 #define TIVX_DMPAC_DOF_RD_ERR (0x04U)
148 
149 #define TIVX_DMPAC_DOF_WR_ERR (0x08U)
150 
151 #define TIVX_DMPAC_DOF_MP0_RD_STATUS_ERR (0x10U)
152 
153 #define TIVX_DMPAC_DOF_FOCO0_SL2_WR_ERR (0x400000U)
154 
155 #define TIVX_DMPAC_DOF_FOCO0_VBUSM_RD_ERR (0x200000U)
156 
157 /*********************************
158  * DMPAC_DOF STRUCTURES
159  *********************************/
160 
167 typedef struct {
173  uint16_t vertical_search_range[2];
189  uint16_t base_predictor[2];
191  uint16_t inter_predictor[2];
215 
217 
224 typedef struct {
242  uint16_t sof_fv_height;
244 
251 typedef struct {
253  uint32_t cs_gain;
255  uint32_t decision_tree_index[16][3];
257  uint32_t decision_tree_threshold[16][3];
259  uint32_t decision_tree_weight[16][4];
261 
268 typedef struct {
272  uint32_t cycle_cnt;
274  uint32_t token_cnt;
276 
277 /*********************************
278  * Function Prototypes
279  *********************************/
280 
286 
292 
298 
304 
305 
373 VX_API_ENTRY vx_node VX_API_CALL tivxDmpacDofNode(vx_graph graph,
374  vx_user_data_object configuration,
375  vx_image input_current_base,
376  vx_image input_reference_base,
377  vx_pyramid input_current,
378  vx_pyramid input_reference,
379  vx_image flow_vector_in,
380  vx_user_data_object sparse_of_config,
381  vx_image sparse_of_map,
382  vx_image flow_vector_out,
383  vx_distribution confidence_histogram);
384 
398 VX_API_ENTRY vx_node VX_API_CALL tivxDofVisualizeNode(vx_graph graph,
399  vx_image flow_vector,
400  vx_scalar confidence_threshold,
401  vx_image flow_vector_rgb,
402  vx_image confidence_image);
403 
412 
421 
430 
431 
441 
442 #ifdef __cplusplus
443 }
444 #endif
445 
446 #endif /* HWA_DMPAC_DOF_H_ */
447 
448 
uint16_t motion_smoothness_factor
Definition: hwa_dmpac_dof.h:182
uint16_t sof_max_pix_in_row
Maximum possible number of enabled pixel in row if sparse optical flow is enabled.
Definition: hwa_dmpac_dof.h:233
void tivxRegisterHwaTargetArmKernels(void)
Function to register HWA Kernels on the arm Target.
void tivxUnRegisterHwaTargetArmKernels(void)
Function to un-register HWA Kernels on the arm Target.
uint32_t enable_hts_bw_limit
Definition: hwa_dmpac_dof.h:270
void tivx_dmpac_dof_hts_bw_limit_params_init(tivx_dmpac_dof_hts_bw_limit_params_t *prms)
Function to initialize DOF HTS bandwidth limit parameters with default value.
uint32_t token_cnt
Definition: hwa_dmpac_dof.h:274
Configuration parameters used to calculate Confidence Score used by TIVX_KERNEL_DMPAC_DOF kernel...
Definition: hwa_dmpac_dof.h:251
uint16_t motion_direction
Definition: hwa_dmpac_dof.h:187
uint16_t median_filter_enable
Definition: hwa_dmpac_dof.h:180
void tivxRegisterHwaTargetDmpacDofKernels(void)
Function to register HWA Kernels on the dmpac_dof Target.
The sof configuration data structure used by the TIVX_KERNEL_DMPAC_DOF kernel.
Definition: hwa_dmpac_dof.h:224
void tivx_dmpac_dof_params_init(tivx_dmpac_dof_params_t *prms)
Function to initialize DOF parameters with default value.
uint16_t horizontal_search_range
Definition: hwa_dmpac_dof.h:178
The configuration data structure used by the TIVX_KERNEL_DMPAC_DOF kernel.
Definition: hwa_dmpac_dof.h:167
uint16_t sof_fv_height
Number of paxel row with at least one enabled pixel. Paxel row is pair of image row (eg...
Definition: hwa_dmpac_dof.h:242
uint32_t cycle_cnt
Definition: hwa_dmpac_dof.h:272
void tivx_dmpac_dof_cs_tree_params_init(tivx_dmpac_dof_cs_tree_params_t *prms)
Function to initialize DOF CS tree parameters with default value.
VX_API_ENTRY vx_node VX_API_CALL tivxDmpacDofNode(vx_graph graph, vx_user_data_object configuration, vx_image input_current_base, vx_image input_reference_base, vx_pyramid input_current, vx_pyramid input_reference, vx_image flow_vector_in, vx_user_data_object sparse_of_config, vx_image sparse_of_map, vx_image flow_vector_out, vx_distribution confidence_histogram)
[Graph] Creates a DMPAC_DOF Node.
Configuration parameters used to set HTS BW limit used by TIVX_KERNEL_DMPAC_DOF kernel.
Definition: hwa_dmpac_dof.h:268
VX_API_ENTRY vx_node VX_API_CALL tivxDofVisualizeNode(vx_graph graph, vx_image flow_vector, vx_scalar confidence_threshold, vx_image flow_vector_rgb, vx_image confidence_image)
[Graph] Creates a DOF visualization node Node.
void tivx_dmpac_dof_sof_params_init(tivx_dmpac_dof_sof_params_t *prms)
Function to initialize DOF SOF parameters with default value.
uint16_t flow_vector_internal_delay_num
Definition: hwa_dmpac_dof.h:214
uint32_t cs_gain
Definition: hwa_dmpac_dof.h:253
uint16_t iir_filter_alpha
Definition: hwa_dmpac_dof.h:193
void tivxUnRegisterHwaTargetDmpacDofKernels(void)
Function to un-register HWA Kernels on the dmpac_dof Target.