change(isp): added lut table depth check

This commit is contained in:
armando
2026-03-30 06:22:45 +00:00
committed by Armando (Dou Yiwen)
parent 3cc4eea14e
commit 2c29cfaca2
2 changed files with 21 additions and 13 deletions
+1
View File
@@ -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_x = ISP_LSC_GET_GRIDS(isp_proc->h_res);
int num_grids_y = ISP_LSC_GET_GRIDS(isp_proc->v_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_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"); 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); 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);
+20 -13
View File
@@ -106,13 +106,6 @@ extern "C" {
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
#define ISP_LL_BF_DEFAULT_TEMPLATE_VAL 15 #define ISP_LL_BF_DEFAULT_TEMPLATE_VAL 15
/*---------------------------------------------------------------
DVP
---------------------------------------------------------------*/
#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 Color
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
@@ -122,12 +115,6 @@ extern "C" {
#define ISP_LL_COLOR_BRIGNTNESS_MIN -128 #define ISP_LL_COLOR_BRIGNTNESS_MIN -128
#define ISP_LL_COLOR_BRIGNTNESS_MAX 127 #define ISP_LL_COLOR_BRIGNTNESS_MAX 127
/*---------------------------------------------------------------
LSC
---------------------------------------------------------------*/
#define ISP_LL_LSC_GRID_HEIGHT 32
#define ISP_LL_LSC_GRID_WIDTH 32
/*--------------------------------------------------------------- /*---------------------------------------------------------------
CCM CCM
---------------------------------------------------------------*/ ---------------------------------------------------------------*/
@@ -140,6 +127,26 @@ extern "C" {
#endif #endif
#define ISP_LL_CCM_MATRIX_TOT_BITS (ISP_LL_CCM_MATRIX_INT_BITS + ISP_LL_CCM_MATRIX_FRAC_BITS + 1) // including one sign bit #define ISP_LL_CCM_MATRIX_TOT_BITS (ISP_LL_CCM_MATRIX_INT_BITS + ISP_LL_CCM_MATRIX_FRAC_BITS + 1) // including one sign bit
/*---------------------------------------------------------------
DVP
---------------------------------------------------------------*/
#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 { typedef union {
struct { struct {
uint32_t fraction: ISP_LL_AWB_RGB_RATIO_FRAC_BITS; uint32_t fraction: ISP_LL_AWB_RGB_RATIO_FRAC_BITS;