xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser_v2/sensorinfo_head.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * sensorinfo_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_SENSOR_INFO_HEADER_H__
21 #define __CALIBDBV2_SENSOR_INFO_HEADER_H__
22 
23 // #define M4_STRUCT_DESC(ALIAS, SIZE, UI_MODULE)
24 // #define M4_NUMBER_DESC(ALIAS, TYPE, SIZE, RANGE, DEFAULT)
25 // #define M4_STRING_DESC(ALIAS, SIZE, RANGE, DEFAULT)
26 // #define M4_ENUM_DESC(ALIAS, ENUM, DEFAULT)
27 
28 #include "rk_aiq_comm.h"
29 
30 RKAIQ_BEGIN_DECLARE
31 
32 /*****************************************************************************/
33 /**
34  * @brief   ISP2.0 SensorInfo enum Params
35  */
36 /*****************************************************************************/
37 typedef enum _CalibDb_ExpGainModeV2_e {
38     EXPGAIN_MODE_LINEAR         = 0,
39     EXPGAIN_MODE_NONLINEAR_DB   = 1,
40     EXPGAIN_MODE_MAX            = 2
41 } CalibDb_ExpGainModeV2_t;
42 
43 typedef enum  _CalibDb_HdrFrmNumV2_e {
44     HDR_TWO_FRAME = 0,
45     HDR_THREE_FRAME = 1,
46 } CalibDb_HdrFrmNumV2_t;
47 
48 /*****************************************************************************/
49 /**
50  * @brief   ISP2.0 SensorInfo config Params
51  */
52 /*****************************************************************************/
53 typedef struct CalibDb_AecGainRangeV2_s {
54     // M4_ENUM_DESC("GainMode", "CalibDb_ExpGainModeV2_t","EXPGAIN_MODE_LINEAR")
55     CalibDb_ExpGainModeV2_t     GainMode;
56 
57     // M4_ARRAY_DESC("GainRange", "f32", M4_SIZE(1,7), M4_RANGE(-65535,65535), "0", M4_DIGIT(4), M4_DYNAMIC(2))
58     float*                      GainRange;//contains 7 params per line
59     int                         GainRange_len;
60 } CalibDb_AecGainRangeV2_t;
61 
62 typedef struct CalibDb_CISNormalTimeSetV2_s {
63     // M4_NUMBER_DESC("TimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0))
64     uint16_t                CISTimeRegMin;
65 
66     // M4_STRUCT_DESC("TimeRegMaxFac", "normal_ui_style")
67     Cam2x1FloatMatrix_t     CISLinTimeRegMaxFac;
68 
69     // M4_STRUCT_DESC("TimeRegOdevity", "normal_ui_style")
70     Cam2x1FloatMatrix_t     CISTimeRegOdevity;
71 } CalibDb_CISNormalTimeSetV2_t;
72 
73 typedef struct CalibDb_CISHdrTimeSetV2_s {
74     // M4_ENUM_DESC("name", "CalibDb_HdrFrmNumV2_t","HDR_TWO_FRAME")
75     CalibDb_HdrFrmNumV2_t   name;
76 
77     // M4_BOOL_DESC("CISTimeRegUnEqualEn", "0")
78     bool                    CISTimeRegUnEqualEn;
79 
80     // M4_NUMBER_DESC("CISTimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0))
81     uint16_t                CISTimeRegMin;
82 
83     // M4_STRUCT_DESC("CISHdrTimeRegSumFac", "normal_ui_style")
84     Cam2x1FloatMatrix_t     CISHdrTimeRegSumFac;
85 
86     // M4_STRUCT_DESC("CISTimeRegMax", "normal_ui_style")
87     Cam1x3ShortMatrix_t     CISTimeRegMax; //specially for Hdr that has limit on sframe/mframe, requiring max time line.value 0: no limit
88 
89     // M4_STRUCT_DESC("CISTimeRegOdevity", "normal_ui_style")
90     Cam2x1FloatMatrix_t     CISTimeRegOdevity;
91 } CalibDb_CISHdrTimeSetV2_t;
92 
93 typedef struct CalibDb_CISTimeSet_CombV2_s {
94     // M4_STRUCT_DESC("Linear", "normal_ui_style")
95     CalibDb_CISNormalTimeSetV2_t Linear;
96 
97     // M4_STRUCT_LIST_DESC("Hdr", M4_SIZE(1,2),"normal_ui_style")
98     CalibDb_CISHdrTimeSetV2_t Hdr[2];
99 } CalibDb_CISTimeSet_CombV2_t;
100 
101 typedef struct CalibDb_AeRangeV2_s {
102     // M4_NUMBER_DESC("Min", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0))
103     float                   Min;
104 
105     // M4_NUMBER_DESC("Max", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0))
106     float                   Max;
107 } CalibDb_AeRangeV2_t;
108 
109 typedef struct CalibDb_CISGainSetV2_s {
110     // M4_STRUCT_DESC("CISAgainRange", "normal_ui_style")
111     CalibDb_AeRangeV2_t       CISAgainRange; //sensor Again or LCG range
112 
113     // M4_STRUCT_DESC("CISExtraAgainRange", "normal_ui_style")
114     CalibDb_AeRangeV2_t       CISExtraAgainRange; //add for HDR-DCG MODE, HCG range
115 
116     // M4_STRUCT_DESC("CISDgainRange", "normal_ui_style")
117     CalibDb_AeRangeV2_t       CISDgainRange; //sensor Dgain
118 
119     // M4_STRUCT_DESC("CISIspDgainRange", "normal_ui_style")
120     CalibDb_AeRangeV2_t       CISIspDgainRange; //Isp Dgain
121 
122     // M4_BOOL_DESC("CISHdrGainIndSetEn", "1")
123     bool                   CISHdrGainIndSetEn; //bit 0:use the same value; bit 1: support use different gain value
124 } CalibDb_CISGainSetV2_t;
125 
126 typedef struct CalibDb_CISHdrSetV2_s {
127     // M4_BOOL_DESC("hdr_en", "0")
128     bool hdr_en;
129 
130     // M4_ENUM_DESC("hdr_mode", "rk_aiq_isp_hdr_mode_t","RK_AIQ_ISP_HDR_MODE_2_LINE_HDR")
131     rk_aiq_isp_hdr_mode_t hdr_mode;
132 
133     // M4_ENUM_DESC("line_mode", "rk_aiq_sensor_hdr_line_mode_t","RKAIQ_SENSOR_HDR_MODE_STAGGER")
134     rk_aiq_sensor_hdr_line_mode_t line_mode;
135 } CalibDb_CISHdrSetV2_t;
136 
137 typedef struct CalibDb_Dcg_ParamsV2_s {
138     // M4_BOOL_DESC("support_en", "0")
139     bool                support_en;
140 
141     // M4_ENUM_DESC("dcg_optype", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO")
142     RKAiqOPMode_t       dcg_optype;
143 
144     // M4_STRUCT_DESC("dcg_mode", "normal_ui_style")
145     Cam1x3IntMatrix_t   dcg_mode;
146 
147     // M4_NUMBER_DESC("dcg_ratio", "f32", M4_RANGE(1,100), "1", M4_DIGIT(2),M4_HIDE(0))
148     float               dcg_ratio;
149 
150     // M4_BOOL_DESC("sync_switch", "1")
151     bool                sync_switch;
152 
153     // M4_NUMBER_DESC("lcg2hcg_gain_th", "f32", M4_RANGE(1,4096), "32", M4_DIGIT(2),M4_HIDE(0))
154     float               lcg2hcg_gain_th;
155 
156     // M4_NUMBER_DESC("hcg2lcg_gain_th", "f32", M4_RANGE(1,4096), "16", M4_DIGIT(2),M4_HIDE(0))
157     float               hcg2lcg_gain_th;
158 } CalibDb_Dcg_ParamsV2_t;
159 
160 typedef struct CalibDb_DcgSetV2_s {
161     // M4_STRUCT_DESC("Linear", "normal_ui_style")
162     CalibDb_Dcg_ParamsV2_t Linear;
163 
164     // M4_STRUCT_DESC("Hdr", "normal_ui_style")
165     CalibDb_Dcg_ParamsV2_t Hdr;
166 } CalibDb_DcgSetV2_t;
167 
168 typedef struct CalibDb_ExpUpdateV2_s {
169     // M4_NUMBER_DESC("time_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0))
170     int time_update;
171 
172     // M4_NUMBER_DESC("gain_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0))
173     int gain_update;
174 
175     // M4_NUMBER_DESC("dcg_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0))
176     int dcg_update;
177 } CalibDb_ExpUpdateV2_t;
178 
179 typedef struct CalibDb_ExpUpdate_CombV2_s {
180     // M4_STRUCT_DESC("Linear", "normal_ui_style")
181     CalibDb_ExpUpdateV2_t Linear;
182 
183     // M4_STRUCT_DESC("Hdr", "normal_ui_style")
184     CalibDb_ExpUpdateV2_t Hdr;
185 } CalibDb_ExpUpdate_CombV2_t;
186 
187 typedef struct CalibDb_ResInfoV2_s {
188     // M4_NUMBER_DESC("width", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
189     uint16_t width;
190     // M4_NUMBER_DESC("height", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
191     uint16_t height;
192 } CalibDb_ResInfoV2_t;
193 
194 
195 typedef struct CalibDb_Sensor_ParaV2_s {
196     // M4_STRUCT_DESC("Resolution", "normal_ui_style")
197     CalibDb_ResInfoV2_t             resolution;
198 
199     // M4_STRUCT_DESC("Gain2Reg", "normal_ui_style")
200     CalibDb_AecGainRangeV2_t        Gain2Reg;
201 
202     // M4_STRUCT_DESC("Time2Reg", "normal_ui_style")
203     Cam1x4FloatMatrix_t             Time2Reg;
204 
205     // M4_STRUCT_DESC("CISGainSet", "normal_ui_style")
206     CalibDb_CISGainSetV2_t          CISGainSet;
207 
208     // M4_STRUCT_DESC("CISTimeSet", "normal_ui_style")
209     CalibDb_CISTimeSet_CombV2_t     CISTimeSet;
210 
211     // M4_STRUCT_DESC("CISHdrSet", "normal_ui_style")
212     CalibDb_CISHdrSetV2_t           CISHdrSet;
213 
214     // M4_STRUCT_DESC("CISDcgSet", "normal_ui_style")
215     CalibDb_DcgSetV2_t              CISDcgSet;
216 
217     // M4_STRUCT_DESC("CISExpUpdate", "normal_ui_style")
218     CalibDb_ExpUpdate_CombV2_t      CISExpUpdate;
219 
220     // M4_NUMBER_DESC("CISMinFps", "f32", M4_RANGE(1,100), "10", M4_DIGIT(2),M4_HIDE(0))
221     float                           CISMinFps;
222 
223     // M4_NUMBER_DESC("CISFlip", "u8", M4_RANGE(0,3), "0", M4_DIGIT(0),M4_HIDE(0))
224     uint8_t                         CISFlip; // bit 0 : mirror, bit 1 : flip , range[0,3]
225 } CalibDb_Sensor_ParaV2_t;
226 
227 RKAIQ_END_DECLARE
228 
229 #endif
230