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