xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser_v2/adrc_uapi_head.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *  Copyright (c) 2021 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 #ifndef __ADRC_UAPI_HEAD_H__
19 #define __ADRC_UAPI_HEAD_H__
20 
21 #include "adrc_head.h"
22 
23 // drc v10
24 typedef struct mDrcGain_t {
25     // M4_NUMBER_DESC("DrcGain", "f32", M4_RANGE(1,8), "1.00", M4_DIGIT(2))
26     float DrcGain;
27     // M4_NUMBER_DESC("Alpha", "f32", M4_RANGE(0,1), "0.20", M4_DIGIT(2))
28     float Alpha;
29     // M4_NUMBER_DESC("Clip", "f32", M4_RANGE(0,64), "16.00", M4_DIGIT(2))
30     float Clip;
31 } mDrcGain_t;
32 
33 typedef struct mDrcHiLit_s {
34     // M4_NUMBER_DESC("Strength", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2))
35     float Strength;
36 } mDrcHiLit_t;
37 
38 typedef struct mLocalDataV10_s {
39     // M4_NUMBER_DESC("LocalWeit", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2))
40     float LocalWeit;
41     // M4_NUMBER_DESC("GlobalContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3))
42     float GlobalContrast;
43     // M4_NUMBER_DESC("LoLitContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3))
44     float LoLitContrast;
45 } mLocalDataV10_t;
46 
47 typedef struct mDrcLocalV10_s {
48     // M4_STRUCT_DESC("LocalTMOData", "normal_ui_style")
49     mLocalDataV10_t LocalTMOData;
50     // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3))
51     float curPixWeit;
52     // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3))
53     float preFrameWeit;
54     // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4))
55     float Range_force_sgm;
56     // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
57     float Range_sgm_cur;
58     // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
59     float Range_sgm_pre;
60     // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0))
61     int Space_sgm_cur;
62     // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0))
63     int Space_sgm_pre;
64 } mDrcLocalV10_t;
65 
66 typedef struct mDrcCompress_s {
67     // M4_ENUM_DESC("Mode", "CompressMode_t", "COMPRESS_AUTO")
68     CompressMode_t Mode;
69     // M4_ARRAY_MARK_DESC("Manual_curve", "u32", M4_SIZE(1,17),  M4_RANGE(0, 8192), "[0, 558, 1087, 1588, 2063, 2515, 2944, 3353, 3744, 4473, 5139, 5751, 6316, 6838, 7322, 7772, 8192]", M4_DIGIT(0), M4_DYNAMIC(0), "drc_compress_curve")
70     uint16_t Manual_curve[ADRC_Y_NUM];
71 } mDrcCompress_t;
72 
73 typedef struct mdrcAttr_V10_s {
74     // M4_BOOL_DESC("Enable", "1")
75     bool Enable;
76     // M4_STRUCT_DESC("DrcGain", "normal_ui_style")
77     mDrcGain_t DrcGain;
78     // M4_STRUCT_DESC("HiLight", "normal_ui_style")
79     mDrcHiLit_t HiLight;
80     // M4_STRUCT_DESC("LocalTMOSetting", "normal_ui_style")
81     mDrcLocalV10_t LocalTMOSetting;
82     // M4_STRUCT_DESC("CompressSetting", "normal_ui_style")
83     mDrcCompress_t CompressSetting;
84     // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17),  M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0))
85     int Scale_y[ADRC_Y_NUM];
86     // M4_NUMBER_DESC("Edge_Weit", "f32",  M4_RANGE(0,1), "1",M4_DIGIT(3))
87     float Edge_Weit;
88     // M4_BOOL_DESC("OutPutLongFrame", "0")
89     bool OutPutLongFrame;
90     // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0))
91     int IIR_frame;
92 } mdrcAttr_V10_t;
93 
94 typedef struct DrcInfo_s {
95     // M4_NUMBER_DESC("EnvLv", "f32", M4_RANGE(0,1), "0", M4_DIGIT(6))
96     float EnvLv;
97     // M4_NUMBER_DESC("ISO", "f32", M4_RANGE(50,1000000000), "0", M4_DIGIT(4))
98     float ISO;
99 } DrcInfo_t;
100 
101 typedef struct DrcInfoV10_s {
102     // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style")
103     DrcInfo_t CtrlInfo;
104     // M4_STRUCT_DESC("ValidParams", "normal_ui_style")
105     mdrcAttr_V10_t ValidParams;
106 } DrcInfoV10_t;
107 
108 // drc v11
109 typedef struct mLocalDataV11_s {
110     // M4_NUMBER_DESC("LocalWeit", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2))
111     float LocalWeit;
112     // M4_NUMBER_DESC("LocalAutoEnable", "u8", M4_RANGE(0,1), "1", M4_DIGIT(0))
113     int LocalAutoEnable;
114     // M4_NUMBER_DESC("LocalAutoWeit", "f32", M4_RANGE(0,1), "0.037477", M4_DIGIT(5))
115     float LocalAutoWeit;
116     // M4_NUMBER_DESC("GlobalContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3))
117     float GlobalContrast;
118     // M4_NUMBER_DESC("LoLitContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3))
119     float LoLitContrast;
120 } mLocalDataV11_t;
121 
122 typedef struct mDrcLocalV11_s {
123     // M4_STRUCT_DESC("LocalData", "normal_ui_style")
124     mLocalDataV11_t LocalData;
125     // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3))
126     float curPixWeit;
127     // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3))
128     float preFrameWeit;
129     // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4))
130     float Range_force_sgm;
131     // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
132     float Range_sgm_cur;
133     // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
134     float Range_sgm_pre;
135     // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0))
136     int Space_sgm_cur;
137     // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0))
138     int Space_sgm_pre;
139 } mDrcLocalV11_t;
140 
141 typedef struct mdrcAttr_V11_s {
142     // M4_BOOL_DESC("Enable", "1")
143     bool Enable;
144     // M4_STRUCT_DESC("DrcGain", "normal_ui_style")
145     mDrcGain_t DrcGain;
146     // M4_STRUCT_DESC("HiLight", "normal_ui_style")
147     mDrcHiLit_t HiLight;
148     // M4_STRUCT_DESC("LocalSetting", "normal_ui_style")
149     mDrcLocalV11_t LocalSetting;
150     // M4_STRUCT_DESC("CompressSetting", "normal_ui_style")
151     mDrcCompress_t CompressSetting;
152     // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17),  M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0))
153     int Scale_y[ADRC_Y_NUM];
154     // M4_NUMBER_DESC("Edge_Weit", "f32",  M4_RANGE(0,1), "1",M4_DIGIT(3))
155     float Edge_Weit;
156     // M4_BOOL_DESC("OutPutLongFrame", "0")
157     bool OutPutLongFrame;
158     // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0))
159     int IIR_frame;
160 } mdrcAttr_V11_t;
161 
162 typedef struct DrcInfoV11_s {
163     // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style")
164     DrcInfo_t CtrlInfo;
165     // M4_STRUCT_DESC("ValidParams", "normal_ui_style")
166     mdrcAttr_V11_t ValidParams;
167 } DrcInfoV11_t;
168 
169 // drc attr V12
170 typedef struct mHighLightDataV12_s {
171     // M4_NUMBER_DESC("Strength", "f32",  M4_RANGE(0,1), "0",M4_DIGIT(2))
172     float Strength;
173     // M4_NUMBER_DESC("gas_t", "f32",  M4_RANGE(0,2), "0",M4_DIGIT(3))
174     float gas_t;
175 } mHighLightDataV12_t;
176 
177 typedef struct mHighLightV12_s {
178     // M4_STRUCT_DESC("HiLightData", "normal_ui_style")
179     mHighLightDataV12_t HiLightData;
180     // M4_NUMBER_DESC("gas_l0", "u8", M4_RANGE(0,64), "24", M4_DIGIT(0))
181     int gas_l0;
182     // M4_NUMBER_DESC("gas_l1", "u8", M4_RANGE(0,64), "10", M4_DIGIT(0))
183     int gas_l1;
184     // M4_NUMBER_DESC("gas_l2", "u8", M4_RANGE(0,64), "10", M4_DIGIT(0))
185     int gas_l2;
186     // M4_NUMBER_DESC("gas_l3", "u8", M4_RANGE(0,64), "5", M4_DIGIT(0))
187     int gas_l3;
188 } mHighLightV12_t;
189 
190 typedef struct mMotionData_s {
191     // M4_NUMBER_DESC("Strength", "f32",  M4_RANGE(0,1), "0",M4_DIGIT(3))
192     float MotionStr;
193 } mMotionData_t;
194 
195 typedef struct mDrcLocalV12_s {
196     // M4_STRUCT_DESC("LocalData", "normal_ui_style")
197     mLocalDataV11_t LocalData;
198     // M4_STRUCT_DESC("MotionData", "normal_ui_style")
199     mMotionData_t MotionData;
200     // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3))
201     float curPixWeit;
202     // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3))
203     float preFrameWeit;
204     // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4))
205     float Range_force_sgm;
206     // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
207     float Range_sgm_cur;
208     // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
209     float Range_sgm_pre;
210     // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0))
211     int Space_sgm_cur;
212     // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0))
213     int Space_sgm_pre;
214 } mDrcLocalV12_t;
215 
216 typedef struct mdrcAttr_V12_s {
217     // M4_BOOL_DESC("Enable", "1")
218     bool Enable;
219     // M4_STRUCT_DESC("DrcGain", "normal_ui_style")
220     mDrcGain_t DrcGain;
221     // M4_STRUCT_DESC("HiLight", "normal_ui_style")
222     mHighLightV12_t HiLight;
223     // M4_STRUCT_DESC("LocalSetting", "normal_ui_style")
224     mDrcLocalV12_t LocalSetting;
225     // M4_STRUCT_DESC("CompressSetting", "normal_ui_style")
226     mDrcCompress_t CompressSetting;
227     // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17),  M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0))
228     int Scale_y[ADRC_Y_NUM];
229     // M4_NUMBER_DESC("Edge_Weit", "f32",  M4_RANGE(0,1), "1",M4_DIGIT(3))
230     float Edge_Weit;
231     // M4_BOOL_DESC("OutPutLongFrame", "0")
232     bool OutPutLongFrame;
233     // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0))
234     int IIR_frame;
235 } mdrcAttr_V12_t;
236 
237 typedef struct DrcInfoV12_s {
238     // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style")
239     DrcInfo_t CtrlInfo;
240     // M4_STRUCT_DESC("ValidParams", "normal_ui_style")
241     mdrcAttr_V12_t ValidParams;
242 } DrcInfoV12_t;
243 
244 // drc attr V12 lite
245 typedef struct mDrcLocalV12Lite_s {
246     // M4_STRUCT_DESC("LocalData", "normal_ui_style")
247     mLocalDataV11_t LocalData;
248     // M4_STRUCT_DESC("MotionData", "normal_ui_style")
249     mMotionData_t MotionData;
250     // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3))
251     float curPixWeit;
252     // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4))
253     float Range_force_sgm;
254     // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4))
255     float Range_sgm_cur;
256     // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0))
257     int Space_sgm_cur;
258 } mDrcLocalV12Lite_t;
259 
260 typedef struct mdrcAttr_v12_lite_s {
261     // M4_BOOL_DESC("Enable", "1")
262     bool Enable;
263     // M4_STRUCT_DESC("DrcGain", "normal_ui_style")
264     mDrcGain_t DrcGain;
265     // M4_STRUCT_DESC("HiLight", "normal_ui_style")
266     mHighLightV12_t HiLight;
267     // M4_STRUCT_DESC("LocalSetting", "normal_ui_style")
268     mDrcLocalV12Lite_t LocalSetting;
269     // M4_STRUCT_DESC("CompressSetting", "normal_ui_style")
270     mDrcCompress_t CompressSetting;
271     // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17),  M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0))
272     int Scale_y[ADRC_Y_NUM];
273     // M4_NUMBER_DESC("Edge_Weit", "f32",  M4_RANGE(0,1), "1",M4_DIGIT(3))
274     float Edge_Weit;
275     // M4_BOOL_DESC("OutPutLongFrame", "0")
276     bool OutPutLongFrame;
277     // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0))
278     int IIR_frame;
279 } mdrcAttr_v12_lite_t;
280 
281 typedef struct DrcInfoV12Lite_s {
282     // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style")
283     DrcInfo_t CtrlInfo;
284     // M4_STRUCT_DESC("ValidParams", "normal_ui_style")
285     mdrcAttr_v12_lite_t ValidParams;
286 } DrcInfoV12Lite_t;
287 
288 #endif /*__ADRC_UAPI_HEAD_H__*/
289