xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/iq_parser/RkAiqCalibTag.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2 *  Copyright (c) 2019 Rockchip Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17 
18 #include "RkAiqCalibTag.h"
19 
20 //#define CALIBDB_CHECK_DEBUG
21 #ifndef XML_STRICT_CHECK
22 #ifdef DCT_ASSERT
23 #undef DCT_ASSERT
24 #define DCT_ASSERT(x)
25 #endif
26 #endif
27 
28 #define calib_uint32_array_size(x) (sizeof(x)/sizeof(uint32_t))
29 #define check_tags_array_info(x) \
30     x, \
31     calib_uint32_array_size(x)
32 
33 #define check_tags_array_ignore \
34     NULL, \
35     -1
36 
37 uint32_t calib_filestart_sub_tags[] = {
38     CALIB_HEADER_TAG_ID,
39     CALIB_SENSOR_TAG_ID,
40     CALIB_SYSTEM_TAG_ID,
41     CALIB_EXPSET_TAG_ID,
42     CALIB_MODULEINFO_TAG_ID,
43 };
44 
45 uint32_t calib_header_sub_tags[] = {
46     CALIB_HEADER_CODE_XML_PARSE_VERSION_TAG_ID,
47     CALIB_HEADER_CREATION_DATE_TAG_ID,
48     CALIB_HEADER_CREATOR_TAG_ID,
49     CALIB_HEADER_SENSOR_NAME_TAG_ID,
50     CALIB_HEADER_SAMPLE_NAME_TAG_ID,
51     CALIB_HEADER_GENERATOR_VERSION_TAG_ID,
52     CALIB_HEADER_MAGIC_CODE_TAG_ID,
53 };
54 
55 uint32_t calib_sensor_sub_tags[] = {
56     CALIB_SENSOR_AWB_TAG_ID,
57     CALIB_SENSOR_AEC_TAG_ID,
58     CALIB_SENSOR_AEC_V21_TAG_ID,
59     CALIB_SENSOR_AF_TAG_ID,
60     CALIB_SENSOR_AHDR_MERGE_TAG_ID,
61     CALIB_SENSOR_AHDR_TMO_TAG_ID,
62     CALIB_SENSOR_DRC_TAG_ID,
63     CALIB_SENSOR_BLC_TAG_ID,
64     CALIB_SENSOR_DPCC_TAG_ID,
65     CALIB_SENSOR_BAYERNR_TAG_ID,
66     CALIB_SENSOR_LSC_TAG_ID,
67     CALIB_SENSOR_RKDM_TAG_ID,
68     CALIB_SENSOR_CCM_TAG_ID,
69     CALIB_SENSOR_UVNR_TAG_ID,
70     CALIB_SENSOR_GAMMA_TAG_ID,
71     CALIB_SENSOR_DEGAMMA_TAG_ID,
72     CALIB_SENSOR_YNR_TAG_ID,
73     CALIB_SENSOR_GIC_TAG_ID,
74     CALIB_SENSOR_MFNR_TAG_ID,
75     CALIB_SENSOR_SHARP_TAG_ID,
76     CALIB_SENSOR_EDGEFILTER_TAG_ID,
77     CALIB_SENSOR_DEHAZE_TAG_ID,
78     CALIB_SENSOR_SENSORINFO_TAG_ID,
79     CALIB_SENSOR_MODULEINFO_TAG_ID,
80     CALIB_SENSOR_CPSL_TAG_ID,
81     CALIB_SENSOR_LUT3D_TAG_ID,
82     CALIB_SENSOR_LDCH_TAG_ID,
83     CALIB_SENSOR_FEC_TAG_ID,
84     CALIB_SENSOR_EIS_TAG_ID,
85     CALIB_SENSOR_LUMA_DETECT_TAG_ID,
86     CALIB_SENSOR_ORB_TAG_ID,
87     CALIB_SENSOR_COLOR_AS_GREY_TAG_ID,
88     CALIB_SENSOR_CPROC_TAG_ID,
89     CALIB_SENSOR_IE_TAG_ID,
90     CALIB_SENSOR_BAYERNR_V2_TAG_ID,
91     CALIB_SENSOR_YNR_V2_TAG_ID,
92     CALIB_SENSOR_CNR_V1_TAG_ID,
93     CALIB_SENSOR_SHARP_V3_TAG_ID,
94 
95 };
96 
97 uint32_t calib_sensor_awb_sub_tags[] = {
98     CALIB_SENSOR_AWB_V200_TAG_ID,
99     CALIB_SENSOR_AWB_V201_TAG_ID,
100     CALIB_SENSOR_AWB_ADJUSTPARA_TAG_ID,
101 };
102 
103 uint32_t calib_sensor_awb_v200_sub_tags[] = {
104     CALIIB_SCENE_TAG_ID,
105     CALIB_SENSOR_AWB_V200_GLOBALS_TAG_ID,
106     CALIB_SENSOR_AWB_V200_LIGHTSOURCES_TAG_ID,
107 };
108 
109 uint32_t calib_sensor_awb_v200_global_sub_tags[] = {
110     CALIB_SENSOR_AWB_HDRFRAMECHOOSE_TAG_ID,
111     CALIB_SENSOR_AWB_LSCBYPASSENABLE_TAG_ID,
112     CALIB_SENSOR_AWB_UVDETECTIONENABLE_TAG_ID,
113     CALIB_SENSOR_AWB_XYDETECTIONENABLE_TAG_ID,
114     CALIB_SENSOR_AWB_YUVDETECTIONENABLE_TAG_ID,
115     CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIPENABLE_TAG_ID,
116     CALIB_SENSOR_AWB_WBGAINCLIPEANBLE_TAG_ID,
117     CALIB_SENSOR_AWB_LSUSEDFORYUVDET_TAG_ID,
118     CALIB_SENSOR_AWB_DOWNSCALEMODE_TAG_ID,
119     CALIB_SENSOR_AWB_BLCKMEASUREMODE_TAG_ID,
120     CALIB_SENSOR_AWB_MEASUREWINDOW_TAG_ID,
121     CALIB_SENSOR_AWB_MULTIWINDOWENABLE_TAG_ID,
122     CALIB_SENSOR_AWB_LIMITRANGE_TAG_ID,
123     CALIB_SENSOR_AWB_LIMITRANGE_CELL_TAG_ID,
124     CALIB_SENSOR_AWB_PSEUDOLUMWEIGHT_TAG_ID,
125     CALIB_SENSOR_AWB_ROTATIONMAT_TAG_ID,
126     CALIB_SENSOR_AWB_MULTIWINDOW_TAG_ID,
127     CALIB_SENSOR_AWB_EXCLUDERANGE_TAG_ID,
128     CALIB_SENSOR_AWB_SPATIALGAIN_L_TAG_ID,
129     CALIB_SENSOR_AWB_SPATIALGAIN_H_TAG_ID,
130     CALIB_SENSOR_AWB_TEMPORALDEFAULTGAIN_TAG_ID,
131     CALIB_SENSOR_AWB_CA_TARGETGAIN_TAG_ID,
132     CALIB_SENSOR_AWB_SINGLECOLORPROCESS_TAG_ID,
133     CALIB_SENSOR_AWB_LINERGBG_TAG_ID,
134     CALIB_SENSOR_AWB_LINERGBGPROJCCT_TAG_ID,
135     CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIP_TAG_ID,
136     CALIB_SENSOR_AWB_WBGAINCLIP_TAG_ID,
137 };
138 
139 uint32_t calib_sensor_awb_v200_lightSources_sub_tags[] = {
140     CALIB_SENSOR_AWB_LIGHTSOURCES_NAME_TAG_ID,
141     CALIB_SENSOR_AWB_LIGHTSOURCES_DOORTYPE_TAG_ID,
142     CALIB_SENSOR_AWB_LIGHTSOURCES_STANDARDGAINVALUE_TAG_ID,
143     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTUREGION_TAG_ID,
144     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTVREGION_TAG_ID,
145     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTXYREGION_TAG_ID,
146     CALIB_SENSOR_AWB_LIGHTSOURCES_YUVREGION_TAG_ID,
147 };
148 
149 uint32_t calib_sensor_awb_lightXYRegion_sub_tags[] = {
150     CALIB_SENSOR_AWB_LIGHTSOURCES_NORMAL_TAG_ID,
151     CALIB_SENSOR_AWB_LIGHTSOURCES_BIG_TAG_ID,
152     CALIB_SENSOR_AWB_LIGHTSOURCES_SMALL_TAG_ID,
153 };
154 
155 uint32_t calib_sensor_awb_yuvRegion_sub_tags[] = {
156     CALIB_SENSOR_AWB_LIGHTSOURCES_K2SET_TAG_ID,
157     CALIB_SENSOR_AWB_LIGHTSOURCES_B0SET_TAG_ID,
158     CALIB_SENSOR_AWB_LIGHTSOURCES_K3SET_TAG_ID,
159     CALIB_SENSOR_AWB_LIGHTSOURCES_K_YDISSET_TAG_ID,
160     CALIB_SENSOR_AWB_LIGHTSOURCES_B_YDISSET_TAG_ID,
161     CALIB_SENSOR_AWB_LIGHTSOURCES_UREFSET_TAG_ID,
162     CALIB_SENSOR_AWB_LIGHTSOURCES_VREFSET_TAG_ID,
163     CALIB_SENSOR_AWB_LIGHTSOURCES_DISSET_TAG_ID,
164     CALIB_SENSOR_AWB_LIGHTSOURCES_THSET_TAG_ID,
165 };
166 
167 uint32_t calib_sensor_awb_rtYuvRegion_sub_tags[] = {
168     CALIB_SENSOR_AWB_LIGHTSOURCES_THCURVE_U_SET_TAG_ID,
169     CALIB_SENSOR_AWB_LIGHTSOURCES_THCURVE_TH_SET_TAG_ID,
170     CALIB_SENSOR_AWB_LIGHTSOURCES_LINEVECTOR_TAG_ID,
171 };
172 
173 uint32_t calib_sensor_awb_v201_sub_tags[] = {
174     CALIIB_SCENE_TAG_ID,
175     CALIB_SENSOR_AWB_V201_GLOBALS_TAG_ID,
176     CALIB_SENSOR_AWB_V201_LIGHTSOURCES_TAG_ID,
177 };
178 
179 uint32_t calib_sensor_awb_v201_global_sub_tags[] = {
180     CALIB_SENSOR_AWB_HDRFRAMECHOOSE_TAG_ID,
181     CALIB_SENSOR_AWB_LSCBYPASSENABLE_TAG_ID,
182     CALIB_SENSOR_AWB_UVDETECTIONENABLE_TAG_ID,
183     CALIB_SENSOR_AWB_XYDETECTIONENABLE_TAG_ID,
184     CALIB_SENSOR_AWB_YUVDETECTIONENABLE_TAG_ID,
185     CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIPENABLE_TAG_ID,
186     CALIB_SENSOR_AWB_WBGAINCLIPEANBLE_TAG_ID,
187     CALIB_SENSOR_AWB_WPDIFFWEIENABLE_TAG_ID,
188     CALIB_SENSOR_AWB_WPDIFFBLKWEIENABLE_TAG_ID,
189     CALIB_SENSOR_AWB_BLKSTATISTICSENABLE_TAG_ID,
190     CALIB_SENSOR_AWB_LSUSEDFORYUVDET_TAG_ID,
191     CALIB_SENSOR_AWB_DOWNSCALEMODE_TAG_ID,
192     CALIB_SENSOR_AWB_BLCKMEASUREMODE_TAG_ID,
193     CALIB_SENSOR_AWB_MEASUREWINDOW_TAG_ID,
194     CALIB_SENSOR_AWB_MULTIWINDOWENABLE_TAG_ID,
195     CALIB_SENSOR_AWB_LIMITRANGE_TAG_ID,
196     CALIB_SENSOR_AWB_LIMITRANGE_CELL_TAG_ID,
197     CALIB_SENSOR_AWB_PSEUDOLUMWEIGHT_TAG_ID,
198     CALIB_SENSOR_AWB_ROTATIONMAT_TAG_ID,
199     CALIB_SENSOR_AWB_RGB2ROTATIONYUVMAT_TAG_ID,
200     CALIB_SENSOR_AWB_MULTIWINDOW_TAG_ID,
201     CALIB_SENSOR_AWB_EXCLUDERANGE_TAG_ID,
202     CALIB_SENSOR_AWB_SPATIALGAIN_L_TAG_ID,
203     CALIB_SENSOR_AWB_SPATIALGAIN_H_TAG_ID,
204     CALIB_SENSOR_AWB_TEMPORALDEFAULTGAIN_TAG_ID,
205     CALIB_SENSOR_AWB_CA_TARGETGAIN_TAG_ID,
206     CALIB_SENSOR_AWB_SINGLECOLORPROCESS_TAG_ID,
207     CALIB_SENSOR_AWB_LINERGBG_TAG_ID,
208     CALIB_SENSOR_AWB_LINERGBGPROJCCT_TAG_ID,
209     CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIP_TAG_ID,
210     CALIB_SENSOR_AWB_WBGAINCLIP_TAG_ID,
211     CALIB_SENSOR_AWB_WPDIFFWEIGHT_TAG_ID,
212     CALIB_SENSOR_AWB_WPDIFFBLKWEIGHT_TAG_ID,
213 };
214 
215 uint32_t calib_sensor_awb_v201_lightSources_sub_tags[] = {
216     CALIB_SENSOR_AWB_LIGHTSOURCES_NAME_TAG_ID,
217     CALIB_SENSOR_AWB_LIGHTSOURCES_DOORTYPE_TAG_ID,
218     CALIB_SENSOR_AWB_LIGHTSOURCES_STANDARDGAINVALUE_TAG_ID,
219     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTUREGION_TAG_ID,
220     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTVREGION_TAG_ID,
221     CALIB_SENSOR_AWB_LIGHTSOURCES_SMALLUREGION_TAG_ID,
222     CALIB_SENSOR_AWB_LIGHTSOURCES_SMALLVREGION_TAG_ID,
223     CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTXYREGION_TAG_ID,
224     CALIB_SENSOR_AWB_LIGHTSOURCES_RTYUVREGION_TAG_ID,
225 };
226 
227 uint32_t calib_sensor_awb_hfc_sub_tags[] = {
228     CALIB_SENSOR_AWB_MODE_TAG_ID,
229     CALIB_SENSOR_AWB_FRAMECHOOSE_TAG_ID,
230 };
231 
232 uint32_t calib_sensor_awb_lsusedforyuvdet_sub_tags[] = {
233     CALIB_SENSOR_AWB_LSUSEDFORYUVDET_NAME_TAG_ID,
234 };
235 
236 uint32_t calib_sensor_awb_measurewindow_sub_tags[] = {
237     CALIB_SENSOR_AWB_MODE_TAG_ID,
238     CALIB_SENSOR_AWB_RESALL_TAG_ID,
239 };
240 
241 uint32_t calib_sensor_awb_resall_sub_tags[] = {
242     CALIB_SENSOR_AWB_RESOLUTION_TAG_ID,
243     CALIB_SENSOR_AWB_MEASUREWINDOWSIZE_TAG_ID,
244 };
245 
246 uint32_t calib_sensor_awb_limitRange_sub_tags[] = {
247     CALIB_SENSOR_AWB_LIMITRANGE_LV_TAG_ID,
248     CALIB_SENSOR_AWB_LIMITRANGE_Y_TAG_ID,
249     CALIB_SENSOR_AWB_LIMITRANGE_R_TAG_ID,
250     CALIB_SENSOR_AWB_LIMITRANGE_G_TAG_ID,
251     CALIB_SENSOR_AWB_LIMITRANGE_B_TAG_ID,
252 };
253 
254 uint32_t calib_sensor_awb_excludeRange_sub_tags[] = {
255     CALIB_SENSOR_AWB_EXCLUDERANGE_DOMAIN_TAG_ID,
256     CALIB_SENSOR_AWB_EXCLUDE_MODE_TAG_ID,
257     CALIB_SENSOR_AWB_EXCLUDE_WINDOW_TAG_ID
258 };
259 
260 uint32_t calib_sensor_awb_wpDiffWeiEnableTh_sub_tags[] = {
261     CALIB_SENSOR_AWB_WPNOTH_TAG_ID,
262     CALIB_SENSOR_AWB_LVVALUETH_TAG_ID,
263 };
264 
265 uint32_t calib_sensor_awb_wpDiffwei_w_HighLV_sub_tags[] = {
266     CALIB_SENSOR_AWB_WPRATIO1_TAG_ID,
267     CALIB_SENSOR_AWB_WPRATIO2_TAG_ID,
268     CALIB_SENSOR_AWB_WPRATIO3_TAG_ID,
269 };
270 
271 uint32_t calib_sensor_awb_wpDiffwei_w_LowLV_sub_tags[] = {
272     CALIB_SENSOR_AWB_WPRATIO1_TAG_ID,
273     CALIB_SENSOR_AWB_WPRATIO2_TAG_ID,
274     CALIB_SENSOR_AWB_WPRATIO3_TAG_ID,
275 };
276 
277 uint32_t calib_sensor_awb_tolerance_sub_tags[] = {
278     CALIB_SENSOR_AWB_LV_TAG_ID,
279     CALIB_SENSOR_AWB_VALUE_TAG_ID,
280 };
281 
282 uint32_t calib_sensor_awb_runInterval_sub_tags[] = {
283     CALIB_SENSOR_AWB_LV_TAG_ID,
284     CALIB_SENSOR_AWB_VALUE_TAG_ID,
285 };
286 uint32_t calib_sensor_awb_dampFactor_sub_tags[] = {
287     CALIB_SENSOR_AWB_DFSTEP_TAG_ID,
288     CALIB_SENSOR_AWB_DFMIN_TAG_ID,
289     CALIB_SENSOR_AWB_DFMAX_TAG_ID,
290     CALIB_SENSOR_AWB_LVIIRSIZE_TAG_ID,
291     CALIB_SENSOR_AWB_LVVARTH_TAG_ID,
292 };
293 
294 uint32_t calib_sensor_awb_singleColorProcess_sub_tags[] = {
295     CALIB_SENSOR_AWB_COLORBLOCK_TAG_ID,
296     CALIB_SENSOR_AWB_LIGHTSOURCEUSEDFORESTIMIATION_TAG_ID,
297     CALIB_SENSOR_AWB_ALPHA_TAG_ID,
298 };
299 
300 uint32_t calib_sensor_awb_colorBlock_sub_tags[] = {
301     CALIB_SENSOR_AWB_INDEX_TAG_ID,
302     CALIB_SENSOR_AWB_MEANC_TAG_ID,
303     CALIB_SENSOR_AWB_MEANH_TAG_ID,
304 };
305 
306 uint32_t calib_sensor_awb_lsUsedForEstimation_sub_tags[] = {
307     CALIB_SENSOR_AWB_LSUSEDFORESTIMIATION_NAME_TAG_ID,
308     CALIB_SENSOR_AWB_RGAIN_TAG_ID,
309     CALIB_SENSOR_AWB_BGAIN_TAG_ID,
310 };
311 
312 uint32_t calib_sensor_awb_wpDiffLumaWeight_sub_tags[] = {
313     CALIB_SENSOR_AWB_WPDIFFWEIENABLETH_TAG_ID,
314     CALIB_SENSOR_AWB_WPDIFFWEI_Y_TAG_ID,
315     CALIB_SENSOR_AWB_PERFECTBINCONF_TAG_ID,
316     CALIB_SENSOR_AWB_WPDIFFWEIRATIOTH_TAG_ID,
317     CALIB_SENSOR_AWB_WPDIFFWEILVTH_TAG_ID,
318     CALIB_SENSOR_AWB_WPDIFFWEI_W_HIGHLV_TAG_ID,
319     CALIB_SENSOR_AWB_WPDIFFWEI_W_LOWLV_TAG_ID,
320 };
321 
322 uint32_t calib_sensor_awb_adjustpara_sub_tags[] = {
323     CALIIB_SCENE_TAG_ID,
324     CALIB_SENSOR_AWB_ADJUSTPARA_GLOBALS_TAG_ID,
325     CALIB_SENSOR_AWB_ADJUSTPARA_LIGHTSOURCES_TAG_ID,
326 };
327 uint32_t calib_sensor_awb_strategypara_global_wpth_sub_tags[] = {
328     CALIB_SENSOR_AWB_WP_LV_TAG_ID,
329     CALIB_SENSOR_AWB_WP_THL_TAG_ID,
330     CALIB_SENSOR_AWB_WP_THH_TAG_ID,
331 };
332 uint32_t calib_sensor_awb_adjustpara_global_sub_tags[] = {
333     CALIB_SENSOR_AWB_AWB_ENABLE_TAG_ID,
334     CALIB_SENSOR_AWB_WB_BYPASS_TAG_ID,
335     CALIB_SENSOR_AWB_WBGAINADJUSTENABLE_TAG_ID,
336     CALIB_SENSOR_AWB_LSFORFIRSTFRAME_TAG_ID,
337     CALIB_SENSOR_AWB_UVRANGESMALLENABLE_TAG_ID,
338     CALIB_SENSOR_AWB_CA_ENABLE_TAG_ID,
339     CALIB_SENSOR_AWB_TOLERANCE_TAG_ID,
340     CALIB_SENSOR_AWB_RUNINTERNAL_TAG_ID,
341     CALIB_SENSOR_AWB_MULTIWINDOWMODE_TAG_ID,
342     CALIB_SENSOR_AWB_DAMPFACTOR_TAG_ID,
343     CALIB_SENSOR_AWB_LVMATRIX_TAG_ID,
344     CALIB_SENSOR_AWB_LV_THL_TAG_ID,
345     CALIB_SENSOR_AWB_LV_THL2_TAG_ID,
346     CALIB_SENSOR_AWB_LV_THH_TAG_ID,
347     CALIB_SENSOR_AWB_LV_THH2_TAG_ID,
348     CALIB_SENSOR_AWB_WP_TH_TAG_ID,
349     CALIB_SENSOR_AWB_WP_THL_TAG_ID,
350     CALIB_SENSOR_AWB_WP_THH_TAG_ID,
351     CALIB_SENSOR_AWB_PRODIS_THL_TAG_ID,
352     CALIB_SENSOR_AWB_PRODIS_THH_TAG_ID,
353     CALIB_SENSOR_AWB_PROLV_INDOOR_THL_TAG_ID,
354     CALIB_SENSOR_AWB_PROLV_INDOOR_THH_TAG_ID,
355     CALIB_SENSOR_AWB_PROLV_OUTDOOR_THL_TAG_ID,
356     CALIB_SENSOR_AWB_PROLV_OUTDOOR_THH_TAG_ID,
357     CALIB_SENSOR_AWB_TEMPORALCALGAINSETSIZE_TAG_ID,
358     CALIB_SENSOR_AWB_TEMPORALGAINSETWEIGHT_TAG_ID,
359     CALIB_SENSOR_AWB_WPNUMPERCTH_TAG_ID,
360     CALIB_SENSOR_AWB_TEMPWEIGTH_TAG_ID,
361     CALIB_SENSOR_AWB_CA_LACALCFACTOR_TAG_ID,
362     CALIB_SENSOR_AWB_CONVERGEDVARTH_TAG_ID,
363     CALIB_SENSOR_AWB_XYREGIONSTABLESELECTION_TAG_ID,
364     CALIB_SENSOR_AWB_WBGAINADJUST_TAG_ID,
365     CALIB_SENSOR_AWB_WBGAINOFFSET_TAG_ID,
366     CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIP_TAG_ID,
367     CALIB_SENSOR_AWB_WBGAINCLIP_TAG_ID,
368     CALIB_SENSOR_AWB_REMOSAICPARA_TAG_ID,
369 };
370 
371 uint32_t calib_sensor_awb_adjustpara_lightSources_sub_tags[] = {
372     CALIB_SENSOR_AWB_LIGHTSOURCES_NAME_TAG_ID,
373     CALIB_SENSOR_AWB_LIGHTSOURCES_STAWEIGTHSET_TAG_ID,
374     CALIB_SENSOR_AWB_LIGHTSOURCES_SPATIALGAIN_LV_THSET_TAG_ID,
375     CALIB_SENSOR_AWB_LIGHTSOURCES_XYTYPE2ENABLE_TAG_ID,
376     CALIB_SENSOR_AWB_LIGHTSOURCES_WEIGHTCURVE_RATIO_TAG_ID,
377     CALIB_SENSOR_AWB_LIGHTSOURCES_WEIGHTCURVE_WEIGHT_TAG_ID,
378 };
379 
380 uint32_t calib_sensor_awb_xyRegionStableSelection_sub_tags[] = {
381     CALIB_SENSOR_AWB_XYREGIONSIZE_TAG_ID,
382     CALIB_SENSOR_AWB_LVVARTH_TAG_ID,
383     CALIB_SENSOR_AWB_XYREGION_WPNUMTH_CELL_TAG_ID,
384 };
385 uint32_t calib_sensor_awb_xyregion_wpnumth_sub_tags[] = {
386     CALIB_SENSOR_AWB_XYREGION_LV_TAG_ID,
387     CALIB_SENSOR_AWB_XYREGION_WPNUMTHFORBIGTYPE_TAG_ID,
388     CALIB_SENSOR_AWB_XYREGION_WPNUMTHFOREXTRATYPE_TAG_ID,
389 };
390 
391 uint32_t calib_sensor_awb_wbGainAdjust_sub_tags[] = {
392     CALIB_SENSOR_AWB_CTGRID_NUM_TAG_ID,
393     CALIB_SENSOR_AWB_CTINRANGE_TAG_ID,
394     CALIB_SENSOR_AWB_CRIGRID_NUM_TAG_ID,
395     CALIB_SENSOR_AWB_CRIINRANGE_TAG_ID,
396     CALIB_SENSOR_AWB_LUTALL_TAG_ID,
397 };
398 uint32_t calib_sensor_awb_wbGainOffset_sub_tags[] = {
399     CALIB_SENSOR_AWB_WBGAINOFFSET_ENABLE_TAG_ID,
400     CALIB_SENSOR_AWB_WBGAINOFFSET_OFFSET_TAG_ID,
401 };
402 
403 uint32_t calib_sensor_awb_lutAll_sub_tags[] = {
404     CALIB_SENSOR_AWB_LVVALUE_TAG_ID,
405     CALIB_SENSOR_AWB_CTOUT_TAG_ID,
406     CALIB_SENSOR_AWB_CRIOUT_TAG_ID,
407 };
408 
409 uint32_t calib_sensor_awb_wbGainDaylightClip_sub_tags[] = {
410     CALIB_SENSOR_AWB_OUTDOORCCTMIN_TAG_ID,
411 };
412 
413 uint32_t calib_sensor_awb_wbGainClip_sub_tags[] = {
414     CALIB_SENSOR_AWB_CCT_TAG_ID,
415     CALIB_SENSOR_AWB_CRIBOUNDUP_TAG_ID,
416     CALIB_SENSOR_AWB_CRIBOUNDLOW_TAG_ID,
417 };
418 
419 uint32_t calib_sensor_awb_RemosaicPara_sub_tags[] = {
420     CALIB_SENSOR_AWB_REMOSAICPARA_ENABLE_TAG_ID,
421     CALIB_SENSOR_AWB_REMOSAICPARA_WBGAIN_TAG_ID,
422 };
423 
424 //AEC V20
425 uint32_t calib_sensor_aec_sub_tags[] = {
426     CALIB_SENSOR_AEC_ENABLE_TAG_ID,
427     CALIB_SENSOR_AEC_AECRUNINTERVAL_TAG_ID,
428     CALIB_SENSOR_AEC_AECOPTYPE_TAG_ID,
429     CALIB_SENSOR_AEC_HISTSTATSMODE_TAG_ID,
430     CALIB_SENSOR_AEC_RAWSTATSMODE_TAG_ID,
431     CALIB_SENSOR_AEC_YRANGEMODE_TAG_ID,
432     CALIB_SENSOR_AEC_SYNCTEST_TAG_ID,
433     CALIB_SENSOR_AEC_AECSPEED_TAG_ID,
434     CALIB_SENSOR_AEC_AECDELAYFRMNUM_TAG_ID,
435     CALIB_SENSOR_AEC_AECFRAMERATEMODE_TAG_ID,
436     CALIB_SENSOR_AEC_ANTIFLICKER_TAG_ID,
437     CALIB_SENSOR_AEC_AECINITVALUE_TAG_ID,
438     CALIB_SENSOR_AEC_AECGRIDWEIGHT_TAG_ID,
439     CALIB_SENSOR_AEC_AECROUTE_TAG_ID,
440     CALIB_SENSOR_AEC_AECDNSWITCH_TAG_ID,
441     CALIB_SENSOR_AEC_IRISCTRL_TAG_ID,
442     CALIB_SENSOR_AEC_MANUALCTRL_TAG_ID,
443     CALIB_SENSOR_AEC_ENVLVCALIB_TAG_ID,
444     CALIB_SENSOR_AEC_LINEARAE_CTRL_TAG_ID,
445     CALIB_SENSOR_AEC_HDRAECTRL_TAG_ID,
446 };
447 
448 uint32_t calib_sensor_aec_AecSyncTest_sub_tags[] = {
449     CALIB_SENSOR_AEC_SYNCTEST_ENABLE_TAG_ID,
450     CALIB_SENSOR_AEC_SYNCTEST_INTERVALFRM_TAG_ID,
451     CALIB_SENSOR_AEC_SYNCTEST_ALTEREXP_TAG_ID,
452 };
453 
454 uint32_t calib_sensor_aec_AecSyncTest_AlterExp_sub_tags[] = {
455     CALIB_SENSOR_AEC_SYNCTEST_LINALTEREXP_TAG_ID,
456     CALIB_SENSOR_AEC_SYNCTEST_HDRALTEREXP_TAG_ID,
457 };
458 
459 uint32_t calib_sensor_aec_AecSyncTest_LinAlterExp_sub_tags[] = {
460     CALIB_SENSOR_AEC_SYNCTEST_TIMEVALUE_TAG_ID,
461     CALIB_SENSOR_AEC_SYNCTEST_GAINVALUE_TAG_ID,
462     CALIB_SENSOR_AEC_SYNCTEST_ISPGAINVALUE_TAG_ID,
463     CALIB_SENSOR_AEC_SYNCTEST_DCGMODE_TAG_ID,
464     CALIB_SENSOR_AEC_SYNCTEST_PIRISVALUE_TAG_ID,
465 };
466 
467 uint32_t calib_sensor_aec_AecSyncTest_HdrAlterExp_sub_tags[] = {
468     CALIB_SENSOR_AEC_SYNCTEST_TIMEVALUE_TAG_ID,
469     CALIB_SENSOR_AEC_SYNCTEST_GAINVALUE_TAG_ID,
470     CALIB_SENSOR_AEC_SYNCTEST_ISPGAINVALUE_TAG_ID,
471     CALIB_SENSOR_AEC_SYNCTEST_DCGMODE_TAG_ID,
472     CALIB_SENSOR_AEC_SYNCTEST_PIRISVALUE_TAG_ID,
473 };
474 
475 uint32_t calib_sensor_aec_AecSpeed_sub_tags[] = {
476     CALIB_SENSOR_AEC_SMOOTHEN_TAG_ID,
477     CALIB_SENSOR_AEC_DYDAMPEN_TAG_ID,
478     CALIB_SENSOR_AEC_DAMPOVER_TAG_ID,
479     CALIB_SENSOR_AEC_DAMPUNDER_TAG_ID,
480     CALIB_SENSOR_AEC_DAMPDARK2BRIGHT_TAG_ID,
481     CALIB_SENSOR_AEC_DAMPBRIGHT2DARK_TAG_ID,
482 };
483 
484 uint32_t calib_sensor_aec_AecDelayFrmNum_sub_tags[] = {
485     CALIB_SENSOR_AEC_BLACKDELAY_TAG_ID,
486     CALIB_SENSOR_AEC_WHITEDELAY_TAG_ID,
487 };
488 
489 uint32_t calib_sensor_aec_AecFrameRateMode_sub_tags[] = {
490     CALIB_SENSOR_AEC_ISFPSFIX_TAG_ID,
491     CALIB_SENSOR_AEC_FPSVALUE_TAG_ID,
492 };
493 
494 uint32_t calib_sensor_aec_AecAntiFlicker_sub_tags[] = {
495     CALIB_SENSOR_AEC_ANTIFLICKER_ENABLE_TAG_ID,
496     CALIB_SENSOR_AEC_ANTIFLICKER_FREQ_TAG_ID,
497     CALIB_SENSOR_AEC_ANTIFLICKER_MODE_TAG_ID,
498 };
499 
500 uint32_t calib_sensor_aec_AecInitValue_sub_tags[] = {
501     CALIB_SENSOR_AEC_AECINITVALUE_LINEARAE_TAG_ID,
502     CALIB_SENSOR_AEC_AECINITVALUE_HDRAE_TAG_ID,
503 };
504 
505 uint32_t calib_sensor_aec_AecInitValue_LinearAE_sub_tags[] = {
506     CALIB_SENSOR_AEC_INITTIMEVALUE_TAG_ID,
507     CALIB_SENSOR_AEC_INITGAINVALUE_TAG_ID,
508     CALIB_SENSOR_AEC_INITISPDGAINVALUE_TAG_ID,
509     CALIB_SENSOR_AEC_INITPIRISVALUE_TAG_ID,
510     CALIB_SENSOR_AEC_INITDCIRISVALUE_TAG_ID,
511     CALIB_SENSOR_AEC_INITHDCIRISVALUE_TAG_ID,
512 };
513 
514 uint32_t calib_sensor_aec_AecInitValue_HdrAE_sub_tags[] = {
515     CALIB_SENSOR_AEC_INITTIMEVALUE_TAG_ID,
516     CALIB_SENSOR_AEC_INITGAINVALUE_TAG_ID,
517     CALIB_SENSOR_AEC_INITISPDGAINVALUE_TAG_ID,
518     CALIB_SENSOR_AEC_INITPIRISVALUE_TAG_ID,
519     CALIB_SENSOR_AEC_INITDCIRISVALUE_TAG_ID,
520     CALIB_SENSOR_AEC_INITHDCIRISVALUE_TAG_ID,
521 };
522 
523 uint32_t calib_sensor_aec_AecGridWeight_sub_tags[] = {
524     CALIB_SENSOR_AEC_DAYGRIDWEIGHTS_TAG_ID,
525     CALIB_SENSOR_AEC_NIGHTGRIDWEIGHTS_TAG_ID,
526 };
527 
528 uint32_t calib_sensor_aec_AecRoute_sub_tags[] = {
529     CALIB_SENSOR_AEC_AECROUTE_LINEARAE_TAG_ID,
530     CALIB_SENSOR_AEC_AECROUTE_HDRAE_TAG_ID,
531 };
532 
533 uint32_t calib_sensor_aec_AecRoute_LinearAE_sub_tags[] = {
534     CALIB_SENSOR_AEC_NAME_TAG_ID,
535     CALIB_SENSOR_AEC_TIMEDOT_TAG_ID,
536     CALIB_SENSOR_AEC_GAINDOT_TAG_ID,
537     CALIB_SENSOR_AEC_ISPDGAINDOT_TAG_ID,
538     CALIB_SENSOR_AEC_PIRISDOT_TAG_ID,
539 };
540 
541 uint32_t calib_sensor_aec_AecRoute_HdrAE_sub_tags[] = {
542     CALIB_SENSOR_AEC_NAME_TAG_ID,
543     CALIB_SENSOR_AEC_LTIMEDOT_TAG_ID,
544     CALIB_SENSOR_AEC_MTIMEDOT_TAG_ID,
545     CALIB_SENSOR_AEC_STIMEDOT_TAG_ID,
546     CALIB_SENSOR_AEC_LGAINDOT_TAG_ID,
547     CALIB_SENSOR_AEC_MGAINDOT_TAG_ID,
548     CALIB_SENSOR_AEC_SGAINDOT_TAG_ID,
549     CALIB_SENSOR_AEC_LISPDGAINDOT_TAG_ID,
550     CALIB_SENSOR_AEC_MISPDGAINDOT_TAG_ID,
551     CALIB_SENSOR_AEC_SISPDGAINDOT_TAG_ID,
552     CALIB_SENSOR_AEC_PIRISDOT_TAG_ID,
553 };
554 
555 uint32_t calib_sensor_aec_AecDNSwitch_sub_tags[] = {
556     CALIB_SENSOR_AEC_AECDNSWITCH_DNTRIGGER_TAG_ID,
557     CALIB_SENSOR_AEC_AECDNSWITCH_DNMODE_TAG_ID,
558     CALIB_SENSOR_AEC_AECDNSWITCH_FILLLIGHTMODE_TAG_ID,
559     CALIB_SENSOR_AEC_AECDNSWITCH_D2NFACTH_TAG_ID,
560     CALIB_SENSOR_AEC_AECDNSWITCH_D2NFRMCNT_TAG_ID,
561     CALIB_SENSOR_AEC_AECDNSWITCH_VBNIGHTMODE_TAG_ID,
562     CALIB_SENSOR_AEC_AECDNSWITCH_IRNIGHTMODE_TAG_ID,
563 };
564 
565 uint32_t calib_sensor_aec_VBNightMode_sub_tags[] = {
566     CALIB_SENSOR_AEC_ENABLE_TAG_ID,
567     CALIB_SENSOR_AEC_AECDNSWITCH_N2DFRMCNT_TAG_ID,
568     CALIB_SENSOR_AEC_AECDNSWITCH_N2DFACTH_TAG_ID,
569 };
570 
571 uint32_t calib_sensor_aec_IRNightMode_sub_tags[] = {
572     CALIB_SENSOR_AEC_ENABLE_TAG_ID,
573     CALIB_SENSOR_AEC_AECDNSWITCH_IR_RG_TAG_ID,
574     CALIB_SENSOR_AEC_AECDNSWITCH_IR_BG_TAG_ID,
575     CALIB_SENSOR_AEC_AECDNSWITCH_MAX_DIS_TAG_ID,
576     CALIB_SENSOR_AEC_AECDNSWITCH_N2DFRMCNT_TAG_ID,
577     CALIB_SENSOR_AEC_AECDNSWITCH_N2DFACTH_TAG_ID,
578     CALIB_SENSOR_AEC_AECDNSWITCH_VB_PERCENT_TAG_ID,
579 };
580 
581 uint32_t calib_sensor_aec_AecIrisCtrl_sub_tags[] = {
582     CALIB_SENSOR_AEC_IRISCTRL_ENABLE_TAG_ID,
583     CALIB_SENSOR_AEC_IRISCTRL_TYPE_TAG_ID,
584     CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_TAG_ID,
585     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_TAG_ID,
586     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_TAG_ID,
587 };
588 
589 uint32_t calib_sensor_aec_AecIrisCtrl_PAttr_sub_tags[] = {
590     CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_TOTALSTEP_TAG_ID,
591     CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_EFFCSTEP_TAG_ID,
592     CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_ZEROISMAX_TAG_ID,
593     CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_STEPTABLE_TAG_ID,
594 };
595 
596 uint32_t calib_sensor_aec_AecIrisCtrl_DCAttr_sub_tags[] = {
597     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KP_TAG_ID,
598     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KI_TAG_ID,
599     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KD_TAG_ID,
600     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_MIN_PWMDUTY_TAG_ID,
601     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_MAX_PWMDUTY_TAG_ID,
602     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_OPEN_PWMDUTY_TAG_ID,
603     CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_CLOSE_PWMDUTY_TAG_ID,
604 };
605 
606 uint32_t calib_sensor_aec_AecIrisCtrl_HDCAttr_sub_tags[] = {
607     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_DAMPOVER_TAG_ID,
608     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_DAMPUNDER_TAG_ID,
609     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZEROISMAX_TAG_ID,
610     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_MINTARGET_TAG_ID,
611     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_MAXTARGET_TAG_ID,
612     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZOOMTARGETDOT_TAG_ID,
613     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZOOMDOT_TAG_ID,
614     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_IRISTARGETDOT_TAG_ID,
615     CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_GAINDOT_TAG_ID,
616 };
617 
618 uint32_t calib_sensor_aec_AecManualCtrl_sub_tags[] = {
619     CALIB_SENSOR_AEC_MANUALCTRL_LINEARAE_TAG_ID,
620     CALIB_SENSOR_AEC_MANUALCTRL_HDRAE_TAG_ID,
621 };
622 
623 uint32_t calib_sensor_aec_AecManualCtrl_LinearAE_sub_tags[] = {
624     CALIB_SENSOR_AEC_MANUALCTRL_TIMEEN_TAG_ID,
625     CALIB_SENSOR_AEC_MANUALCTRL_GAINEN_TAG_ID,
626     CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINEN_TAG_ID,
627     CALIB_SENSOR_AEC_MANUALCTRL_IRISEN_TAG_ID,
628     CALIB_SENSOR_AEC_MANUALCTRL_TIMEVALUE_TAG_ID,
629     CALIB_SENSOR_AEC_MANUALCTRL_GAINVALUE_TAG_ID,
630     CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINVALUE_TAG_ID,
631     CALIB_SENSOR_AEC_MANUALCTRL_PIRISVALUE_TAG_ID,
632     CALIB_SENSOR_AEC_MANUALCTRL_DCIRISVALUE_TAG_ID,
633     CALIB_SENSOR_AEC_MANUALCTRL_HDCIRISVALUE_TAG_ID,
634 };
635 uint32_t calib_sensor_aec_AecManualCtrl_HdrAE_sub_tags[] = {
636     CALIB_SENSOR_AEC_MANUALCTRL_TIMEEN_TAG_ID,
637     CALIB_SENSOR_AEC_MANUALCTRL_GAINEN_TAG_ID,
638     CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINEN_TAG_ID,
639     CALIB_SENSOR_AEC_MANUALCTRL_IRISEN_TAG_ID,
640     CALIB_SENSOR_AEC_MANUALCTRL_TIMEVALUE_TAG_ID,
641     CALIB_SENSOR_AEC_MANUALCTRL_GAINVALUE_TAG_ID,
642     CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINVALUE_TAG_ID,
643     CALIB_SENSOR_AEC_MANUALCTRL_PIRISVALUE_TAG_ID,
644     CALIB_SENSOR_AEC_MANUALCTRL_DCIRISVALUE_TAG_ID,
645     CALIB_SENSOR_AEC_MANUALCTRL_HDCIRISVALUE_TAG_ID,
646 };
647 
648 uint32_t calib_sensor_aec_AecEnvLvCalib_sub_tags[] = {
649     CALIB_SENSOR_AEC_ENVLVCALIB_CALIBFNUMBER_TAG_ID,
650     CALIB_SENSOR_AEC_ENVLVCALIB_CURVECOEFF_TAG_ID,
651 };
652 
653 
654 uint32_t calib_sensor_aec_LinearAECtrl_sub_tags[] = {
655     CALIB_SENSOR_AEC_SETPOINT_TAG_ID,
656     CALIB_SENSOR_AEC_RAWSTATS_EN_TAG_ID,
657     CALIB_SENSOR_AEC_NIGHTSETPOINT_TAG_ID,
658     CALIB_SENSOR_AEC_DYSETPOINTEN_TAG_ID,
659     CALIB_SENSOR_AEC_DYNAMICSETPOINT_TAG_ID,
660     CALIB_SENSOR_AEC_EVBIAS_TAG_ID,
661     CALIB_SENSOR_AEC_TOLERANCE_IN_TAG_ID,
662     CALIB_SENSOR_AEC_TOLERANCE_OUT_TAG_ID,
663     CALIB_SENSOR_AEC_STRATEGYMODE_TAG_ID,
664     CALIB_SENSOR_LINAECTRL_BACKLIGHT_CONFIG_TAG_ID,
665     CALIB_SENSOR_LINAECTRL_OVEREXP_CONTROL_TAG_ID,
666 };
667 
668 uint32_t calib_sensor_aec_DySetPointEn_sub_tags[] = {
669     CALIB_SENSOR_AEC_NAME_TAG_ID,
670     CALIB_SENSOR_AEC_EXPLEVEL_TAG_ID,
671     CALIB_SENSOR_AEC_DYSETPOINT_TAG_ID,
672 };
673 
674 
675 uint32_t calib_sensor_aec_BackLight_sub_tags[] = {
676     CALIB_SENSOR_LINAECTRL_BACKLIGHT_ENABLE_TAG_ID,
677     CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_TAG_ID,
678     CALIB_SENSOR_LINAECTRL_BACKLIGHT_OEROI_LOWTH_TAG_ID,
679     CALIB_SENSOR_LINAECTRL_BACKLIGHT_LV_LOWTH_TAG_ID,
680     CALIB_SENSOR_LINAECTRL_BACKLIGHT_LV_HIGHTH_TAG_ID,
681     CALIB_SENSOR_LINAECTRL_BACKLIGHT_NONOEPDFTH_TAG_ID,
682     CALIB_SENSOR_LINAECTRL_BACKLIGHT_LOWLIGHTPDFTH_TAG_ID,
683     CALIB_SENSOR_LINAECTRL_BACKLIGHT_EXPLEVEL_TAG_ID,
684     CALIB_SENSOR_LINAECTRL_BACKLIGHT_TARGETLLLUMA_TAG_ID,
685     CALIB_SENSOR_LINAECTRL_BACKLIGHT_LUMADISTTH_TAG_ID,
686 };
687 
688 uint32_t calib_sensor_aec_OverExp_sub_tags[] = {
689     CALIB_SENSOR_LINAECTRL_OVEREXP_ENABLE_TAG_ID,
690     CALIB_SENSOR_LINAECTRL_OVEREXP_HIGHLIGHT_TH_TAG_ID,
691     CALIB_SENSOR_LINAECTRL_OVEREXP_LOWLIGHT_TH_TAG_ID,
692     CALIB_SENSOR_LINAECTRL_OVEREXP_MAXWEIGHT_TAG_ID,
693     CALIB_SENSOR_LINAECTRL_OVEREXP_OEPDF_TAG_ID,
694     CALIB_SENSOR_LINAECTRL_OVEREXP_HIGHLIGHT_WEIGHT_TAG_ID,
695     CALIB_SENSOR_LINAECTRL_OVEREXP_LOWLIGHT_WEIGHT_TAG_ID,
696 };
697 
698 uint32_t calib_sensor_aec_HdrAECtrl_sub_tags[] = {
699     CALIB_SENSOR_AEC_EVBIAS_TAG_ID,
700     CALIB_SENSOR_AEC_TOLERANCE_IN_TAG_ID,
701     CALIB_SENSOR_AEC_TOLERANCE_OUT_TAG_ID,
702     CALIB_SENSOR_AEC_STRATEGYMODE_TAG_ID,
703     CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOCTRL_TAG_ID,
704     CALIB_SENSOR_AEC_HDRAECTRL_LUMADISTTH_TAG_ID,
705     CALIB_SENSOR_AEC_HDRAECTRL_LFRAMECTRL_TAG_ID,
706     CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_TAG_ID,
707     CALIB_SENSOR_AEC_HDRAECTRL_MFRAMECTRL_TAG_ID,
708     CALIB_SENSOR_AEC_HDRAECTRL_SFRAMECTRL_TAG_ID,
709 };
710 
711 uint32_t calib_sensor_aec_LongFrmMode_sub_tags[] = {
712     CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_MODE_TAG_ID,
713     CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_SFRMMINLINE_TAG_ID,
714     CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_LFRMMODEEXPTH_TAG_ID,
715 };
716 
717 uint32_t calib_sensor_aec_ExpRatioCtrl_sub_tags[] = {
718     CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOTYPE_TAG_ID,
719     CALIB_SENSOR_AEC_HDRAECTRL_RATIOEXPDOT_TAG_ID,
720     CALIB_SENSOR_AEC_HDRAECTRL_M2SRATIOFIX_TAG_ID,
721     CALIB_SENSOR_AEC_HDRAECTRL_L2MRATIOFIX_TAG_ID,
722     CALIB_SENSOR_AEC_HDRAECTRL_M2SRATIOMAX_TAG_ID,
723     CALIB_SENSOR_AEC_HDRAECTRL_L2MRATIOMAX_TAG_ID,
724 };
725 
726 uint32_t calib_sensor_aec_LframeCtrl_sub_tags[] = {
727     CALIB_SENSOR_AEC_HDRAECTRL_OEROILOWTH_TAG_ID,
728     CALIB_SENSOR_AEC_HDRAECTRL_LVHIGHTH_TAG_ID,
729     CALIB_SENSOR_AEC_HDRAECTRL_LVLOWTH_TAG_ID,
730     CALIB_SENSOR_AEC_HDRAECTRL_LEXPLEVEL_TAG_ID,
731     CALIB_SENSOR_AEC_HDRAECTRL_LSETPOINT_TAG_ID,
732     CALIB_SENSOR_AEC_HDRAECTRL_TARGETLLLUMA_TAG_ID,
733     CALIB_SENSOR_AEC_HDRAECTRL_NONOEPDFTH_TAG_ID,
734     CALIB_SENSOR_AEC_HDRAECTRL_LOWLIGHTPDFTH_TAG_ID,
735 };
736 
737 uint32_t calib_sensor_aec_MframeCtrl_sub_tags[] = {
738     CALIB_SENSOR_AEC_HDRAECTRL_MEXPLEVEL_TAG_ID,
739     CALIB_SENSOR_AEC_HDRAECTRL_MSETPOINT_TAG_ID,
740 };
741 
742 uint32_t calib_sensor_aec_SframeCtrl_sub_tags[] = {
743     CALIB_SENSOR_AEC_HDRAECTRL_SEXPLEVEL_TAG_ID,
744     CALIB_SENSOR_AEC_HDRAECTRL_SSETPOINT_TAG_ID,
745     CALIB_SENSOR_AEC_HDRAECTRL_TARGETHLLUMA_TAG_ID,
746     CALIB_SENSOR_AEC_HDRAECTRL_HLROIEXPANDEN_TAG_ID,
747     CALIB_SENSOR_AEC_HDRAECTRL_HLLUMATOLERANCE_TAG_ID,
748 };
749 
750 //AEC V21
751 uint32_t calib_sensor_aec_v21_sub_tags[] = {
752     CALIB_SENSOR_AEC_V21_CALIBPARA_TAG_ID,
753     CALIB_SENSOR_AEC_V21_TUNEPARA_TAG_ID,
754 };
755 
756 uint32_t calib_sensor_aec_calibpara_v21_sub_tags[] = {
757     CALIB_SENSOR_AEC_V21_CALIBSCENE_TAG_ID,
758     CALIB_SENSOR_AEC_V21_WINSCALE_TAG_ID,
759     CALIB_SENSOR_AEC_V21_ENVLVCALIB_TAG_ID,
760 };
761 
762 uint32_t calib_sensor_aec_winscale_v21_sub_tags[] = {
763     CALIB_SENSOR_AEC_V21_WINSCALE_INRAW_TAG_ID,
764     CALIB_SENSOR_AEC_V21_WINSCALE_TMORAW_TAG_ID,
765     CALIB_SENSOR_AEC_V21_WINSCALE_YUVRAW_TAG_ID,
766 };
767 
768 uint32_t calib_sensor_aec_tunepara_v21_sub_tags[] = {
769     CALIB_SENSOR_AEC_V21_TUNESCENE_TAG_ID,
770     CALIB_SENSOR_AEC_V21_ENABLE_TAG_ID,
771     CALIB_SENSOR_AEC_V21_AECRUNINTERVAL_TAG_ID,
772     CALIB_SENSOR_AEC_V21_AECOPTYPE_TAG_ID,
773     CALIB_SENSOR_AEC_V21_HISTSTATSMODE_TAG_ID,
774     CALIB_SENSOR_AEC_V21_RAWSTATSMODE_TAG_ID,
775     CALIB_SENSOR_AEC_V21_YRANGEMODE_TAG_ID,
776     CALIB_SENSOR_AEC_V21_SYNCTEST_TAG_ID,
777     CALIB_SENSOR_AEC_V21_AECSPEED_TAG_ID,
778     CALIB_SENSOR_AEC_V21_AECDELAYFRMNUM_TAG_ID,
779     CALIB_SENSOR_AEC_V21_AECFRAMERATEMODE_TAG_ID,
780     CALIB_SENSOR_AEC_V21_ANTIFLICKER_TAG_ID,
781     CALIB_SENSOR_AEC_V21_AECINITVALUE_TAG_ID,
782     CALIB_SENSOR_AEC_V21_AECGRIDWEIGHT_TAG_ID,
783     CALIB_SENSOR_AEC_V21_AECROUTE_TAG_ID,
784     CALIB_SENSOR_AEC_V21_AECDNSWITCH_TAG_ID,
785     CALIB_SENSOR_AEC_V21_IRISCTRL_TAG_ID,
786     CALIB_SENSOR_AEC_V21_MANUALCTRL_TAG_ID,
787     CALIB_SENSOR_AEC_V21_LINEARAE_CTRL_TAG_ID,
788     CALIB_SENSOR_AEC_V21_HDRAECTRL_TAG_ID,
789 };
790 
791 uint32_t calib_sensor_aec_AecSyncTest_v21_sub_tags[] = {
792     CALIB_SENSOR_AEC_V21_SYNCTEST_ENABLE_TAG_ID,
793     CALIB_SENSOR_AEC_V21_SYNCTEST_INTERVALFRM_TAG_ID,
794     CALIB_SENSOR_AEC_V21_SYNCTEST_ALTEREXP_TAG_ID,
795 };
796 
797 uint32_t calib_sensor_aec_AecSyncTest_AlterExp_v21_sub_tags[] = {
798     CALIB_SENSOR_AEC_V21_SYNCTEST_LINALTEREXP_TAG_ID,
799     CALIB_SENSOR_AEC_V21_SYNCTEST_HDRALTEREXP_TAG_ID,
800 };
801 
802 uint32_t calib_sensor_aec_AecSyncTest_LinAlterExp_v21_sub_tags[] = {
803     CALIB_SENSOR_AEC_V21_SYNCTEST_TIMEVALUE_TAG_ID,
804     CALIB_SENSOR_AEC_V21_SYNCTEST_GAINVALUE_TAG_ID,
805     CALIB_SENSOR_AEC_V21_SYNCTEST_ISPGAINVALUE_TAG_ID,
806     CALIB_SENSOR_AEC_V21_SYNCTEST_DCGMODE_TAG_ID,
807     CALIB_SENSOR_AEC_V21_SYNCTEST_PIRISVALUE_TAG_ID,
808 };
809 
810 uint32_t calib_sensor_aec_AecSyncTest_HdrAlterExp_v21_sub_tags[] = {
811     CALIB_SENSOR_AEC_V21_SYNCTEST_TIMEVALUE_TAG_ID,
812     CALIB_SENSOR_AEC_V21_SYNCTEST_GAINVALUE_TAG_ID,
813     CALIB_SENSOR_AEC_V21_SYNCTEST_ISPGAINVALUE_TAG_ID,
814     CALIB_SENSOR_AEC_V21_SYNCTEST_DCGMODE_TAG_ID,
815     CALIB_SENSOR_AEC_V21_SYNCTEST_PIRISVALUE_TAG_ID,
816 };
817 
818 uint32_t calib_sensor_aec_AecSpeed_v21_sub_tags[] = {
819     CALIB_SENSOR_AEC_V21_DAMPOVER_TAG_ID,
820     CALIB_SENSOR_AEC_V21_DAMPUNDER_TAG_ID,
821     CALIB_SENSOR_AEC_V21_DAMPDARK2BRIGHT_TAG_ID,
822     CALIB_SENSOR_AEC_V21_DAMPBRIGHT2DARK_TAG_ID,
823 };
824 
825 uint32_t calib_sensor_aec_AecDelayFrmNum_v21_sub_tags[] = {
826     CALIB_SENSOR_AEC_V21_BLACKDELAY_TAG_ID,
827     CALIB_SENSOR_AEC_V21_WHITEDELAY_TAG_ID,
828 };
829 
830 uint32_t calib_sensor_aec_AecFrameRateMode_v21_sub_tags[] = {
831     CALIB_SENSOR_AEC_V21_ISFPSFIX_TAG_ID,
832     CALIB_SENSOR_AEC_V21_FPSVALUE_TAG_ID,
833 };
834 
835 uint32_t calib_sensor_aec_AecAntiFlicker_v21_sub_tags[] = {
836     CALIB_SENSOR_AEC_V21_ANTIFLICKER_ENABLE_TAG_ID,
837     CALIB_SENSOR_AEC_V21_ANTIFLICKER_FREQ_TAG_ID,
838     CALIB_SENSOR_AEC_V21_ANTIFLICKER_MODE_TAG_ID,
839 };
840 
841 uint32_t calib_sensor_aec_AecInitValue_v21_sub_tags[] = {
842     CALIB_SENSOR_AEC_V21_AECINITVALUE_LINEARAE_TAG_ID,
843     CALIB_SENSOR_AEC_V21_AECINITVALUE_HDRAE_TAG_ID,
844 };
845 
846 uint32_t calib_sensor_aec_AecInitValue_LinearAE_v21_sub_tags[] = {
847     CALIB_SENSOR_AEC_V21_INITTIMEVALUE_TAG_ID,
848     CALIB_SENSOR_AEC_V21_INITGAINVALUE_TAG_ID,
849     CALIB_SENSOR_AEC_V21_INITISPDGAINVALUE_TAG_ID,
850     CALIB_SENSOR_AEC_V21_INITPIRISVALUE_TAG_ID,
851     CALIB_SENSOR_AEC_V21_INITDCIRISVALUE_TAG_ID,
852     CALIB_SENSOR_AEC_V21_INITHDCIRISVALUE_TAG_ID,
853 };
854 
855 uint32_t calib_sensor_aec_AecInitValue_HdrAE_v21_sub_tags[] = {
856     CALIB_SENSOR_AEC_V21_INITTIMEVALUE_TAG_ID,
857     CALIB_SENSOR_AEC_V21_INITGAINVALUE_TAG_ID,
858     CALIB_SENSOR_AEC_V21_INITISPDGAINVALUE_TAG_ID,
859     CALIB_SENSOR_AEC_V21_INITPIRISVALUE_TAG_ID,
860     CALIB_SENSOR_AEC_V21_INITDCIRISVALUE_TAG_ID,
861     CALIB_SENSOR_AEC_V21_INITHDCIRISVALUE_TAG_ID,
862 };
863 
864 uint32_t calib_sensor_aec_AecRoute_v21_sub_tags[] = {
865     CALIB_SENSOR_AEC_V21_AECROUTE_LINEARAE_TAG_ID,
866     CALIB_SENSOR_AEC_V21_AECROUTE_HDRAE_TAG_ID,
867 };
868 
869 uint32_t calib_sensor_aec_AecRoute_LinearAE_v21_sub_tags[] = {
870     CALIB_SENSOR_AEC_V21_TIMEDOT_TAG_ID,
871     CALIB_SENSOR_AEC_V21_GAINDOT_TAG_ID,
872     CALIB_SENSOR_AEC_V21_ISPDGAINDOT_TAG_ID,
873     CALIB_SENSOR_AEC_V21_PIRISDOT_TAG_ID,
874 };
875 
876 uint32_t calib_sensor_aec_AecRoute_HdrAE_v21_sub_tags[] = {
877     CALIB_SENSOR_AEC_V21_LTIMEDOT_TAG_ID,
878     CALIB_SENSOR_AEC_V21_MTIMEDOT_TAG_ID,
879     CALIB_SENSOR_AEC_V21_STIMEDOT_TAG_ID,
880     CALIB_SENSOR_AEC_V21_LGAINDOT_TAG_ID,
881     CALIB_SENSOR_AEC_V21_MGAINDOT_TAG_ID,
882     CALIB_SENSOR_AEC_V21_SGAINDOT_TAG_ID,
883     CALIB_SENSOR_AEC_V21_LISPDGAINDOT_TAG_ID,
884     CALIB_SENSOR_AEC_V21_MISPDGAINDOT_TAG_ID,
885     CALIB_SENSOR_AEC_V21_SISPDGAINDOT_TAG_ID,
886     CALIB_SENSOR_AEC_V21_PIRISDOT_TAG_ID,
887 };
888 
889 uint32_t calib_sensor_aec_AecDNSwitch_v21_sub_tags[] = {
890     CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNTRIGGER_TAG_ID,
891     CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNMODE_TAG_ID,
892     CALIB_SENSOR_AEC_V21_AECDNSWITCH_FILLLIGHTMODE_TAG_ID,
893     CALIB_SENSOR_AEC_V21_AECDNSWITCH_D2NFACTH_TAG_ID,
894     CALIB_SENSOR_AEC_V21_AECDNSWITCH_D2NFRMCNT_TAG_ID,
895     CALIB_SENSOR_AEC_V21_AECDNSWITCH_VBNIGHTMODE_TAG_ID,
896     CALIB_SENSOR_AEC_V21_AECDNSWITCH_IRNIGHTMODE_TAG_ID,
897 };
898 
899 uint32_t calib_sensor_aec_VBNightMode_v21_sub_tags[] = {
900     CALIB_SENSOR_AEC_V21_ENABLE_TAG_ID,
901     CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFRMCNT_TAG_ID,
902     CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFACTH_TAG_ID,
903 };
904 
905 uint32_t calib_sensor_aec_IRNightMode_v21_sub_tags[] = {
906     CALIB_SENSOR_AEC_V21_ENABLE_TAG_ID,
907     CALIB_SENSOR_AEC_V21_AECDNSWITCH_IR_RG_TAG_ID,
908     CALIB_SENSOR_AEC_V21_AECDNSWITCH_IR_BG_TAG_ID,
909     CALIB_SENSOR_AEC_V21_AECDNSWITCH_MAX_DIS_TAG_ID,
910     CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFRMCNT_TAG_ID,
911     CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFACTH_TAG_ID,
912     CALIB_SENSOR_AEC_V21_AECDNSWITCH_VB_PERCENT_TAG_ID,
913 };
914 
915 uint32_t calib_sensor_aec_AecIrisCtrl_v21_sub_tags[] = {
916     CALIB_SENSOR_AEC_V21_IRISCTRL_ENABLE_TAG_ID,
917     CALIB_SENSOR_AEC_V21_IRISCTRL_TYPE_TAG_ID,
918     CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_TAG_ID,
919     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_TAG_ID,
920     CALIB_SENSOR_AEC_V21_INITHDCIRISVALUE_TAG_ID,
921 };
922 uint32_t calib_sensor_aec_AecIrisCtrl_PAttr_v21_sub_tags[] = {
923     CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_TOTALSTEP_TAG_ID,
924     CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_EFFCSTEP_TAG_ID,
925     CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_ZEROISMAX_TAG_ID,
926     CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_STEPTABLE_TAG_ID,
927 };
928 
929 uint32_t calib_sensor_aec_AecIrisCtrl_DCAttr_v21_sub_tags[] = {
930     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KP_TAG_ID,
931     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KI_TAG_ID,
932     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KD_TAG_ID,
933     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_MIN_PWMDUTY_TAG_ID,
934     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_MAX_PWMDUTY_TAG_ID,
935     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_OPEN_PWMDUTY_TAG_ID,
936     CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_CLOSE_PWMDUTY_TAG_ID,
937 };
938 
939 uint32_t calib_sensor_aec_AecIrisCtrl_HDCAttr_v21_sub_tags[] = {
940     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_DAMPOVER_TAG_ID,
941     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_DAMPUNDER_TAG_ID,
942     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZEROISMAX_TAG_ID,
943     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_MINTARGET_TAG_ID,
944     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_MAXTARGET_TAG_ID,
945     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZOOMTARGETDOT_TAG_ID,
946     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZOOMDOT_TAG_ID,
947     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_IRISTARGETDOT_TAG_ID,
948     CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_GAINDOT_TAG_ID,
949 };
950 
951 uint32_t calib_sensor_aec_AecManualCtrl_v21_sub_tags[] = {
952     CALIB_SENSOR_AEC_V21_MANUALCTRL_LINEARAE_TAG_ID,
953     CALIB_SENSOR_AEC_V21_MANUALCTRL_HDRAE_TAG_ID,
954 };
955 
956 uint32_t calib_sensor_aec_AecManualCtrl_LinearAE_v21_sub_tags[] = {
957     CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEEN_TAG_ID,
958     CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINEN_TAG_ID,
959     CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINEN_TAG_ID,
960     CALIB_SENSOR_AEC_V21_MANUALCTRL_IRISEN_TAG_ID,
961     CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEVALUE_TAG_ID,
962     CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINVALUE_TAG_ID,
963     CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINVALUE_TAG_ID,
964     CALIB_SENSOR_AEC_V21_MANUALCTRL_PIRISVALUE_TAG_ID,
965     CALIB_SENSOR_AEC_V21_MANUALCTRL_DCIRISVALUE_TAG_ID,
966     CALIB_SENSOR_AEC_V21_MANUALCTRL_HDCIRISVALUE_TAG_ID,
967 };
968 uint32_t calib_sensor_aec_AecManualCtrl_HdrAE_v21_sub_tags[] = {
969     CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEEN_TAG_ID,
970     CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINEN_TAG_ID,
971     CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINEN_TAG_ID,
972     CALIB_SENSOR_AEC_V21_MANUALCTRL_IRISEN_TAG_ID,
973     CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEVALUE_TAG_ID,
974     CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINVALUE_TAG_ID,
975     CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINVALUE_TAG_ID,
976     CALIB_SENSOR_AEC_V21_MANUALCTRL_PIRISVALUE_TAG_ID,
977     CALIB_SENSOR_AEC_V21_MANUALCTRL_DCIRISVALUE_TAG_ID,
978     CALIB_SENSOR_AEC_V21_MANUALCTRL_HDCIRISVALUE_TAG_ID,
979 };
980 
981 uint32_t calib_sensor_aec_AecEnvLvCalib_v21_sub_tags[] = {
982     CALIB_SENSOR_AEC_V21_ENVLVCALIB_CALIBFNUMBER_TAG_ID,
983     CALIB_SENSOR_AEC_V21_ENVLVCALIB_CURVECOEFF_TAG_ID,
984 };
985 
986 
987 uint32_t calib_sensor_aec_LinearAECtrl_v21_sub_tags[] = {
988     CALIB_SENSOR_AEC_V21_SETPOINT_TAG_ID,
989     CALIB_SENSOR_AEC_V21_RAWSTATS_EN_TAG_ID,
990     CALIB_SENSOR_AEC_V21_NIGHTSETPOINT_TAG_ID,
991     CALIB_SENSOR_AEC_V21_DYSETPOINTEN_TAG_ID,
992     CALIB_SENSOR_AEC_V21_DYNAMICSETPOINT_TAG_ID,
993     CALIB_SENSOR_AEC_V21_EVBIAS_TAG_ID,
994     CALIB_SENSOR_AEC_V21_TOLERANCE_IN_TAG_ID,
995     CALIB_SENSOR_AEC_V21_TOLERANCE_OUT_TAG_ID,
996     CALIB_SENSOR_AEC_V21_STRATEGYMODE_TAG_ID,
997     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_CONFIG_TAG_ID,
998     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_CONTROL_TAG_ID,
999 };
1000 
1001 uint32_t calib_sensor_aec_DySetPointEn_v21_sub_tags[] = {
1002     CALIB_SENSOR_AEC_V21_EXPLEVEL_TAG_ID,
1003     CALIB_SENSOR_AEC_V21_DYSETPOINT_TAG_ID,
1004 };
1005 
1006 
1007 uint32_t calib_sensor_aec_BackLight_v21_sub_tags[] = {
1008     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_ENABLE_TAG_ID,
1009     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_TAG_ID,
1010     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_OEROI_LOWTH_TAG_ID,
1011     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LV_LOWTH_TAG_ID,
1012     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LV_HIGHTH_TAG_ID,
1013     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_NONOEPDFTH_TAG_ID,
1014     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LOWLIGHTPDFTH_TAG_ID,
1015     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_EXPLEVEL_TAG_ID,
1016     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_TARGETLLLUMA_TAG_ID,
1017     CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LUMADISTTH_TAG_ID,
1018 };
1019 
1020 uint32_t calib_sensor_aec_OverExp_v21_sub_tags[] = {
1021     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_ENABLE_TAG_ID,
1022     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_HIGHLIGHT_TH_TAG_ID,
1023     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_LOWLIGHT_TH_TAG_ID,
1024     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_MAXWEIGHT_TAG_ID,
1025     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_OEPDF_TAG_ID,
1026     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_HIGHLIGHT_WEIGHT_TAG_ID,
1027     CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_LOWLIGHT_WEIGHT_TAG_ID,
1028 };
1029 
1030 uint32_t calib_sensor_aec_HdrAECtrl_v21_sub_tags[] = {
1031     CALIB_SENSOR_AEC_V21_EVBIAS_TAG_ID,
1032     CALIB_SENSOR_AEC_V21_TOLERANCE_IN_TAG_ID,
1033     CALIB_SENSOR_AEC_V21_TOLERANCE_OUT_TAG_ID,
1034     CALIB_SENSOR_AEC_V21_STRATEGYMODE_TAG_ID,
1035     CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOCTRL_TAG_ID,
1036     CALIB_SENSOR_AEC_V21_HDRAECTRL_LUMADISTTH_TAG_ID,
1037     CALIB_SENSOR_AEC_V21_HDRAECTRL_LFRAMECTRL_TAG_ID,
1038     CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_TAG_ID,
1039     CALIB_SENSOR_AEC_V21_HDRAECTRL_MFRAMECTRL_TAG_ID,
1040     CALIB_SENSOR_AEC_V21_HDRAECTRL_SFRAMECTRL_TAG_ID,
1041 };
1042 
1043 uint32_t calib_sensor_aec_LongFrmMode_v21_sub_tags[] = {
1044     CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_MODE_TAG_ID,
1045     CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_SFRMMINLINE_TAG_ID,
1046     CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_LFRMMODEEXPTH_TAG_ID,
1047 };
1048 
1049 uint32_t calib_sensor_aec_ExpRatioCtrl_v21_sub_tags[] = {
1050     CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOTYPE_TAG_ID,
1051     CALIB_SENSOR_AEC_V21_HDRAECTRL_RATIOEXPDOT_TAG_ID,
1052     CALIB_SENSOR_AEC_V21_HDRAECTRL_M2SRATIOFIX_TAG_ID,
1053     CALIB_SENSOR_AEC_V21_HDRAECTRL_L2MRATIOFIX_TAG_ID,
1054     CALIB_SENSOR_AEC_V21_HDRAECTRL_M2SRATIOMAX_TAG_ID,
1055     CALIB_SENSOR_AEC_V21_HDRAECTRL_L2MRATIOMAX_TAG_ID,
1056 };
1057 
1058 uint32_t calib_sensor_aec_LframeCtrl_v21_sub_tags[] = {
1059     CALIB_SENSOR_AEC_V21_HDRAECTRL_OEROILOWTH_TAG_ID,
1060     CALIB_SENSOR_AEC_V21_HDRAECTRL_LVHIGHTH_TAG_ID,
1061     CALIB_SENSOR_AEC_V21_HDRAECTRL_LVLOWTH_TAG_ID,
1062     CALIB_SENSOR_AEC_V21_HDRAECTRL_LEXPLEVEL_TAG_ID,
1063     CALIB_SENSOR_AEC_V21_HDRAECTRL_LSETPOINT_TAG_ID,
1064     CALIB_SENSOR_AEC_V21_HDRAECTRL_TARGETLLLUMA_TAG_ID,
1065     CALIB_SENSOR_AEC_V21_HDRAECTRL_NONOEPDFTH_TAG_ID,
1066     CALIB_SENSOR_AEC_V21_HDRAECTRL_LOWLIGHTPDFTH_TAG_ID,
1067 };
1068 
1069 uint32_t calib_sensor_aec_MframeCtrl_v21_sub_tags[] = {
1070     CALIB_SENSOR_AEC_V21_HDRAECTRL_MEXPLEVEL_TAG_ID,
1071     CALIB_SENSOR_AEC_V21_HDRAECTRL_MSETPOINT_TAG_ID,
1072 };
1073 
1074 uint32_t calib_sensor_aec_SframeCtrl_v21_sub_tags[] = {
1075     CALIB_SENSOR_AEC_V21_HDRAECTRL_SEXPLEVEL_TAG_ID,
1076     CALIB_SENSOR_AEC_V21_HDRAECTRL_SSETPOINT_TAG_ID,
1077     CALIB_SENSOR_AEC_V21_HDRAECTRL_TARGETHLLUMA_TAG_ID,
1078     CALIB_SENSOR_AEC_V21_HDRAECTRL_HLROIEXPANDEN_TAG_ID,
1079     CALIB_SENSOR_AEC_V21_HDRAECTRL_HLLUMATOLERANCE_TAG_ID,
1080 };
1081 
1082 
1083 
1084 
1085 
1086 
1087 
1088 uint32_t calib_sensor_af_sub_tags[] = {
1089     CALIB_SENSOR_AF_MODE_TAG_ID,
1090     CALIB_SENSOR_AF_WINDOW_TAG_ID,
1091     CALIB_SENSOR_AF_FIXED_MODE_TAG_ID,
1092     CALIB_SENSOR_AF_MACRO_MODE_TAG_ID,
1093     CALIB_SENSOR_AF_INFINITY_MODE_TAG_ID,
1094     CALIB_SENSOR_AF_CONTRAST_AF_TAG_ID,
1095     CALIB_SENSOR_AF_LASER_AF_TAG_ID,
1096     CALIB_SENSOR_AF_PDAF_TAG_ID,
1097     CALIB_SENSOR_AF_VCM_TAG_ID,
1098     CALIB_SENSOR_AF_MEAS_ISO_TAG_ID,
1099     CALIB_SENSOR_AF_ZOOM_FOCUS_TBL_TAG_ID
1100 };
1101 
1102 uint32_t calib_sensor_af_Window_sub_tags[] = {
1103     CALIB_SENSOR_AF_H_OFFS_TAG_ID,
1104     CALIB_SENSOR_AF_V_OFFS_TAG_ID,
1105     CALIB_SENSOR_AF_H_SIZE_TAG_ID,
1106     CALIB_SENSOR_AF_V_SIZE_TAG_ID,
1107 };
1108 
1109 uint32_t calib_sensor_af_fixed_mode_sub_tags[] = {
1110     CALIB_SENSOR_AF_DEF_CODE_TAG_ID,
1111 };
1112 
1113 uint32_t calib_sensor_af_macro_mode_sub_tags[] = {
1114     CALIB_SENSOR_AF_DEF_CODE_TAG_ID,
1115 };
1116 
1117 uint32_t calib_sensor_af_infinity_mode_sub_tags[] = {
1118     CALIB_SENSOR_AF_DEF_CODE_TAG_ID,
1119 };
1120 
1121 uint32_t calib_sensor_af_contrast_af_sub_tags[] = {
1122     CALIB_SENSOR_AF_CONTRAST_ENABLE_TAG_ID,
1123     CALIB_SENSOR_AF_SEARCH_STRATEGY_TAG_ID,
1124     CALIB_SENSOR_AF_FULL_DIR_TAG_ID,
1125     CALIB_SENSOR_AF_FULL_RANGE_TBL_TAG_ID,
1126     CALIB_SENSOR_AF_ADAPTIVE_DIR_TAG_ID,
1127     CALIB_SENSOR_AF_ADAPTIVE_RANGE_TBL_TAG_ID,
1128     CALIB_SENSOR_AF_TRIG_THERS_TAG_ID,
1129     CALIB_SENSOR_AF_LUMA_TRIG_THERS_TAG_ID,
1130     CALIB_SENSOR_AF_STABLE_THERS_TAG_ID,
1131     CALIB_SENSOR_AF_STABLE_FRAMES_TAG_ID,
1132     CALIB_SENSOR_AF_STABLE_TIME_TAG_ID,
1133     CALIB_SENSOR_AF_SCENE_DIFF_ENABLE_TAG_ID,
1134     CALIB_SENSOR_AF_SCENE_DIFF_THERS_TAG_ID,
1135     CALIB_SENSOR_AF_SCENE_DIFF_BLK_THERS_TAG_ID,
1136     CALIB_SENSOR_AF_CENTER_SCENE_DIFF_THERS_TAG_ID,
1137     CALIB_SENSOR_AF_VALID_MAX_MIN_RATIO_TAG_ID,
1138     CALIB_SENSOR_AF_VALID_VALUE_THERS_TAG_ID,
1139     CALIB_SENSOR_AF_OUT_FOCUS_VALUE_TAG_ID,
1140     CALIB_SENSOR_AF_OUT_FOCUS_POS_TAG_ID,
1141     CALIB_SENSOR_AF_FLAT_VALUE_TAG_ID,
1142     CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_ENABLE_TAG_ID,
1143     CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_THERS_TAG_ID,
1144     CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_STABLE_FRAMES_TAG_ID,
1145     CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_STABLE_THERS_TAG_ID,
1146     CALIB_SENSOR_AF_WEIGHT_ENABLE_TAG_ID,
1147     CALIB_SENSOR_AF_WEIGHT_MATRIX_TAG_ID,
1148 };
1149 
1150 uint32_t calib_sensor_af_laser_af_sub_tags[] = {
1151     CALIB_SENSOR_AF_LASERAF_ENABLE_TAG_ID,
1152     CALIB_SENSOR_AF_LASER_AF_VCMDOT_TAG_ID,
1153     CALIB_SENSOR_AF_LASER_AF_DISTANCEDOT_TAG_ID,
1154 };
1155 
1156 uint32_t calib_sensor_af_pdaf_sub_tags[] = {
1157     CALIB_SENSOR_AF_PDAF_ENABLE_TAG_ID,
1158 };
1159 
1160 uint32_t calib_sensor_af_meas_iso_sub_tags[] = {
1161     CALIB_SENSOR_AF_MEAS_ISO_ISO_TAG_ID,
1162     CALIB_SENSOR_AF_MEAS_ISO_AFMTHRES_TAG_ID,
1163     CALIB_SENSOR_AF_MEAS_ISO_GAMMA_Y_TAG_ID,
1164     CALIB_SENSOR_AF_MEAS_ISO_GAUSS_WEIGHT_TAG_ID,
1165 };
1166 
1167 uint32_t calib_sensor_af_zoomfocus_tbl_sub_tags[] = {
1168     CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUS_LENGTH_TAG_ID,
1169     CALIB_SENSOR_AF_ZOOM_FOCUS_ZOOMPOS_TAG_ID,
1170     CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUSINFPOS_TAG_ID,
1171     CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUSMACROPOS_TAG_ID,
1172 };
1173 
1174 uint32_t calib_sensor_af_vcmcfg_sub_tags[] = {
1175     CALIB_SENSOR_AF_VCM_START_CURRENT_TAG_ID,
1176     CALIB_SENSOR_AF_VCM_RATED_CURRENT_TAG_ID,
1177     CALIB_SENSOR_AF_VCM_STEP_MODE_TAG_ID,
1178     CALIB_SENSOR_AF_EXTRA_DELAY_TAG_ID
1179 };
1180 
1181 uint32_t calib_sensor_ahdr_Merge_sub_tags[] = {
1182     CALIB_SENSOR_AHDR_ENVLV_TAG_ID,
1183     CALIB_SENSOR_AHDR_MERGE_OECURVE_SMOOTH_TAG_ID,
1184     CALIB_SENSOR_AHDR_MERGE_OECURVE_OFFSET_TAG_ID,
1185     CALIB_SENSOR_AHDR_MERGE_MOVECOEF_TAG_ID,
1186     CALIB_SENSOR_AHDR_MERGE_MDCURVELM_SMOOTH_TAG_ID,
1187     CALIB_SENSOR_AHDR_MERGE_MDCURVELM_OFFSET_TAG_ID,
1188     CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_SMOOTH_TAG_ID,
1189     CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_OFFSET_TAG_ID,
1190     CALIB_SENSOR_AHDR_MERGE_OECURVE_DAMP_TAG_ID,
1191     CALIB_SENSOR_AHDR_MERGE_MDCURVELM_DAMP_TAG_ID,
1192     CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_DAMP_TAG_ID,
1193 };
1194 
1195 uint32_t calib_sensor_ahdr_Tmo_sub_tags[] = {
1196     CALIB_SENSOR_AHDR_TMO_TMO_EN_TAG_ID,
1197     CALIB_SENSOR_AHDR_TMO_GLOBALLUMA_TAG_ID,
1198     CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHT_TAG_ID,
1199     CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHT_TAG_ID,
1200     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_TAG_ID,
1201     CALIB_SENSOR_AHDR_TMO_LOCALTMO_TAG_ID,
1202     CALIB_SENSOR_AHDR_TMO_DAMP_TAG_ID,
1203 
1204 };
1205 
1206 uint32_t calib_sensor_ahdr_Tmo_En_sub_tags[] = {
1207     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1208     CALIB_SENSOR_AHDR_TMO_TMO_EN_CELL_EN_TAG_ID,
1209 };
1210 
1211 uint32_t calib_sensor_ahdr_GlobalLuma_sub_tags[] = {
1212     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1213     CALIB_SENSOR_AHDR_TMO_GLOBALLUMAMODE_TAG_ID,
1214     CALIB_SENSOR_AHDR_ENVLV_TAG_ID,
1215     CALIB_SENSOR_AHDR_TMO_ISO_TAG_ID,
1216     CALIB_SENSOR_AHDR_TOLERANCE_TAG_ID,
1217     CALIB_SENSOR_AHDR_TMO_GLOBALLUMA_GLOBALLUMA_TAG_ID,
1218 };
1219 
1220 uint32_t calib_sensor_ahdr_DetailsHighLight_sub_tags[] = {
1221     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1222     CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHTMODE_TAG_ID,
1223     CALIB_SENSOR_AHDR_TMO_OEPDF_TAG_ID,
1224     CALIB_SENSOR_AHDR_ENVLV_TAG_ID,
1225     CALIB_SENSOR_AHDR_TOLERANCE_TAG_ID,
1226     CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHT_DETAILSHIGHLIGHT_TAG_ID,
1227 };
1228 
1229 uint32_t calib_sensor_ahdr_DetailsLowLight_sub_tags[] = {
1230     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1231     CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHTMODE_TAG_ID,
1232     CALIB_SENSOR_AHDR_TMO_FOCUSLUMA_TAG_ID,
1233     CALIB_SENSOR_AHDR_TMO_DARKPDF_TAG_ID,
1234     CALIB_SENSOR_AHDR_TMO_ISO_TAG_ID,
1235     CALIB_SENSOR_AHDR_TOLERANCE_TAG_ID,
1236     CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHT_DETAILSLOWLIGHT_TAG_ID,
1237 };
1238 
1239 uint32_t calib_sensor_ahdr_LocalTMO_sub_tags[] = {
1240     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1241     CALIB_SENSOR_AHDR_TMO_LOCALTMOMODE_TAG_ID,
1242     CALIB_SENSOR_AHDR_TMO_DYNAMICRANGE_TAG_ID,
1243     CALIB_SENSOR_AHDR_ENVLV_TAG_ID,
1244     CALIB_SENSOR_AHDR_TOLERANCE_TAG_ID,
1245     CALIB_SENSOR_AHDR_TMO_LOCALTMO_STRENGTH_TAG_ID,
1246 };
1247 
1248 uint32_t calib_sensor_ahdr_GlobalTMO_sub_tags[] = {
1249     CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID,
1250     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_EN_TAG_ID,
1251     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_IIR_TAG_ID,
1252     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_MODE_TAG_ID,
1253     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_DYNAMICRANGE_TAG_ID,
1254     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_ENVLV_TAG_ID,
1255     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_TOLERANCE_TAG_ID,
1256     CALIB_SENSOR_AHDR_TMO_GLOBALTMO_STRENGTH_TAG_ID,
1257 };
1258 
1259 uint32_t calib_sensor_Drc_sub_tags[] = {
1260     CALIB_SENSOR_DRC_CALIBPARA_TAG_ID,
1261     CALIB_SENSOR_DRC_TUNINGPARA_TAG_ID,
1262 };
1263 
1264 uint32_t calib_sensor_Drc_CalibPara_sub_tags[] = {
1265     CALIB_SENSOR_DRC_SCENE_TAG_ID,
1266     CALIB_SENSOR_DRC_POSITION_TAG_ID,
1267     CALIB_SENSOR_DRC_OFFSET_POW2_TAG_ID,
1268     CALIB_SENSOR_DRC_LPDETAIL_RATIO_TAG_ID,
1269     CALIB_SENSOR_DRC_HPDETAIL_RATIO_TAG_ID,
1270     CALIB_SENSOR_DRC_WEIPRE_FRAME_TAG_ID,
1271     CALIB_SENSOR_DRC_WEICUR_PIX_TAG_ID,
1272     CALIB_SENSOR_DRC_EDGE_SCL_TAG_ID,
1273     CALIB_SENSOR_DRC_MOTION_SCL_TAG_ID,
1274     CALIB_SENSOR_DRC_FORCE_SGM_INV0_TAG_ID,
1275     CALIB_SENSOR_DRC_SPACE_SGM_INV0_TAG_ID,
1276     CALIB_SENSOR_DRC_SPACE_SGM_INV1_TAG_ID,
1277     CALIB_SENSOR_DRC_RANGE_SGM_INV0_TAG_ID,
1278     CALIB_SENSOR_DRC_RANGE_SGM_INV1_TAG_ID,
1279     CALIB_SENSOR_DRC_WEIG_BILAT_TAG_ID,
1280     CALIB_SENSOR_DRC_WEIG_MAXL_TAG_ID,
1281     CALIB_SENSOR_DRC_MIN_OGAIN_TAG_ID,
1282     CALIB_SENSOR_DRC_IIR_FRAME_TAG_ID,
1283     CALIB_SENSOR_DRC_GAIN_TAG_ID,
1284     CALIB_SENSOR_DRC_SCALE_Y0_TAG_ID,
1285 };
1286 
1287 uint32_t calib_sensor_Drc_TuningPara_sub_tags[] = {
1288     CALIB_SENSOR_DRC_SCENE_TAG_ID,
1289     CALIB_SENSOR_DRC_POSITION_TAG_ID,
1290     CALIB_SENSOR_DRC_OFFSET_POW2_TAG_ID,
1291     CALIB_SENSOR_DRC_LPDETAIL_RATIO_TAG_ID,
1292     CALIB_SENSOR_DRC_HPDETAIL_RATIO_TAG_ID,
1293     CALIB_SENSOR_DRC_WEIPRE_FRAME_TAG_ID,
1294     CALIB_SENSOR_DRC_WEICUR_PIX_TAG_ID,
1295     CALIB_SENSOR_DRC_EDGE_SCL_TAG_ID,
1296     CALIB_SENSOR_DRC_MOTION_SCL_TAG_ID,
1297     CALIB_SENSOR_DRC_FORCE_SGM_INV0_TAG_ID,
1298     CALIB_SENSOR_DRC_SPACE_SGM_INV0_TAG_ID,
1299     CALIB_SENSOR_DRC_SPACE_SGM_INV1_TAG_ID,
1300     CALIB_SENSOR_DRC_RANGE_SGM_INV0_TAG_ID,
1301     CALIB_SENSOR_DRC_RANGE_SGM_INV1_TAG_ID,
1302     CALIB_SENSOR_DRC_WEIG_BILAT_TAG_ID,
1303     CALIB_SENSOR_DRC_WEIG_MAXL_TAG_ID,
1304     CALIB_SENSOR_DRC_MIN_OGAIN_TAG_ID,
1305     CALIB_SENSOR_DRC_IIR_FRAME_TAG_ID,
1306     CALIB_SENSOR_DRC_GAIN_TAG_ID,
1307     CALIB_SENSOR_DRC_SCALE_Y0_TAG_ID,
1308 };
1309 
1310 uint32_t calib_sensor_blc_sub_tags[] = {
1311     CALIB_SENSOR_BLC_ENABLE_TAG_ID,
1312     CALIB_SENSOR_BLC_MODE_CELL_TAG_ID,
1313 };
1314 
1315 uint32_t calib_sensor_blc_mode_cell_sub_tags[] = {
1316     CALIB_SENSOR_BLC_MODE_NAME_TAG_ID,
1317     CALIB_SENSOR_BLC_ISO_TAG_ID,
1318     CALIB_SENSOR_BLC_BLACK_LEVEL_TAG_ID,
1319 };
1320 
1321 
1322 uint32_t calib_sensor_dpcc_sub_tags[] = {
1323     CALIB_SENSOR_DPCC_ENABLE_TAG_ID,
1324     CALIB_SENSOR_DPCC_VERSION_TAG_ID,
1325     CALIB_SENSOR_DPCC_FAST_MODE_TAG_ID,
1326     CALIB_SENSOR_DPCC_EXPERT_MODE_TAG_ID,
1327     CALIB_SENSOR_DPCC_PDAF_TAG_ID,
1328     CALIB_SENSOR_DPCC_SENSOR_TAG_ID,
1329 };
1330 
1331 uint32_t calib_sensor_dpcc_fast_mode_sub_tags[] = {
1332     CALIB_SENSOR_DPCC_FAST_MODE_ENABLE_TAG_ID,
1333     CALIB_SENSOR_DPCC_FAST_MODE_ISO_TAG_ID,
1334     CALIB_SENSOR_DPCC_FAST_MODE_SINGLE_ENABLE_TAG_ID,
1335     CALIB_SENSOR_DPCC_FAST_MODE_SINGLE_LEVEL_TAG_ID,
1336     CALIB_SENSOR_DPCC_FAST_MODE_DOUBLE_ENABLE_TAG_ID,
1337     CALIB_SENSOR_DPCC_FAST_MODE_DOUBLE_LEVEL_TAG_ID,
1338     CALIB_SENSOR_DPCC_FAST_MODE_TRIPLE_ENABLE_TAG_ID,
1339     CALIB_SENSOR_DPCC_FAST_MODE_TRIPLE_LEVEL_TAG_ID,
1340 };
1341 
1342 uint32_t calib_sensor_dpcc_expert_mode_sub_tags[] = {
1343     CALIB_SENSOR_DPCC_ISO_TAG_ID,
1344     CALIB_SENSOR_DPCC_STAGE1_ENABLE_TAG_ID,
1345     CALIB_SENSOR_DPCC_GRAYSCALE_MODE_TAG_ID,
1346     CALIB_SENSOR_DPCC_RK_OUT_SEL_TAG_ID,
1347     CALIB_SENSOR_DPCC_DPCC_OUT_SEL_TAG_ID,
1348     CALIB_SENSOR_DPCC_STAGE1_RB_3X3_TAG_ID,
1349     CALIB_SENSOR_DPCC_STAGE1_G_3X3_TAG_ID,
1350     CALIB_SENSOR_DPCC_STAGE1_INC_RB_CENTER_TAG_ID,
1351     CALIB_SENSOR_DPCC_STAGE1_INC_G_CENTER_TAG_ID,
1352     CALIB_SENSOR_DPCC_STAGE1_USE_FIX_SET_TAG_ID,
1353     CALIB_SENSOR_DPCC_STAGE1_USE_SET1_TAG_ID,
1354     CALIB_SENSOR_DPCC_STAGE1_USE_SET2_TAG_ID,
1355     CALIB_SENSOR_DPCC_STAGE1_USE_SET3_TAG_ID,
1356     CALIB_SENSOR_DPCC_SET_CELL_TAG_ID,
1357 };
1358 
1359 uint32_t calib_sensor_set_cell_sub_tags[] = {
1360     CALIB_SENSOR_DPCC_SET_CELL_RK_TAG_ID,
1361     CALIB_SENSOR_DPCC_SET_CELL_LC_TAG_ID,
1362     CALIB_SENSOR_DPCC_SET_CELL_PG_TAG_ID,
1363     CALIB_SENSOR_DPCC_SET_CELL_RND_TAG_ID,
1364     CALIB_SENSOR_DPCC_SET_CELL_RG_TAG_ID,
1365     CALIB_SENSOR_DPCC_SET_CELL_RO_TAG_ID,
1366 };
1367 
1368 uint32_t calib_sensor_set_cell_RK_sub_tags[] = {
1369     CALIB_SENSOR_DPCC_RK_RED_BLUE_ENABLE_TAG_ID,
1370     CALIB_SENSOR_DPCC_RK_GREEN_ENABLE_TAG_ID,
1371     CALIB_SENSOR_DPCC_RK_RED_BLUE_SW_MINDIS_TAG_ID,
1372     CALIB_SENSOR_DPCC_RK_GREEN_SW_MINDIS_TAG_ID,
1373     CALIB_SENSOR_DPCC_RK_SW_DIS_SCALE_MIN_TAG_ID,
1374     CALIB_SENSOR_DPCC_RK_SW_DIS_SCALE_MAX_TAG_ID,
1375 };
1376 
1377 uint32_t calib_sensor_set_cell_LC_sub_tags[] = {
1378     CALIB_SENSOR_DPCC_LC_RED_BLUE_ENABLE_TAG_ID,
1379     CALIB_SENSOR_DPCC_LC_GREEN_ENABLE_TAG_ID,
1380     CALIB_SENSOR_DPCC_LC_RED_BLUE_LINE_MAD_FAC_TAG_ID,
1381     CALIB_SENSOR_DPCC_LC_GREEN_LINE_MAD_FAC_TAG_ID,
1382     CALIB_SENSOR_DPCC_LC_RED_BLUE_LINE_THR_TAG_ID,
1383     CALIB_SENSOR_DPCC_LC_GREEN_LINE_THR_TAG_ID,
1384 };
1385 
1386 uint32_t calib_sensor_set_cell_PG_sub_tags[] = {
1387     CALIB_SENSOR_DPCC_PG_RED_BLUE_ENABLE_TAG_ID,
1388     CALIB_SENSOR_DPCC_PG_GREEN_ENABLE_TAG_ID,
1389     CALIB_SENSOR_DPCC_PG_RED_BLUE_FAC_TAG_ID,
1390     CALIB_SENSOR_DPCC_PG_GREEN_FAC_TAG_ID,
1391 };
1392 
1393 uint32_t calib_sensor_set_cell_RND_sub_tags[] = {
1394     CALIB_SENSOR_DPCC_RND_RED_BLUE_ENABLE_TAG_ID,
1395     CALIB_SENSOR_DPCC_RND_GREEN_ENABLE_TAG_ID,
1396     CALIB_SENSOR_DPCC_RND_RED_BLUE_THR_TAG_ID,
1397     CALIB_SENSOR_DPCC_RND_GREEN_THR_TAG_ID,
1398     CALIB_SENSOR_DPCC_RND_RED_BLUE_OFFS_TAG_ID,
1399     CALIB_SENSOR_DPCC_RND_GREEN_OFFS_TAG_ID,
1400 };
1401 
1402 uint32_t calib_sensor_set_cell_RG_sub_tags[] = {
1403     CALIB_SENSOR_DPCC_RG_RED_BLUE_ENABLE_TAG_ID,
1404     CALIB_SENSOR_DPCC_RG_GREEN_ENABLE_TAG_ID,
1405     CALIB_SENSOR_DPCC_RG_RED_BLUE_FAC_TAG_ID,
1406     CALIB_SENSOR_DPCC_RG_GREEN_FAC_TAG_ID,
1407 };
1408 
1409 uint32_t calib_sensor_set_cell_RO_sub_tags[] = {
1410     CALIB_SENSOR_DPCC_RO_RED_BLUE_ENABLE_TAG_ID,
1411     CALIB_SENSOR_DPCC_RO_GREEN_ENABLE_TAG_ID,
1412     CALIB_SENSOR_DPCC_RO_RED_BLUE_LIM_TAG_ID,
1413     CALIB_SENSOR_DPCC_RO_GREEN_LIM_TAG_ID,
1414 };
1415 
1416 uint32_t calib_sensor_dpcc_pdaf_sub_tags[] = {
1417     CALIB_SENSOR_DPCC_PDAF_ENABLE_TAG_ID,
1418     CALIB_SENSOR_DPCC_PDAF_POINT_ENABLE_TAG_ID,
1419     CALIB_SENSOR_DPCC_PDAF_OFFSETX_TAG_ID,
1420     CALIB_SENSOR_DPCC_PDAF_OFFSETY_TAG_ID,
1421     CALIB_SENSOR_DPCC_PDAF_WRAPX_NUM_TAG_ID,
1422     CALIB_SENSOR_DPCC_PDAF_WRAPY_NUM_TAG_ID,
1423     CALIB_SENSOR_DPCC_PDAF_POINT_X_TAG_ID,
1424     CALIB_SENSOR_DPCC_PDAF_POINT_Y_TAG_ID,
1425     CALIB_SENSOR_DPCC_PDAF_POINT_FORWARD_MED_TAG_ID,
1426 };
1427 
1428 uint32_t calib_sensor_dpcc_sensor_dpcc_sub_tags[] = {
1429     CALIB_SENSOR_DPCC_SENSOR_AUTO_ENABLE_TAG_ID,
1430     CALIB_SENSOR_DPCC_SENSOR_MAX_LEVEL_TAG_ID,
1431     CALIB_SENSOR_DPCC_ISO_TAG_ID,
1432     CALIB_SENSOR_DPCC_SENSOR_LEVEL_SINGLE_TAG_ID,
1433     CALIB_SENSOR_DPCC_SENSOR_LEVEL_MULTIPLE_TAG_ID,
1434 };
1435 
1436 uint32_t calib_sensor_bayernr_sub_tags[] = {
1437     CALIB_SENSOR_BAYERNR_ENABLE_TAG_ID,
1438     CALIB_SENSOR_BAYERNR_VERSION_TAG_ID,
1439     CALIB_SENSOR_BAYERNR_MODE_CELL_TAG_ID,
1440 };
1441 
1442 uint32_t calib_sensor_bayernr_mode_cell_sub_tags[] = {
1443     CALIB_SENSOR_BAYERNR_MODE_NAME_TAG_ID,
1444     CALIB_SENSOR_BAYERNR_SETTING_TAG_ID,
1445 };
1446 
1447 
1448 uint32_t calib_sensor_Bayernr_Setting_sub_tags[] = {
1449     CALIB_SENSOR_BAYERNR_SETTING_SNR_MODE_TAG_ID,
1450     CALIB_SENSOR_BAYERNR_SETTING_SENSOR_MODE_TAG_ID,
1451     CALIB_SENSOR_BAYERNR_ISO_TAG_ID,
1452     CALIB_SENSOR_BAYERNR_FILTPARA_TAG_ID,
1453     CALIB_SENSOR_BAYERNR_LULEVEL_TAG_ID,
1454     CALIB_SENSOR_BAYERNR_LULEVELVAL_TAG_ID,
1455     CALIB_SENSOR_BAYERNR_LURATIO_TAG_ID,
1456     CALIB_SENSOR_BAYERNR_LAMDA_TAG_ID,
1457     CALIB_SENSOR_BAYERNR_FIXW_TAG_ID,
1458     CALIB_SENSOR_BAYERNR_GAUSS_EN_TAG_ID,
1459     CALIB_SENSOR_BAYERNR_RGAINOFF_TAG_ID,
1460     CALIB_SENSOR_BAYERNR_RGAINFILP_TAG_ID,
1461     CALIB_SENSOR_BAYERNR_BGAINOFF_TAG_ID,
1462     CALIB_SENSOR_BAYERNR_BGAINFILP_TAG_ID,
1463     CALIB_SENSOR_BAYERNR_EDGESOFTNESS_TAG_ID,
1464     CALIB_SENSOR_BAYERNR_GAUSSWEIGHT0_TAG_ID,
1465     CALIB_SENSOR_BAYERNR_GAUSSWEIGHT1_TAG_ID,
1466     CALIB_SENSOR_BAYERNR_BILEDGEFILTER_TAG_ID,
1467     CALIB_SENSOR_BAYERNR_BILFILTERSTRENG_TAG_ID,
1468     CALIB_SENSOR_BAYERNR_BILEDGESOFT_TAG_ID,
1469     CALIB_SENSOR_BAYERNR_BILEDGESOFTRATIO_TAG_ID,
1470     CALIB_SENSOR_BAYERNR_BILREGWGT_TAG_ID,
1471 };
1472 
1473 uint32_t calib_sensor_lsc_sub_tags[] = {
1474     CALIB_SENSOR_LSC_ENABLE_TAG_ID,
1475     CALIB_SENSOR_LSC_DAMP_ENABLE_TAG_ID,
1476     CALIB_SENSOR_LSC_ALSCCOF_TAG_ID,
1477     CALIB_SENSOR_LSC_TABLEALL_TAG_ID,
1478 };
1479 
1480 uint32_t calib_sensor_alscCoef_sub_tags[] = {
1481     CALIB_SENSOR_LSC_ALSCCOF_RESALL_TAG_ID,
1482     CALIB_SENSOR_LSC_ALSCCOF_IllALL_TAG_ID,
1483 };
1484 
1485 uint32_t calib_sensor_resolutionAlll_sub_tags[] = {
1486     CALIB_SENSOR_LSC_ALSCCOF_RESALL_NAME_TAG_ID,
1487 };
1488 
1489 uint32_t calib_sensor_illAll_sub_tags[] = {
1490     CALIB_SENSOR_LSC_ALSCCOF_CASE_TAG_ID,
1491     CALIB_SENSOR_LSC_ALSCCOF_NAME_TAG_ID,
1492     CALIB_SENSOR_LSC_ALSCCOF_WBGAIN_TAG_ID,
1493     CALIB_SENSOR_LSC_ALSCCOF_TABLEUSED_TAG_ID,
1494     CALIB_SENSOR_LSC_ALSCCOF_GAINS_TAG_ID,
1495     CALIB_SENSOR_LSC_ALSCCOF_VIG_TAG_ID,
1496 };
1497 
1498 uint32_t calib_sensor_tableAll_sub_tags[] = {
1499     CALIB_SENSOR_LSC_TABLEALL_NAME_TAG_ID,
1500     CALIB_SENSOR_LSC_TABLEALL_RESOLUTION_TAG_ID,
1501     CALIB_SENSOR_LSC_TABLEALL_ILLUMINATION_TAG_ID,
1502     CALIB_SENSOR_LSC_TABLEALL_LSC_SECTORS_TAG_ID,
1503     CALIB_SENSOR_LSC_TABLEALL_LSC_NO_TAG_ID,
1504     CALIB_SENSOR_LSC_TABLEALL_LSC_XO_TAG_ID,
1505     CALIB_SENSOR_LSC_TABLEALL_LSC_YO_TAG_ID,
1506     CALIB_SENSOR_LSC_TABLEALL_LSC_SECTOR_SIZE_X_TAG_ID,
1507     CALIB_SENSOR_LSC_TABLEALL_LSC_SECTOR_SIZE_Y_TAG_ID,
1508     CALIB_SENSOR_LSC_TABLEALL_LSC_VIGNETTING_TAG_ID,
1509     CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_RED_TAG_ID,
1510     CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_GREENR_TAG_ID,
1511     CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_GREENB_TAG_ID,
1512     CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_BLUE_TAG_ID,
1513 };
1514 
1515 uint32_t calib_sensor_rkdm_sub_tags[] = {
1516     CALIB_SENSOR_RKDM_ENABLE_TAG_ID,
1517     CALIB_SENSOR_RKDM_DEBAYER_FILTER1_TAG_ID,
1518     CALIB_SENSOR_RKDM_DEBAYER_FILTER2_TAG_ID,
1519     CALIB_SENSOR_RKDM_DEBAYER_GAIN_OFFSET_TAG_ID,
1520     CALIB_SENSOR_RKDM_ISO_TAG_ID,
1521     CALIB_SENSOR_RKDM_SHARP_STRENGTH_TAG_ID,
1522     CALIB_SENSOR_RKDM_DEBAYER_HF_OFFSET_TAG_ID,
1523     CALIB_SENSOR_RKDM_DEBAYER_OFFSET_TAG_ID,
1524     CALIB_SENSOR_RKDM_DEBAYER_CLIP_EN_TAG_ID,
1525     CALIB_SENSOR_RKDM_DEBAYER_FILTER_G_EN_TAG_ID,
1526     CALIB_SENSOR_RKDM_DEBAYER_FILTER_C_EN_TAG_ID,
1527     CALIB_SENSOR_RKDM_DEBAYER_THED0_TAG_ID,
1528     CALIB_SENSOR_RKDM_DEBAYER_THED1_TAG_ID,
1529     CALIB_SENSOR_RKDM_DEBAYER_DIST_SCALE_TAG_ID,
1530     CALIB_SENSOR_RKDM_DEBAYER_CNR_STRENGTH_TAG_ID,
1531     CALIB_SENSOR_RKDM_DEBAYER_SHIFT_NUM_TAG_ID,
1532 };
1533 
1534 uint32_t calib_sensor_ccm_sub_tags[] = {
1535     CALIB_SENSOR_CCM_ENABLE_TAG_ID,
1536     CALIB_SENSOR_CCM_MODE_CELL_TAG_ID,
1537 };
1538 
1539 
1540 uint32_t calib_sensor_ccm_mode_cell_sub_tags[] = {
1541     CALIB_SENSOR_CCM_MODE_NAME_TAG_ID,
1542     CALIB_SENSOR_CCM_DAMP_ENABLE_TAG_ID,
1543     CALIB_SENSOR_CCM_LUMA_CCM_TAG_ID,
1544     CALIB_SENSOR_CCM_ACCMCOF_TAG_ID,
1545     CALIB_SENSOR_CCM_MATRIXALL_TAG_ID,
1546 };
1547 
1548 uint32_t calib_sensor_lumaCCM_sub_tags[] = {
1549     CALIB_SENSOR_CCM_LUMA_CCM_RGB2Y_PARA_TAG_ID,
1550     CALIB_SENSOR_CCM_LUMA_CCM_LOW_BOUND_POS_BIT_TAG_ID,
1551     CALIB_SENSOR_CCM_LUMA_CCM_Y_ALPHA_CURVE_TAG_ID,
1552     CALIB_SENSOR_CCM_LUMA_CCM_GAIN_ALPHASCALE_CURVE_TAG_ID,
1553 };
1554 
1555 uint32_t calib_sensor_gain_alphaScale_curve_sub_tags[] = {
1556     CALIB_SENSOR_CCM_LUMA_CCM_GAIN_TAG_ID,
1557     CALIB_SENSOR_CCM_LUMA_CCM_SCALE_TAG_ID,
1558 };
1559 
1560 
1561 uint32_t calib_sensor_ccm_illAll_sub_tags[] = {
1562     CALIB_SENSOR_CCM_ACCMCOF_NAME_TAG_ID,
1563     CALIB_SENSOR_CCM_ACCMCOF_WBGAIN_TAG_ID,
1564     CALIB_SENSOR_CCM_ACCMCOF_MATRIXUSED_TAG_ID,
1565     CALIB_SENSOR_CCM_ACCMCOF_GAINS_TAG_ID,
1566     CALIB_SENSOR_CCM_ACCMCOF_SAT_TAG_ID,
1567 };
1568 
1569 uint32_t calib_sensor_ccm_aCcmCof_sub_tags[] = {
1570     CALIB_SENSOR_CCM_ACCMCOF_IllALL_TAG_ID,
1571 };
1572 
1573 uint32_t calib_sensor_ccm_matrixAll_sub_tags[] = {
1574     CALIB_SENSOR_CCM_MATRIXALL_NAME_TAG_ID,
1575     CALIB_SENSOR_CCM_MATRIXALL_ILLUMINATION_TAG_ID,
1576     CALIB_SENSOR_CCM_MATRIXALL_SAT_TAG_ID,
1577     CALIB_SENSOR_CCM_MATRIXALL_MATRIX_TAG_ID,
1578     CALIB_SENSOR_CCM_MATRIXALL_OFFSET_TAG_ID,
1579 };
1580 
1581 uint32_t calib_sensor_uvnr_sub_tags[] = {
1582     CALIB_SENSOR_UVNR_ENABLE_TAG_ID,
1583     CALIB_SENSOR_UVNR_VERSION_TAG_ID,
1584     CALIB_SENSOR_UVNR_MODE_CELL_TAG_ID,
1585 };
1586 
1587 uint32_t calib_sensor_uvnr_mode_cell_sub_tags[] = {
1588     CALIB_SENSOR_UVNR_MODE_NAME_TAG_ID,
1589     CALIB_SENSOR_UVNR_SETTING_TAG_ID,
1590 };
1591 
1592 uint32_t calib_sensor_uvnr_setting_sub_tags[] = {
1593     CALIB_SENSOR_UVNR_SETTING_SNR_MODE_TAG_ID,
1594     CALIB_SENSOR_UVNR_SETTING_SENSOR_MODE_TAG_ID,
1595     CALIB_SENSOR_UVNR_ISO_TAG_ID,
1596     CALIB_SENSOR_UVNR_STEP0_UVGRAD_RATIO_TAG_ID,
1597     CALIB_SENSOR_UVNR_STEP0_UVGRAD_OFFSET_TAG_ID,
1598     CALIB_SENSOR_UVNR_STEP1_NONMED1_TAG_ID,
1599     CALIB_SENSOR_UVNR_STEP1_NONBF1_TAG_ID,
1600     CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_W_TAG_ID,
1601     CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_H_TAG_ID,
1602     CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_MEANSIZE_TAG_ID,
1603     CALIB_SENSOR_UVNR_STEP1_MEDIAN_RATIO_TAG_ID,
1604     CALIB_SENSOR_UVNR_STEP1_MEDIAN_SIZE_TAG_ID,
1605     CALIB_SENSOR_UVNR_STEP1_MEDIAN_IIR_TAG_ID,
1606     CALIB_SENSOR_UVNR_STEP1_BF_SIGMAR_TAG_ID,
1607     CALIB_SENSOR_UVNR_STEP1_BF_UVGAIN_TAG_ID,
1608     CALIB_SENSOR_UVNR_STEP1_BF_RATIO_TAG_ID,
1609     CALIB_SENSOR_UVNR_STEP1_BF_SIZE_TAG_ID,
1610     CALIB_SENSOR_UVNR_STEP1_BF_SIGMAD_TAG_ID,
1611     CALIB_SENSOR_UVNR_STEP1_BF_ISROWIIR_TAG_ID,
1612     CALIB_SENSOR_UVNR_STEP1_BF_ISYCOPY_TAG_ID,
1613     CALIB_SENSOR_UVNR_STEP2_NONEXT_BLOCK_TAG_ID,
1614     CALIB_SENSOR_UVNR_STEP2_NONMED_TAG_ID,
1615     CALIB_SENSOR_UVNR_STEP2_NONBF_TAG_ID,
1616     CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_W_TAG_ID,
1617     CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_H_TAG_ID,
1618     CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_MEANSIZE_TAG_ID,
1619     CALIB_SENSOR_UVNR_STEP2_MEDIAN_RATIO_TAG_ID,
1620     CALIB_SENSOR_UVNR_STEP2_MEDIAN_SIZE_TAG_ID,
1621     CALIB_SENSOR_UVNR_STEP2_MEDIAN_IIR_TAG_ID,
1622     CALIB_SENSOR_UVNR_STEP2_BF_SIGMAR_TAG_ID,
1623     CALIB_SENSOR_UVNR_STEP2_BF_UVGAIN_TAG_ID,
1624     CALIB_SENSOR_UVNR_STEP2_BF_RATIO_TAG_ID,
1625     CALIB_SENSOR_UVNR_STEP2_BF_SIZE_TAG_ID,
1626     CALIB_SENSOR_UVNR_STEP2_BF_SIGMAD_TAG_ID,
1627     CALIB_SENSOR_UVNR_STEP2_BF_ISROWIIR_TAG_ID,
1628     CALIB_SENSOR_UVNR_STEP2_BF_ISYCOPY_TAG_ID,
1629     CALIB_SENSOR_UVNR_STEP3_NONBF3_TAG_ID,
1630     CALIB_SENSOR_UVNR_STEP3_BF_SIGMAR_TAG_ID,
1631     CALIB_SENSOR_UVNR_STEP3_BF_UVGAIN_TAG_ID,
1632     CALIB_SENSOR_UVNR_STEP3_BF_RATIO_TAG_ID,
1633     CALIB_SENSOR_UVNR_STEP3_BF_SIZE_TAG_ID,
1634     CALIB_SENSOR_UVNR_STEP3_BF_SIGMAD_TAG_ID,
1635     CALIB_SENSOR_UVNR_STEP3_BF_ISROWIIR_TAG_ID,
1636     CALIB_SENSOR_UVNR_STEP3_BF_ISYCOPY_TAG_ID,
1637     CALIB_SENSOR_UVNR_KERNEL_3X3_TAG_ID,
1638     CALIB_SENSOR_UVNR_KERNEL_5X5_TAG_ID,
1639     CALIB_SENSOR_UVNR_KERNEL_9X9_TAG_ID,
1640     CALIB_SENSOR_UVNR_KERNEL_9X9_NUM_TAG_ID,
1641     CALIB_SENSOR_UVNR_SIGMA_ADJ_LUMA_TAG_ID,
1642     CALIB_SENSOR_UVNR_SIGMA_ADJ_RATIO_TAG_ID,
1643     CALIB_SENSOR_UVNR_THRESHOLD_ADJ_LUMA_TAG_ID,
1644     CALIB_SENSOR_UVNR_THRESHOLD_ADJ_THRE_TAG_ID,
1645 };
1646 
1647 uint32_t calib_sensor_gamma_sub_tags[] = {
1648     CALIB_SENSOR_GAMMA_GAMMA_EN_TAG_ID,
1649     CALIB_SENSOR_GAMMA_GAMMA_OUT_SEGNUM_TAG_ID,
1650     CALIB_SENSOR_GAMMA_GAMMA_OUT_OFFSET_TAG_ID,
1651     CALIB_SENSOR_GAMMA_CURVE_NORMAL_TAG_ID,
1652     CALIB_SENSOR_GAMMA_CURVE_HDR_TAG_ID,
1653     CALIB_SENSOR_GAMMA_CURVE_NIGHT_TAG_ID,
1654 };
1655 
1656 uint32_t calib_sensor_degamma_sub_tags[] = {
1657     CALIB_SENSOR_DEGAMMA_EN_TAG_ID,
1658     CALIB_SENSOR_DEGAMMA_MODE_CELL_TAG_ID,
1659 };
1660 
1661 uint32_t calib_sensor_degamma_cell_sub_tags[] = {
1662     CALIB_SENSOR_DEGAMMA_MODE_NAME_TAG_ID,
1663     CALIB_SENSOR_DEGAMMA_SCENE_EN_TAG_ID,
1664     CALIB_SENSOR_DEGAMMA_CURVE_X_TAG_ID,
1665     CALIB_SENSOR_DEGAMMA_CURVE_R_TAG_ID,
1666     CALIB_SENSOR_DEGAMMA_CURVE_G_TAG_ID,
1667     CALIB_SENSOR_DEGAMMA_CURVE_B_TAG_ID,
1668 };
1669 
1670 
1671 uint32_t calib_sensor_ynr_sub_tags[] = {
1672     CALIB_SENSOR_YNR_ENABLE_TAG_ID,
1673     CALIB_SENSOR_YNR_VERSION_TAG_ID,
1674     CALIB_SENSOR_YNR_MODE_CELL_TAG_ID,
1675 };
1676 
1677 uint32_t calib_sensor_ynr_mode_cell_sub_tags[] = {
1678     CALIB_SENSOR_YNR_MODE_NAME_TAG_ID,
1679     CALIB_SENSOR_YNR_SETTING_CELL_TAG_ID,
1680 };
1681 
1682 
1683 uint32_t calib_sensor_YNR_Setting_sub_tags[] = {
1684     CALIB_SENSOR_YNR_SETTING_SNR_MODE_TAG_ID,
1685     CALIB_SENSOR_YNR_SETTING_SENSOR_MODE_TAG_ID,
1686     CALIB_SENSOR_YNR_ISO_CELL_TAG_ID,
1687 };
1688 
1689 uint32_t calib_sensor_YNR_ISO_sub_tags[] = {
1690     CALIB_SENSOR_YNR_ISO_TAG_ID,
1691     CALIB_SENSOR_YNR_SIGMA_CURVE_TAG_ID,
1692     CALIB_SENSOR_YNR_YNR_LCI_TAG_ID,
1693     CALIB_SENSOR_YNR_YNR_LHCI_TAG_ID,
1694     CALIB_SENSOR_YNR_YNR_HLCI_TAG_ID,
1695     CALIB_SENSOR_YNR_YNR_HHCI_TAG_ID,
1696     CALIB_SENSOR_YNR_LO_LUMAPOINT_TAG_ID,
1697     CALIB_SENSOR_YNR_LO_LUMARATIO_TAG_ID,
1698     CALIB_SENSOR_YNR_LO_DIRECTIONSTRENGTH_TAG_ID,
1699     CALIB_SENSOR_YNR_LO_BFSCALE_TAG_ID,
1700     CALIB_SENSOR_YNR_IMERGE_RATIO_TAG_ID,
1701     CALIB_SENSOR_YNR_IMERGE_BOUND_TAG_ID,
1702     CALIB_SENSOR_YNR_DENOISE_WEIGHT_TAG_ID,
1703     CALIB_SENSOR_YNR_HI_LUMAPOINT_TAG_ID,
1704     CALIB_SENSOR_YNR_HI_LUMARATIO_TAG_ID,
1705     CALIB_SENSOR_YNR_HI_BFSCALE_TAG_ID,
1706     CALIB_SENSOR_YNR_HWITH_D_TAG_ID,
1707     CALIB_SENSOR_YNR_HI_DENOISESTRENGTH_TAG_ID,
1708     CALIB_SENSOR_YNR_HI_DETAILMINADJDNW_TAG_ID,
1709     CALIB_SENSOR_YNR_HI_DENOISEWEIGHT_TAG_ID,
1710     CALIB_SENSOR_YNR_Y_LUMA_POINT_TAG_ID,
1711     CALIB_SENSOR_YNR_HGRAD_Y_LEVEL1_TAG_ID,
1712     CALIB_SENSOR_YNR_HGRAD_Y_LEVEL2_TAG_ID,
1713     CALIB_SENSOR_YNR_HGRAD_Y_LEVEL3_TAG_ID,
1714     CALIB_SENSOR_YNR_HGRAD_Y_LEVEL4_TAG_ID,
1715     CALIB_SENSOR_YNR_HI_SOFT_THRESH_SCALE_TAG_ID,
1716 };
1717 
1718 uint32_t calib_sensor_gic_sub_tags[] = {
1719     CALIB_SENSOR_GIC_CALIBPARA_V20_TAG_ID,
1720     CALIB_SENSOR_GIC_CALIBPARA_V21_TAG_ID,
1721     CALIB_SENSOR_GIC_TUNINGPARA_V20_TAG_ID,
1722     CALIB_SENSOR_GIC_TUNINGPARA_V21_TAG_ID,
1723 };
1724 
1725 uint32_t calib_sensor_gic_CalibParaV20_sub_tags[] = {
1726     CALIB_SENSOR_GIC_SCENE_TAG_ID,
1727     CALIB_SENSOR_GIC_ENABLE_TAG_ID,
1728     CALIB_SENSOR_GIC_EDGE_EN_TAG_ID,
1729     CALIB_SENSOR_GIC_GR_RATION_TAG_ID,
1730     CALIB_SENSOR_GIC_NOISE_CUT_EN_TAG_ID,
1731     CALIB_SENSOR_GIC_SETTING_TAG_ID,
1732 };
1733 
1734 uint32_t calib_sensor_gic_TuningParaV20_sub_tags[] = {
1735     CALIB_SENSOR_GIC_SCENE_TAG_ID,
1736     CALIB_SENSOR_GIC_ENABLE_TAG_ID,
1737     CALIB_SENSOR_GIC_EDGE_EN_TAG_ID,
1738     CALIB_SENSOR_GIC_GR_RATION_TAG_ID,
1739     CALIB_SENSOR_GIC_NOISE_CUT_EN_TAG_ID,
1740     CALIB_SENSOR_GIC_SETTING_TAG_ID,
1741 };
1742 
1743 uint32_t calib_sensor_gic_CalibParaV21_sub_tags[] = {
1744     CALIB_SENSOR_GIC_SCENE_TAG_ID,
1745     CALIB_SENSOR_GIC_ENABLE_TAG_ID,
1746     CALIB_SENSOR_GIC_GR_RATION_TAG_ID,
1747     CALIB_SENSOR_GIC_SETTING_V21_TAG_ID,
1748 };
1749 
1750 uint32_t calib_sensor_gic_TuningParaV21_sub_tags[] = {
1751     CALIB_SENSOR_GIC_SCENE_TAG_ID,
1752     CALIB_SENSOR_GIC_ENABLE_TAG_ID,
1753     CALIB_SENSOR_GIC_GR_RATION_TAG_ID,
1754     CALIB_SENSOR_GIC_SETTING_V21_TAG_ID,
1755 };
1756 
1757 uint32_t calib_sensor_GIC_Setting_v21_sub_tags[] = {
1758     CALIB_SENSOR_GIC_SETTING_ISO_TAG_ID,
1759     CALIB_SENSOR_GIC_MIN_BUSY_THRE_TAG_ID,
1760     CALIB_SENSOR_GIC_MIN_GRAD_THR1_TAG_ID,
1761     CALIB_SENSOR_GIC_MIN_GRAD_THR2_TAG_ID,
1762     CALIB_SENSOR_GIC_K_GRAD1_TAG_ID,
1763     CALIB_SENSOR_GIC_K_GRAD2_TAG_ID,
1764     CALIB_SENSOR_GIC_GB_THRE_TAG_ID,
1765     CALIB_SENSOR_GIC_MAXCORV_TAG_ID,
1766     CALIB_SENSOR_GIC_MAXCORVBOTH_TAG_ID,
1767     CALIB_SENSOR_GIC_DARK_THRE_TAG_ID,
1768     CALIB_SENSOR_GIC_DARK_THREHI_TAG_ID,
1769     CALIB_SENSOR_GIC_K_GRAD1_DARK_TAG_ID,
1770     CALIB_SENSOR_GIC_K_GRAD2_DARK_TAG_ID,
1771     CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK1_TAG_ID,
1772     CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK2_TAG_ID,
1773     CALIB_SENSOR_GIC_NOISECURVE0_TAG_ID,
1774     CALIB_SENSOR_GIC_NOISECURVE1_TAG_ID,
1775     CALIB_SENSOR_GIC_GLOBALSTRENGTH_TAG_ID,
1776     CALIB_SENSOR_GIC_DIFF_CLIP_TAG_ID,
1777     CALIB_SENSOR_GIC_NOISESCALE_TAG_ID,
1778     CALIB_SENSOR_GIC_NOISEBASE_TAG_ID,
1779 };
1780 
1781 uint32_t calib_sensor_GIC_Setting_v20_sub_tags[] = {
1782     CALIB_SENSOR_GIC_SETTING_ISO_TAG_ID,
1783     CALIB_SENSOR_GIC_MIN_BUSY_THRE_TAG_ID,
1784     CALIB_SENSOR_GIC_MIN_GRAD_THR1_TAG_ID,
1785     CALIB_SENSOR_GIC_MIN_GRAD_THR2_TAG_ID,
1786     CALIB_SENSOR_GIC_K_GRAD1_TAG_ID,
1787     CALIB_SENSOR_GIC_K_GRAD2_TAG_ID,
1788     CALIB_SENSOR_GIC_GB_THRE_TAG_ID,
1789     CALIB_SENSOR_GIC_MAXCORV_TAG_ID,
1790     CALIB_SENSOR_GIC_MAXCORVBOTH_TAG_ID,
1791     CALIB_SENSOR_GIC_DARK_THRE_TAG_ID,
1792     CALIB_SENSOR_GIC_DARK_THREHI_TAG_ID,
1793     CALIB_SENSOR_GIC_K_GRAD1_DARK_TAG_ID,
1794     CALIB_SENSOR_GIC_K_GRAD2_DARK_TAG_ID,
1795     CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK1_TAG_ID,
1796     CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK2_TAG_ID,
1797     CALIB_SENSOR_GIC_NOISECURVE0_TAG_ID,
1798     CALIB_SENSOR_GIC_NOISECURVE1_TAG_ID,
1799     CALIB_SENSOR_GIC_GVALUELIMITLO_TAG_ID,
1800     CALIB_SENSOR_GIC_GVALUELIMITHI_TAG_ID,
1801     CALIB_SENSOR_GIC_TEXTURESTRENGTH_TAG_ID,
1802     CALIB_SENSOR_GIC_SCALELO_TAG_ID,
1803     CALIB_SENSOR_GIC_SCALEHI_TAG_ID,
1804     CALIB_SENSOR_GIC_GLOBALSTRENGTH_TAG_ID,
1805     CALIB_SENSOR_GIC_NOISE_COEA_TAG_ID,
1806     CALIB_SENSOR_GIC_NOISE_COEB_TAG_ID,
1807     CALIB_SENSOR_GIC_DIFF_CLIP_TAG_ID,
1808 };
1809 
1810 uint32_t calib_sensor_mfnr_sub_tags[] = {
1811     CALIB_SENSOR_MFNR_ENABLE_TAG_ID,
1812     CALIB_SENSOR_MFNR_VERSION_TAG_ID,
1813     CALIB_SENSOR_MFNR_LOCAL_GAIN_EN_TAG_ID,
1814     CALIB_SENSOR_MFNR_MOTION_DETECT_EN_TAG_ID,
1815     CALIB_SENSOR_MFNR_MODE_3TO1_TAG_ID,
1816     CALIB_SENSOR_MFNR_MAX_LEVEL_TAG_ID,
1817     CALIB_SENSOR_MFNR_MAX_LEVEL_UV_TAG_ID,
1818     CALIB_SENSOR_MFNR_BACK_REF_NUM_TAG_ID,
1819     CALIB_SENSOR_MFNR_AWB_UV_RATIO_TAG_ID,
1820     CALIB_SENSOR_MFNR_MODE_CELL_TAG_ID,
1821 };
1822 
1823 uint32_t calib_sensor_awb_uv_ratio_sub_tags[] = {
1824     CALIB_SENSOR_MFNR_AWB_UV_RATIO_NAME_TAG_ID,
1825     CALIB_SENSOR_MFNR_AWB_UV_RATIO_RATIO_TAG_ID,
1826 };
1827 
1828 uint32_t calib_sensor_mfnr_mode_cell_sub_tags[] = {
1829     CALIB_SENSOR_MFNR_MODE_NAME_TAG_ID,
1830     CALIB_SENSOR_MFNR_DYNAMIC_TAG_ID,
1831     CALIB_SENSOR_MFNR_SETTING_TAG_ID,
1832     CALIB_SENSOR_MFNR_MOTION_DETECTION_TAG_ID,
1833 };
1834 
1835 uint32_t calib_sensor_MFNR_DynamicEN_sub_tags[] = {
1836     CALIB_SENSOR_MFNR_DYNAMIC_ENABLE_TAG_ID,
1837     CALIB_SENSOR_MFNR_DYNAMIC_LOWTH_ISO_TAG_ID,
1838     CALIB_SENSOR_MFNR_DYNAMIC_LOWTH_TIME_TAG_ID,
1839     CALIB_SENSOR_MFNR_DYNAMIC_HIGHTH_ISO_TAG_ID,
1840     CALIB_SENSOR_MFNR_DYNAMIC_HIGHTH_TIME_TAG_ID,
1841 };
1842 
1843 uint32_t calib_sensor_MFNR_Setting_sub_tags[] = {
1844     CALIB_SENSOR_MFNR_SETTING_SNR_MODE_TAG_ID,
1845     CALIB_SENSOR_MFNR_SETTING_SENSOR_MODE_TAG_ID,
1846     CALIB_SENSOR_MFNR_ISO_TAG_ID,
1847 };
1848 
1849 uint32_t calib_sensor_MFNR_ISO_sub_tags[] = {
1850     CALIB_SENSOR_MFNR_ISO_ISO_TAG_ID,
1851     CALIB_SENSOR_MFNR_ISO_WEIGHT_LIMIT_Y_TAG_ID,
1852     CALIB_SENSOR_MFNR_ISO_WEIGHT_LIMIT_UV_TAG_ID,
1853     CALIB_SENSOR_MFNR_ISO_RATIO_FRQ_TAG_ID,
1854     CALIB_SENSOR_MFNR_ISO_LUMA_W_IN_CHROMA_TAG_ID,
1855     CALIB_SENSOR_MFNR_ISO_NOISE_CURVE_TAG_ID,
1856     CALIB_SENSOR_MFNR_ISO_NOISE_CURVE_X00_TAG_ID,
1857     CALIB_SENSOR_MFNR_ISO_Y_LO_NOISEPROFILE_TAG_ID,
1858     CALIB_SENSOR_MFNR_ISO_Y_HI_NOISEPROFILE_TAG_ID,
1859     CALIB_SENSOR_MFNR_ISO_Y_LO_DENOISEWEIGHT_TAG_ID,
1860     CALIB_SENSOR_MFNR_ISO_Y_HI_DENOISEWEIGHT_TAG_ID,
1861     CALIB_SENSOR_MFNR_ISO_Y_LO_BFSCALE_TAG_ID,
1862     CALIB_SENSOR_MFNR_ISO_Y_HI_BFSCALE_TAG_ID,
1863     CALIB_SENSOR_MFNR_ISO_Y_LUMANRPOINT_TAG_ID,
1864     CALIB_SENSOR_MFNR_ISO_Y_LUMANRCURVE_TAG_ID,
1865     CALIB_SENSOR_MFNR_ISO_Y_DENOISESTRENGTH_TAG_ID,
1866     CALIB_SENSOR_MFNR_ISO_Y_LO_LVL0_GFDELTA_TAG_ID,
1867     CALIB_SENSOR_MFNR_ISO_Y_HI_LVL0_GFDELTA_TAG_ID,
1868     CALIB_SENSOR_MFNR_ISO_Y_LO_LVL1_GFDELTA_TAG_ID,
1869     CALIB_SENSOR_MFNR_ISO_Y_HI_LVL1_GFDELTA_TAG_ID,
1870     CALIB_SENSOR_MFNR_ISO_Y_LO_LVL2_GFDELTA_TAG_ID,
1871     CALIB_SENSOR_MFNR_ISO_Y_HI_LVL2_GFDELTA_TAG_ID,
1872     CALIB_SENSOR_MFNR_ISO_Y_LO_LVL3_GFDELTA_TAG_ID,
1873     CALIB_SENSOR_MFNR_ISO_Y_HI_LVL3_GFDELTA_TAG_ID,
1874     CALIB_SENSOR_MFNR_ISO_UV_LO_NOISEPROFILE_TAG_ID,
1875     CALIB_SENSOR_MFNR_ISO_UV_HI_NOISEPROFILE_TAG_ID,
1876     CALIB_SENSOR_MFNR_ISO_UV_LO_DENOISEWEIGHT_TAG_ID,
1877     CALIB_SENSOR_MFNR_ISO_UV_HI_DENOISEWEIGHT_TAG_ID,
1878     CALIB_SENSOR_MFNR_ISO_UV_LO_BFSCALE_TAG_ID,
1879     CALIB_SENSOR_MFNR_ISO_UV_HI_BFSCALE_TAG_ID,
1880     CALIB_SENSOR_MFNR_ISO_UV_LUMANRPOINT_TAG_ID,
1881     CALIB_SENSOR_MFNR_ISO_UV_LUMANRCURVE_TAG_ID,
1882     CALIB_SENSOR_MFNR_ISO_UV_DENOISESTRENGTH_TAG_ID,
1883     CALIB_SENSOR_MFNR_ISO_UV_LO_LVL0_GFDELTA_TAG_ID,
1884     CALIB_SENSOR_MFNR_ISO_UV_HI_LVL0_GFDELTA_TAG_ID,
1885     CALIB_SENSOR_MFNR_ISO_UV_LO_LVL1_GFDELTA_TAG_ID,
1886     CALIB_SENSOR_MFNR_ISO_UV_HI_LVL1_GFDELTA_TAG_ID,
1887     CALIB_SENSOR_MFNR_ISO_UV_LO_LVL2_GFDELTA_TAG_ID,
1888     CALIB_SENSOR_MFNR_ISO_UV_HI_LVL2_GFDELTA_TAG_ID,
1889     CALIB_SENSOR_MFNR_ISO_LVL0_GFSIGMA_TAG_ID,
1890     CALIB_SENSOR_MFNR_ISO_LVL1_GFSIGMA_TAG_ID,
1891     CALIB_SENSOR_MFNR_ISO_LVL2_GFSIGMA_TAG_ID,
1892     CALIB_SENSOR_MFNR_ISO_LVL3_GFSIGMA_TAG_ID,
1893 };
1894 
1895 uint32_t calib_sensor_MFNR_motion_detection_sub_tags[] = {
1896     CALIB_SENSOR_MFNR_MOTION_DETECTION_ENABLE_TAG_ID,
1897     CALIB_SENSOR_MFNR_MOTION_DETECTION_ISO_TAG_ID,
1898     CALIB_SENSOR_MFNR_MOTION_DETECTION_SIGMAHSCALE_TAG_ID,
1899     CALIB_SENSOR_MFNR_MOTION_DETECTION_SIGMALSCALE_TAG_ID,
1900     CALIB_SENSOR_MFNR_MOTION_DETECTION_LIGHT_CLP_TAG_ID,
1901     CALIB_SENSOR_MFNR_MOTION_DETECTION_UV_WEIGHT_TAG_ID,
1902     CALIB_SENSOR_MFNR_MOTION_DETECTION_MFNR_SIGMA_SCALE_TAG_ID,
1903     CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE0_TAG_ID,
1904     CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE1_TAG_ID,
1905     CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE2_TAG_ID,
1906     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED0_TAG_ID,
1907     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED1_TAG_ID,
1908     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED2_TAG_ID,
1909     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED3_TAG_ID,
1910     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED4_TAG_ID,
1911     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED5_TAG_ID,
1912     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED6_TAG_ID,
1913     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED7_TAG_ID,
1914     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED8_TAG_ID,
1915     CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED9_TAG_ID,
1916     CALIB_SENSOR_MFNR_MOTION_DETECTION_FRAME_LIMIT_Y_TAG_ID,
1917     CALIB_SENSOR_MFNR_MOTION_DETECTION_FRAME_LIMIT_UV_TAG_ID,
1918 };
1919 
1920 
1921 
1922 
1923 
1924 uint32_t calib_sensor_sharp_sub_tags[] = {
1925     CALIB_SENSOR_SHARP_ENABLE_TAG_ID,
1926     CALIB_SENSOR_SHARP_VERSION_TAG_ID,
1927     CALIB_SENSOR_SHARP_LUMA_POINT_TAG_ID,
1928     CALIB_SENSOR_SHARP_MODE_CELL_TAG_ID,
1929 };
1930 
1931 uint32_t calib_sensor_sharp_mode_cell_sub_tags[] = {
1932     CALIB_SENSOR_SHARP_MODE_NAME_TAG_ID,
1933     CALIB_SENSOR_SHARP_SETTING_TAG_ID,
1934     CALIB_SENSOR_SHARP_SHARP_GAUSS_LUMA_COEFF_TAG_ID,
1935     CALIB_SENSOR_SHARP_SHARP_MBF_COEFF_TAG_ID,
1936 #if 1
1937     CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_TAG_ID,
1938     CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_TAG_ID,
1939     CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_TAG_ID,
1940     CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_TAG_ID,
1941 #endif
1942     //v2
1943     CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_L_TAG_ID,
1944     CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_H_TAG_ID,
1945     CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_L_TAG_ID,
1946     CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_H_TAG_ID,
1947     CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_L_TAG_ID,
1948     CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_H_TAG_ID,
1949     CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_L_TAG_ID,
1950     CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_H_TAG_ID,
1951 
1952 };
1953 
1954 uint32_t calib_sensor_SHARP_Setting_sub_tags[] = {
1955     CALIB_SENSOR_SHARP_SETTING_SNR_MODE_TAG_ID,
1956     CALIB_SENSOR_SHARP_SETTING_SENSOR_MODE_TAG_ID,
1957     CALIB_SENSOR_SHARP_SHARP_ISO_TAG_ID,
1958 };
1959 
1960 uint32_t calib_sensor_SHARP_ISO_sub_tags[] = {
1961     CALIB_SENSOR_SHARP_SHARP_ISO_ISO_TAG_ID,
1962     CALIB_SENSOR_SHARP_SHARP_ISO_HRATIO_TAG_ID,
1963     CALIB_SENSOR_SHARP_SHARP_ISO_LRATIO_TAG_ID,
1964     CALIB_SENSOR_SHARP_SHARP_ISO_MF_SHARP_RATIO_TAG_ID,
1965     CALIB_SENSOR_SHARP_SHARP_ISO_HF_SHARP_RATIO_TAG_ID,
1966     CALIB_SENSOR_SHARP_SHARP_ISO_LUMA_SIGMA_TAG_ID,
1967     CALIB_SENSOR_SHARP_SHARP_ISO_PBF_GAIN_TAG_ID,
1968     CALIB_SENSOR_SHARP_SHARP_ISO_PBF_RATIO_TAG_ID,
1969     CALIB_SENSOR_SHARP_SHARP_ISO_PBF_ADD_TAG_ID,
1970     CALIB_SENSOR_SHARP_SHARP_ISO_MF_CLIP_POS_TAG_ID,
1971     CALIB_SENSOR_SHARP_SHARP_ISO_MF_CLIP_NEG_TAG_ID,
1972     CALIB_SENSOR_SHARP_SHARP_ISO_HF_CLIP_TAG_ID,
1973     CALIB_SENSOR_SHARP_SHARP_ISO_MBF_GAIN_TAG_ID,
1974     CALIB_SENSOR_SHARP_SHARP_ISO_HBF_GAIN_TAG_ID,
1975     CALIB_SENSOR_SHARP_SHARP_ISO_HBF_RATIO_TAG_ID,
1976     CALIB_SENSOR_SHARP_SHARP_ISO_MBF_ADD_TAG_ID,
1977     CALIB_SENSOR_SHARP_SHARP_ISO_HBF_ADD_TAG_ID,
1978     CALIB_SENSOR_SHARP_SHARP_ISO_LOCAL_SHARP_STRENGTH_TAG_ID,
1979     CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_PERCENT_TAG_ID,
1980     CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_PERCENT_TAG_ID,
1981     CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_PERCENT_TAG_ID,
1982     CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_PERCENT_TAG_ID,
1983 };
1984 
1985 uint32_t calib_sensor_edgefilter_sub_tags[] = {
1986     CALIB_SENSOR_EDGEFILTER_ENABLE_TAG_ID,
1987     CALIB_SENSOR_EDGEFILTER_VERSION_TAG_ID,
1988     CALIB_SENSOR_EDGEFILTER_LUMA_POINT_TAG_ID,
1989     CALIB_SENSOR_EDGEFILTER_MODE_CELL_TAG_ID,
1990 };
1991 
1992 uint32_t calib_sensor_edgefilter_mode_cell_sub_tags[] = {
1993     CALIB_SENSOR_EDGEFILTER_MODE_NAME_TAG_ID,
1994     CALIB_SENSOR_EDGEFILTER_SETTING_TAG_ID,
1995     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_L_TAG_ID,
1996     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_H_TAG_ID,
1997 };
1998 
1999 uint32_t calib_sensor_EDGEFILTER_Setting_sub_tags[] = {
2000     CALIB_SENSOR_EDGEFILTER_SETTING_SNR_MODE_TAG_ID,
2001     CALIB_SENSOR_EDGEFILTER_SETTING_SENSOR_MODE_TAG_ID,
2002     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_TAG_ID,
2003 };
2004 
2005 uint32_t calib_sensor_EDGEFILTER_ISO_sub_tags[] = {
2006     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_ISO_TAG_ID,
2007     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_EDGE_THED_TAG_ID,
2008     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_SRC_WGT_TAG_ID,
2009     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_ALPHA_ADP_EN_TAG_ID,
2010     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_LOCAL_ALPHA_TAG_ID,
2011     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_GLOBAL_ALPHA_TAG_ID,
2012     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_NOISE_CLIP_TAG_ID,
2013     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_CLIP_POS_TAG_ID,
2014     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_CLIP_NEG_TAG_ID,
2015     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_ALPHA_TAG_ID,
2016     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DIRECT_FILTER_COEFF_TAG_ID,
2017 #if 1
2018     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW0_TAG_ID,
2019     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW1_TAG_ID,
2020     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW2_TAG_ID,
2021     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW3_TAG_ID,
2022     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW4_TAG_ID,
2023 #endif
2024     CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_PERCENT_TAG_ID,
2025 };
2026 
2027 uint32_t calib_sensor_dehaze_sub_tags[] = {
2028     CALIB_SENSOR_DEHAZE_CALIBPARA_V20_TAG_ID,
2029     CALIB_SENSOR_DEHAZE_CALIBPARA_V21_TAG_ID,
2030     CALIB_SENSOR_DEHAZE_TUNINGPARA_V20_TAG_ID,
2031     CALIB_SENSOR_DEHAZE_TUNINGPARA_V21_TAG_ID,
2032 };
2033 
2034 uint32_t calib_sensor_dehaze_CalibParaV20_sub_tags[] = {
2035     CALIB_SENSOR_DEHAZE_SCENE_TAG_ID,
2036     CALIB_SENSOR_DEHAZE_EN_TAG_ID,
2037     CALIB_SENSOR_DEHAZE_CFG_ALPHA_TAG_ID,
2038     CALIB_SENSOR_DEHAZE_SETTING_TAG_ID,
2039     CALIB_SENSOR_ENHANCE_SETTING_TAG_ID,
2040     CALIB_SENSOR_HIST_SETTING_TAG_ID,
2041 };
2042 
2043 uint32_t calib_sensor_dehaze_CalibParaV21_sub_tags[] = {
2044     CALIB_SENSOR_DEHAZE_SCENE_TAG_ID,
2045     CALIB_SENSOR_DEHAZE_EN_TAG_ID,
2046     CALIB_SENSOR_DEHAZE_CFG_ALPHA_TAG_ID,
2047     CALIB_SENSOR_DEHAZE_V21_SETTING_TAG_ID,
2048     CALIB_SENSOR_ENHANCE_V21_SETTING_TAG_ID,
2049     CALIB_SENSOR_HIST_V21_SETTING_TAG_ID,
2050 };
2051 
2052 uint32_t calib_sensor_dehaze_TuningParaV20_sub_tags[] = {
2053     CALIB_SENSOR_DEHAZE_SCENE_TAG_ID,
2054     CALIB_SENSOR_DEHAZE_EN_TAG_ID,
2055     CALIB_SENSOR_DEHAZE_CFG_ALPHA_TAG_ID,
2056     CALIB_SENSOR_DEHAZE_SETTING_TAG_ID,
2057     CALIB_SENSOR_ENHANCE_SETTING_TAG_ID,
2058     CALIB_SENSOR_HIST_SETTING_TAG_ID,
2059 };
2060 
2061 uint32_t calib_sensor_dehaze_TuningParaV21_sub_tags[] = {
2062     CALIB_SENSOR_DEHAZE_SCENE_TAG_ID,
2063     CALIB_SENSOR_DEHAZE_EN_TAG_ID,
2064     CALIB_SENSOR_DEHAZE_CFG_ALPHA_TAG_ID,
2065 
2066     CALIB_SENSOR_DEHAZE_V21_SETTING_TAG_ID,
2067     CALIB_SENSOR_ENHANCE_V21_SETTING_TAG_ID,
2068     CALIB_SENSOR_HIST_V21_SETTING_TAG_ID,
2069 };
2070 
2071 uint32_t calib_sensor_Dehaze_Setting_sub_tags[] = {
2072     CALIB_SENSOR_DEHAZE_SETTING_EN_TAG_ID,
2073     CALIB_SENSOR_DEHAZE_SETTING_ISO_TAG_ID,
2074     CALIB_SENSOR_DEHAZE_SETTING_DC_MIN_TH_TAG_ID,
2075     CALIB_SENSOR_DEHAZE_SETTING_DC_MAX_TH_TAG_ID,
2076     CALIB_SENSOR_DEHAZE_SETTING_YHIST_TH_TAG_ID,
2077     CALIB_SENSOR_DEHAZE_SETTING_YBLK_TH_TAG_ID,
2078     CALIB_SENSOR_DEHAZE_SETTING_DARK_TH_TAG_ID,
2079     CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MIN_TAG_ID,
2080     CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MAX_TAG_ID,
2081     CALIB_SENSOR_DEHAZE_SETTING_WT_MAX_TAG_ID,
2082     CALIB_SENSOR_DEHAZE_SETTING_AIR_MIN_TAG_ID,
2083     CALIB_SENSOR_DEHAZE_SETTING_AIR_MAX_TAG_ID,
2084     CALIB_SENSOR_DEHAZE_SETTING_TMAX_BASE_TAG_ID,
2085     CALIB_SENSOR_DEHAZE_SETTING_TMAX_OFF_TAG_ID,
2086     CALIB_SENSOR_DEHAZE_SETTING_TMAX_MAX_TAG_ID,
2087     CALIB_SENSOR_DEHAZE_SETTING_CFG_WT_TAG_ID,
2088     CALIB_SENSOR_DEHAZE_SETTING_CFG_AIR_TAG_ID,
2089     CALIB_SENSOR_DEHAZE_SETTING_CFG_TMAX_TAG_ID,
2090     CALIB_SENSOR_DEHAZE_SETTING_DC_THED_TAG_ID,
2091     CALIB_SENSOR_DEHAZE_SETTING_DC_WEITCUR_TAG_ID,
2092     CALIB_SENSOR_DEHAZE_SETTING_AIR_THED_TAG_ID,
2093     CALIB_SENSOR_DEHAZE_SETTING_AIR_WEITCUR_TAG_ID,
2094     CALIB_SENSOR_IIR_SETTING_STAB_FNUM_TAG_ID,
2095     CALIB_SENSOR_IIR_SETTING_SIGMA_TAG_ID,
2096     CALIB_SENSOR_IIR_SETTING_WT_SIGMA_TAG_ID,
2097     CALIB_SENSOR_IIR_SETTING_AIR_SIGMA_TAG_ID,
2098     CALIB_SENSOR_IIR_SETTING_TMAX_SIGMA_TAG_ID,
2099 };
2100 
2101 uint32_t calib_sensor_Enhance_Setting_sub_tags[] = {
2102     CALIB_SENSOR_ENHANCE_SETTING_EN_TAG_ID,
2103     CALIB_SENSOR_ENHANCE_SETTING_ISO_TAG_ID,
2104     CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_VALUE_TAG_ID,
2105 };
2106 
2107 uint32_t calib_sensor_Hist_Setting_sub_tags[] = {
2108     CALIB_SENSOR_HIST_SETTING_EN_TAG_ID,
2109     CALIB_SENSOR_HIST_SETTING_ISO_TAG_ID,
2110     CALIB_SENSOR_HIST_SETTING_HIST_CHANNEL_TAG_ID,
2111     CALIB_SENSOR_HIST_SETTING_HIST_PARA_EN_TAG_ID,
2112     CALIB_SENSOR_HIST_SETTING_HIST_GRATIO_TAG_ID,
2113     CALIB_SENSOR_HIST_SETTING_HIST_TH_OFF_TAG_ID,
2114     CALIB_SENSOR_HIST_SETTING_HIST_K_TAG_ID,
2115     CALIB_SENSOR_HIST_SETTING_HIST_MIN_TAG_ID,
2116     CALIB_SENSOR_HIST_SETTING_HIST_SCALE_TAG_ID,
2117     CALIB_SENSOR_HIST_SETTING_CFG_GRATIO_TAG_ID,
2118 };
2119 
2120 uint32_t calib_sensor_Dehaze_V21_Setting_sub_tags[] = {
2121     CALIB_SENSOR_DEHAZE_SETTING_EN_TAG_ID,
2122     CALIB_SENSOR_DEHAZE_SETTING_ISO_TAG_ID,
2123     CALIB_SENSOR_DEHAZE_SETTING_AIR_LC_EN_TAG_ID,
2124     CALIB_SENSOR_DEHAZE_SETTING_DC_MIN_TH_TAG_ID,
2125     CALIB_SENSOR_DEHAZE_SETTING_DC_MAX_TH_TAG_ID,
2126     CALIB_SENSOR_DEHAZE_SETTING_YHIST_TH_TAG_ID,
2127     CALIB_SENSOR_DEHAZE_SETTING_YBLK_TH_TAG_ID,
2128     CALIB_SENSOR_DEHAZE_SETTING_DARK_TH_TAG_ID,
2129     CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MIN_TAG_ID,
2130     CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MAX_TAG_ID,
2131     CALIB_SENSOR_DEHAZE_SETTING_WT_MAX_TAG_ID,
2132     CALIB_SENSOR_DEHAZE_SETTING_AIR_MIN_TAG_ID,
2133     CALIB_SENSOR_DEHAZE_SETTING_AIR_MAX_TAG_ID,
2134     CALIB_SENSOR_DEHAZE_SETTING_TMAX_BASE_TAG_ID,
2135     CALIB_SENSOR_DEHAZE_SETTING_TMAX_OFF_TAG_ID,
2136     CALIB_SENSOR_DEHAZE_SETTING_TMAX_MAX_TAG_ID,
2137     CALIB_SENSOR_DEHAZE_SETTING_CFG_WT_TAG_ID,
2138     CALIB_SENSOR_DEHAZE_SETTING_CFG_AIR_TAG_ID,
2139     CALIB_SENSOR_DEHAZE_SETTING_CFG_TMAX_TAG_ID,
2140     CALIB_SENSOR_DEHAZE_SETTING_RANGE_SIGMA_TAG_ID,
2141     CALIB_SENSOR_DEHAZE_SETTING_SPACE_SIGMA_PRE_TAG_ID,
2142     CALIB_SENSOR_DEHAZE_SETTING_SPACE_SIGMA_CUR_TAG_ID,
2143     CALIB_SENSOR_DEHAZE_SETTING_DC_WEITCUR_TAG_ID,
2144     CALIB_SENSOR_DEHAZE_SETTING_BF_WEIGHT_TAG_ID,
2145     CALIB_SENSOR_IIR_SETTING_STAB_FNUM_TAG_ID,
2146     CALIB_SENSOR_IIR_SETTING_SIGMA_TAG_ID,
2147     CALIB_SENSOR_IIR_SETTING_WT_SIGMA_TAG_ID,
2148     CALIB_SENSOR_IIR_SETTING_AIR_SIGMA_TAG_ID,
2149     CALIB_SENSOR_IIR_SETTING_TMAX_SIGMA_TAG_ID,
2150     CALIB_SENSOR_IIR_SETTING_PRE_WET_TAG_ID,
2151 };
2152 
2153 uint32_t calib_sensor_Enhance_V21_Setting_sub_tags[] = {
2154     CALIB_SENSOR_ENHANCE_SETTING_EN_TAG_ID,
2155     CALIB_SENSOR_ENHANCE_SETTING_ISO_TAG_ID,
2156     CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_VALUE_TAG_ID,
2157     CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_CHROMA_TAG_ID,
2158     CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_CURVE_TAG_ID,
2159 };
2160 
2161 uint32_t calib_sensor_Hist_V21_Setting_sub_tags[] = {
2162     CALIB_SENSOR_HIST_SETTING_EN_TAG_ID,
2163     CALIB_SENSOR_HIST_SETTING_ISO_TAG_ID,
2164     CALIB_SENSOR_HIST_SETTING_HIST_PARA_EN_TAG_ID,
2165     CALIB_SENSOR_HIST_SETTING_HIST_GRATIO_TAG_ID,
2166     CALIB_SENSOR_HIST_SETTING_HIST_TH_OFF_TAG_ID,
2167     CALIB_SENSOR_HIST_SETTING_HIST_K_TAG_ID,
2168     CALIB_SENSOR_HIST_SETTING_HIST_MIN_TAG_ID,
2169     CALIB_SENSOR_HIST_SETTING_HIST_SCALE_TAG_ID,
2170     CALIB_SENSOR_HIST_SETTING_CFG_GRATIO_TAG_ID,
2171 };
2172 
2173 uint32_t calib_sensor_sensorinfo_sub_tags[] = {
2174     CALIB_SENSOR_SENSORINFO_GAINRANGE_TAG_ID,
2175     CALIB_SENSOR_SENSORINFO_TIMEFACTOR_TAG_ID,
2176     CALIB_SENSOR_SENSORINFO_CISLINTIMEREG_MAXFAC_TAG_ID,
2177     CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_SUMFAC_TAG_ID,
2178     CALIB_SENSOR_SENSORINFO_CISTIMEREG_ODEVITY_TAG_ID,
2179     CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_ODEVITY_TAG_ID,
2180     CALIB_SENSOR_SENSORINFO_CISTIMEREG_MIN_TAG_ID,
2181     CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_MIN_TAG_ID,
2182     CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_MAX_TAG_ID,
2183     CALIB_SENSOR_SENSORINFO_CISTIMEREG_UNEQUALEN_TAG_ID,
2184     CALIB_SENSOR_SENSORINFO_CISMINFPS_TAG_ID,
2185     CALIB_SENSOR_SENSORINFO_CISAGAIN_RANGE_TAG_ID,
2186     CALIB_SENSOR_SENSORINFO_CISEXTRAAGAIN_RANGE_TAG_ID,
2187     CALIB_SENSOR_SENSORINFO_CISDGAIN_RANGE_TAG_ID,
2188     CALIB_SENSOR_SENSORINFO_CISISPDGAIN_RANGE_TAG_ID,
2189     CALIB_SENSOR_SENSORINFO_CISHDRGAININDSETEN_TAG_ID,
2190     CALIB_SENSOR_SENSORSETTING_FLIP_ID,
2191 };
2192 
2193 uint32_t calib_sensor_sensorinfo_gainrange_sub_tags[] = {
2194     CALIB_SENSOR_SENSORINFO_GAINRANGE_ISLINEAR_TAG_ID,
2195     CALIB_SENSOR_SENSORINFO_GAINRANGE_LINEAR_TAG_ID,
2196     CALIB_SENSOR_SENSORINFO_GAINRANGE_NONLINEAR_TAG_ID,
2197 };
2198 
2199 uint32_t calib_sensor_moduleinfo_sub_tags[] = {
2200     CALIB_SENSOR_MODULEINFO_FNUMBER_TAG_ID,
2201     CALIB_SENSOR_MODULEINFO_EFL_TAG_ID,
2202     CALIB_SENSOR_MODULEINFO_LENS_TRANSMITTANCE_TAG_ID,
2203     CALIB_SENSOR_MODULEINFO_IRCUT_TRANSMITTANCE_TAG_ID,
2204 };
2205 
2206 uint32_t calib_sensor_cpsl_sub_tags[] = {
2207     CALIB_SENSOR_CPSL_ENABLE_TAG_ID,
2208     CALIB_SENSOR_CPSL_MODE_TAG_ID,
2209     CALIB_SENSOR_CPSL_FORCE_GRAY_TAG_ID,
2210     CALIB_SENSOR_CPSL_LGHT_SRC_TAG_ID,
2211     CALIB_SENSOR_CPSL_AUTO_ADJUST_SENS_TAG_ID,
2212     CALIB_SENSOR_CPSL_AUTO_ON2OFF_TH_TAG_ID,
2213     CALIB_SENSOR_CPSL_AUTO_OFF2ON_TH_TAG_ID,
2214     CALIB_SENSOR_CPSL_AUTO_SW_INTERVAL_TAG_ID,
2215     CALIB_SENSOR_CPSL_MANUAL_ON_TAG_ID,
2216     CALIB_SENSOR_CPSL_MANUAL_STRENGTH_TAG_ID,
2217 };
2218 
2219 uint32_t calib_sensor_lut3d_sub_tags[] = {
2220     CALIB_SENSOR_LUT3D_ENABLE_TAG_ID,
2221     CALIB_SENSOR_LUT3D_R_LUT_TAG_ID,
2222     CALIB_SENSOR_LUT3D_G_LUT_TAG_ID,
2223     CALIB_SENSOR_LUT3D_B_LUT_TAG_ID,
2224 };
2225 
2226 uint32_t calib_sensor_ldch_sub_tags[] = {
2227     CALIB_SENSOR_LDCH_ENABLE_TAG_ID,
2228     CALIB_SENSOR_LDCH_MESH_FILE_TAG_ID,
2229     CALIB_SENSOR_LDCH_CORRECT_LEVEL_TAG_ID,
2230     CALIB_SENSOR_LDCH_CORRECT_LEVEL_MAX_TAG_ID,
2231     CALIB_SENSOR_LDCH_LIGHT_CENTER_TAG_ID,
2232     CALIB_SENSOR_LDCH_DISTORTION_COEFF_ID,
2233 };
2234 
2235 uint32_t calib_sensor_fec_sub_tags[] = {
2236     CALIB_SENSOR_FEC_ENABLE_TAG_ID,
2237     CALIB_SENSOR_FEC_MESH_FILE_TAG_ID,
2238     CALIB_SENSOR_FEC_CORRECT_LEVEL_TAG_ID,
2239     CALIB_SENSOR_FEC_LIGHT_CENTER_TAG_ID,
2240     CALIB_SENSOR_FEC_DISTORTION_COEFF_ID,
2241 };
2242 
2243 uint32_t calib_sensor_eis_sub_tags[] = {
2244     CALIB_SENSOR_EIS_ENABLE_TAG_ID,
2245 };
2246 
2247 uint32_t calib_sensor_lumadetect_sub_tags[] = {
2248     CALIB_SENSOR_LUMA_DETECT_ENABLE_TAG_ID,
2249     CALIB_SENSOR_LUMA_DETECT_FIXED_TIMES_TAG_ID,
2250     CALIB_SENSOR_LUMA_DETECT_THRESHOLD_TAG_ID,
2251     CALIB_SENSOR_LUMA_DETECT_THRESHOLD_LEVEL2_TAG_ID,
2252 };
2253 
2254 uint32_t calib_sensor_orb_sub_tags[] = {
2255     CALIB_SENSOR_ORB_ENABLE_TAG_ID,
2256 };
2257 
2258 uint32_t calib_sensor_color_as_grey_sub_tags[] = {
2259     CALIB_SENSOR_COLOR_AS_GREY_ENABLE_TAG_ID,
2260 };
2261 
2262 uint32_t calib_sensor_cproc_sub_tags[] = {
2263     CALIB_SENSOR_CPROC_ENABLE_TAG_ID,
2264     CALIB_SENSOR_CPROC_BRIGHTNESS_TAG_ID,
2265     CALIB_SENSOR_CPROC_CONTRAST_TAG_ID,
2266     CALIB_SENSOR_CPROC_SATURATION_TAG_ID,
2267     CALIB_SENSOR_CPROC_HUE_TAG_ID,
2268 };
2269 
2270 uint32_t calib_sensor_ie_sub_tags[] = {
2271     CALIB_SENSOR_IE_ENABLE_TAG_ID,
2272     CALIB_SENSOR_IE_MODE_TAG_ID,
2273 };
2274 
2275 uint32_t calib_system_sub_tags[] = {
2276     CALIB_SYSTEM_HDR_TAG_ID,
2277     CALIB_SYSTEM_DCG_SETTING_TAG_ID,
2278     CALIB_SYSTEM_EXP_DELAY_TAG_ID,
2279 };
2280 
2281 uint32_t calib_system_hdr_sub_tags[] = {
2282     CALIB_SYSTEM_HDR_ENABLE_TAG_ID,
2283     CALIB_SYSTEM_HDR_SUPPORT_MODE_TAG_ID,
2284     CALIB_SYSTEM_HDR_LINE_MODE_TAG_ID,
2285 };
2286 
2287 uint32_t calib_system_DCG_SETTING_sub_tags[] = {
2288     CALIB_SYSTEM_DCG_SETTING_NORMAL_TAG_ID,
2289     CALIB_SYSTEM_DCG_SETTING_HDR_TAG_ID,
2290 };
2291 
2292 uint32_t calib_system_DCG_SETTING_Normal_sub_tags[] = {
2293     CALIB_SYSTEM_DCG_SUPPORT_EN_TAG_ID,
2294     CALIB_SYSTEM_DCG_OPTYPE_TAG_ID,
2295     CALIB_SYSTEM_DCG_MODE_INIT_TAG_ID,
2296     CALIB_SYSTEM_DCG_RATIO_TAG_ID,
2297     CALIB_SYSTEM_DCG_GAINCTRL_TAG_ID,
2298     CALIB_SYSTEM_DCG_ENVCTRL_TAG_ID,
2299 };
2300 
2301 uint32_t calib_system_DCG_SETTING_Hdr_sub_tags[] = {
2302     CALIB_SYSTEM_DCG_SUPPORT_EN_TAG_ID,
2303     CALIB_SYSTEM_DCG_OPTYPE_TAG_ID,
2304     CALIB_SYSTEM_DCG_MODE_INIT_TAG_ID,
2305     CALIB_SYSTEM_DCG_RATIO_TAG_ID,
2306     CALIB_SYSTEM_DCG_SYNC_SWITCH_TAG_ID,
2307     CALIB_SYSTEM_DCG_GAINCTRL_TAG_ID,
2308     CALIB_SYSTEM_DCG_ENVCTRL_TAG_ID,
2309 };
2310 
2311 uint32_t calib_system_gain_ctrl_sub_tags[] = {
2312     CALIB_SYSTEM_DCG_ENABLE_TAG_ID,
2313     CALIB_SYSTEM_DCG_LCG2HCG_TH_TAG_ID,
2314     CALIB_SYSTEM_DCG_HCG2LCG_TH_TAG_ID,
2315 };
2316 
2317 uint32_t calib_system_env_ctrl_sub_tags[] = {
2318     CALIB_SYSTEM_DCG_ENABLE_TAG_ID,
2319     CALIB_SYSTEM_DCG_LCG2HCG_TH_TAG_ID,
2320     CALIB_SYSTEM_DCG_HCG2LCG_TH_TAG_ID,
2321 };
2322 
2323 uint32_t calib_system_EXP_DELAY_sub_tags[] = {
2324     CALIB_SYSTEM_EXP_DELAY_NORMAL_TAG_ID,
2325     CALIB_SYSTEM_EXP_DELAY_HDR_TAG_ID,
2326 };
2327 
2328 uint32_t calib_system_EXP_DELAY_Hdr_sub_tags[] = {
2329     CALIB_SYSTEM_EXP_DELAY_TIME_TAG_ID,
2330     CALIB_SYSTEM_EXP_DELAY_GAIN_TAG_ID,
2331     CALIB_SYSTEM_EXP_DELAY_DCG_TAG_ID,
2332 };
2333 
2334 uint32_t calib_system_EXP_DELAY_Normal_sub_tags[] = {
2335     CALIB_SYSTEM_EXP_DELAY_TIME_TAG_ID,
2336     CALIB_SYSTEM_EXP_DELAY_GAIN_TAG_ID,
2337     CALIB_SYSTEM_EXP_DELAY_DCG_TAG_ID,
2338 };
2339 
2340 uint32_t calib_expset_sub_tags[] = {
2341     CALIB_EXPSET_GAIN2REG_TAG_ID,
2342     CALIB_EXPSET_TIME2REG_TAG_ID,
2343     CALIB_EXPSET_GAINSET_TAG_ID,
2344     CALIB_EXPSET_TIMESET_TAG_ID,
2345     CALIB_EXPSET_CISMINFPS_TAG_ID,
2346     CALIB_EXPSET_HDRSET_TAG_ID,
2347     CALIB_EXPSET_DCGSET_TAG_ID,
2348     CALIB_EXPSET_EXP_UPDATE_TAG_ID,
2349     CALIB_EXPSET_CISFLIP_TAG_ID,
2350 };
2351 
2352 uint32_t calib_expset_gain2reg_sub_tags[] = {
2353     CALIB_EXPSET_GAIN2REG_ISLINEAR_TAG_ID,
2354     CALIB_EXPSET_GAIN2REG_LINEAR_TAG_ID,
2355     CALIB_EXPSET_GAIN2REG_NONLINEAR_TAG_ID,
2356 };
2357 
2358 uint32_t calib_expset_gainset_sub_tags[] = {
2359     CALIB_EXPSET_CISAGAIN_RANGE_TAG_ID,
2360     CALIB_EXPSET_CISEXTRAAGAIN_RANGE_TAG_ID,
2361     CALIB_EXPSET_CISDGAIN_RANGE_TAG_ID,
2362     CALIB_EXPSET_CISISPDGAIN_RANGE_TAG_ID,
2363     CALIB_EXPSET_CISHDRGAININDSETEN_TAG_ID,
2364 };
2365 
2366 uint32_t calib_expset_timeset_sub_tags[] = {
2367     CALIB_EXPSET_TIMESET_NORMAL_TAG_ID,
2368     CALIB_EXPSET_TIMESET_HDR_TAG_ID,
2369 };
2370 
2371 uint32_t calib_expset_timeset_normal_sub_tags[] = {
2372     CALIB_EXPSET_CISLINTIMEREG_MAXFAC_TAG_ID,
2373     CALIB_EXPSET_CISTIMEREG_ODEVITY_TAG_ID,
2374     CALIB_EXPSET_CISTIMEREG_MIN_TAG_ID,
2375 };
2376 
2377 uint32_t calib_expset_timeset_hdr_sub_tags[] = {
2378     CALIB_EXPSET_NAME_TAG_ID,
2379     CALIB_EXPSET_CISTIMEREG_UNEQUALEN_TAG_ID,
2380     CALIB_EXPSET_CISHDRTIMEREG_SUMFAC_TAG_ID,
2381     CALIB_EXPSET_CISTIMEREG_ODEVITY_TAG_ID,
2382     CALIB_EXPSET_CISTIMEREG_MIN_TAG_ID,
2383     CALIB_EXPSET_CISTIMEREG_MAX_TAG_ID,
2384 };
2385 
2386 uint32_t calib_expset_hdrset_sub_tags[] = {
2387     CALIB_EXPSET_HDRSET_ENABLE_TAG_ID,
2388     CALIB_EXPSET_HDRSET_SUPPORT_MODE_TAG_ID,
2389     CALIB_EXPSET_HDRSET_LINE_MODE_TAG_ID,
2390 };
2391 
2392 uint32_t calib_expset_dcgset_sub_tags[] = {
2393     CALIB_EXPSET_DCGSET_NORMAL_TAG_ID,
2394     CALIB_EXPSET_DCGSET_HDR_TAG_ID,
2395 };
2396 
2397 uint32_t calib_expset_dcgset_normal_sub_tags[] = {
2398     CALIB_EXPSET_DCGSET_SUPPORT_EN_TAG_ID,
2399     CALIB_EXPSET_DCGSET_OPTYPE_TAG_ID,
2400     CALIB_EXPSET_DCGSET_MODE_INIT_TAG_ID,
2401     CALIB_EXPSET_DCGSET_RATIO_TAG_ID,
2402     CALIB_EXPSET_DCGSET_GAINCTRL_TAG_ID,
2403     CALIB_EXPSET_DCGSET_ENVCTRL_TAG_ID,
2404 };
2405 
2406 uint32_t calib_expset_dcgset_hdr_sub_tags[] = {
2407     CALIB_EXPSET_DCGSET_SUPPORT_EN_TAG_ID,
2408     CALIB_EXPSET_DCGSET_OPTYPE_TAG_ID,
2409     CALIB_EXPSET_DCGSET_MODE_INIT_TAG_ID,
2410     CALIB_EXPSET_DCGSET_RATIO_TAG_ID,
2411     CALIB_EXPSET_DCGSET_SYNC_SWITCH_TAG_ID,
2412     CALIB_EXPSET_DCGSET_GAINCTRL_TAG_ID,
2413     CALIB_EXPSET_DCGSET_ENVCTRL_TAG_ID,
2414 };
2415 
2416 uint32_t calib_expset_dcgset_gainctrl_sub_tags[] = {
2417     CALIB_EXPSET_DCGSET_ENABLE_TAG_ID,
2418     CALIB_EXPSET_DCGSET_LCG2HCG_TH_TAG_ID,
2419     CALIB_EXPSET_DCGSET_HCG2LCG_TH_TAG_ID,
2420 };
2421 
2422 uint32_t calib_expset_dcgset_envctrl_sub_tags[] = {
2423     CALIB_EXPSET_DCGSET_ENABLE_TAG_ID,
2424     CALIB_EXPSET_DCGSET_LCG2HCG_TH_TAG_ID,
2425     CALIB_EXPSET_DCGSET_HCG2LCG_TH_TAG_ID,
2426 };
2427 
2428 uint32_t calib_expset_expupdate_sub_tags[] = {
2429     CALIB_EXPSET_EXP_UPDATE_NORMAL_TAG_ID,
2430     CALIB_EXPSET_EXP_UPDATE_HDR_TAG_ID,
2431 };
2432 
2433 uint32_t calib_expset_expupdate_hdr_sub_tags[] = {
2434     CALIB_EXPSET_EXP_UPDATE_TIME_TAG_ID,
2435     CALIB_EXPSET_EXP_UPDATE_GAIN_TAG_ID,
2436     CALIB_EXPSET_EXP_UPDATE_DCG_TAG_ID,
2437 };
2438 
2439 uint32_t calib_expset_expupdate_normal_sub_tags[] = {
2440     CALIB_EXPSET_EXP_UPDATE_TIME_TAG_ID,
2441     CALIB_EXPSET_EXP_UPDATE_GAIN_TAG_ID,
2442     CALIB_EXPSET_EXP_UPDATE_DCG_TAG_ID,
2443 };
2444 
2445 uint32_t calib_moduleinfo_sub_tags[] = {
2446     CALIB_MODULEINFO_FNUMBER_TAG_ID,
2447     CALIB_MODULEINFO_EFL_TAG_ID,
2448     CALIB_MODULEINFO_LENS_TRANSMITTANCE_TAG_ID,
2449     CALIB_MODULEINFO_IRCUT_TRANSMITTANCE_TAG_ID,
2450 };
2451 uint32_t calib_sensor_bayernr_v2_sub_tags[] = {
2452     CALIB_SENSOR_BAYERNR_V2_MODE_NAME_TAG_ID,
2453     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_TAG_ID,
2454     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_TAG_ID
2455 };
2456 
2457 uint32_t calib_sensor_bayernr_v2_bayernr2D_sub_tags[] = {
2458     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_ENABLE_TAG_ID,
2459     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SETTING_TAG_ID,
2460 };
2461 
2462 uint32_t calib_sensor_bayernr_v2_bayernr3D_sub_tags[] = {
2463     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_ENABLE_TAG_ID,
2464     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SETTING_TAG_ID,
2465 };
2466 
2467 uint32_t calib_sensor_bayernr_v2_bayernr2D_setting_sub_tags[] = {
2468     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SNR_MODE_TAG_ID,
2469     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SENSOR_MODE_TAG_ID,
2470     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_ISO_TAG_ID,
2471     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_FILTER_STRENGTH_TAG_ID,
2472     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_GAUSS_GUIDE_TAG_ID,
2473     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_LUMA_POINT_TAG_ID,
2474     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SIGMA_TAG_ID,
2475     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_EDGESOFTS_TAG_ID,
2476     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_RATIO_TAG_ID,
2477     CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_WEIGHT_TAG_ID,
2478 
2479 };
2480 
2481 uint32_t calib_sensor_bayernr_v2_bayernr3D_setting_sub_tags[] = {
2482     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SNR_MODE_TAG_ID,
2483     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SENSOR_MODE_TAG_ID,
2484     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_ISO_TAG_ID,
2485     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_FILTER_STRENGTH_TAG_ID,
2486     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SP_FILTER_STRENGTH_TAG_ID,
2487     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_LO_CLIPWGT_TAG_ID,
2488     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_HI_CLIPWGT_TAG_ID,
2489     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SOFTWGT_TAG_ID,
2490     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_LUMA_POINT_TAG_ID,
2491     CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SIGMA_TAG_ID,
2492 };
2493 
2494 uint32_t calib_sensor_ynr_v2_sub_tags[] = {
2495     CALIB_SENSOR_YNR_V2_MODE_NAME_TAG_ID,
2496     CALIB_SENSOR_YNR_V2_ENABLE_TAG_ID,
2497     CALIB_SENSOR_YNR_V2_SETTING_TAG_ID
2498 };
2499 
2500 uint32_t calib_sensor_ynr_v2_setting_sub_tags[] = {
2501     CALIB_SENSOR_YNR_V2_SNR_MODE_TAG_ID,
2502     CALIB_SENSOR_YNR_V2_SENSOR_MODE_TAG_ID,
2503     CALIB_SENSOR_YNR_V2_ISO_TAG_ID,
2504     CALIB_SENSOR_YNR_V2_BFT3X3_BYPASS_TAG_ID,
2505     CALIB_SENSOR_YNR_V2_LBFT5X5_BYPASS_TAG_ID,
2506     CALIB_SENSOR_YNR_V2_LGFT3X3_BYPASS_TAG_ID,
2507     CALIB_SENSOR_YNR_V2_FLT1X1_BYPASS_TAG_ID,
2508     CALIB_SENSOR_YNR_V2_SFT5X5_BYPASS_TAG_ID,
2509     CALIB_SENSOR_YNR_V2_RNR_STRENGTH_TAG_ID,
2510     CALIB_SENSOR_YNR_V2_SIGMA_CURVE_TAG_ID,
2511     CALIB_SENSOR_YNR_V2_YNR_CI_TAG_ID,
2512     CALIB_SENSOR_YNR_V2_LOW_BF_TAG_ID,
2513     CALIB_SENSOR_YNR_V2_LOW_THRED_ADJ_TAG_ID,
2514     CALIB_SENSOR_YNR_V2_LOW_PEAK_SUPRESS_TAG_ID,
2515     CALIB_SENSOR_YNR_V2_LOW_EDGE_ADJ_THRESH_TAG_ID,
2516     CALIB_SENSOR_YNR_V2_LOW_CENTRE_WEIGHT_TAG_ID,
2517     CALIB_SENSOR_YNR_V2_LOW_DIST_ADJ_TAG_ID,
2518     CALIB_SENSOR_YNR_V2_LOW_WEIGHT_TAG_ID,
2519     CALIB_SENSOR_YNR_V2_LOW_FILT_STRENGTH_TAG_ID,
2520     CALIB_SENSOR_YNR_V2_LOW_BI_WEIGHT_TAG_ID,
2521     CALIB_SENSOR_YNR_V2_BASE_FILT_WEIGHT_TAG_ID,
2522     CALIB_SENSOR_YNR_V2_HIGH_THRED_ADJ_TAG_ID,
2523     CALIB_SENSOR_YNR_V2_HIGH_WEIGHT_TAG_ID,
2524     CALIB_SENSOR_YNR_V2_HIGH_DIRECTION_WEIGHT_TAG_ID,
2525     CALIB_SENSOR_YNR_V2_HI_MIN_ADJ_TAG_ID,
2526     CALIB_SENSOR_YNR_V2_HI_EDGE_THRED_TAG_ID,
2527 };
2528 
2529 //cnr v1
2530 uint32_t calib_sensor_cnr_v1_sub_tags[] = {
2531     CALIB_SENSOR_CNR_V1_MODE_NAME_TAG_ID,
2532     CALIB_SENSOR_CNR_V1_ENABLE_TAG_ID,
2533     CALIB_SENSOR_CNR_V1_SETTING_TAG_ID,
2534 };
2535 
2536 uint32_t calib_sensor_cnr_v1_setting_sub_tags[] = {
2537     CALIB_SENSOR_CNR_V1_SNR_MODE_TAG_ID,
2538     CALIB_SENSOR_CNR_V1_SENSOR_MODE_TAG_ID,
2539     CALIB_SENSOR_CNR_V1_ISO_TAG_ID,
2540     CALIB_SENSOR_CNR_V1_HF_BYPASS_TAG_ID,
2541     CALIB_SENSOR_CNR_V1_LF_BYPASS_TAG_ID,
2542     CALIB_SENSOR_CNR_V1_CNR_EXGAIN_TAG_ID,
2543     CALIB_SENSOR_CNR_V1_CNR_G_GAIN_TAG_ID,
2544     CALIB_SENSOR_CNR_V1_COLOR_SAT_ADJ_TAG_ID,
2545     CALIB_SENSOR_CNR_V1_COLOR_SAT_ADJ_ALPHA_TAG_ID,
2546     CALIB_SENSOR_CNR_V1_HF_SPIKERS_REDUCION_STRENGTH_TAG_ID,
2547     CALIB_SENSOR_CNR_V1_HF_DENOISE_STRENGTH_TAG_ID,
2548     CALIB_SENSOR_CNR_V1_HF_COLOR_SAT_TAG_ID,
2549     CALIB_SENSOR_CNR_V1_HF_DENOISE_ALPHA_TAG_ID,
2550     CALIB_SENSOR_CNR_V1_HF_BF_WGT_CLIP_TAG_ID,
2551     CALIB_SENSOR_CNR_V1_THUMB_SPIKERS_REDUCION_STRENGTH_TAG_ID,
2552     CALIB_SENSOR_CNR_V1_THUMB_DENOISE_STRENGTH_TAG_ID,
2553     CALIB_SENSOR_CNR_V1_THUMB_COLOR_SAT_TAG_ID,
2554     CALIB_SENSOR_CNR_V1_LF_DENOISE_STRENGTH_TAG_ID,
2555     CALIB_SENSOR_CNR_V1_LF_COLOR_SAT_TAG_ID,
2556     CALIB_SENSOR_CNR_V1_LF_DENOISE_ALPHA_TAG_ID,
2557     CALIB_SENSOR_CNR_V1_KERNEL_5X5_TAG_ID,
2558 };
2559 
2560 
2561 
2562 //sharpV3
2563 uint32_t calib_sensor_sharp_v3_sub_tags[] = {
2564     CALIB_SENSOR_SHARP_V3_MODE_NAME_TAG_ID,
2565     CALIB_SENSOR_SHARP_V3_ENABLE_TAG_ID,
2566     CALIB_SENSOR_SHARP_V3_SETTING_TAG_ID,
2567 };
2568 
2569 uint32_t calib_sensor_sharp_v3_setting_sub_tags[] = {
2570     CALIB_SENSOR_SHARP_V3_SNR_MODE_TAG_ID,
2571     CALIB_SENSOR_SHARP_V3_SENSOR_MODE_TAG_ID,
2572     CALIB_SENSOR_SHARP_V3_ISO_TAG_ID,
2573     CALIB_SENSOR_SHARP_V3_LUMA_POINT_TAG_ID,
2574     CALIB_SENSOR_SHARP_V3_LUMA_SIGMA_TAG_ID,
2575     CALIB_SENSOR_SHARP_V3_PBF_GAIN_TAG_ID,
2576     CALIB_SENSOR_SHARP_V3_PBF_ADD_TAG_ID,
2577     CALIB_SENSOR_SHARP_V3_PBF_RATIO_TAG_ID,
2578     CALIB_SENSOR_SHARP_V3_GAUSS_RATIO_TAG_ID,
2579     CALIB_SENSOR_SHARP_V3_SHARP_RATIO_TAG_ID,
2580     CALIB_SENSOR_SHARP_V3_HF_CLIP_TAG_ID,
2581     CALIB_SENSOR_SHARP_V3_BF_GAIN_TAG_ID,
2582     CALIB_SENSOR_SHARP_V3_BF_ADD_TAG_ID,
2583     CALIB_SENSOR_SHARP_V3_BF_RATIO_TAG_ID,
2584     CALIB_SENSOR_SHARP_V3_LOCAL_STRENGTH_TAG_ID,
2585     CALIB_SENSOR_SHARP_V3_PREFILTER_COEFF_TAG_ID,
2586     CALIB_SENSOR_SHARP_V3_GAUSSFILTER_COEFF_TAG_ID,
2587     CALIB_SENSOR_SHARP_V3_HBFFILTER_COEFF_TAG_ID,
2588     CALIB_SENSOR_SHARP_V3_SHARP_RATIO_H_TAG_ID,
2589     CALIB_SENSOR_SHARP_V3_SHARP_RATIO_M_TAG_ID,
2590     CALIB_SENSOR_SHARP_V3_SHARP_RATIO_L_TAG_ID,
2591     CALIB_SENSOR_SHARP_V3_CLIP_HF_TAG_ID,
2592     CALIB_SENSOR_SHARP_V3_CLIP_MF_TAG_ID,
2593     CALIB_SENSOR_SHARP_V3_CLIP_LF_TAG_ID,
2594     CALIB_SENSOR_SHARP_V3_LOCAL_WGT_TAG_ID,
2595 };
2596 
2597 
2598 // TODO: list all tag infos
2599 calib_tag_info_t g_calib_tag_infos[CALIB_IQ_TAG_END] = {
2600     [CALIB_FILESTART_TAG_ID]    =
2601     {   "matfile", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
2602         check_tags_array_info(calib_filestart_sub_tags), NULL
2603     },
2604     [CALIB_CELL_TAG_ID]         =
2605     {   "cell", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2606         check_tags_array_ignore, NULL
2607     },
2608 
2609     //header
2610     [CALIB_HEADER_TAG_ID]       =
2611     {   "header", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2612         check_tags_array_info(calib_header_sub_tags), NULL
2613     },
2614     [CALIB_HEADER_CODE_XML_PARSE_VERSION_TAG_ID]         =
2615     {   "code_xml_parse_version", CALIB_TAG_TYPE_CHAR, {-1, -1},
2616         check_tags_array_ignore, NULL
2617     },
2618     [CALIB_HEADER_CREATION_DATE_TAG_ID]         =
2619     {   "creation_date", CALIB_TAG_TYPE_CHAR, {-1, -1},
2620         check_tags_array_ignore, NULL
2621     },
2622     [CALIB_HEADER_CREATOR_TAG_ID]         =
2623     {   "creator", CALIB_TAG_TYPE_CHAR, {-1, -1},
2624         check_tags_array_ignore, NULL
2625     },
2626     [CALIB_HEADER_SENSOR_NAME_TAG_ID]         =
2627     {   "sensor_name", CALIB_TAG_TYPE_CHAR, {-1, -1},
2628         check_tags_array_ignore, NULL
2629     },
2630     [CALIB_HEADER_SAMPLE_NAME_TAG_ID]         =
2631     {   "sample_name", CALIB_TAG_TYPE_CHAR, {-1, -1},
2632         check_tags_array_ignore, NULL
2633     },
2634     [CALIB_HEADER_GENERATOR_VERSION_TAG_ID]         =
2635     {   "generator_version", CALIB_TAG_TYPE_CHAR, {-1, -1},
2636         check_tags_array_ignore, NULL
2637     },
2638     [CALIB_HEADER_MAGIC_CODE_TAG_ID]         =
2639     {   "magic_code_version", CALIB_TAG_TYPE_INT, {-1, -1},
2640         check_tags_array_ignore, NULL
2641     },
2642 
2643     //Sensor
2644     [CALIB_SENSOR_TAG_ID]         =
2645     {   "sensor", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2646         check_tags_array_info(calib_sensor_sub_tags), NULL
2647     },
2648     [CALIIB_SCENE_TAG_ID]         =
2649     {   "scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
2650         check_tags_array_ignore, NULL
2651     },
2652     //Sensor AWB
2653     [CALIB_SENSOR_AWB_TAG_ID]         =
2654     {   "AWB", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2655         check_tags_array_info(calib_sensor_awb_sub_tags), NULL
2656     },
2657 
2658     [CALIB_SENSOR_AWB_V200_TAG_ID]         =
2659     {   "CalibParaV20", CALIB_TAG_TYPE_CELL, {-1, -1},
2660         check_tags_array_info(calib_sensor_awb_v200_sub_tags), NULL
2661     },
2662     [CALIB_SENSOR_AWB_V201_TAG_ID]         =
2663     {   "CalibParaV21", CALIB_TAG_TYPE_CELL, {-1, -1},
2664         check_tags_array_info(calib_sensor_awb_v201_sub_tags), NULL
2665     },
2666     [CALIB_SENSOR_AWB_ADJUSTPARA_TAG_ID]         =
2667     {   "TuningPara", CALIB_TAG_TYPE_CELL, {-1, -1},
2668         check_tags_array_info(calib_sensor_awb_adjustpara_sub_tags), NULL
2669     },
2670     [CALIB_SENSOR_AWB_LSFORFIRSTFRAME_TAG_ID]         =
2671     {   "lightSourceForFirstFrame", CALIB_TAG_TYPE_CHAR, {-1, -1},
2672         check_tags_array_ignore, NULL
2673     },
2674 
2675     [CALIB_SENSOR_AWB_V200_GLOBALS_TAG_ID]         =
2676     {   "Globals", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2677         check_tags_array_info(calib_sensor_awb_v200_global_sub_tags), NULL
2678     },
2679     [CALIB_SENSOR_AWB_V201_GLOBALS_TAG_ID]         =
2680     {   "Globals", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2681         check_tags_array_info(calib_sensor_awb_v201_global_sub_tags), NULL
2682     },
2683     [CALIB_SENSOR_AWB_ADJUSTPARA_GLOBALS_TAG_ID]         =
2684     {   "Globals", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2685         check_tags_array_info(
2686             calib_sensor_awb_adjustpara_global_sub_tags), NULL
2687     },
2688 
2689     [CALIB_SENSOR_AWB_AWB_ENABLE_TAG_ID]         =
2690     {   "awbEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2691         check_tags_array_ignore, NULL
2692     },
2693     [CALIB_SENSOR_AWB_WB_BYPASS_TAG_ID]         =
2694     {   "wbBypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2695         check_tags_array_ignore, NULL
2696     },
2697 
2698     [CALIB_SENSOR_AWB_HDRFRAMECHOOSE_TAG_ID]         =
2699     {   "hdrFrameChoose", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2700         check_tags_array_info(calib_sensor_awb_hfc_sub_tags), NULL
2701     },
2702     [CALIB_SENSOR_AWB_MODE_TAG_ID]         =
2703     {   "mode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2704         check_tags_array_ignore, NULL
2705     },
2706     [CALIB_SENSOR_AWB_FRAMECHOOSE_TAG_ID]         =
2707     {   "frameChoose", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2708         check_tags_array_ignore, NULL
2709     },
2710     [CALIB_SENSOR_AWB_LSCBYPASSENABLE_TAG_ID]         =
2711     {   "lscBypassEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2712         check_tags_array_ignore, NULL
2713     },
2714     [CALIB_SENSOR_AWB_UVDETECTIONENABLE_TAG_ID]         =
2715     {   "uvDetectionEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2716         check_tags_array_ignore, NULL
2717     },
2718     [CALIB_SENSOR_AWB_XYDETECTIONENABLE_TAG_ID]         =
2719     {   "xyDetectionEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2720         check_tags_array_ignore, NULL
2721     },
2722     [CALIB_SENSOR_AWB_MULTIWINDOWENABLE_TAG_ID]         =
2723     {   "multiWindowEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2724         check_tags_array_ignore, NULL
2725     },
2726     [CALIB_SENSOR_AWB_YUVDETECTIONENABLE_TAG_ID]         =
2727     {   "yuvDetectionEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2728         check_tags_array_ignore, NULL
2729     },
2730     [CALIB_SENSOR_AWB_LSUSEDFORYUVDET_TAG_ID]         =
2731     {   "lsUsedForYuvDet", CALIB_TAG_TYPE_CELL, {-1, -1},
2732         check_tags_array_info(calib_sensor_awb_lsusedforyuvdet_sub_tags), NULL
2733     },
2734     [CALIB_SENSOR_AWB_LSUSEDFORYUVDET_NAME_TAG_ID]         =
2735     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
2736         check_tags_array_ignore, NULL
2737     },
2738     [CALIB_SENSOR_AWB_DOWNSCALEMODE_TAG_ID]         =
2739     {   "downScaleMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2740         check_tags_array_ignore, NULL
2741     },
2742     [CALIB_SENSOR_AWB_BLCKMEASUREMODE_TAG_ID]         =
2743     {   "blckMeasureMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2744         check_tags_array_ignore, NULL
2745     },
2746     [CALIB_SENSOR_AWB_MEASUREWINDOW_TAG_ID]         =
2747     {   "measureWindow", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2748         check_tags_array_info(calib_sensor_awb_measurewindow_sub_tags), NULL
2749     },
2750     [CALIB_SENSOR_AWB_MEASUREWINDOWSIZE_TAG_ID]         =
2751     {   "measureWindowSize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2752         check_tags_array_ignore, NULL
2753     },
2754     [CALIB_SENSOR_AWB_RESALL_TAG_ID]         =
2755     {   "resAll", CALIB_TAG_TYPE_CELL, {-1, -1},
2756         check_tags_array_info(calib_sensor_awb_resall_sub_tags), NULL
2757     },
2758     [CALIB_SENSOR_AWB_RESOLUTION_TAG_ID]         =
2759     {   "resolution", CALIB_TAG_TYPE_CHAR, {-1, -1},
2760         check_tags_array_ignore, NULL
2761     },
2762     [CALIB_SENSOR_AWB_UVRANGESMALLENABLE_TAG_ID]         =
2763     {   "uvRangeSmallEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2764         check_tags_array_ignore, NULL
2765     },
2766     [CALIB_SENSOR_AWB_WPDIFFWEIENABLE_TAG_ID]         =
2767     {   "wpDiffLumaWeiEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2768         check_tags_array_ignore, NULL
2769     },
2770     [CALIB_SENSOR_AWB_CA_ENABLE_TAG_ID]         =
2771     {   "ca_Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2772         check_tags_array_ignore, NULL
2773     },
2774     [CALIB_SENSOR_AWB_LIMITRANGE_TAG_ID]         =
2775     {   "limitRange", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2776         check_tags_array_info(calib_sensor_awb_limitRange_sub_tags), NULL
2777     },
2778     [CALIB_SENSOR_AWB_LIMITRANGE_CELL_TAG_ID]         =
2779     {   "limitRangeC", CALIB_TAG_TYPE_CELL, {-1, -1},
2780         check_tags_array_info(calib_sensor_awb_limitRange_sub_tags), NULL
2781     },
2782     [CALIB_SENSOR_AWB_LIMITRANGE_LV_TAG_ID]         =
2783     {   "LvValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2784         check_tags_array_ignore, NULL
2785     },
2786     [CALIB_SENSOR_AWB_LIMITRANGE_Y_TAG_ID]         =
2787     {   "Y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2788         check_tags_array_ignore, NULL
2789     },
2790     [CALIB_SENSOR_AWB_LIMITRANGE_R_TAG_ID]         =
2791     {   "R", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2792         check_tags_array_ignore, NULL
2793     },
2794     [CALIB_SENSOR_AWB_LIMITRANGE_G_TAG_ID]         =
2795     {   "G", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2796         check_tags_array_ignore, NULL
2797     },
2798     [CALIB_SENSOR_AWB_LIMITRANGE_B_TAG_ID]         =
2799     {   "B", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2800         check_tags_array_ignore, NULL
2801     },
2802     [CALIB_SENSOR_AWB_PSEUDOLUMWEIGHT_TAG_ID]         =
2803     {   "pseudoLumWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2804         check_tags_array_ignore, NULL
2805     },
2806 
2807     [CALIB_SENSOR_AWB_ROTATIONMAT_TAG_ID]         =
2808     {   "rotationMat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2809         check_tags_array_ignore, NULL
2810     },
2811     [CALIB_SENSOR_AWB_RGB2ROTATIONYUVMAT_TAG_ID]         =
2812     {   "rgb2RotationYuvMat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2813         check_tags_array_ignore, NULL
2814     },
2815 
2816     [CALIB_SENSOR_AWB_MULTIWINDOWMODE_TAG_ID]         =
2817     {   "multiwindowMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2818         check_tags_array_ignore, NULL
2819     },
2820 
2821     [CALIB_SENSOR_AWB_WPDIFFWEIGHT_TAG_ID]         =
2822     {   "wpDiffLumaWeight", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2823         check_tags_array_info(calib_sensor_awb_wpDiffLumaWeight_sub_tags), NULL
2824     },
2825     [CALIB_SENSOR_AWB_WPDIFFWEIENABLETH_TAG_ID]         =
2826     {   "wpDiffWeiEnableTh", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2827         check_tags_array_info(calib_sensor_awb_wpDiffWeiEnableTh_sub_tags), NULL
2828     },
2829 
2830     [CALIB_SENSOR_AWB_WPNOTH_TAG_ID]         =
2831     {   "wpDiffWeiNoTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2832         check_tags_array_ignore, NULL
2833     },
2834     [CALIB_SENSOR_AWB_LVVALUETH_TAG_ID]         =
2835     {   "wpDiffWeiLvValueTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2836         check_tags_array_ignore, NULL
2837     },
2838     [CALIB_SENSOR_AWB_WPDIFFWEIRATIOTH_TAG_ID]         =
2839     {   "wpDiffWeiRatioTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2840         check_tags_array_ignore, NULL
2841     },
2842     [CALIB_SENSOR_AWB_WPDIFFWEILVTH_TAG_ID]         =
2843     {   "wpDiffWeiLvTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2844         check_tags_array_ignore, NULL
2845     },
2846     [CALIB_SENSOR_AWB_WPDIFFWEI_Y_TAG_ID]         =
2847     {   "wpDiffwei_y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2848         check_tags_array_ignore, NULL
2849     },
2850     [CALIB_SENSOR_AWB_PERFECTBINCONF_TAG_ID]         =
2851     {   "perfectBinConf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2852         check_tags_array_ignore, NULL
2853     },
2854     [CALIB_SENSOR_AWB_WPDIFFWEI_W_HIGHLV_TAG_ID]         =
2855     {   "wpDiffwei_w_HighLV", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2856         check_tags_array_info(
2857             calib_sensor_awb_wpDiffwei_w_HighLV_sub_tags), NULL
2858     },
2859     [CALIB_SENSOR_AWB_WPRATIO1_TAG_ID]         =
2860     {   "wpRatio1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2861         check_tags_array_ignore, NULL
2862     },
2863     [CALIB_SENSOR_AWB_WPRATIO2_TAG_ID]         =
2864     {   "wpRatio2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2865         check_tags_array_ignore, NULL
2866     },
2867     [CALIB_SENSOR_AWB_WPRATIO3_TAG_ID]         =
2868     {   "wpRatio3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2869         check_tags_array_ignore, NULL
2870     },
2871     [CALIB_SENSOR_AWB_WPDIFFWEI_W_LOWLV_TAG_ID]         =
2872     {   "wpDiffwei_w_LowLV", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2873         check_tags_array_info(
2874             calib_sensor_awb_wpDiffwei_w_LowLV_sub_tags), NULL
2875     },
2876 
2877 
2878     [CALIB_SENSOR_AWB_DAMPFACTOR_TAG_ID]         =
2879     {   "dampFactor", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2880         check_tags_array_info(calib_sensor_awb_dampFactor_sub_tags), NULL
2881     },
2882     [CALIB_SENSOR_AWB_DFSTEP_TAG_ID]         =
2883     {   "dFStep", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2884         check_tags_array_ignore, NULL
2885     },
2886     [CALIB_SENSOR_AWB_DFMIN_TAG_ID]         =
2887     {   "dFMin", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2888         check_tags_array_ignore, NULL
2889     },
2890     [CALIB_SENSOR_AWB_DFMAX_TAG_ID]         =
2891     {   "dFMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2892         check_tags_array_ignore, NULL
2893     },
2894     [CALIB_SENSOR_AWB_LVIIRSIZE_TAG_ID]         =
2895     {   "LvIIRsize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2896         check_tags_array_ignore, NULL
2897     },
2898     [CALIB_SENSOR_AWB_LVVARTH_TAG_ID]         =
2899     {   "LvVarTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2900         check_tags_array_ignore, NULL
2901     },
2902     [CALIB_SENSOR_AWB_SINGLECOLORPROCESS_TAG_ID]         =
2903     {   "singleColorProcess", CALIB_TAG_TYPE_STRUCT, {-1, -1},
2904         check_tags_array_info(
2905             calib_sensor_awb_singleColorProcess_sub_tags), NULL
2906     },
2907     [CALIB_SENSOR_AWB_COLORBLOCK_TAG_ID]         =
2908     {   "colorBlock", CALIB_TAG_TYPE_CELL, {-1, -1},
2909         check_tags_array_info(
2910             calib_sensor_awb_colorBlock_sub_tags), NULL
2911     },
2912     [CALIB_SENSOR_AWB_INDEX_TAG_ID]         =
2913     {   "index", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2914         check_tags_array_ignore, NULL
2915     },
2916     [CALIB_SENSOR_AWB_MEANC_TAG_ID]         =
2917     {   "meanC", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2918         check_tags_array_ignore, NULL
2919     },
2920     [CALIB_SENSOR_AWB_MEANH_TAG_ID]         =
2921     {   "meanH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2922         check_tags_array_ignore, NULL
2923     },
2924     [CALIB_SENSOR_AWB_LIGHTSOURCEUSEDFORESTIMIATION_TAG_ID]         =
2925     {   "lsUsedForEstimation", CALIB_TAG_TYPE_CELL, {-1, -1},
2926         check_tags_array_info(
2927             calib_sensor_awb_lsUsedForEstimation_sub_tags), NULL
2928     },
2929     [CALIB_SENSOR_AWB_LSUSEDFORESTIMIATION_NAME_TAG_ID]         =
2930     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
2931         check_tags_array_ignore, NULL
2932     },
2933     [CALIB_SENSOR_AWB_ALPHA_TAG_ID]         =
2934     {   "alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2935         check_tags_array_ignore, NULL
2936     },
2937     [CALIB_SENSOR_AWB_NAME_TAG_ID]         =
2938     {   "name", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2939         check_tags_array_ignore, NULL
2940     },
2941     [CALIB_SENSOR_AWB_RGAIN_TAG_ID]         =
2942     {   "RGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2943         check_tags_array_ignore, NULL
2944     },
2945     [CALIB_SENSOR_AWB_BGAIN_TAG_ID]         =
2946     {   "BGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2947         check_tags_array_ignore, NULL
2948     },
2949     [CALIB_SENSOR_AWB_TEMPORALDEFAULTGAIN_TAG_ID]         =
2950     {   "temporalDefaultGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2951         check_tags_array_ignore, NULL
2952     },
2953     [CALIB_SENSOR_AWB_TEMPORALCALGAINSETSIZE_TAG_ID]         =
2954     {   "temporalCalGainSetSize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2955         check_tags_array_ignore, NULL
2956     },
2957     [CALIB_SENSOR_AWB_TEMPORALGAINSETWEIGHT_TAG_ID]         =
2958     {   "temporalGainSetWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2959         check_tags_array_ignore, NULL
2960     },
2961     [CALIB_SENSOR_AWB_LVMATRIX_TAG_ID]         =
2962     {   "LVMatrix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2963         check_tags_array_ignore, NULL
2964     },
2965     [CALIB_SENSOR_AWB_LV_THL_TAG_ID]         =
2966     {   "LV_THL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2967         check_tags_array_ignore, NULL
2968     },
2969     [CALIB_SENSOR_AWB_LV_THL2_TAG_ID]         =
2970     {   "LV_THL2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2971         check_tags_array_ignore, NULL
2972     },
2973     [CALIB_SENSOR_AWB_LV_THH_TAG_ID]         =
2974     {   "LV_THH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2975         check_tags_array_ignore, NULL
2976     },
2977     [CALIB_SENSOR_AWB_LV_THH2_TAG_ID]         =
2978     {   "LV_THH2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2979         check_tags_array_ignore, NULL
2980     },
2981     [CALIB_SENSOR_AWB_WP_TH_TAG_ID]         =
2982     {   "WP_TH", CALIB_TAG_TYPE_CELL, {-1, -1},
2983         check_tags_array_info(calib_sensor_awb_strategypara_global_wpth_sub_tags), NULL
2984     },
2985     [CALIB_SENSOR_AWB_WP_LV_TAG_ID]         =
2986     {   "LvValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2987         check_tags_array_ignore, NULL
2988     },
2989     [CALIB_SENSOR_AWB_WP_THL_TAG_ID]         =
2990     {   "WP_THL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2991         check_tags_array_ignore, NULL
2992     },
2993     [CALIB_SENSOR_AWB_WP_THH_TAG_ID]         =
2994     {   "WP_THH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2995         check_tags_array_ignore, NULL
2996     },
2997     [CALIB_SENSOR_AWB_PRODIS_THL_TAG_ID]         =
2998     {   "proDis_THL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
2999         check_tags_array_ignore, NULL
3000     },
3001     [CALIB_SENSOR_AWB_PRODIS_THH_TAG_ID]         =
3002     {   "proDis_THH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3003         check_tags_array_ignore, NULL
3004     },
3005     [CALIB_SENSOR_AWB_PROLV_INDOOR_THL_TAG_ID]         =
3006     {   "proLV_Indoor_THL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3007         check_tags_array_ignore, NULL
3008     },
3009     [CALIB_SENSOR_AWB_PROLV_INDOOR_THH_TAG_ID]         =
3010     {   "proLV_Indoor_THH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3011         check_tags_array_ignore, NULL
3012     },
3013     [CALIB_SENSOR_AWB_PROLV_OUTDOOR_THL_TAG_ID]         =
3014     {   "proLV_Outdoor_THL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3015         check_tags_array_ignore, NULL
3016     },
3017     [CALIB_SENSOR_AWB_PROLV_OUTDOOR_THH_TAG_ID]         =
3018     {   "proLV_Outdoor_THH", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3019         check_tags_array_ignore, NULL
3020     },
3021     [CALIB_SENSOR_AWB_SPATIALGAIN_L_TAG_ID]         =
3022     {   "spatialGain_L", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3023         check_tags_array_ignore, NULL
3024     },
3025     [CALIB_SENSOR_AWB_SPATIALGAIN_H_TAG_ID]         =
3026     {   "spatialGain_H", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3027         check_tags_array_ignore, NULL
3028     },
3029 
3030     [CALIB_SENSOR_AWB_WPNUMPERCTH_TAG_ID]         =
3031     {   "wpNumPercTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3032         check_tags_array_ignore, NULL
3033     },
3034     [CALIB_SENSOR_AWB_TEMPWEIGTH_TAG_ID]         =
3035     {   "tempWeigth", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3036         check_tags_array_ignore, NULL
3037     },
3038     [CALIB_SENSOR_AWB_CA_LACALCFACTOR_TAG_ID]         =
3039     {   "ca_LACalcFactor", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3040         check_tags_array_ignore, NULL
3041     },
3042     [CALIB_SENSOR_AWB_CA_TARGETGAIN_TAG_ID]         =
3043     {   "ca_TargetGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3044         check_tags_array_ignore, NULL
3045     },
3046     [CALIB_SENSOR_AWB_CONVERGEDVARTH_TAG_ID]         =
3047     {   "convergedVarTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3048         check_tags_array_ignore, NULL
3049     },
3050     [CALIB_SENSOR_AWB_LINERGBG_TAG_ID]         =
3051     {   "lineRgBg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3052         check_tags_array_ignore, NULL
3053     },
3054     [CALIB_SENSOR_AWB_LINERGBGPROJCCT_TAG_ID]         =
3055     {   "lineRgProjCCT", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3056         check_tags_array_ignore, NULL
3057     },
3058     [CALIB_SENSOR_AWB_MULTIWINDOW_TAG_ID]         =
3059     {   "multiwindow", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3060         check_tags_array_ignore, NULL
3061     },
3062     [CALIB_SENSOR_AWB_EXCLUDERANGE_TAG_ID]         =
3063     {   "excludeRange", CALIB_TAG_TYPE_CELL, {-1, -1},
3064         check_tags_array_info(calib_sensor_awb_excludeRange_sub_tags), NULL
3065     },
3066     [CALIB_SENSOR_AWB_EXCLUDERANGE_DOMAIN_TAG_ID]         =
3067     {   "Domain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3068         check_tags_array_ignore, NULL
3069     },
3070     [CALIB_SENSOR_AWB_EXCLUDE_MODE_TAG_ID]         =
3071     {   "mode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3072         check_tags_array_ignore, NULL
3073     },
3074     [CALIB_SENSOR_AWB_EXCLUDE_WINDOW_TAG_ID]         =
3075     {   "window", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3076         check_tags_array_ignore, NULL
3077     },
3078     [CALIB_SENSOR_AWB_V200_LIGHTSOURCES_TAG_ID]         =
3079     {   "LightSources", CALIB_TAG_TYPE_CELL, {-1, -1},
3080         check_tags_array_info(
3081             calib_sensor_awb_v200_lightSources_sub_tags), NULL
3082     },
3083     [CALIB_SENSOR_AWB_V201_LIGHTSOURCES_TAG_ID]         =
3084     {   "LightSources", CALIB_TAG_TYPE_CELL, {-1, -1},
3085         check_tags_array_info(
3086             calib_sensor_awb_v201_lightSources_sub_tags), NULL
3087     },
3088     [CALIB_SENSOR_AWB_ADJUSTPARA_LIGHTSOURCES_TAG_ID]         =
3089     {   "LightSources", CALIB_TAG_TYPE_CELL, {-1, -1},
3090         check_tags_array_info(
3091             calib_sensor_awb_adjustpara_lightSources_sub_tags), NULL
3092     },
3093 
3094     [CALIB_SENSOR_AWB_LIGHTSOURCES_NAME_TAG_ID]         =
3095     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
3096         check_tags_array_ignore, NULL
3097     },
3098     [CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTUREGION_TAG_ID]         =
3099     {   "lightURegion", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3100         check_tags_array_ignore, NULL
3101     },
3102     [CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTVREGION_TAG_ID]         =
3103     {   "lightVRegion", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3104         check_tags_array_ignore, NULL
3105     },
3106     [CALIB_SENSOR_AWB_LIGHTSOURCES_SMALLUREGION_TAG_ID]         =
3107     {   "smallURegion", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3108         check_tags_array_ignore, NULL
3109     },
3110     [CALIB_SENSOR_AWB_LIGHTSOURCES_SMALLVREGION_TAG_ID]         =
3111     {   "smallVRegion", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3112         check_tags_array_ignore, NULL
3113     },
3114     [CALIB_SENSOR_AWB_LIGHTSOURCES_LIGHTXYREGION_TAG_ID]         =
3115     {   "lightXYRegion", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3116         check_tags_array_info(calib_sensor_awb_lightXYRegion_sub_tags), NULL
3117     },
3118     [CALIB_SENSOR_AWB_LIGHTSOURCES_NORMAL_TAG_ID]         =
3119     {   "normal", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3120         check_tags_array_ignore, NULL
3121     },
3122     [CALIB_SENSOR_AWB_LIGHTSOURCES_BIG_TAG_ID]         =
3123     {   "big", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3124         check_tags_array_ignore, NULL
3125     },
3126     [CALIB_SENSOR_AWB_LIGHTSOURCES_SMALL_TAG_ID]         =
3127     {   "small", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3128         check_tags_array_ignore, NULL
3129     },
3130 
3131     [CALIB_SENSOR_AWB_LIGHTSOURCES_YUVREGION_TAG_ID]         =
3132     {   "yuvRegion", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3133         check_tags_array_info(calib_sensor_awb_yuvRegion_sub_tags), NULL
3134     },
3135     [CALIB_SENSOR_AWB_LIGHTSOURCES_K2SET_TAG_ID]         =
3136     {   "k2Set", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3137         check_tags_array_ignore, NULL
3138     },
3139     [CALIB_SENSOR_AWB_LIGHTSOURCES_B0SET_TAG_ID]         =
3140     {   "b0Set", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3141         check_tags_array_ignore, NULL
3142     },
3143     [CALIB_SENSOR_AWB_LIGHTSOURCES_K3SET_TAG_ID]         =
3144     {   "k3Set", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3145         check_tags_array_ignore, NULL
3146     },
3147     [CALIB_SENSOR_AWB_LIGHTSOURCES_K_YDISSET_TAG_ID]         =
3148     {   "k_ydisSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3149         check_tags_array_ignore, NULL
3150     },
3151     [CALIB_SENSOR_AWB_LIGHTSOURCES_B_YDISSET_TAG_ID]         =
3152     {   "b_ydisSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3153         check_tags_array_ignore, NULL
3154     },
3155     [CALIB_SENSOR_AWB_LIGHTSOURCES_UREFSET_TAG_ID]         =
3156     {   "uRefSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3157         check_tags_array_ignore, NULL
3158     },
3159     [CALIB_SENSOR_AWB_LIGHTSOURCES_VREFSET_TAG_ID]         =
3160     {   "vRefSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3161         check_tags_array_ignore, NULL
3162     },
3163     [CALIB_SENSOR_AWB_LIGHTSOURCES_DISSET_TAG_ID]         =
3164     {   "disSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3165         check_tags_array_ignore, NULL
3166     },
3167     [CALIB_SENSOR_AWB_LIGHTSOURCES_THSET_TAG_ID]         =
3168     {   "tHSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3169         check_tags_array_ignore, NULL
3170     },
3171     [CALIB_SENSOR_AWB_LIGHTSOURCES_RTYUVREGION_TAG_ID]         =
3172     {   "rtYuvRegion", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3173         check_tags_array_info(calib_sensor_awb_rtYuvRegion_sub_tags), NULL
3174     },
3175     [CALIB_SENSOR_AWB_LIGHTSOURCES_THCURVE_U_SET_TAG_ID]         =
3176     {   "thcurve_u_set", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3177         check_tags_array_ignore, NULL
3178     },
3179     [CALIB_SENSOR_AWB_LIGHTSOURCES_THCURVE_TH_SET_TAG_ID]         =
3180     {   "thcurve_th_set", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3181         check_tags_array_ignore, NULL
3182     },
3183     [CALIB_SENSOR_AWB_LIGHTSOURCES_LINEVECTOR_TAG_ID]         =
3184     {   "lineVector", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3185         check_tags_array_ignore, NULL
3186     },
3187     [CALIB_SENSOR_AWB_LIGHTSOURCES_DOORTYPE_TAG_ID]         =
3188     {   "doorType", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3189         check_tags_array_ignore, NULL
3190     },
3191     [CALIB_SENSOR_AWB_LIGHTSOURCES_STANDARDGAINVALUE_TAG_ID]         =
3192     {   "standardGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3193         check_tags_array_ignore, NULL
3194     },
3195     [CALIB_SENSOR_AWB_LIGHTSOURCES_STAWEIGTHSET_TAG_ID]         =
3196     {   "staWeigthSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3197         check_tags_array_ignore, NULL
3198     },
3199     [CALIB_SENSOR_AWB_LIGHTSOURCES_SPATIALGAIN_LV_THSET_TAG_ID]         =
3200     {   "spatialGain_LV_THSet", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3201         check_tags_array_ignore, NULL
3202     },
3203     [CALIB_SENSOR_AWB_LIGHTSOURCES_XYTYPE2ENABLE_TAG_ID]         =
3204     {   "xyType2Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3205         check_tags_array_ignore, NULL
3206     },
3207     [CALIB_SENSOR_AWB_LIGHTSOURCES_WEIGHTCURVE_RATIO_TAG_ID]         =
3208     {   "weightCurve_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3209         check_tags_array_ignore, NULL
3210     },
3211     [CALIB_SENSOR_AWB_LIGHTSOURCES_WEIGHTCURVE_WEIGHT_TAG_ID]         =
3212     {   "weightCurve_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3213         check_tags_array_ignore, NULL
3214     },
3215 
3216     [CALIB_SENSOR_AWB_WPDIFFBLKWEIENABLE_TAG_ID]         =
3217     {   "wpDiffBlkWeiEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3218         check_tags_array_ignore, NULL
3219     },
3220     [CALIB_SENSOR_AWB_BLKSTATISTICSENABLE_TAG_ID]         =
3221     {   "blkStatisticsEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3222         check_tags_array_ignore, NULL
3223     },
3224     [CALIB_SENSOR_AWB_WPDIFFBLKWEIGHT_TAG_ID]         =
3225     {   "wpDiffBlkWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3226         check_tags_array_ignore, NULL
3227     },
3228 
3229     // Sensor AWB RemosaicPara
3230     [CALIB_SENSOR_AWB_REMOSAICPARA_TAG_ID]         =
3231     {   "RemosaicPara", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3232         check_tags_array_info(calib_sensor_awb_RemosaicPara_sub_tags), NULL
3233     },
3234     [CALIB_SENSOR_AWB_REMOSAICPARA_ENABLE_TAG_ID]         =
3235     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3236         check_tags_array_ignore, NULL
3237     },
3238     [CALIB_SENSOR_AWB_REMOSAICPARA_WBGAIN_TAG_ID]         =
3239     {   "sensorWbGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3240         check_tags_array_ignore, NULL
3241     },
3242 
3243     [CALIB_SENSOR_AWB_RUNINTERNAL_TAG_ID]         =
3244     {   "runInterval", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3245         check_tags_array_info(calib_sensor_awb_runInterval_sub_tags), NULL
3246     },
3247     [CALIB_SENSOR_AWB_TOLERANCE_TAG_ID]         =
3248     {   "tolerance", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3249         check_tags_array_info(calib_sensor_awb_tolerance_sub_tags), NULL
3250     },
3251     [CALIB_SENSOR_AWB_LV_TAG_ID]         =
3252     {   "LV", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3253         check_tags_array_ignore, NULL
3254     },
3255     [CALIB_SENSOR_AWB_VALUE_TAG_ID]         =
3256     {   "value", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3257         check_tags_array_ignore, NULL
3258     },
3259     [CALIB_SENSOR_AWB_XYREGIONSTABLESELECTION_TAG_ID]         =
3260     {   "xyRegionStableSelection", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3261         check_tags_array_info(
3262             calib_sensor_awb_xyRegionStableSelection_sub_tags), NULL
3263     },
3264     [CALIB_SENSOR_AWB_XYREGIONSIZE_TAG_ID]         =
3265     {   "xyRegionSize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3266         check_tags_array_ignore, NULL
3267     },
3268     [CALIB_SENSOR_AWB_XYREGION_WPNUMTH_CELL_TAG_ID]     =
3269     {   "wpNumTh", CALIB_TAG_TYPE_CELL, {-1, -1},
3270         check_tags_array_info(calib_sensor_awb_xyregion_wpnumth_sub_tags), NULL
3271     },
3272     [CALIB_SENSOR_AWB_XYREGION_LV_TAG_ID]     =
3273     {   "LvValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3274         check_tags_array_ignore, NULL
3275     },
3276     [CALIB_SENSOR_AWB_XYREGION_WPNUMTHFORBIGTYPE_TAG_ID]     =
3277     {   "wpNumThForBigType", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3278         check_tags_array_ignore, NULL
3279     },
3280     [CALIB_SENSOR_AWB_XYREGION_WPNUMTHFOREXTRATYPE_TAG_ID]     =
3281     {   "wpNumThForExtraType", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3282         check_tags_array_ignore, NULL
3283     },
3284     [CALIB_SENSOR_AWB_WBGAINADJUST_TAG_ID]         =
3285     {   "wbGainAdjust", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3286         check_tags_array_info(calib_sensor_awb_wbGainAdjust_sub_tags), NULL
3287     },
3288     [CALIB_SENSOR_AWB_CTGRID_NUM_TAG_ID]         =
3289     {   "ct_grid_num", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3290         check_tags_array_ignore, NULL
3291     },
3292     [CALIB_SENSOR_AWB_CTINRANGE_TAG_ID]         =
3293     {   "ct_in_range", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3294         check_tags_array_ignore, NULL
3295     },
3296     [CALIB_SENSOR_AWB_CRIGRID_NUM_TAG_ID]         =
3297     {   "cri_grid_num", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3298         check_tags_array_ignore, NULL
3299     },
3300     [CALIB_SENSOR_AWB_CRIINRANGE_TAG_ID]         =
3301     {   "cri_in_range", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3302         check_tags_array_ignore, NULL
3303     },
3304     [CALIB_SENSOR_AWB_LUTALL_TAG_ID]         =
3305     {   "lutAll", CALIB_TAG_TYPE_CELL, {-1, -1},
3306         check_tags_array_info(calib_sensor_awb_lutAll_sub_tags), NULL
3307     },
3308     [CALIB_SENSOR_AWB_LVVALUE_TAG_ID]         =
3309     {   "LvValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3310         check_tags_array_ignore, NULL
3311     },
3312     [CALIB_SENSOR_AWB_CTOUT_TAG_ID]         =
3313     {   "ct_out", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3314         check_tags_array_ignore, NULL
3315     },
3316     [CALIB_SENSOR_AWB_CRIOUT_TAG_ID]         =
3317     {   "cri_out", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3318         check_tags_array_ignore, NULL
3319     },
3320     [CALIB_SENSOR_AWB_WBGAINADJUSTENABLE_TAG_ID]         =
3321     {   "wbGainAdjustEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3322         check_tags_array_ignore, NULL
3323     },
3324     [CALIB_SENSOR_AWB_WBGAINOFFSET_TAG_ID]         =
3325     {   "wbGainOffset", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3326         check_tags_array_info(calib_sensor_awb_wbGainOffset_sub_tags), NULL
3327     },
3328     [CALIB_SENSOR_AWB_WBGAINOFFSET_ENABLE_TAG_ID]         =
3329     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3330         check_tags_array_ignore, NULL
3331     },
3332     [CALIB_SENSOR_AWB_WBGAINOFFSET_OFFSET_TAG_ID]         =
3333     {   "offset", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3334         check_tags_array_ignore, NULL
3335     },
3336     [CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIPENABLE_TAG_ID]         =
3337     {   "wbGainDaylightClipEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3338         check_tags_array_ignore, NULL
3339     },
3340     [CALIB_SENSOR_AWB_WBGAINCLIPEANBLE_TAG_ID]         =
3341     {   "wbGainClipEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3342         check_tags_array_ignore, NULL
3343     },
3344     [CALIB_SENSOR_AWB_WBGAINDAYLIGHTCLIP_TAG_ID]         =
3345     {   "wbGainDaylightClip", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3346         check_tags_array_info(
3347             calib_sensor_awb_wbGainDaylightClip_sub_tags), NULL
3348     },
3349     [CALIB_SENSOR_AWB_OUTDOORCCTMIN_TAG_ID]         =
3350     {   "outdoor_cct_min", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3351         check_tags_array_ignore, NULL
3352     },
3353     [CALIB_SENSOR_AWB_WBGAINCLIP_TAG_ID]         =
3354     {   "wbGainClip", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3355         check_tags_array_info(
3356             calib_sensor_awb_wbGainClip_sub_tags), NULL
3357     },
3358     [CALIB_SENSOR_AWB_CCT_TAG_ID]         =
3359     {   "cct", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3360         check_tags_array_ignore, NULL
3361     },
3362     [CALIB_SENSOR_AWB_CRIBOUNDUP_TAG_ID]         =
3363     {   "cri_bound_up", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3364         check_tags_array_ignore, NULL
3365     },
3366     [CALIB_SENSOR_AWB_CRIBOUNDLOW_TAG_ID]         =
3367     {   "cri_bound_low", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3368         check_tags_array_ignore, NULL
3369     },
3370     // Sensor AEC
3371     [CALIB_SENSOR_AEC_TAG_ID]         =
3372     {   "AEC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3373         check_tags_array_info(calib_sensor_aec_sub_tags), NULL
3374     },
3375     [CALIB_SENSOR_AEC_HISTSTATSMODE_TAG_ID]         =
3376     {   "HistStatsMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
3377         check_tags_array_ignore, NULL
3378     },
3379     [CALIB_SENSOR_AEC_HISTSTATSMODE_R_TAG_ID]         =
3380     {   "R", CALIB_TAG_TYPE_CHAR, {-1, -1},
3381         check_tags_array_ignore, NULL
3382     },
3383     [CALIB_SENSOR_AEC_HISTSTATSMODE_G_TAG_ID]         =
3384     {   "G", CALIB_TAG_TYPE_CHAR, {-1, -1},
3385         check_tags_array_ignore, NULL
3386     },
3387     [CALIB_SENSOR_AEC_HISTSTATSMODE_B_TAG_ID]         =
3388     {   "B", CALIB_TAG_TYPE_CHAR, {-1, -1},
3389         check_tags_array_ignore, NULL
3390     },
3391     [CALIB_SENSOR_AEC_HISTSTATSMODE_RGB_TAG_ID]         =
3392     {   "RGB", CALIB_TAG_TYPE_CHAR, {-1, -1},
3393         check_tags_array_ignore, NULL
3394     },
3395     [CALIB_SENSOR_AEC_HISTSTATSMODE_Y_TAG_ID]         =
3396     {   "Y", CALIB_TAG_TYPE_CHAR, {-1, -1},
3397         check_tags_array_ignore, NULL
3398     },
3399     [CALIB_SENSOR_AEC_RAWSTATSMODE_TAG_ID]         =
3400     {   "RawStatsMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
3401         check_tags_array_ignore, NULL
3402     },
3403     [CALIB_SENSOR_AEC_RAWSTATSMODE_R_TAG_ID]         =
3404     {   "R", CALIB_TAG_TYPE_CHAR, {-1, -1},
3405         check_tags_array_ignore, NULL
3406     },
3407     [CALIB_SENSOR_AEC_RAWSTATSMODE_G_TAG_ID]         =
3408     {   "G", CALIB_TAG_TYPE_CHAR, {-1, -1},
3409         check_tags_array_ignore, NULL
3410     },
3411     [CALIB_SENSOR_AEC_RAWSTATSMODE_B_TAG_ID]         =
3412     {   "B", CALIB_TAG_TYPE_CHAR, {-1, -1},
3413         check_tags_array_ignore, NULL
3414     },
3415     [CALIB_SENSOR_AEC_RAWSTATSMODE_Y_TAG_ID]         =
3416     {   "Y", CALIB_TAG_TYPE_CHAR, {-1, -1},
3417         check_tags_array_ignore, NULL
3418     },
3419     [CALIB_SENSOR_AEC_YRANGEMODE_TAG_ID]         =
3420     {   "YRangeMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
3421         check_tags_array_ignore, NULL
3422     },
3423     [CALIB_SENSOR_AEC_YRANGEMODE_FULL_TAG_ID]         =
3424     {   "FULL", CALIB_TAG_TYPE_CHAR, {-1, -1},
3425         check_tags_array_ignore, NULL
3426     },
3427     [CALIB_SENSOR_AEC_YRANGEMODE_LIMITED_TAG_ID]         =
3428     {   "LIMITED", CALIB_TAG_TYPE_CHAR, {-1, -1},
3429         check_tags_array_ignore, NULL
3430     },
3431 
3432     [CALIB_SENSOR_AEC_AECRUNINTERVAL_TAG_ID]         =
3433     {   "AecRunInterval", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3434         check_tags_array_ignore, NULL
3435     },
3436     [CALIB_SENSOR_AEC_AECOPTYPE_TAG_ID]         =
3437     {   "AecOpType", CALIB_TAG_TYPE_CHAR, {-1, -1},
3438         check_tags_array_ignore, NULL
3439     },
3440     [CALIB_SENSOR_AEC_AECOPTYPE_AUTO_TAG_ID]         =
3441     {   "AUTO", CALIB_TAG_TYPE_CHAR, {-1, -1},
3442         check_tags_array_ignore, NULL
3443     },
3444     [CALIB_SENSOR_AEC_AECOPTYPE_MANUAL_TAG_ID]         =
3445     {   "MANUAL", CALIB_TAG_TYPE_CHAR, {-1, -1},
3446         check_tags_array_ignore, NULL
3447     },
3448 
3449     [CALIB_SENSOR_AEC_SYNCTEST_TAG_ID]         =
3450     {   "AecSyncTest", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3451         check_tags_array_info(calib_sensor_aec_AecSyncTest_sub_tags), NULL
3452     },
3453     [CALIB_SENSOR_AEC_SYNCTEST_ENABLE_TAG_ID]         =
3454     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3455         check_tags_array_ignore, NULL
3456     },
3457     [CALIB_SENSOR_AEC_SYNCTEST_INTERVALFRM_TAG_ID]         =
3458     {   "IntervalFrm", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3459         check_tags_array_ignore, NULL
3460     },
3461     [CALIB_SENSOR_AEC_SYNCTEST_ALTEREXP_TAG_ID]         =
3462     {   "AlterExp", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3463         check_tags_array_info(calib_sensor_aec_AecSyncTest_AlterExp_sub_tags), NULL
3464     },
3465     [CALIB_SENSOR_AEC_SYNCTEST_LINALTEREXP_TAG_ID]         =
3466     {   "LinearAE", CALIB_TAG_TYPE_CELL, {-1, -1},
3467         check_tags_array_info(calib_sensor_aec_AecSyncTest_LinAlterExp_sub_tags), NULL
3468     },
3469     [CALIB_SENSOR_AEC_SYNCTEST_HDRALTEREXP_TAG_ID]         =
3470     {   "HdrAE", CALIB_TAG_TYPE_CELL, {-1, -1},
3471         check_tags_array_info(calib_sensor_aec_AecSyncTest_HdrAlterExp_sub_tags), NULL
3472     },
3473     [CALIB_SENSOR_AEC_SYNCTEST_TIMEVALUE_TAG_ID]         =
3474     {   "TimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3475         check_tags_array_ignore, NULL
3476     },
3477     [CALIB_SENSOR_AEC_SYNCTEST_GAINVALUE_TAG_ID]         =
3478     {   "GainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3479         check_tags_array_ignore, NULL
3480     },
3481     [CALIB_SENSOR_AEC_SYNCTEST_ISPGAINVALUE_TAG_ID]         =
3482     {   "IspDgainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3483         check_tags_array_ignore, NULL
3484     },
3485     [CALIB_SENSOR_AEC_SYNCTEST_DCGMODE_TAG_ID]         =
3486     {   "DcgMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3487         check_tags_array_ignore, NULL
3488     },
3489     [CALIB_SENSOR_AEC_SYNCTEST_PIRISVALUE_TAG_ID]         =
3490     {   "PIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3491         check_tags_array_ignore, NULL
3492     },
3493 
3494 
3495     [CALIB_SENSOR_AEC_AECDNSWITCH_TAG_ID]         =
3496     {   "AecDNSwitch", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3497         check_tags_array_info(calib_sensor_aec_AecDNSwitch_sub_tags), NULL
3498     },
3499     [CALIB_SENSOR_AEC_AECDNSWITCH_DNTRIGGER_TAG_ID]         =
3500     {   "DNTrigger", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3501         check_tags_array_ignore, NULL
3502     },
3503     [CALIB_SENSOR_AEC_AECDNSWITCH_DNMODE_TAG_ID]         =
3504     {   "DNMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
3505         check_tags_array_ignore, NULL
3506     },
3507     [CALIB_SENSOR_AEC_AECDNSWITCH_DNMODE_DAY_TAG_ID]         =
3508     {   "DAY", CALIB_TAG_TYPE_CHAR, {-1, -1},
3509         check_tags_array_ignore, NULL
3510     },
3511     [CALIB_SENSOR_AEC_AECDNSWITCH_DNMODE_NIGHT_TAG_ID]         =
3512     {   "NIGHT", CALIB_TAG_TYPE_CHAR, {-1, -1},
3513         check_tags_array_ignore, NULL
3514     },
3515     [CALIB_SENSOR_AEC_AECDNSWITCH_FILLLIGHTMODE_TAG_ID]         =
3516     {   "FillLightMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3517         check_tags_array_ignore, NULL
3518     },
3519     [CALIB_SENSOR_AEC_AECDNSWITCH_D2NFACTH_TAG_ID]         =
3520     {   "D2NFacTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3521         check_tags_array_ignore, NULL
3522     },
3523     [CALIB_SENSOR_AEC_AECDNSWITCH_D2NFRMCNT_TAG_ID]         =
3524     {   "D2NFrmCnt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3525         check_tags_array_ignore, NULL
3526     },
3527 
3528 
3529     [CALIB_SENSOR_AEC_AECDNSWITCH_VBNIGHTMODE_TAG_ID]         =
3530     {   "VBNightMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3531         check_tags_array_info(calib_sensor_aec_VBNightMode_sub_tags), NULL
3532     },
3533     [CALIB_SENSOR_AEC_ENABLE_TAG_ID]         =
3534     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3535         check_tags_array_ignore, NULL
3536     },
3537     [CALIB_SENSOR_AEC_AECDNSWITCH_N2DFRMCNT_TAG_ID]         =
3538     {   "N2DFrmCnt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3539         check_tags_array_ignore, NULL
3540     },
3541     [CALIB_SENSOR_AEC_AECDNSWITCH_N2DFACTH_TAG_ID]         =
3542     {   "N2DFacTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3543         check_tags_array_ignore, NULL
3544     },
3545 
3546 
3547     [CALIB_SENSOR_AEC_AECDNSWITCH_IRNIGHTMODE_TAG_ID]         =
3548     {   "IRNightMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3549         check_tags_array_info(calib_sensor_aec_IRNightMode_sub_tags), NULL
3550     },
3551     [CALIB_SENSOR_AEC_AECDNSWITCH_IR_RG_TAG_ID]         =
3552     {   "IR_rg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3553         check_tags_array_ignore, NULL
3554     },
3555     [CALIB_SENSOR_AEC_AECDNSWITCH_IR_BG_TAG_ID]         =
3556     {   "IR_bg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3557         check_tags_array_ignore, NULL
3558     },
3559     [CALIB_SENSOR_AEC_AECDNSWITCH_MAX_DIS_TAG_ID]         =
3560     {   "Max_Dis", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3561         check_tags_array_ignore, NULL
3562     },
3563     [CALIB_SENSOR_AEC_AECDNSWITCH_VB_PERCENT_TAG_ID]         =
3564     {   "VBPercent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3565         check_tags_array_ignore, NULL
3566     },
3567 
3568 
3569     [CALIB_SENSOR_AEC_AECSPEED_TAG_ID]         =
3570     {   "AecSpeed", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3571         check_tags_array_info(calib_sensor_aec_AecSpeed_sub_tags), NULL
3572     },
3573     [CALIB_SENSOR_AEC_SMOOTHEN_TAG_ID]         =
3574     {   "SmoothEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3575         check_tags_array_ignore, NULL
3576     },
3577     [CALIB_SENSOR_AEC_DYDAMPEN_TAG_ID]         =
3578     {   "DyDampEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3579         check_tags_array_ignore, NULL
3580     },
3581     [CALIB_SENSOR_AEC_DAMPOVER_TAG_ID]         =
3582     {   "DampOver", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3583         check_tags_array_ignore, NULL
3584     },
3585     [CALIB_SENSOR_AEC_DAMPUNDER_TAG_ID]         =
3586     {   "DampUnder", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3587         check_tags_array_ignore, NULL
3588     },
3589     [CALIB_SENSOR_AEC_DAMPDARK2BRIGHT_TAG_ID]         =
3590     {   "DampDark2Bright", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3591         check_tags_array_ignore, NULL
3592     },
3593     [CALIB_SENSOR_AEC_DAMPBRIGHT2DARK_TAG_ID]         =
3594     {   "DampBright2Dark", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3595         check_tags_array_ignore, NULL
3596     },
3597     [CALIB_SENSOR_AEC_DAMPOVERVIDEO_TAG_ID]         =
3598     {   "DampOverVideo", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3599         check_tags_array_ignore, NULL
3600     },
3601     [CALIB_SENSOR_AEC_DAMPUNDERVIDEO_TAG_ID]         =
3602     {   "DampUnderVideo", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3603         check_tags_array_ignore, NULL
3604     },
3605 
3606 
3607     [CALIB_SENSOR_AEC_AECDELAYFRMNUM_TAG_ID]         =
3608     {   "AecDelayFrmNum", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3609         check_tags_array_info(calib_sensor_aec_AecDelayFrmNum_sub_tags), NULL
3610     },
3611     [CALIB_SENSOR_AEC_BLACKDELAY_TAG_ID]         =
3612     {   "BlackDelay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3613         check_tags_array_ignore, NULL
3614     },
3615     [CALIB_SENSOR_AEC_WHITEDELAY_TAG_ID]         =
3616     {   "WhiteDelay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3617         check_tags_array_ignore, NULL
3618     },
3619 
3620 
3621     [CALIB_SENSOR_AEC_AECFRAMERATEMODE_TAG_ID]         =
3622     {   "AecFrameRateMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3623         check_tags_array_info(calib_sensor_aec_AecFrameRateMode_sub_tags), NULL
3624     },
3625     [CALIB_SENSOR_AEC_ISFPSFIX_TAG_ID]         =
3626     {   "isFpsFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3627         check_tags_array_ignore, NULL
3628     },
3629     [CALIB_SENSOR_AEC_FPSVALUE_TAG_ID]         =
3630     {   "FpsValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3631         check_tags_array_ignore, NULL
3632     },
3633     [CALIB_SENSOR_AEC_FPSFIX_LINTIMEDOT_TAG_ID]         =
3634     {   "FpsFix_LinTimeDot", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3635         check_tags_array_ignore, NULL
3636     },
3637     [CALIB_SENSOR_AEC_FPSFIX_HDRTIMEDOT_TAG_ID]         =
3638     {   "FpsFix_HdrTimeDot", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3639         check_tags_array_ignore, NULL
3640     },
3641 
3642     [CALIB_SENSOR_AEC_ANTIFLICKER_TAG_ID]         =
3643     {   "AecAntiFlicker", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3644         check_tags_array_info(calib_sensor_aec_AecAntiFlicker_sub_tags), NULL
3645     },
3646     [CALIB_SENSOR_AEC_ANTIFLICKER_ENABLE_TAG_ID]         =
3647     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3648         check_tags_array_ignore, NULL
3649     },
3650     [CALIB_SENSOR_AEC_ANTIFLICKER_FREQ_TAG_ID]         =
3651     {   "Frequency", CALIB_TAG_TYPE_CHAR, {-1, -1},
3652         check_tags_array_ignore, NULL
3653     },
3654     [CALIB_SENSOR_AEC_ANTIFLICKER_FREQ_50HZ_TAG_ID]         =
3655     {   "FLICKER_50HZ", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3656         check_tags_array_ignore, NULL
3657     },
3658     [CALIB_SENSOR_AEC_ANTIFLICKER_FREQ_60HZ_TAG_ID]         =
3659     {   "FLICKER_60HZ", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3660         check_tags_array_ignore, NULL
3661     },
3662     [CALIB_SENSOR_AEC_ANTIFLICKER_MODE_TAG_ID]         =
3663     {   "Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
3664         check_tags_array_ignore, NULL
3665     },
3666     [CALIB_SENSOR_AEC_ANTIFLICKER_MODE_AUTO_TAG_ID]         =
3667     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3668         check_tags_array_ignore, NULL
3669     },
3670     [CALIB_SENSOR_AEC_ANTIFLICKER_MODE_NORMAL_TAG_ID]         =
3671     {   "NORMAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3672         check_tags_array_ignore, NULL
3673     },
3674 
3675     [CALIB_SENSOR_AEC_AECINITVALUE_TAG_ID]         =
3676     {   "AecInitValue", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3677         check_tags_array_info(calib_sensor_aec_AecInitValue_sub_tags), NULL
3678     },
3679     [CALIB_SENSOR_AEC_AECINITVALUE_LINEARAE_TAG_ID]         =
3680     {   "LinearAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3681         check_tags_array_info(calib_sensor_aec_AecInitValue_LinearAE_sub_tags), NULL
3682     },
3683     [CALIB_SENSOR_AEC_AECINITVALUE_HDRAE_TAG_ID]         =
3684     {   "HdrAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3685         check_tags_array_info(calib_sensor_aec_AecInitValue_HdrAE_sub_tags), NULL
3686     },
3687     [CALIB_SENSOR_AEC_INITTIMEVALUE_TAG_ID]         =
3688     {   "InitTimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3689         check_tags_array_ignore, NULL
3690     },
3691     [CALIB_SENSOR_AEC_INITGAINVALUE_TAG_ID]         =
3692     {   "InitGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3693         check_tags_array_ignore, NULL
3694     },
3695     [CALIB_SENSOR_AEC_INITISPDGAINVALUE_TAG_ID]         =
3696     {   "InitIspDgainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3697         check_tags_array_ignore, NULL
3698     },
3699     [CALIB_SENSOR_AEC_INITPIRISVALUE_TAG_ID]         =
3700     {   "InitPIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3701         check_tags_array_ignore, NULL
3702     },
3703     [CALIB_SENSOR_AEC_INITDCIRISVALUE_TAG_ID]        =
3704     {   "InitDCIrisDutyValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3705         check_tags_array_ignore, NULL
3706     },
3707     [CALIB_SENSOR_AEC_INITHDCIRISVALUE_TAG_ID]        =
3708     {   "InitHDCIrisDutyValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3709         check_tags_array_ignore, NULL
3710     },
3711 
3712     [CALIB_SENSOR_AEC_AECGRIDWEIGHT_TAG_ID]         =
3713     {   "AecGridWeight", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3714         check_tags_array_info(calib_sensor_aec_AecGridWeight_sub_tags), NULL
3715     },
3716     [CALIB_SENSOR_AEC_DAYGRIDWEIGHTS_TAG_ID]         =
3717     {   "DayGridWeights", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3718         check_tags_array_ignore, NULL
3719     },
3720     [CALIB_SENSOR_AEC_NIGHTGRIDWEIGHTS_TAG_ID]         =
3721     {   "NightGridWeights", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3722         check_tags_array_ignore, NULL
3723     },
3724 
3725     [CALIB_SENSOR_AEC_AECROUTE_TAG_ID]         =
3726     {   "AecRoute", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3727         check_tags_array_info(calib_sensor_aec_AecRoute_sub_tags), NULL
3728     },
3729     [CALIB_SENSOR_AEC_AECROUTE_LINEARAE_TAG_ID]         =
3730     {   "LinearAE", CALIB_TAG_TYPE_CELL, {-1, -1},
3731         check_tags_array_info(calib_sensor_aec_AecRoute_LinearAE_sub_tags), NULL
3732     },
3733     [CALIB_SENSOR_AEC_AECROUTE_HDRAE_TAG_ID]         =
3734     {   "HdrAE", CALIB_TAG_TYPE_CELL, {-1, -1},
3735         check_tags_array_info(calib_sensor_aec_AecRoute_HdrAE_sub_tags), NULL
3736     },
3737     [CALIB_SENSOR_AEC_NAME_TAG_ID]         =
3738     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
3739         check_tags_array_ignore, NULL
3740     },
3741     [CALIB_SENSOR_AEC_TIMEDOT_TAG_ID]         =
3742     {   "TimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3743         check_tags_array_ignore, NULL
3744     },
3745     [CALIB_SENSOR_AEC_GAINDOT_TAG_ID]         =
3746     {   "GainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3747         check_tags_array_ignore, NULL
3748     },
3749     [CALIB_SENSOR_AEC_ISPDGAINDOT_TAG_ID]         =
3750     {   "IspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3751         check_tags_array_ignore, NULL
3752     },
3753     [CALIB_SENSOR_AEC_PIRISDOT_TAG_ID]         =
3754     {   "PIrisDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3755         check_tags_array_ignore, NULL
3756     },
3757     [CALIB_SENSOR_AEC_LTIMEDOT_TAG_ID]         =
3758     {   "LTimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3759         check_tags_array_ignore, NULL
3760     },
3761     [CALIB_SENSOR_AEC_MTIMEDOT_TAG_ID]         =
3762     {   "MTimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3763         check_tags_array_ignore, NULL
3764     },
3765     [CALIB_SENSOR_AEC_STIMEDOT_TAG_ID]         =
3766     {   "STimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3767         check_tags_array_ignore, NULL
3768     },
3769     [CALIB_SENSOR_AEC_LGAINDOT_TAG_ID]         =
3770     {   "LGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3771         check_tags_array_ignore, NULL
3772     },
3773     [CALIB_SENSOR_AEC_MGAINDOT_TAG_ID]         =
3774     {   "MGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3775         check_tags_array_ignore, NULL
3776     },
3777     [CALIB_SENSOR_AEC_SGAINDOT_TAG_ID]         =
3778     {   "SGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3779         check_tags_array_ignore, NULL
3780     },
3781     [CALIB_SENSOR_AEC_LISPDGAINDOT_TAG_ID]         =
3782     {   "LIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3783         check_tags_array_ignore, NULL
3784     },
3785     [CALIB_SENSOR_AEC_MISPDGAINDOT_TAG_ID]         =
3786     {   "MIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3787         check_tags_array_ignore, NULL
3788     },
3789     [CALIB_SENSOR_AEC_SISPDGAINDOT_TAG_ID]         =
3790     {   "SIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3791         check_tags_array_ignore, NULL
3792     },
3793 
3794     [CALIB_SENSOR_AEC_IRISCTRL_TAG_ID]      =
3795     {   "AecIrisCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3796         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_sub_tags), NULL
3797     },
3798     [CALIB_SENSOR_AEC_IRISCTRL_ENABLE_TAG_ID]       =
3799     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3800         check_tags_array_ignore, NULL
3801     },
3802     [CALIB_SENSOR_AEC_IRISCTRL_TYPE_TAG_ID]     =
3803     {   "IrisType", CALIB_TAG_TYPE_CHAR, {-1, -1},
3804         check_tags_array_ignore, NULL
3805     },
3806     [CALIB_SENSOR_AEC_IRISCTRL_TYPE_P_TAG_ID]       =
3807     {   "P", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3808         check_tags_array_ignore, NULL
3809     },
3810     [CALIB_SENSOR_AEC_IRISCTRL_TYPE_DC_TAG_ID]      =
3811     {   "DC", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3812         check_tags_array_ignore, NULL
3813     },
3814     [CALIB_SENSOR_AEC_IRISCTRL_TYPE_HDC_TAG_ID]      =
3815     {   "HDC", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
3816         check_tags_array_ignore, NULL
3817     },
3818 
3819     [CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_TAG_ID]         =
3820     {   "PIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3821         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_PAttr_sub_tags), NULL
3822     },
3823     [CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_TOTALSTEP_TAG_ID]     =
3824     {   "TotalStep", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3825         check_tags_array_ignore, NULL
3826     },
3827     [CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_EFFCSTEP_TAG_ID]      =
3828     {   "EffcStep", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3829         check_tags_array_ignore, NULL
3830     },
3831     [CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_ZEROISMAX_TAG_ID]     =
3832     {   "ZeroIsMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3833         check_tags_array_ignore, NULL
3834     },
3835     [CALIB_SENSOR_AEC_IRISCTRL_P_ATTR_STEPTABLE_TAG_ID]     =
3836     {   "StepTable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3837         check_tags_array_ignore, NULL
3838     },
3839 
3840     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_TAG_ID]      =
3841     {   "DCIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3842         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_DCAttr_sub_tags), NULL
3843     },
3844     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KP_TAG_ID]       =
3845     {   "Kp", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3846         check_tags_array_ignore, NULL
3847     },
3848     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KI_TAG_ID]       =
3849     {   "Ki", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3850         check_tags_array_ignore, NULL
3851     },
3852     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_KD_TAG_ID]       =
3853     {   "Kd", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3854         check_tags_array_ignore, NULL
3855     },
3856     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_MIN_PWMDUTY_TAG_ID]      =
3857     {   "MinPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3858         check_tags_array_ignore, NULL
3859     },
3860     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_MAX_PWMDUTY_TAG_ID]      =
3861     {   "MaxPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3862         check_tags_array_ignore, NULL
3863     },
3864     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_OPEN_PWMDUTY_TAG_ID]      =
3865     {   "OpenPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3866         check_tags_array_ignore, NULL
3867     },
3868     [CALIB_SENSOR_AEC_IRISCTRL_DC_ATTR_CLOSE_PWMDUTY_TAG_ID]      =
3869     {   "ClosePwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3870         check_tags_array_ignore, NULL
3871     },
3872 
3873     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_TAG_ID]      =
3874     {   "HDCIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3875         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_HDCAttr_sub_tags), NULL
3876     },
3877     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_DAMPOVER_TAG_ID]       =
3878     {   "DampOver", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3879         check_tags_array_ignore, NULL
3880     },
3881     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_DAMPUNDER_TAG_ID]       =
3882     {   "DampUnder", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3883         check_tags_array_ignore, NULL
3884     },
3885     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZEROISMAX_TAG_ID]       =
3886     {   "ZeroIsMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3887         check_tags_array_ignore, NULL
3888     },
3889     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_MINTARGET_TAG_ID]       =
3890     {   "MinTarget", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3891         check_tags_array_ignore, NULL
3892     },
3893     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_MAXTARGET_TAG_ID]       =
3894     {   "MaxTarget", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3895         check_tags_array_ignore, NULL
3896     },
3897     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZOOMTARGETDOT_TAG_ID]       =
3898     {   "ZoomTargetDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3899         check_tags_array_ignore, NULL
3900     },
3901     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_ZOOMDOT_TAG_ID]       =
3902     {   "ZoomDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3903         check_tags_array_ignore, NULL
3904     },
3905     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_IRISTARGETDOT_TAG_ID]       =
3906     {   "IrisTargetDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3907         check_tags_array_ignore, NULL
3908     },
3909     [CALIB_SENSOR_AEC_IRISCTRL_HDC_ATTR_GAINDOT_TAG_ID]       =
3910     {   "GainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3911         check_tags_array_ignore, NULL
3912     },
3913 
3914     [CALIB_SENSOR_AEC_MANUALCTRL_TAG_ID]         =
3915     {   "AecManualCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3916         check_tags_array_info(calib_sensor_aec_AecManualCtrl_sub_tags), NULL
3917     },
3918     [CALIB_SENSOR_AEC_MANUALCTRL_LINEARAE_TAG_ID]         =
3919     {   "LinearAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3920         check_tags_array_info(calib_sensor_aec_AecManualCtrl_LinearAE_sub_tags), NULL
3921     },
3922     [CALIB_SENSOR_AEC_MANUALCTRL_HDRAE_TAG_ID]         =
3923     {   "HdrAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3924         check_tags_array_info(calib_sensor_aec_AecManualCtrl_HdrAE_sub_tags), NULL
3925     },
3926     [CALIB_SENSOR_AEC_MANUALCTRL_TIMEEN_TAG_ID]         =
3927     {   "ManualTimeEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3928         check_tags_array_ignore, NULL
3929     },
3930     [CALIB_SENSOR_AEC_MANUALCTRL_GAINEN_TAG_ID]         =
3931     {   "ManualGainEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3932         check_tags_array_ignore, NULL
3933     },
3934     [CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINEN_TAG_ID]         =
3935     {   "ManualIspDgainEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3936         check_tags_array_ignore, NULL
3937     },
3938     [CALIB_SENSOR_AEC_MANUALCTRL_IRISEN_TAG_ID]         =
3939     {   "ManualIrisEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3940         check_tags_array_ignore, NULL
3941     },
3942     [CALIB_SENSOR_AEC_MANUALCTRL_TIMEVALUE_TAG_ID]         =
3943     {   "TimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3944         check_tags_array_ignore, NULL
3945     },
3946     [CALIB_SENSOR_AEC_MANUALCTRL_GAINVALUE_TAG_ID]         =
3947     {   "GainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3948         check_tags_array_ignore, NULL
3949     },
3950     [CALIB_SENSOR_AEC_MANUALCTRL_ISPDGAINVALUE_TAG_ID]         =
3951     {   "IspDGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3952         check_tags_array_ignore, NULL
3953     },
3954     [CALIB_SENSOR_AEC_MANUALCTRL_PIRISVALUE_TAG_ID]         =
3955     {   "PIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3956         check_tags_array_ignore, NULL
3957     },
3958     [CALIB_SENSOR_AEC_MANUALCTRL_DCIRISVALUE_TAG_ID]        =
3959     {   "DCIrisValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3960         check_tags_array_ignore, NULL
3961     },
3962     [CALIB_SENSOR_AEC_MANUALCTRL_HDCIRISVALUE_TAG_ID]        =
3963     {   "HDCIrisValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3964         check_tags_array_ignore, NULL
3965     },
3966 
3967     [CALIB_SENSOR_AEC_ENVLVCALIB_TAG_ID]      =
3968     {   "AecEnvLvCalib", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3969         check_tags_array_info(calib_sensor_aec_AecEnvLvCalib_sub_tags), NULL
3970     },
3971     [CALIB_SENSOR_AEC_ENVLVCALIB_CALIBFNUMBER_TAG_ID]         =
3972     {   "CalibFNumber", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3973         check_tags_array_ignore, NULL
3974     },
3975     [CALIB_SENSOR_AEC_ENVLVCALIB_CURVECOEFF_TAG_ID]      =
3976     {   "CurveCoeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3977         check_tags_array_ignore, NULL
3978     },
3979 
3980     [CALIB_SENSOR_AEC_LINEARAE_CTRL_TAG_ID]         =
3981     {   "LinearAECtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
3982         check_tags_array_info(calib_sensor_aec_LinearAECtrl_sub_tags), NULL
3983     },
3984     [CALIB_SENSOR_AEC_RAWSTATS_EN_TAG_ID]         =
3985     {   "RawStatsEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3986         check_tags_array_ignore, NULL
3987     },
3988     [CALIB_SENSOR_AEC_SETPOINT_TAG_ID]         =
3989     {   "SetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3990         check_tags_array_ignore, NULL
3991     },
3992     [CALIB_SENSOR_AEC_NIGHTSETPOINT_TAG_ID]         =
3993     {   "NightSetpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3994         check_tags_array_ignore, NULL
3995     },
3996     [CALIB_SENSOR_AEC_DYSETPOINTEN_TAG_ID]         =
3997     {   "DySetPointEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
3998         check_tags_array_ignore, NULL
3999     },
4000     [CALIB_SENSOR_AEC_DYNAMICSETPOINT_TAG_ID]         =
4001     {   "DynamicSetpoint", CALIB_TAG_TYPE_CELL, {-1, -1},
4002         check_tags_array_info(calib_sensor_aec_DySetPointEn_sub_tags), NULL
4003     },
4004     [CALIB_SENSOR_AEC_EXPLEVEL_TAG_ID]         =
4005     {   "ExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4006         check_tags_array_ignore, NULL
4007     },
4008     [CALIB_SENSOR_AEC_DYSETPOINT_TAG_ID]         =
4009     {   "DySetpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4010         check_tags_array_ignore, NULL
4011     },
4012     [CALIB_SENSOR_AEC_TOLERANCE_IN_TAG_ID]         =
4013     {   "ToleranceIn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4014         check_tags_array_ignore, NULL
4015     },
4016     [CALIB_SENSOR_AEC_TOLERANCE_OUT_TAG_ID]         =
4017     {   "ToleranceOut", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4018         check_tags_array_ignore, NULL
4019     },
4020     [CALIB_SENSOR_AEC_STRATEGYMODE_TAG_ID]         =
4021     {   "StrategyMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
4022         check_tags_array_ignore, NULL
4023     },
4024     [CALIB_SENSOR_AEC_STRATEGYMODE_LOWLIGHT_TAG_ID]         =
4025     {   "LOWLIGHT_PRIOR", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4026         check_tags_array_ignore, NULL
4027     },
4028     [CALIB_SENSOR_AEC_STRATEGYMODE_HIGHLIGHT_TAG_ID]         =
4029     {   "HIGHLIGHT_PRIOR", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4030         check_tags_array_ignore, NULL
4031     },
4032     [CALIB_SENSOR_AEC_EVBIAS_TAG_ID]         =
4033     {   "Evbias", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4034         check_tags_array_ignore, NULL
4035     },
4036 
4037     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_CONFIG_TAG_ID]         =
4038     {   "BackLightCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4039         check_tags_array_info(calib_sensor_aec_BackLight_sub_tags), NULL
4040     },
4041     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_ENABLE_TAG_ID]         =
4042     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4043         check_tags_array_ignore, NULL
4044     },
4045     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_TAG_ID]       =
4046     {   "MeasArea", CALIB_TAG_TYPE_CHAR, {-1, -1},
4047         check_tags_array_ignore, NULL
4048     },
4049     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_AUTO_TAG_ID]      =
4050     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4051         check_tags_array_ignore, NULL
4052     },
4053     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_CENTER_TAG_ID]        =
4054     {   "CENTER", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4055         check_tags_array_ignore, NULL
4056     },
4057     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_LEFT_TAG_ID]      =
4058     {   "LEFT", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4059         check_tags_array_ignore, NULL
4060     },
4061     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_RIGHT_TAG_ID]         =
4062     {   "RIGHT", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4063         check_tags_array_ignore, NULL
4064     },
4065     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_UP_TAG_ID]        =
4066     {   "UP", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4067         check_tags_array_ignore, NULL
4068     },
4069     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_MEASAREA_BOTTOM_TAG_ID]        =
4070     {   "BOTTOM", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4071         check_tags_array_ignore, NULL
4072     },
4073     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_OEROI_LOWTH_TAG_ID]         =
4074     {   "OEROILowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4075         check_tags_array_ignore, NULL
4076     },
4077     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_LV_LOWTH_TAG_ID]         =
4078     {   "LvLowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4079         check_tags_array_ignore, NULL
4080     },
4081     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_LV_HIGHTH_TAG_ID]         =
4082     {   "LvHighTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4083         check_tags_array_ignore, NULL
4084     },
4085     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_NONOEPDFTH_TAG_ID]         =
4086     {   "NonOEPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4087         check_tags_array_ignore, NULL
4088     },
4089     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_LOWLIGHTPDFTH_TAG_ID]         =
4090     {   "LowLightPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4091         check_tags_array_ignore, NULL
4092     },
4093     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_EXPLEVEL_TAG_ID]         =
4094     {   "ExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4095         check_tags_array_ignore, NULL
4096     },
4097     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_TARGETLLLUMA_TAG_ID]         =
4098     {   "TargetLLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4099         check_tags_array_ignore, NULL
4100     },
4101     [CALIB_SENSOR_LINAECTRL_BACKLIGHT_LUMADISTTH_TAG_ID]         =
4102     {   "LumaDistTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4103         check_tags_array_ignore, NULL
4104     },
4105 
4106     [CALIB_SENSOR_LINAECTRL_OVEREXP_CONTROL_TAG_ID]         =
4107     {   "OverExpCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4108         check_tags_array_info(calib_sensor_aec_OverExp_sub_tags), NULL
4109     },
4110     [CALIB_SENSOR_LINAECTRL_OVEREXP_ENABLE_TAG_ID]         =
4111     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4112         check_tags_array_ignore, NULL
4113     },
4114     [CALIB_SENSOR_LINAECTRL_OVEREXP_HIGHLIGHT_TH_TAG_ID]         =
4115     {   "HighLightTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4116         check_tags_array_ignore, NULL
4117     },
4118     [CALIB_SENSOR_LINAECTRL_OVEREXP_LOWLIGHT_TH_TAG_ID]      =
4119     {   "LowLightTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4120         check_tags_array_ignore, NULL
4121     },
4122     [CALIB_SENSOR_LINAECTRL_OVEREXP_MAXWEIGHT_TAG_ID]        =
4123     {   "MaxWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4124         check_tags_array_ignore, NULL
4125     },
4126     [CALIB_SENSOR_LINAECTRL_OVEREXP_OEPDF_TAG_ID]        =
4127     {   "OEpdf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4128         check_tags_array_ignore, NULL
4129     },
4130     [CALIB_SENSOR_LINAECTRL_OVEREXP_HIGHLIGHT_WEIGHT_TAG_ID]         =
4131     {   "HighLightWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4132         check_tags_array_ignore, NULL
4133     },
4134     [CALIB_SENSOR_LINAECTRL_OVEREXP_LOWLIGHT_WEIGHT_TAG_ID]      =
4135     {   "LowLightWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4136         check_tags_array_ignore, NULL
4137     },
4138 
4139     [CALIB_SENSOR_AEC_HDRAECTRL_TAG_ID]         =
4140     {   "HdrAECtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4141         check_tags_array_info(calib_sensor_aec_HdrAECtrl_sub_tags), NULL
4142     },
4143     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_TAG_ID]         =
4144     {   "LongFrmMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4145         check_tags_array_info(calib_sensor_aec_LongFrmMode_sub_tags), NULL
4146     },
4147     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_MODE_TAG_ID]         =
4148     {   "mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
4149         check_tags_array_ignore, NULL
4150     },
4151     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_NORMAL_TAG_ID]         =
4152     {   "NORMAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4153         check_tags_array_ignore, NULL
4154     },
4155     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_LONGFRAME_TAG_ID]         =
4156     {   "LONGFRAME", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4157         check_tags_array_ignore, NULL
4158     },
4159     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_AUTO_LONGFRAME_TAG_ID]         =
4160     {   "AUTO_LONGFRAME", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4161         check_tags_array_ignore, NULL
4162     },
4163     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_SFRMMINLINE_TAG_ID]         =
4164     {   "SfrmMinLine", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4165         check_tags_array_ignore, NULL
4166     },
4167     [CALIB_SENSOR_AEC_HDRAECTRL_LONGFRMMODE_LFRMMODEEXPTH_TAG_ID]         =
4168     {   "LfrmModeExpTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4169         check_tags_array_ignore, NULL
4170     },
4171     [CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOCTRL_TAG_ID]         =
4172     {   "ExpRatioCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4173         check_tags_array_info(calib_sensor_aec_ExpRatioCtrl_sub_tags), NULL
4174     },
4175     [CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOTYPE_TAG_ID]         =
4176     {   "ExpRatioType", CALIB_TAG_TYPE_CHAR, {-1, -1},
4177         check_tags_array_ignore, NULL
4178     },
4179     [CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOTYPE_AUTO_TAG_ID]         =
4180     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4181         check_tags_array_ignore, NULL
4182     },
4183     [CALIB_SENSOR_AEC_HDRAECTRL_EXPRATIOTYPE_FIX_TAG_ID]         =
4184     {   "FIX", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4185         check_tags_array_ignore, NULL
4186     },
4187     [CALIB_SENSOR_AEC_HDRAECTRL_RATIOEXPDOT_TAG_ID]         =
4188     {   "RatioExpDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4189         check_tags_array_ignore, NULL
4190     },
4191     [CALIB_SENSOR_AEC_HDRAECTRL_M2SRATIOFIX_TAG_ID]         =
4192     {   "M2SRatioFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4193         check_tags_array_ignore, NULL
4194     },
4195     [CALIB_SENSOR_AEC_HDRAECTRL_L2MRATIOFIX_TAG_ID]         =
4196     {   "L2MRatioFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4197         check_tags_array_ignore, NULL
4198     },
4199     [CALIB_SENSOR_AEC_HDRAECTRL_M2SRATIOMAX_TAG_ID]         =
4200     {   "M2SRatioMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4201         check_tags_array_ignore, NULL
4202     },
4203     [CALIB_SENSOR_AEC_HDRAECTRL_L2MRATIOMAX_TAG_ID]         =
4204     {   "L2MRatioMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4205         check_tags_array_ignore, NULL
4206     },
4207     [CALIB_SENSOR_AEC_HDRAECTRL_LUMADISTTH_TAG_ID]         =
4208     {   "LumaDistTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4209         check_tags_array_ignore, NULL
4210     },
4211 
4212     [CALIB_SENSOR_AEC_HDRAECTRL_LFRAMECTRL_TAG_ID]         =
4213     {   "LframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4214         check_tags_array_info(calib_sensor_aec_LframeCtrl_sub_tags), NULL
4215     },
4216     [CALIB_SENSOR_AEC_HDRAECTRL_OEROILOWTH_TAG_ID]         =
4217     {   "OEROILowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4218         check_tags_array_ignore, NULL
4219     },
4220     [CALIB_SENSOR_AEC_HDRAECTRL_LVHIGHTH_TAG_ID]         =
4221     {   "LvHighTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4222         check_tags_array_ignore, NULL
4223     },
4224     [CALIB_SENSOR_AEC_HDRAECTRL_LVLOWTH_TAG_ID]         =
4225     {   "LvLowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4226         check_tags_array_ignore, NULL
4227     },
4228     [CALIB_SENSOR_AEC_HDRAECTRL_LEXPLEVEL_TAG_ID]         =
4229     {   "LExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4230         check_tags_array_ignore, NULL
4231     },
4232     [CALIB_SENSOR_AEC_HDRAECTRL_LSETPOINT_TAG_ID]         =
4233     {   "LSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4234         check_tags_array_ignore, NULL
4235     },
4236     [CALIB_SENSOR_AEC_HDRAECTRL_TARGETLLLUMA_TAG_ID]         =
4237     {   "TargetLLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4238         check_tags_array_ignore, NULL
4239     },
4240     [CALIB_SENSOR_AEC_HDRAECTRL_NONOEPDFTH_TAG_ID]         =
4241     {   "NonOEPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4242         check_tags_array_ignore, NULL
4243     },
4244     [CALIB_SENSOR_AEC_HDRAECTRL_LOWLIGHTPDFTH_TAG_ID]         =
4245     {   "LowLightPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4246         check_tags_array_ignore, NULL
4247     },
4248 
4249     [CALIB_SENSOR_AEC_HDRAECTRL_MFRAMECTRL_TAG_ID]         =
4250     {   "MframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4251         check_tags_array_info(calib_sensor_aec_MframeCtrl_sub_tags), NULL
4252     },
4253     [CALIB_SENSOR_AEC_HDRAECTRL_MEXPLEVEL_TAG_ID]         =
4254     {   "MExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4255         check_tags_array_ignore, NULL
4256     },
4257     [CALIB_SENSOR_AEC_HDRAECTRL_MSETPOINT_TAG_ID]         =
4258     {   "MSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4259         check_tags_array_ignore, NULL
4260     },
4261 
4262     [CALIB_SENSOR_AEC_HDRAECTRL_SFRAMECTRL_TAG_ID]         =
4263     {   "SframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4264         check_tags_array_info(calib_sensor_aec_SframeCtrl_sub_tags), NULL
4265     },
4266     [CALIB_SENSOR_AEC_HDRAECTRL_SEXPLEVEL_TAG_ID]         =
4267     {   "SExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4268         check_tags_array_ignore, NULL
4269     },
4270     [CALIB_SENSOR_AEC_HDRAECTRL_SSETPOINT_TAG_ID]         =
4271     {   "SSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4272         check_tags_array_ignore, NULL
4273     },
4274     [CALIB_SENSOR_AEC_HDRAECTRL_TARGETHLLUMA_TAG_ID]         =
4275     {   "TargetHLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4276         check_tags_array_ignore, NULL
4277     },
4278     [CALIB_SENSOR_AEC_HDRAECTRL_HLROIEXPANDEN_TAG_ID]         =
4279     {   "HLROIExpandEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4280         check_tags_array_ignore, NULL
4281     },
4282     [CALIB_SENSOR_AEC_HDRAECTRL_HLLUMATOLERANCE_TAG_ID]         =
4283     {   "HLLumaTolerance", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4284         check_tags_array_ignore, NULL
4285     },
4286 
4287     // Sensor AF
4288     [CALIB_SENSOR_AF_TAG_ID]         =
4289     {   "AF", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4290         check_tags_array_info(calib_sensor_af_sub_tags), NULL
4291     },
4292     [CALIB_SENSOR_AF_FIXED_MODE_TAG_ID]         =
4293     {   "fixed_mode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4294         check_tags_array_info(calib_sensor_af_fixed_mode_sub_tags), NULL
4295     },
4296     [CALIB_SENSOR_AF_MACRO_MODE_TAG_ID]         =
4297     {   "macro_mode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4298         check_tags_array_info(calib_sensor_af_macro_mode_sub_tags), NULL
4299     },
4300     [CALIB_SENSOR_AF_INFINITY_MODE_TAG_ID]         =
4301     {   "infinity_mode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4302         check_tags_array_info(calib_sensor_af_infinity_mode_sub_tags), NULL
4303     },
4304     [CALIB_SENSOR_AF_DEF_CODE_TAG_ID]         =
4305     {   "code", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4306         check_tags_array_ignore, NULL
4307     },
4308     [CALIB_SENSOR_AF_MODE_TAG_ID]         =
4309     {   "Mode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4310         check_tags_array_ignore, NULL
4311     },
4312     [CALIB_SENSOR_AF_WINDOW_TAG_ID]         =
4313     {   "Window", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4314         check_tags_array_info(calib_sensor_af_Window_sub_tags), NULL
4315     },
4316     [CALIB_SENSOR_AF_CONTRAST_AF_TAG_ID]         =
4317     {   "contrast_af", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4318         check_tags_array_info(calib_sensor_af_contrast_af_sub_tags), NULL
4319     },
4320     [CALIB_SENSOR_AF_LASER_AF_TAG_ID]         =
4321     {   "laser_af", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4322         check_tags_array_info(calib_sensor_af_laser_af_sub_tags), NULL
4323     },
4324     [CALIB_SENSOR_AF_PDAF_TAG_ID]         =
4325     {   "pdaf", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4326         check_tags_array_info(calib_sensor_af_pdaf_sub_tags), NULL
4327     },
4328     [CALIB_SENSOR_AF_H_OFFS_TAG_ID]         =
4329     {   "h_offs", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4330         check_tags_array_ignore, NULL
4331     },
4332     [CALIB_SENSOR_AF_V_OFFS_TAG_ID]         =
4333     {   "v_offs", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4334         check_tags_array_ignore, NULL
4335     },
4336     [CALIB_SENSOR_AF_H_SIZE_TAG_ID]         =
4337     {   "h_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4338         check_tags_array_ignore, NULL
4339     },
4340     [CALIB_SENSOR_AF_V_SIZE_TAG_ID]         =
4341     {   "v_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4342         check_tags_array_ignore, NULL
4343     },
4344     [CALIB_SENSOR_AF_CONTRAST_ENABLE_TAG_ID]         =
4345     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4346         check_tags_array_ignore, NULL
4347     },
4348     [CALIB_SENSOR_AF_SEARCH_STRATEGY_TAG_ID]         =
4349     {   "AfSearchStrategy", CALIB_TAG_TYPE_CHAR, {-1, -1},
4350         check_tags_array_ignore, NULL
4351     },
4352     [CALIB_SENSOR_AF_SEARCH_STRATEGY_ADAPTIVE_TAG_ID]         =
4353     {   "ADAPTIVE_RANGE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4354         check_tags_array_ignore, NULL
4355     },
4356     [CALIB_SENSOR_AF_SEARCH_STRATEGY_HILLCLIMB_TAG_ID]         =
4357     {   "HILLCLIMBING", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4358         check_tags_array_ignore, NULL
4359     },
4360     [CALIB_SENSOR_AF_SEARCH_STRATEGY_FULL_TAG_ID]         =
4361     {   "FULL_RANGE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4362         check_tags_array_ignore, NULL
4363     },
4364     [CALIB_SENSOR_AF_DIR_POSITIVE_TAG_ID]         =
4365     {   "POSITIVE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4366         check_tags_array_ignore, NULL
4367     },
4368     [CALIB_SENSOR_AF_DIR_NEGATIVE_TAG_ID]         =
4369     {   "NEGATIVE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4370         check_tags_array_ignore, NULL
4371     },
4372     [CALIB_SENSOR_AF_DIR_ADAPTIVE_TAG_ID]         =
4373     {   "ADAPTIVE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
4374         check_tags_array_ignore, NULL
4375     },
4376     [CALIB_SENSOR_AF_FULL_DIR_TAG_ID]         =
4377     {   "FullDir", CALIB_TAG_TYPE_CHAR, {-1, -1},
4378         check_tags_array_ignore, NULL
4379     },
4380     [CALIB_SENSOR_AF_FULL_RANGE_TBL_TAG_ID]         =
4381     {   "FullRangeTbl", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4382         check_tags_array_ignore, NULL
4383     },
4384     [CALIB_SENSOR_AF_ADAPTIVE_DIR_TAG_ID]         =
4385     {   "AdaptiveDir", CALIB_TAG_TYPE_CHAR, {-1, -1},
4386         check_tags_array_ignore, NULL
4387     },
4388     [CALIB_SENSOR_AF_ADAPTIVE_RANGE_TBL_TAG_ID]         =
4389     {   "AdaptRangeTbl", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4390         check_tags_array_ignore, NULL
4391     },
4392     [CALIB_SENSOR_AF_TRIG_THERS_TAG_ID]         =
4393     {   "TrigThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4394         check_tags_array_ignore, NULL
4395     },
4396     [CALIB_SENSOR_AF_LUMA_TRIG_THERS_TAG_ID]         =
4397     {   "LumaTrigThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4398         check_tags_array_ignore, NULL
4399     },
4400     [CALIB_SENSOR_AF_STABLE_THERS_TAG_ID]         =
4401     {   "StableThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4402         check_tags_array_ignore, NULL
4403     },
4404     [CALIB_SENSOR_AF_STABLE_FRAMES_TAG_ID]         =
4405     {   "StableFrames", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4406         check_tags_array_ignore, NULL
4407     },
4408     [CALIB_SENSOR_AF_STABLE_TIME_TAG_ID]         =
4409     {   "StableTime", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4410         check_tags_array_ignore, NULL
4411     },
4412     [CALIB_SENSOR_AF_SCENE_DIFF_ENABLE_TAG_ID]         =
4413     {   "SceneDiffEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4414         check_tags_array_ignore, NULL
4415     },
4416     [CALIB_SENSOR_AF_SCENE_DIFF_THERS_TAG_ID]         =
4417     {   "SceneDiffThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4418         check_tags_array_ignore, NULL
4419     },
4420     [CALIB_SENSOR_AF_SCENE_DIFF_BLK_THERS_TAG_ID]         =
4421     {   "SceneDiffBlkThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4422         check_tags_array_ignore, NULL
4423     },
4424     [CALIB_SENSOR_AF_CENTER_SCENE_DIFF_THERS_TAG_ID]         =
4425     {   "CenterSceneDiffThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4426         check_tags_array_ignore, NULL
4427     },
4428     [CALIB_SENSOR_AF_VALID_MAX_MIN_RATIO_TAG_ID]         =
4429     {   "ValidMaxMinRatio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4430         check_tags_array_ignore, NULL
4431     },
4432     [CALIB_SENSOR_AF_VALID_VALUE_THERS_TAG_ID]         =
4433     {   "ValidValueThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4434         check_tags_array_ignore, NULL
4435     },
4436     [CALIB_SENSOR_AF_OUT_FOCUS_VALUE_TAG_ID]         =
4437     {   "OutFocusValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4438         check_tags_array_ignore, NULL
4439     },
4440     [CALIB_SENSOR_AF_OUT_FOCUS_POS_TAG_ID]         =
4441     {   "OutFocusPos", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4442         check_tags_array_ignore, NULL
4443     },
4444     [CALIB_SENSOR_AF_FLAT_VALUE_TAG_ID]         =
4445     {   "FlatValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4446         check_tags_array_ignore, NULL
4447     },
4448     [CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_ENABLE_TAG_ID]         =
4449     {   "SearchPauseLumaEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4450         check_tags_array_ignore, NULL
4451     },
4452     [CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_THERS_TAG_ID]         =
4453     {   "SearchPauseLumaThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4454         check_tags_array_ignore, NULL
4455     },
4456     [CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_STABLE_FRAMES_TAG_ID]         =
4457     {   "SearchPauseLumaStableFrames", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4458         check_tags_array_ignore, NULL
4459     },
4460     [CALIB_SENSOR_AF_SEARCH_PAUSE_LUMA_STABLE_THERS_TAG_ID]         =
4461     {   "SearchPauseLumaStableThers", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4462         check_tags_array_ignore, NULL
4463     },
4464     [CALIB_SENSOR_AF_WEIGHT_ENABLE_TAG_ID]         =
4465     {   "WeightEnable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4466         check_tags_array_ignore, NULL
4467     },
4468     [CALIB_SENSOR_AF_WEIGHT_MATRIX_TAG_ID]         =
4469     {   "WeightMatrix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4470         check_tags_array_ignore, NULL
4471     },
4472     [CALIB_SENSOR_AF_VCM_TAG_ID]         =
4473     {   "vcmConfig", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4474         check_tags_array_info(calib_sensor_af_vcmcfg_sub_tags), NULL
4475     },
4476     [CALIB_SENSOR_AF_MEAS_ISO_TAG_ID]         =
4477     {   "afmeas_iso", CALIB_TAG_TYPE_CELL, {-1, -1},
4478         check_tags_array_info(calib_sensor_af_meas_iso_sub_tags), NULL
4479     },
4480     [CALIB_SENSOR_AF_ZOOM_FOCUS_TBL_TAG_ID]         =
4481     {   "zoomfocus_tbl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4482         check_tags_array_info(calib_sensor_af_zoomfocus_tbl_sub_tags), NULL
4483     },
4484     [CALIB_SENSOR_AF_LASERAF_ENABLE_TAG_ID]         =
4485     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4486         check_tags_array_ignore, NULL
4487     },
4488     [CALIB_SENSOR_AF_LASER_AF_VCMDOT_TAG_ID]         =
4489     {   "vcmDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4490         check_tags_array_ignore, NULL
4491     },
4492     [CALIB_SENSOR_AF_LASER_AF_DISTANCEDOT_TAG_ID]         =
4493     {   "distanceDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4494         check_tags_array_ignore, NULL
4495     },
4496     [CALIB_SENSOR_AF_PDAF_ENABLE_TAG_ID]         =
4497     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4498         check_tags_array_ignore, NULL
4499     },
4500     [CALIB_SENSOR_AF_VCM_START_CURRENT_TAG_ID]         =
4501     {   "startCurrent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4502         check_tags_array_ignore, NULL
4503     },
4504     [CALIB_SENSOR_AF_VCM_RATED_CURRENT_TAG_ID]         =
4505     {   "ratedCurrent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4506         check_tags_array_ignore, NULL
4507     },
4508     [CALIB_SENSOR_AF_VCM_STEP_MODE_TAG_ID]         =
4509     {   "stepMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4510         check_tags_array_ignore, NULL
4511     },
4512     [CALIB_SENSOR_AF_EXTRA_DELAY_TAG_ID]         =
4513     {   "extraDelay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4514         check_tags_array_ignore, NULL
4515     },
4516     [CALIB_SENSOR_AF_MEAS_ISO_ISO_TAG_ID]         =
4517     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4518         check_tags_array_ignore, NULL
4519     },
4520     [CALIB_SENSOR_AF_MEAS_ISO_AFMTHRES_TAG_ID]         =
4521     {   "afmThres", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4522         check_tags_array_ignore, NULL
4523     },
4524     [CALIB_SENSOR_AF_MEAS_ISO_GAMMA_Y_TAG_ID]         =
4525     {   "gammaY", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4526         check_tags_array_ignore, NULL
4527     },
4528     [CALIB_SENSOR_AF_MEAS_ISO_GAUSS_WEIGHT_TAG_ID]         =
4529     {   "gaussWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4530         check_tags_array_ignore, NULL
4531     },
4532     [CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUS_LENGTH_TAG_ID]         =
4533     {   "focusLength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4534         check_tags_array_ignore, NULL
4535     },
4536     [CALIB_SENSOR_AF_ZOOM_FOCUS_ZOOMPOS_TAG_ID]         =
4537     {   "zoomPosition", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4538         check_tags_array_ignore, NULL
4539     },
4540     [CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUSINFPOS_TAG_ID]         =
4541     {   "focusInfPosition", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4542         check_tags_array_ignore, NULL
4543     },
4544     [CALIB_SENSOR_AF_ZOOM_FOCUS_FOCUSMACROPOS_TAG_ID]         =
4545     {   "focusMacroPosition", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4546         check_tags_array_ignore, NULL
4547     },
4548 
4549     // Sensor AHDR
4550     [CALIB_SENSOR_AHDR_MERGE_TAG_ID]         =
4551     {   "MERGE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4552         check_tags_array_info(calib_sensor_ahdr_Merge_sub_tags), NULL
4553     },
4554     [CALIB_SENSOR_AHDR_TMO_TAG_ID]         =
4555     {   "TMO", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4556         check_tags_array_info(calib_sensor_ahdr_Tmo_sub_tags), NULL
4557     },
4558     [CALIB_SENSOR_AHDR_ENVLV_TAG_ID]         =
4559     {   "EnvLv", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4560         check_tags_array_ignore, NULL
4561     },
4562     [CALIB_SENSOR_AHDR_MERGE_MOVECOEF_TAG_ID]         =
4563     {   "MoveCoef", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4564         check_tags_array_ignore, NULL
4565     },
4566     [CALIB_SENSOR_AHDR_MERGE_OECURVE_SMOOTH_TAG_ID]         =
4567     {   "OECurve_smooth", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4568         check_tags_array_ignore, NULL
4569     },
4570     [CALIB_SENSOR_AHDR_MERGE_OECURVE_OFFSET_TAG_ID]         =
4571     {   "OECurve_offset", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4572         check_tags_array_ignore, NULL
4573     },
4574     [CALIB_SENSOR_AHDR_MERGE_MDCURVELM_SMOOTH_TAG_ID]         =
4575     {   "MDCurveLM_smooth", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4576         check_tags_array_ignore, NULL
4577     },
4578     [CALIB_SENSOR_AHDR_MERGE_MDCURVELM_OFFSET_TAG_ID]         =
4579     {   "MDCurveLM_offset", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4580         check_tags_array_ignore, NULL
4581     },
4582     [CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_SMOOTH_TAG_ID]         =
4583     {   "MDCurveMS_smooth", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4584         check_tags_array_ignore, NULL
4585     },
4586     [CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_OFFSET_TAG_ID]         =
4587     {   "MDCurveMS_offset", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4588         check_tags_array_ignore, NULL
4589     },
4590     [CALIB_SENSOR_AHDR_MERGE_OECURVE_DAMP_TAG_ID]         =
4591     {   "OECurve_damp", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4592         check_tags_array_ignore, NULL
4593     },
4594     [CALIB_SENSOR_AHDR_MERGE_MDCURVELM_DAMP_TAG_ID]         =
4595     {   "MDCurveLM_damp", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4596         check_tags_array_ignore, NULL
4597     },
4598     [CALIB_SENSOR_AHDR_MERGE_MDCURVEMS_DAMP_TAG_ID]         =
4599     {   "MDCurveMS_damp", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4600         check_tags_array_ignore, NULL
4601     },
4602 
4603     [CALIB_SENSOR_AHDR_TMO_TMO_EN_TAG_ID]         =
4604     {   "Enable", CALIB_TAG_TYPE_CELL, {-1, -1},
4605         check_tags_array_info(calib_sensor_ahdr_Tmo_En_sub_tags), NULL
4606     },
4607     [CALIB_SENSOR_AHDR_TMO_NAME_TAG_ID]         =
4608     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
4609         check_tags_array_ignore, NULL
4610     },
4611     [CALIB_SENSOR_AHDR_TMO_TMO_EN_CELL_EN_TAG_ID]         =
4612     {   "En", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4613         check_tags_array_ignore, NULL
4614     },
4615     [CALIB_SENSOR_AHDR_TMO_GLOBALLUMA_TAG_ID]         =
4616     {   "GlobalLuma", CALIB_TAG_TYPE_CELL, {-1, -1},
4617         check_tags_array_info(calib_sensor_ahdr_GlobalLuma_sub_tags), NULL
4618     },
4619     [CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHT_TAG_ID]         =
4620     {   "DetailsHighLight", CALIB_TAG_TYPE_CELL, {-1, -1},
4621         check_tags_array_info(
4622             calib_sensor_ahdr_DetailsHighLight_sub_tags), NULL
4623     },
4624     [CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHT_TAG_ID]         =
4625     {   "DetailsLowLight", CALIB_TAG_TYPE_CELL, {-1, -1},
4626         check_tags_array_info(
4627             calib_sensor_ahdr_DetailsLowLight_sub_tags), NULL
4628     },
4629     [CALIB_SENSOR_AHDR_TMO_LOCALTMO_TAG_ID]         =
4630     {   "LocalTMO", CALIB_TAG_TYPE_CELL, {-1, -1},
4631         check_tags_array_info(calib_sensor_ahdr_LocalTMO_sub_tags), NULL
4632     },
4633     [CALIB_SENSOR_AHDR_TMO_LOCALTMO_STRENGTH_TAG_ID]         =
4634     {   "LocalTMOStrength", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4635         check_tags_array_ignore, NULL
4636     },
4637     [CALIB_SENSOR_AHDR_TMO_LOCALTMOMODE_TAG_ID]         =
4638     {   "LocalTMOMode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4639         check_tags_array_ignore, NULL
4640     },
4641     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_TAG_ID]         =
4642     {   "GlobalTMO", CALIB_TAG_TYPE_CELL, {-1, -1},
4643         check_tags_array_info(calib_sensor_ahdr_GlobalTMO_sub_tags), NULL
4644     },
4645     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_EN_TAG_ID]         =
4646     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4647         check_tags_array_ignore, NULL
4648     },
4649     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_IIR_TAG_ID]         =
4650     {   "IIR", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4651         check_tags_array_ignore, NULL
4652     },
4653     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_MODE_TAG_ID]         =
4654     {   "Mode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4655         check_tags_array_ignore, NULL
4656     },
4657     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_DYNAMICRANGE_TAG_ID]         =
4658     {   "DynamicRange", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4659         check_tags_array_ignore, NULL
4660     },
4661     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_ENVLV_TAG_ID]         =
4662     {   "EnvLv", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4663         check_tags_array_ignore, NULL
4664     },
4665     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_TOLERANCE_TAG_ID]         =
4666     {   "Tolerance", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4667         check_tags_array_ignore, NULL
4668     },
4669     [CALIB_SENSOR_AHDR_TMO_GLOBALTMO_STRENGTH_TAG_ID]         =
4670     {   "GlobalTMOStrength", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4671         check_tags_array_ignore, NULL
4672     },
4673 
4674     [CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHTMODE_TAG_ID]         =
4675     {   "DetailsHighLightMode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4676         check_tags_array_ignore, NULL
4677     },
4678     [CALIB_SENSOR_AHDR_TMO_GLOBALLUMAMODE_TAG_ID]         =
4679     {   "GlobalLumaMode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4680         check_tags_array_ignore, NULL
4681     },
4682     [CALIB_SENSOR_AHDR_TMO_OEPDF_TAG_ID]         =
4683     {   "OEPdf", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4684         check_tags_array_ignore, NULL
4685     },
4686     [CALIB_SENSOR_AHDR_TOLERANCE_TAG_ID]         =
4687     {   "Tolerance", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4688         check_tags_array_ignore, NULL
4689     },
4690     [CALIB_SENSOR_AHDR_TMO_GLOBALLUMA_GLOBALLUMA_TAG_ID]         =
4691     {   "GlobalLuma", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4692         check_tags_array_ignore, NULL
4693     },
4694     [CALIB_SENSOR_AHDR_TMO_DETAILSHIGHLIGHT_DETAILSHIGHLIGHT_TAG_ID]         =
4695     {   "DetailsHighLight", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4696         check_tags_array_ignore, NULL
4697     },
4698     [CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHT_DETAILSLOWLIGHT_TAG_ID]         =
4699     {   "DetailsLowLight", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4700         check_tags_array_ignore, NULL
4701     },
4702     [CALIB_SENSOR_AHDR_TMO_DETAILSLOWLIGHTMODE_TAG_ID]         =
4703     {   "DetailsLowLightMode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4704         check_tags_array_ignore, NULL
4705     },
4706 
4707     [CALIB_SENSOR_AHDR_TMO_FOCUSLUMA_TAG_ID]         =
4708     {   "FocusLuma", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4709         check_tags_array_ignore, NULL
4710     },
4711     [CALIB_SENSOR_AHDR_TMO_DARKPDF_TAG_ID]         =
4712     {   "DarkPdf", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4713         check_tags_array_ignore, NULL
4714     },
4715     [CALIB_SENSOR_AHDR_TMO_ISO_TAG_ID]         =
4716     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4717         check_tags_array_ignore, NULL
4718     },
4719     [CALIB_SENSOR_AHDR_TMO_DYNAMICRANGE_TAG_ID]         =
4720     {   "DynamicRange", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4721         check_tags_array_ignore, NULL
4722     },
4723     [CALIB_SENSOR_AHDR_TMO_DAMP_TAG_ID]         =
4724     {   "Damp", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4725         check_tags_array_ignore, NULL
4726     },
4727 
4728     //Drc
4729     [CALIB_SENSOR_DRC_TAG_ID]         =
4730     {   "DRC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4731         check_tags_array_info(calib_sensor_Drc_sub_tags), NULL
4732     },
4733     [CALIB_SENSOR_DRC_CALIBPARA_TAG_ID]         =
4734     {   "CalibPara", CALIB_TAG_TYPE_CELL, {-1, -1},
4735         check_tags_array_info(calib_sensor_Drc_CalibPara_sub_tags), NULL
4736     },
4737     [CALIB_SENSOR_DRC_TUNINGPARA_TAG_ID]         =
4738     {   "TuningPara", CALIB_TAG_TYPE_CELL, {-1, -1},
4739         check_tags_array_info(calib_sensor_Drc_TuningPara_sub_tags), NULL
4740     },
4741     [CALIB_SENSOR_DRC_SCENE_TAG_ID]         =
4742     {   "Scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
4743         check_tags_array_ignore, NULL
4744     },
4745     [CALIB_SENSOR_DRC_POSITION_TAG_ID]         =
4746     {   "sw_adrc_position", CALIB_TAG_TYPE_INT, {-1, -1},
4747         check_tags_array_ignore, NULL
4748     },
4749     [CALIB_SENSOR_DRC_OFFSET_POW2_TAG_ID]         =
4750     {   "sw_adrc_offset_pow2", CALIB_TAG_TYPE_INT, {-1, -1},
4751         check_tags_array_ignore, NULL
4752     },
4753     [CALIB_SENSOR_DRC_LPDETAIL_RATIO_TAG_ID]         =
4754     {   "sw_adrc_lpdetail_ratio", CALIB_TAG_TYPE_INT, {-1, -1},
4755         check_tags_array_ignore, NULL
4756     },
4757     [CALIB_SENSOR_DRC_HPDETAIL_RATIO_TAG_ID]         =
4758     {   "sw_adrc_hpdetail_ratio", CALIB_TAG_TYPE_INT, {-1, -1},
4759         check_tags_array_ignore, NULL
4760     },
4761     [CALIB_SENSOR_DRC_WEIPRE_FRAME_TAG_ID]         =
4762     {   "sw_adrc_weipre_frame", CALIB_TAG_TYPE_INT, {-1, -1},
4763         check_tags_array_ignore, NULL
4764     },
4765     [CALIB_SENSOR_DRC_WEICUR_PIX_TAG_ID]           =
4766     {   "sw_adrc_weicur_pix", CALIB_TAG_TYPE_INT, {-1, -1},
4767         check_tags_array_ignore, NULL
4768     },
4769     [CALIB_SENSOR_DRC_EDGE_SCL_TAG_ID]         =
4770     {   "sw_adrc_edge_scl", CALIB_TAG_TYPE_INT, {-1, -1},
4771         check_tags_array_ignore, NULL
4772     },
4773     [CALIB_SENSOR_DRC_MOTION_SCL_TAG_ID]           =
4774     {   "sw_adrc_motion_scl", CALIB_TAG_TYPE_INT, {-1, -1},
4775         check_tags_array_ignore, NULL
4776     },
4777     [CALIB_SENSOR_DRC_FORCE_SGM_INV0_TAG_ID]           =
4778     {   "sw_adrc_force_sgm_inv0", CALIB_TAG_TYPE_INT, {-1, -1},
4779         check_tags_array_ignore, NULL
4780     },
4781     [CALIB_SENSOR_DRC_SPACE_SGM_INV0_TAG_ID]           =
4782     {   "sw_adrc_space_sgm_inv0", CALIB_TAG_TYPE_INT, {-1, -1},
4783         check_tags_array_ignore, NULL
4784     },
4785     [CALIB_SENSOR_DRC_SPACE_SGM_INV1_TAG_ID]           =
4786     {   "sw_adrc_space_sgm_inv1", CALIB_TAG_TYPE_INT, {-1, -1},
4787         check_tags_array_ignore, NULL
4788     },
4789     [CALIB_SENSOR_DRC_RANGE_SGM_INV0_TAG_ID]           =
4790     {   "sw_adrc_range_sgm_inv0", CALIB_TAG_TYPE_INT, {-1, -1},
4791         check_tags_array_ignore, NULL
4792     },
4793     [CALIB_SENSOR_DRC_RANGE_SGM_INV1_TAG_ID]           =
4794     {   "sw_adrc_range_sgm_inv1", CALIB_TAG_TYPE_INT, {-1, -1},
4795         check_tags_array_ignore, NULL
4796     },
4797     [CALIB_SENSOR_DRC_WEIG_BILAT_TAG_ID]           =
4798     {   "sw_adrc_weig_bilat", CALIB_TAG_TYPE_INT, {-1, -1},
4799         check_tags_array_ignore, NULL
4800     },
4801     [CALIB_SENSOR_DRC_WEIG_MAXL_TAG_ID]        =
4802     {   "sw_adrc_weig_maxl", CALIB_TAG_TYPE_INT, {-1, -1},
4803         check_tags_array_ignore, NULL
4804     },
4805     [CALIB_SENSOR_DRC_MIN_OGAIN_TAG_ID]        =
4806     {   "sw_adrc_min_ogain", CALIB_TAG_TYPE_INT, {-1, -1},
4807         check_tags_array_ignore, NULL
4808     },
4809     [CALIB_SENSOR_DRC_IIR_FRAME_TAG_ID]        =
4810     {   "iir_frame", CALIB_TAG_TYPE_INT, {-1, -1},
4811         check_tags_array_ignore, NULL
4812     },
4813     [CALIB_SENSOR_DRC_GAIN_TAG_ID]         =
4814     {   "adrc_gain", CALIB_TAG_TYPE_INT, {-1, -1},
4815         check_tags_array_ignore, NULL
4816     },
4817     [CALIB_SENSOR_DRC_SCALE_Y0_TAG_ID]         =
4818     {   "sw_adrc_scale_y0", CALIB_TAG_TYPE_INT, {-1, -1},
4819         check_tags_array_ignore, NULL
4820     },
4821 
4822     [CALIB_SENSOR_BLC_TAG_ID]         =
4823     {   "BLC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4824         check_tags_array_info(calib_sensor_blc_sub_tags), NULL
4825     },
4826     [CALIB_SENSOR_BLC_ENABLE_TAG_ID]         =
4827     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4828         check_tags_array_ignore, NULL
4829     },
4830     [CALIB_SENSOR_BLC_MODE_CELL_TAG_ID]         =
4831     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
4832         check_tags_array_info(calib_sensor_blc_mode_cell_sub_tags), NULL
4833     },
4834     [CALIB_SENSOR_BLC_MODE_NAME_TAG_ID]         =
4835     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
4836         check_tags_array_ignore, NULL
4837     },
4838     [CALIB_SENSOR_BLC_ISO_TAG_ID]         =
4839     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4840         check_tags_array_ignore, NULL
4841     },
4842     [CALIB_SENSOR_BLC_BLACK_LEVEL_TAG_ID]         =
4843     {   "black_level", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
4844         check_tags_array_ignore, NULL
4845     },
4846 
4847     // Sensor DPCC
4848     [CALIB_SENSOR_DPCC_TAG_ID]         =
4849     {   "DPCC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4850         check_tags_array_info(calib_sensor_dpcc_sub_tags), NULL
4851     },
4852     [CALIB_SENSOR_DPCC_ENABLE_TAG_ID]         =
4853     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4854         check_tags_array_ignore, NULL
4855     },
4856     [CALIB_SENSOR_DPCC_VERSION_TAG_ID]         =
4857     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
4858         check_tags_array_ignore, NULL
4859     },
4860 
4861     [CALIB_SENSOR_DPCC_FAST_MODE_TAG_ID]         =
4862     {   "Fast_mode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4863         check_tags_array_info(calib_sensor_dpcc_fast_mode_sub_tags), NULL
4864     },
4865     [CALIB_SENSOR_DPCC_FAST_MODE_ENABLE_TAG_ID]         =
4866     {   "Fast_mode_enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4867         check_tags_array_ignore, NULL
4868     },
4869     [CALIB_SENSOR_DPCC_FAST_MODE_ISO_TAG_ID]        =
4870     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4871         check_tags_array_ignore, NULL
4872     },
4873     [CALIB_SENSOR_DPCC_FAST_MODE_SINGLE_ENABLE_TAG_ID]         =
4874     {   "Single_enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4875         check_tags_array_ignore, NULL
4876     },
4877     [CALIB_SENSOR_DPCC_FAST_MODE_SINGLE_LEVEL_TAG_ID]         =
4878     {   "Single_level", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4879         check_tags_array_ignore, NULL
4880     },
4881     [CALIB_SENSOR_DPCC_FAST_MODE_DOUBLE_ENABLE_TAG_ID]         =
4882     {   "Double_enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4883         check_tags_array_ignore, NULL
4884     },
4885     [CALIB_SENSOR_DPCC_FAST_MODE_DOUBLE_LEVEL_TAG_ID]         =
4886     {   "Double_level", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4887         check_tags_array_ignore, NULL
4888     },
4889     [CALIB_SENSOR_DPCC_FAST_MODE_TRIPLE_ENABLE_TAG_ID]         =
4890     {   "Triple_enable", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4891         check_tags_array_ignore, NULL
4892     },
4893     [CALIB_SENSOR_DPCC_FAST_MODE_TRIPLE_LEVEL_TAG_ID]         =
4894     {   "Triple_level", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4895         check_tags_array_ignore, NULL
4896     },
4897 
4898     [CALIB_SENSOR_DPCC_EXPERT_MODE_TAG_ID]         =
4899     {   "Expert_mode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4900         check_tags_array_info(calib_sensor_dpcc_expert_mode_sub_tags), NULL
4901     },
4902     [CALIB_SENSOR_DPCC_ISO_TAG_ID]         =
4903     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4904         check_tags_array_ignore, NULL
4905     },
4906     [CALIB_SENSOR_DPCC_STAGE1_ENABLE_TAG_ID]         =
4907     {   "Stage1_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4908         check_tags_array_ignore, NULL
4909     },
4910     [CALIB_SENSOR_DPCC_GRAYSCALE_MODE_TAG_ID]         =
4911     {   "grayscale_mode", CALIB_TAG_TYPE_DOUBLE, {1, 1},
4912         check_tags_array_ignore, NULL
4913     },
4914     [CALIB_SENSOR_DPCC_RK_OUT_SEL_TAG_ID]         =
4915     {   "rk_out_sel", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4916         check_tags_array_ignore, NULL
4917     },
4918     [CALIB_SENSOR_DPCC_DPCC_OUT_SEL_TAG_ID]         =
4919     {   "dpcc_out_sel", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4920         check_tags_array_ignore, NULL
4921     },
4922     [CALIB_SENSOR_DPCC_STAGE1_RB_3X3_TAG_ID]         =
4923     {   "stage1_rb_3x3", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4924         check_tags_array_ignore, NULL
4925     },
4926     [CALIB_SENSOR_DPCC_STAGE1_G_3X3_TAG_ID]         =
4927     {   "stage1_g_3x3", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4928         check_tags_array_ignore, NULL
4929     },
4930     [CALIB_SENSOR_DPCC_STAGE1_INC_RB_CENTER_TAG_ID]         =
4931     {   "stage1_inc_rb_center", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4932         check_tags_array_ignore, NULL
4933     },
4934     [CALIB_SENSOR_DPCC_STAGE1_INC_G_CENTER_TAG_ID]         =
4935     {   "stage1_inc_g_center", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4936         check_tags_array_ignore, NULL
4937     },
4938     [CALIB_SENSOR_DPCC_STAGE1_USE_FIX_SET_TAG_ID]         =
4939     {   "stage1_use_fix_set", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4940         check_tags_array_ignore, NULL
4941     },
4942     [CALIB_SENSOR_DPCC_STAGE1_USE_SET3_TAG_ID]         =
4943     {   "stage1_use_set3", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4944         check_tags_array_ignore, NULL
4945     },
4946     [CALIB_SENSOR_DPCC_STAGE1_USE_SET2_TAG_ID]         =
4947     {   "stage1_use_set2", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4948         check_tags_array_ignore, NULL
4949     },
4950     [CALIB_SENSOR_DPCC_STAGE1_USE_SET1_TAG_ID]         =
4951     {   "stage1_use_set1", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4952         check_tags_array_ignore, NULL
4953     },
4954 
4955     [CALIB_SENSOR_DPCC_SET_CELL_TAG_ID]         =
4956     {   "set_cell", CALIB_TAG_TYPE_CELL, {-1, -1},
4957         check_tags_array_info(calib_sensor_set_cell_sub_tags), NULL
4958     },
4959     [CALIB_SENSOR_DPCC_SET_CELL_RK_TAG_ID]         =
4960     {   "RK", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4961         check_tags_array_info(calib_sensor_set_cell_RK_sub_tags), NULL
4962     },
4963     [CALIB_SENSOR_DPCC_RK_RED_BLUE_ENABLE_TAG_ID]         =
4964     {   "RK_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4965         check_tags_array_ignore, NULL
4966     },
4967     [CALIB_SENSOR_DPCC_RK_GREEN_ENABLE_TAG_ID]         =
4968     {   "RK_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4969         check_tags_array_ignore, NULL
4970     },
4971     [CALIB_SENSOR_DPCC_RK_RED_BLUE_SW_MINDIS_TAG_ID]         =
4972     {   "rb_sw_mindis", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4973         check_tags_array_ignore, NULL
4974     },
4975     [CALIB_SENSOR_DPCC_RK_GREEN_SW_MINDIS_TAG_ID]         =
4976     {   "g_sw_mindis", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4977         check_tags_array_ignore, NULL
4978     },
4979     [CALIB_SENSOR_DPCC_RK_SW_DIS_SCALE_MIN_TAG_ID]         =
4980     {   "sw_dis_scale_min", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4981         check_tags_array_ignore, NULL
4982     },
4983     [CALIB_SENSOR_DPCC_RK_SW_DIS_SCALE_MAX_TAG_ID]         =
4984     {   "sw_dis_scale_max", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4985         check_tags_array_ignore, NULL
4986     },
4987     [CALIB_SENSOR_DPCC_SET_CELL_LC_TAG_ID]         =
4988     {   "LC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
4989         check_tags_array_info(calib_sensor_set_cell_LC_sub_tags), NULL
4990     },
4991     [CALIB_SENSOR_DPCC_LC_RED_BLUE_ENABLE_TAG_ID]         =
4992     {   "LC_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4993         check_tags_array_ignore, NULL
4994     },
4995     [CALIB_SENSOR_DPCC_LC_GREEN_ENABLE_TAG_ID]         =
4996     {   "LC_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
4997         check_tags_array_ignore, NULL
4998     },
4999     [CALIB_SENSOR_DPCC_LC_RED_BLUE_LINE_MAD_FAC_TAG_ID]         =
5000     {   "rb_line_mad_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5001         check_tags_array_ignore, NULL
5002     },
5003     [CALIB_SENSOR_DPCC_LC_GREEN_LINE_MAD_FAC_TAG_ID]         =
5004     {   "g_line_mad_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5005         check_tags_array_ignore, NULL
5006     },
5007     [CALIB_SENSOR_DPCC_LC_RED_BLUE_LINE_THR_TAG_ID]         =
5008     {   "rb_line_thr", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5009         check_tags_array_ignore, NULL
5010     },
5011     [CALIB_SENSOR_DPCC_LC_GREEN_LINE_THR_TAG_ID]         =
5012     {   "g_line_thr", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5013         check_tags_array_ignore, NULL
5014     },
5015     [CALIB_SENSOR_DPCC_SET_CELL_PG_TAG_ID]         =
5016     {   "PG", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5017         check_tags_array_info(calib_sensor_set_cell_PG_sub_tags), NULL
5018     },
5019     [CALIB_SENSOR_DPCC_PG_RED_BLUE_ENABLE_TAG_ID]         =
5020     {   "PG_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5021         check_tags_array_ignore, NULL
5022     },
5023     [CALIB_SENSOR_DPCC_PG_GREEN_ENABLE_TAG_ID]         =
5024     {   "PG_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5025         check_tags_array_ignore, NULL
5026     },
5027     [CALIB_SENSOR_DPCC_PG_RED_BLUE_FAC_TAG_ID]         =
5028     {   "rb_pg_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5029         check_tags_array_ignore, NULL
5030     },
5031     [CALIB_SENSOR_DPCC_PG_GREEN_FAC_TAG_ID]         =
5032     {   "g_pg_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5033         check_tags_array_ignore, NULL
5034     },
5035     [CALIB_SENSOR_DPCC_SET_CELL_RND_TAG_ID]         =
5036     {   "RND", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5037         check_tags_array_info(calib_sensor_set_cell_RND_sub_tags), NULL
5038     },
5039     [CALIB_SENSOR_DPCC_RND_RED_BLUE_ENABLE_TAG_ID]         =
5040     {   "RND_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5041         check_tags_array_ignore, NULL
5042     },
5043     [CALIB_SENSOR_DPCC_RND_GREEN_ENABLE_TAG_ID]         =
5044     {   "RND_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5045         check_tags_array_ignore, NULL
5046     },
5047     [CALIB_SENSOR_DPCC_RND_RED_BLUE_THR_TAG_ID]         =
5048     {   "rb_rnd_thr", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5049         check_tags_array_ignore, NULL
5050     },
5051     [CALIB_SENSOR_DPCC_RND_GREEN_THR_TAG_ID]         =
5052     {   "g_rnd_thr", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5053         check_tags_array_ignore, NULL
5054     },
5055     [CALIB_SENSOR_DPCC_RND_RED_BLUE_OFFS_TAG_ID]         =
5056     {   "rb_rnd_offs", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5057         check_tags_array_ignore, NULL
5058     },
5059     [CALIB_SENSOR_DPCC_RND_GREEN_OFFS_TAG_ID]         =
5060     {   "g_rnd_offs", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5061         check_tags_array_ignore, NULL
5062     },
5063     [CALIB_SENSOR_DPCC_SET_CELL_RG_TAG_ID]         =
5064     {   "RG", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5065         check_tags_array_info(calib_sensor_set_cell_RG_sub_tags), NULL
5066     },
5067     [CALIB_SENSOR_DPCC_RG_RED_BLUE_ENABLE_TAG_ID]         =
5068     {   "RG_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5069         check_tags_array_ignore, NULL
5070     },
5071     [CALIB_SENSOR_DPCC_RG_GREEN_ENABLE_TAG_ID]         =
5072     {   "RG_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5073         check_tags_array_ignore, NULL
5074     },
5075     [CALIB_SENSOR_DPCC_RG_RED_BLUE_FAC_TAG_ID]         =
5076     {   "rb_rg_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5077         check_tags_array_ignore, NULL
5078     },
5079     [CALIB_SENSOR_DPCC_RG_GREEN_FAC_TAG_ID]         =
5080     {   "g_rg_fac", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5081         check_tags_array_ignore, NULL
5082     },
5083     [CALIB_SENSOR_DPCC_SET_CELL_RO_TAG_ID]         =
5084     {   "RO", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5085         check_tags_array_info(calib_sensor_set_cell_RO_sub_tags), NULL
5086     },
5087     [CALIB_SENSOR_DPCC_RO_RED_BLUE_ENABLE_TAG_ID]         =
5088     {   "RO_red_blue_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5089         check_tags_array_ignore, NULL
5090     },
5091     [CALIB_SENSOR_DPCC_RO_GREEN_ENABLE_TAG_ID]         =
5092     {   "RO_green_enable", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5093         check_tags_array_ignore, NULL
5094     },
5095     [CALIB_SENSOR_DPCC_RO_RED_BLUE_LIM_TAG_ID]         =
5096     {   "rb_ro_lim", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5097         check_tags_array_ignore, NULL
5098     },
5099     [CALIB_SENSOR_DPCC_RO_GREEN_LIM_TAG_ID]         =
5100     {   "g_ro_lim", CALIB_TAG_TYPE_DOUBLE, {1, 13},
5101         check_tags_array_ignore, NULL
5102     },
5103 
5104     [CALIB_SENSOR_DPCC_PDAF_TAG_ID]         =
5105     {   "dpcc_pdaf", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5106         check_tags_array_info(calib_sensor_dpcc_pdaf_sub_tags), NULL
5107     },
5108 
5109     [CALIB_SENSOR_DPCC_PDAF_ENABLE_TAG_ID]         =
5110     {   "pdaf_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5111         check_tags_array_ignore, NULL
5112     },
5113     [CALIB_SENSOR_DPCC_PDAF_POINT_ENABLE_TAG_ID]         =
5114     {   "pdaf_point_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5115         check_tags_array_ignore, NULL
5116     },
5117     [CALIB_SENSOR_DPCC_PDAF_OFFSETX_TAG_ID]         =
5118     {   "pdaf_offsetx", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5119         check_tags_array_ignore, NULL
5120     },
5121     [CALIB_SENSOR_DPCC_PDAF_OFFSETY_TAG_ID]         =
5122     {   "pdaf_offsety", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5123         check_tags_array_ignore, NULL
5124     },
5125     [CALIB_SENSOR_DPCC_PDAF_WRAPX_TAG_ID]         =
5126     {   "pdaf_wrapx", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
5127         check_tags_array_ignore, NULL
5128     },
5129     [CALIB_SENSOR_DPCC_PDAF_WRAPY_TAG_ID]         =
5130     {   "pdaf_wrapy", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
5131         check_tags_array_ignore, NULL
5132     },
5133     [CALIB_SENSOR_DPCC_PDAF_WRAPX_NUM_TAG_ID]         =
5134     {   "pdaf_wrapx_num", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5135         check_tags_array_ignore, NULL
5136     },
5137     [CALIB_SENSOR_DPCC_PDAF_WRAPY_NUM_TAG_ID]         =
5138     {   "pdaf_wrapy_num", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5139         check_tags_array_ignore, NULL
5140     },
5141     [CALIB_SENSOR_DPCC_PDAF_POINT_X_TAG_ID]         =
5142     {   "point_x", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5143         check_tags_array_ignore, NULL
5144     },
5145     [CALIB_SENSOR_DPCC_PDAF_POINT_Y_TAG_ID]         =
5146     {   "point_y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5147         check_tags_array_ignore, NULL
5148     },
5149     [CALIB_SENSOR_DPCC_PDAF_POINT_FORWARD_MED_TAG_ID]         =
5150     {   "point_forword_med", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5151         check_tags_array_ignore, NULL
5152     },
5153 
5154     [CALIB_SENSOR_DPCC_SENSOR_TAG_ID]         =
5155     {   "sensor_dpcc", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5156         check_tags_array_info(calib_sensor_dpcc_sensor_dpcc_sub_tags), NULL
5157     },
5158     [CALIB_SENSOR_DPCC_SENSOR_AUTO_ENABLE_TAG_ID]         =
5159     {   "sensor_dpcc_auto_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5160         check_tags_array_ignore, NULL
5161     },
5162     [CALIB_SENSOR_DPCC_SENSOR_MAX_LEVEL_TAG_ID]         =
5163     {   "max_level", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5164         check_tags_array_ignore, NULL
5165     },
5166     [CALIB_SENSOR_DPCC_SENSOR_LEVEL_SINGLE_TAG_ID]         =
5167     {   "level_single", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5168         check_tags_array_ignore, NULL
5169     },
5170     [CALIB_SENSOR_DPCC_SENSOR_LEVEL_MULTIPLE_TAG_ID]         =
5171     {   "level_multiple", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5172         check_tags_array_ignore, NULL
5173     },
5174 
5175     // Sensor Bayernr
5176     [CALIB_SENSOR_BAYERNR_TAG_ID]         =
5177     {   "BAYERNR", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5178         check_tags_array_info(calib_sensor_bayernr_sub_tags), NULL
5179     },
5180     [CALIB_SENSOR_BAYERNR_ENABLE_TAG_ID]         =
5181     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5182         check_tags_array_ignore, NULL
5183     },
5184     [CALIB_SENSOR_BAYERNR_VERSION_TAG_ID]         =
5185     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
5186         check_tags_array_ignore, NULL
5187     },
5188     [CALIB_SENSOR_BAYERNR_MODE_CELL_TAG_ID]         =
5189     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
5190         check_tags_array_info(calib_sensor_bayernr_mode_cell_sub_tags), NULL
5191     },
5192     [CALIB_SENSOR_BAYERNR_MODE_NAME_TAG_ID]         =
5193     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5194         check_tags_array_ignore, NULL
5195     },
5196     [CALIB_SENSOR_BAYERNR_SETTING_TAG_ID]         =
5197     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
5198         check_tags_array_info(calib_sensor_Bayernr_Setting_sub_tags), NULL
5199     },
5200     [CALIB_SENSOR_BAYERNR_SETTING_SNR_MODE_TAG_ID]         =
5201     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5202         check_tags_array_ignore, NULL
5203     },
5204     [CALIB_SENSOR_BAYERNR_SETTING_SENSOR_MODE_TAG_ID]         =
5205     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5206         check_tags_array_ignore, NULL
5207     },
5208 
5209     [CALIB_SENSOR_BAYERNR_ISO_TAG_ID]         =
5210     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5211         check_tags_array_ignore, NULL
5212     },
5213     [CALIB_SENSOR_BAYERNR_FILTPARA_TAG_ID]         =
5214     {   "filtPara", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5215         check_tags_array_ignore, NULL
5216     },
5217     [CALIB_SENSOR_BAYERNR_LURATIO_TAG_ID]         =
5218     {   "luRatio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5219         check_tags_array_ignore, NULL
5220     },
5221     [CALIB_SENSOR_BAYERNR_FIXW_TAG_ID]         =
5222     {   "fixW", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5223         check_tags_array_ignore, NULL
5224     },
5225     [CALIB_SENSOR_BAYERNR_LULEVEL_TAG_ID]         =
5226     {   "luLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5227         check_tags_array_ignore, NULL
5228     },
5229     [CALIB_SENSOR_BAYERNR_LULEVELVAL_TAG_ID]         =
5230     {   "luLevelVal", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5231         check_tags_array_ignore, NULL
5232     },
5233     [CALIB_SENSOR_BAYERNR_LAMDA_TAG_ID]         =
5234     {   "lamda", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5235         check_tags_array_ignore, NULL
5236     },
5237     [CALIB_SENSOR_BAYERNR_GAUSS_EN_TAG_ID]         =
5238     {   "gauss_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5239         check_tags_array_ignore, NULL
5240     },
5241 
5242     [CALIB_SENSOR_BAYERNR_RGAINOFF_TAG_ID]         =
5243     {   "RGainOff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5244         check_tags_array_ignore, NULL
5245     },
5246     [CALIB_SENSOR_BAYERNR_RGAINFILP_TAG_ID]         =
5247     {   "RGainFilp", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5248         check_tags_array_ignore, NULL
5249     },
5250     [CALIB_SENSOR_BAYERNR_BGAINOFF_TAG_ID]         =
5251     {   "BGainOff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5252         check_tags_array_ignore, NULL
5253     },
5254     [CALIB_SENSOR_BAYERNR_BGAINFILP_TAG_ID]         =
5255     {   "BGainFilp", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5256         check_tags_array_ignore, NULL
5257     },
5258     [CALIB_SENSOR_BAYERNR_EDGESOFTNESS_TAG_ID]         =
5259     {   "edgeSoftness", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5260         check_tags_array_ignore, NULL
5261     },
5262     [CALIB_SENSOR_BAYERNR_GAUSSWEIGHT0_TAG_ID]         =
5263     {   "gaussWeight0", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5264         check_tags_array_ignore, NULL
5265     },
5266     [CALIB_SENSOR_BAYERNR_GAUSSWEIGHT1_TAG_ID]         =
5267     {   "gaussWeight1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5268         check_tags_array_ignore, NULL
5269     },
5270     [CALIB_SENSOR_BAYERNR_BILEDGEFILTER_TAG_ID]         =
5271     {   "bilEdgeFilter", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5272         check_tags_array_ignore, NULL
5273     },
5274     [CALIB_SENSOR_BAYERNR_BILFILTERSTRENG_TAG_ID]         =
5275     {   "bilFilterStreng", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5276         check_tags_array_ignore, NULL
5277     },
5278     [CALIB_SENSOR_BAYERNR_BILEDGESOFT_TAG_ID]         =
5279     {   "bilEdgeSoft", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5280         check_tags_array_ignore, NULL
5281     },
5282     [CALIB_SENSOR_BAYERNR_BILEDGESOFTRATIO_TAG_ID]         =
5283     {   "bilEdgeSoftRatio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5284         check_tags_array_ignore, NULL
5285     },
5286     [CALIB_SENSOR_BAYERNR_BILREGWGT_TAG_ID]         =
5287     {   "bilRegWgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5288         check_tags_array_ignore, NULL
5289     },
5290 
5291     // Sensor LSC
5292     [CALIB_SENSOR_LSC_TAG_ID]         =
5293     {   "LSC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5294         check_tags_array_info(calib_sensor_lsc_sub_tags), NULL
5295     },
5296     [CALIB_SENSOR_LSC_ENABLE_TAG_ID]         =
5297     {   "enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
5298         check_tags_array_ignore, NULL
5299     },
5300     [CALIB_SENSOR_LSC_DAMP_ENABLE_TAG_ID]         =
5301     {   "damp_enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
5302         check_tags_array_ignore, NULL
5303     },
5304     [CALIB_SENSOR_LSC_ALSCCOF_TAG_ID]         =
5305     {   "alscCoef", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5306         check_tags_array_info(calib_sensor_alscCoef_sub_tags), NULL
5307     },
5308     [CALIB_SENSOR_LSC_ALSCCOF_RESALL_TAG_ID]         =
5309     {   "resolutionAlll", CALIB_TAG_TYPE_CELL, {-1, -1},
5310         check_tags_array_info(calib_sensor_resolutionAlll_sub_tags), NULL
5311     },
5312     [CALIB_SENSOR_LSC_ALSCCOF_RESALL_NAME_TAG_ID]         =
5313     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5314         check_tags_array_ignore, NULL
5315     },
5316     [CALIB_SENSOR_LSC_ALSCCOF_IllALL_TAG_ID]         =
5317     {   "illAll", CALIB_TAG_TYPE_CELL, {-1, -1},
5318         check_tags_array_info(calib_sensor_illAll_sub_tags), NULL
5319     },
5320     [CALIB_SENSOR_LSC_ALSCCOF_CASE_TAG_ID]         =
5321     {   "usedForCase", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5322         check_tags_array_ignore, NULL
5323     },
5324     [CALIB_SENSOR_LSC_ALSCCOF_NAME_TAG_ID]         =
5325     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5326         check_tags_array_ignore, NULL
5327     },
5328     [CALIB_SENSOR_LSC_ALSCCOF_WBGAIN_TAG_ID]         =
5329     {   "wbGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5330         check_tags_array_ignore, NULL
5331     },
5332     [CALIB_SENSOR_LSC_ALSCCOF_TABLEUSED_TAG_ID]         =
5333     {   "tableUsed", CALIB_TAG_TYPE_CHAR, {-1, -1},
5334         check_tags_array_ignore, NULL
5335     },
5336     [CALIB_SENSOR_LSC_ALSCCOF_GAINS_TAG_ID]         =
5337     {   "gains", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5338         check_tags_array_ignore, NULL
5339     },
5340     [CALIB_SENSOR_LSC_ALSCCOF_VIG_TAG_ID]         =
5341     {   "vig", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5342         check_tags_array_ignore, NULL
5343     },
5344 
5345     [CALIB_SENSOR_LSC_TABLEALL_TAG_ID]         =
5346     {   "tableAll", CALIB_TAG_TYPE_CELL, {-1, -1},
5347         check_tags_array_info(calib_sensor_tableAll_sub_tags), NULL
5348     },
5349     [CALIB_SENSOR_LSC_TABLEALL_NAME_TAG_ID]         =
5350     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5351         check_tags_array_ignore, NULL
5352     },
5353     [CALIB_SENSOR_LSC_TABLEALL_RESOLUTION_TAG_ID]         =
5354     {   "resolution", CALIB_TAG_TYPE_CHAR, {-1, -1},
5355         check_tags_array_ignore, NULL
5356     },
5357     [CALIB_SENSOR_LSC_TABLEALL_ILLUMINATION_TAG_ID]         =
5358     {   "illumination", CALIB_TAG_TYPE_CHAR, {-1, -1},
5359         check_tags_array_ignore, NULL
5360     },
5361     [CALIB_SENSOR_LSC_TABLEALL_LSC_SECTORS_TAG_ID]         =
5362     {   "LSC_sectors", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5363         check_tags_array_ignore, NULL
5364     },
5365     [CALIB_SENSOR_LSC_TABLEALL_LSC_NO_TAG_ID]         =
5366     {   "LSC_No", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5367         check_tags_array_ignore, NULL
5368     },
5369     [CALIB_SENSOR_LSC_TABLEALL_LSC_XO_TAG_ID]         =
5370     {   "LSC_Xo", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5371         check_tags_array_ignore, NULL
5372     },
5373     [CALIB_SENSOR_LSC_TABLEALL_LSC_YO_TAG_ID]         =
5374     {   "LSC_Yo", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5375         check_tags_array_ignore, NULL
5376     },
5377     [CALIB_SENSOR_LSC_TABLEALL_LSC_SECTOR_SIZE_X_TAG_ID]         =
5378     {   "LSC_SECT_SIZE_X", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5379         check_tags_array_ignore, NULL
5380     },
5381     [CALIB_SENSOR_LSC_TABLEALL_LSC_SECTOR_SIZE_Y_TAG_ID]         =
5382     {   "LSC_SECT_SIZE_Y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5383         check_tags_array_ignore, NULL
5384     },
5385     [CALIB_SENSOR_LSC_TABLEALL_LSC_VIGNETTING_TAG_ID]         =
5386     {   "vignetting", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5387         check_tags_array_ignore, NULL
5388     },
5389     [CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_RED_TAG_ID]         =
5390     {   "LSC_SAMPLES_red", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5391         check_tags_array_ignore, NULL
5392     },
5393     [CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_GREENR_TAG_ID]         =
5394     {   "LSC_SAMPLES_greenR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5395         check_tags_array_ignore, NULL
5396     },
5397     [CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_GREENB_TAG_ID]         =
5398     {   "LSC_SAMPLES_greenB", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5399         check_tags_array_ignore, NULL
5400     },
5401     [CALIB_SENSOR_LSC_TABLEALL_LSC_SAMPLES_BLUE_TAG_ID]         =
5402     {   "LSC_SAMPLES_blue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5403         check_tags_array_ignore, NULL
5404     },
5405 
5406     // Sensor RKDM
5407     [CALIB_SENSOR_RKDM_TAG_ID]         =
5408     {   "RKDM", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5409         check_tags_array_info(calib_sensor_rkdm_sub_tags), NULL
5410     },
5411     [CALIB_SENSOR_RKDM_ENABLE_TAG_ID]         =
5412     {   "enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
5413         check_tags_array_ignore, NULL
5414     },
5415     [CALIB_SENSOR_RKDM_DEBAYER_FILTER1_TAG_ID]         =
5416     {   "debayer_filter1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5417         check_tags_array_ignore, NULL
5418     },
5419     [CALIB_SENSOR_RKDM_DEBAYER_FILTER2_TAG_ID]         =
5420     {   "debayer_filter2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5421         check_tags_array_ignore, NULL
5422     },
5423     [CALIB_SENSOR_RKDM_DEBAYER_GAIN_OFFSET_TAG_ID]         =
5424     {   "debayer_gain_offset", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5425         check_tags_array_ignore, NULL
5426     },
5427     [CALIB_SENSOR_RKDM_ISO_TAG_ID]         =
5428     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5429         check_tags_array_ignore, NULL
5430     },
5431     [CALIB_SENSOR_RKDM_SHARP_STRENGTH_TAG_ID]         =
5432     {   "sharp_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5433         check_tags_array_ignore, NULL
5434     },
5435     [CALIB_SENSOR_RKDM_DEBAYER_HF_OFFSET_TAG_ID]         =
5436     {   "debayer_hf_offset", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5437         check_tags_array_ignore, NULL
5438     },
5439     [CALIB_SENSOR_RKDM_DEBAYER_OFFSET_TAG_ID]         =
5440     {   "debayer_offset", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5441         check_tags_array_ignore, NULL
5442     },
5443     [CALIB_SENSOR_RKDM_DEBAYER_CLIP_EN_TAG_ID]         =
5444     {   "debayer_clip_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5445         check_tags_array_ignore, NULL
5446     },
5447     [CALIB_SENSOR_RKDM_DEBAYER_FILTER_G_EN_TAG_ID]         =
5448     {   "debayer_filter_g_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5449         check_tags_array_ignore, NULL
5450     },
5451     [CALIB_SENSOR_RKDM_DEBAYER_FILTER_C_EN_TAG_ID]         =
5452     {   "debayer_filter_c_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5453         check_tags_array_ignore, NULL
5454     },
5455     [CALIB_SENSOR_RKDM_DEBAYER_THED0_TAG_ID]         =
5456     {   "debayer_thed0", CALIB_TAG_TYPE_CHAR, {-1, -1},
5457         check_tags_array_ignore, NULL
5458     },
5459     [CALIB_SENSOR_RKDM_DEBAYER_THED1_TAG_ID]         =
5460     {   "debayer_thed1", CALIB_TAG_TYPE_CHAR, {-1, -1},
5461         check_tags_array_ignore, NULL
5462     },
5463     [CALIB_SENSOR_RKDM_DEBAYER_DIST_SCALE_TAG_ID]         =
5464     {   "debayer_dist_scale", CALIB_TAG_TYPE_CHAR, {-1, -1},
5465         check_tags_array_ignore, NULL
5466     },
5467     [CALIB_SENSOR_RKDM_DEBAYER_CNR_STRENGTH_TAG_ID]         =
5468     {   "debayer_cnr_strength", CALIB_TAG_TYPE_CHAR, {-1, -1},
5469         check_tags_array_ignore, NULL
5470     },
5471     [CALIB_SENSOR_RKDM_DEBAYER_SHIFT_NUM_TAG_ID]         =
5472     {   "debayer_shift_num", CALIB_TAG_TYPE_CHAR, {-1, -1},
5473         check_tags_array_ignore, NULL
5474     },
5475 
5476     // Sensor CCM
5477     [CALIB_SENSOR_CCM_TAG_ID]         =
5478     {   "CCM", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5479         check_tags_array_info(calib_sensor_ccm_sub_tags), NULL
5480     },
5481     [CALIB_SENSOR_CCM_ENABLE_TAG_ID]         =
5482     {   "enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
5483         check_tags_array_ignore, NULL
5484     },
5485     [CALIB_SENSOR_CCM_MODE_CELL_TAG_ID]         =
5486     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
5487         check_tags_array_info(calib_sensor_ccm_mode_cell_sub_tags), NULL
5488     },
5489     [CALIB_SENSOR_CCM_MODE_NAME_TAG_ID]         =
5490     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5491         check_tags_array_ignore, NULL
5492     },
5493 
5494     [CALIB_SENSOR_CCM_DAMP_ENABLE_TAG_ID]         =
5495     {   "damp_enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
5496         check_tags_array_ignore, NULL
5497     },
5498     [CALIB_SENSOR_CCM_LUMA_CCM_TAG_ID]         =
5499     {   "lumaCCM", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5500         check_tags_array_info(calib_sensor_lumaCCM_sub_tags), NULL
5501     },
5502     [CALIB_SENSOR_CCM_LUMA_CCM_RGB2Y_PARA_TAG_ID]         =
5503     {   "RGB2Y_para", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5504         check_tags_array_ignore, NULL
5505     },
5506     [CALIB_SENSOR_CCM_LUMA_CCM_LOW_BOUND_POS_BIT_TAG_ID]         =
5507     {   "low_bound_pos_bit", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5508         check_tags_array_ignore, NULL
5509     },
5510     [CALIB_SENSOR_CCM_LUMA_CCM_Y_ALPHA_CURVE_TAG_ID]         =
5511     {   "y_alpha_curve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5512         check_tags_array_ignore, NULL
5513     },
5514     [CALIB_SENSOR_CCM_LUMA_CCM_GAIN_ALPHASCALE_CURVE_TAG_ID]         =
5515     {   "gain_alphaScale_curve", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5516         check_tags_array_info(
5517             calib_sensor_gain_alphaScale_curve_sub_tags), NULL
5518     },
5519     [CALIB_SENSOR_CCM_LUMA_CCM_GAIN_TAG_ID]         =
5520     {   "gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5521         check_tags_array_ignore, NULL
5522     },
5523     [CALIB_SENSOR_CCM_LUMA_CCM_SCALE_TAG_ID]         =
5524     {   "scale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5525         check_tags_array_ignore, NULL
5526     },
5527     [CALIB_SENSOR_CCM_ACCMCOF_TAG_ID]         =
5528     {   "aCcmCof", CALIB_TAG_TYPE_CELL, {-1, -1},
5529         check_tags_array_info(
5530             calib_sensor_ccm_aCcmCof_sub_tags), NULL
5531     },
5532     [CALIB_SENSOR_CCM_ACCMCOF_IllALL_TAG_ID]         =
5533     {   "illAll", CALIB_TAG_TYPE_CELL, {-1, -1},
5534         check_tags_array_info(
5535             calib_sensor_ccm_illAll_sub_tags), NULL
5536     },
5537     [CALIB_SENSOR_CCM_ACCMCOF_NAME_TAG_ID]         =
5538     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5539         check_tags_array_ignore, NULL
5540     },
5541     [CALIB_SENSOR_CCM_ACCMCOF_WBGAIN_TAG_ID]         =
5542     {   "wbGain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5543         check_tags_array_ignore, NULL
5544     },
5545     [CALIB_SENSOR_CCM_ACCMCOF_MATRIXUSED_TAG_ID]         =
5546     {   "matrixUsed", CALIB_TAG_TYPE_CHAR, {-1, -1},
5547         check_tags_array_ignore, NULL
5548     },
5549     [CALIB_SENSOR_CCM_ACCMCOF_GAIN_SAT_CURVE_TAG_ID]         =
5550     {   "gain_sat_curve", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
5551         check_tags_array_ignore, NULL
5552     },
5553     [CALIB_SENSOR_CCM_ACCMCOF_GAINS_TAG_ID]         =
5554     {   "gains", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5555         check_tags_array_ignore, NULL
5556     },
5557     [CALIB_SENSOR_CCM_ACCMCOF_SAT_TAG_ID]         =
5558     {   "sat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5559         check_tags_array_ignore, NULL
5560     },
5561     [CALIB_SENSOR_CCM_MATRIXALL_TAG_ID]         =
5562     {   "matrixAll", CALIB_TAG_TYPE_CELL, {-1, -1},
5563         check_tags_array_info(
5564             calib_sensor_ccm_matrixAll_sub_tags), NULL
5565     },
5566     [CALIB_SENSOR_CCM_MATRIXALL_NAME_TAG_ID]         =
5567     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5568         check_tags_array_ignore, NULL
5569     },
5570     [CALIB_SENSOR_CCM_MATRIXALL_ILLUMINATION_TAG_ID]         =
5571     {   "illumination", CALIB_TAG_TYPE_CHAR, {-1, -1},
5572         check_tags_array_ignore, NULL
5573     },
5574     [CALIB_SENSOR_CCM_MATRIXALL_SAT_TAG_ID]         =
5575     {   "saturation", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5576         check_tags_array_ignore, NULL
5577     },
5578     [CALIB_SENSOR_CCM_MATRIXALL_MATRIX_TAG_ID]         =
5579     {   "ccMatrix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5580         check_tags_array_ignore, NULL
5581     },
5582     [CALIB_SENSOR_CCM_MATRIXALL_OFFSET_TAG_ID]         =
5583     {   "ccOffsets", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5584         check_tags_array_ignore, NULL
5585     },
5586 
5587     // Sensor UVNR
5588     [CALIB_SENSOR_UVNR_TAG_ID]         =
5589     {   "UVNR", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5590         check_tags_array_info(calib_sensor_uvnr_sub_tags), NULL
5591     },
5592     [CALIB_SENSOR_UVNR_ENABLE_TAG_ID]         =
5593     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5594         check_tags_array_ignore, NULL
5595     },
5596     [CALIB_SENSOR_UVNR_VERSION_TAG_ID]         =
5597     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
5598         check_tags_array_ignore, NULL
5599     },
5600     [CALIB_SENSOR_UVNR_MODE_CELL_TAG_ID]         =
5601     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
5602         check_tags_array_info(calib_sensor_uvnr_mode_cell_sub_tags), NULL
5603     },
5604     [CALIB_SENSOR_UVNR_MODE_NAME_TAG_ID]         =
5605     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5606         check_tags_array_ignore, NULL
5607     },
5608     [CALIB_SENSOR_UVNR_SETTING_TAG_ID]         =
5609     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
5610         check_tags_array_info(calib_sensor_uvnr_setting_sub_tags), NULL
5611     },
5612     [CALIB_SENSOR_UVNR_SETTING_SNR_MODE_TAG_ID]         =
5613     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5614         check_tags_array_ignore, NULL
5615     },
5616     [CALIB_SENSOR_UVNR_SETTING_SENSOR_MODE_TAG_ID]         =
5617     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5618         check_tags_array_ignore, NULL
5619     },
5620     [CALIB_SENSOR_UVNR_ISO_TAG_ID]         =
5621     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5622         check_tags_array_ignore, NULL
5623     },
5624     [CALIB_SENSOR_UVNR_STEP0_UVGRAD_RATIO_TAG_ID]         =
5625     {   "step0_uvgrad_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5626         check_tags_array_ignore, NULL
5627     },
5628     [CALIB_SENSOR_UVNR_STEP0_UVGRAD_OFFSET_TAG_ID]         =
5629     {   "step0_uvgrad_offset", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5630         check_tags_array_ignore, NULL
5631     },
5632     [CALIB_SENSOR_UVNR_STEP1_NONMED1_TAG_ID]         =
5633     {   "step1_nonMed1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5634         check_tags_array_ignore, NULL
5635     },
5636     [CALIB_SENSOR_UVNR_STEP1_NONBF1_TAG_ID]         =
5637     {   "step1_nonBf1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5638         check_tags_array_ignore, NULL
5639     },
5640     [CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_W_TAG_ID]         =
5641     {   "step1_downSample_w", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5642         check_tags_array_ignore, NULL
5643     },
5644     [CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_H_TAG_ID]         =
5645     {   "step1_downSample_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5646         check_tags_array_ignore, NULL
5647     },
5648     [CALIB_SENSOR_UVNR_STEP1_DOWNSAMPLE_MEANSIZE_TAG_ID]         =
5649     {   "step1_downSample_meansize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5650         check_tags_array_ignore, NULL
5651     },
5652     [CALIB_SENSOR_UVNR_STEP1_MEDIAN_RATIO_TAG_ID]         =
5653     {   "step1_median_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5654         check_tags_array_ignore, NULL
5655     },
5656     [CALIB_SENSOR_UVNR_STEP1_MEDIAN_SIZE_TAG_ID]         =
5657     {   "step1_median_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5658         check_tags_array_ignore, NULL
5659     },
5660     [CALIB_SENSOR_UVNR_STEP1_MEDIAN_IIR_TAG_ID]         =
5661     {   "step1_median_IIR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5662         check_tags_array_ignore, NULL
5663     },
5664     [CALIB_SENSOR_UVNR_STEP1_BF_SIGMAR_TAG_ID]         =
5665     {   "step1_bf_sigmaR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5666         check_tags_array_ignore, NULL
5667     },
5668     [CALIB_SENSOR_UVNR_STEP1_BF_UVGAIN_TAG_ID]         =
5669     {   "step1_bf_uvgain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5670         check_tags_array_ignore, NULL
5671     },
5672     [CALIB_SENSOR_UVNR_STEP1_BF_RATIO_TAG_ID]         =
5673     {   "step1_bf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5674         check_tags_array_ignore, NULL
5675     },
5676     [CALIB_SENSOR_UVNR_STEP1_BF_SIZE_TAG_ID]         =
5677     {   "step1_bf_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5678         check_tags_array_ignore, NULL
5679     },
5680     [CALIB_SENSOR_UVNR_STEP1_BF_SIGMAD_TAG_ID]         =
5681     {   "step1_bf_sigmaD", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5682         check_tags_array_ignore, NULL
5683     },
5684     [CALIB_SENSOR_UVNR_STEP1_BF_ISROWIIR_TAG_ID]         =
5685     {   "step1_bf_isRowIIR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5686         check_tags_array_ignore, NULL
5687     },
5688     [CALIB_SENSOR_UVNR_STEP1_BF_ISYCOPY_TAG_ID]         =
5689     {   "step1_bf_isYcopy", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5690         check_tags_array_ignore, NULL
5691     },
5692     [CALIB_SENSOR_UVNR_STEP2_NONEXT_BLOCK_TAG_ID]         =
5693     {   "step2_nonExt_block", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5694         check_tags_array_ignore, NULL
5695     },
5696     [CALIB_SENSOR_UVNR_STEP2_NONMED_TAG_ID]         =
5697     {   "step2_nonMed", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5698         check_tags_array_ignore, NULL
5699     },
5700     [CALIB_SENSOR_UVNR_STEP2_NONBF_TAG_ID]         =
5701     {   "step2_nonBf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5702         check_tags_array_ignore, NULL
5703     },
5704     [CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_W_TAG_ID]         =
5705     {   "step2_downSample_w", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5706         check_tags_array_ignore, NULL
5707     },
5708     [CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_H_TAG_ID]         =
5709     {   "step2_downSample_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5710         check_tags_array_ignore, NULL
5711     },
5712     [CALIB_SENSOR_UVNR_STEP2_DOWNSAMPLE_MEANSIZE_TAG_ID]         =
5713     {   "step2_downSample_meansize", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5714         check_tags_array_ignore, NULL
5715     },
5716     [CALIB_SENSOR_UVNR_STEP2_MEDIAN_RATIO_TAG_ID]         =
5717     {   "step2_median_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5718         check_tags_array_ignore, NULL
5719     },
5720     [CALIB_SENSOR_UVNR_STEP2_MEDIAN_SIZE_TAG_ID]         =
5721     {   "step2_median_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5722         check_tags_array_ignore, NULL
5723     },
5724     [CALIB_SENSOR_UVNR_STEP2_MEDIAN_IIR_TAG_ID]         =
5725     {   "step2_median_IIR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5726         check_tags_array_ignore, NULL
5727     },
5728     [CALIB_SENSOR_UVNR_STEP2_BF_SIGMAR_TAG_ID]         =
5729     {   "step2_bf_sigmaR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5730         check_tags_array_ignore, NULL
5731     },
5732     [CALIB_SENSOR_UVNR_STEP2_BF_UVGAIN_TAG_ID]         =
5733     {   "step2_bf_uvgain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5734         check_tags_array_ignore, NULL
5735     },
5736     [CALIB_SENSOR_UVNR_STEP2_BF_RATIO_TAG_ID]         =
5737     {   "step2_bf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5738         check_tags_array_ignore, NULL
5739     },
5740     [CALIB_SENSOR_UVNR_STEP2_BF_SIZE_TAG_ID]         =
5741     {   "step2_bf_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5742         check_tags_array_ignore, NULL
5743     },
5744     [CALIB_SENSOR_UVNR_STEP2_BF_SIGMAD_TAG_ID]         =
5745     {   "step2_bf_sigmaD", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5746         check_tags_array_ignore, NULL
5747     },
5748     [CALIB_SENSOR_UVNR_STEP2_BF_ISROWIIR_TAG_ID]         =
5749     {   "step2_bf_isRowIIR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5750         check_tags_array_ignore, NULL
5751     },
5752     [CALIB_SENSOR_UVNR_STEP2_BF_ISYCOPY_TAG_ID]         =
5753     {   "step2_bf_isYcopy", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5754         check_tags_array_ignore, NULL
5755     },
5756     [CALIB_SENSOR_UVNR_STEP3_NONBF3_TAG_ID]         =
5757     {   "step3_nonBf3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5758         check_tags_array_ignore, NULL
5759     },
5760     [CALIB_SENSOR_UVNR_STEP3_BF_SIGMAR_TAG_ID]         =
5761     {   "step3_bf_sigmaR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5762         check_tags_array_ignore, NULL
5763     },
5764     [CALIB_SENSOR_UVNR_STEP3_BF_UVGAIN_TAG_ID]         =
5765     {   "step3_bf_uvgain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5766         check_tags_array_ignore, NULL
5767     },
5768     [CALIB_SENSOR_UVNR_STEP3_BF_RATIO_TAG_ID]         =
5769     {   "step3_bf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5770         check_tags_array_ignore, NULL
5771     },
5772     [CALIB_SENSOR_UVNR_STEP3_BF_SIZE_TAG_ID]         =
5773     {   "step3_bf_size", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5774         check_tags_array_ignore, NULL
5775     },
5776     [CALIB_SENSOR_UVNR_STEP3_BF_SIGMAD_TAG_ID]         =
5777     {   "step3_bf_sigmaD", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5778         check_tags_array_ignore, NULL
5779     },
5780     [CALIB_SENSOR_UVNR_STEP3_BF_ISROWIIR_TAG_ID]         =
5781     {   "step3_bf_isRowIIR", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5782         check_tags_array_ignore, NULL
5783     },
5784     [CALIB_SENSOR_UVNR_STEP3_BF_ISYCOPY_TAG_ID]         =
5785     {   "step3_bf_isYcopy", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5786         check_tags_array_ignore, NULL
5787     },
5788     [CALIB_SENSOR_UVNR_KERNEL_3X3_TAG_ID]         =
5789     {   "kernel_3x3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5790         check_tags_array_ignore, NULL
5791     },
5792     [CALIB_SENSOR_UVNR_KERNEL_5X5_TAG_ID]         =
5793     {   "kernel_5x5", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5794         check_tags_array_ignore, NULL
5795     },
5796     [CALIB_SENSOR_UVNR_KERNEL_9X9_TAG_ID]         =
5797     {   "kernel_9x9", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5798         check_tags_array_ignore, NULL
5799     },
5800     [CALIB_SENSOR_UVNR_KERNEL_9X9_NUM_TAG_ID]         =
5801     {   "kernel_9x9_num", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5802         check_tags_array_ignore, NULL
5803     },
5804     [CALIB_SENSOR_UVNR_SIGMA_ADJ_LUMA_TAG_ID]         =
5805     {   "sigma_adj_luma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5806         check_tags_array_ignore, NULL
5807     },
5808     [CALIB_SENSOR_UVNR_SIGMA_ADJ_RATIO_TAG_ID]         =
5809     {   "sigma_adj_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5810         check_tags_array_ignore, NULL
5811     },
5812     [CALIB_SENSOR_UVNR_THRESHOLD_ADJ_LUMA_TAG_ID]         =
5813     {   "threshold_adj_luma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5814         check_tags_array_ignore, NULL
5815     },
5816     [CALIB_SENSOR_UVNR_THRESHOLD_ADJ_THRE_TAG_ID]         =
5817     {   "threshold_adj_thre", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5818         check_tags_array_ignore, NULL
5819     },
5820 
5821     // Sensor GAMMA
5822     [CALIB_SENSOR_GAMMA_TAG_ID]         =
5823     {   "GAMMA", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5824         check_tags_array_info(calib_sensor_gamma_sub_tags), NULL
5825     },
5826     [CALIB_SENSOR_GAMMA_GAMMA_EN_TAG_ID]         =
5827     {   "gamma_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5828         check_tags_array_ignore, NULL
5829     },
5830     [CALIB_SENSOR_GAMMA_GAMMA_OUT_SEGNUM_TAG_ID]         =
5831     {   "gamma_out_segnum", CALIB_TAG_TYPE_CHAR, {-1, -1},
5832         check_tags_array_ignore, NULL
5833     },
5834     [CALIB_SENSOR_GAMMA_GAMMA_OUT_OFFSET_TAG_ID]         =
5835     {   "gamma_out_offset", CALIB_TAG_TYPE_CHAR, {-1, -1},
5836         check_tags_array_ignore, NULL
5837     },
5838     [CALIB_SENSOR_GAMMA_CURVE_NORMAL_TAG_ID]         =
5839     {   "curve_normal", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5840         check_tags_array_ignore, NULL
5841     },
5842     [CALIB_SENSOR_GAMMA_CURVE_HDR_TAG_ID]         =
5843     {   "curve_hdr", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5844         check_tags_array_ignore, NULL
5845     },
5846     [CALIB_SENSOR_GAMMA_CURVE_NIGHT_TAG_ID]         =
5847     {   "curve_night", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5848         check_tags_array_ignore, NULL
5849     },
5850 
5851     // Sensor DEGAMMA
5852     [CALIB_SENSOR_DEGAMMA_TAG_ID]         =
5853     {   "DEGAMMA", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5854         check_tags_array_info(calib_sensor_degamma_sub_tags), NULL
5855     },
5856     [CALIB_SENSOR_DEGAMMA_EN_TAG_ID]         =
5857     {   "Degamma_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5858         check_tags_array_ignore, NULL
5859     },
5860     [CALIB_SENSOR_DEGAMMA_MODE_CELL_TAG_ID]         =
5861     {   "Degamma_mode", CALIB_TAG_TYPE_CELL, {-1, -1},
5862         check_tags_array_info(calib_sensor_degamma_cell_sub_tags), NULL
5863     },
5864     [CALIB_SENSOR_DEGAMMA_MODE_NAME_TAG_ID]         =
5865     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5866         check_tags_array_ignore, NULL
5867     },
5868     [CALIB_SENSOR_DEGAMMA_SCENE_EN_TAG_ID]         =
5869     {   "Degamma_scene_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
5870         check_tags_array_ignore, NULL
5871     },
5872     [CALIB_SENSOR_DEGAMMA_CURVE_X_TAG_ID]         =
5873     {   "X_axis", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5874         check_tags_array_ignore, NULL
5875     },
5876     [CALIB_SENSOR_DEGAMMA_CURVE_R_TAG_ID]         =
5877     {   "curve_R", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5878         check_tags_array_ignore, NULL
5879     },
5880     [CALIB_SENSOR_DEGAMMA_CURVE_G_TAG_ID]         =
5881     {   "curve_G", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5882         check_tags_array_ignore, NULL
5883     },
5884     [CALIB_SENSOR_DEGAMMA_CURVE_B_TAG_ID]         =
5885     {   "curve_B", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5886         check_tags_array_ignore, NULL
5887     },
5888 
5889     // Sensor YNR
5890     [CALIB_SENSOR_YNR_TAG_ID]         =
5891     {   "YNR", CALIB_TAG_TYPE_STRUCT, {-1, -1},
5892         check_tags_array_info(calib_sensor_ynr_sub_tags), NULL
5893     },
5894     [CALIB_SENSOR_YNR_ENABLE_TAG_ID]         =
5895     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5896         check_tags_array_ignore, NULL
5897     },
5898     [CALIB_SENSOR_YNR_VERSION_TAG_ID]         =
5899     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
5900         check_tags_array_ignore, NULL
5901     },
5902     [CALIB_SENSOR_YNR_MODE_CELL_TAG_ID]         =
5903     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
5904         check_tags_array_info(calib_sensor_ynr_mode_cell_sub_tags), NULL
5905     },
5906     [CALIB_SENSOR_YNR_MODE_NAME_TAG_ID]         =
5907     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
5908         check_tags_array_ignore, NULL
5909     },
5910     [CALIB_SENSOR_YNR_SETTING_CELL_TAG_ID]         =
5911     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
5912         check_tags_array_info(calib_sensor_YNR_Setting_sub_tags), NULL
5913     },
5914     [CALIB_SENSOR_YNR_SETTING_SNR_MODE_TAG_ID]         =
5915     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5916         check_tags_array_ignore, NULL
5917     },
5918     [CALIB_SENSOR_YNR_SETTING_SENSOR_MODE_TAG_ID]         =
5919     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
5920         check_tags_array_ignore, NULL
5921     },
5922     [CALIB_SENSOR_YNR_ISO_CELL_TAG_ID]         =
5923     {   "YNR_ISO", CALIB_TAG_TYPE_CELL, {-1, -1},
5924         check_tags_array_info(calib_sensor_YNR_ISO_sub_tags), NULL
5925     },
5926     [CALIB_SENSOR_YNR_ISO_TAG_ID]         =
5927     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5928         check_tags_array_ignore, NULL
5929     },
5930     [CALIB_SENSOR_YNR_SIGMA_CURVE_TAG_ID]         =
5931     {   "sigma_curve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5932         check_tags_array_ignore, NULL
5933     },
5934     [CALIB_SENSOR_YNR_YNR_LCI_TAG_ID]         =
5935     {   "ynr_lci", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5936         check_tags_array_ignore, NULL
5937     },
5938     [CALIB_SENSOR_YNR_YNR_LHCI_TAG_ID]         =
5939     {   "ynr_lhci", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5940         check_tags_array_ignore, NULL
5941     },
5942     [CALIB_SENSOR_YNR_YNR_HLCI_TAG_ID]         =
5943     {   "ynr_hlci", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5944         check_tags_array_ignore, NULL
5945     },
5946     [CALIB_SENSOR_YNR_YNR_HHCI_TAG_ID]         =
5947     {   "ynr_hhci", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5948         check_tags_array_ignore, NULL
5949     },
5950     [CALIB_SENSOR_YNR_LO_LUMAPOINT_TAG_ID]         =
5951     {   "lo_lumaPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5952         check_tags_array_ignore, NULL
5953     },
5954     [CALIB_SENSOR_YNR_LO_LUMARATIO_TAG_ID]         =
5955     {   "lo_lumaRatio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5956         check_tags_array_ignore, NULL
5957     },
5958     [CALIB_SENSOR_YNR_LO_DIRECTIONSTRENGTH_TAG_ID]         =
5959     {   "lo_directionStrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5960         check_tags_array_ignore, NULL
5961     },
5962     [CALIB_SENSOR_YNR_LO_BFSCALE_TAG_ID]         =
5963     {   "lo_bfScale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5964         check_tags_array_ignore, NULL
5965     },
5966     [CALIB_SENSOR_YNR_IMERGE_RATIO_TAG_ID]         =
5967     {   "imerge_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5968         check_tags_array_ignore, NULL
5969     },
5970     [CALIB_SENSOR_YNR_IMERGE_BOUND_TAG_ID]         =
5971     {   "imerge_bound", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5972         check_tags_array_ignore, NULL
5973     },
5974     [CALIB_SENSOR_YNR_DENOISE_WEIGHT_TAG_ID]         =
5975     {   "denoise_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5976         check_tags_array_ignore, NULL
5977     },
5978     [CALIB_SENSOR_YNR_HI_LUMAPOINT_TAG_ID]         =
5979     {   "hi_lumaPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5980         check_tags_array_ignore, NULL
5981     },
5982     [CALIB_SENSOR_YNR_HI_LUMARATIO_TAG_ID]         =
5983     {   "hi_lumaRatio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5984         check_tags_array_ignore, NULL
5985     },
5986     [CALIB_SENSOR_YNR_HI_BFSCALE_TAG_ID]         =
5987     {   "hi_bfScale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5988         check_tags_array_ignore, NULL
5989     },
5990     [CALIB_SENSOR_YNR_HWITH_D_TAG_ID]         =
5991     {   "hwith_d", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5992         check_tags_array_ignore, NULL
5993     },
5994     [CALIB_SENSOR_YNR_HI_DENOISESTRENGTH_TAG_ID]         =
5995     {   "hi_denoiseStrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
5996         check_tags_array_ignore, NULL
5997     },
5998     [CALIB_SENSOR_YNR_HI_DETAILMINADJDNW_TAG_ID]         =
5999     {   "hi_detailMinAdjDnW", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6000         check_tags_array_ignore, NULL
6001     },
6002     [CALIB_SENSOR_YNR_HI_DENOISEWEIGHT_TAG_ID]         =
6003     {   "hi_denoiseWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6004         check_tags_array_ignore, NULL
6005     },
6006     [CALIB_SENSOR_YNR_Y_LUMA_POINT_TAG_ID]         =
6007     {   "y_luma_point", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6008         check_tags_array_ignore, NULL
6009     },
6010     [CALIB_SENSOR_YNR_HGRAD_Y_LEVEL1_TAG_ID]         =
6011     {   "hgrad_y_level1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6012         check_tags_array_ignore, NULL
6013     },
6014     [CALIB_SENSOR_YNR_HGRAD_Y_LEVEL2_TAG_ID]         =
6015     {   "hgrad_y_level2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6016         check_tags_array_ignore, NULL
6017     },
6018     [CALIB_SENSOR_YNR_HGRAD_Y_LEVEL3_TAG_ID]         =
6019     {   "hgrad_y_level3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6020         check_tags_array_ignore, NULL
6021     },
6022     [CALIB_SENSOR_YNR_HGRAD_Y_LEVEL4_TAG_ID]         =
6023     {   "hgrad_y_level4", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6024         check_tags_array_ignore, NULL
6025     },
6026     [CALIB_SENSOR_YNR_HI_SOFT_THRESH_SCALE_TAG_ID]         =
6027     {   "hi_soft_thresh_scale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6028         check_tags_array_ignore, NULL
6029     },
6030 
6031     // Sensor GIC
6032     [CALIB_SENSOR_GIC_TAG_ID]         =
6033     {   "GIC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6034         check_tags_array_info(calib_sensor_gic_sub_tags), NULL
6035     },
6036     [CALIB_SENSOR_GIC_CALIBPARA_V20_TAG_ID]         =
6037     {   "CalibParaV20", CALIB_TAG_TYPE_CELL, {-1, -1},
6038         check_tags_array_info(calib_sensor_gic_CalibParaV20_sub_tags), NULL
6039     },
6040     [CALIB_SENSOR_GIC_CALIBPARA_V21_TAG_ID]         =
6041     {   "CalibParaV21", CALIB_TAG_TYPE_CELL, {-1, -1},
6042         check_tags_array_info(calib_sensor_gic_CalibParaV21_sub_tags), NULL
6043     },
6044     [CALIB_SENSOR_GIC_TUNINGPARA_V20_TAG_ID]         =
6045     {   "TuningParaV20", CALIB_TAG_TYPE_CELL, {-1, -1},
6046         check_tags_array_info(calib_sensor_gic_TuningParaV20_sub_tags), NULL
6047     },
6048     [CALIB_SENSOR_GIC_TUNINGPARA_V21_TAG_ID]         =
6049     {   "TuningParaV21", CALIB_TAG_TYPE_CELL, {-1, -1},
6050         check_tags_array_info(calib_sensor_gic_TuningParaV21_sub_tags), NULL
6051     },
6052     [CALIB_SENSOR_GIC_SCENE_TAG_ID]         =
6053     {   "scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
6054         check_tags_array_ignore, NULL
6055     },
6056     [CALIB_SENSOR_GIC_ENABLE_TAG_ID]         =
6057     {   "enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
6058         check_tags_array_ignore, NULL
6059     },
6060     [CALIB_SENSOR_GIC_EDGE_EN_TAG_ID]         =
6061     {   "edge_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
6062         check_tags_array_ignore, NULL
6063     },
6064     [CALIB_SENSOR_GIC_GR_RATION_TAG_ID]         =
6065     {   "gr_ration", CALIB_TAG_TYPE_CHAR, {-1, -1},
6066         check_tags_array_ignore, NULL
6067     },
6068     [CALIB_SENSOR_GIC_NOISE_CUT_EN_TAG_ID]         =
6069     {   "noise_cut_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
6070         check_tags_array_ignore, NULL
6071     },
6072     [CALIB_SENSOR_GIC_SETTING_TAG_ID]         =
6073     {   "Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6074         check_tags_array_info(calib_sensor_GIC_Setting_v20_sub_tags), NULL
6075     },
6076     [CALIB_SENSOR_GIC_SETTING_ISO_TAG_ID]         =
6077     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6078         check_tags_array_ignore, NULL
6079     },
6080     [CALIB_SENSOR_GIC_MIN_BUSY_THRE_TAG_ID]         =
6081     {   "min_busy_thre", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6082         check_tags_array_ignore, NULL
6083     },
6084     [CALIB_SENSOR_GIC_MIN_GRAD_THR1_TAG_ID]         =
6085     {   "min_grad_thr1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6086         check_tags_array_ignore, NULL
6087     },
6088     [CALIB_SENSOR_GIC_MIN_GRAD_THR2_TAG_ID]         =
6089     {   "min_grad_thr2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6090         check_tags_array_ignore, NULL
6091     },
6092     [CALIB_SENSOR_GIC_K_GRAD1_TAG_ID]         =
6093     {   "k_grad1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6094         check_tags_array_ignore, NULL
6095     },
6096     [CALIB_SENSOR_GIC_K_GRAD2_TAG_ID]         =
6097     {   "k_grad2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6098         check_tags_array_ignore, NULL
6099     },
6100     [CALIB_SENSOR_GIC_GB_THRE_TAG_ID]         =
6101     {   "gb_thre", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6102         check_tags_array_ignore, NULL
6103     },
6104     [CALIB_SENSOR_GIC_MAXCORV_TAG_ID]         =
6105     {   "maxCorV", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6106         check_tags_array_ignore, NULL
6107     },
6108     [CALIB_SENSOR_GIC_MAXCORVBOTH_TAG_ID]         =
6109     {   "maxCorVboth", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6110         check_tags_array_ignore, NULL
6111     },
6112     [CALIB_SENSOR_GIC_DARK_THRE_TAG_ID]         =
6113     {   "dark_thre", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6114         check_tags_array_ignore, NULL
6115     },
6116     [CALIB_SENSOR_GIC_DARK_THREHI_TAG_ID]         =
6117     {   "dark_threHi", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6118         check_tags_array_ignore, NULL
6119     },
6120     [CALIB_SENSOR_GIC_K_GRAD1_DARK_TAG_ID]         =
6121     {   "k_grad1_dark", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6122         check_tags_array_ignore, NULL
6123     },
6124     [CALIB_SENSOR_GIC_K_GRAD2_DARK_TAG_ID]         =
6125     {   "k_grad2_dark", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6126         check_tags_array_ignore, NULL
6127     },
6128 
6129     [CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK1_TAG_ID]         =
6130     {   "min_grad_thr_dark1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6131         check_tags_array_ignore, NULL
6132     },
6133     [CALIB_SENSOR_GIC_MIN_GRAD_THR_DARK2_TAG_ID]         =
6134     {   "min_grad_thr_dark2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6135         check_tags_array_ignore, NULL
6136     },
6137     [CALIB_SENSOR_GIC_NOISECURVE0_TAG_ID]         =
6138     {   "noiseCurve_0", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6139         check_tags_array_ignore, NULL
6140     },
6141     [CALIB_SENSOR_GIC_NOISECURVE1_TAG_ID]         =
6142     {   "noiseCurve_1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6143         check_tags_array_ignore, NULL
6144     },
6145     [CALIB_SENSOR_GIC_GVALUELIMITLO_TAG_ID]         =
6146     {   "GValueLimitLo", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6147         check_tags_array_ignore, NULL
6148     },
6149     [CALIB_SENSOR_GIC_GVALUELIMITHI_TAG_ID]         =
6150     {   "GValueLimitHi", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6151         check_tags_array_ignore, NULL
6152     },
6153     [CALIB_SENSOR_GIC_TEXTURESTRENGTH_TAG_ID]         =
6154     {   "textureStrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6155         check_tags_array_ignore, NULL
6156     },
6157     [CALIB_SENSOR_GIC_SCALELO_TAG_ID]         =
6158     {   "ScaleLo", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6159         check_tags_array_ignore, NULL
6160     },
6161     [CALIB_SENSOR_GIC_SCALEHI_TAG_ID]         =
6162     {   "ScaleHi", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6163         check_tags_array_ignore, NULL
6164     },
6165     [CALIB_SENSOR_GIC_GLOBALSTRENGTH_TAG_ID]         =
6166     {   "globalStrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6167         check_tags_array_ignore, NULL
6168     },
6169     [CALIB_SENSOR_GIC_NOISE_COEA_TAG_ID]         =
6170     {   "noise_coea", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6171         check_tags_array_ignore, NULL
6172     },
6173     [CALIB_SENSOR_GIC_NOISE_COEB_TAG_ID]         =
6174     {   "noise_coeb", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6175         check_tags_array_ignore, NULL
6176     },
6177     [CALIB_SENSOR_GIC_DIFF_CLIP_TAG_ID]         =
6178     {   "diff_clip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6179         check_tags_array_ignore, NULL
6180     },
6181     [CALIB_SENSOR_GIC_SETTING_V21_TAG_ID]         =
6182     {   "SettingV21", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6183         check_tags_array_info(calib_sensor_GIC_Setting_v21_sub_tags), NULL
6184     },
6185     [CALIB_SENSOR_GIC_NOISESCALE_TAG_ID]         =
6186     {   "NoiseScale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6187         check_tags_array_ignore, NULL
6188     },
6189     [CALIB_SENSOR_GIC_NOISEBASE_TAG_ID]         =
6190     {   "NoiseBase", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6191         check_tags_array_ignore, NULL
6192     },
6193 
6194 
6195     // Sensor MFNR
6196     [CALIB_SENSOR_MFNR_TAG_ID]         =
6197     {   "MFNR", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6198         check_tags_array_info(calib_sensor_mfnr_sub_tags), NULL
6199     },
6200     [CALIB_SENSOR_MFNR_ENABLE_TAG_ID]         =
6201     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6202         check_tags_array_ignore, NULL
6203     },
6204     [CALIB_SENSOR_MFNR_VERSION_TAG_ID]         =
6205     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
6206         check_tags_array_ignore, NULL
6207     },
6208     [CALIB_SENSOR_MFNR_LOCAL_GAIN_EN_TAG_ID]         =
6209     {   "local_gain_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6210         check_tags_array_ignore, NULL
6211     },
6212     [CALIB_SENSOR_MFNR_MOTION_DETECT_EN_TAG_ID]         =
6213     {   "motion_detect_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6214         check_tags_array_ignore, NULL
6215     },
6216 
6217     [CALIB_SENSOR_MFNR_MODE_3TO1_TAG_ID]         =
6218     {   "mode_3to1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6219         check_tags_array_ignore, NULL
6220     },
6221 
6222     [CALIB_SENSOR_MFNR_MAX_LEVEL_TAG_ID]         =
6223     {   "max_level", CALIB_TAG_TYPE_CHAR, {-1, -1},
6224         check_tags_array_ignore, NULL
6225     },
6226     [CALIB_SENSOR_MFNR_MAX_LEVEL_UV_TAG_ID]         =
6227     {   "max_level_uv", CALIB_TAG_TYPE_CHAR, {-1, -1},
6228         check_tags_array_ignore, NULL
6229     },
6230     [CALIB_SENSOR_MFNR_BACK_REF_NUM_TAG_ID]         =
6231     {   "back_ref_num", CALIB_TAG_TYPE_CHAR, {-1, -1},
6232         check_tags_array_ignore, NULL
6233     },
6234     [CALIB_SENSOR_MFNR_AWB_UV_RATIO_TAG_ID]         =
6235     {   "awb_uv_ratio", CALIB_TAG_TYPE_CELL, {-1, -1},
6236         check_tags_array_info(calib_sensor_awb_uv_ratio_sub_tags), NULL
6237     },
6238     [CALIB_SENSOR_MFNR_AWB_UV_RATIO_NAME_TAG_ID]         =
6239     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
6240         check_tags_array_ignore, NULL
6241     },
6242     [CALIB_SENSOR_MFNR_AWB_UV_RATIO_RATIO_TAG_ID]         =
6243     {   "ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6244         check_tags_array_ignore, NULL
6245     },
6246 
6247     [CALIB_SENSOR_MFNR_MODE_CELL_TAG_ID]         =
6248     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
6249         check_tags_array_info(calib_sensor_mfnr_mode_cell_sub_tags), NULL
6250     },
6251     [CALIB_SENSOR_MFNR_MODE_NAME_TAG_ID]         =
6252     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
6253         check_tags_array_ignore, NULL
6254     },
6255     [CALIB_SENSOR_MFNR_DYNAMIC_TAG_ID]         =
6256     {   "Dynamic", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6257         check_tags_array_info(calib_sensor_MFNR_DynamicEN_sub_tags), NULL
6258     },
6259     [CALIB_SENSOR_MFNR_DYNAMIC_ENABLE_TAG_ID]         =
6260     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6261         check_tags_array_ignore, NULL
6262     },
6263     [CALIB_SENSOR_MFNR_DYNAMIC_LOWTH_ISO_TAG_ID]         =
6264     {   "LowTh_iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6265         check_tags_array_ignore, NULL
6266     },
6267     [CALIB_SENSOR_MFNR_DYNAMIC_LOWTH_TIME_TAG_ID]         =
6268     {   "LowTh_time", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6269         check_tags_array_ignore, NULL
6270     },
6271     [CALIB_SENSOR_MFNR_DYNAMIC_HIGHTH_ISO_TAG_ID]         =
6272     {   "HighTh_iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6273         check_tags_array_ignore, NULL
6274     },
6275     [CALIB_SENSOR_MFNR_DYNAMIC_HIGHTH_TIME_TAG_ID]         =
6276     {   "HighTh_time", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6277         check_tags_array_ignore, NULL
6278     },
6279     [CALIB_SENSOR_MFNR_SETTING_TAG_ID]         =
6280     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
6281         check_tags_array_info(calib_sensor_MFNR_Setting_sub_tags), NULL
6282     },
6283     [CALIB_SENSOR_MFNR_SETTING_SNR_MODE_TAG_ID]         =
6284     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6285         check_tags_array_ignore, NULL
6286     },
6287     [CALIB_SENSOR_MFNR_SETTING_SENSOR_MODE_TAG_ID]         =
6288     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6289         check_tags_array_ignore, NULL
6290     },
6291     [CALIB_SENSOR_MFNR_ISO_TAG_ID]         =
6292     {   "MFNR_ISO", CALIB_TAG_TYPE_CELL, {-1, -1},
6293         check_tags_array_info(calib_sensor_MFNR_ISO_sub_tags), NULL
6294     },
6295     [CALIB_SENSOR_MFNR_ISO_ISO_TAG_ID]         =
6296     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6297         check_tags_array_ignore, NULL
6298     },
6299     [CALIB_SENSOR_MFNR_ISO_WEIGHT_LIMIT_Y_TAG_ID]         =
6300     {   "weight_limit_y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6301         check_tags_array_ignore, NULL
6302     },
6303     [CALIB_SENSOR_MFNR_ISO_WEIGHT_LIMIT_UV_TAG_ID]         =
6304     {   "weight_limit_uv", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6305         check_tags_array_ignore, NULL
6306     },
6307     [CALIB_SENSOR_MFNR_ISO_RATIO_FRQ_TAG_ID]         =
6308     {   "ratio_frq", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6309         check_tags_array_ignore, NULL
6310     },
6311     [CALIB_SENSOR_MFNR_ISO_LUMA_W_IN_CHROMA_TAG_ID]         =
6312     {   "luma_w_in_chroma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6313         check_tags_array_ignore, NULL
6314     },
6315     [CALIB_SENSOR_MFNR_ISO_NOISE_CURVE_TAG_ID]         =
6316     {   "noise_curve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6317         check_tags_array_ignore, NULL
6318     },
6319     [CALIB_SENSOR_MFNR_ISO_NOISE_CURVE_X00_TAG_ID]         =
6320     {   "noise_curve_x00", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6321         check_tags_array_ignore, NULL
6322     },
6323     [CALIB_SENSOR_MFNR_ISO_Y_LO_NOISEPROFILE_TAG_ID]         =
6324     {   "y_lo_noiseprofile", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6325         check_tags_array_ignore, NULL
6326     },
6327     [CALIB_SENSOR_MFNR_ISO_Y_HI_NOISEPROFILE_TAG_ID]         =
6328     {   "y_hi_noiseprofile", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6329         check_tags_array_ignore, NULL
6330     },
6331     [CALIB_SENSOR_MFNR_ISO_Y_LO_DENOISEWEIGHT_TAG_ID]         =
6332     {   "y_lo_denoiseweight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6333         check_tags_array_ignore, NULL
6334     },
6335     [CALIB_SENSOR_MFNR_ISO_Y_HI_DENOISEWEIGHT_TAG_ID]         =
6336     {   "y_hi_denoiseweight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6337         check_tags_array_ignore, NULL
6338     },
6339     [CALIB_SENSOR_MFNR_ISO_Y_LO_BFSCALE_TAG_ID]         =
6340     {   "y_lo_bfscale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6341         check_tags_array_ignore, NULL
6342     },
6343     [CALIB_SENSOR_MFNR_ISO_Y_HI_BFSCALE_TAG_ID]         =
6344     {   "y_hi_bfscale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6345         check_tags_array_ignore, NULL
6346     },
6347     [CALIB_SENSOR_MFNR_ISO_Y_LUMANRPOINT_TAG_ID]         =
6348     {   "y_lumanrpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6349         check_tags_array_ignore, NULL
6350     },
6351     [CALIB_SENSOR_MFNR_ISO_Y_LUMANRCURVE_TAG_ID]         =
6352     {   "y_lumanrcurve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6353         check_tags_array_ignore, NULL
6354     },
6355     [CALIB_SENSOR_MFNR_ISO_Y_DENOISESTRENGTH_TAG_ID]         =
6356     {   "y_denoisestrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6357         check_tags_array_ignore, NULL
6358     },
6359     [CALIB_SENSOR_MFNR_ISO_Y_LO_LVL0_GFDELTA_TAG_ID]         =
6360     {   "y_lo_lvl0_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6361         check_tags_array_ignore, NULL
6362     },
6363     [CALIB_SENSOR_MFNR_ISO_Y_HI_LVL0_GFDELTA_TAG_ID]         =
6364     {   "y_hi_lvl0_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6365         check_tags_array_ignore, NULL
6366     },
6367     [CALIB_SENSOR_MFNR_ISO_Y_LO_LVL1_GFDELTA_TAG_ID]         =
6368     {   "y_lo_lvl1_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6369         check_tags_array_ignore, NULL
6370     },
6371     [CALIB_SENSOR_MFNR_ISO_Y_HI_LVL1_GFDELTA_TAG_ID]         =
6372     {   "y_hi_lvl1_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6373         check_tags_array_ignore, NULL
6374     },
6375     [CALIB_SENSOR_MFNR_ISO_Y_LO_LVL2_GFDELTA_TAG_ID]         =
6376     {   "y_lo_lvl2_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6377         check_tags_array_ignore, NULL
6378     },
6379     [CALIB_SENSOR_MFNR_ISO_Y_HI_LVL2_GFDELTA_TAG_ID]         =
6380     {   "y_hi_lvl2_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6381         check_tags_array_ignore, NULL
6382     },
6383     [CALIB_SENSOR_MFNR_ISO_Y_LO_LVL3_GFDELTA_TAG_ID]         =
6384     {   "y_lo_lvl3_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6385         check_tags_array_ignore, NULL
6386     },
6387     [CALIB_SENSOR_MFNR_ISO_Y_HI_LVL3_GFDELTA_TAG_ID]         =
6388     {   "y_hi_lvl3_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6389         check_tags_array_ignore, NULL
6390     },
6391     [CALIB_SENSOR_MFNR_ISO_UV_LO_NOISEPROFILE_TAG_ID]         =
6392     {   "uv_lo_noiseprofile", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6393         check_tags_array_ignore, NULL
6394     },
6395     [CALIB_SENSOR_MFNR_ISO_UV_HI_NOISEPROFILE_TAG_ID]         =
6396     {   "uv_hi_noiseprofile", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6397         check_tags_array_ignore, NULL
6398     },
6399     [CALIB_SENSOR_MFNR_ISO_UV_LO_DENOISEWEIGHT_TAG_ID]         =
6400     {   "uv_lo_denoiseweight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6401         check_tags_array_ignore, NULL
6402     },
6403 
6404     [CALIB_SENSOR_MFNR_ISO_UV_HI_DENOISEWEIGHT_TAG_ID]         =
6405     {   "uv_hi_denoiseweight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6406         check_tags_array_ignore, NULL
6407     },
6408     [CALIB_SENSOR_MFNR_ISO_UV_LO_BFSCALE_TAG_ID]         =
6409     {   "uv_lo_bfscale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6410         check_tags_array_ignore, NULL
6411     },
6412     [CALIB_SENSOR_MFNR_ISO_UV_HI_BFSCALE_TAG_ID]         =
6413     {   "uv_hi_bfscale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6414         check_tags_array_ignore, NULL
6415     },
6416     [CALIB_SENSOR_MFNR_ISO_UV_LUMANRPOINT_TAG_ID]         =
6417     {   "uv_lumanrpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6418         check_tags_array_ignore, NULL
6419     },
6420     [CALIB_SENSOR_MFNR_ISO_UV_LUMANRCURVE_TAG_ID]         =
6421     {   "uv_lumanrcurve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6422         check_tags_array_ignore, NULL
6423     },
6424     [CALIB_SENSOR_MFNR_ISO_UV_DENOISESTRENGTH_TAG_ID]         =
6425     {   "uv_denoisestrength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6426         check_tags_array_ignore, NULL
6427     },
6428     [CALIB_SENSOR_MFNR_ISO_UV_LO_LVL0_GFDELTA_TAG_ID]         =
6429     {   "uv_lo_lvl0_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6430         check_tags_array_ignore, NULL
6431     },
6432     [CALIB_SENSOR_MFNR_ISO_UV_HI_LVL0_GFDELTA_TAG_ID]         =
6433     {   "uv_hi_lvl0_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6434         check_tags_array_ignore, NULL
6435     },
6436     [CALIB_SENSOR_MFNR_ISO_UV_LO_LVL1_GFDELTA_TAG_ID]         =
6437     {   "uv_lo_lvl1_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6438         check_tags_array_ignore, NULL
6439     },
6440     [CALIB_SENSOR_MFNR_ISO_UV_HI_LVL1_GFDELTA_TAG_ID]         =
6441     {   "uv_hi_lvl1_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6442         check_tags_array_ignore, NULL
6443     },
6444     [CALIB_SENSOR_MFNR_ISO_UV_LO_LVL2_GFDELTA_TAG_ID]         =
6445     {   "uv_lo_lvl2_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6446         check_tags_array_ignore, NULL
6447     },
6448     [CALIB_SENSOR_MFNR_ISO_UV_HI_LVL2_GFDELTA_TAG_ID]         =
6449     {   "uv_hi_lvl2_gfdelta", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6450         check_tags_array_ignore, NULL
6451     },
6452     [CALIB_SENSOR_MFNR_ISO_LVL0_GFSIGMA_TAG_ID]         =
6453     {   "lvl0_gfsigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6454         check_tags_array_ignore, NULL
6455     },
6456     [CALIB_SENSOR_MFNR_ISO_LVL1_GFSIGMA_TAG_ID]         =
6457     {   "lvl1_gfsigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6458         check_tags_array_ignore, NULL
6459     },
6460     [CALIB_SENSOR_MFNR_ISO_LVL2_GFSIGMA_TAG_ID]         =
6461     {   "lvl2_gfsigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6462         check_tags_array_ignore, NULL
6463     },
6464     [CALIB_SENSOR_MFNR_ISO_LVL3_GFSIGMA_TAG_ID]         =
6465     {   "lvl3_gfsigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6466         check_tags_array_ignore, NULL
6467     },
6468 
6469 
6470     //mfnr motion detect
6471     [CALIB_SENSOR_MFNR_MOTION_DETECTION_TAG_ID]         =
6472     {   "motion_detection", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6473         check_tags_array_info(calib_sensor_MFNR_motion_detection_sub_tags), NULL
6474     },
6475     [CALIB_SENSOR_MFNR_MOTION_DETECTION_ENABLE_TAG_ID]         =
6476     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6477         check_tags_array_ignore, NULL
6478     },
6479     [CALIB_SENSOR_MFNR_MOTION_DETECTION_ISO_TAG_ID]         =
6480     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6481         check_tags_array_ignore, NULL
6482     },
6483     [CALIB_SENSOR_MFNR_MOTION_DETECTION_SIGMAHSCALE_TAG_ID]         =
6484     {   "sigmaHScale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6485         check_tags_array_ignore, NULL
6486     },
6487     [CALIB_SENSOR_MFNR_MOTION_DETECTION_SIGMALSCALE_TAG_ID]         =
6488     {   "sigmaLScale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6489         check_tags_array_ignore, NULL
6490     },
6491     [CALIB_SENSOR_MFNR_MOTION_DETECTION_LIGHT_CLP_TAG_ID]         =
6492     {   "light_clp", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6493         check_tags_array_ignore, NULL
6494     },
6495     [CALIB_SENSOR_MFNR_MOTION_DETECTION_UV_WEIGHT_TAG_ID]         =
6496     {   "uv_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6497         check_tags_array_ignore, NULL
6498     },
6499     [CALIB_SENSOR_MFNR_MOTION_DETECTION_MFNR_SIGMA_SCALE_TAG_ID]         =
6500     {   "mfnr_sigma_scale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6501         check_tags_array_ignore, NULL
6502     },
6503     [CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE0_TAG_ID]         =
6504     {   "yuvnr_gain_scale0", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6505         check_tags_array_ignore, NULL
6506     },
6507     [CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE1_TAG_ID]         =
6508     {   "yuvnr_gain_scale1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6509         check_tags_array_ignore, NULL
6510     },
6511     [CALIB_SENSOR_MFNR_MOTION_DETECTION_YUVNR_GAIN_SCALE2_TAG_ID]         =
6512     {   "yuvnr_gain_scale2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6513         check_tags_array_ignore, NULL
6514     },
6515     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED0_TAG_ID]         =
6516     {   "reserved0", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6517         check_tags_array_ignore, NULL
6518     },
6519     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED1_TAG_ID]         =
6520     {   "reserved1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6521         check_tags_array_ignore, NULL
6522     },
6523     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED2_TAG_ID]         =
6524     {   "reserved2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6525         check_tags_array_ignore, NULL
6526     },
6527     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED3_TAG_ID]         =
6528     {   "reserved3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6529         check_tags_array_ignore, NULL
6530     },
6531     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED4_TAG_ID]         =
6532     {   "reserved4", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6533         check_tags_array_ignore, NULL
6534     },
6535     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED5_TAG_ID]         =
6536     {   "reserved5", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6537         check_tags_array_ignore, NULL
6538     },
6539     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED6_TAG_ID]         =
6540     {   "reserved6", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6541         check_tags_array_ignore, NULL
6542     },
6543     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED7_TAG_ID]         =
6544     {   "reserved7", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6545         check_tags_array_ignore, NULL
6546     },
6547     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED8_TAG_ID]         =
6548     {   "reserved8", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6549         check_tags_array_ignore, NULL
6550     },
6551     [CALIB_SENSOR_MFNR_MOTION_DETECTION_RESERVED9_TAG_ID]         =
6552     {   "reserved9", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6553         check_tags_array_ignore, NULL
6554     },
6555     [CALIB_SENSOR_MFNR_MOTION_DETECTION_FRAME_LIMIT_Y_TAG_ID]         =
6556     {   "frame_limit_y", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6557         check_tags_array_ignore, NULL
6558     },
6559     [CALIB_SENSOR_MFNR_MOTION_DETECTION_FRAME_LIMIT_UV_TAG_ID]         =
6560     {   "frame_limit_uv", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6561         check_tags_array_ignore, NULL
6562     },
6563 
6564     // Sensor SHARP
6565     [CALIB_SENSOR_SHARP_TAG_ID]         =
6566     {   "SHARP", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6567         check_tags_array_info(calib_sensor_sharp_sub_tags), NULL
6568     },
6569     [CALIB_SENSOR_SHARP_ENABLE_TAG_ID]         =
6570     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6571         check_tags_array_ignore, NULL
6572     },
6573     [CALIB_SENSOR_SHARP_VERSION_TAG_ID]         =
6574     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
6575         check_tags_array_ignore, NULL
6576     },
6577     [CALIB_SENSOR_SHARP_LUMA_POINT_TAG_ID]         =
6578     {   "luma_point", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6579         check_tags_array_ignore, NULL
6580     },
6581     [CALIB_SENSOR_SHARP_MODE_CELL_TAG_ID]         =
6582     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
6583         check_tags_array_info(calib_sensor_sharp_mode_cell_sub_tags), NULL
6584     },
6585     [CALIB_SENSOR_SHARP_MODE_NAME_TAG_ID]         =
6586     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
6587         check_tags_array_ignore, NULL
6588     },
6589     [CALIB_SENSOR_SHARP_SETTING_TAG_ID]         =
6590     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
6591         check_tags_array_info(calib_sensor_SHARP_Setting_sub_tags), NULL
6592     },
6593     [CALIB_SENSOR_SHARP_SETTING_SNR_MODE_TAG_ID]         =
6594     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6595         check_tags_array_ignore, NULL
6596     },
6597     [CALIB_SENSOR_SHARP_SETTING_SENSOR_MODE_TAG_ID]         =
6598     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6599         check_tags_array_ignore, NULL
6600     },
6601     [CALIB_SENSOR_SHARP_SHARP_ISO_TAG_ID]         =
6602     {   "SHARP_ISO", CALIB_TAG_TYPE_CELL, {-1, -1},
6603         check_tags_array_info(calib_sensor_SHARP_ISO_sub_tags), NULL
6604     },
6605     [CALIB_SENSOR_SHARP_SHARP_ISO_ISO_TAG_ID]         =
6606     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6607         check_tags_array_ignore, NULL
6608     },
6609     [CALIB_SENSOR_SHARP_SHARP_ISO_HRATIO_TAG_ID]         =
6610     {   "hratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6611         check_tags_array_ignore, NULL
6612     },
6613     [CALIB_SENSOR_SHARP_SHARP_ISO_LRATIO_TAG_ID]         =
6614     {   "lratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6615         check_tags_array_ignore, NULL
6616     },
6617     [CALIB_SENSOR_SHARP_SHARP_ISO_MF_SHARP_RATIO_TAG_ID]         =
6618     {   "mf_sharp_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6619         check_tags_array_ignore, NULL
6620     },
6621     [CALIB_SENSOR_SHARP_SHARP_ISO_HF_SHARP_RATIO_TAG_ID]         =
6622     {   "hf_sharp_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6623         check_tags_array_ignore, NULL
6624     },
6625     [CALIB_SENSOR_SHARP_SHARP_ISO_LUMA_SIGMA_TAG_ID]         =
6626     {   "luma_sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6627         check_tags_array_ignore, NULL
6628     },
6629     [CALIB_SENSOR_SHARP_SHARP_ISO_PBF_GAIN_TAG_ID]         =
6630     {   "pbf_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6631         check_tags_array_ignore, NULL
6632     },
6633     [CALIB_SENSOR_SHARP_SHARP_ISO_PBF_RATIO_TAG_ID]         =
6634     {   "pbf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6635         check_tags_array_ignore, NULL
6636     },
6637     [CALIB_SENSOR_SHARP_SHARP_ISO_PBF_ADD_TAG_ID]         =
6638     {   "pbf_add", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6639         check_tags_array_ignore, NULL
6640     },
6641     [CALIB_SENSOR_SHARP_SHARP_ISO_MF_CLIP_POS_TAG_ID]         =
6642     {   "mf_clip_pos", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6643         check_tags_array_ignore, NULL
6644     },
6645     [CALIB_SENSOR_SHARP_SHARP_ISO_MF_CLIP_NEG_TAG_ID]         =
6646     {   "mf_clip_neg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6647         check_tags_array_ignore, NULL
6648     },
6649     [CALIB_SENSOR_SHARP_SHARP_ISO_HF_CLIP_TAG_ID]         =
6650     {   "hf_clip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6651         check_tags_array_ignore, NULL
6652     },
6653     [CALIB_SENSOR_SHARP_SHARP_ISO_MBF_GAIN_TAG_ID]         =
6654     {   "mbf_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6655         check_tags_array_ignore, NULL
6656     },
6657     [CALIB_SENSOR_SHARP_SHARP_ISO_HBF_GAIN_TAG_ID]         =
6658     {   "hbf_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6659         check_tags_array_ignore, NULL
6660     },
6661     [CALIB_SENSOR_SHARP_SHARP_ISO_HBF_RATIO_TAG_ID]         =
6662     {   "hbf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6663         check_tags_array_ignore, NULL
6664     },
6665     [CALIB_SENSOR_SHARP_SHARP_ISO_MBF_ADD_TAG_ID]         =
6666     {   "mbf_add", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6667         check_tags_array_ignore, NULL
6668     },
6669     [CALIB_SENSOR_SHARP_SHARP_ISO_HBF_ADD_TAG_ID]         =
6670     {   "hbf_add", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6671         check_tags_array_ignore, NULL
6672     },
6673     [CALIB_SENSOR_SHARP_SHARP_ISO_LOCAL_SHARP_STRENGTH_TAG_ID]         =
6674     {   "local_sharp_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6675         check_tags_array_ignore, NULL
6676     },
6677     [CALIB_SENSOR_SHARP_SHARP_GAUSS_LUMA_COEFF_TAG_ID]         =
6678     {   "gauss_luma_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6679         check_tags_array_ignore, NULL
6680     },
6681     [CALIB_SENSOR_SHARP_SHARP_MBF_COEFF_TAG_ID]         =
6682     {   "mbf_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6683         check_tags_array_ignore, NULL
6684     },
6685 #if 1
6686     [CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_TAG_ID]         =
6687     {   "pbf_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6688         check_tags_array_ignore, NULL
6689     },
6690     [CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_TAG_ID]         =
6691     {   "rf_m_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6692         check_tags_array_ignore, NULL
6693     },
6694 
6695     [CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_TAG_ID]         =
6696     {   "rf_h_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6697         check_tags_array_ignore, NULL
6698     },
6699     [CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_TAG_ID]         =
6700     {   "hbf_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6701         check_tags_array_ignore, NULL
6702     },
6703 #endif
6704     //add sharp coeff v2
6705     [CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_L_TAG_ID]         =
6706     {   "pbf_coeff_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6707         check_tags_array_ignore, NULL
6708     },
6709     [CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_H_TAG_ID]         =
6710     {   "pbf_coeff_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6711         check_tags_array_ignore, NULL
6712     },
6713     [CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_L_TAG_ID]         =
6714     {   "rf_m_coeff_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6715         check_tags_array_ignore, NULL
6716     },
6717     [CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_H_TAG_ID]         =
6718     {   "rf_m_coeff_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6719         check_tags_array_ignore, NULL
6720     },
6721     [CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_L_TAG_ID]         =
6722     {   "rf_h_coeff_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6723         check_tags_array_ignore, NULL
6724     },
6725     [CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_H_TAG_ID]         =
6726     {   "rf_h_coeff_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6727         check_tags_array_ignore, NULL
6728     },
6729     [CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_L_TAG_ID]         =
6730     {   "hbf_coeff_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6731         check_tags_array_ignore, NULL
6732     },
6733     [CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_H_TAG_ID]         =
6734     {   "hbf_coeff_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6735         check_tags_array_ignore, NULL
6736     },
6737     [CALIB_SENSOR_SHARP_SHARP_PBF_COEFF_PERCENT_TAG_ID]         =
6738     {   "pbf_coeff_percent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6739         check_tags_array_ignore, NULL
6740     },
6741     [CALIB_SENSOR_SHARP_SHARP_RF_M_COEFF_PERCENT_TAG_ID]         =
6742     {   "rf_m_coeff_Percent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6743         check_tags_array_ignore, NULL
6744     },
6745     [CALIB_SENSOR_SHARP_SHARP_RF_H_COEFF_PERCENT_TAG_ID]         =
6746     {   "rf_h_coeff_percent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6747         check_tags_array_ignore, NULL
6748     },
6749     [CALIB_SENSOR_SHARP_SHARP_HBF_COEFF_PERCENT_TAG_ID]         =
6750     {   "hbf_coeff_percent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6751         check_tags_array_ignore, NULL
6752     },
6753 
6754     // Sensor EDGEFILTER
6755     [CALIB_SENSOR_EDGEFILTER_TAG_ID]         =
6756     {   "EDGEFILTER", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6757         check_tags_array_info(calib_sensor_edgefilter_sub_tags), NULL
6758     },
6759     [CALIB_SENSOR_EDGEFILTER_ENABLE_TAG_ID]         =
6760     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6761         check_tags_array_ignore, NULL
6762     },
6763     [CALIB_SENSOR_EDGEFILTER_VERSION_TAG_ID]         =
6764     {   "Version", CALIB_TAG_TYPE_CHAR, {-1, -1},
6765         check_tags_array_ignore, NULL
6766     },
6767     [CALIB_SENSOR_EDGEFILTER_LUMA_POINT_TAG_ID]         =
6768     {   "luma_point", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6769         check_tags_array_ignore, NULL
6770     },
6771     [CALIB_SENSOR_EDGEFILTER_MODE_CELL_TAG_ID]         =
6772     {   "Mode", CALIB_TAG_TYPE_CELL, {-1, -1},
6773         check_tags_array_info(
6774             calib_sensor_edgefilter_mode_cell_sub_tags), NULL
6775     },
6776     [CALIB_SENSOR_EDGEFILTER_MODE_NAME_TAG_ID]         =
6777     {   "Name", CALIB_TAG_TYPE_CHAR, {-1, -1},
6778         check_tags_array_ignore, NULL
6779     },
6780     [CALIB_SENSOR_EDGEFILTER_SETTING_TAG_ID]         =
6781     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
6782         check_tags_array_info(
6783             calib_sensor_EDGEFILTER_Setting_sub_tags), NULL
6784     },
6785     [CALIB_SENSOR_EDGEFILTER_SETTING_SNR_MODE_TAG_ID]         =
6786     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6787         check_tags_array_ignore, NULL
6788     },
6789     [CALIB_SENSOR_EDGEFILTER_SETTING_SENSOR_MODE_TAG_ID]         =
6790     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
6791         check_tags_array_ignore, NULL
6792     },
6793     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_TAG_ID]         =
6794     {   "EDGEFILTER_ISO", CALIB_TAG_TYPE_CELL, {-1, -1},
6795         check_tags_array_info(
6796             calib_sensor_EDGEFILTER_ISO_sub_tags), NULL
6797     },
6798     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_ISO_TAG_ID]         =
6799     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6800         check_tags_array_ignore, NULL
6801     },
6802     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_EDGE_THED_TAG_ID]         =
6803     {   "edge_thed", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6804         check_tags_array_ignore, NULL
6805     },
6806     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_SRC_WGT_TAG_ID]         =
6807     {   "src_wgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6808         check_tags_array_ignore, NULL
6809     },
6810     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_ALPHA_ADP_EN_TAG_ID]         =
6811     {   "alpha_adp_en", CALIB_TAG_TYPE_CHAR, {-1, -1},
6812         check_tags_array_ignore, NULL
6813     },
6814     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_LOCAL_ALPHA_TAG_ID]         =
6815     {   "local_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6816         check_tags_array_ignore, NULL
6817     },
6818     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_GLOBAL_ALPHA_TAG_ID]         =
6819     {   "global_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6820         check_tags_array_ignore, NULL
6821     },
6822     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_NOISE_CLIP_TAG_ID]         =
6823     {   "noise_clip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6824         check_tags_array_ignore, NULL
6825     },
6826     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_CLIP_POS_TAG_ID]         =
6827     {   "dog_clip_pos", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6828         check_tags_array_ignore, NULL
6829     },
6830     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_CLIP_NEG_TAG_ID]         =
6831     {   "dog_clip_neg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6832         check_tags_array_ignore, NULL
6833     },
6834     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_ALPHA_TAG_ID]         =
6835     {   "dog_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6836         check_tags_array_ignore, NULL
6837     },
6838     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DIRECT_FILTER_COEFF_TAG_ID]         =
6839     {   "direct_filter_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6840         check_tags_array_ignore, NULL
6841     },
6842 #if 1
6843     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW0_TAG_ID]         =
6844     {   "dog_kernel_row0", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6845         check_tags_array_ignore, NULL
6846     },
6847     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW1_TAG_ID]         =
6848     {   "dog_kernel_row1", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6849         check_tags_array_ignore, NULL
6850     },
6851     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW2_TAG_ID]         =
6852     {   "dog_kernel_row2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6853         check_tags_array_ignore, NULL
6854     },
6855     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW3_TAG_ID]         =
6856     {   "dog_kernel_row3", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6857         check_tags_array_ignore, NULL
6858     },
6859     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_ROW4_TAG_ID]         =
6860     {   "dog_kernel_row4", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6861         check_tags_array_ignore, NULL
6862     },
6863 #endif
6864     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_L_TAG_ID]         =
6865     {   "dog_kernel_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6866         check_tags_array_ignore, NULL
6867     },
6868     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_H_TAG_ID]         =
6869     {   "dog_kernel_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6870         check_tags_array_ignore, NULL
6871     },
6872     [CALIB_SENSOR_EDGEFILTER_EDGEFILTER_ISO_DOG_KERNEL_PERCENT_TAG_ID]         =
6873     {   "dog_kernel_percent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6874         check_tags_array_ignore, NULL
6875     },
6876 
6877     // Sensor DEHAZE
6878     [CALIB_SENSOR_DEHAZE_TAG_ID]         =
6879     {   "DEHAZE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6880         check_tags_array_info(calib_sensor_dehaze_sub_tags), NULL
6881     },
6882     [CALIB_SENSOR_DEHAZE_CALIBPARA_V20_TAG_ID]         =
6883     {   "CalibParaV20", CALIB_TAG_TYPE_CELL, {-1, -1},
6884         check_tags_array_info(calib_sensor_dehaze_CalibParaV20_sub_tags), NULL
6885     },
6886     [CALIB_SENSOR_DEHAZE_CALIBPARA_V21_TAG_ID]         =
6887     {   "CalibParaV21", CALIB_TAG_TYPE_CELL, {-1, -1},
6888         check_tags_array_info(calib_sensor_dehaze_CalibParaV21_sub_tags), NULL
6889     },
6890     [CALIB_SENSOR_DEHAZE_TUNINGPARA_V20_TAG_ID]         =
6891     {   "TuningParaV20", CALIB_TAG_TYPE_CELL, {-1, -1},
6892         check_tags_array_info(calib_sensor_dehaze_TuningParaV20_sub_tags), NULL
6893     },
6894     [CALIB_SENSOR_DEHAZE_TUNINGPARA_V21_TAG_ID]         =
6895     {   "TuningParaV21", CALIB_TAG_TYPE_CELL, {-1, -1},
6896         check_tags_array_info(calib_sensor_dehaze_TuningParaV21_sub_tags), NULL
6897     },
6898     [CALIB_SENSOR_DEHAZE_SCENE_TAG_ID]         =
6899     {   "scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
6900         check_tags_array_ignore, NULL
6901     },
6902     [CALIB_SENSOR_DEHAZE_EN_TAG_ID]         =
6903     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6904         check_tags_array_ignore, NULL
6905     },
6906     [CALIB_SENSOR_DEHAZE_CFG_ALPHA_TAG_ID]         =
6907     {   "cfg_alpha", CALIB_TAG_TYPE_DOUBLE, {1, 1},
6908         check_tags_array_ignore, NULL
6909     },
6910     [CALIB_SENSOR_DEHAZE_SETTING_TAG_ID]         =
6911     {   "Dehaze_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
6912         check_tags_array_info(calib_sensor_Dehaze_Setting_sub_tags), NULL
6913     },
6914     [CALIB_SENSOR_DEHAZE_SETTING_EN_TAG_ID]         =
6915     {   "Dehaze_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6916         check_tags_array_ignore, NULL
6917     },
6918     [CALIB_SENSOR_DEHAZE_SETTING_ISO_TAG_ID]         =
6919     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6920         check_tags_array_ignore, NULL
6921     },
6922     [CALIB_SENSOR_DEHAZE_SETTING_DC_MIN_TH_TAG_ID]         =
6923     {   "dc_min_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6924         check_tags_array_ignore, NULL
6925     },
6926     [CALIB_SENSOR_DEHAZE_SETTING_DC_MAX_TH_TAG_ID]         =
6927     {   "dc_max_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6928         check_tags_array_ignore, NULL
6929     },
6930     [CALIB_SENSOR_DEHAZE_SETTING_YHIST_TH_TAG_ID]         =
6931     {   "yhist_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6932         check_tags_array_ignore, NULL
6933     },
6934     [CALIB_SENSOR_DEHAZE_SETTING_YBLK_TH_TAG_ID]         =
6935     {   "yblk_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6936         check_tags_array_ignore, NULL
6937     },
6938     [CALIB_SENSOR_DEHAZE_SETTING_DARK_TH_TAG_ID]         =
6939     {   "dark_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6940         check_tags_array_ignore, NULL
6941     },
6942     [CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MIN_TAG_ID]         =
6943     {   "bright_min", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6944         check_tags_array_ignore, NULL
6945     },
6946     [CALIB_SENSOR_DEHAZE_SETTING_BRIGHT_MAX_TAG_ID]         =
6947     {   "bright_max", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6948         check_tags_array_ignore, NULL
6949     },
6950     [CALIB_SENSOR_DEHAZE_SETTING_WT_MAX_TAG_ID]         =
6951     {   "wt_max", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6952         check_tags_array_ignore, NULL
6953     },
6954     [CALIB_SENSOR_DEHAZE_SETTING_AIR_MIN_TAG_ID]         =
6955     {   "air_min", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6956         check_tags_array_ignore, NULL
6957     },
6958     [CALIB_SENSOR_DEHAZE_SETTING_AIR_MAX_TAG_ID]         =
6959     {   "air_max", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6960         check_tags_array_ignore, NULL
6961     },
6962     [CALIB_SENSOR_DEHAZE_SETTING_TMAX_BASE_TAG_ID]         =
6963     {   "tmax_base", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6964         check_tags_array_ignore, NULL
6965     },
6966     [CALIB_SENSOR_DEHAZE_SETTING_TMAX_OFF_TAG_ID]         =
6967     {   "tmax_off", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6968         check_tags_array_ignore, NULL
6969     },
6970     [CALIB_SENSOR_DEHAZE_SETTING_TMAX_MAX_TAG_ID]         =
6971     {   "tmax_max", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6972         check_tags_array_ignore, NULL
6973     },
6974     [CALIB_SENSOR_DEHAZE_SETTING_CFG_WT_TAG_ID]         =
6975     {   "cfg_wt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6976         check_tags_array_ignore, NULL
6977     },
6978     [CALIB_SENSOR_DEHAZE_SETTING_CFG_AIR_TAG_ID]         =
6979     {   "cfg_air", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6980         check_tags_array_ignore, NULL
6981     },
6982     [CALIB_SENSOR_DEHAZE_SETTING_CFG_TMAX_TAG_ID]         =
6983     {   "cfg_tmax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6984         check_tags_array_ignore, NULL
6985     },
6986     [CALIB_SENSOR_DEHAZE_SETTING_DC_THED_TAG_ID]         =
6987     {   "dc_thed", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6988         check_tags_array_ignore, NULL
6989     },
6990     [CALIB_SENSOR_DEHAZE_SETTING_DC_WEITCUR_TAG_ID]         =
6991     {   "dc_weitcur", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6992         check_tags_array_ignore, NULL
6993     },
6994     [CALIB_SENSOR_DEHAZE_SETTING_AIR_THED_TAG_ID]         =
6995     {   "air_thed", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
6996         check_tags_array_ignore, NULL
6997     },
6998     [CALIB_SENSOR_DEHAZE_SETTING_AIR_WEITCUR_TAG_ID]         =
6999     {   "air_weitcur", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7000         check_tags_array_ignore, NULL
7001     },
7002     [CALIB_SENSOR_IIR_SETTING_STAB_FNUM_TAG_ID]         =
7003     {   "stab_fnum", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7004         check_tags_array_ignore, NULL
7005     },
7006     [CALIB_SENSOR_IIR_SETTING_SIGMA_TAG_ID]         =
7007     {   "sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7008         check_tags_array_ignore, NULL
7009     },
7010     [CALIB_SENSOR_IIR_SETTING_WT_SIGMA_TAG_ID]         =
7011     {   "wt_sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7012         check_tags_array_ignore, NULL
7013     },
7014     [CALIB_SENSOR_IIR_SETTING_AIR_SIGMA_TAG_ID]         =
7015     {   "air_sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7016         check_tags_array_ignore, NULL
7017     },
7018     [CALIB_SENSOR_IIR_SETTING_TMAX_SIGMA_TAG_ID]         =
7019     {   "tmax_sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7020         check_tags_array_ignore, NULL
7021     },
7022     [CALIB_SENSOR_ENHANCE_SETTING_TAG_ID]        =
7023     {   "Enhance_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7024         check_tags_array_info(calib_sensor_Enhance_Setting_sub_tags), NULL
7025     },
7026     [CALIB_SENSOR_ENHANCE_SETTING_EN_TAG_ID]         =
7027     {   "Enhance_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7028         check_tags_array_ignore, NULL
7029     },
7030     [CALIB_SENSOR_ENHANCE_SETTING_ISO_TAG_ID]         =
7031     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7032         check_tags_array_ignore, NULL
7033     },
7034     [CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_VALUE_TAG_ID]         =
7035     {   "enhance_value", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7036         check_tags_array_ignore, NULL
7037     },
7038     [CALIB_SENSOR_HIST_SETTING_TAG_ID]         =
7039     {   "Hist_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7040         check_tags_array_info(calib_sensor_Hist_Setting_sub_tags), NULL
7041     },
7042     [CALIB_SENSOR_HIST_SETTING_EN_TAG_ID]         =
7043     {   "Hist_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7044         check_tags_array_ignore, NULL
7045     },
7046     [CALIB_SENSOR_HIST_SETTING_ISO_TAG_ID]         =
7047     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7048         check_tags_array_ignore, NULL
7049     },
7050     [CALIB_SENSOR_HIST_SETTING_HIST_CHANNEL_TAG_ID]         =
7051     {   "hist_channel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7052         check_tags_array_ignore, NULL
7053     },
7054     [CALIB_SENSOR_HIST_SETTING_HIST_PARA_EN_TAG_ID]         =
7055     {   "hist_para_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7056         check_tags_array_ignore, NULL
7057     },
7058     [CALIB_SENSOR_HIST_SETTING_HIST_GRATIO_TAG_ID]         =
7059     {   "hist_gratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7060         check_tags_array_ignore, NULL
7061     },
7062     [CALIB_SENSOR_HIST_SETTING_HIST_TH_OFF_TAG_ID]         =
7063     {   "hist_th_off", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7064         check_tags_array_ignore, NULL
7065     },
7066     [CALIB_SENSOR_HIST_SETTING_HIST_K_TAG_ID]         =
7067     {   "hist_k", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7068         check_tags_array_ignore, NULL
7069     },
7070     [CALIB_SENSOR_HIST_SETTING_HIST_MIN_TAG_ID]         =
7071     {   "hist_min", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7072         check_tags_array_ignore, NULL
7073     },
7074     [CALIB_SENSOR_HIST_SETTING_HIST_SCALE_TAG_ID]         =
7075     {   "hist_scale", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7076         check_tags_array_ignore, NULL
7077     },
7078     [CALIB_SENSOR_HIST_SETTING_CFG_GRATIO_TAG_ID]         =
7079     {   "cfg_gratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7080         check_tags_array_ignore, NULL
7081     },
7082 
7083     [CALIB_SENSOR_DEHAZE_V21_SETTING_TAG_ID]         =
7084     {   "Dehaze_V21_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7085         check_tags_array_info(calib_sensor_Dehaze_V21_Setting_sub_tags), NULL
7086     },
7087     [CALIB_SENSOR_DEHAZE_SETTING_AIR_LC_EN_TAG_ID]         =
7088     {   "air_lc_en", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7089         check_tags_array_ignore, NULL
7090     },
7091     [CALIB_SENSOR_IIR_SETTING_PRE_WET_TAG_ID]         =
7092     {   "pre_wet", CALIB_TAG_TYPE_DOUBLE, {1, 1},
7093         check_tags_array_ignore, NULL
7094     },
7095     [CALIB_SENSOR_DEHAZE_SETTING_BF_WEIGHT_TAG_ID]         =
7096     {   "bf_weight", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7097         check_tags_array_ignore, NULL
7098     },
7099     [CALIB_SENSOR_DEHAZE_SETTING_RANGE_SIGMA_TAG_ID]         =
7100     {   "range_sigma", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7101         check_tags_array_ignore, NULL
7102     },
7103     [CALIB_SENSOR_DEHAZE_SETTING_SPACE_SIGMA_PRE_TAG_ID]         =
7104     {   "space_sigma_pre", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7105         check_tags_array_ignore, NULL
7106     },
7107     [CALIB_SENSOR_DEHAZE_SETTING_SPACE_SIGMA_CUR_TAG_ID]         =
7108     {   "space_sigma_cur", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7109         check_tags_array_ignore, NULL
7110     },
7111     [CALIB_SENSOR_ENHANCE_V21_SETTING_TAG_ID]         =
7112     {   "Enhance_V21_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7113         check_tags_array_info(calib_sensor_Enhance_V21_Setting_sub_tags), NULL
7114     },
7115     [CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_CHROMA_TAG_ID]         =
7116     {   "enhance_chroma", CALIB_TAG_TYPE_DOUBLE, {1, 9},
7117         check_tags_array_ignore, NULL
7118     },
7119     [CALIB_SENSOR_ENHANCE_SETTING_ENHANCE_CURVE_TAG_ID]         =
7120     {   "enh_curve", CALIB_TAG_TYPE_DOUBLE, {1, 17},
7121         check_tags_array_ignore, NULL
7122     },
7123     [CALIB_SENSOR_HIST_V21_SETTING_TAG_ID]         =
7124     {   "Hist_V21_Setting", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7125         check_tags_array_info(calib_sensor_Hist_V21_Setting_sub_tags), NULL
7126     },
7127 
7128     // Sensor SENSORINFO
7129     [CALIB_SENSOR_SENSORINFO_TAG_ID]         =
7130     {   "SENSORINFO", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7131         check_tags_array_info(calib_sensor_sensorinfo_sub_tags), NULL
7132     },
7133     [CALIB_SENSOR_SENSORINFO_GAINRANGE_TAG_ID]         =
7134     {   "GainRange", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7135         check_tags_array_info(calib_sensor_sensorinfo_gainrange_sub_tags), NULL
7136     },
7137     [CALIB_SENSOR_SENSORINFO_GAINRANGE_ISLINEAR_TAG_ID]         =
7138     {   "IsLinear", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7139         check_tags_array_ignore, NULL
7140     },
7141     [CALIB_SENSOR_SENSORINFO_GAINRANGE_LINEAR_TAG_ID]         =
7142     {   "Linear", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7143         check_tags_array_ignore, NULL
7144     },
7145     [CALIB_SENSOR_SENSORINFO_GAINRANGE_NONLINEAR_TAG_ID]         =
7146     {   "NonLinear", CALIB_TAG_TYPE_CHAR, {-1, -1},
7147         check_tags_array_ignore, NULL
7148     },
7149     [CALIB_SENSOR_SENSORINFO_GAINRANGE_NONLINEAR_DB_TAG_ID]         =
7150     {   "DB_MODE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
7151         check_tags_array_ignore, NULL
7152     },
7153     [CALIB_SENSOR_SENSORINFO_TIMEFACTOR_TAG_ID]         =
7154     {   "TimeFactor", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7155         check_tags_array_ignore, NULL
7156     },
7157     [CALIB_SENSOR_SENSORINFO_CISLINTIMEREG_MAXFAC_TAG_ID]         =
7158     {   "CISLinTimeRegMaxFac", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7159         check_tags_array_ignore, NULL
7160     },
7161     [CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_SUMFAC_TAG_ID]         =
7162     {   "CISHdrTimeRegSumFac", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7163         check_tags_array_ignore, NULL
7164     },
7165     [CALIB_SENSOR_SENSORINFO_CISTIMEREG_ODEVITY_TAG_ID]         =
7166     {   "CISTimeRegOdevity", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7167         check_tags_array_ignore, NULL
7168     },
7169     [CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_ODEVITY_TAG_ID]         =
7170     {   "CISHdrTimeRegOdevity", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7171         check_tags_array_ignore, NULL
7172     },
7173     [CALIB_SENSOR_SENSORINFO_CISTIMEREG_MIN_TAG_ID]         =
7174     {   "CISTimeRegMin", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7175         check_tags_array_ignore, NULL
7176     },
7177     [CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_MIN_TAG_ID]         =
7178     {   "CISHdrTimeRegMin", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7179         check_tags_array_ignore, NULL
7180     },
7181     [CALIB_SENSOR_SENSORINFO_CISHDRTIMEREG_MAX_TAG_ID]         =
7182     {   "CISHdrTimeRegMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7183         check_tags_array_ignore, NULL
7184     },
7185     [CALIB_SENSOR_SENSORINFO_CISTIMEREG_UNEQUALEN_TAG_ID]         =
7186     {   "CISTimeRegUnEqualEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7187         check_tags_array_ignore, NULL
7188     },
7189     [CALIB_SENSOR_SENSORINFO_CISMINFPS_TAG_ID]         =
7190     {   "CISMinFps", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7191         check_tags_array_ignore, NULL
7192     },
7193     [CALIB_SENSOR_SENSORINFO_CISAGAIN_RANGE_TAG_ID]         =
7194     {   "CISAgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7195         check_tags_array_ignore, NULL
7196     },
7197     [CALIB_SENSOR_SENSORINFO_CISEXTRAAGAIN_RANGE_TAG_ID]         =
7198     {   "CISExtraAgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7199         check_tags_array_ignore, NULL
7200     },
7201     [CALIB_SENSOR_SENSORINFO_CISDGAIN_RANGE_TAG_ID]         =
7202     {   "CISDgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7203         check_tags_array_ignore, NULL
7204     },
7205     [CALIB_SENSOR_SENSORINFO_CISISPDGAIN_RANGE_TAG_ID]         =
7206     {   "CISIspDgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7207         check_tags_array_ignore, NULL
7208     },
7209     [CALIB_SENSOR_SENSORINFO_CISHDRGAININDSETEN_TAG_ID]         =
7210     {   "CISHdrGainIndSetEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7211         check_tags_array_ignore, NULL
7212     },
7213     [CALIB_SENSOR_SENSORSETTING_FLIP_ID]         =
7214     {   "SensorFlip", CALIB_TAG_TYPE_CHAR, {1, 1},
7215         check_tags_array_ignore, NULL
7216     },
7217 
7218     //Module Info
7219     [CALIB_SENSOR_MODULEINFO_TAG_ID]         =
7220     {   "MODULEINFO", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7221         check_tags_array_info(calib_sensor_moduleinfo_sub_tags), NULL
7222     },
7223     [CALIB_SENSOR_MODULEINFO_FNUMBER_TAG_ID]         =
7224     {   "FNumber", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7225         check_tags_array_ignore, NULL
7226     },
7227     [CALIB_SENSOR_MODULEINFO_EFL_TAG_ID]         =
7228     {   "EFL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7229         check_tags_array_ignore, NULL
7230     },
7231     [CALIB_SENSOR_MODULEINFO_LENS_TRANSMITTANCE_TAG_ID]         =
7232     {   "LensTavg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7233         check_tags_array_ignore, NULL
7234     },
7235     [CALIB_SENSOR_MODULEINFO_IRCUT_TRANSMITTANCE_TAG_ID]         =
7236     {   "IRCutTavg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7237         check_tags_array_ignore, NULL
7238     },
7239 
7240 
7241     // Sensor CPSL
7242     [CALIB_SENSOR_CPSL_TAG_ID]         =
7243     {   "CPSL", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7244         check_tags_array_info(calib_sensor_cpsl_sub_tags), NULL
7245     },
7246     [CALIB_SENSOR_CPSL_ENABLE_TAG_ID]         =
7247     {   "enable", CALIB_TAG_TYPE_CHAR, {-1, -1},
7248         check_tags_array_ignore, NULL
7249     },
7250     [CALIB_SENSOR_CPSL_MODE_TAG_ID]         =
7251     {   "mode", CALIB_TAG_TYPE_INT, {-1, -1},
7252         check_tags_array_ignore, NULL
7253     },
7254     [CALIB_SENSOR_CPSL_FORCE_GRAY_TAG_ID]         =
7255     {   "force_gray", CALIB_TAG_TYPE_CHAR, {-1, -1},
7256         check_tags_array_ignore, NULL
7257     },
7258     [CALIB_SENSOR_CPSL_LGHT_SRC_TAG_ID]         =
7259     {   "light_src", CALIB_TAG_TYPE_INT, {-1, -1},
7260         check_tags_array_ignore, NULL
7261     },
7262     [CALIB_SENSOR_CPSL_AUTO_ADJUST_SENS_TAG_ID]         =
7263     {   "auto_adjust_sens", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7264         check_tags_array_ignore, NULL
7265     },
7266     [CALIB_SENSOR_CPSL_AUTO_ON2OFF_TH_TAG_ID]         =
7267     {   "auto_on2off_th", CALIB_TAG_TYPE_INT, {-1, -1},
7268         check_tags_array_ignore, NULL
7269     },
7270     [CALIB_SENSOR_CPSL_AUTO_OFF2ON_TH_TAG_ID]         =
7271     {   "auto_off2on_th", CALIB_TAG_TYPE_INT, {-1, -1},
7272         check_tags_array_ignore, NULL
7273     },
7274     [CALIB_SENSOR_CPSL_AUTO_SW_INTERVAL_TAG_ID]         =
7275     {   "auto_sw_interval", CALIB_TAG_TYPE_INT, {-1, -1},
7276         check_tags_array_ignore, NULL
7277     },
7278     [CALIB_SENSOR_CPSL_MANUAL_ON_TAG_ID]         =
7279     {   "manual_on", CALIB_TAG_TYPE_CHAR, {-1, -1},
7280         check_tags_array_ignore, NULL
7281     },
7282     [CALIB_SENSOR_CPSL_MANUAL_STRENGTH_TAG_ID]         =
7283     {   "manual_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7284         check_tags_array_ignore, NULL
7285     },
7286 
7287     // Sensor LUT3D
7288     [CALIB_SENSOR_LUT3D_TAG_ID]         =
7289     {   "LUT3D", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7290         check_tags_array_info(calib_sensor_lut3d_sub_tags), NULL
7291     },
7292     [CALIB_SENSOR_LUT3D_ENABLE_TAG_ID]         =
7293     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7294         check_tags_array_ignore, NULL
7295     },
7296     [CALIB_SENSOR_LUT3D_R_LUT_TAG_ID]         =
7297     {   "look_up_table_r", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7298         check_tags_array_ignore, NULL
7299     },
7300     [CALIB_SENSOR_LUT3D_G_LUT_TAG_ID]         =
7301     {   "look_up_table_g", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7302         check_tags_array_ignore, NULL
7303     },
7304     [CALIB_SENSOR_LUT3D_B_LUT_TAG_ID]         =
7305     {   "look_up_table_b", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7306         check_tags_array_ignore, NULL
7307     },
7308 
7309     // Sensor LDCH
7310     [CALIB_SENSOR_LDCH_TAG_ID]         =
7311     {   "LDCH", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7312         check_tags_array_info(calib_sensor_ldch_sub_tags), NULL
7313     },
7314     [CALIB_SENSOR_LDCH_ENABLE_TAG_ID]         =
7315     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7316         check_tags_array_ignore, NULL
7317     },
7318     [CALIB_SENSOR_LDCH_MESH_FILE_TAG_ID]         =
7319     {   "mesh_file", CALIB_TAG_TYPE_CHAR, {-1, -1},
7320         check_tags_array_ignore, NULL
7321     },
7322     [CALIB_SENSOR_LDCH_CORRECT_LEVEL_TAG_ID]         =
7323     {   "correct_level", CALIB_TAG_TYPE_INT, {-1, -1},
7324         check_tags_array_ignore, NULL
7325     },
7326     [CALIB_SENSOR_LDCH_CORRECT_LEVEL_MAX_TAG_ID]         =
7327     {   "correct_level_max",  CALIB_TAG_TYPE_INT, {-1, -1},
7328         check_tags_array_ignore, NULL
7329     },
7330     [CALIB_SENSOR_LDCH_LIGHT_CENTER_TAG_ID]         =
7331     {   "light_center",  CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7332         check_tags_array_ignore, NULL
7333     },
7334     [CALIB_SENSOR_LDCH_DISTORTION_COEFF_ID]         =
7335     {   "distortion_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7336         check_tags_array_ignore, NULL
7337     },
7338 
7339     // Sensor FEC
7340     [CALIB_SENSOR_FEC_TAG_ID]         =
7341     {   "FEC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7342         check_tags_array_info(calib_sensor_fec_sub_tags), NULL
7343     },
7344     [CALIB_SENSOR_FEC_ENABLE_TAG_ID]         =
7345     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7346         check_tags_array_ignore, NULL
7347     },
7348     [CALIB_SENSOR_FEC_MESH_FILE_TAG_ID]         =
7349     {   "mesh_file", CALIB_TAG_TYPE_CHAR, {-1, -1},
7350         check_tags_array_ignore, NULL
7351     },
7352     [CALIB_SENSOR_FEC_CORRECT_LEVEL_TAG_ID]         =
7353     {   "correct_level", CALIB_TAG_TYPE_INT, {-1, -1},
7354         check_tags_array_ignore, NULL
7355     },
7356     [CALIB_SENSOR_FEC_LIGHT_CENTER_TAG_ID]         =
7357     {   "light_center",  CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7358         check_tags_array_ignore, NULL
7359     },
7360     [CALIB_SENSOR_FEC_DISTORTION_COEFF_ID]         =
7361     {   "distortion_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7362         check_tags_array_ignore, NULL
7363     },
7364 
7365     // Sensor EIS
7366     // TODO(Cody): add calib data
7367     [CALIB_SENSOR_EIS_TAG_ID]         =
7368     {   "EIS", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7369         check_tags_array_info(calib_sensor_eis_sub_tags), NULL
7370     },
7371     [CALIB_SENSOR_EIS_ENABLE_TAG_ID]         =
7372     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7373         check_tags_array_ignore, NULL
7374     },
7375 
7376     // Sensor LUMADETECT
7377     [CALIB_SENSOR_LUMA_DETECT_TAG_ID]         =
7378     {   "LUMADETECT", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7379         check_tags_array_info(calib_sensor_lumadetect_sub_tags), NULL
7380     },
7381     [CALIB_SENSOR_LUMA_DETECT_ENABLE_TAG_ID]         =
7382     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7383         check_tags_array_ignore, NULL
7384     },
7385     [CALIB_SENSOR_LUMA_DETECT_FIXED_TIMES_TAG_ID]         =
7386     {   "fixed_times", CALIB_TAG_TYPE_INT, {-1, -1},
7387         check_tags_array_ignore, NULL
7388     },
7389     [CALIB_SENSOR_LUMA_DETECT_THRESHOLD_TAG_ID]         =
7390     {   "threshold", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7391         check_tags_array_ignore, NULL
7392     },
7393     [CALIB_SENSOR_LUMA_DETECT_THRESHOLD_LEVEL2_TAG_ID]         =
7394     {   "threshold_level2", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7395         check_tags_array_ignore, NULL
7396     },
7397 
7398     // Sensor ORB
7399     [CALIB_SENSOR_ORB_TAG_ID]         =
7400     {   "ORB", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7401         check_tags_array_info(calib_sensor_orb_sub_tags), NULL
7402     },
7403     [CALIB_SENSOR_ORB_ENABLE_TAG_ID]         =
7404     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7405         check_tags_array_ignore, NULL
7406     },
7407 
7408     // Sensor COLOR_AS_GREY
7409     [CALIB_SENSOR_COLOR_AS_GREY_TAG_ID]         =
7410     {   "COLOR_AS_GREY", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7411         check_tags_array_info(calib_sensor_color_as_grey_sub_tags), NULL
7412     },
7413     [CALIB_SENSOR_COLOR_AS_GREY_ENABLE_TAG_ID]         =
7414     {   "enable", CALIB_TAG_TYPE_INT, {-1, -1},
7415         check_tags_array_ignore, NULL
7416     },
7417 
7418     //bayernrV2
7419     [CALIB_SENSOR_BAYERNR_V2_TAG_ID]         =
7420     {   "BAYERNR_V2", CALIB_TAG_TYPE_CELL, {-1, -1},
7421         check_tags_array_info(calib_sensor_bayernr_v2_sub_tags), NULL
7422     },
7423     [CALIB_SENSOR_BAYERNR_V2_MODE_NAME_TAG_ID]         =
7424     {   "ModeName", CALIB_TAG_TYPE_CHAR, {-1, -1},
7425         check_tags_array_ignore, NULL
7426     },
7427     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_TAG_ID]         =
7428     {   "Bayernr2D", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7429         check_tags_array_info(calib_sensor_bayernr_v2_bayernr2D_sub_tags), NULL
7430     },
7431     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_ENABLE_TAG_ID]         =
7432     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7433         check_tags_array_ignore, NULL
7434     },
7435     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SETTING_TAG_ID]       =
7436     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
7437         check_tags_array_info(calib_sensor_bayernr_v2_bayernr2D_setting_sub_tags), NULL
7438     },
7439     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SNR_MODE_TAG_ID]         =
7440     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7441         check_tags_array_ignore, NULL
7442     },
7443     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SENSOR_MODE_TAG_ID]         =
7444     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7445         check_tags_array_ignore, NULL
7446     },
7447     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_ISO_TAG_ID]         =
7448     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7449         check_tags_array_ignore, NULL
7450     },
7451     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_FILTER_STRENGTH_TAG_ID]         =
7452     {   "filter_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7453         check_tags_array_ignore, NULL
7454     },
7455     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_GAUSS_GUIDE_TAG_ID]         =
7456     {   "gauss_guide", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7457         check_tags_array_ignore, NULL
7458     },
7459     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_LUMA_POINT_TAG_ID]         =
7460     {   "lumapoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7461         check_tags_array_ignore, NULL
7462     },
7463     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_SIGMA_TAG_ID]         =
7464     {   "sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7465         check_tags_array_ignore, NULL
7466     },
7467     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_EDGESOFTS_TAG_ID]         =
7468     {   "edgesofts", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7469         check_tags_array_ignore, NULL
7470     },
7471     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_RATIO_TAG_ID]         =
7472     {   "ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7473         check_tags_array_ignore, NULL
7474     },
7475     [CALIB_SENSOR_BAYERNR_V2_BAYERNR2D_WEIGHT_TAG_ID]         =
7476     {   "weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7477         check_tags_array_ignore, NULL
7478     },
7479 
7480 //bayernrv2_3d
7481 #if 1
7482     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_TAG_ID]         =
7483     {   "Bayernr3D", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7484         check_tags_array_info(calib_sensor_bayernr_v2_bayernr3D_sub_tags), NULL
7485     },
7486     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_ENABLE_TAG_ID]         =
7487     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7488         check_tags_array_ignore, NULL
7489     },
7490     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SETTING_TAG_ID]        =
7491     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
7492         check_tags_array_info(calib_sensor_bayernr_v2_bayernr3D_setting_sub_tags), NULL
7493     },
7494     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SNR_MODE_TAG_ID]         =
7495     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7496         check_tags_array_ignore, NULL
7497     },
7498     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SENSOR_MODE_TAG_ID]         =
7499     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7500         check_tags_array_ignore, NULL
7501     },
7502     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_ISO_TAG_ID]         =
7503     {   "ISO", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7504         check_tags_array_ignore, NULL
7505     },
7506     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_FILTER_STRENGTH_TAG_ID]         =
7507     {   "filter_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7508         check_tags_array_ignore, NULL
7509     },
7510     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SP_FILTER_STRENGTH_TAG_ID]          =
7511     {   "sp_filter_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7512         check_tags_array_ignore, NULL
7513     },
7514     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_LO_CLIPWGT_TAG_ID]        =
7515     {   "lo_clipwgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7516         check_tags_array_ignore, NULL
7517     },
7518     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_HI_CLIPWGT_TAG_ID]        =
7519     {   "hi_clipwgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7520         check_tags_array_ignore, NULL
7521     },
7522     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SOFTWGT_TAG_ID]        =
7523     {   "softwgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7524         check_tags_array_ignore, NULL
7525     },
7526     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_LUMA_POINT_TAG_ID]         =
7527     {   "lumapoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7528         check_tags_array_ignore, NULL
7529     },
7530     [CALIB_SENSOR_BAYERNR_V2_BAYERNR3D_SIGMA_TAG_ID]         =
7531     {   "sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7532         check_tags_array_ignore, NULL
7533     },
7534 #endif
7535 
7536 
7537     //ynrV2
7538     [CALIB_SENSOR_YNR_V2_TAG_ID]         =
7539     {   "YNR_V2", CALIB_TAG_TYPE_CELL, {-1, -1},
7540         check_tags_array_info(calib_sensor_ynr_v2_sub_tags), NULL
7541     },
7542     [CALIB_SENSOR_YNR_V2_MODE_NAME_TAG_ID]         =
7543     {   "ModeName", CALIB_TAG_TYPE_CHAR, {-1, -1},
7544         check_tags_array_ignore, NULL
7545     },
7546     [CALIB_SENSOR_YNR_V2_ENABLE_TAG_ID]         =
7547     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7548         check_tags_array_ignore, NULL
7549     },
7550     [CALIB_SENSOR_YNR_V2_SETTING_TAG_ID]         =
7551     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
7552         check_tags_array_info(calib_sensor_ynr_v2_setting_sub_tags), NULL
7553     },
7554     [CALIB_SENSOR_YNR_V2_SNR_MODE_TAG_ID]          =
7555     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7556         check_tags_array_ignore, NULL
7557     },
7558     [CALIB_SENSOR_YNR_V2_SENSOR_MODE_TAG_ID]          =
7559     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7560         check_tags_array_ignore, NULL
7561     },
7562     [CALIB_SENSOR_YNR_V2_ISO_TAG_ID]          =
7563     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7564         check_tags_array_ignore, NULL
7565     },
7566     [CALIB_SENSOR_YNR_V2_BFT3X3_BYPASS_TAG_ID]        =
7567     {   "ynr_bft3x3_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7568         check_tags_array_ignore, NULL
7569     },
7570     [CALIB_SENSOR_YNR_V2_LBFT5X5_BYPASS_TAG_ID]       =
7571     {   "ynr_lbft5x5_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7572         check_tags_array_ignore, NULL
7573     },
7574     [CALIB_SENSOR_YNR_V2_LGFT3X3_BYPASS_TAG_ID]       =
7575     {   "ynr_lgft3x3_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7576         check_tags_array_ignore, NULL
7577     },
7578     [CALIB_SENSOR_YNR_V2_FLT1X1_BYPASS_TAG_ID]        =
7579     {   "ynr_flt1x1_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7580         check_tags_array_ignore, NULL
7581     },
7582     [CALIB_SENSOR_YNR_V2_SFT5X5_BYPASS_TAG_ID]        =
7583     {   "ynr_sft5x5_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7584         check_tags_array_ignore, NULL
7585     },
7586     [CALIB_SENSOR_YNR_V2_RNR_STRENGTH_TAG_ID]         =
7587     {   "rnr_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7588         check_tags_array_ignore, NULL
7589     },
7590     [CALIB_SENSOR_YNR_V2_SIGMA_CURVE_TAG_ID]          =
7591     {   "sigma_curve", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7592         check_tags_array_ignore, NULL
7593     },
7594     [CALIB_SENSOR_YNR_V2_YNR_CI_TAG_ID]       =
7595     {   "ynr_ci", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7596         check_tags_array_ignore, NULL
7597     },
7598     [CALIB_SENSOR_YNR_V2_LOW_BF_TAG_ID]       =
7599     {   "low_bf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7600         check_tags_array_ignore, NULL
7601     },
7602     [CALIB_SENSOR_YNR_V2_LOW_THRED_ADJ_TAG_ID]        =
7603     {   "low_thred_adj", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7604         check_tags_array_ignore, NULL
7605     },
7606     [CALIB_SENSOR_YNR_V2_LOW_PEAK_SUPRESS_TAG_ID]         =
7607     {   "low_peak_supress", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7608         check_tags_array_ignore, NULL
7609     },
7610     [CALIB_SENSOR_YNR_V2_LOW_EDGE_ADJ_THRESH_TAG_ID]          =
7611     {   "low_edge_adj_thresh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7612         check_tags_array_ignore, NULL
7613     },
7614     [CALIB_SENSOR_YNR_V2_LOW_CENTRE_WEIGHT_TAG_ID]        =
7615     {   "low_center_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7616         check_tags_array_ignore, NULL
7617     },
7618     [CALIB_SENSOR_YNR_V2_LOW_DIST_ADJ_TAG_ID]         =
7619     {   "low_dist_adj", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7620         check_tags_array_ignore, NULL
7621     },
7622     [CALIB_SENSOR_YNR_V2_LOW_WEIGHT_TAG_ID]       =
7623     {   "low_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7624         check_tags_array_ignore, NULL
7625     },
7626     [CALIB_SENSOR_YNR_V2_LOW_FILT_STRENGTH_TAG_ID]        =
7627     {   "low_filt_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7628         check_tags_array_ignore, NULL
7629     },
7630     [CALIB_SENSOR_YNR_V2_LOW_BI_WEIGHT_TAG_ID]        =
7631     {   "low_bi_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7632         check_tags_array_ignore, NULL
7633     },
7634     [CALIB_SENSOR_YNR_V2_BASE_FILT_WEIGHT_TAG_ID]         =
7635     {   "base_filter_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7636         check_tags_array_ignore, NULL
7637     },
7638     [CALIB_SENSOR_YNR_V2_HIGH_THRED_ADJ_TAG_ID]       =
7639     {   "high_thred_adj", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7640         check_tags_array_ignore, NULL
7641     },
7642     [CALIB_SENSOR_YNR_V2_HIGH_WEIGHT_TAG_ID]          =
7643     {   "high_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7644         check_tags_array_ignore, NULL
7645     },
7646     [CALIB_SENSOR_YNR_V2_HIGH_DIRECTION_WEIGHT_TAG_ID]        =
7647     {   "high_direction_weight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7648         check_tags_array_ignore, NULL
7649     },
7650     [CALIB_SENSOR_YNR_V2_HI_MIN_ADJ_TAG_ID]       =
7651     {   "hi_min_adj", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7652         check_tags_array_ignore, NULL
7653     },
7654     [CALIB_SENSOR_YNR_V2_HI_EDGE_THRED_TAG_ID]        =
7655     {   "hi_edge_thed", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7656         check_tags_array_ignore, NULL
7657     },
7658 
7659     //cnr v1
7660 
7661     [CALIB_SENSOR_CNR_V1_TAG_ID]         =
7662     {   "CNR_V1", CALIB_TAG_TYPE_CELL, {-1, -1},
7663         check_tags_array_info(calib_sensor_cnr_v1_sub_tags), NULL
7664     },
7665     [CALIB_SENSOR_CNR_V1_MODE_NAME_TAG_ID]         =
7666     {   "ModeName", CALIB_TAG_TYPE_CHAR, {-1, -1},
7667         check_tags_array_ignore, NULL
7668     },
7669     [CALIB_SENSOR_CNR_V1_ENABLE_TAG_ID]         =
7670     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7671         check_tags_array_ignore, NULL
7672     },
7673     [CALIB_SENSOR_CNR_V1_SETTING_TAG_ID]         =
7674     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
7675         check_tags_array_info(calib_sensor_cnr_v1_setting_sub_tags), NULL
7676     },
7677     [CALIB_SENSOR_CNR_V1_SNR_MODE_TAG_ID]          =
7678     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7679         check_tags_array_ignore, NULL
7680     },
7681     [CALIB_SENSOR_CNR_V1_SENSOR_MODE_TAG_ID]          =
7682     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7683         check_tags_array_ignore, NULL
7684     },
7685     [CALIB_SENSOR_CNR_V1_ISO_TAG_ID]          =
7686     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7687         check_tags_array_ignore, NULL
7688     },
7689     [CALIB_SENSOR_CNR_V1_HF_BYPASS_TAG_ID]        =
7690     {   "hf_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7691         check_tags_array_ignore, NULL
7692     },
7693     [CALIB_SENSOR_CNR_V1_LF_BYPASS_TAG_ID]        =
7694     {   "lf_bypass", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7695         check_tags_array_ignore, NULL
7696     },
7697     [CALIB_SENSOR_CNR_V1_CNR_EXGAIN_TAG_ID]       =
7698     {   "cnr_exgain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7699         check_tags_array_ignore, NULL
7700     },
7701     [CALIB_SENSOR_CNR_V1_CNR_G_GAIN_TAG_ID]       =
7702     {   "cnr_g_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7703         check_tags_array_ignore, NULL
7704     },
7705     [CALIB_SENSOR_CNR_V1_COLOR_SAT_ADJ_TAG_ID]        =
7706     {   "color_sat_adj", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7707         check_tags_array_ignore, NULL
7708     },
7709     [CALIB_SENSOR_CNR_V1_COLOR_SAT_ADJ_ALPHA_TAG_ID]          =
7710     {   "color_sat_adj_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7711         check_tags_array_ignore, NULL
7712     },
7713     [CALIB_SENSOR_CNR_V1_HF_SPIKERS_REDUCION_STRENGTH_TAG_ID]         =
7714     {   "hf_spikes_reducion_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7715         check_tags_array_ignore, NULL
7716     },
7717     [CALIB_SENSOR_CNR_V1_HF_DENOISE_STRENGTH_TAG_ID]          =
7718     {   "hf_denoise_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7719         check_tags_array_ignore, NULL
7720     },
7721     [CALIB_SENSOR_CNR_V1_HF_COLOR_SAT_TAG_ID]         =
7722     {   "hf_color_sat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7723         check_tags_array_ignore, NULL
7724     },
7725     [CALIB_SENSOR_CNR_V1_HF_DENOISE_ALPHA_TAG_ID]         =
7726     {   "hf_denoise_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7727         check_tags_array_ignore, NULL
7728     },
7729     [CALIB_SENSOR_CNR_V1_HF_BF_WGT_CLIP_TAG_ID]       =
7730     {   "hf_bf_wgt_clip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7731         check_tags_array_ignore, NULL
7732     },
7733     [CALIB_SENSOR_CNR_V1_THUMB_SPIKERS_REDUCION_STRENGTH_TAG_ID]          =
7734     {   "thumb_spikes_reducion_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7735         check_tags_array_ignore, NULL
7736     },
7737     [CALIB_SENSOR_CNR_V1_THUMB_DENOISE_STRENGTH_TAG_ID]       =
7738     {   "thumb_denoise_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7739         check_tags_array_ignore, NULL
7740     },
7741     [CALIB_SENSOR_CNR_V1_THUMB_COLOR_SAT_TAG_ID]          =
7742     {   "thumb_color_sat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7743         check_tags_array_ignore, NULL
7744     },
7745     [CALIB_SENSOR_CNR_V1_LF_DENOISE_STRENGTH_TAG_ID]          =
7746     {   "lf_denoise_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7747         check_tags_array_ignore, NULL
7748     },
7749     [CALIB_SENSOR_CNR_V1_LF_COLOR_SAT_TAG_ID]         =
7750     {   "lf_color_sat", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7751         check_tags_array_ignore, NULL
7752     },
7753     [CALIB_SENSOR_CNR_V1_LF_DENOISE_ALPHA_TAG_ID]         =
7754     {   "lf_denoise_alpha", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7755         check_tags_array_ignore, NULL
7756     },
7757     [CALIB_SENSOR_CNR_V1_KERNEL_5X5_TAG_ID]       =
7758     {   "kernel_5x5", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7759         check_tags_array_ignore, NULL
7760     },
7761 
7762 
7763     // sharpV3
7764     [CALIB_SENSOR_SHARP_V3_TAG_ID]         =
7765     {   "Sharp_V3", CALIB_TAG_TYPE_CELL, {-1, -1},
7766         check_tags_array_info(calib_sensor_sharp_v3_sub_tags), NULL
7767     },
7768     [CALIB_SENSOR_SHARP_V3_MODE_NAME_TAG_ID]         =
7769     {   "ModeName", CALIB_TAG_TYPE_CHAR, {-1, -1},
7770         check_tags_array_ignore, NULL
7771     },
7772     [CALIB_SENSOR_SHARP_V3_ENABLE_TAG_ID]         =
7773     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7774         check_tags_array_ignore, NULL
7775     },
7776     [CALIB_SENSOR_SHARP_V3_SETTING_TAG_ID]         =
7777     {   "Setting", CALIB_TAG_TYPE_CELL, {-1, -1},
7778         check_tags_array_info(calib_sensor_sharp_v3_setting_sub_tags), NULL
7779     },
7780     [CALIB_SENSOR_SHARP_V3_SNR_MODE_TAG_ID]        =
7781     {   "SNR_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7782         check_tags_array_ignore, NULL
7783     },
7784     [CALIB_SENSOR_SHARP_V3_SENSOR_MODE_TAG_ID]        =
7785     {   "Sensor_Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7786         check_tags_array_ignore, NULL
7787     },
7788     [CALIB_SENSOR_SHARP_V3_ISO_TAG_ID]        =
7789     {   "iso", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7790         check_tags_array_ignore, NULL
7791     },
7792     [CALIB_SENSOR_SHARP_V3_LUMA_POINT_TAG_ID]         =
7793     {   "luma_point", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7794         check_tags_array_ignore, NULL
7795     },
7796     [CALIB_SENSOR_SHARP_V3_LUMA_SIGMA_TAG_ID]         =
7797     {   "luma_sigma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7798         check_tags_array_ignore, NULL
7799     },
7800     [CALIB_SENSOR_SHARP_V3_PBF_GAIN_TAG_ID]       =
7801     {   "pbf_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7802         check_tags_array_ignore, NULL
7803     },
7804     [CALIB_SENSOR_SHARP_V3_PBF_ADD_TAG_ID]        =
7805     {   "pbf_add", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7806         check_tags_array_ignore, NULL
7807     },
7808     [CALIB_SENSOR_SHARP_V3_PBF_RATIO_TAG_ID]          =
7809     {   "pbf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7810         check_tags_array_ignore, NULL
7811     },
7812     [CALIB_SENSOR_SHARP_V3_GAUSS_RATIO_TAG_ID]        =
7813     {   "gaus_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7814         check_tags_array_ignore, NULL
7815     },
7816     [CALIB_SENSOR_SHARP_V3_SHARP_RATIO_TAG_ID]        =
7817     {   "sharp_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7818         check_tags_array_ignore, NULL
7819     },
7820     [CALIB_SENSOR_SHARP_V3_HF_CLIP_TAG_ID]        =
7821     {   "hf_clip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7822         check_tags_array_ignore, NULL
7823     },
7824     [CALIB_SENSOR_SHARP_V3_BF_GAIN_TAG_ID]        =
7825     {   "bf_gain", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7826         check_tags_array_ignore, NULL
7827     },
7828     [CALIB_SENSOR_SHARP_V3_BF_ADD_TAG_ID]         =
7829     {   "bf_add", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7830         check_tags_array_ignore, NULL
7831     },
7832     [CALIB_SENSOR_SHARP_V3_BF_RATIO_TAG_ID]       =
7833     {   "bf_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7834         check_tags_array_ignore, NULL
7835     },
7836     [CALIB_SENSOR_SHARP_V3_LOCAL_STRENGTH_TAG_ID]         =
7837     {   "local_sharp_strength", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7838         check_tags_array_ignore, NULL
7839     },
7840     [CALIB_SENSOR_SHARP_V3_PREFILTER_COEFF_TAG_ID]        =
7841     {   "prefilter_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7842         check_tags_array_ignore, NULL
7843     },
7844     [CALIB_SENSOR_SHARP_V3_GAUSSFILTER_COEFF_TAG_ID]          =
7845     {   "GaussianFilter_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7846         check_tags_array_ignore, NULL
7847     },
7848     [CALIB_SENSOR_SHARP_V3_HBFFILTER_COEFF_TAG_ID]        =
7849     {   "hfBilateralFilter_coeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7850         check_tags_array_ignore, NULL
7851     },
7852     [CALIB_SENSOR_SHARP_V3_SHARP_RATIO_H_TAG_ID]          =
7853     {   "sharp_ratio_h", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7854         check_tags_array_ignore, NULL
7855     },
7856     [CALIB_SENSOR_SHARP_V3_SHARP_RATIO_M_TAG_ID]          =
7857     {   "sharp_ratio_m", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7858         check_tags_array_ignore, NULL
7859     },
7860     [CALIB_SENSOR_SHARP_V3_SHARP_RATIO_L_TAG_ID]          =
7861     {   "sharp_ratio_l", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7862         check_tags_array_ignore, NULL
7863     },
7864     [CALIB_SENSOR_SHARP_V3_CLIP_HF_TAG_ID]        =
7865     {   "clip_hf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7866         check_tags_array_ignore, NULL
7867     },
7868     [CALIB_SENSOR_SHARP_V3_CLIP_MF_TAG_ID]        =
7869     {   "clip_mf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7870         check_tags_array_ignore, NULL
7871     },
7872     [CALIB_SENSOR_SHARP_V3_CLIP_LF_TAG_ID]        =
7873     {   "clip_lf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7874         check_tags_array_ignore, NULL
7875     },
7876     [CALIB_SENSOR_SHARP_V3_LOCAL_WGT_TAG_ID]          =
7877     {   "local_wgt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7878         check_tags_array_ignore, NULL
7879     },
7880 
7881     // Sensor CPROC
7882     [CALIB_SENSOR_CPROC_TAG_ID]         =
7883     {   "CPROC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7884         check_tags_array_info(calib_sensor_cproc_sub_tags), NULL
7885     },
7886     [CALIB_SENSOR_CPROC_ENABLE_TAG_ID]         =
7887     {   "enable", CALIB_TAG_TYPE_INT, {-1, -1},
7888         check_tags_array_ignore, NULL
7889     },
7890     [CALIB_SENSOR_CPROC_BRIGHTNESS_TAG_ID]         =
7891     {   "brightness", CALIB_TAG_TYPE_INT, {-1, -1},
7892         check_tags_array_ignore, NULL
7893     },
7894     [CALIB_SENSOR_CPROC_CONTRAST_TAG_ID]         =
7895     {   "contrast", CALIB_TAG_TYPE_INT, {-1, -1},
7896         check_tags_array_ignore, NULL
7897     },
7898     [CALIB_SENSOR_CPROC_SATURATION_TAG_ID]         =
7899     {   "saturation", CALIB_TAG_TYPE_INT, {-1, -1},
7900         check_tags_array_ignore, NULL
7901     },
7902     [CALIB_SENSOR_CPROC_HUE_TAG_ID]         =
7903     {   "hue", CALIB_TAG_TYPE_INT, {-1, -1},
7904         check_tags_array_ignore, NULL
7905     },
7906 
7907     // Sensor IE
7908     [CALIB_SENSOR_IE_TAG_ID]         =
7909     {   "IE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7910         check_tags_array_info(calib_sensor_ie_sub_tags), NULL
7911     },
7912     [CALIB_SENSOR_IE_ENABLE_TAG_ID]         =
7913     {   "enable", CALIB_TAG_TYPE_INT, {-1, -1},
7914         check_tags_array_ignore, NULL
7915     },
7916     [CALIB_SENSOR_IE_MODE_TAG_ID]         =
7917     {   "mode", CALIB_TAG_TYPE_INT, {-1, -1},
7918         check_tags_array_ignore, NULL
7919     },
7920 
7921     //Sensor AEC v21
7922     [CALIB_SENSOR_AEC_V21_TAG_ID]         =
7923     {   "AEC", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7924         check_tags_array_info(calib_sensor_aec_v21_sub_tags), NULL
7925     },
7926     [CALIB_SENSOR_AEC_V21_CALIBPARA_TAG_ID]         =
7927     {   "CalibPara", CALIB_TAG_TYPE_CELL, {-1, -1},
7928         check_tags_array_info(calib_sensor_aec_calibpara_v21_sub_tags), NULL
7929     },
7930     [CALIB_SENSOR_AEC_V21_CALIBSCENE_TAG_ID]        =
7931     {   "scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
7932         check_tags_array_ignore, NULL
7933     },
7934     [CALIB_SENSOR_AEC_V21_WINSCALE_TAG_ID]      =
7935     {   "AecWinScale", CALIB_TAG_TYPE_STRUCT, {-1, -1},
7936         check_tags_array_info(calib_sensor_aec_winscale_v21_sub_tags), NULL
7937     },
7938     [CALIB_SENSOR_AEC_V21_WINSCALE_INRAW_TAG_ID]        =
7939     {   "InputRaw", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7940         check_tags_array_ignore, NULL
7941     },
7942     [CALIB_SENSOR_AEC_V21_WINSCALE_TMORAW_TAG_ID]        =
7943     {   "TmoRaw", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7944         check_tags_array_ignore, NULL
7945     },
7946     [CALIB_SENSOR_AEC_V21_WINSCALE_YUVRAW_TAG_ID]        =
7947     {   "Yuv", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
7948         check_tags_array_ignore, NULL
7949     },
7950     [CALIB_SENSOR_AEC_V21_TUNEPARA_TAG_ID]        =
7951     {   "TunePara", CALIB_TAG_TYPE_CELL, {-1, -1},
7952         check_tags_array_info(calib_sensor_aec_tunepara_v21_sub_tags), NULL
7953     },
7954     [CALIB_SENSOR_AEC_V21_TUNESCENE_TAG_ID]         =
7955     {   "scene", CALIB_TAG_TYPE_CHAR, {-1, -1},
7956         check_tags_array_ignore, NULL
7957     },
7958     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_TAG_ID]         =
7959     {   "HistStatsMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7960         check_tags_array_ignore, NULL
7961     },
7962     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_R_TAG_ID]         =
7963     {   "R", CALIB_TAG_TYPE_CHAR, {-1, -1},
7964         check_tags_array_ignore, NULL
7965     },
7966     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_G_TAG_ID]         =
7967     {   "G", CALIB_TAG_TYPE_CHAR, {-1, -1},
7968         check_tags_array_ignore, NULL
7969     },
7970     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_B_TAG_ID]         =
7971     {   "B", CALIB_TAG_TYPE_CHAR, {-1, -1},
7972         check_tags_array_ignore, NULL
7973     },
7974     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_RGB_TAG_ID]         =
7975     {   "RGB", CALIB_TAG_TYPE_CHAR, {-1, -1},
7976         check_tags_array_ignore, NULL
7977     },
7978     [CALIB_SENSOR_AEC_V21_HISTSTATSMODE_Y_TAG_ID]         =
7979     {   "Y", CALIB_TAG_TYPE_CHAR, {-1, -1},
7980         check_tags_array_ignore, NULL
7981     },
7982     [CALIB_SENSOR_AEC_V21_RAWSTATSMODE_TAG_ID]         =
7983     {   "RawStatsMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
7984         check_tags_array_ignore, NULL
7985     },
7986     [CALIB_SENSOR_AEC_V21_RAWSTATSMODE_R_TAG_ID]         =
7987     {   "R", CALIB_TAG_TYPE_CHAR, {-1, -1},
7988         check_tags_array_ignore, NULL
7989     },
7990     [CALIB_SENSOR_AEC_V21_RAWSTATSMODE_G_TAG_ID]         =
7991     {   "G", CALIB_TAG_TYPE_CHAR, {-1, -1},
7992         check_tags_array_ignore, NULL
7993     },
7994     [CALIB_SENSOR_AEC_V21_RAWSTATSMODE_B_TAG_ID]         =
7995     {   "B", CALIB_TAG_TYPE_CHAR, {-1, -1},
7996         check_tags_array_ignore, NULL
7997     },
7998     [CALIB_SENSOR_AEC_V21_RAWSTATSMODE_Y_TAG_ID]         =
7999     {   "Y", CALIB_TAG_TYPE_CHAR, {-1, -1},
8000         check_tags_array_ignore, NULL
8001     },
8002     [CALIB_SENSOR_AEC_V21_YRANGEMODE_TAG_ID]         =
8003     {   "YRangeMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8004         check_tags_array_ignore, NULL
8005     },
8006     [CALIB_SENSOR_AEC_V21_YRANGEMODE_FULL_TAG_ID]         =
8007     {   "FULL", CALIB_TAG_TYPE_CHAR, {-1, -1},
8008         check_tags_array_ignore, NULL
8009     },
8010     [CALIB_SENSOR_AEC_V21_YRANGEMODE_LIMITED_TAG_ID]         =
8011     {   "LIMITED", CALIB_TAG_TYPE_CHAR, {-1, -1},
8012         check_tags_array_ignore, NULL
8013     },
8014 
8015     [CALIB_SENSOR_AEC_V21_AECRUNINTERVAL_TAG_ID]         =
8016     {   "AecRunInterval", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8017         check_tags_array_ignore, NULL
8018     },
8019     [CALIB_SENSOR_AEC_V21_AECOPTYPE_TAG_ID]         =
8020     {   "AecOpType", CALIB_TAG_TYPE_CHAR, {-1, -1},
8021         check_tags_array_ignore, NULL
8022     },
8023     [CALIB_SENSOR_AEC_V21_AECOPTYPE_AUTO_TAG_ID]         =
8024     {   "AUTO", CALIB_TAG_TYPE_CHAR, {-1, -1},
8025         check_tags_array_ignore, NULL
8026     },
8027     [CALIB_SENSOR_AEC_V21_AECOPTYPE_MANUAL_TAG_ID]         =
8028     {   "MANUAL", CALIB_TAG_TYPE_CHAR, {-1, -1},
8029         check_tags_array_ignore, NULL
8030     },
8031 
8032     [CALIB_SENSOR_AEC_V21_SYNCTEST_TAG_ID]         =
8033     {   "AecSyncTest", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8034         check_tags_array_info(calib_sensor_aec_AecSyncTest_v21_sub_tags), NULL
8035     },
8036     [CALIB_SENSOR_AEC_V21_SYNCTEST_ENABLE_TAG_ID]         =
8037     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8038         check_tags_array_ignore, NULL
8039     },
8040     [CALIB_SENSOR_AEC_V21_SYNCTEST_INTERVALFRM_TAG_ID]         =
8041     {   "IntervalFrm", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8042         check_tags_array_ignore, NULL
8043     },
8044     [CALIB_SENSOR_AEC_V21_SYNCTEST_ALTEREXP_TAG_ID]         =
8045     {   "AlterExp", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8046         check_tags_array_info(calib_sensor_aec_AecSyncTest_AlterExp_v21_sub_tags), NULL
8047     },
8048     [CALIB_SENSOR_AEC_V21_SYNCTEST_LINALTEREXP_TAG_ID]         =
8049     {   "LinearAE", CALIB_TAG_TYPE_CELL, {-1, -1},
8050         check_tags_array_info(calib_sensor_aec_AecSyncTest_LinAlterExp_v21_sub_tags), NULL
8051     },
8052     [CALIB_SENSOR_AEC_V21_SYNCTEST_HDRALTEREXP_TAG_ID]         =
8053     {   "HdrAE", CALIB_TAG_TYPE_CELL, {-1, -1},
8054         check_tags_array_info(calib_sensor_aec_AecSyncTest_HdrAlterExp_v21_sub_tags), NULL
8055     },
8056     [CALIB_SENSOR_AEC_V21_SYNCTEST_TIMEVALUE_TAG_ID]         =
8057     {   "TimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8058         check_tags_array_ignore, NULL
8059     },
8060     [CALIB_SENSOR_AEC_V21_SYNCTEST_GAINVALUE_TAG_ID]         =
8061     {   "GainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8062         check_tags_array_ignore, NULL
8063     },
8064     [CALIB_SENSOR_AEC_V21_SYNCTEST_ISPGAINVALUE_TAG_ID]         =
8065     {   "IspDgainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8066         check_tags_array_ignore, NULL
8067     },
8068     [CALIB_SENSOR_AEC_V21_SYNCTEST_DCGMODE_TAG_ID]         =
8069     {   "DcgMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8070         check_tags_array_ignore, NULL
8071     },
8072     [CALIB_SENSOR_AEC_V21_SYNCTEST_PIRISVALUE_TAG_ID]         =
8073     {   "PIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8074         check_tags_array_ignore, NULL
8075     },
8076 
8077 
8078     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_TAG_ID]         =
8079     {   "AecDNSwitch", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8080         check_tags_array_info(calib_sensor_aec_AecDNSwitch_v21_sub_tags), NULL
8081     },
8082     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNTRIGGER_TAG_ID]         =
8083     {   "DNTrigger", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8084         check_tags_array_ignore, NULL
8085     },
8086     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNMODE_TAG_ID]         =
8087     {   "DNMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8088         check_tags_array_ignore, NULL
8089     },
8090     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNMODE_DAY_TAG_ID]         =
8091     {   "DAY", CALIB_TAG_TYPE_CHAR, {-1, -1},
8092         check_tags_array_ignore, NULL
8093     },
8094     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_DNMODE_NIGHT_TAG_ID]         =
8095     {   "NIGHT", CALIB_TAG_TYPE_CHAR, {-1, -1},
8096         check_tags_array_ignore, NULL
8097     },
8098     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_FILLLIGHTMODE_TAG_ID]         =
8099     {   "FillLightMode", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8100         check_tags_array_ignore, NULL
8101     },
8102     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_D2NFACTH_TAG_ID]         =
8103     {   "D2NFacTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8104         check_tags_array_ignore, NULL
8105     },
8106     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_D2NFRMCNT_TAG_ID]         =
8107     {   "D2NFrmCnt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8108         check_tags_array_ignore, NULL
8109     },
8110 
8111 
8112     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_VBNIGHTMODE_TAG_ID]         =
8113     {   "VBNightMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8114         check_tags_array_info(calib_sensor_aec_VBNightMode_v21_sub_tags), NULL
8115     },
8116     [CALIB_SENSOR_AEC_V21_ENABLE_TAG_ID]         =
8117     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8118         check_tags_array_ignore, NULL
8119     },
8120     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFRMCNT_TAG_ID]         =
8121     {   "N2DFrmCnt", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8122         check_tags_array_ignore, NULL
8123     },
8124     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_N2DFACTH_TAG_ID]         =
8125     {   "N2DFacTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8126         check_tags_array_ignore, NULL
8127     },
8128 
8129 
8130     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_IRNIGHTMODE_TAG_ID]         =
8131     {   "IRNightMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8132         check_tags_array_info(calib_sensor_aec_IRNightMode_v21_sub_tags), NULL
8133     },
8134     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_IR_RG_TAG_ID]         =
8135     {   "IR_rg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8136         check_tags_array_ignore, NULL
8137     },
8138     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_IR_BG_TAG_ID]         =
8139     {   "IR_bg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8140         check_tags_array_ignore, NULL
8141     },
8142     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_MAX_DIS_TAG_ID]         =
8143     {   "Max_Dis", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8144         check_tags_array_ignore, NULL
8145     },
8146     [CALIB_SENSOR_AEC_V21_AECDNSWITCH_VB_PERCENT_TAG_ID]         =
8147     {   "VBPercent", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8148         check_tags_array_ignore, NULL
8149     },
8150 
8151 
8152     [CALIB_SENSOR_AEC_V21_AECSPEED_TAG_ID]         =
8153     {   "AecSpeed", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8154         check_tags_array_info(calib_sensor_aec_AecSpeed_v21_sub_tags), NULL
8155     },
8156     [CALIB_SENSOR_AEC_V21_DAMPOVER_TAG_ID]         =
8157     {   "DampOver", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8158         check_tags_array_ignore, NULL
8159     },
8160     [CALIB_SENSOR_AEC_V21_DAMPUNDER_TAG_ID]         =
8161     {   "DampUnder", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8162         check_tags_array_ignore, NULL
8163     },
8164     [CALIB_SENSOR_AEC_V21_DAMPDARK2BRIGHT_TAG_ID]         =
8165     {   "DampDark2Bright", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8166         check_tags_array_ignore, NULL
8167     },
8168     [CALIB_SENSOR_AEC_V21_DAMPBRIGHT2DARK_TAG_ID]         =
8169     {   "DampBright2Dark", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8170         check_tags_array_ignore, NULL
8171     },
8172     [CALIB_SENSOR_AEC_V21_DAMPOVERVIDEO_TAG_ID]         =
8173     {   "DampOverVideo", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8174         check_tags_array_ignore, NULL
8175     },
8176     [CALIB_SENSOR_AEC_V21_DAMPUNDERVIDEO_TAG_ID]         =
8177     {   "DampUnderVideo", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8178         check_tags_array_ignore, NULL
8179     },
8180 
8181 
8182     [CALIB_SENSOR_AEC_V21_AECDELAYFRMNUM_TAG_ID]         =
8183     {   "AecDelayFrmNum", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8184         check_tags_array_info(calib_sensor_aec_AecDelayFrmNum_v21_sub_tags), NULL
8185     },
8186     [CALIB_SENSOR_AEC_V21_BLACKDELAY_TAG_ID]         =
8187     {   "BlackDelay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8188         check_tags_array_ignore, NULL
8189     },
8190     [CALIB_SENSOR_AEC_V21_WHITEDELAY_TAG_ID]         =
8191     {   "WhiteDelay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8192         check_tags_array_ignore, NULL
8193     },
8194 
8195 
8196     [CALIB_SENSOR_AEC_V21_AECFRAMERATEMODE_TAG_ID]         =
8197     {   "AecFrameRateMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8198         check_tags_array_info(calib_sensor_aec_AecFrameRateMode_v21_sub_tags), NULL
8199     },
8200     [CALIB_SENSOR_AEC_V21_ISFPSFIX_TAG_ID]         =
8201     {   "isFpsFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8202         check_tags_array_ignore, NULL
8203     },
8204     [CALIB_SENSOR_AEC_V21_FPSVALUE_TAG_ID]         =
8205     {   "FpsValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8206         check_tags_array_ignore, NULL
8207     },
8208     [CALIB_SENSOR_AEC_V21_FPSFIX_LINTIMEDOT_TAG_ID]         =
8209     {   "FpsFix_LinTimeDot", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8210         check_tags_array_ignore, NULL
8211     },
8212     [CALIB_SENSOR_AEC_V21_FPSFIX_HDRTIMEDOT_TAG_ID]         =
8213     {   "FpsFix_HdrTimeDot", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8214         check_tags_array_ignore, NULL
8215     },
8216 
8217     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_TAG_ID]         =
8218     {   "AecAntiFlicker", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8219         check_tags_array_info(calib_sensor_aec_AecAntiFlicker_v21_sub_tags), NULL
8220     },
8221     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_ENABLE_TAG_ID]         =
8222     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8223         check_tags_array_ignore, NULL
8224     },
8225     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_FREQ_TAG_ID]         =
8226     {   "Frequency", CALIB_TAG_TYPE_CHAR, {-1, -1},
8227         check_tags_array_ignore, NULL
8228     },
8229     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_FREQ_50HZ_TAG_ID]         =
8230     {   "FLICKER_50HZ", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8231         check_tags_array_ignore, NULL
8232     },
8233     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_FREQ_60HZ_TAG_ID]         =
8234     {   "FLICKER_60HZ", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8235         check_tags_array_ignore, NULL
8236     },
8237     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_MODE_TAG_ID]         =
8238     {   "Mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8239         check_tags_array_ignore, NULL
8240     },
8241     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_MODE_AUTO_TAG_ID]         =
8242     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8243         check_tags_array_ignore, NULL
8244     },
8245     [CALIB_SENSOR_AEC_V21_ANTIFLICKER_MODE_NORMAL_TAG_ID]         =
8246     {   "NORMAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8247         check_tags_array_ignore, NULL
8248     },
8249 
8250     [CALIB_SENSOR_AEC_V21_AECINITVALUE_TAG_ID]         =
8251     {   "AecInitValue", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8252         check_tags_array_info(calib_sensor_aec_AecInitValue_v21_sub_tags), NULL
8253     },
8254     [CALIB_SENSOR_AEC_V21_AECINITVALUE_LINEARAE_TAG_ID]         =
8255     {   "LinearAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8256         check_tags_array_info(calib_sensor_aec_AecInitValue_LinearAE_v21_sub_tags), NULL
8257     },
8258     [CALIB_SENSOR_AEC_V21_AECINITVALUE_HDRAE_TAG_ID]         =
8259     {   "HdrAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8260         check_tags_array_info(calib_sensor_aec_AecInitValue_HdrAE_v21_sub_tags), NULL
8261     },
8262     [CALIB_SENSOR_AEC_V21_INITTIMEVALUE_TAG_ID]         =
8263     {   "InitTimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8264         check_tags_array_ignore, NULL
8265     },
8266     [CALIB_SENSOR_AEC_V21_INITGAINVALUE_TAG_ID]         =
8267     {   "InitGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8268         check_tags_array_ignore, NULL
8269     },
8270     [CALIB_SENSOR_AEC_V21_INITISPDGAINVALUE_TAG_ID]         =
8271     {   "InitIspDgainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8272         check_tags_array_ignore, NULL
8273     },
8274     [CALIB_SENSOR_AEC_V21_INITPIRISVALUE_TAG_ID]         =
8275     {   "InitPIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8276         check_tags_array_ignore, NULL
8277     },
8278     [CALIB_SENSOR_AEC_V21_INITDCIRISVALUE_TAG_ID]        =
8279     {   "InitDCIrisDutyValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8280         check_tags_array_ignore, NULL
8281     },
8282     [CALIB_SENSOR_AEC_V21_INITHDCIRISVALUE_TAG_ID]        =
8283     {   "InitHDCIrisDutyValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8284         check_tags_array_ignore, NULL
8285     },
8286 
8287     [CALIB_SENSOR_AEC_V21_AECGRIDWEIGHT_TAG_ID]         =
8288     {   "AecGridWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8289         check_tags_array_ignore, NULL
8290     },
8291     [CALIB_SENSOR_AEC_V21_AECROUTE_TAG_ID]         =
8292     {   "AecRoute", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8293         check_tags_array_info(calib_sensor_aec_AecRoute_v21_sub_tags), NULL
8294     },
8295     [CALIB_SENSOR_AEC_V21_AECROUTE_LINEARAE_TAG_ID]         =
8296     {   "LinearAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8297         check_tags_array_info(calib_sensor_aec_AecRoute_LinearAE_v21_sub_tags), NULL
8298     },
8299     [CALIB_SENSOR_AEC_V21_AECROUTE_HDRAE_TAG_ID]         =
8300     {   "HdrAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8301         check_tags_array_info(calib_sensor_aec_AecRoute_HdrAE_v21_sub_tags), NULL
8302     },
8303     [CALIB_SENSOR_AEC_V21_NAME_TAG_ID]         =
8304     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
8305         check_tags_array_ignore, NULL
8306     },
8307     [CALIB_SENSOR_AEC_V21_TIMEDOT_TAG_ID]         =
8308     {   "TimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8309         check_tags_array_ignore, NULL
8310     },
8311     [CALIB_SENSOR_AEC_V21_GAINDOT_TAG_ID]         =
8312     {   "GainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8313         check_tags_array_ignore, NULL
8314     },
8315     [CALIB_SENSOR_AEC_V21_ISPDGAINDOT_TAG_ID]         =
8316     {   "IspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8317         check_tags_array_ignore, NULL
8318     },
8319     [CALIB_SENSOR_AEC_V21_PIRISDOT_TAG_ID]         =
8320     {   "PIrisDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8321         check_tags_array_ignore, NULL
8322     },
8323     [CALIB_SENSOR_AEC_V21_LTIMEDOT_TAG_ID]         =
8324     {   "LTimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8325         check_tags_array_ignore, NULL
8326     },
8327     [CALIB_SENSOR_AEC_V21_MTIMEDOT_TAG_ID]         =
8328     {   "MTimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8329         check_tags_array_ignore, NULL
8330     },
8331     [CALIB_SENSOR_AEC_V21_STIMEDOT_TAG_ID]         =
8332     {   "STimeDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8333         check_tags_array_ignore, NULL
8334     },
8335     [CALIB_SENSOR_AEC_V21_LGAINDOT_TAG_ID]         =
8336     {   "LGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8337         check_tags_array_ignore, NULL
8338     },
8339     [CALIB_SENSOR_AEC_V21_MGAINDOT_TAG_ID]         =
8340     {   "MGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8341         check_tags_array_ignore, NULL
8342     },
8343     [CALIB_SENSOR_AEC_V21_SGAINDOT_TAG_ID]         =
8344     {   "SGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8345         check_tags_array_ignore, NULL
8346     },
8347     [CALIB_SENSOR_AEC_V21_LISPDGAINDOT_TAG_ID]         =
8348     {   "LIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8349         check_tags_array_ignore, NULL
8350     },
8351     [CALIB_SENSOR_AEC_V21_MISPDGAINDOT_TAG_ID]         =
8352     {   "MIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8353         check_tags_array_ignore, NULL
8354     },
8355     [CALIB_SENSOR_AEC_V21_SISPDGAINDOT_TAG_ID]         =
8356     {   "SIspDGainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8357         check_tags_array_ignore, NULL
8358     },
8359 
8360     [CALIB_SENSOR_AEC_V21_IRISCTRL_TAG_ID]      =
8361     {   "AecIrisCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8362         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_v21_sub_tags), NULL
8363     },
8364     [CALIB_SENSOR_AEC_V21_IRISCTRL_ENABLE_TAG_ID]       =
8365     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8366         check_tags_array_ignore, NULL
8367     },
8368     [CALIB_SENSOR_AEC_V21_IRISCTRL_TYPE_TAG_ID]     =
8369     {   "IrisType", CALIB_TAG_TYPE_CHAR, {-1, -1},
8370         check_tags_array_ignore, NULL
8371     },
8372     [CALIB_SENSOR_AEC_V21_IRISCTRL_TYPE_P_TAG_ID]       =
8373     {   "P", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8374         check_tags_array_ignore, NULL
8375     },
8376     [CALIB_SENSOR_AEC_V21_IRISCTRL_TYPE_DC_TAG_ID]      =
8377     {   "DC", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8378         check_tags_array_ignore, NULL
8379     },
8380     [CALIB_SENSOR_AEC_V21_IRISCTRL_TYPE_HDC_TAG_ID]      =
8381     {   "HDC", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8382         check_tags_array_ignore, NULL
8383     },
8384 
8385     [CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_TAG_ID]         =
8386     {   "PIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8387         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_PAttr_v21_sub_tags), NULL
8388     },
8389     [CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_TOTALSTEP_TAG_ID]     =
8390     {   "TotalStep", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8391         check_tags_array_ignore, NULL
8392     },
8393     [CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_EFFCSTEP_TAG_ID]      =
8394     {   "EffcStep", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8395         check_tags_array_ignore, NULL
8396     },
8397     [CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_ZEROISMAX_TAG_ID]     =
8398     {   "ZeroIsMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8399         check_tags_array_ignore, NULL
8400     },
8401     [CALIB_SENSOR_AEC_V21_IRISCTRL_P_ATTR_STEPTABLE_TAG_ID]     =
8402     {   "StepTable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8403         check_tags_array_ignore, NULL
8404     },
8405 
8406     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_TAG_ID]      =
8407     {   "DCIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8408         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_DCAttr_v21_sub_tags), NULL
8409     },
8410     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KP_TAG_ID]       =
8411     {   "Kp", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8412         check_tags_array_ignore, NULL
8413     },
8414     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KI_TAG_ID]       =
8415     {   "Ki", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8416         check_tags_array_ignore, NULL
8417     },
8418     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_KD_TAG_ID]       =
8419     {   "Kd", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8420         check_tags_array_ignore, NULL
8421     },
8422     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_MIN_PWMDUTY_TAG_ID]      =
8423     {   "MinPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8424         check_tags_array_ignore, NULL
8425     },
8426     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_MAX_PWMDUTY_TAG_ID]      =
8427     {   "MaxPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8428         check_tags_array_ignore, NULL
8429     },
8430     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_OPEN_PWMDUTY_TAG_ID]      =
8431     {   "OpenPwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8432         check_tags_array_ignore, NULL
8433     },
8434     [CALIB_SENSOR_AEC_V21_IRISCTRL_DC_ATTR_CLOSE_PWMDUTY_TAG_ID]      =
8435     {   "ClosePwmDuty", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8436         check_tags_array_ignore, NULL
8437     },
8438 
8439     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_TAG_ID]      =
8440     {   "HDCIrisAttr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8441         check_tags_array_info(calib_sensor_aec_AecIrisCtrl_HDCAttr_sub_tags), NULL
8442     },
8443     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_DAMPOVER_TAG_ID]       =
8444     {   "DampOver", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8445         check_tags_array_ignore, NULL
8446     },
8447     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_DAMPUNDER_TAG_ID]       =
8448     {   "DampUnder", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8449         check_tags_array_ignore, NULL
8450     },
8451     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZEROISMAX_TAG_ID]       =
8452     {   "ZeroIsMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8453         check_tags_array_ignore, NULL
8454     },
8455     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_MINTARGET_TAG_ID]       =
8456     {   "MinTarget", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8457         check_tags_array_ignore, NULL
8458     },
8459     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_MAXTARGET_TAG_ID]       =
8460     {   "MaxTarget", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8461         check_tags_array_ignore, NULL
8462     },
8463     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZOOMTARGETDOT_TAG_ID]       =
8464     {   "ZoomTargetDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8465         check_tags_array_ignore, NULL
8466     },
8467     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_ZOOMDOT_TAG_ID]       =
8468     {   "ZoomDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8469         check_tags_array_ignore, NULL
8470     },
8471     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_IRISTARGETDOT_TAG_ID]       =
8472     {   "IrisTargetDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8473         check_tags_array_ignore, NULL
8474     },
8475     [CALIB_SENSOR_AEC_V21_IRISCTRL_HDC_ATTR_GAINDOT_TAG_ID]       =
8476     {   "GainDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8477         check_tags_array_ignore, NULL
8478     },
8479 
8480     [CALIB_SENSOR_AEC_V21_MANUALCTRL_TAG_ID]         =
8481     {   "AecManualCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8482         check_tags_array_info(calib_sensor_aec_AecManualCtrl_v21_sub_tags), NULL
8483     },
8484     [CALIB_SENSOR_AEC_V21_MANUALCTRL_LINEARAE_TAG_ID]         =
8485     {   "LinearAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8486         check_tags_array_info(calib_sensor_aec_AecManualCtrl_LinearAE_v21_sub_tags), NULL
8487     },
8488     [CALIB_SENSOR_AEC_V21_MANUALCTRL_HDRAE_TAG_ID]         =
8489     {   "HdrAE", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8490         check_tags_array_info(calib_sensor_aec_AecManualCtrl_HdrAE_v21_sub_tags), NULL
8491     },
8492     [CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEEN_TAG_ID]         =
8493     {   "ManualTimeEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8494         check_tags_array_ignore, NULL
8495     },
8496     [CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINEN_TAG_ID]         =
8497     {   "ManualGainEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8498         check_tags_array_ignore, NULL
8499     },
8500     [CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINEN_TAG_ID]         =
8501     {   "ManualIspDgainEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8502         check_tags_array_ignore, NULL
8503     },
8504     [CALIB_SENSOR_AEC_V21_MANUALCTRL_IRISEN_TAG_ID]         =
8505     {   "ManualIrisEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8506         check_tags_array_ignore, NULL
8507     },
8508     [CALIB_SENSOR_AEC_V21_MANUALCTRL_TIMEVALUE_TAG_ID]         =
8509     {   "TimeValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8510         check_tags_array_ignore, NULL
8511     },
8512     [CALIB_SENSOR_AEC_V21_MANUALCTRL_GAINVALUE_TAG_ID]         =
8513     {   "GainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8514         check_tags_array_ignore, NULL
8515     },
8516     [CALIB_SENSOR_AEC_V21_MANUALCTRL_ISPDGAINVALUE_TAG_ID]         =
8517     {   "IspDGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8518         check_tags_array_ignore, NULL
8519     },
8520     [CALIB_SENSOR_AEC_V21_MANUALCTRL_PIRISVALUE_TAG_ID]         =
8521     {   "PIrisGainValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8522         check_tags_array_ignore, NULL
8523     },
8524     [CALIB_SENSOR_AEC_V21_MANUALCTRL_DCIRISVALUE_TAG_ID]        =
8525     {   "DCIrisValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8526         check_tags_array_ignore, NULL
8527     },
8528     [CALIB_SENSOR_AEC_V21_MANUALCTRL_HDCIRISVALUE_TAG_ID]        =
8529     {   "HDCIrisValue", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8530         check_tags_array_ignore, NULL
8531     },
8532     [CALIB_SENSOR_AEC_V21_ENVLVCALIB_TAG_ID]      =
8533     {   "AecEnvLvCalib", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8534         check_tags_array_info(calib_sensor_aec_AecEnvLvCalib_v21_sub_tags), NULL
8535     },
8536     [CALIB_SENSOR_AEC_V21_ENVLVCALIB_CALIBFNUMBER_TAG_ID]         =
8537     {   "CalibFNumber", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8538         check_tags_array_ignore, NULL
8539     },
8540     [CALIB_SENSOR_AEC_V21_ENVLVCALIB_CURVECOEFF_TAG_ID]      =
8541     {   "CurveCoeff", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8542         check_tags_array_ignore, NULL
8543     },
8544 
8545     [CALIB_SENSOR_AEC_V21_LINEARAE_CTRL_TAG_ID]         =
8546     {   "LinearAECtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8547         check_tags_array_info(calib_sensor_aec_LinearAECtrl_v21_sub_tags), NULL
8548     },
8549     [CALIB_SENSOR_AEC_V21_RAWSTATS_EN_TAG_ID]         =
8550     {   "RawStatsEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8551         check_tags_array_ignore, NULL
8552     },
8553     [CALIB_SENSOR_AEC_V21_SETPOINT_TAG_ID]         =
8554     {   "SetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8555         check_tags_array_ignore, NULL
8556     },
8557     [CALIB_SENSOR_AEC_V21_NIGHTSETPOINT_TAG_ID]         =
8558     {   "NightSetpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8559         check_tags_array_ignore, NULL
8560     },
8561     [CALIB_SENSOR_AEC_V21_DYSETPOINTEN_TAG_ID]         =
8562     {   "DySetPointEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8563         check_tags_array_ignore, NULL
8564     },
8565     [CALIB_SENSOR_AEC_V21_DYNAMICSETPOINT_TAG_ID]         =
8566     {   "DynamicSetpoint", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8567         check_tags_array_info(calib_sensor_aec_DySetPointEn_v21_sub_tags), NULL
8568     },
8569     [CALIB_SENSOR_AEC_V21_EXPLEVEL_TAG_ID]         =
8570     {   "ExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8571         check_tags_array_ignore, NULL
8572     },
8573     [CALIB_SENSOR_AEC_V21_DYSETPOINT_TAG_ID]         =
8574     {   "DySetpoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8575         check_tags_array_ignore, NULL
8576     },
8577     [CALIB_SENSOR_AEC_V21_TOLERANCE_IN_TAG_ID]         =
8578     {   "ToleranceIn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8579         check_tags_array_ignore, NULL
8580     },
8581     [CALIB_SENSOR_AEC_V21_TOLERANCE_OUT_TAG_ID]         =
8582     {   "ToleranceOut", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8583         check_tags_array_ignore, NULL
8584     },
8585     [CALIB_SENSOR_AEC_V21_STRATEGYMODE_TAG_ID]         =
8586     {   "StrategyMode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8587         check_tags_array_ignore, NULL
8588     },
8589     [CALIB_SENSOR_AEC_V21_STRATEGYMODE_LOWLIGHT_TAG_ID]         =
8590     {   "LOWLIGHT_PRIOR", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8591         check_tags_array_ignore, NULL
8592     },
8593     [CALIB_SENSOR_AEC_V21_STRATEGYMODE_HIGHLIGHT_TAG_ID]         =
8594     {   "HIGHLIGHT_PRIOR", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8595         check_tags_array_ignore, NULL
8596     },
8597     [CALIB_SENSOR_AEC_V21_EVBIAS_TAG_ID]         =
8598     {   "Evbias", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8599         check_tags_array_ignore, NULL
8600     },
8601 
8602     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_CONFIG_TAG_ID]         =
8603     {   "BackLightCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8604         check_tags_array_info(calib_sensor_aec_BackLight_v21_sub_tags), NULL
8605     },
8606     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_ENABLE_TAG_ID]         =
8607     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8608         check_tags_array_ignore, NULL
8609     },
8610     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_TAG_ID]       =
8611     {   "MeasArea", CALIB_TAG_TYPE_CHAR, {-1, -1},
8612         check_tags_array_ignore, NULL
8613     },
8614     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_AUTO_TAG_ID]      =
8615     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8616         check_tags_array_ignore, NULL
8617     },
8618     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_CENTER_TAG_ID]        =
8619     {   "CENTER", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8620         check_tags_array_ignore, NULL
8621     },
8622     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_LEFT_TAG_ID]      =
8623     {   "LEFT", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8624         check_tags_array_ignore, NULL
8625     },
8626     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_RIGHT_TAG_ID]         =
8627     {   "RIGHT", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8628         check_tags_array_ignore, NULL
8629     },
8630     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_UP_TAG_ID]        =
8631     {   "UP", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8632         check_tags_array_ignore, NULL
8633     },
8634     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_MEASAREA_BOTTOM_TAG_ID]        =
8635     {   "BOTTOM", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8636         check_tags_array_ignore, NULL
8637     },
8638     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_OEROI_LOWTH_TAG_ID]         =
8639     {   "OEROILowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8640         check_tags_array_ignore, NULL
8641     },
8642     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LV_LOWTH_TAG_ID]         =
8643     {   "LvLowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8644         check_tags_array_ignore, NULL
8645     },
8646     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LV_HIGHTH_TAG_ID]         =
8647     {   "LvHighTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8648         check_tags_array_ignore, NULL
8649     },
8650     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_NONOEPDFTH_TAG_ID]         =
8651     {   "NonOEPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8652         check_tags_array_ignore, NULL
8653     },
8654     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LOWLIGHTPDFTH_TAG_ID]         =
8655     {   "LowLightPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8656         check_tags_array_ignore, NULL
8657     },
8658     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_EXPLEVEL_TAG_ID]         =
8659     {   "ExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8660         check_tags_array_ignore, NULL
8661     },
8662     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_TARGETLLLUMA_TAG_ID]         =
8663     {   "TargetLLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8664         check_tags_array_ignore, NULL
8665     },
8666     [CALIB_SENSOR_AEC_V21_LINAECTRL_BACKLIGHT_LUMADISTTH_TAG_ID]         =
8667     {   "LumaDistTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8668         check_tags_array_ignore, NULL
8669     },
8670 
8671     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_CONTROL_TAG_ID]         =
8672     {   "OverExpCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8673         check_tags_array_info(calib_sensor_aec_OverExp_v21_sub_tags), NULL
8674     },
8675     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_ENABLE_TAG_ID]         =
8676     {   "Enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8677         check_tags_array_ignore, NULL
8678     },
8679     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_HIGHLIGHT_TH_TAG_ID]         =
8680     {   "HighLightTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8681         check_tags_array_ignore, NULL
8682     },
8683     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_LOWLIGHT_TH_TAG_ID]      =
8684     {   "LowLightTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8685         check_tags_array_ignore, NULL
8686     },
8687     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_MAXWEIGHT_TAG_ID]        =
8688     {   "MaxWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8689         check_tags_array_ignore, NULL
8690     },
8691     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_OEPDF_TAG_ID]        =
8692     {   "OEpdf", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8693         check_tags_array_ignore, NULL
8694     },
8695     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_HIGHLIGHT_WEIGHT_TAG_ID]         =
8696     {   "HighLightWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8697         check_tags_array_ignore, NULL
8698     },
8699     [CALIB_SENSOR_AEC_V21_LINAECTRL_OVEREXP_LOWLIGHT_WEIGHT_TAG_ID]      =
8700     {   "LowLightWeight", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8701         check_tags_array_ignore, NULL
8702     },
8703 
8704     [CALIB_SENSOR_AEC_V21_HDRAECTRL_TAG_ID]         =
8705     {   "HdrAECtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8706         check_tags_array_info(calib_sensor_aec_HdrAECtrl_v21_sub_tags), NULL
8707     },
8708     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_TAG_ID]         =
8709     {   "LongFrmMode", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8710         check_tags_array_info(calib_sensor_aec_LongFrmMode_v21_sub_tags), NULL
8711     },
8712     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_MODE_TAG_ID]         =
8713     {   "mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8714         check_tags_array_ignore, NULL
8715     },
8716     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_NORMAL_TAG_ID]         =
8717     {   "NORMAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8718         check_tags_array_ignore, NULL
8719     },
8720     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_LONGFRAME_TAG_ID]         =
8721     {   "LONGFRAME", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8722         check_tags_array_ignore, NULL
8723     },
8724     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_AUTO_LONGFRAME_TAG_ID]         =
8725     {   "AUTO_LONGFRAME", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8726         check_tags_array_ignore, NULL
8727     },
8728     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_SFRMMINLINE_TAG_ID]         =
8729     {   "SfrmMinLine", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8730         check_tags_array_ignore, NULL
8731     },
8732     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LONGFRMMODE_LFRMMODEEXPTH_TAG_ID]         =
8733     {   "LfrmModeExpTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8734         check_tags_array_ignore, NULL
8735     },
8736     [CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOCTRL_TAG_ID]         =
8737     {   "ExpRatioCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8738         check_tags_array_info(calib_sensor_aec_ExpRatioCtrl_v21_sub_tags), NULL
8739     },
8740     [CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOTYPE_TAG_ID]         =
8741     {   "ExpRatioType", CALIB_TAG_TYPE_CHAR, {-1, -1},
8742         check_tags_array_ignore, NULL
8743     },
8744     [CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOTYPE_AUTO_TAG_ID]         =
8745     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8746         check_tags_array_ignore, NULL
8747     },
8748     [CALIB_SENSOR_AEC_V21_HDRAECTRL_EXPRATIOTYPE_FIX_TAG_ID]         =
8749     {   "FIX", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8750         check_tags_array_ignore, NULL
8751     },
8752     [CALIB_SENSOR_AEC_V21_HDRAECTRL_RATIOEXPDOT_TAG_ID]         =
8753     {   "RatioExpDot", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8754         check_tags_array_ignore, NULL
8755     },
8756     [CALIB_SENSOR_AEC_V21_HDRAECTRL_M2SRATIOFIX_TAG_ID]         =
8757     {   "M2SRatioFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8758         check_tags_array_ignore, NULL
8759     },
8760     [CALIB_SENSOR_AEC_V21_HDRAECTRL_L2MRATIOFIX_TAG_ID]         =
8761     {   "L2MRatioFix", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8762         check_tags_array_ignore, NULL
8763     },
8764     [CALIB_SENSOR_AEC_V21_HDRAECTRL_M2SRATIOMAX_TAG_ID]         =
8765     {   "M2SRatioMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8766         check_tags_array_ignore, NULL
8767     },
8768     [CALIB_SENSOR_AEC_V21_HDRAECTRL_L2MRATIOMAX_TAG_ID]         =
8769     {   "L2MRatioMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8770         check_tags_array_ignore, NULL
8771     },
8772     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LUMADISTTH_TAG_ID]         =
8773     {   "LumaDistTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8774         check_tags_array_ignore, NULL
8775     },
8776 
8777     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LFRAMECTRL_TAG_ID]         =
8778     {   "LframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8779         check_tags_array_info(calib_sensor_aec_LframeCtrl_v21_sub_tags), NULL
8780     },
8781     [CALIB_SENSOR_AEC_V21_HDRAECTRL_OEROILOWTH_TAG_ID]         =
8782     {   "OEROILowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8783         check_tags_array_ignore, NULL
8784     },
8785     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LVHIGHTH_TAG_ID]         =
8786     {   "LvHighTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8787         check_tags_array_ignore, NULL
8788     },
8789     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LVLOWTH_TAG_ID]         =
8790     {   "LvLowTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8791         check_tags_array_ignore, NULL
8792     },
8793     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LEXPLEVEL_TAG_ID]         =
8794     {   "LExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8795         check_tags_array_ignore, NULL
8796     },
8797     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LSETPOINT_TAG_ID]         =
8798     {   "LSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8799         check_tags_array_ignore, NULL
8800     },
8801     [CALIB_SENSOR_AEC_V21_HDRAECTRL_TARGETLLLUMA_TAG_ID]         =
8802     {   "TargetLLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8803         check_tags_array_ignore, NULL
8804     },
8805     [CALIB_SENSOR_AEC_V21_HDRAECTRL_NONOEPDFTH_TAG_ID]         =
8806     {   "NonOEPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8807         check_tags_array_ignore, NULL
8808     },
8809     [CALIB_SENSOR_AEC_V21_HDRAECTRL_LOWLIGHTPDFTH_TAG_ID]         =
8810     {   "LowLightPdfTh", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8811         check_tags_array_ignore, NULL
8812     },
8813 
8814     [CALIB_SENSOR_AEC_V21_HDRAECTRL_MFRAMECTRL_TAG_ID]         =
8815     {   "MframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8816         check_tags_array_info(calib_sensor_aec_MframeCtrl_v21_sub_tags), NULL
8817     },
8818     [CALIB_SENSOR_AEC_V21_HDRAECTRL_MEXPLEVEL_TAG_ID]         =
8819     {   "MExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8820         check_tags_array_ignore, NULL
8821     },
8822     [CALIB_SENSOR_AEC_V21_HDRAECTRL_MSETPOINT_TAG_ID]         =
8823     {   "MSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8824         check_tags_array_ignore, NULL
8825     },
8826 
8827     [CALIB_SENSOR_AEC_V21_HDRAECTRL_SFRAMECTRL_TAG_ID]         =
8828     {   "SframeCtrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8829         check_tags_array_info(calib_sensor_aec_SframeCtrl_v21_sub_tags), NULL
8830     },
8831     [CALIB_SENSOR_AEC_V21_HDRAECTRL_SEXPLEVEL_TAG_ID]         =
8832     {   "SExpLevel", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8833         check_tags_array_ignore, NULL
8834     },
8835     [CALIB_SENSOR_AEC_V21_HDRAECTRL_SSETPOINT_TAG_ID]         =
8836     {   "SSetPoint", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8837         check_tags_array_ignore, NULL
8838     },
8839     [CALIB_SENSOR_AEC_V21_HDRAECTRL_TARGETHLLUMA_TAG_ID]         =
8840     {   "TargetHLLuma", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8841         check_tags_array_ignore, NULL
8842     },
8843     [CALIB_SENSOR_AEC_V21_HDRAECTRL_HLROIEXPANDEN_TAG_ID]         =
8844     {   "HLROIExpandEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8845         check_tags_array_ignore, NULL
8846     },
8847     [CALIB_SENSOR_AEC_V21_HDRAECTRL_HLLUMATOLERANCE_TAG_ID]         =
8848     {   "HLLumaTolerance", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8849         check_tags_array_ignore, NULL
8850     },
8851 
8852     // System
8853     [CALIB_SYSTEM_TAG_ID]         =
8854     {   "system", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8855         check_tags_array_info(calib_system_sub_tags), NULL
8856     },
8857 
8858     [CALIB_SYSTEM_HDR_TAG_ID]         =
8859     {   "HDR", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8860         check_tags_array_info(calib_system_hdr_sub_tags), NULL
8861     },
8862     [CALIB_SYSTEM_HDR_ENABLE_TAG_ID]         =
8863     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8864         check_tags_array_ignore, NULL
8865     },
8866     [CALIB_SYSTEM_HDR_SUPPORT_MODE_TAG_ID]         =
8867     {   "support_mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8868         check_tags_array_ignore, NULL
8869     },
8870     [CALIB_SYSTEM_HDR_LINE_MODE_TAG_ID]         =
8871     {   "line_mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
8872         check_tags_array_ignore, NULL
8873     },
8874 
8875     [CALIB_SYSTEM_DCG_SETTING_TAG_ID]         =
8876     {   "DCG_SETTING", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8877         check_tags_array_info(calib_system_DCG_SETTING_sub_tags), NULL
8878     },
8879     [CALIB_SYSTEM_DCG_SETTING_NORMAL_TAG_ID]         =
8880     {   "Normal", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8881         check_tags_array_info(calib_system_DCG_SETTING_Normal_sub_tags), NULL
8882     },
8883     [CALIB_SYSTEM_DCG_SETTING_HDR_TAG_ID]         =
8884     {   "Hdr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8885         check_tags_array_info(calib_system_DCG_SETTING_Hdr_sub_tags), NULL
8886     },
8887     [CALIB_SYSTEM_DCG_SUPPORT_EN_TAG_ID]         =
8888     {   "support_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8889         check_tags_array_ignore, NULL
8890     },
8891     [CALIB_SYSTEM_DCG_OPTYPE_TAG_ID]         =
8892     {   "dcg_optype", CALIB_TAG_TYPE_CHAR, {-1, -1},
8893         check_tags_array_ignore, NULL
8894     },
8895     [CALIB_SYSTEM_DCG_OPTYPE_AUTO_TAG_ID]         =
8896     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8897         check_tags_array_ignore, NULL
8898     },
8899     [CALIB_SYSTEM_DCG_OPTYPE_MANUAL_TAG_ID]         =
8900     {   "MANUAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8901         check_tags_array_ignore, NULL
8902     },
8903     [CALIB_SYSTEM_DCG_MODE_INIT_TAG_ID]         =
8904     {   "dcgmode_init", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8905         check_tags_array_ignore, NULL
8906     },
8907     [CALIB_SYSTEM_DCG_RATIO_TAG_ID]         =
8908     {   "dcg_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8909         check_tags_array_ignore, NULL
8910     },
8911     [CALIB_SYSTEM_DCG_GAINCTRL_TAG_ID]         =
8912     {   "gain_ctrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8913         check_tags_array_info(calib_system_gain_ctrl_sub_tags), NULL
8914     },
8915     [CALIB_SYSTEM_DCG_ENVCTRL_TAG_ID]         =
8916     {   "env_ctrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8917         check_tags_array_info(calib_system_env_ctrl_sub_tags), NULL
8918     },
8919     [CALIB_SYSTEM_DCG_SYNC_SWITCH_TAG_ID]         =
8920     {   "sync_switch", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8921         check_tags_array_ignore, NULL
8922     },
8923     [CALIB_SYSTEM_DCG_ENABLE_TAG_ID]         =
8924     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8925         check_tags_array_ignore, NULL
8926     },
8927     [CALIB_SYSTEM_DCG_LCG2HCG_TH_TAG_ID]         =
8928     {   "lcg2hcg_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8929         check_tags_array_ignore, NULL
8930     },
8931     [CALIB_SYSTEM_DCG_HCG2LCG_TH_TAG_ID]         =
8932     {   "hcg2lcg_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8933         check_tags_array_ignore, NULL
8934     },
8935 
8936     [CALIB_SYSTEM_EXP_DELAY_TAG_ID]         =
8937     {   "EXP_DELAY", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8938         check_tags_array_info(calib_system_EXP_DELAY_sub_tags), NULL
8939     },
8940     [CALIB_SYSTEM_EXP_DELAY_NORMAL_TAG_ID]       =
8941     {   "Normal", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8942         check_tags_array_info(calib_system_EXP_DELAY_Normal_sub_tags), NULL
8943     },
8944     [CALIB_SYSTEM_EXP_DELAY_HDR_TAG_ID]       =
8945     {   "Hdr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8946         check_tags_array_info(calib_system_EXP_DELAY_Hdr_sub_tags), NULL
8947     },
8948     [CALIB_SYSTEM_EXP_DELAY_TIME_TAG_ID]         =
8949     {   "time_delay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8950         check_tags_array_ignore, NULL
8951     },
8952     [CALIB_SYSTEM_EXP_DELAY_GAIN_TAG_ID]         =
8953     {   "gain_delay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8954         check_tags_array_ignore, NULL
8955     },
8956     [CALIB_SYSTEM_EXP_DELAY_DCG_TAG_ID]         =
8957     {   "dcg_delay", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8958         check_tags_array_ignore, NULL
8959     },
8960     // ExpSet
8961     [CALIB_EXPSET_TAG_ID]         =
8962     {   "expset", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8963         check_tags_array_info(calib_expset_sub_tags), NULL
8964     },
8965     [CALIB_EXPSET_GAIN2REG_TAG_ID]         =
8966     {   "Gain2Reg", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8967         check_tags_array_info(calib_expset_gain2reg_sub_tags), NULL
8968     },
8969     [CALIB_EXPSET_GAIN2REG_ISLINEAR_TAG_ID]         =
8970     {   "IsLinear", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8971         check_tags_array_ignore, NULL
8972     },
8973     [CALIB_EXPSET_GAIN2REG_LINEAR_TAG_ID]         =
8974     {   "Linear", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8975         check_tags_array_ignore, NULL
8976     },
8977     [CALIB_EXPSET_GAIN2REG_NONLINEAR_TAG_ID]         =
8978     {   "NonLinear", CALIB_TAG_TYPE_CHAR, {-1, -1},
8979         check_tags_array_ignore, NULL
8980     },
8981     [CALIB_EXPSET_GAIN2REG_NONLINEAR_DB_TAG_ID]         =
8982     {   "DB_MODE", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
8983         check_tags_array_ignore, NULL
8984     },
8985     [CALIB_EXPSET_TIME2REG_TAG_ID]         =
8986     {   "Time2Reg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8987         check_tags_array_ignore, NULL
8988     },
8989     [CALIB_EXPSET_GAINSET_TAG_ID]         =
8990     {   "CISGainSet", CALIB_TAG_TYPE_STRUCT, {-1, -1},
8991         check_tags_array_info(calib_expset_gainset_sub_tags), NULL
8992     },
8993     [CALIB_EXPSET_CISAGAIN_RANGE_TAG_ID]         =
8994     {   "CISAgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8995         check_tags_array_ignore, NULL
8996     },
8997     [CALIB_EXPSET_CISEXTRAAGAIN_RANGE_TAG_ID]         =
8998     {   "CISExtraAgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
8999         check_tags_array_ignore, NULL
9000     },
9001     [CALIB_EXPSET_CISDGAIN_RANGE_TAG_ID]         =
9002     {   "CISDgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9003         check_tags_array_ignore, NULL
9004     },
9005     [CALIB_EXPSET_CISISPDGAIN_RANGE_TAG_ID]         =
9006     {   "CISIspDgainRange", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9007         check_tags_array_ignore, NULL
9008     },
9009     [CALIB_EXPSET_CISHDRGAININDSETEN_TAG_ID]         =
9010     {   "CISHdrGainIndSetEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9011         check_tags_array_ignore, NULL
9012     },
9013     [CALIB_EXPSET_TIMESET_TAG_ID]         =
9014     {   "CISTimeSet", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9015         check_tags_array_info(calib_expset_timeset_sub_tags), NULL
9016     },
9017     [CALIB_EXPSET_TIMESET_NORMAL_TAG_ID]         =
9018     {   "Normal", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9019         check_tags_array_info(calib_expset_timeset_normal_sub_tags), NULL
9020     },
9021     [CALIB_EXPSET_TIMESET_HDR_TAG_ID]         =
9022     {   "Hdr", CALIB_TAG_TYPE_CELL, {-1, -1},
9023         check_tags_array_info(calib_expset_timeset_hdr_sub_tags), NULL
9024     },
9025     [CALIB_EXPSET_NAME_TAG_ID]         =
9026     {   "name", CALIB_TAG_TYPE_CHAR, {-1, -1},
9027         check_tags_array_ignore, NULL
9028     },
9029     [CALIB_EXPSET_CISLINTIMEREG_MAXFAC_TAG_ID]         =
9030     {   "CISTimeRegMaxFac", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9031         check_tags_array_ignore, NULL
9032     },
9033     [CALIB_EXPSET_CISHDRTIMEREG_SUMFAC_TAG_ID]         =
9034     {   "CISTimeRegSumFac", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9035         check_tags_array_ignore, NULL
9036     },
9037     [CALIB_EXPSET_CISTIMEREG_UNEQUALEN_TAG_ID]         =
9038     {   "CISTimeRegUnEqualEn", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9039         check_tags_array_ignore, NULL
9040     },
9041     [CALIB_EXPSET_CISTIMEREG_ODEVITY_TAG_ID]         =
9042     {   "CISTimeRegOdevity", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9043         check_tags_array_ignore, NULL
9044     },
9045     [CALIB_EXPSET_CISTIMEREG_MIN_TAG_ID]         =
9046     {   "CISTimeRegMin", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9047         check_tags_array_ignore, NULL
9048     },
9049     [CALIB_EXPSET_CISTIMEREG_MAX_TAG_ID]         =
9050     {   "CISTimeRegMax", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9051         check_tags_array_ignore, NULL
9052     },
9053     [CALIB_EXPSET_CISMINFPS_TAG_ID]         =
9054     {   "CISMinFps", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9055         check_tags_array_ignore, NULL
9056     },
9057 
9058     [CALIB_EXPSET_HDRSET_TAG_ID]          =
9059     {   "CISHdrSet", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9060         check_tags_array_info(calib_expset_hdrset_sub_tags), NULL
9061     },
9062     [CALIB_EXPSET_HDRSET_ENABLE_TAG_ID]      =
9063     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9064         check_tags_array_ignore, NULL
9065     },
9066     [CALIB_EXPSET_HDRSET_SUPPORT_MODE_TAG_ID]          =
9067     {   "support_mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
9068         check_tags_array_ignore, NULL
9069     },
9070     [CALIB_EXPSET_HDRSET_LINE_MODE_TAG_ID]      =
9071     {   "line_mode", CALIB_TAG_TYPE_CHAR, {-1, -1},
9072         check_tags_array_ignore, NULL
9073     },
9074 
9075     [CALIB_EXPSET_DCGSET_TAG_ID]          =
9076     {   "CISDcgSet", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9077         check_tags_array_info(calib_expset_dcgset_sub_tags), NULL
9078     },
9079     [CALIB_EXPSET_DCGSET_NORMAL_TAG_ID]      =
9080     {   "Normal", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9081         check_tags_array_info(calib_expset_dcgset_normal_sub_tags), NULL
9082     },
9083     [CALIB_EXPSET_DCGSET_HDR_TAG_ID]          =
9084     {   "Hdr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9085         check_tags_array_info(calib_expset_dcgset_hdr_sub_tags), NULL
9086     },
9087     [CALIB_EXPSET_DCGSET_SUPPORT_EN_TAG_ID]      =
9088     {   "support_en", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9089         check_tags_array_ignore, NULL
9090     },
9091     [CALIB_EXPSET_DCGSET_OPTYPE_TAG_ID]      =
9092     {   "dcg_optype", CALIB_TAG_TYPE_CHAR, {-1, -1},
9093         check_tags_array_ignore, NULL
9094     },
9095     [CALIB_EXPSET_DCGSET_OPTYPE_AUTO_TAG_ID]          =
9096     {   "AUTO", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
9097         check_tags_array_ignore, NULL
9098     },
9099     [CALIB_EXPSET_DCGSET_OPTYPE_MANUAL_TAG_ID]      =
9100     {   "MANUAL", CALIB_TAG_TYPE_UNKNOWN, {-1, -1},
9101         check_tags_array_ignore, NULL
9102     },
9103     [CALIB_EXPSET_DCGSET_MODE_INIT_TAG_ID]      =
9104     {   "dcgmode_init", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9105         check_tags_array_ignore, NULL
9106     },
9107     [CALIB_EXPSET_DCGSET_RATIO_TAG_ID]      =
9108     {   "dcg_ratio", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9109         check_tags_array_ignore, NULL
9110     },
9111     [CALIB_EXPSET_DCGSET_GAINCTRL_TAG_ID]          =
9112     {   "gain_ctrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9113         check_tags_array_info(calib_expset_dcgset_gainctrl_sub_tags), NULL
9114     },
9115     [CALIB_EXPSET_DCGSET_ENVCTRL_TAG_ID]          =
9116     {   "env_ctrl", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9117         check_tags_array_info(calib_expset_dcgset_envctrl_sub_tags), NULL
9118     },
9119     [CALIB_EXPSET_DCGSET_SYNC_SWITCH_TAG_ID]          =
9120     {   "sync_switch", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9121         check_tags_array_ignore, NULL
9122     },
9123     [CALIB_EXPSET_DCGSET_ENABLE_TAG_ID]      =
9124     {   "enable", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9125         check_tags_array_ignore, NULL
9126     },
9127     [CALIB_EXPSET_DCGSET_LCG2HCG_TH_TAG_ID]      =
9128     {   "lcg2hcg_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9129         check_tags_array_ignore, NULL
9130     },
9131     [CALIB_EXPSET_DCGSET_HCG2LCG_TH_TAG_ID]      =
9132     {   "hcg2lcg_th", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9133         check_tags_array_ignore, NULL
9134     },
9135 
9136     [CALIB_EXPSET_EXP_UPDATE_TAG_ID]        =
9137     {   "CISExpUpdate", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9138         check_tags_array_info(calib_expset_expupdate_sub_tags), NULL
9139     },
9140     [CALIB_EXPSET_EXP_UPDATE_NORMAL_TAG_ID]      =
9141     {   "Normal", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9142         check_tags_array_info(calib_expset_expupdate_normal_sub_tags), NULL
9143     },
9144     [CALIB_EXPSET_EXP_UPDATE_HDR_TAG_ID]      =
9145     {   "Hdr", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9146         check_tags_array_info(calib_expset_expupdate_hdr_sub_tags), NULL
9147     },
9148     [CALIB_EXPSET_EXP_UPDATE_TIME_TAG_ID]        =
9149     {   "time_update", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9150         check_tags_array_ignore, NULL
9151     },
9152     [CALIB_EXPSET_EXP_UPDATE_GAIN_TAG_ID]        =
9153     {   "gain_update", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9154         check_tags_array_ignore, NULL
9155     },
9156     [CALIB_EXPSET_EXP_UPDATE_DCG_TAG_ID]        =
9157     {   "dcg_update", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9158         check_tags_array_ignore, NULL
9159     },
9160     [CALIB_EXPSET_CISFLIP_TAG_ID]         =
9161     {   "CISFlip", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9162         check_tags_array_ignore, NULL
9163     },
9164 
9165     //Module Info
9166     [CALIB_MODULEINFO_TAG_ID]         =
9167     {   "module", CALIB_TAG_TYPE_STRUCT, {-1, -1},
9168         check_tags_array_info(calib_moduleinfo_sub_tags), NULL
9169     },
9170     [CALIB_MODULEINFO_FNUMBER_TAG_ID]         =
9171     {   "FNumber", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9172         check_tags_array_ignore, NULL
9173     },
9174     [CALIB_MODULEINFO_EFL_TAG_ID]         =
9175     {   "EFL", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9176         check_tags_array_ignore, NULL
9177     },
9178     [CALIB_MODULEINFO_LENS_TRANSMITTANCE_TAG_ID]         =
9179     {   "LensTavg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9180         check_tags_array_ignore, NULL
9181     },
9182     [CALIB_MODULEINFO_IRCUT_TRANSMITTANCE_TAG_ID]         =
9183     {   "IRCutTavg", CALIB_TAG_TYPE_DOUBLE, {-1, -1},
9184         check_tags_array_ignore, NULL
9185     },
9186 
9187 };
9188 
9189 typedef struct calib_tag_check_info_s {
9190     // all sub tags should be checked
9191     uint32_t* checking_tags;
9192     // sub tags array size
9193     uint32_t count;
9194     // check times for each sub tag
9195     int16_t* tag_counts_remain;
9196 } calib_tag_check_info_t;
9197 
calib_check_calc_checksum()9198 uint32_t calib_check_calc_checksum() {
9199 
9200     calib_tag_info_t* tag_info = NULL;
9201     int i = 0, j = 0;
9202     uint32_t checkSum = 0;
9203     int length = 0;
9204     uint32_t value = 0;
9205 
9206     for(i = 0; i < CALIB_IQ_TAG_END; i++) {
9207         length = 0;
9208         tag_info = &(g_calib_tag_infos[i]);
9209 
9210         //add name
9211         if(tag_info->name == NULL) {
9212             LOGE("%s(%d): pls init the taginfo in g_calib_tag_infos first, id:%d, Assert!\n",
9213                  __FUNCTION__, __LINE__, i);
9214             DCT_ASSERT(false);
9215         }
9216 
9217         length = strlen(tag_info->name);
9218         for(j = 0; j < length; j++) {
9219             value = (uint32_t)(tag_info->name[j]);
9220             checkSum += value;
9221         }
9222 
9223         // add type
9224         value = (uint32_t)(tag_info->type);
9225         checkSum += value;
9226 
9227         //add size
9228         value = (uint32_t)(tag_info->size[0]);
9229         checkSum += value;
9230         value = (uint32_t)(tag_info->size[1]);
9231         checkSum += value;
9232     }
9233 
9234     LOGD("%s(%d): checksum:%u \n", __FUNCTION__, __LINE__, checkSum);
9235 
9236     LOGD("%s(%d): exit\n", __FUNCTION__, __LINE__);
9237     return checkSum;
9238 }
9239 
9240 /***************************************************************
9241  * name: calib_check_getID_by_name
9242  * description: called to get tag id from tag name
9243  *
9244  * params:
9245  *  tag_name: current tag name
9246  *  parent_tag_id:  current parent tag id, used to to retrieve the correspoing
9247  *          calib_tag_info_t from g_calib_tag_infos.
9248  *  tag_id:  current tag id, used to to retrieve the correspoing
9249  *          calib_tag_info_t from g_calib_tag_infos.
9250  *
9251  ***************************************************************/
calib_check_getID_by_name(char * tag_name,CALIB_IQ_TAG_ID_T parent_tag_id,CALIB_IQ_TAG_ID_T * tag_id)9252 int calib_check_getID_by_name(char* tag_name, CALIB_IQ_TAG_ID_T parent_tag_id, CALIB_IQ_TAG_ID_T * tag_id ) {
9253 
9254     uint32_t i = 0;
9255     calib_tag_check_info_t* parent_check_info =
9256         (calib_tag_check_info_t*)(g_calib_tag_infos[parent_tag_id].check_info);
9257 
9258     if(parent_tag_id >= CALIB_IQ_TAG_END) {
9259         LOGE("%s(%d): parent_tag_id:%d tag_name:%s --- tag id is is wrong: min:0 max:%d \n",
9260              __FUNCTION__, __LINE__,
9261              parent_tag_id, tag_name, CALIB_IQ_TAG_END);
9262         DCT_ASSERT(false);
9263         return -1;
9264     }
9265 
9266 
9267 #ifdef CALIBDB_CHECK_DEBUG
9268     LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tagname:%s \n",
9269          __FUNCTION__, __LINE__,
9270          parent_tag_id, TAG_NAME(parent_tag_id),
9271          tag_name);
9272 #endif
9273 
9274     if (!parent_check_info) {
9275         LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tag_name:%s --- parent_check_info is NULL, return\n",
9276              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_name);
9277         DCT_ASSERT(false);
9278         return -1;
9279     }
9280 
9281     //find sub tag id == tag_id , then set size to tag_counts_remain
9282     for( i = 0; i < parent_check_info->count; i++) {
9283         if( !strcmp(TAG_NAME(parent_check_info->checking_tags[i]), tag_name)) {
9284             *tag_id = (CALIB_IQ_TAG_ID_T)parent_check_info->checking_tags[i];
9285             break;
9286         }
9287     }
9288 
9289     if(i < parent_check_info->count) {
9290         return 0;
9291     } else {
9292         LOGE("%s(%d): subtag: %s from parent tag: %s is unknown, assert!!!\n",
9293              __FUNCTION__, __LINE__, tag_name, TAG_NAME(parent_tag_id));
9294         DCT_ASSERT(false);
9295         return -1;
9296     }
9297 }
9298 
9299 /***************************************************************
9300  * name: calib_check_tag_attrs
9301  * description: called when entering tag. check tag's attributes.
9302  *
9303  * params:
9304  *  tag_id: current tag id, used to to retrieve the correspoing
9305  *          calib_tag_info_t from g_calib_tag_infos.
9306  *  size: the current tag's size parsed from xml
9307  *  type: the current tag's type parsed from xml
9308  *
9309  ***************************************************************/
calib_check_cell_set_size(CALIB_IQ_TAG_ID_T tag_id,CALIB_IQ_TAG_ID_T parent_tag_id,int size)9310 int calib_check_cell_set_size(CALIB_IQ_TAG_ID_T tag_id, CALIB_IQ_TAG_ID_T parent_tag_id, int size) {
9311 
9312     calib_tag_info_t* tag_info = &(g_calib_tag_infos[tag_id]);
9313     calib_tag_check_info_t* parent_check_info =
9314         (calib_tag_check_info_t*)(g_calib_tag_infos[parent_tag_id].check_info);
9315 
9316     if(tag_id >= CALIB_IQ_TAG_END || parent_tag_id >= CALIB_IQ_TAG_END) {
9317         LOGE("%s(%d): parent_tag_id:%d tag_id:%d tag_name:%s --- tag id is is wrong: min:0 max:%d \n",
9318              __FUNCTION__, __LINE__,
9319              parent_tag_id, tag_id, TAG_NAME(tag_id), CALIB_IQ_TAG_END);
9320         DCT_ASSERT(false);
9321         return -1;
9322     }
9323 
9324 #ifdef CALIBDB_CHECK_DEBUG
9325     LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tag id:%d tagname:%s size:%d \n",
9326          __FUNCTION__, __LINE__,
9327          parent_tag_id, TAG_NAME(parent_tag_id),
9328          tag_id, TAG_NAME(tag_id), size);
9329 #endif
9330 
9331     if (!parent_check_info || !tag_info) {
9332         LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tag_id:%d tag_name:%s --- invalid pointer, return\n",
9333              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9334         DCT_ASSERT(false);
9335         return -1;
9336     }
9337 
9338     if(tag_info->type == CALIB_TAG_TYPE_CELL) {
9339         //find sub tag id == tag_id , then set size to tag_counts_remain
9340         for(uint32_t i = 0; i < parent_check_info->count; i++) {
9341             if(parent_check_info->checking_tags[i] == tag_id) {
9342                 parent_check_info->tag_counts_remain[i] = size;
9343             }
9344         }
9345     }
9346 
9347     return 0;
9348 }
9349 
9350 
9351 /***************************************************************
9352  * name: calib_check_tag_attrs
9353  * description: called when entering tag. check tag's attributes.
9354  *
9355  * params:
9356  *  tag_id: current tag id, used to to retrieve the correspoing
9357  *          calib_tag_info_t from g_calib_tag_infos.
9358  *  size: the current tag's size parsed from xml
9359  *  type: the current tag's type parsed from xml
9360  *
9361  ***************************************************************/
calib_check_tag_attrs(CALIB_IQ_TAG_ID_T tag_id,uint32_t type,int size,CALIB_IQ_TAG_ID_T parent_tag_id)9362 int calib_check_tag_attrs(CALIB_IQ_TAG_ID_T tag_id,
9363                           uint32_t type,
9364                           int size,
9365                           CALIB_IQ_TAG_ID_T parent_tag_id)
9366 {
9367     calib_tag_info_t* tag_info = &(g_calib_tag_infos[tag_id]);
9368 
9369     if(tag_id >= CALIB_IQ_TAG_END || parent_tag_id >= CALIB_IQ_TAG_END) {
9370         LOGE("%s(%d): parent_tag_id:%d tag_id:%d --- tag id is is wrong: min:0 max:%d \n",
9371              __FUNCTION__, __LINE__, parent_tag_id, tag_id, CALIB_IQ_TAG_END);
9372         goto failure;
9373     }
9374 
9375 #ifdef CALIBDB_CHECK_DEBUG
9376     LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tag id:%d tagname:%s \n",
9377          __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9378 #endif
9379 
9380     if (!tag_info) {
9381         LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag_id:%d tag_name:%s  --- tag_info is NULL \n",
9382              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9383         goto failure;
9384     }
9385 
9386     if(size <= 0) {
9387         LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag_id:%d tag_name:%s  --- tag size:%d is wrong \n",
9388              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id), size);
9389         goto failure;
9390     }
9391 
9392     // check type
9393     if(tag_info->type != type) {
9394         LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag_id:%d tag_name:%s --- tag_info type not match (%d) != (%d) \n",
9395              __FUNCTION__, __LINE__,
9396              parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id),
9397              tag_info->type, type);
9398         goto failure;
9399     }
9400 
9401     // check size if size is static
9402     if(tag_info->size[0] != -1 && tag_info->size[1] != -1) {
9403         if(tag_info->size[0] * tag_info->size[1] != size) {
9404             LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag_id:%d tag_name:%s --- tag_info size not match (%d) != (%d) \n",
9405                  __FUNCTION__, __LINE__,
9406                  parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id),
9407                  tag_info->size[0] * tag_info->size[1], size);
9408             goto failure;
9409         }
9410     }
9411 
9412     return 0;
9413 
9414 failure:
9415 
9416     LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag_id:%d tag_name:%s --- ASSERT!!!\n",
9417          __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9418 
9419     DCT_ASSERT(false);
9420 
9421     return -1;
9422 
9423 }
9424 
9425 /***************************************************************
9426  * name: calib_check_nonleaf_tag_start
9427  * description: called when entering a non leaf node tag. non leaf
9428  *              node means the node has more than one sub tags.
9429  * params:
9430  *  tag_id: current tag id, used to to retrieve the correspoing
9431  *          calib_tag_info_t from g_calib_tag_infos.
9432  *
9433  ***************************************************************/
calib_check_nonleaf_tag_start(CALIB_IQ_TAG_ID_T tag_id,CALIB_IQ_TAG_ID_T parent_tag_id)9434 int calib_check_nonleaf_tag_start(CALIB_IQ_TAG_ID_T tag_id, CALIB_IQ_TAG_ID_T parent_tag_id)
9435 {
9436     int ret = -1;
9437     // return if tag name is "cell"
9438     // if not the leaf node, generate check tag list
9439     calib_tag_info_t *tag_info = &(g_calib_tag_infos[tag_id]);
9440     calib_tag_check_info_t* check_info =
9441         (calib_tag_check_info_t *)calloc(sizeof(calib_tag_check_info_t), 1);
9442 
9443     if(check_info == NULL) {
9444         LOGE("%s(%d): tag_id:%d tag_name:%s  --- check_info malloc fail \n",
9445              __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9446         goto failure;
9447     }
9448 
9449 #ifdef CALIBDB_CHECK_DEBUG
9450     LOGD("%s(%d): tag id:%d tagname:%s \n",
9451          __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9452 #endif
9453 
9454     if(tag_id >= CALIB_IQ_TAG_END || parent_tag_id >= CALIB_IQ_TAG_END) {
9455         LOGE("%s(%d): tag_id:%d parent_tag_id:%d  --- tag_id is wrong:  min:0 max:%d\n",
9456              __FUNCTION__, __LINE__, tag_id, parent_tag_id, CALIB_IQ_TAG_END);
9457         goto failure;
9458     }
9459 
9460     //mark parent id first
9461     if(tag_id != CALIB_FILESTART_TAG_ID) {
9462         int ret = calib_check_tag_mark(tag_id, parent_tag_id);
9463         if(ret != 0) {
9464             LOGE("%s(%d): tag_id:%d tag_name:%s parent_id:%d parent_name:%s: mark parent error assert !!!\n",
9465                  __FUNCTION__, __LINE__,
9466                  tag_id, TAG_NAME(tag_id),
9467                  parent_tag_id, TAG_NAME(parent_tag_id));
9468             goto failure;
9469         }
9470     }
9471 
9472     if (!check_info) {
9473         LOGE("%s(%d): tag_id:%d tag_name:%s  --- check info malloc fail!\n",
9474              __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9475         goto failure;
9476     }
9477 
9478     if (tag_info->check_info != NULL) {
9479         LOGE("%s(%d): tag_id:%d tag_name:%s  ---  has check info already \n",
9480              __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9481         goto failure;
9482     }
9483 
9484     if (tag_info->sub_tags_array_size > 0) {
9485 #ifdef CALIBDB_CHECK_DEBUG
9486         LOGD("%s(%d): tag_id:%d tag_name:%s --- sub_tags_array_size:%d \n",
9487              __FUNCTION__, __LINE__,
9488              tag_id, TAG_NAME(tag_id),
9489              tag_info->sub_tags_array_size);
9490 #endif
9491         check_info->checking_tags =
9492             (uint32_t *)malloc(tag_info->sub_tags_array_size * sizeof(uint32_t));
9493         if(check_info->checking_tags == NULL) {
9494             LOGE("%s(%d): tag_id:%d tag_name:%s --- checking_tags malloc fail \n",
9495                  __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9496             goto failure;
9497         }
9498         memset(check_info->checking_tags, 0x00,
9499                tag_info->sub_tags_array_size * sizeof(uint32_t));
9500 
9501         memcpy(check_info->checking_tags, tag_info->sub_tags_array,
9502                sizeof(uint32_t) * tag_info->sub_tags_array_size);
9503 
9504         check_info->tag_counts_remain =
9505             (int16_t *)malloc(tag_info->sub_tags_array_size * sizeof(int16_t));
9506         if (!check_info->tag_counts_remain) {
9507             LOGE("%s(%d): tag_id:%d tag_name:%s --- new tag_counts_remain malloc fail \n",
9508                  __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9509             goto failure;
9510         }
9511         for (int32_t i = 0; i < tag_info->sub_tags_array_size; i++ ) {
9512             check_info->tag_counts_remain[i] = 1;
9513         }
9514     }
9515 
9516     check_info->count = tag_info->sub_tags_array_size;
9517     tag_info->check_info = (void*)check_info;
9518 
9519 #ifdef CALIBDB_CHECK_DEBUG
9520     LOGD("%s(%d): tag_id:%d tag_name:%s --- check info:%p  size:%d \n",
9521          __FUNCTION__, __LINE__,
9522          tag_id, TAG_NAME(tag_id),
9523          check_info, check_info->count);
9524 #endif
9525 
9526     return ret;
9527 
9528 failure:
9529     if (check_info) {
9530         if (check_info->tag_counts_remain)
9531             free(check_info->tag_counts_remain);
9532         if (check_info->checking_tags )
9533             free(check_info->checking_tags);
9534         free(check_info);
9535     }
9536 
9537     LOGE("%s(%d): tag_id:%d tag_name:%s --- return failure \n",
9538          __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9539     return ret;
9540 }
9541 
9542 /***************************************************************
9543  * name: calib_check_tag_mark
9544  * description: called for every tag. for non leaf node tag, should
9545  *              be called before calib_check_tag_end.
9546  * params:
9547  *  tag_id: be marked as checked in parent's checking list
9548  *  parent_tag_id: to look for the parents checking list
9549  *  return
9550  *
9551  ***************************************************************/
calib_check_tag_mark(CALIB_IQ_TAG_ID_T tag_id,CALIB_IQ_TAG_ID_T parent_tag_id)9552 int calib_check_tag_mark(CALIB_IQ_TAG_ID_T tag_id, CALIB_IQ_TAG_ID_T parent_tag_id)
9553 {
9554     // remove the checkd tag from parent's checking tag list
9555     calib_tag_check_info_t* parent_check_info =
9556         (calib_tag_check_info_t*)(g_calib_tag_infos[parent_tag_id].check_info);
9557 
9558     if(tag_id >= CALIB_IQ_TAG_END || parent_tag_id >= CALIB_IQ_TAG_END ) {
9559         LOGE("%s(%d): parent_tag_id:%d tag_id:%d --- tag_id is wrong:  min:0 max:%d\n",
9560              __FUNCTION__, __LINE__,
9561              parent_tag_id, tag_id, CALIB_IQ_TAG_END);
9562         DCT_ASSERT(false);
9563         return -1;
9564     }
9565 
9566 #ifdef CALIBDB_CHECK_DEBUG
9567     LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s  tag id:%d tagname:%s \n",
9568          __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9569 #endif
9570 
9571     if (!parent_check_info) {
9572         LOGD("%s(%d): parent_tag_id:%d parent_tag_name:%s tag_id:%d tag_name:%s --- parent_check_info is NULL, return\n",
9573              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9574         DCT_ASSERT(false);
9575         return -1;
9576     }
9577 
9578     bool found_checking_tag = false;
9579     for (uint32_t i = 0; i < parent_check_info->count; i++) {
9580         if (tag_id == parent_check_info->checking_tags[i]) {
9581             if (parent_check_info->tag_counts_remain[i] <= 0 ) {
9582                 LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s tag_id:%d tag_name:%s --- tag_counts_remain <= 0  assert!!!\n",
9583                      __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9584                 DCT_ASSERT(false);
9585                 return -1;
9586             }
9587             parent_check_info->tag_counts_remain[i]--;
9588             found_checking_tag = true;
9589             break;
9590         }
9591     }
9592     if (!found_checking_tag) {
9593         LOGE("%s(%d): parent_tag_id:%d parent_tag_name:%s tag_id:%d tag_name:%s can't find this tag, assert!!!\n",
9594              __FUNCTION__, __LINE__, parent_tag_id, TAG_NAME(parent_tag_id), tag_id, TAG_NAME(tag_id));
9595 #ifdef XML_STRICT_CHECK
9596         DCT_ASSERT(false);
9597         return -1;
9598 #endif
9599     }
9600     return 0;
9601 }
9602 
9603 /***************************************************************
9604  * name: calib_check_nonleaf_tag_end
9605  * description: called when leaving a tag. should be pair called
9606  *              with calib_check_nonleaf_tag_start. check if all
9607  *              needed sub tags have been parsed.
9608  * params:
9609  *  tag_id
9610  *  return
9611  *
9612  ***************************************************************/
calib_check_nonleaf_tag_end(CALIB_IQ_TAG_ID_T tag_id)9613 int calib_check_nonleaf_tag_end(CALIB_IQ_TAG_ID_T tag_id)
9614 {
9615     // return if tag name is "cell"
9616     if(tag_id >= CALIB_IQ_TAG_END) {
9617         LOGE("%s(%d): tag_id:%d --- tag_id is wrong:  min:0 max:%d\n",
9618              __FUNCTION__, __LINE__, tag_id, CALIB_IQ_TAG_END);
9619         return -1;
9620     }
9621 
9622 #ifdef CALIBDB_CHECK_DEBUG
9623     LOGD("%s(%d): tag id:%d tagname:%s \n",
9624          __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9625 #endif
9626 
9627     calib_tag_info_t *tag_info = &(g_calib_tag_infos[tag_id]);
9628     calib_tag_check_info_t* check_info = (calib_tag_check_info_t*)(tag_info->check_info);
9629     if (!check_info) {
9630         LOGD("%s(%d): tag_id:%d tag_name:%s --- has check info already \n",
9631              __FUNCTION__, __LINE__, tag_id, TAG_NAME(tag_id));
9632         return -1;
9633     }
9634 
9635 #ifdef CALIBDB_CHECK_DEBUG
9636     LOGD("%s(%d): check info:%p  size:%d \n",
9637          __FUNCTION__, __LINE__, check_info, check_info->count);
9638 #endif
9639 
9640     // check if all tags have been checked successfully
9641     for (uint32_t i = 0; i < check_info->count; i++) {
9642         if (check_info->tag_counts_remain[i] != 0) {
9643             LOGW("%s(%d): parent_id:%d parent_name:%s tag_id:%d tag_name:%s --- tag_counts_remain[%d]:%d != 0  assert!!!\n",
9644                  __FUNCTION__, __LINE__,
9645                  tag_id,
9646                  TAG_NAME(tag_id),
9647                  check_info->checking_tags[i],
9648                  TAG_NAME(check_info->checking_tags[i]),
9649                  i, check_info->tag_counts_remain[i]);
9650 #ifdef XML_STRICT_CHECK
9651             DCT_ASSERT(false);
9652             return -1;
9653 #endif
9654         }
9655     }
9656     // free check info
9657     if (check_info->tag_counts_remain)
9658         free(check_info->tag_counts_remain);
9659     if (check_info->checking_tags)
9660         free(check_info->checking_tags);
9661 
9662     free(check_info);
9663 
9664     tag_info->check_info = NULL;
9665 
9666     return 0;
9667 }
9668