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