1 /* 2 * adehaze_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_ADEHAZE_HEAD_H__ 21 #define __CALIBDBV2_ADEHAZE_HEAD_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 #define DHAZ_ENHANCE_CURVE_KNOTS_NUM 17 28 #define DHAZ_V11_SIGMA_IDX_NUM 15 29 #define DHAZ_V11_SIGMA_LUT_NUM 17 30 #define DHAZ_CTRL_DATA_STEP_MAX 13 31 #define DHAZ_V12_HIST_WR_CURVE_NUM 17 32 33 // dehaze v10 34 typedef enum CtrlDataType_e { 35 CTRLDATATYPE_ENVLV = 0, 36 CTRLDATATYPE_ISO = 1, 37 } CtrlDataType_t; 38 39 typedef struct DehazeData_s { 40 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 41 float* CtrlData; 42 int CtrlData_len; 43 // M4_ARRAY_DESC("dc_min_th", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "64",M4_DIGIT(4), M4_DYNAMIC(1)) 44 float* dc_min_th; 45 int dc_min_th_len; 46 // M4_ARRAY_DESC("dc_max_th", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "192",M4_DIGIT(4), M4_DYNAMIC(1)) 47 float* dc_max_th; 48 int dc_max_th_len; 49 // M4_ARRAY_DESC("yhist_th", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "249",M4_DIGIT(4), M4_DYNAMIC(1)) 50 float* yhist_th; 51 int yhist_th_len; 52 // M4_ARRAY_DESC("yblk_th", "f32", M4_SIZE(1,100), M4_RANGE(0,512), "0.002",M4_DIGIT(4), M4_DYNAMIC(1)) 53 float* yblk_th; 54 int yblk_th_len; 55 // M4_ARRAY_DESC("dark_th", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "250",M4_DIGIT(4), M4_DYNAMIC(1)) 56 float* dark_th; 57 int dark_th_len; 58 // M4_ARRAY_DESC("bright_min", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "180",M4_DIGIT(4), M4_DYNAMIC(1)) 59 float* bright_min; 60 int bright_min_len; 61 // M4_ARRAY_DESC("bright_max", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "240",M4_DIGIT(4), M4_DYNAMIC(1)) 62 float* bright_max; 63 int bright_max_len; 64 // M4_ARRAY_DESC("wt_max", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.9",M4_DIGIT(4), M4_DYNAMIC(1)) 65 float* wt_max; 66 int wt_max_len; 67 // M4_ARRAY_DESC("air_min", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "200",M4_DIGIT(4), M4_DYNAMIC(1)) 68 float* air_min; 69 int air_min_len; 70 // M4_ARRAY_DESC("air_max", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "250",M4_DIGIT(4), M4_DYNAMIC(1)) 71 float* air_max; 72 int air_max_len; 73 // M4_ARRAY_DESC("tmax_base", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "125",M4_DIGIT(4), M4_DYNAMIC(1)) 74 float* tmax_base; 75 int tmax_base_len; 76 // M4_ARRAY_DESC("tmax_off", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.1",M4_DIGIT(4), M4_DYNAMIC(1)) 77 float* tmax_off; 78 int tmax_off_len; 79 // M4_ARRAY_DESC("tmax_max", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.8",M4_DIGIT(4), M4_DYNAMIC(1)) 80 float* tmax_max; 81 int tmax_max_len; 82 // M4_ARRAY_DESC("cfg_wt", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.8",M4_DIGIT(4), M4_DYNAMIC(1)) 83 float* cfg_wt; 84 int cfg_wt_len; 85 // M4_ARRAY_DESC("cfg_air", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "210",M4_DIGIT(4), M4_DYNAMIC(1)) 86 float* cfg_air; 87 int cfg_air_len; 88 // M4_ARRAY_DESC("cfg_tmax", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.2",M4_DIGIT(4), M4_DYNAMIC(1)) 89 float* cfg_tmax; 90 int cfg_tmax_len; 91 // M4_ARRAY_DESC("dc_thed", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "2",M4_DIGIT(4), M4_DYNAMIC(1)) 92 float* dc_thed; 93 int dc_thed_len; 94 // M4_ARRAY_DESC("dc_weitcur", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 95 float* dc_weitcur; 96 int dc_weitcur_len; 97 // M4_ARRAY_DESC("air_thed", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "2",M4_DIGIT(4), M4_DYNAMIC(1)) 98 float* air_thed; 99 int air_thed_len; 100 // M4_ARRAY_DESC("air_weitcur", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.14",M4_DIGIT(4), M4_DYNAMIC(1)) 101 float* air_weitcur; 102 int air_weitcur_len; 103 } DehazeData_t; 104 105 typedef struct Dehaze_Setting_V10_s { 106 // M4_BOOL_DESC("en", "1") 107 bool en; 108 // M4_NUMBER_DESC("stab_fnum", "f32", M4_RANGE(0,31), "8", M4_DIGIT(0)) 109 float stab_fnum; 110 // M4_NUMBER_DESC("sigma", "f32", M4_RANGE(1,255), "255", M4_DIGIT(0)) 111 float sigma; 112 // M4_NUMBER_DESC("wt_sigma", "f32", M4_RANGE(0,256), "8.0", M4_DIGIT(4)) 113 float wt_sigma; 114 // M4_NUMBER_DESC("air_sigma", "f32", M4_RANGE(4,1024), "120.0", M4_DIGIT(4)) 115 float air_sigma; 116 // M4_NUMBER_DESC("tmax_sigma", "f32", M4_RANGE(0.0004,1), "0.0100", M4_DIGIT(4)) 117 float tmax_sigma; 118 // M4_ARRAY_TABLE_DESC("DehazeData", "array_table_ui", "none") 119 DehazeData_t DehazeData; 120 } Dehaze_Setting_V10_t; 121 122 typedef struct EnhanceData_s { 123 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 124 float* CtrlData; 125 int CtrlData_len; 126 // M4_ARRAY_DESC("enhance_value", "f32", M4_SIZE(1,100), M4_RANGE(1,16), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 127 float* enhance_value; 128 int enhance_value_len; 129 } EnhanceData_t; 130 131 typedef struct Enhance_Setting_V10_s { 132 // M4_BOOL_DESC("en", "1") 133 bool en; 134 // M4_ARRAY_TABLE_DESC("EnhanceData", "array_table_ui", "none") 135 EnhanceData_t EnhanceData; 136 } Enhance_Setting_V10_t; 137 138 typedef struct HistData_s { 139 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 140 float* CtrlData; 141 int CtrlData_len; 142 // M4_ARRAY_DESC("hist_gratio", "f32", M4_SIZE(1,100), M4_RANGE(0,32), "2",M4_DIGIT(4), M4_DYNAMIC(1)) 143 float* hist_gratio; 144 int hist_gratio_len; 145 // M4_ARRAY_DESC("hist_th_off", "f32", M4_SIZE(1,100), M4_RANGE(0,255), "64",M4_DIGIT(4), M4_DYNAMIC(1)) 146 float* hist_th_off; 147 int hist_th_off_len; 148 // M4_ARRAY_DESC("hist_k", "f32", M4_SIZE(1,100), M4_RANGE(0,8), "2",M4_DIGIT(4), M4_DYNAMIC(1)) 149 float* hist_k; 150 int hist_k_len; 151 // M4_ARRAY_DESC("hist_min", "f32", M4_SIZE(1,100), M4_RANGE(0,2), "0.016",M4_DIGIT(4), M4_DYNAMIC(1)) 152 float* hist_min; 153 int hist_min_len; 154 // M4_ARRAY_DESC("hist_scale", "f32", M4_SIZE(1,100), M4_RANGE(0,32), "0.09",M4_DIGIT(4), M4_DYNAMIC(1)) 155 float* hist_scale; 156 int hist_scale_len; 157 // M4_ARRAY_DESC("cfg_gratio", "f32", M4_SIZE(1,100), M4_RANGE(0,32), "2",M4_DIGIT(4), M4_DYNAMIC(1)) 158 float* cfg_gratio; 159 int cfg_gratio_len; 160 } HistData_t; 161 162 typedef struct Hist_setting_V10_s { 163 // M4_BOOL_DESC("en", "1") 164 bool en; 165 // M4_BOOL_DESC("hist_para_en", "1") 166 bool hist_para_en; 167 // M4_BOOL_DESC("hist_channel", "1") 168 bool hist_channel; 169 // M4_ARRAY_TABLE_DESC("HistData", "array_table_ui","none") 170 HistData_t HistData; 171 } Hist_setting_V10_t; 172 173 typedef struct CalibDbDehazeV10_s { 174 // M4_BOOL_DESC("Enable", "1") 175 bool Enable; 176 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 177 CtrlDataType_t CtrlDataType; 178 // M4_NUMBER_DESC("cfg_alpha", "f32", M4_RANGE(0,1), "1", M4_DIGIT(4)) 179 float cfg_alpha; 180 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 181 float ByPassThr; 182 // M4_STRUCT_DESC("dehaze_setting", "normal_ui_style") 183 Dehaze_Setting_V10_t dehaze_setting; 184 // M4_STRUCT_DESC("enhance_setting", "normal_ui_style") 185 Enhance_Setting_V10_t enhance_setting; 186 // M4_STRUCT_DESC("hist_setting", "normal_ui_style") 187 Hist_setting_V10_t hist_setting; 188 } CalibDbDehazeV10_t; 189 190 typedef struct CalibDbV2_dehaze_v10_s { 191 // M4_STRUCT_DESC("DehazeTuningPara", "normal_ui_style") 192 CalibDbDehazeV10_t DehazeTuningPara; 193 } CalibDbV2_dehaze_v10_t; 194 195 // dehaze v11 196 typedef struct DehazeDataV11_s { 197 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 198 float CtrlData[DHAZ_CTRL_DATA_STEP_MAX]; 199 // M4_ARRAY_DESC("dc_min_th", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 200 float dc_min_th[DHAZ_CTRL_DATA_STEP_MAX]; 201 // M4_ARRAY_DESC("dc_max_th", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 202 float dc_max_th[DHAZ_CTRL_DATA_STEP_MAX]; 203 // M4_ARRAY_DESC("yhist_th", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 204 float yhist_th[DHAZ_CTRL_DATA_STEP_MAX]; 205 // M4_ARRAY_DESC("yblk_th", "f32", M4_SIZE(1,13), M4_RANGE(0,512), "[0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 206 float yblk_th[DHAZ_CTRL_DATA_STEP_MAX]; 207 // M4_ARRAY_DESC("dark_th", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[250, 250, 250, 250, 250, 250, 250, 250, 250 250, 250, 250, 250]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 208 float dark_th[DHAZ_CTRL_DATA_STEP_MAX]; 209 // M4_ARRAY_DESC("bright_min", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 210 float bright_min[DHAZ_CTRL_DATA_STEP_MAX]; 211 // M4_ARRAY_DESC("bright_max", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 212 float bright_max[DHAZ_CTRL_DATA_STEP_MAX]; 213 // M4_ARRAY_DESC("wt_max", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 214 float wt_max[DHAZ_CTRL_DATA_STEP_MAX]; 215 // M4_ARRAY_DESC("air_min", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 216 float air_min[DHAZ_CTRL_DATA_STEP_MAX]; 217 // M4_ARRAY_DESC("air_max", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 218 float air_max[DHAZ_CTRL_DATA_STEP_MAX]; 219 // M4_ARRAY_DESC("tmax_base", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 220 float tmax_base[DHAZ_CTRL_DATA_STEP_MAX]; 221 // M4_ARRAY_DESC("tmax_off", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 222 float tmax_off[DHAZ_CTRL_DATA_STEP_MAX]; 223 // M4_ARRAY_DESC("tmax_max", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 224 float tmax_max[DHAZ_CTRL_DATA_STEP_MAX]; 225 // M4_ARRAY_DESC("cfg_wt", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 226 float cfg_wt[DHAZ_CTRL_DATA_STEP_MAX]; 227 // M4_ARRAY_DESC("cfg_air", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 228 float cfg_air[DHAZ_CTRL_DATA_STEP_MAX]; 229 // M4_ARRAY_DESC("cfg_tmax", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 230 float cfg_tmax[DHAZ_CTRL_DATA_STEP_MAX]; 231 // M4_ARRAY_DESC("dc_weitcur", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 232 float dc_weitcur[DHAZ_CTRL_DATA_STEP_MAX]; 233 // M4_ARRAY_DESC("bf_weight", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 234 float bf_weight[DHAZ_CTRL_DATA_STEP_MAX]; 235 // M4_ARRAY_DESC("range_sigma", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 236 float range_sigma[DHAZ_CTRL_DATA_STEP_MAX]; 237 // M4_ARRAY_DESC("space_sigma_pre", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 238 float space_sigma_pre[DHAZ_CTRL_DATA_STEP_MAX]; 239 // M4_ARRAY_DESC("space_sigma_cur", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 240 float space_sigma_cur[DHAZ_CTRL_DATA_STEP_MAX]; 241 } DehazeDataV11_t; 242 243 typedef struct Dehaze_Setting_V11_s { 244 // M4_BOOL_DESC("en", "1") 245 bool en; 246 // M4_BOOL_DESC("air_lc_en", "1") 247 bool air_lc_en; 248 // M4_NUMBER_DESC("stab_fnum", "f32", M4_RANGE(0,31), "8.0", M4_DIGIT(0)) 249 float stab_fnum; 250 // M4_NUMBER_DESC("sigma", "f32", M4_RANGE(1,255), "6.0", M4_DIGIT(0)) 251 float sigma; 252 // M4_NUMBER_DESC("wt_sigma", "f32", M4_RANGE(0,256), "8.0", M4_DIGIT(4)) 253 float wt_sigma; 254 // M4_NUMBER_DESC("air_sigma", "f32", M4_RANGE(4,1024), "120.0", M4_DIGIT(4)) 255 float air_sigma; 256 // M4_NUMBER_DESC("tmax_sigma", "f32", M4_RANGE(0.0004,1), "0.0100", M4_DIGIT(4)) 257 float tmax_sigma; 258 // M4_NUMBER_DESC("pre_wet", "f32", M4_RANGE(0,16), "8", M4_DIGIT(0)) 259 float pre_wet; 260 // M4_ARRAY_TABLE_DESC("DehazeData", "array_table_ui", "none") 261 DehazeDataV11_t DehazeData; 262 } Dehaze_Setting_V11_t; 263 264 typedef struct EnhanceDataV11_s { 265 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 266 float CtrlData[DHAZ_CTRL_DATA_STEP_MAX]; 267 // M4_ARRAY_DESC("enhance_value", "f32", M4_SIZE(1,13), M4_RANGE(1,16), "[1,1,1,1,1,1,1,1,1,1,1,1,1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 268 float enhance_value[DHAZ_CTRL_DATA_STEP_MAX]; 269 // M4_ARRAY_DESC("enhance_chroma", "f32", M4_SIZE(1,13), M4_RANGE(1,16), "[1,1,1,1,1,1,1,1,1,1,1,1,1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 270 float enhance_chroma[DHAZ_CTRL_DATA_STEP_MAX]; 271 } EnhanceDataV11_t; 272 273 typedef struct Enhance_Setting_V11_s { 274 // M4_BOOL_DESC("en", "1") 275 bool en; 276 // M4_ARRAY_DESC("enhance_curve", "f32", M4_SIZE(1,17), M4_RANGE(0, 1024), "[0,64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1023]", M4_DIGIT(0), M4_DYNAMIC(0)) 277 float enhance_curve[DHAZ_ENHANCE_CURVE_KNOTS_NUM]; 278 // M4_ARRAY_TABLE_DESC("EnhanceData", "array_table_ui", "none") 279 EnhanceDataV11_t EnhanceData; 280 } Enhance_Setting_V11_t; 281 282 typedef struct HistDataV11_s { 283 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 284 float CtrlData[DHAZ_CTRL_DATA_STEP_MAX]; 285 // M4_ARRAY_DESC("hist_gratio", "f32", M4_SIZE(1,13), M4_RANGE(0,32), "[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 286 float hist_gratio[DHAZ_CTRL_DATA_STEP_MAX]; 287 // M4_ARRAY_DESC("hist_th_off", "f32", M4_SIZE(1,13), M4_RANGE(0,255), "[64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 288 float hist_th_off[DHAZ_CTRL_DATA_STEP_MAX]; 289 // M4_ARRAY_DESC("hist_k", "f32", M4_SIZE(1,13), M4_RANGE(0,8), "[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 290 float hist_k[DHAZ_CTRL_DATA_STEP_MAX]; 291 // M4_ARRAY_DESC("hist_min", "f32", M4_SIZE(1,13), M4_RANGE(0,2), "[0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 292 float hist_min[DHAZ_CTRL_DATA_STEP_MAX]; 293 // M4_ARRAY_DESC("hist_scale", "f32", M4_SIZE(1,13), M4_RANGE(0,32), "[0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 294 float hist_scale[DHAZ_CTRL_DATA_STEP_MAX]; 295 // M4_ARRAY_DESC("cfg_gratio", "f32", M4_SIZE(1,13), M4_RANGE(0,32), "[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 296 float cfg_gratio[DHAZ_CTRL_DATA_STEP_MAX]; 297 } HistDataV11_t; 298 299 typedef struct Hist_setting_V11_s { 300 // M4_BOOL_DESC("en", "1") 301 bool en; 302 // M4_BOOL_DESC("hist_para_en", "1") 303 bool hist_para_en; 304 // M4_ARRAY_TABLE_DESC("HistData", "array_table_ui","none") 305 HistDataV11_t HistData; 306 } Hist_setting_V11_t; 307 308 typedef struct CalibDbDehazeV11_s { 309 // M4_BOOL_DESC("en", "1") 310 bool Enable; 311 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 312 CtrlDataType_t CtrlDataType; 313 // M4_NUMBER_DESC("cfg_alpha", "f32", M4_RANGE(0,1), "1", M4_DIGIT(4)) 314 float cfg_alpha; 315 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 316 float ByPassThr; 317 // M4_STRUCT_DESC("dehaze_setting", "normal_ui_style") 318 Dehaze_Setting_V11_t dehaze_setting; 319 // M4_STRUCT_DESC("enhance_setting", "normal_ui_style") 320 Enhance_Setting_V11_t enhance_setting; 321 // M4_STRUCT_DESC("hist_setting", "normal_ui_style") 322 Hist_setting_V11_t hist_setting; 323 } CalibDbDehazeV11_t; 324 325 typedef struct CalibDbV2_dehaze_v11_s { 326 // M4_STRUCT_DESC("DehazeTuningPara", "normal_ui_style") 327 CalibDbDehazeV11_t DehazeTuningPara; 328 } CalibDbV2_dehaze_v11_t; 329 330 // dehaze v12 331 typedef struct EnhanceDataV12_s { 332 // M4_NUMBER_MARK_DESC("CtrlData", "f32", M4_RANGE(0,1000000000), "0", M4_DIGIT(4), "index1") 333 float CtrlData; 334 // M4_ARRAY_MARK_DESC("enhance_curve", "f32", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1023]", M4_DIGIT(0), M4_DYNAMIC(0), 0) 335 float enhance_curve[DHAZ_ENHANCE_CURVE_KNOTS_NUM]; 336 // M4_ARRAY_MARK_DESC("enh_luma", "f32", M4_SIZE(1,17), M4_RANGE(0, 16), "[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]", M4_DIGIT(2), M4_DYNAMIC(0), 0) 337 float enh_luma[DHAZ_ENHANCE_CURVE_KNOTS_NUM]; 338 // M4_NUMBER_DESC("enhance_value", "f32", M4_RANGE(0,16), "1", M4_DIGIT(4)) 339 float enhance_value; 340 // M4_NUMBER_DESC("enhance_chroma", "f32", M4_RANGE(0,16), "1", M4_DIGIT(4)) 341 float enhance_chroma; 342 } EnhanceDataV12_t; 343 344 typedef struct Enhance_Setting_V12_s { 345 // M4_BOOL_DESC("en", "1") 346 bool en; 347 // M4_BOOL_DESC("color_deviate_en", "0") 348 bool color_deviate_en; 349 // M4_BOOL_DESC("enh_luma_en", "0") 350 bool enh_luma_en; 351 // M4_STRUCT_LIST_DESC("EnhanceData", M4_SIZE(1,13), "normal_ui_style") 352 EnhanceDataV12_t EnhanceData[DHAZ_CTRL_DATA_STEP_MAX]; 353 } Enhance_Setting_V12_t; 354 355 typedef enum HistWrMode_e { 356 HIST_WR_AUTO = 0, 357 HIST_WR_MANUAL = 1, 358 HIST_WR_SEMIAUTO = 2, 359 } HistWrMode_t; 360 361 typedef struct Manual_curve_s { 362 // M4_NUMBER_MARK_DESC("CtrlData", "f32", M4_RANGE(0,1000000000), "0", M4_DIGIT(4), "index1") 363 float CtrlData; 364 // M4_ARRAY_MARK_DESC("curve_x", "u32", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1023]", M4_DIGIT(0), M4_DYNAMIC(0), 0) 365 int curve_x[DHAZ_V12_HIST_WR_CURVE_NUM]; 366 // M4_ARRAY_MARK_DESC("curve_y", "u32", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1023]", M4_DIGIT(0), M4_DYNAMIC(0), 0) 367 int curve_y[DHAZ_V12_HIST_WR_CURVE_NUM]; 368 } Manual_curve_t; 369 370 typedef struct hist_wr_semiauto_s { 371 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 372 float CtrlData[DHAZ_CTRL_DATA_STEP_MAX]; 373 // M4_ARRAY_DESC("clim0", "f32", M4_SIZE(1,13), M4_RANGE(0.1,32), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 374 float clim0[DHAZ_CTRL_DATA_STEP_MAX]; 375 // M4_ARRAY_DESC("clim1", "f32", M4_SIZE(1,13), M4_RANGE(0.1,32), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 376 float clim1[DHAZ_CTRL_DATA_STEP_MAX]; 377 // M4_ARRAY_DESC("dark_th", "f32", M4_SIZE(1,13), M4_RANGE(0,1023), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(0), M4_DYNAMIC(0), 0) 378 float dark_th[DHAZ_CTRL_DATA_STEP_MAX]; 379 } hist_wr_semiauto_t; 380 381 typedef struct HistWr_s { 382 // M4_ENUM_DESC("mode", "HistWrMode_t", "HIST_WR_MANUAL") 383 HistWrMode_t mode; 384 // M4_STRUCT_LIST_DESC("manual_curve", M4_SIZE(1,13), "normal_ui_style") 385 Manual_curve_t manual_curve[DHAZ_CTRL_DATA_STEP_MAX]; 386 // M4_ARRAY_TABLE_DESC("semiauto_curve", "array_table_ui","none") 387 hist_wr_semiauto_t semiauto_curve; 388 } HistWr_t; 389 390 typedef struct Hist_setting_V12_s { 391 // M4_BOOL_DESC("en", "1") 392 bool en; 393 // M4_BOOL_DESC("hist_para_en", "1") 394 bool hist_para_en; 395 // M4_STRUCT_DESC("hist_wr", "normal_ui_style") 396 HistWr_t hist_wr; 397 // M4_ARRAY_TABLE_DESC("HistData", "array_table_ui","none") 398 HistDataV11_t HistData; 399 } Hist_setting_V12_t; 400 401 typedef struct CalibDbDehazeV12_s { 402 // M4_BOOL_DESC("en", "1") 403 bool Enable; 404 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 405 CtrlDataType_t CtrlDataType; 406 // M4_NUMBER_DESC("cfg_alpha", "f32", M4_RANGE(0,1), "1", M4_DIGIT(4)) 407 float cfg_alpha; 408 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 409 float ByPassThr; 410 // M4_STRUCT_DESC("dehaze_setting", "normal_ui_style") 411 Dehaze_Setting_V11_t dehaze_setting; 412 // M4_STRUCT_DESC("enhance_setting", "normal_ui_style") 413 Enhance_Setting_V12_t enhance_setting; 414 // M4_STRUCT_DESC("hist_setting", "normal_ui_style") 415 Hist_setting_V12_t hist_setting; 416 } CalibDbDehazeV12_t; 417 418 typedef struct CalibDbV2_dehaze_v12_s { 419 // M4_STRUCT_DESC("DehazeTuningPara", "normal_ui_style") 420 CalibDbDehazeV12_t DehazeTuningPara; 421 } CalibDbV2_dehaze_v12_t; 422 423 RKAIQ_END_DECLARE 424 425 #endif 426