63 #ifndef HWA_VPAC_LDC_H_ 64 #define HWA_VPAC_LDC_H_ 67 #include <VX/vx_kernels.h> 81 #define TIVX_KERNEL_VPAC_LDC_NAME "com.ti.hwa.vpac_ldc" 86 #define TIVX_KERNEL_VPAC_LDC2_NAME "com.ti.hwa.vpac_ldc2" 99 #define TIVX_VPAC_LDC_CMD_SET_READ_BW_LIMIT_PARAMS (0x10000000u) 111 #define TIVX_VPAC_LDC_CMD_SET_BIT_DEPTH_CONV_LUT_PARAMS (0x10000001u) 127 #define TIVX_VPAC_LDC_CMD_GET_ERR_STATUS (0x10000002u) 140 #define TIVX_VPAC_LDC_CMD_SET_LDC_PARAMS (0x10000003u) 145 #define TIVX_VPAC_LDC_CMD_GET_PSA_STATUS (0x10000004u) 162 #define TIVX_VPAC_LDC_CMD_SET_LDC_DCC_PARAMS (0x30000000u) 175 #define TIVX_VPAC_LDC_ALIGN_LSB (0U) 177 #define TIVX_VPAC_LDC_ALIGN_MSB (1U) 180 #define TIVX_VPAC_LDC_INTERPOLATION_BICUBIC (0U) 182 #define TIVX_VPAC_LDC_INTERPOLATION_BILINEAR (1U) 185 #define TIVX_VPAC_LDC_MODE_LUMA_ONLY (0U) 187 #define TIVX_VPAC_LDC_MODE_CHROMA_ONLY (1U) 196 #define TIVX_VPAC_LDC_CALC_MESH_LINE_OFFSET(width, subsample_factor) \ 197 ((((((width)/(subsample_factor))+1) + 15U) & ~15U) * (4U)) 200 #define TIVX_VPAC_LDC_BIT_DEPTH_CONV_LUT_SIZE (513u) 204 #define TIVX_VPAC_LDC_PIX_BLK_OUTOFBOUND_ERR_STATUS (0x1u) 207 #define TIVX_VPAC_LDC_MESH_BLK_OUTOFBOUND_ERR_STATUS (0x2u) 209 #define TIVX_VPAC_LDC_PIX_MEM_OVF_ERR_STATUS (0x4u) 211 #define TIVX_VPAC_LDC_MESH_MEM_OVF_ERR_STATUS (0x8u) 213 #define TIVX_VPAC_LDC_PIX_FRM_OUTOFBOUND_ERR_STATUS (0x10u) 215 #define TIVX_VPAC_LDC_SZ_OVF_ERR_STATUS (0x20u) 217 #define TIVX_VPAC_LDC_SL2_WR_ERR_STATUS (0x80u) 219 #define TIVX_VPAC_LDC_RD_ERR_STATUS (0x100u) 221 #define TIVX_VPAC_LDC_WDTIMER_ERR (0x40000000U) 223 #define TIVX_VPAC_LDC_SET_PARAMS_WARP_MATRIX_IDX (0u) 225 #define TIVX_VPAC_LDC_DEF_BLOCK_WIDTH (64u) 226 #define TIVX_VPAC_LDC_DEF_BLOCK_HEIGHT (64u) 227 #define TIVX_VPAC_LDC_DEF_PIXEL_PAD (0u) 230 #define TIVX_VPAC_LDC_MAX_OUTPUT (2u) 261 uint32_t reg_width[3];
263 uint32_t reg_height[3];
321 #if defined(VPAC3) || defined(VPAC3L) 327 uint32_t in_img0_yc_mode;
331 uint32_t in_img1_yc_mode;
562 vx_user_data_object configuration,
563 vx_matrix warp_matrix,
564 vx_user_data_object region_prms,
565 vx_user_data_object mesh_prms,
567 vx_user_data_object dcc_db,
686 vx_user_data_object configuration,
687 vx_matrix warp_matrix,
688 vx_user_data_object region_prms,
689 vx_user_data_object mesh_prms,
691 vx_user_data_object dcc_db,
uint32_t input_bits
Definition: hwa_vpac_ldc.h:419
The region_params data structure used by the TIVX_KERNEL_VPAC_LDC kernel.
Definition: hwa_vpac_ldc.h:242
The remap params structure used by the TIVX_KERNEL_VPAC_LDC kernel. Passed as argument to TIVX_VPAC_L...
Definition: hwa_vpac_ldc.h:415
#define TIVX_VPAC_LDC_BIT_DEPTH_CONV_LUT_SIZE
Definition: hwa_vpac_ldc.h:200
uint32_t init_y
Definition: hwa_vpac_ldc.h:304
uint32_t max_burst_length
Definition: hwa_vpac_ldc.h:403
void tivx_vpac_ldc_region_params_init(tivx_vpac_ldc_region_params_t *prms)
Function to initialize LDC Region parameters.
uint32_t luma_interpolation_type
Definition: hwa_vpac_ldc.h:297
void tivxUnRegisterHwaTargetVpacLdcKernels(void)
Function to un-register HWA Kernels on the vpac_ldc Target.
VX_API_ENTRY vx_node VX_API_CALL tivxVpacLdcNode2(vx_graph graph, vx_user_data_object configuration, vx_matrix warp_matrix, vx_user_data_object region_prms, vx_user_data_object mesh_prms, vx_image mesh_img, vx_user_data_object dcc_db, vx_image in0_img, vx_image out0_img, vx_image out1_img, vx_image in1_img, vx_image out2_img, vx_image out3_img)
[Graph] Creates a VPAC_LDC Node. This node takes at most 2 single plane inputs and generate at most 4...
void tivx_vpac_ldc_mesh_params_init(tivx_vpac_ldc_mesh_params_t *prms)
Function to initialize LDC Mesh parameters.
The configuration data structure used by the TIVX_KERNEL_VPAC_LDC kernel.
Definition: hwa_vpac_ldc.h:292
void tivx_vpac_ldc_bandwidth_params_init(tivx_vpac_ldc_bandwidth_params_t *prms)
Function to initialize Bandwidth limiter parameters.
uint32_t bandwidth_control
Definition: hwa_vpac_ldc.h:388
#define TIVX_VPAC_LDC_MAX_OUTPUT
Definition: hwa_vpac_ldc.h:230
uint32_t out_block_width
Definition: hwa_vpac_ldc.h:246
uint32_t enable_error_events
Definition: hwa_vpac_ldc.h:360
The alternative region_params data structure used by the TIVX_KERNEL_VPAC_LDC kernel.
Definition: hwa_vpac_ldc.h:259
uint32_t init_x
Definition: hwa_vpac_ldc.h:301
Structure to hold PSA timestamp data.
Definition: hwa_vpac_ldc.h:434
uint32_t output_bits
Definition: hwa_vpac_ldc.h:423
uint32_t input_align_12bit
Definition: hwa_vpac_ldc.h:295
uint32_t yc_mode
Definition: hwa_vpac_ldc.h:317
uint32_t tag_count
Definition: hwa_vpac_ldc.h:393
uint64_t timestamp
Timestamp value.
Definition: hwa_vpac_ldc.h:447
uint32_t enable_psa
Definition: hwa_vpac_ldc.h:365
uint32_t mesh_frame_height
Definition: hwa_vpac_ldc.h:279
uint32_t mesh_frame_width
Definition: hwa_vpac_ldc.h:277
uint32_t dcc_camera_id
Definition: hwa_vpac_ldc.h:320
uint32_t subsample_factor
Definition: hwa_vpac_ldc.h:283
uint32_t pixel_pad
Definition: hwa_vpac_ldc.h:250
uint32_t enable
Definition: hwa_vpac_ldc.h:244
void tivx_vpac_ldc_multi_region_params_init(tivx_vpac_ldc_multi_region_params_t *prms)
Function to initialize LDC Multi Region parameters.
VX_API_ENTRY vx_node VX_API_CALL tivxVpacLdcNode(vx_graph graph, vx_user_data_object configuration, vx_matrix warp_matrix, vx_user_data_object region_prms, vx_user_data_object mesh_prms, vx_image mesh_img, vx_user_data_object dcc_db, vx_image in_img, vx_image out0_img, vx_image out1_img)
[Graph] Creates a VPAC_LDC Node.
The bandwidth params structure used by the TIVX_KERNEL_VPAC_LDC kernel. Passed as argument to TIVX_VP...
Definition: hwa_vpac_ldc.h:377
uint32_t out_block_height
Definition: hwa_vpac_ldc.h:248
void tivxRegisterHwaTargetVpacLdcKernels(void)
Function to register HWA Kernels on the vpac_ldc Target.
The mesh data structure in the configuration data structure used by the TIVX_KERNEL_VPAC_LDC kernel...
Definition: hwa_vpac_ldc.h:274
void tivx_vpac_ldc_params_init(tivx_vpac_ldc_params_t *prms)
Function to initialize LDC parameters with the default values.