1 /* 2 * adpcc_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_ADPCC_HEAD_H__ 21 #define __CALIBDBV2_ADPCC_HEAD_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 #define CALIBDB_ADPCC_KNOTS_NUM 13 28 #define CALIBDB_ADPCC_PDAF_KNOTS_NUM 16 29 30 typedef struct CalibDb_Dpcc_set_RK_V20_s { 31 // M4_ARRAY_DESC("RK_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 32 unsigned char RK_enable[CALIBDB_ADPCC_KNOTS_NUM]; 33 // M4_ARRAY_DESC("rb_sw_mindis", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 34 unsigned char rb_sw_mindis[CALIBDB_ADPCC_KNOTS_NUM]; 35 // M4_ARRAY_DESC("g_sw_mindis", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 36 unsigned char g_sw_mindis[CALIBDB_ADPCC_KNOTS_NUM]; 37 // M4_ARRAY_DESC("sw_dis_scale_min", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 38 unsigned char sw_dis_scale_min[CALIBDB_ADPCC_KNOTS_NUM]; 39 // M4_ARRAY_DESC("sw_dis_scale_max", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 40 unsigned char sw_dis_scale_max[CALIBDB_ADPCC_KNOTS_NUM]; 41 } CalibDb_Dpcc_set_RK_V20_t; 42 43 typedef struct CalibDb_Dpcc_set_LC_V20_s { 44 // M4_ARRAY_DESC("LC_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 45 unsigned char LC_enable[CALIBDB_ADPCC_KNOTS_NUM]; 46 // M4_ARRAY_DESC("rb_line_thr", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 47 unsigned char rb_line_thr[CALIBDB_ADPCC_KNOTS_NUM]; 48 // M4_ARRAY_DESC("g_line_thr", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 49 unsigned char g_line_thr[CALIBDB_ADPCC_KNOTS_NUM]; 50 // M4_ARRAY_DESC("rb_line_mad_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]", M4_DIGIT(0), M4_DYNAMIC(0)) 51 unsigned char rb_line_mad_fac[CALIBDB_ADPCC_KNOTS_NUM]; 52 // M4_ARRAY_DESC("g_line_mad_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]", M4_DIGIT(0), M4_DYNAMIC(0)) 53 unsigned char g_line_mad_fac[CALIBDB_ADPCC_KNOTS_NUM]; 54 } CalibDb_Dpcc_set_LC_V20_t; 55 56 typedef struct CalibDb_Dpcc_set_PG_V20_s { 57 // M4_ARRAY_DESC("PG_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 58 unsigned char PG_enable[CALIBDB_ADPCC_KNOTS_NUM]; 59 // M4_ARRAY_DESC("rb_pg_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]", M4_DIGIT(0), M4_DYNAMIC(0)) 60 unsigned char rb_pg_fac[CALIBDB_ADPCC_KNOTS_NUM]; 61 // M4_ARRAY_DESC("g_pg_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]", M4_DIGIT(0), M4_DYNAMIC(0)) 62 unsigned char g_pg_fac[CALIBDB_ADPCC_KNOTS_NUM]; 63 } CalibDb_Dpcc_set_PG_V20_t; 64 65 typedef struct CalibDb_Dpcc_set_RND_V20_s { 66 // M4_ARRAY_DESC("RND_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 67 unsigned char RND_enable[CALIBDB_ADPCC_KNOTS_NUM]; 68 // M4_ARRAY_DESC("rb_rnd_thr", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 69 unsigned char rb_rnd_thr[CALIBDB_ADPCC_KNOTS_NUM]; 70 // M4_ARRAY_DESC("g_rnd_thr", "u8", M4_SIZE(1,13), M4_RANGE(0, 255), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 71 unsigned char g_rnd_thr[CALIBDB_ADPCC_KNOTS_NUM]; 72 // M4_ARRAY_DESC("rb_rnd_offs", "u8", M4_SIZE(1,13), M4_RANGE(0, 3), "[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]", M4_DIGIT(0), M4_DYNAMIC(0)) 73 unsigned char rb_rnd_offs[CALIBDB_ADPCC_KNOTS_NUM]; 74 // M4_ARRAY_DESC("g_rnd_offs", "u8", M4_SIZE(1,13), M4_RANGE(0, 3), "[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]", M4_DIGIT(0), M4_DYNAMIC(0)) 75 unsigned char g_rnd_offs[CALIBDB_ADPCC_KNOTS_NUM]; 76 } CalibDb_Dpcc_set_RND_V20_t; 77 78 typedef struct CalibDb_Dpcc_set_RG_V20_s { 79 // M4_ARRAY_DESC("RG_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 80 unsigned char RG_enable[CALIBDB_ADPCC_KNOTS_NUM]; 81 // M4_ARRAY_DESC("rb_rg_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 82 unsigned char rb_rg_fac[CALIBDB_ADPCC_KNOTS_NUM]; 83 // M4_ARRAY_DESC("g_rg_fac", "u8", M4_SIZE(1,13), M4_RANGE(0, 63), "[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]", M4_DIGIT(0), M4_DYNAMIC(0)) 84 unsigned char g_rg_fac[CALIBDB_ADPCC_KNOTS_NUM]; 85 } CalibDb_Dpcc_set_RG_V20_t; 86 87 typedef struct CalibDb_Dpcc_set_RO_V20_s { 88 // M4_ARRAY_DESC("RO_enable", "u8", M4_SIZE(1,13), M4_RANGE(0, 1), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 89 unsigned char RO_enable[CALIBDB_ADPCC_KNOTS_NUM]; 90 // M4_ARRAY_DESC("rb_ro_lim", "u8", M4_SIZE(1,13), M4_RANGE(0, 3), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 91 unsigned char rb_ro_lim[CALIBDB_ADPCC_KNOTS_NUM]; 92 // M4_ARRAY_DESC("g_ro_lim", "u8", M4_SIZE(1,13), M4_RANGE(0, 3), "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]", M4_DIGIT(0), M4_DYNAMIC(0)) 93 unsigned char g_ro_lim[CALIBDB_ADPCC_KNOTS_NUM]; 94 } CalibDb_Dpcc_set_RO_V20_t; 95 96 typedef struct CalibDb_Dpcc_set_V20_s { 97 // M4_STRUCT_DESC("RK", "normal_ui_style") 98 CalibDb_Dpcc_set_RK_V20_t RK; 99 // M4_STRUCT_DESC("LC", "normal_ui_style") 100 CalibDb_Dpcc_set_LC_V20_t LC; 101 // M4_STRUCT_DESC("PG", "normal_ui_style") 102 CalibDb_Dpcc_set_PG_V20_t PG; 103 // M4_STRUCT_DESC("RND", "normal_ui_style") 104 CalibDb_Dpcc_set_RND_V20_t RND; 105 // M4_STRUCT_DESC("RG", "normal_ui_style") 106 CalibDb_Dpcc_set_RG_V20_t RG; 107 // M4_STRUCT_DESC("RO", "normal_ui_style") 108 CalibDb_Dpcc_set_RO_V20_t RO; 109 } CalibDb_Dpcc_set_V20_t; 110 111 typedef struct FastData_s { 112 // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(50,10000000), "50",M4_DIGIT(2), M4_DYNAMIC(1)) 113 float* ISO; 114 int ISO_len; 115 // M4_ARRAY_DESC("Single_level", "u32", M4_SIZE(1,100), M4_RANGE(1,10), "1",M4_DIGIT(0), M4_DYNAMIC(1)) 116 int* Single_level; 117 int Single_level_len; 118 // M4_ARRAY_DESC("Double_level", "u32", M4_SIZE(1,100), M4_RANGE(1,10), "1",M4_DIGIT(0), M4_DYNAMIC(1)) 119 int* Double_level; 120 int Double_level_len; 121 // M4_ARRAY_DESC("Triple_level", "u32", M4_SIZE(1,100), M4_RANGE(1,10), "1",M4_DIGIT(0), M4_DYNAMIC(1)) 122 int* Triple_level; 123 int Triple_level_len; 124 } FastData_t; 125 126 typedef struct CalibDb_Dpcc_Fast_Mode_V20_s { 127 // M4_BOOL_DESC("Fast_mode_en", "1") 128 bool Fast_mode_en; 129 // M4_BOOL_DESC("Single_enable", "1") 130 bool Single_enable; 131 // M4_BOOL_DESC("Double_enable", "1") 132 bool Double_enable; 133 // M4_BOOL_DESC("Triple_enable", "1") 134 bool Triple_enable; 135 // M4_ARRAY_TABLE_DESC("Fast_Data", "array_table_ui", "none") 136 FastData_t Fast_Data; 137 } CalibDb_Dpcc_Fast_Mode_V20_t; 138 139 typedef struct SetData_s { 140 // M4_STRUCT_DESC("RK", "normal_ui_style") 141 CalibDb_Dpcc_set_RK_V20_t RK; 142 // M4_STRUCT_DESC("LC", "normal_ui_style") 143 CalibDb_Dpcc_set_LC_V20_t LC; 144 // M4_STRUCT_DESC("PG", "normal_ui_style") 145 CalibDb_Dpcc_set_PG_V20_t PG; 146 // M4_STRUCT_DESC("RND", "normal_ui_style") 147 CalibDb_Dpcc_set_RND_V20_t RND; 148 // M4_STRUCT_DESC("RG", "normal_ui_style") 149 CalibDb_Dpcc_set_RG_V20_t RG; 150 // M4_STRUCT_DESC("RO", "normal_ui_style") 151 CalibDb_Dpcc_set_RO_V20_t RO; 152 } SetData_t; 153 154 typedef struct SetEnable_s { 155 // M4_ARRAY_DESC("ISO", "u32", M4_SIZE(1,13), M4_RANGE(50, 100000000), "[50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800]", M4_DIGIT(4), M4_DYNAMIC(0)) 156 int ISO[CALIBDB_ADPCC_KNOTS_NUM]; 157 // M4_ARRAY_DESC("fix_set", "u16", M4_SIZE(1,13), M4_RANGE(0, 1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 158 int fix_set[CALIBDB_ADPCC_KNOTS_NUM]; 159 // M4_ARRAY_DESC("set1", "u16", M4_SIZE(1,13), M4_RANGE(0, 1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 160 int set1[CALIBDB_ADPCC_KNOTS_NUM]; 161 // M4_ARRAY_DESC("set2", "u16", M4_SIZE(1,13), M4_RANGE(0, 1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 162 int set2[CALIBDB_ADPCC_KNOTS_NUM]; 163 // M4_ARRAY_DESC("set3", "u16", M4_SIZE(1,13), M4_RANGE(0, 1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 164 int set3[CALIBDB_ADPCC_KNOTS_NUM]; 165 } SetEnable_t; 166 167 typedef struct CalibDb_Dpcc_Expert_Mode_V20_s { 168 //M4_BOOL_DESC("stage1_Enable", "1") 169 bool stage1_Enable; 170 // M4_BOOL_DESC("grayscale_mode", "0") 171 bool grayscale_mode; 172 // M4_BOOL_DESC("dpcc_out_sel", "1") 173 bool dpcc_out_sel; 174 // M4_BOOL_DESC("stage1_g_3x3", "0") 175 bool stage1_g_3x3; 176 // M4_BOOL_DESC("stage1_rb_3x3", "0") 177 bool stage1_rb_3x3; 178 // M4_BOOL_DESC("stage1_inc_rb_center", "1") 179 bool stage1_inc_rb_center; 180 // M4_BOOL_DESC("stage1_inc_g_center", "1") 181 bool stage1_inc_g_center; 182 // M4_NUMBER_DESC("rk_out_sel", "u8", M4_RANGE(0,2), "0", M4_DIGIT(0)) 183 unsigned char rk_out_sel; 184 // M4_STRUCT_DESC("SetEnable", "array_table_ui") 185 SetEnable_t SetEnable; 186 // M4_ARRAY_TABLE_DESC("set1", "array_table_ui", "none") 187 SetData_t set1; 188 // M4_ARRAY_TABLE_DESC("set2", "array_table_ui", "none") 189 SetData_t set2; 190 // M4_ARRAY_TABLE_DESC("set3", "array_table_ui", "none") 191 SetData_t set3; 192 } CalibDb_Dpcc_Expert_Mode_V20_t; 193 194 typedef struct CalibDb_Dpcc_Pdaf_V20_s { 195 // M4_BOOL_DESC("en", "0") 196 bool en; 197 // M4_ARRAY_DESC("point_en", "u16", M4_SIZE(1,16), M4_RANGE(1, 10), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0]", M4_DIGIT(0), M4_DYNAMIC(0)) 198 unsigned char point_en[16]; 199 // M4_NUMBER_DESC("offsetx", "u8", M4_RANGE(0,100), "0", M4_DIGIT(0)) 200 int offsetx; 201 // M4_NUMBER_DESC("offsety", "u8", M4_RANGE(0,100), "0", M4_DIGIT(0)) 202 int offsety; 203 // M4_NUMBER_DESC("wrapx", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0)) 204 unsigned char wrapx; 205 // M4_NUMBER_DESC("wrapy", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0)) 206 unsigned char wrapy; 207 // M4_NUMBER_DESC("wrapx_num", "u8", M4_RANGE(0,1023), "0", M4_DIGIT(0)) 208 int wrapx_num; 209 // M4_NUMBER_DESC("wrapy_num", "u8", M4_RANGE(0,1023), "0", M4_DIGIT(0)) 210 int wrapy_num; 211 // M4_ARRAY_MARK_DESC("point_x", "u16", M4_SIZE(1,16), M4_RANGE(1, 255), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0]", M4_DIGIT(0), M4_DYNAMIC(0)) 212 unsigned char point_x[16]; 213 // M4_ARRAY_MARK_DESC("point_y", "u16", M4_SIZE(1,16), M4_RANGE(1, 255), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0]", M4_DIGIT(0), M4_DYNAMIC(0)) 214 unsigned char point_y[16]; 215 // M4_NUMBER_DESC("forward_med", "u8", M4_RANGE(0,1), "0", M4_DIGIT(0)) 216 unsigned char forward_med; 217 } CalibDb_Dpcc_Pdaf_V20_t; 218 219 typedef struct SensorDpccData_s { 220 // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(50,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 221 float* ISO; 222 int ISO_len; 223 // M4_ARRAY_DESC("level_single", "u32", M4_SIZE(1,100), M4_RANGE(1,10000000), "1",M4_DIGIT(0), M4_DYNAMIC(1)) 224 int* level_single; 225 int level_single_len; 226 // M4_ARRAY_DESC("level_multiple", "u32", M4_SIZE(1,100), M4_RANGE(1,10000000), "1",M4_DIGIT(0), M4_DYNAMIC(1)) 227 int* level_multiple; 228 int level_multiple_len; 229 } SensorDpccData_t; 230 231 typedef struct CalibDb_Dpcc_Sensor_V20_s { 232 // M4_BOOL_DESC("sensor_dpcc_auto_en", "1") 233 bool sensor_dpcc_auto_en; 234 // M4_NUMBER_DESC("max_level", "u8", M4_RANGE(0,100), "1", M4_DIGIT(0)) 235 int max_level; 236 // M4_ARRAY_TABLE_DESC("SensorDpcc_Data", "array_table_ui", "none") 237 SensorDpccData_t SensorDpcc_Data; 238 } CalibDb_Dpcc_Sensor_V20_t; 239 240 typedef struct CalibDbDpccV20_s { 241 // M4_BOOL_DESC("Enable", "1") 242 bool Enable; 243 // M4_STRUCT_DESC("Fast_Mode", "normal_ui_style") 244 CalibDb_Dpcc_Fast_Mode_V20_t Fast_Mode; 245 // M4_STRUCT_DESC("Expert_Mode", "normal_ui_style") 246 CalibDb_Dpcc_Expert_Mode_V20_t Expert_Mode; 247 // M4_STRUCT_DESC("CalibDb_Dpcc_Pdaf_V20_t", "normal_ui_style") 248 CalibDb_Dpcc_Pdaf_V20_t Dpcc_pdaf; 249 // M4_STRUCT_DESC("Sensor_dpcc", "normal_ui_style") 250 CalibDb_Dpcc_Sensor_V20_t Sensor_dpcc; 251 } CalibDbDpccV20_t; 252 253 typedef struct CalibDbV2_Dpcc_s { 254 // M4_STRUCT_DESC("DpccTuningPara", "normal_ui_style") 255 CalibDbDpccV20_t DpccTuningPara; 256 } CalibDbV2_Dpcc_t; 257 258 RKAIQ_END_DECLARE 259 260 #endif 261