xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/algos/ae/rk_aiq_uapi_ae_int_types_v2.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef _RK_AIQ_UAPI_AE_INT_TYPES_V2_H_
2 #define _RK_AIQ_UAPI_AE_INT_TYPES_V2_H_
3 #include "rk_aiq_algo_des.h"
4 #include "rk_aiq_types_ae_algo_int.h"
5 
6 /***************************  ATTENTION:  ************************************/
7 /*
8  *      There are two sets of api-strcut defined, isp2.0/isp2.1 respectively.
9  *      AE-API Needs to be compatible with isp2.0 & isp2.1 struct
10  */
11 /*****************************************************************************/
12 
13 /*****************************************************************************/
14 /**
15  * @brief   ISP2.1 AEC API ExpSwAttr_t Params
16  */
17 /*****************************************************************************/
18 typedef CalibDb_AeSpeedV2_t Uapi_AeSpeedV2_t;
19 
20 typedef Aec_AeRange_t Uapi_AeRangeV2_t;
21 
22 typedef Aec_LinAeRange_t Uapi_LinAeRangeV2_t;
23 
24 typedef Aec_HdrAeRange_t Uapi_HdrAeRangeV2_t;
25 
26 typedef CalibDb_AeFrmRateAttrV2_t Uapi_AeFpsAttrV2_t;
27 
28 typedef CalibDb_AntiFlickerAttrV2_t Uapi_AntiFlickerV2_t;
29 
30 typedef CalibDb_DelayTypeV2_t Uapi_DelayTypeV2_t;
31 
32 typedef struct Uapi_AeAttrV2_s {
33 
34     Uapi_AeSpeedV2_t           stAeSpeed;
35     //DelayFrmNum
36     Uapi_DelayTypeV2_t         DelayType;
37     uint8_t                    BlackDelay;
38     uint8_t                    WhiteDelay;
39     //Auto/Fixed fps
40     Uapi_AeFpsAttrV2_t         stFrmRate;
41     Uapi_AntiFlickerV2_t       stAntiFlicker;
42     //auto range
43     Aec_LinAeRange_t              LinAeRange;//result LinAerange
44     Aec_HdrAeRange_t              HdrAeRange;//result HdrAerange
45 } Uapi_AeAttrV2_t;
46 
47 //manual exposure
48 typedef struct Uapi_LinMeAttrV2_s {
49     // M4_BOOL_DESC("ManualTimeEn", "1")
50     bool                 ManualTimeEn;
51 
52     // M4_BOOL_DESC("ManualGainEn", "1")
53     bool                 ManualGainEn;
54 
55     // M4_BOOL_DESC("ManualIspDgainEn", "1")
56     bool                 ManualIspDgainEn;
57 
58     // M4_NUMBER_DESC("TimeValue", "f32", M4_RANGE(0,1), "0.003", M4_DIGIT(6),M4_HIDE(0))
59     float                TimeValue; //unit: s = 10^6 us
60 
61     // M4_NUMBER_DESC("GainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0))
62     float                GainValue;
63 
64     // M4_NUMBER_DESC("IspDGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0))
65     float                IspDGainValue;
66 } Uapi_LinMeAttrV2_t;
67 
68 typedef struct Uapi_HdrMeAttrV2_s {
69     // M4_BOOL_DESC("ManualTimeEn", "1")
70     bool                    ManualTimeEn;
71 
72     // M4_BOOL_DESC("ManualGainEn", "1")
73     bool                    ManualGainEn;
74 
75     // M4_BOOL_DESC("ManualIspDgainEn", "1")
76     bool                    ManualIspDgainEn;
77 
78     // M4_ARRAY_DESC("TimeValue", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.003", M4_DIGIT(6), M4_DYNAMIC(0))
79     float                   TimeValue[MAX_HDR_FRAMENUM];
80 
81     // M4_ARRAY_DESC("GainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0))
82     float                   GainValue[MAX_HDR_FRAMENUM];
83 
84     // M4_ARRAY_DESC("IspDGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0))
85     float                   IspDGainValue[MAX_HDR_FRAMENUM];
86 } Uapi_HdrMeAttrV2_t;
87 
88 typedef struct Uapi_MeAttrV2_s {
89     // M4_STRUCT_DESC("LinearAE", "normal_ui_style")
90     Uapi_LinMeAttrV2_t    LinearAE;
91 
92     // M4_STRUCT_DESC("HdrAE", "normal_ui_style")
93     Uapi_HdrMeAttrV2_t    HdrAE;
94 } Uapi_MeAttrV2_t;
95 
96 typedef Aec_uapi_advanced_attr_t Uapi_ExpSwAttr_AdvancedV2_t;
97 
98 typedef struct Uapi_ExpSwAttrV2_s {
99     rk_aiq_uapi_sync_t                 sync;
100     uint8_t                            Enable;
101     CalibDb_CamRawStatsModeV2_t        RawStatsMode;
102     CalibDb_CamHistStatsModeV2_t       HistStatsMode;
103     CalibDb_CamYRangeModeV2_t          YRangeMode;
104     uint8_t                  AecRunInterval;
105 
106     // M4_ENUM_DESC("OPMode", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO")
107     RKAiqOPMode_t            AecOpType;
108     Cam15x15UCharMatrix_t    GridWeights;
109     Uapi_AeAttrV2_t          stAuto;
110 
111     // M4_STRUCT_DESC("ManualCtrl", "normal_ui_style")
112     Uapi_MeAttrV2_t          stManual;
113 
114     Uapi_ExpSwAttr_AdvancedV2_t stAdvanced;
115 } Uapi_ExpSwAttrV2_t;
116 
117 /*****************************************************************************/
118 /**
119  * @brief   ISP2.1 AEC API LinAeRouteAttr/HdrAeRouteAttr Params
120  */
121 /*****************************************************************************/
122 typedef struct Uapi_LinAeRouteAttr_s {
123     rk_aiq_uapi_sync_t            sync;
124     CalibDb_LinAeRoute_AttrV2_t   Params;
125 } Uapi_LinAeRouteAttr_t;
126 
127 typedef struct Uapi_HdrAeRouteAttr_s {
128     rk_aiq_uapi_sync_t            sync;
129     CalibDb_HdrAeRoute_AttrV2_t   Params;
130 } Uapi_HdrAeRouteAttr_t;
131 
132 /*****************************************************************************/
133 /**
134  * @brief   ISP2.1 AEC API IrisAttr Params
135  */
136 /*****************************************************************************/
137 typedef struct Uapi_IrisAttrV2_s {
138     rk_aiq_uapi_sync_t            sync;
139     CalibDb_AecIrisCtrlV2_t       Params;
140 } Uapi_IrisAttrV2_t;
141 
142 /*****************************************************************************/
143 /**
144  * @brief   ISP2.1 AEC API AecSyncTest Params
145  */
146 /*****************************************************************************/
147 typedef struct Uapi_AecSyncTest_s {
148     rk_aiq_uapi_sync_t            sync;
149     CalibDb_AeSyncTestV2_t        Params;
150 } Uapi_AecSyncTest_t;
151 
152 /*****************************************************************************/
153 /**
154  * @brief   ISP2.1 AEC API LinExpAttr/HdrExpAttr Params
155  */
156 /*****************************************************************************/
157 typedef struct Uapi_LinExpAttrV2_s {
158     rk_aiq_uapi_sync_t            sync;
159     CalibDb_LinearAE_AttrV2_t     Params;
160 } Uapi_LinExpAttrV2_t;
161 
162 typedef struct Uapi_HdrExpAttrV2_s {
163     rk_aiq_uapi_sync_t            sync;
164     CalibDb_HdrAE_AttrV2_t        Params;
165 } Uapi_HdrExpAttrV2_t;
166 
167 /*****************************************************************************/
168 /**
169  * @brief   ISP2.0/2.1 AEC API ExpHwAttr Params
170  */
171 /*****************************************************************************/
172 typedef struct Uapi_ExpWin_s {
173     rk_aiq_uapi_sync_t            sync;
174     window_t                      Params;
175 } Uapi_ExpWin_t;
176 
177 /*****************************************************************************/
178 /**
179  * @brief   ISP2.0/2.1 AEC API ExpQueryInfo Params
180  */
181 /*****************************************************************************/
182 
183 typedef struct Uapi_LinAeInfo_s {
184     // M4_NUMBER_DESC("LumaDeviation", "f32", M4_RANGE(-256,256), "0.0", M4_DIGIT(3),M4_HIDE(1))
185     float             LumaDeviation;
186 
187     // M4_NUMBER_DESC("MeanLuma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2))
188     float             MeanLuma;
189 
190     // M4_STRUCT_DESC("LinAeRange", "normal_ui_style")
191     Aec_LinAeRange_t  LinAeRange;
192 
193     // M4_STRUCT_DESC("LinearExp", "normal_ui_style")
194     RkAiqExpRealParam_t LinearExp;
195 
196 } Uapi_LinAeInfo_t;
197 
198 typedef struct Uapi_HdrAeInfo_s {
199     // M4_ARRAY_DESC("HdrLumaDeviation", "f32", M4_SIZE(1,3), M4_RANGE(-256,256), "0.0", M4_DIGIT(3), M4_DYNAMIC(0), M4_HIDE(1))
200     float             HdrLumaDeviation[3];
201 
202     // M4_NUMBER_DESC("Frm0Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2))
203     float             Frm0Luma;
204 
205     // M4_NUMBER_DESC("Frm1Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2))
206     float             Frm1Luma;
207 
208     // M4_NUMBER_DESC("Frm2Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2))
209     float             Frm2Luma;
210 
211     // M4_STRUCT_DESC("HdrAeRange", "normal_ui_style")
212     Aec_HdrAeRange_t    HdrAeRange;
213 
214     // M4_STRUCT_DESC("HdrExp", "normal_ui_style")
215     RkAiqExpRealParam_t HdrExp[3];
216 
217 } Uapi_HdrAeInfo_t;
218 
219 
220 typedef struct Uapi_ExpQueryInfo_s {
221     // M4_BOOL_DESC("IsConverged", "0",M4_HIDE(1))
222     bool              IsConverged;
223     // M4_BOOL_DESC("EnvChange", "0",M4_HIDE(1))
224     bool              EnvChange;
225     // M4_BOOL_DESC("IsExpMax", "0",M4_HIDE(1))
226     bool              IsExpMax;
227 
228     // M4_STRUCT_DESC("LinAeInfo", "normal_ui_style")
229     Uapi_LinAeInfo_t  LinAeInfo;
230 
231     // M4_STRUCT_DESC("HdrAeInfo", "normal_ui_style")
232     Uapi_HdrAeInfo_t  HdrAeInfo;
233 
234     // M4_NUMBER_DESC("LinePeriodsPerField", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1))
235     float             LinePeriodsPerField;
236 
237     // M4_NUMBER_DESC("PixelPeriodsPerLine", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1))
238     float             PixelPeriodsPerLine;
239 
240     // M4_NUMBER_DESC("PixelClockFreqMHZ", "f32", M4_RANGE(0,4096), "0", M4_DIGIT(2),M4_HIDE(1))
241     float             PixelClockFreqMHZ;
242 
243     // M4_NUMBER_DESC("GlobalEnvLv", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1))
244     float             GlobalEnvLv;
245 
246     // M4_NUMBER_DESC("OverExpROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1))
247     float             OverExpROIPdf;
248 
249     // M4_NUMBER_DESC("HighLightROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1))
250     float             HighLightROIPdf;
251 
252     // M4_NUMBER_DESC("LowLightROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1))
253     float             LowLightROIPdf;
254 
255     // M4_NUMBER_DESC("Fps", "f32", M4_RANGE(0,4096), "0", M4_DIGIT(2))
256     float             Fps;
257 
258 } Uapi_ExpQueryInfo_t;
259 
260 
261 #endif
262