63 #ifndef HWA_VPAC_MSC_H_ 64 #define HWA_VPAC_MSC_H_ 67 #include <VX/vx_kernels.h> 81 #define TIVX_KERNEL_VPAC_MSC_MULTI_SCALE_NAME "com.ti.hwa.vpac_msc_multi_scale" 86 #define TIVX_KERNEL_VPAC_MSC_PYRAMID_NAME "com.ti.hwa.vpac_msc_pyramid" 91 #define TIVX_KERNEL_VPAC_MSC_MULTI_SCALE2_NAME "com.ti.hwa.vpac_msc_multi_scale2" 103 #define TIVX_VPAC_MSC_CMD_SET_COEFF (0x20000000u) 120 #define TIVX_VPAC_MSC_CMD_SET_INPUT_PARAMS (0x20000001u) 140 #define TIVX_VPAC_MSC_CMD_SET_OUTPUT_PARAMS (0x20000002u) 164 #define TIVX_VPAC_MSC_CMD_SET_CROP_PARAMS (0x20000003u) 182 #define TIVX_VPAC_MSC_CMD_GET_ERR_STATUS (0x20000004u) 187 #define TIVX_VPAC_MSC_CMD_GET_PSA_STATUS (0x20000005u) 192 #define TIVX_VPAC_MSC_CMD_ENABLE_ERROR_EVENTS (0x20000006u) 195 #define TIVX_VPAC_MSC_CMD_ENABLE_SAFETY_MECHANISM (0x20000007u) 208 #define TIVX_VPAC_MSC_MAX_MP_COEFF_SET (4U) 211 #define TIVX_VPAC_MSC_MAX_SP_COEFF_SET (2U) 215 #define TIVX_VPAC_MSC_MAX_OUTPUT (10U) 218 #define TIVX_VPAC_MSC_MAX_TAP (5U) 221 #define TIVX_VPAC_MSC_32_PHASE_COEFF (32U) 224 #define TIVX_VPAC_MSC_AUTOCOMPUTE (0xFFFFFFFFU) 227 #define TIVX_VPAC_MSC_INTERPOLATION_GAUSSIAN_32_PHASE (0) 230 #define TIVX_VPAC_MSC_MODE_LUMA_ONLY (0U) 233 #define TIVX_VPAC_MSC_MODE_CHROMA_ONLY (1U) 236 #define TIVX_VPAC_MSC_MODE_420SP_UV_CHROMA_ONLY (1U) 239 #define TIVX_VPAC_MSC_MODE_420SP_VU_CHROMA_ONLY (2U) 242 #define TIVX_VPAC_MSC_MODE_422SP_UV_CHROMA_ONLY (3U) 245 #define TIVX_VPAC_MSC_MODE_422SP_VU_CHROMA_ONLY (4U) 248 #define TIVX_VPAC_MSC_INIT_DIV_FACTOR (1U) 251 #define TIVX_VPAC_MSC_DEFAULT_MAX_DS_FACTOR (2U) 254 #define TIVX_VPAC_MSC_VBUSM_RD_ERR (0x4U) 257 #define TIVX_VPAC_MSC_SL2_WR_ERR (0x8U) 260 #define TIVX_VPAC_MSC0_WDTIMER_ERR (0x40000000U) 263 #define TIVX_VPAC_MSC1_WDTIMER_ERR (0x80000000U) 266 #define TIVX_VPAC_MSC0_ALL_ERR_EVENTS ( \ 267 TIVX_VPAC_MSC_VBUSM_RD_ERR | \ 268 TIVX_VPAC_MSC_SL2_WR_ERR | \ 269 TIVX_VPAC_MSC0_WDTIMER_ERR \ 273 #define TIVX_VPAC_MSC1_ALL_ERR_EVENTS ( \ 274 TIVX_VPAC_MSC_VBUSM_RD_ERR | \ 275 TIVX_VPAC_MSC_SL2_WR_ERR | \ 276 TIVX_VPAC_MSC1_WDTIMER_ERR \ 279 #define TIVX_VPAC_MSC_WDTIMER_DISABLE (0u) 281 #define TIVX_VPAC_MSC_WDTIMER_ENABLE (1u) 283 #define TIVX_VPAC_MSC_WDTIMER_64K_CYCLES (0u) 285 #define TIVX_VPAC_MSC_WDTIMER_128K_CYCLES (1u) 288 #define TIVX_VPAC_MSC_MAX_COMP (2u) 468 #if defined(VPAC3) || defined(VPAC3L) 472 uint32_t is_enable_simul_processing;
477 uint32_t in_img0_yc_mode;
481 uint32_t in_img1_yc_mode;
570 uint32_t enable_reconfig_and_reinit_Reg;
573 uint32_t enable_status_reg_validation;
576 uint32_t enable_readback_config_registers;
struct _vx_image * vx_image
VX_API_ENTRY vx_node VX_API_CALL tivxVpacMscScaleNode(vx_graph graph, vx_image in_img0, vx_image out0_img, vx_image out1_img, vx_image out2_img, vx_image out3_img, vx_image out4_img)
Creates a VPAC_MSC Node with multi-scale outputs (at most 5 outputs).
Safety parameters structure for VPAC MSC.
void tivx_vpac_msc_safety_mech_prms_init(tivx_vpac_msc_safety_mechanism_params_t *prms)
Function to initialize MSC safety mechanism parameters with default values.
The coefficients input data structure used by the TIVX_KERNEL_VPAC_MSC kernel.
#define TIVX_VPAC_MSC_MAX_SP_COEFF_SET
VX_API_ENTRY vx_node VX_API_CALL tivxVpacMscPyramidNode(vx_graph graph, vx_image in_img, vx_pyramid out_pyramid)
Creates a VPAC_MSC Node with multi-scale pyramid output.
Structure to hold PSA timestamp data.
void tivxRegisterHwaTargetVpacMscKernels(void)
Function to register HWA Kernels on the vpac_msc Target.
#define TIVX_VPAC_MSC_MAX_TAP
uint64_t timestamp
Timestamp value.
void tivx_vpac_msc_coefficients_params_init(tivx_vpac_msc_coefficients_t *coeff, vx_enum interpolation)
Function to initialize MSC Coefficients Parameters This initializes Coefficients to default values...
void tivxUnRegisterHwaTargetVpacMscKernels(void)
Function to un-register HWA Kernels on the vpac_msc Target.
struct _vx_pyramid * vx_pyramid
The configuration data structure used by the TIVX_KERNEL_VPAC_MSC kernel.
#define TIVX_VPAC_MSC_MAX_COMP
Maximum possible MSC iteration for a simgle request (Luma + Chroma)
The output config data structure used by the TIVX_KERNEL_VPAC_MSC kernel.
#define TIVX_VPAC_MSC_MAX_OUTPUT
#define TIVX_VPAC_MSC_32_PHASE_COEFF
VX_API_ENTRY vx_node VX_API_CALL tivxVpacMscScaleNode2(vx_graph graph, vx_image in_img0, vx_image out0_img, vx_image out1_img, vx_image out2_img, vx_image out3_img, vx_image out4_img, vx_image in_img1, vx_image out5_img, vx_image out6_img, vx_image out7_img, vx_image out8_img, vx_image out9_img)
Creates a VPAC_MSC Node with multi-scale outputs (at most 10 outputs). This node takes at most 2 sing...
void tivx_vpac_msc_input_params_init(tivx_vpac_msc_input_params_t *prms)
Function to initialize MSC input Parameters This is used for control command: TIVX_VPAC_MSC_CMD_SET_I...
struct _vx_graph * vx_graph
void tivx_vpac_msc_output_params_init(tivx_vpac_msc_output_params_t *prms)
Function to initialize MSC output Parameters This is used for control command: TIVX_VPAC_MSC_CMD_SET_...
struct _vx_node * vx_node
tivx_vpac_msc_single_phase_params_t single_phase
The multi_phase data structure in the configuration data structure used by the TIVX_KERNEL_VPAC_MSC k...
The crop config data structure used by the TIVX_KERNEL_VPAC_MSC kernel.
vx_status(* VX_API_CALL)(vx_reference *ref)
Callback type used to register release callbacks from object derived from references.
uint32_t output_align_12bit
#define TIVX_VPAC_MSC_MAX_MP_COEFF_SET
tivx_vpac_msc_multi_phase_params_t multi_phase