diff --git a/components/esp_driver_isp/src/isp_lsc.c b/components/esp_driver_isp/src/isp_lsc.c index 8ddf94126d..a8133cdbc1 100644 --- a/components/esp_driver_isp/src/isp_lsc.c +++ b/components/esp_driver_isp/src/isp_lsc.c @@ -35,6 +35,7 @@ esp_err_t esp_isp_lsc_allocate_gain_array(isp_proc_handle_t isp_proc, esp_isp_ls int num_grids_x = ISP_LSC_GET_GRIDS(isp_proc->h_res); int num_grids_y = ISP_LSC_GET_GRIDS(isp_proc->v_res); ESP_LOGD(TAG, "num_grids_x_max: %d, num_grids_x: %d, num_grids_y_max: %d, num_grids_y: %d", num_grids_x_max, num_grids_y_max, num_grids_x, num_grids_y); + ESP_RETURN_ON_FALSE(num_grids_x * num_grids_y <= ISP_LL_LUT_LSC_SIZE_MAX, ESP_ERR_INVALID_ARG, TAG, "invalid number of grids, max is %d, num_grids_x: %d, num_grids_y: %d", ISP_LL_LUT_LSC_SIZE_MAX, num_grids_x, num_grids_y); ESP_RETURN_ON_FALSE(num_grids_x <= num_grids_x_max && num_grids_y <= num_grids_y_max, ESP_ERR_INVALID_ARG, TAG, "invalid h_res or v_res"); gain_array->gain_r = (isp_lsc_gain_t *)heap_caps_calloc(1, num_grids_x * num_grids_y * sizeof(isp_lsc_gain_t), ISP_MEM_ALLOC_CAPS); diff --git a/components/esp_hal_cam/esp32p4/include/hal/isp_ll.h b/components/esp_hal_cam/esp32p4/include/hal/isp_ll.h index c1fb28f0c1..af73272f5a 100644 --- a/components/esp_hal_cam/esp32p4/include/hal/isp_ll.h +++ b/components/esp_hal_cam/esp32p4/include/hal/isp_ll.h @@ -121,15 +121,6 @@ extern "C" { ---------------------------------------------------------------*/ #define ISP_LL_BF_DEFAULT_TEMPLATE_VAL 15 -/*--------------------------------------------------------------- - DVP ----------------------------------------------------------------*/ -#define ISP_LL_DVP_CTLR_NUMS 1U -#define ISP_LL_DVP_DATA_WIDTH_MAX 16 -#define ISP_LL_DVP_DATA_TYPE_RAW8 0x2A -#define ISP_LL_DVP_DATA_TYPE_RAW10 0x2B -#define ISP_LL_DVP_DATA_TYPE_RAW12 0x2C - /*--------------------------------------------------------------- Color ---------------------------------------------------------------*/ @@ -139,12 +130,6 @@ extern "C" { #define ISP_LL_COLOR_BRIGNTNESS_MIN -128 #define ISP_LL_COLOR_BRIGNTNESS_MAX 127 -/*--------------------------------------------------------------- - LSC ----------------------------------------------------------------*/ -#define ISP_LL_LSC_GRID_HEIGHT 32 -#define ISP_LL_LSC_GRID_WIDTH 32 - /*--------------------------------------------------------------- CCM ---------------------------------------------------------------*/ @@ -162,6 +147,28 @@ extern "C" { ---------------------------------------------------------------*/ #define ISP_LL_HIST_CTLR_NUMS 1U +/*--------------------------------------------------------------- + DVP +---------------------------------------------------------------*/ +#define ISP_LL_DVP_CTLR_NUMS 1U +#define ISP_LL_DVP_DATA_WIDTH_MAX 16 +#define ISP_LL_DVP_DATA_TYPE_RAW8 0x2A +#define ISP_LL_DVP_DATA_TYPE_RAW10 0x2B +#define ISP_LL_DVP_DATA_TYPE_RAW12 0x2C + +/*--------------------------------------------------------------- + LSC +---------------------------------------------------------------*/ +#define ISP_LL_LSC_GRID_HEIGHT 32 +#define ISP_LL_LSC_GRID_WIDTH 32 + +/*--------------------------------------------------------------- + LUT +---------------------------------------------------------------*/ +#define ISP_LL_LUT_LSC_SIZE_MAX 560 +#define ISP_LL_LUT_DPC_SIZE_MAX 512 +#define ISP_LL_LUT_AWB_SIZE_MAX 104 + typedef union { struct { uint32_t fraction: ISP_LL_AWB_RGB_RATIO_FRAC_BITS;