hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
/*
 * mfnr_head_v1.h
 *
 *  Copyright (c) 2021 Rockchip Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
 
#ifndef __CALIBDBV2_MFNR_HEADER_V1_H__
#define __CALIBDBV2_MFNR_HEADER_V1_H__
 
#include <rk_aiq_comm.h>
 
RKAIQ_BEGIN_DECLARE
 
///////////////////////////mfnr//////////////////////////////////////
typedef struct CalibDbV2_MFNR_CalibPara_Setting_ISO_s{
    // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2")
    float iso;
 
    // M4_ARRAY_DESC("noise_curve", "f32", M4_SIZE(1,5), M4_RANGE(-65535,65535), "[-8.4303162971622996e-013,7.9640341802261105e-009,-2.6912484620871701e-005,3.3049135399760801e-002,1.8211244079810101e+001]", M4_DIGIT(6), M4_DYNAMIC(0))
    float noise_curve[5];    
    // M4_NUMBER_DESC("noise_curve_x00", "f32", M4_RANGE(0.0, 4095), "3647", M4_DIGIT(0))
    float noise_curve_x00;
    // M4_ARRAY_DESC("y_lo_noiseprofile", "f32", M4_SIZE(1,4), M4_RANGE(0,1), "[1.00000,0.68993,0.41986,0.24798]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_lo_noiseprofile[4];
    // M4_ARRAY_DESC("y_hi_noiseprofile", "f32", M4_SIZE(1,4), M4_RANGE(0,1), "[0.77114,0.62293,0.46145,0.00000]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_hi_noiseprofile[4];
    // M4_ARRAY_DESC("uv_lo_noiseprofile", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[1.00000,0.68993,0.41986]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_lo_noiseprofile[3];
    // M4_ARRAY_DESC("uv_hi_noiseprofile", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[0.77114,0.62293,0.35740]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_hi_noiseprofile[3];
}CalibDbV2_MFNR_CalibPara_Setting_ISO_t;
 
typedef struct CalibDbV2_MFNR_CalibPara_Setting_s{
    // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1")
    char *SNR_Mode;
    // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0))
    char *Sensor_Mode;
    // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list")
    CalibDbV2_MFNR_CalibPara_Setting_ISO_t *Calib_ISO;
    int Calib_ISO_len;
}CalibDbV2_MFNR_CalibPara_Setting_t;
 
typedef struct CalibDbV2_MFNR_CalibPara_s{
    // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list")
    CalibDbV2_MFNR_CalibPara_Setting_t *Setting;
    int Setting_len;
}CalibDbV2_MFNR_CalibPara_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_ISO_Luma_s{
    // M4_ARRAY_DESC("y_lumanrpoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0.0000,32.0000,64.0000,128.0000,192.0000,256.0000]", M4_DIGIT(0), M4_DYNAMIC(0))
    float y_lumanrpoint[6];
    // M4_ARRAY_DESC("y_lumanrcurve", "f32", M4_SIZE(1,6), M4_RANGE(0,2.0), "[1.0,1.0,1.0,1.0,1.0,1.0]", M4_DIGIT(2), M4_DYNAMIC(0))
    float y_lumanrcurve[6];
    // M4_ARRAY_DESC("uv_lumanrpoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0.0000,32.0000,64.0000,128.0000,192.0000,256.0000]", M4_DIGIT(0), M4_DYNAMIC(0))
    float uv_lumanrpoint[6];
    // M4_ARRAY_DESC("uv_lumanrcurve", "f32", M4_SIZE(1,6), M4_RANGE(0,2.0), "[1.0,1.0,1.0,1.0,1.0,1.0]", M4_DIGIT(2), M4_DYNAMIC(0))
    float uv_lumanrcurve[6];
}CalibDbV2_MFNR_TuningPara_Setting_ISO_Luma_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_ISO_Ygfdelta_s{
    // M4_ARRAY_DESC("y_lo_lvl0_gfdelta", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[0.06250,0.03906,0.03906,0.03906,0.03906,0.03906]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_lo_lvl0_gfdelta[6];
    // M4_ARRAY_DESC("y_hi_lvl0_gfdelta", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[0.06250,0.03906,0.03906,0.03906,0.03906,0.03906]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_hi_lvl0_gfdelta[6];
    // M4_ARRAY_DESC("y_lo_lvl1_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_lo_lvl1_gfdelta[3];
    // M4_ARRAY_DESC("y_hi_lvl1_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_hi_lvl1_gfdelta[3];
    // M4_ARRAY_DESC("y_lo_lvl2_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_lo_lvl2_gfdelta[3];
    // M4_ARRAY_DESC("y_hi_lvl2_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_hi_lvl2_gfdelta[3];
    // M4_ARRAY_DESC("y_lo_lvl3_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_lo_lvl3_gfdelta[3];
    // M4_ARRAY_DESC("y_hi_lvl3_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float y_hi_lvl3_gfdelta[3];
}CalibDbV2_MFNR_TuningPara_Setting_ISO_Ygfdelta_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_ISO_UVgfdelta_s{
    // M4_ARRAY_DESC("uv_lo_lvl0_gfdelta", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[0.06250,0.03906,0.03906,0.03906,0.03906,0.03906]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_lo_lvl0_gfdelta[6];
    // M4_ARRAY_DESC("uv_hi_lvl0_gfdelta", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[0.06250,0.03906,0.03906,0.03906,0.03906,0.03906]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_hi_lvl0_gfdelta[6];
    // M4_ARRAY_DESC("uv_lo_lvl1_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_lo_lvl1_gfdelta[3];
    // M4_ARRAY_DESC("uv_hi_lvl1_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_hi_lvl1_gfdelta[3];
    // M4_ARRAY_DESC("uv_lo_lvl2_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_lo_lvl2_gfdelta[3];
    // M4_ARRAY_DESC("uv_hi_lvl2_gfdelta", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float uv_hi_lvl2_gfdelta[3];
}CalibDbV2_MFNR_TuningPara_Setting_ISO_UVgfdelta_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_ISO_gfsigma_s{
    // M4_ARRAY_DESC("lvl0_gfsigma", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[0.06250,0.03906,0.03906,0.03906,0.03906,0.03906]", M4_DIGIT(6), M4_DYNAMIC(0))
    float lvl0_gfsigma[6];
    // M4_ARRAY_DESC("lvl1_gfsigma", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float lvl1_gfsigma[3];
    // M4_ARRAY_DESC("lvl2_gfsigma", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float lvl2_gfsigma[3];
    // M4_ARRAY_DESC("lvl3_gfsigma", "f32", M4_SIZE(1,3), M4_RANGE(0,1.0), "[0.12500,0.10938,0.10938]", M4_DIGIT(6), M4_DYNAMIC(0))
    float lvl3_gfsigma[3];
}CalibDbV2_MFNR_TuningPara_Setting_ISO_gfsigma_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_ISO_s{
    // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2")
    float iso;
 
    // M4_NUMBER_DESC("weight_limit_y_0", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_y_0;
    // M4_NUMBER_DESC("weight_limit_y_1", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_y_1;
    // M4_NUMBER_DESC("weight_limit_y_2", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_y_2;
    // M4_NUMBER_DESC("weight_limit_y_3", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_y_3;
 
    // M4_NUMBER_DESC("weight_limit_uv_0", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_uv_0;
    // M4_NUMBER_DESC("weight_limit_uv_1", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_uv_1;
    // M4_NUMBER_DESC("weight_limit_uv_2", "f32", M4_RANGE(0.0, 255), "64", M4_DIGIT(0))
    float weight_limit_uv_2;
 
    // M4_NUMBER_DESC("ratio_frq_y_l", "f32", M4_RANGE(0.0, 7.9), "0.5", M4_DIGIT(1))
    float ratio_frq_y_l;
    // M4_NUMBER_DESC("ratio_frq_y_h", "f32", M4_RANGE(0.0, 7.9), "2.0", M4_DIGIT(1))
    float ratio_frq_y_h;
    // M4_NUMBER_DESC("ratio_frq_uv_l", "f32", M4_RANGE(0.0, 7.9), "0.5", M4_DIGIT(1))
    float ratio_frq_uv_l;
    // M4_NUMBER_DESC("ratio_frq_uv_h", "f32", M4_RANGE(0.0, 7.9), "2.0", M4_DIGIT(1))
    float ratio_frq_uv_h;
 
    // M4_NUMBER_DESC("luma_w_in_chroma_0", "f32", M4_RANGE(0.0, 1.0), "1.0", M4_DIGIT(2))
    float luma_w_in_chroma_0;
    // M4_NUMBER_DESC("luma_w_in_chroma_1", "f32", M4_RANGE(0.0, 1.0), "1.0", M4_DIGIT(2))
    float luma_w_in_chroma_1;
    // M4_NUMBER_DESC("luma_w_in_chroma_2", "f32", M4_RANGE(0.0, 1.0), "1.0", M4_DIGIT(2))
    float luma_w_in_chroma_2;
 
    // M4_NUMBER_DESC("y_lo_bfscale_0", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_lo_bfscale_0;
    // M4_NUMBER_DESC("y_lo_bfscale_1", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_lo_bfscale_1;
    // M4_NUMBER_DESC("y_lo_bfscale_2", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_lo_bfscale_2;
    // M4_NUMBER_DESC("y_lo_bfscale_3", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_lo_bfscale_3;
 
    // M4_NUMBER_DESC("y_hi_bfscale_0", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_hi_bfscale_0;  
    // M4_NUMBER_DESC("y_hi_bfscale_1", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_hi_bfscale_1;
    // M4_NUMBER_DESC("y_hi_bfscale_2", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_hi_bfscale_2;
    // M4_NUMBER_DESC("y_hi_bfscale_3", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float y_hi_bfscale_3;
    // M4_NUMBER_DESC("y_denoisestrength", "f32", M4_RANGE(0.0, 4.0), "1.0", M4_DIGIT(2))
    float y_denoisestrength;
 
    // M4_NUMBER_DESC("uv_lo_bfscale_0", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_lo_bfscale_0;
    // M4_NUMBER_DESC("uv_lo_bfscale_1", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_lo_bfscale_1;
    // M4_NUMBER_DESC("uv_lo_bfscale_2", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_lo_bfscale_2;
 
    // M4_NUMBER_DESC("uv_hi_bfscale_0", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_hi_bfscale_0;  
    // M4_NUMBER_DESC("uv_hi_bfscale_1", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_hi_bfscale_1;  
    // M4_NUMBER_DESC("uv_hi_bfscale_2", "f32", M4_RANGE(0.0, 8.0), "0.5", M4_DIGIT(2))
    float uv_hi_bfscale_2;  
    // M4_NUMBER_DESC("uv_denoisestrength", "f32", M4_RANGE(0.0, 4.0), "1.0", M4_DIGIT(2))
    float uv_denoisestrength;
 
    // M4_ARRAY_TABLE_DESC("luma_para", "array_table_ui", "none")
    CalibDbV2_MFNR_TuningPara_Setting_ISO_Luma_t luma_para;
    // M4_ARRAY_TABLE_DESC("y_gfdelta_para", "array_table_ui", "none", M4_HIDE(1))
    CalibDbV2_MFNR_TuningPara_Setting_ISO_Ygfdelta_t y_gfdelta_para;
    // M4_ARRAY_TABLE_DESC("uv_gfdelta_para", "array_table_ui", "none", M4_HIDE(1))
    CalibDbV2_MFNR_TuningPara_Setting_ISO_UVgfdelta_t uv_gfdelta_para;
    // M4_ARRAY_TABLE_DESC("gfsigma_para", "array_table_ui", "none", M4_HIDE(1))
    CalibDbV2_MFNR_TuningPara_Setting_ISO_gfsigma_t gfsigma_para;
    
}CalibDbV2_MFNR_TuningPara_Setting_ISO_t;
 
 
typedef struct CalibDbV2_MFNR_TuningPara_Setting_s{
    // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1")
    char *SNR_Mode;
    // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0))
    char *Sensor_Mode;
    // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list")
    CalibDbV2_MFNR_TuningPara_Setting_ISO_t *Tuning_ISO;
    int Tuning_ISO_len;
}CalibDbV2_MFNR_TuningPara_Setting_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Dynamic_s{
    // M4_BOOL_DESC("Enable", "1")
    bool Enable;
    // M4_NUMBER_DESC("LowTh_iso", "f32", M4_RANGE(0.0, 2.0), "1.0", M4_DIGIT(2))
    float LowTh_iso;
    // M4_NUMBER_DESC("LowTh_time", "f32", M4_RANGE(0.0, 2.0), "1.0", M4_DIGIT(2))
    float LowTh_time;
    // M4_NUMBER_DESC("HighTh_iso", "f32", M4_RANGE(0.0, 2.0), "1.0", M4_DIGIT(2))
    float HighTh_iso;
    // M4_NUMBER_DESC("HighTh_time", "f32", M4_RANGE(0.0, 2.0), "1.0", M4_DIGIT(2))
    float HighTh_time;
}CalibDbV2_MFNR_TuningPara_Dynamic_t;
 
 
typedef struct CalibDbV2_MFNR_TuningPara_Motion_ISO_s{
    // M4_NUMBER_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1))
    float iso;
    // M4_NUMBER_DESC("sigmaHScale", "f32", M4_RANGE(0.0, 2.0), "1.0", M4_DIGIT(2))
    float sigmaHScale;
    // M4_NUMBER_DESC("sigmaLScale", "f32", M4_RANGE(0.0, 2.0), "0.5", M4_DIGIT(2))
    float sigmaLScale;
    // M4_NUMBER_DESC("lightClp", "f32", M4_RANGE(0.0, 64), "32", M4_DIGIT(2))
    float lightClp;
    // M4_NUMBER_DESC("uvWeight", "f32", M4_RANGE(0.0, 1.0), "1.0", M4_DIGIT(2))
    float uvWeight;
    // M4_NUMBER_DESC("mfnrSigmaScale", "f32", M4_RANGE(1.0, 2.0), "1.0", M4_DIGIT(2))
    float mfnrSigmaScale;
    // M4_NUMBER_DESC("yuvnrGainScale0", "f32", M4_RANGE(1.0, 2.0), "1.0", M4_DIGIT(2))
    float yuvnrGainScale0;
    // M4_NUMBER_DESC("yuvnrGainScale1", "f32", M4_RANGE(1.0, 2.0), "1.0", M4_DIGIT(2))
    float yuvnrGainScale1;
    // M4_NUMBER_DESC("yuvnrGainScale2", "f32", M4_RANGE(1.0, 2.0), "1.0", M4_DIGIT(2))
    float yuvnrGainScale2;
    // M4_NUMBER_DESC("frame_limit_y", "f32", M4_RANGE(1.0, 255.0), "32.0", M4_DIGIT(2))
    float frame_limit_y;
    // M4_NUMBER_DESC("frame_limit_uv", "f32", M4_RANGE(1.0, 255.0), "32.0", M4_DIGIT(2))
    float frame_limit_uv;
}CalibDbV2_MFNR_TuningPara_Motion_ISO_t;
 
typedef struct CalibDbV2_MFNR_TuningPara_Motion_s{
    // M4_STRUCT_LIST_DESC("Motion_ISO", M4_SIZE_DYNAMIC, "normal_ui_style")
    CalibDbV2_MFNR_TuningPara_Motion_ISO_t *Motion_ISO;
    int Motion_ISO_len;
}CalibDbV2_MFNR_TuningPara_Motion_t;
 
 
typedef struct CalibDbV2_MFNR_TuningPara_s{
    // M4_BOOL_DESC("enable", "1")
    bool enable;
    // M4_BOOL_DESC("mode_3to1", "0")
    bool mode_3to1;
    // M4_BOOL_DESC("local_gain_en", "1")
    bool local_gain_en;
    // M4_BOOL_DESC("motion_detect_en", "0")
    bool motion_detect_en;
 
    // M4_STRUCT_DESC("Dynamic", "normal_ui_style")
    CalibDbV2_MFNR_TuningPara_Dynamic_t Dynamic;
    // M4_STRUCT_DESC("Motion", "normal_ui_style")
    CalibDbV2_MFNR_TuningPara_Motion_t Motion;
    // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list")
    CalibDbV2_MFNR_TuningPara_Setting_t *Setting;
    int Setting_len; 
}CalibDbV2_MFNR_TuningPara_t;
 
 
typedef struct CalibDbV2_MFNR_s { 
    // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V1", M4_DYNAMIC(0))
    char *Version;
    // M4_STRUCT_DESC("CalibPara", "normal_ui_style")
    CalibDbV2_MFNR_CalibPara_t CalibPara; 
    // M4_STRUCT_DESC("TuningPara", "normal_ui_style")
    CalibDbV2_MFNR_TuningPara_t TuningPara; 
} CalibDbV2_MFNR_t;
 
RKAIQ_END_DECLARE
 
#endif