关于DRP的使用

我在rza2m_drp_simple_isp_sample1_freertos_gcc的基础上添加转换灰度图的功能,所以将ISP的功能转换成函数的形式。但是转换后,在显示屏上的图像很卡顿,就是显示屏上的图像比实际的动作慢一些。转换函数是参照手势识别的形式。有什么办法解决吗?

 

 

int32_t drp_isp(uint8_t * p_input_bufadr,uint8_t * p_output_bufadr)
{
int32_t ret_val;
/******************************/
/* Load DRP Library */
/* +-----------------+ */
/* tile 0 |IspLibrary | */
/* | | */
/* tile 1 | | */
/* | | */
/* tile 2 | | */
/* | | */
/* tile 3 | | */
/* | | */
/* tile 4 | | */
/* | | */
/* tile 5 | | */
/* +-----------------+ */
/******************************/
ret_val = R_DK2_Load(&g_drp_simple_isp_colcal_3dnr_6[0], R_DK2_TILE_0, R_DK2_TILE_PATTERN_6, NULL,
&cb_drp_finish, &drp_lib_id[0]);
DRP_DRV_ASSERT(ret_val);
/************************/
/* Activate DRP Library */
/************************/
ret_val = R_DK2_Activate(drp_lib_id[TILE_0], 0);
DRP_DRV_ASSERT(ret_val);

/* convert to physical address */
R_MMU_VAtoPA((uint32_t)p_input_bufadr, &(param_isp.src)); /* Convert pointer to uint32_t */
R_MMU_VAtoPA((uint32_t)p_output_bufadr, &(param_isp.dst)); /* Convert pointer to uint32_t */


/* Initialize variables to be used in termination judgment of the DRP library */
drp_lib_status[TILE_0] = DRP_NOT_FINISH;

/*********************/
/* Start DRP Library */
/*********************/
ret_val = R_DK2_Start(drp_lib_id[TILE_0], (void *)&param_isp, sizeof(r_drp_simple_isp_colcal_3dnr_t));
DRP_DRV_ASSERT(ret_val);

/***************************************/
/* Wait until DRP processing is finish */
/***************************************/
while (drp_lib_status[TILE_0] == DRP_NOT_FINISH)
{
;
}
ret_val = R_DK2_Unload(drp_lib_id[TILE_0], &drp_lib_id[TILE_0]);
DRP_DRV_ASSERT(ret_val);
return ret_val;
}