xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser_v2/cac_head.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef __CAC_HEAD_H__
2 #define __CAC_HEAD_H__
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include <stdint.h>
9 
10 #define RKCAC_PSF_RADIUS_X       3
11 #define RKCAC_PSF_RADIUS_Y       2
12 #define RKCAC_STRENGTH_TABLE_LEN 22
13 #define RKCAC_SQRT_TABLE_LEN     25
14 #define RKCAC_MAX_PATH_LEN       255
15 #define RKCAC_MAX_ISO_LEVEL      14
16 
17 typedef enum CalibDbV2_Cac_ClipGMode_e {
18     RKAIQ_CAC_CLIP_G_MODE_NONE,
19     RKAIQ_CAC_CLIP_G_MODE_MINIMAL,
20     RKAIQ_CAC_CLIP_G_MODE_AVERAGE,
21 } CalibDbV2_Cac_ClipGMode_t;
22 
23 // clang-format off
24 typedef struct CalibDbV2_Cac_V03_SettingByIso_s {
25     // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1")
26     uint32_t iso;
27     // M4_BOOL_DESC("bypass", "0")
28     bool bypass;
29     // M4_BOOL_DESC("AutoHighLightDetect", "0")
30     bool AutoHighLightDetect;
31     // M4_NUMBER_DESC("AutoHighLightOffset", "u8", M4_RANGE(0,127), "0", M4_DIGIT(0), M4_HIDE(0))
32     uint8_t AutoHighLightOffset;
33     // M4_NUMBER_DESC("FixHighLightBase", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0), M4_HIDE(0))
34     uint8_t FixHighLightBase;
35     // M4_NUMBER_DESC("YCompensate", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0))
36     float YCompensate;
37     // M4_NUMBER_DESC("AutoStrengthU", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0))
38     float AutoStrengthU;
39     // M4_NUMBER_DESC("AutoStrengthV", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0))
40     float AutoStrengthV;
41     // M4_NUMBER_DESC("GrayStrengthU", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0))
42     float GrayStrengthU;
43     // M4_NUMBER_DESC("GrayStrengthV", "f32", M4_RANGE(0, 1.00), "0.0", M4_DIGIT(2), M4_HIDE(0))
44     float GrayStrengthV;
45 } CalibV2_Cac_V03_SettingByIso_t;
46 
47 typedef struct CalibDbV2_Cac_V10_SettingByIso_s {
48     // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1")
49     uint32_t iso;
50     // M4_BOOL_DESC("bypass", "0")
51     bool bypass;
52     // M4_NUMBER_DESC("global_strength", "f32", M4_RANGE(0, 16.00), "0.0", M4_DIGIT(4), M4_HIDE(0))
53     float global_strength;
54     // M4_ARRAY_DESC("strength_table", "f32", M4_SIZE(1,22), M4_RANGE(0.00, 16.00), "1.00", M4_DIGIT(4), M4_DYNAMIC(0))
55     float strength_table[RKCAC_STRENGTH_TABLE_LEN];
56 } CalibV2_Cac_V10_SettingByIso_t;
57 
58 typedef struct CalibDbV2_Cac_V11_SettingByIso_s {
59     // M4_NUMBER_MARK_DESC("iso", "u32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1")
60     uint32_t iso;
61     // M4_BOOL_DESC("bypass", "0")
62     bool bypass;
63     // M4_NUMBER_DESC("global_strength", "f32", M4_RANGE(0, 16.00), "0.00", M4_DIGIT(4), M4_HIDE(0))
64     float global_strength;
65     // M4_ARRAY_DESC("strength_table", "f32", M4_SIZE(1,22), M4_RANGE(0.00, 16.00), "1.00", M4_DIGIT(4), M4_DYNAMIC(0))
66     float strength_table[RKCAC_STRENGTH_TABLE_LEN];
67     // M4_ENUM_DESC("clip_g_mode", "CalibDbV2_Cac_ClipGMode_t","RKAIQ_CAC_CLIP_G_MODE_NONE,")
68     CalibDbV2_Cac_ClipGMode_t clip_g_mode;
69     // M4_BOOL_DESC("neg_clip0_enable", "0")
70     bool neg_clip0_enable;
71     // M4_BOOL_DESC("edge_detect_en", "0")
72     bool edge_detect_en;
73     // M4_NUMBER_DESC("flat_thed_b", "f32", M4_RANGE(0,1.00), "0", M4_DIGIT(2),M4_HIDE(0))
74     float flat_thed_b;
75     // M4_NUMBER_DESC("flat_thed_r", "f32", M4_RANGE(0,1.00), "0", M4_DIGIT(2),M4_HIDE(0))
76     float flat_thed_r;
77     // M4_NUMBER_DESC("offset_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
78     uint32_t offset_b;
79     // M4_NUMBER_DESC("offset_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
80     uint32_t offset_r;
81     // M4_BOOL_DESC("expo_det_b_en", "0")
82     bool expo_det_b_en;
83     // M4_BOOL_DESC("expo_det_r_en", "0")
84     bool expo_det_r_en;
85     // M4_NUMBER_DESC("expo_thed_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
86     uint32_t expo_thed_b;
87     // M4_NUMBER_DESC("expo_thed_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
88     uint32_t expo_thed_r;
89     // M4_NUMBER_DESC("expo_adj_b", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
90     uint32_t expo_adj_b;
91     // M4_NUMBER_DESC("expo_adj_r", "u32", M4_RANGE(0,4095), "0", M4_DIGIT(0),M4_HIDE(0))
92     uint32_t expo_adj_r;
93 } CalibV2_Cac_V11_SettingByIso_t;
94 
95 typedef struct CalibDbV2_Cac_V03_TuningPara_s {
96     // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style")
97     CalibV2_Cac_V03_SettingByIso_t* SettingByIso;
98     int SettingByIso_len;
99 } CalibDbV2_Cac_V03_TuningPara_t;
100 
101 typedef struct CalibDbV2_Cac_V10_TuningPara_s {
102     // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style")
103     CalibV2_Cac_V10_SettingByIso_t* SettingByIso;
104     int SettingByIso_len;
105 } CalibDbV2_Cac_V10_TuningPara_t;
106 
107 typedef struct CalibDbV2_Cac_V11_TuningPara_s {
108     // M4_STRUCT_LIST_DESC("SettingByIso", M4_SIZE(1,14), "normal_ui_style")
109     CalibV2_Cac_V11_SettingByIso_t* SettingByIso;
110     int SettingByIso_len;
111 } CalibDbV2_Cac_V11_TuningPara_t;
112 
113 typedef struct CalibDbV2_Cac_SettingPara_s {
114     // M4_BOOL_DESC("enable", "0")
115     bool enable;
116     // M4_STRING_DESC("psf_path", M4_SIZE(1,1), M4_RANGE(0, 255), "/etc/iqfiles/cac_map.bin", M4_DYNAMIC(0))
117     char psf_path[RKCAC_MAX_PATH_LEN];
118     // M4_NUMBER_DESC("psf_shift_bits", "u8", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0))
119     uint8_t psf_shift_bits;
120     // M4_BOOL_DESC("center_en", "0")
121     uint8_t center_en;
122     // M4_NUMBER_DESC("center_x", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
123     uint16_t center_x;
124     // M4_NUMBER_DESC("center_y", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
125     uint16_t center_y;
126 } CalibDbV2_Cac_SettingPara_t;
127 
128 typedef struct CalibDbV2_Cac_V03_SettingPara_s {
129     // M4_BOOL_DESC("enable", "0")
130     bool enable;
131 } CalibDbV2_Cac_V03_SettingPara_t;
132 
133 typedef struct CalibDbV2_Cac_V03_s {
134     // M4_STRUCT_DESC("SettingPara", "normal_ui_style")
135     CalibDbV2_Cac_V03_SettingPara_t SettingPara;
136     // M4_STRUCT_DESC("TuningPara", "normal_ui_style")
137     CalibDbV2_Cac_V03_TuningPara_t TuningPara;
138 } CalibDbV2_Cac_V03_t;
139 
140 typedef struct CalibDbV2_Cac_V10_s {
141     // M4_STRUCT_DESC("SettingPara", "normal_ui_style")
142     CalibDbV2_Cac_SettingPara_t SettingPara;
143     // M4_STRUCT_DESC("TuningPara", "normal_ui_style")
144     CalibDbV2_Cac_V10_TuningPara_t TuningPara;
145 } CalibDbV2_Cac_V10_t;
146 
147 typedef struct CalibDbV2_Cac_V11_s {
148     // M4_STRUCT_DESC("SettingPara", "normal_ui_style")
149     CalibDbV2_Cac_SettingPara_t SettingPara;
150     // M4_STRUCT_DESC("TuningPara", "normal_ui_style")
151     CalibDbV2_Cac_V11_TuningPara_t TuningPara;
152 } CalibDbV2_Cac_V11_t;
153 
154 // clang-format on
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 
160 #endif
161