1 /* 2 * alsc_head.h 3 * 4 * Copyright (c) 2021 Rockchip Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 */ 19 20 #ifndef __CALIBDBV2_ALSC_HEAD_H__ 21 #define __CALIBDBV2_ALSC_HEAD_H__ 22 23 #include "rk_aiq_comm.h" 24 #include "alsc/rk_aiq_types_alsc_hw.h" 25 #include "alsc/rk_aiq_types_alsc_common.h" 26 27 RKAIQ_BEGIN_DECLARE 28 29 #ifndef CIFISP_LSC_SIZE_TBL_SIZE 30 #define CIFISP_LSC_SIZE_TBL_SIZE 8 31 #endif 32 #ifndef LSC_PROFILES_NUM_MAX 33 #define LSC_PROFILES_NUM_MAX 5 34 #endif 35 #ifndef LSC_SIZE_TBL_SIZE_V2X 36 #define LSC_SIZE_TBL_SIZE_V2X 8 37 #endif 38 typedef struct resolution_s { 39 char name[LSC_NAME]; 40 uint32_t width; 41 uint32_t height; 42 } resolution_t; 43 44 /** 45 * @brief illumination case in different <using case>, <resolution>, <color temperature> 46 */ 47 typedef struct CalibDbV2_AlscCof_ill_s { 48 // M4_NUMBER_DESC("usedForCase", "u32", M4_RANGE(0,100), "0", M4_DIGIT(0)) 49 uint32_t usedForCase; 50 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 32), "default", M4_DYNAMIC(0)) 51 char name[LSC_NAME]; 52 // M4_ARRAY_DESC("wbGain", "f32", M4_SIZE(1,2), M4_RANGE(0,10000), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 53 float wbGain[2]; 54 // M4_STRUCT_LIST_DESC("tableUsed", M4_SIZE_DYNAMIC, "normal_ui_style") 55 lsc_name_t* tableUsed; 56 int tableUsed_len; 57 // M4_ARRAY_DESC("gains", "f32", M4_SIZE(1,100), M4_RANGE(0,10000), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 58 float* gains; 59 int gains_len; 60 // M4_ARRAY_DESC("vig", "f32", M4_SIZE(1,100), M4_RANGE(0,100), "0", M4_DIGIT(2), M4_DYNAMIC(1)) 61 float* vig; 62 int vig_len; 63 } CalibDbV2_AlscCof_ill_t; 64 65 typedef struct CalibDbV2_Lsc_Resolution_s { 66 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 32), "default", M4_DYNAMIC(0)) 67 char name[LSC_NAME]; 68 #if defined(ISP_HW_V20) || defined(ISP_HW_V21) 69 // M4_ARRAY_DESC("lsc_sect_size_x", "u16", M4_SIZE(1,8), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 70 uint16_t lsc_sect_size_x[LSC_SIZE_TBL_SIZE_V2X]; 71 // M4_ARRAY_DESC("lsc_sect_size_y", "u16", M4_SIZE(1,8), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 72 uint16_t lsc_sect_size_y[LSC_SIZE_TBL_SIZE_V2X]; 73 #elif defined(ISP_HW_V30) || defined(ISP_HW_V32) || defined(ISP_HW_V32_LITE) 74 // M4_ARRAY_DESC("lsc_sect_size_x", "u16", M4_SIZE(1,16), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 75 uint16_t lsc_sect_size_x[LSC_SIZE_TBL_SIZE]; 76 // M4_ARRAY_DESC("lsc_sect_size_y", "u16", M4_SIZE(1,16), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 77 uint16_t lsc_sect_size_y[LSC_SIZE_TBL_SIZE]; 78 #else 79 #error "WRONG ISP_HW_VERSION, ONLY SUPPORT V20 AND V21 AND V3X NOW !" 80 #endif 81 } CalibDbV2_Lsc_Resolution_t; 82 83 typedef struct CalibDbV2_Lsc_Common_s { 84 // M4_BOOL_DESC("enable", "1") 85 bool enable; 86 // M4_STRUCT_LIST_DESC("resolutionAll", M4_SIZE_DYNAMIC, "normal_ui_style") 87 CalibDbV2_Lsc_Resolution_t* resolutionAll; 88 int resolutionAll_len; 89 } CalibDbV2_Lsc_Common_t; 90 91 typedef struct CalibDbV2_AlscCof_s { 92 // M4_BOOL_DESC("damp_enable", "1") 93 bool damp_enable; 94 // M4_STRUCT_LIST_DESC("illAll", M4_SIZE_DYNAMIC, "normal_ui_style") 95 CalibDbV2_AlscCof_ill_t* illAll; 96 int illAll_len; 97 } CalibDbV2_AlscCof_t; 98 99 typedef struct CalibDbV2_LscTable { 100 // M4_STRUCT_LIST_DESC("tableAll", M4_SIZE_DYNAMIC, "normal_ui_style") 101 CalibDbV2_LscTableProfile_t* tableAll; 102 int tableAll_len; 103 } CalibDbV2_LscTable_t; 104 105 typedef struct CalibDb_LscV2_s { 106 // M4_STRUCT_DESC("common", "normal_ui_style") 107 CalibDbV2_Lsc_Common_t common; 108 // M4_STRUCT_DESC("alscCoef", "normal_ui_style") 109 CalibDbV2_AlscCof_t alscCoef; 110 // M4_STRUCT_DESC("table_list", "normal_ui_style") 111 CalibDbV2_LscTable_t tbl; 112 } CalibDbV2_LSC_t; 113 114 RKAIQ_END_DECLARE 115 116 #endif 117