1 /* 2 * bayernr_head_v1.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_BAYER_TNR_HEADER_V23_H__ 21 #define __CALIBDBV2_BAYER_TNR_HEADER_V23_H__ 22 23 #include "rk_aiq_comm.h" 24 25 // clang-format off 26 27 RKAIQ_BEGIN_DECLARE 28 29 ////////////////////////bayernr V23////////////////////////////////////// 30 typedef struct CalibDbV2_BayerTnrV23_C_ISO_s { 31 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 32 float iso; 33 34 // M4_ARRAY_DESC("lumapoint", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "[512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336]", M4_DIGIT(0), M4_DYNAMIC(0)) 35 int lumapoint[16]; 36 37 // M4_ARRAY_DESC("sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "32", M4_DIGIT(0), M4_DYNAMIC(0)) 38 int sigma[16]; 39 40 // M4_ARRAY_DESC("lumapoint2", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "[512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336]", M4_DIGIT(0), M4_DYNAMIC(0)) 41 int lumapoint2[16]; 42 43 // M4_ARRAY_DESC("lo_sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "32", M4_DIGIT(0), M4_DYNAMIC(0)) 44 int lo_sigma[16]; 45 46 // M4_ARRAY_DESC("hi_sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "256", M4_DIGIT(0), M4_DYNAMIC(0)) 47 int hi_sigma[16]; 48 49 } CalibDbV2_BayerTnrV23_C_ISO_t; 50 51 typedef struct CalibDbV2_BayerTnrV23_C_Set_s { 52 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 53 char *SNR_Mode; 54 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 55 char *Sensor_Mode; 56 // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list") 57 CalibDbV2_BayerTnrV23_C_ISO_t *Calib_ISO; 58 int Calib_ISO_len; 59 60 } CalibDbV2_BayerTnrV23_C_Set_t; 61 62 typedef struct CalibDbV2_BayerTnrV23_Calib_s { 63 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 64 CalibDbV2_BayerTnrV23_C_Set_t *Setting; 65 int Setting_len; 66 } CalibDbV2_BayerTnrV23_Calib_t; 67 68 69 typedef struct CalibDbV2_BayerTnrV23_T_ISO_s { 70 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 71 float iso; 72 73 // M4_BOOL_DESC("hi_enable", "1") 74 bool hi_enable; 75 76 // M4_BOOL_DESC("lo_med_en", "1") 77 bool lo_med_en; 78 // M4_BOOL_DESC("lo_gsbay_en", "1") 79 bool lo_gsbay_en; 80 // M4_BOOL_DESC("lo_gslum_en", "1") 81 bool lo_gslum_en; 82 // M4_BOOL_DESC("hi_med_en", "1") 83 bool hi_med_en; 84 // M4_BOOL_DESC("hi_gslum_en", "1") 85 bool hi_gslum_en; 86 87 // M4_BOOL_DESC("wgt_use_mode", "0") 88 bool wgt_use_mode; 89 // M4_BOOL_DESC("wgt_mge_mode", "1") 90 bool wgt_mge_mode; 91 // M4_BOOL_DESC("hi_guass", "0") 92 bool hi_guass; 93 // M4_BOOL_DESC("kl_guass", "0") 94 bool kl_guass; 95 96 // M4_BOOL_DESC("global_pk_en", "1") 97 bool global_pk_en; 98 // M4_NUMBER_DESC("global_pksq", "s32", M4_RANGE(0, 268435455), "1024", M4_DIGIT(0)) 99 int global_pksq; 100 101 // M4_NUMBER_DESC("lo_filter_strength", "f32", M4_RANGE(0, 16), "1.0", M4_DIGIT(2)) 102 float lo_filter_strength; 103 // M4_NUMBER_DESC("hi_filter_strength", "f32", M4_RANGE(0, 16), "1.0", M4_DIGIT(2)) 104 float hi_filter_strength; 105 106 107 // M4_NUMBER_DESC("lo_clipwgt", "f32", M4_RANGE(0, 1), "0.03215", M4_DIGIT(5)) 108 float lo_clipwgt; 109 110 // M4_NUMBER_DESC("soft_threshold_ratio", "f32", M4_RANGE(0, 1.0), "0.0", M4_DIGIT(2)) 111 float soft_threshold_ratio; 112 // M4_NUMBER_DESC("hi_wgt_comp", "f32", M4_RANGE(0, 1.0), "0.16", M4_DIGIT(2)) 113 float hi_wgt_comp; 114 115 // M4_NUMBER_DESC("hidif_th", "s32", M4_RANGE(0, 65535), "32767", M4_DIGIT(0)) 116 int hidif_th; 117 118 // M4_NUMBER_DESC("lo_filter_rat0", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 119 float lo_filter_rat0; 120 // M4_NUMBER_DESC("lo_filter_thed0", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 121 uint16_t lo_filter_thed0; 122 123 // M4_NUMBER_DESC("hi_filter_abs_ctrl", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 124 uint8_t hi_filter_abs_ctrl; 125 // M4_NUMBER_DESC("hi_filter_filt_bay", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 126 uint8_t hi_filter_filt_bay; 127 // M4_NUMBER_DESC("hi_filter_filt_avg", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 128 uint8_t hi_filter_filt_avg; 129 // M4_NUMBER_DESC("hi_filter_filt_mode", "u8", M4_RANGE(0, 4), "4", M4_DIGIT(0)) 130 uint8_t hi_filter_filt_mode; 131 132 // M4_NUMBER_DESC("hi_filter_rat0", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 133 float hi_filter_rat0; 134 // M4_NUMBER_DESC("hi_filter_thed0", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 135 uint16_t hi_filter_thed0; 136 // M4_NUMBER_DESC("hi_filter_rat1", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 137 float hi_filter_rat1; 138 // M4_NUMBER_DESC("hi_filter_thed1", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 139 uint16_t hi_filter_thed1; 140 141 142 143 144 // M4_NUMBER_DESC("guass_guide_coeff0", "u8", M4_RANGE(0, 63), "16", M4_DIGIT(0)) 145 uint8_t guass_guide_coeff0; 146 // M4_NUMBER_DESC("guass_guide_coeff1", "u8", M4_RANGE(0, 63), "8", M4_DIGIT(0)) 147 uint8_t guass_guide_coeff1; 148 // M4_NUMBER_DESC("guass_guide_coeff2", "u8", M4_RANGE(0, 63), "16", M4_DIGIT(0)) 149 uint8_t guass_guide_coeff2; 150 // M4_NUMBER_DESC("guass_guide_coeff3", "u8", M4_RANGE(0, 63), "8", M4_DIGIT(0)) 151 uint8_t guass_guide_coeff3; 152 153 154 } CalibDbV2_BayerTnrV23_T_ISO_t; 155 156 typedef struct CalibDbV2_BayerTnrV23_T_Set_s { 157 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 158 char *SNR_Mode; 159 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 160 char *Sensor_Mode; 161 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 162 CalibDbV2_BayerTnrV23_T_ISO_t *Tuning_ISO; 163 int Tuning_ISO_len; 164 } CalibDbV2_BayerTnrV23_T_Set_t; 165 166 typedef struct CalibDbV2_BayerTnrV23_Tuning_s { 167 // M4_BOOL_DESC("enable", "1") 168 bool enable; 169 // M4_NUMBER_DESC("thumbds_w", "u8", M4_RANGE(4, 8), "8", M4_DIGIT(0)) 170 uint8_t thumbds_w; 171 // M4_NUMBER_DESC("thumbds_h", "u8", M4_RANGE(4, 8), "4", M4_DIGIT(0)) 172 uint8_t thumbds_h; 173 // M4_BOOL_DESC("trans_en", "0") 174 bool trans_en; 175 // M4_BOOL_DESC("lo_enable", "1") 176 bool lo_enable; 177 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 178 CalibDbV2_BayerTnrV23_T_Set_t *Setting; 179 int Setting_len; 180 } CalibDbV2_BayerTnrV23_Tuning_t; 181 182 // for isp32 lite version 183 typedef struct CalibDbV2_BayerTnrV23L_T_ISO_s { 184 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 185 float iso; 186 187 // M4_BOOL_DESC("hi_enable", "1") 188 bool hi_enable; 189 190 #if 0 191 // M4_BOOL_DESC("lo_med_en", "1") 192 bool lo_med_en; 193 #endif 194 // M4_BOOL_DESC("lo_gsbay_en", "1") 195 bool lo_gsbay_en; 196 // M4_BOOL_DESC("lo_gslum_en", "1") 197 bool lo_gslum_en; 198 #if 0 199 // M4_BOOL_DESC("hi_med_en", "1") 200 bool hi_med_en; 201 #endif 202 203 // M4_BOOL_DESC("hi_gslum_en", "1") 204 bool hi_gslum_en; 205 206 // M4_BOOL_DESC("wgt_use_mode", "0") 207 bool wgt_use_mode; 208 // M4_BOOL_DESC("wgt_mge_mode", "1") 209 bool wgt_mge_mode; 210 #if 0 211 // M4_BOOL_DESC("hi_guass", "0") 212 bool hi_guass; 213 // M4_BOOL_DESC("kl_guass", "0") 214 bool kl_guass; 215 #endif 216 217 // M4_BOOL_DESC("global_pk_en", "1") 218 bool global_pk_en; 219 // M4_NUMBER_DESC("global_pksq", "s32", M4_RANGE(0, 268435455), "1024", M4_DIGIT(0)) 220 int global_pksq; 221 222 // M4_NUMBER_DESC("lo_filter_strength", "f32", M4_RANGE(0, 16), "1.0", M4_DIGIT(2)) 223 float lo_filter_strength; 224 // M4_NUMBER_DESC("hi_filter_strength", "f32", M4_RANGE(0, 16), "1.0", M4_DIGIT(2)) 225 float hi_filter_strength; 226 227 // M4_NUMBER_DESC("lo_clipwgt", "f32", M4_RANGE(0, 1), "0.03215", M4_DIGIT(5)) 228 float lo_clipwgt; 229 230 // M4_NUMBER_DESC("soft_threshold_ratio", "f32", M4_RANGE(0, 1.0), "0.0", M4_DIGIT(2)) 231 float soft_threshold_ratio; 232 // M4_NUMBER_DESC("hi_wgt_comp", "f32", M4_RANGE(0, 1.0), "0.16", M4_DIGIT(2)) 233 float hi_wgt_comp; 234 235 // M4_NUMBER_DESC("hidif_th", "s32", M4_RANGE(0, 65535), "32767", M4_DIGIT(0)) 236 int hidif_th; 237 238 // M4_NUMBER_DESC("lo_filter_rat0", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 239 float lo_filter_rat0; 240 // M4_NUMBER_DESC("lo_filter_thed0", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 241 uint16_t lo_filter_thed0; 242 243 // M4_NUMBER_DESC("hi_filter_abs_ctrl", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 244 uint8_t hi_filter_abs_ctrl; 245 #if 0 246 // M4_NUMBER_DESC("hi_filter_filt_bay", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 247 uint8_t hi_filter_filt_bay; 248 // M4_NUMBER_DESC("hi_filter_filt_avg", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0)) 249 uint8_t hi_filter_filt_avg; 250 // M4_NUMBER_DESC("hi_filter_filt_mode", "u8", M4_RANGE(0, 4), "4", M4_DIGIT(0)) 251 uint8_t hi_filter_filt_mode; 252 #endif 253 254 // isp32 lite new param 255 #if 1 256 // M4_BOOL_DESC("wgtmm_opt_en", "0") 257 bool wgtmm_opt_en; 258 // M4_BOOL_DESC("wgtmm_sel_en", "0") 259 bool wgtmm_sel_en; 260 // M4_NUMBER_DESC("wgtmin", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(3)) 261 float wgtmin; 262 #endif 263 264 // M4_NUMBER_DESC("hi_filter_rat0", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 265 float hi_filter_rat0; 266 // M4_NUMBER_DESC("hi_filter_thed0", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 267 uint16_t hi_filter_thed0; 268 // M4_NUMBER_DESC("hi_filter_rat1", "f32", M4_RANGE(0, 16), "0", M4_DIGIT(2)) 269 float hi_filter_rat1; 270 // M4_NUMBER_DESC("hi_filter_thed1", "u16", M4_RANGE(0, 4095), "1024", M4_DIGIT(0)) 271 uint16_t hi_filter_thed1; 272 273 // M4_NUMBER_DESC("guass_guide_coeff0", "u8", M4_RANGE(0, 63), "16", M4_DIGIT(0)) 274 uint8_t guass_guide_coeff0; 275 // M4_NUMBER_DESC("guass_guide_coeff1", "u8", M4_RANGE(0, 63), "8", M4_DIGIT(0)) 276 uint8_t guass_guide_coeff1; 277 // M4_NUMBER_DESC("guass_guide_coeff2", "u8", M4_RANGE(0, 63), "4", M4_DIGIT(0)) 278 uint8_t guass_guide_coeff2; 279 #if 0 280 // M4_NUMBER_DESC("guass_guide_coeff3", "u8", M4_RANGE(0, 63), "0", M4_DIGIT(0)) 281 uint8_t guass_guide_coeff3; 282 #endif 283 284 } CalibDbV2_BayerTnrV23L_T_ISO_t; 285 286 typedef struct CalibDbV2_BayerTnrV23L_T_Set_s { 287 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0),"index1") 288 char* SNR_Mode; 289 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 290 char* Sensor_Mode; 291 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 292 CalibDbV2_BayerTnrV23L_T_ISO_t* Tuning_ISO; 293 int Tuning_ISO_len; 294 } CalibDbV2_BayerTnrV23L_T_Set_t; 295 296 typedef struct CalibDbV2_BayerTnrV23L_Tuning_s { 297 // M4_BOOL_DESC("enable", "1") 298 bool enable; 299 // M4_NUMBER_DESC("thumbds_w", "u8", M4_RANGE(4, 8), "8", M4_DIGIT(0)) 300 uint8_t thumbds_w; 301 // M4_NUMBER_DESC("thumbds_h", "u8", M4_RANGE(4, 8), "4", M4_DIGIT(0)) 302 uint8_t thumbds_h; 303 // M4_BOOL_DESC("trans_en", "1") 304 bool trans_en; 305 // M4_BOOL_DESC("lo_enable", "1") 306 bool lo_enable; 307 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 308 CalibDbV2_BayerTnrV23L_T_Set_t* Setting; 309 int Setting_len; 310 } CalibDbV2_BayerTnrV23L_Tuning_t; 311 312 typedef struct CalibDbV2_BayerTnrV23_s { 313 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V23_LITE", M4_DYNAMIC(0)) 314 char* Version; 315 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 316 CalibDbV2_BayerTnrV23_Calib_t CalibPara; 317 // M4_STRUCT_DESC("Bayernr3D", "normal_ui_style") 318 CalibDbV2_BayerTnrV23_Tuning_t TuningPara; 319 } CalibDbV2_BayerTnrV23_t; 320 321 typedef struct CalibDbV2_BayerTnrV23Lite_s { 322 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V23_LITE", M4_DYNAMIC(0)) 323 char* Version; 324 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 325 CalibDbV2_BayerTnrV23_Calib_t CalibPara; 326 // M4_STRUCT_DESC("Bayernr3D_LITE", "normal_ui_style") 327 CalibDbV2_BayerTnrV23L_Tuning_t TuningPara; 328 } CalibDbV2_BayerTnrV23Lite_t; 329 330 331 RKAIQ_END_DECLARE 332 // clang-format on 333 334 #endif 335