My pipeline is capture(raw_data)->viss->csitx,Resolution:3840*2166,viss out uyvy422,csitx node,avg time over 33.3ms.if my pipeline add ldc node,Common viss data with csitx。The average time of csitx node will reach 36ms。
/* CSITX Start */ #define NUM_CHANNELS (1U) #define CSITX_INST_ID (0U) #define CSITX_LANE_BAND_SPEED (TIVX_CSITX_LANE_BAND_SPEED_950_TO_1000_MBPS) #define CSITX_LANE_SPEED_MBPS (1000) // uint32_t loopCnt; vx_user_data_object csitx_config; tivx_csitx_params_t local_csitx_config; /* CSITX Config initialization */ tivx_csitx_params_init(&local_csitx_config); local_csitx_config.numInst = 1U; local_csitx_config.numCh = NUM_CHANNELS; local_csitx_config.instId[0U] = CSITX_INST_ID; local_csitx_config.instCfg[0U].rxCompEnable = (uint32_t)vx_true_e; local_csitx_config.instCfg[0U].rxv1p3MapEnable = (uint32_t)vx_true_e; local_csitx_config.instCfg[0U].laneBandSpeed = CSITX_LANE_BAND_SPEED; local_csitx_config.instCfg[0U].laneSpeedMbps = CSITX_LANE_SPEED_MBPS; local_csitx_config.instCfg[0U].numDataLanes = 4U; for (loopCnt = 0U; loopCnt < local_csitx_config.instCfg[0U].numDataLanes; loopCnt++) { local_csitx_config.instCfg[0U].lanePolarityCtrl[loopCnt] = 0u; } for (loopCnt = 0U; loopCnt < NUM_CHANNELS; loopCnt++) { local_csitx_config.chVcNum[loopCnt] = loopCnt; local_csitx_config.chInstMap[loopCnt] = CSITX_INST_ID; } csitx_config = vxCreateUserDataObject(obj->context, "tivx_csitx_params_t", sizeof(tivx_csitx_params_t), &local_csitx_config); if (vx_false_e == yuv_cam_input) { vx_image tx_frame = vxCreateImage( obj->context, sensorParams.sensorInfo.raw_params.width, sensorParams.sensorInfo.raw_params.height, //VX_DF_IMAGE_YUYV VX_DF_IMAGE_UYVY ); obj->csitx_frames = vxCreateObjectArray(obj->context, (vx_reference)tx_frame, num_capture_frames); status = vxReleaseImage(&tx_frame); status = vxGetStatus((vx_reference)obj->csitx_frames); if (status != VX_SUCCESS) { APP_PRINTF("csitx vxCreateObjectArray error\n"); } else { APP_PRINTF("csitx vxCreateObjectArray success\n"); } obj->csitx_node = tivxCsitxNode(obj->graph, csitx_config, obj->csitx_frames); } else { obj->csitx_node = tivxCsitxNode(obj->graph, csitx_config, obj->cap_frames[0]); } if(status == VX_SUCCESS) { status = vxReleaseUserDataObject(&csitx_config); } if (status == VX_SUCCESS) { status = vxSetNodeTarget(obj->csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX); } else { APP_PRINTF("capture node set error\n"); } if (status == VX_SUCCESS) { APP_PRINTF("csitx node set success\n"); } else { APP_PRINTF("csitx node set error\n"); }