xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser_v2/amerge_head.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * amerge_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_AMERGE_HEADER_H__
21 #define __CALIBDBV2_AMERGE_HEADER_H__
22 
23 #include "adehaze_head.h"
24 #include "rk_aiq_comm.h"
25 
26 #define MERGE_ENVLV_STEP_MAX 13
27 
28 RKAIQ_BEGIN_DECLARE
29 
30 // merge V10
31 typedef struct MergeOECurveV10_s {
32     // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
33     float CtrlData[MERGE_ENVLV_STEP_MAX];
34     // M4_ARRAY_DESC("Smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
35     float Smooth[MERGE_ENVLV_STEP_MAX];
36     // M4_ARRAY_DESC("Offset", "f32", M4_SIZE(1,13), M4_RANGE(108,300), "[210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
37     float Offset[MERGE_ENVLV_STEP_MAX];
38 } MergeOECurveV10_t;
39 
40 typedef struct MergeMDCurveV10_s {
41     // M4_ARRAY_DESC("MoveCoef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
42     float MoveCoef[MERGE_ENVLV_STEP_MAX];
43     // M4_ARRAY_DESC("LM_smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
44     float LM_smooth[MERGE_ENVLV_STEP_MAX];
45     // M4_ARRAY_DESC("LM_offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
46     float LM_offset[MERGE_ENVLV_STEP_MAX];
47     // M4_ARRAY_DESC("MS_smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
48     float MS_smooth[MERGE_ENVLV_STEP_MAX];
49     // M4_ARRAY_DESC("MS_offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
50     float MS_offset[MERGE_ENVLV_STEP_MAX];
51 } MergeMDCurveV10_t;
52 
53 typedef struct MergeV10_s {
54     // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV")
55     CtrlDataType_t CtrlDataType;
56     // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none")
57     MergeOECurveV10_t OECurve;
58     // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none")
59     MergeMDCurveV10_t MDCurve;
60     // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4))
61     float ByPassThr;
62     // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
63     float OECurve_damp;
64     // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
65     float MDCurveLM_damp;
66     // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
67     float MDCurveMS_damp;
68 } MergeV10_t;
69 
70 typedef struct CalibDbV2_merge_v10_s {
71     // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style")
72     MergeV10_t MergeTuningPara;
73 } CalibDbV2_merge_v10_t;
74 
75 // merge V11
76 typedef enum MergeBaseFrame_e {
77     BASEFRAME_LONG        = 0,
78     BASEFRAME_SHORT       = 1,
79 } MergeBaseFrame_t;
80 
81 typedef struct LongFrameModeData_s {
82     // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none")
83     MergeOECurveV10_t OECurve;
84     // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none")
85     MergeMDCurveV10_t MDCurve;
86     // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
87     float OECurve_damp;
88     // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
89     float MDCurveLM_damp;
90     // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
91     float MDCurveMS_damp;
92 } LongFrameModeData_t;
93 
94 typedef struct MergeMDCurveV11Short_s {
95     // M4_ARRAY_DESC("MoveCoef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
96     float MoveCoef[MERGE_ENVLV_STEP_MAX];
97     // M4_ARRAY_DESC("Coef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
98     float Coef[MERGE_ENVLV_STEP_MAX];
99     // M4_ARRAY_DESC("ms_thd0", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(1), M4_DYNAMIC(0), 0)
100     float ms_thd0[MERGE_ENVLV_STEP_MAX];
101     // M4_ARRAY_DESC("lm_thd0", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(1), M4_DYNAMIC(0), 0)
102     float lm_thd0[MERGE_ENVLV_STEP_MAX];
103 } MergeMDCurveV11Short_t;
104 
105 typedef struct ShortFrameModeData_s {
106     // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none")
107     MergeOECurveV10_t OECurve;
108     // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none")
109     MergeMDCurveV11Short_t MDCurve;
110     // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
111     float OECurve_damp;
112     // M4_NUMBER_DESC("MDCurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
113     float MDCurve_damp;
114 } ShortFrameModeData_t;
115 
116 typedef struct MergeV11_s {
117     // M4_ENUM_DESC("BaseFrm", "MergeBaseFrame_t", "BASEFRAME_LONG")
118     MergeBaseFrame_t BaseFrm;
119     // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV")
120     CtrlDataType_t CtrlDataType;
121     // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4))
122     float ByPassThr;
123     // M4_STRUCT_DESC("LongFrmModeData", "normal_ui_style")
124     LongFrameModeData_t LongFrmModeData;
125     // M4_STRUCT_DESC("ShortFrmModeData", "normal_ui_style")
126     ShortFrameModeData_t ShortFrmModeData;
127 } MergeV11_t;
128 
129 typedef struct CalibDbV2_merge_v11_s {
130     // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style")
131     MergeV11_t MergeTuningPara;
132 } CalibDbV2_merge_v11_t;
133 
134 // merge v12
135 typedef struct MergeEachChnCurveV12_s {
136     // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
137     float CtrlData[MERGE_ENVLV_STEP_MAX];
138     // M4_ARRAY_DESC("Smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
139     float Smooth[MERGE_ENVLV_STEP_MAX];
140     // M4_ARRAY_DESC("Offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0)
141     float Offset[MERGE_ENVLV_STEP_MAX];
142 } MergeEachChnCurveV12_t;
143 
144 typedef struct LongFrameModeDataV12_s {
145     // M4_BOOL_DESC("EnableEachChn", "1")
146     bool EnableEachChn;
147     // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none")
148     MergeOECurveV10_t OECurve;
149     // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none")
150     MergeMDCurveV10_t MDCurve;
151     // M4_ARRAY_TABLE_DESC("EachChnCurve", "array_table_ui", "none")
152     MergeEachChnCurveV12_t EachChnCurve;
153     // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
154     float OECurve_damp;
155     // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
156     float MDCurveLM_damp;
157     // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4))
158     float MDCurveMS_damp;
159 } LongFrameModeDataV12_t;
160 
161 typedef struct MergeV12_s {
162     // M4_ENUM_DESC("BaseFrm", "MergeBaseFrame_t", "BASEFRAME_LONG")
163     MergeBaseFrame_t BaseFrm;
164     // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV")
165     CtrlDataType_t CtrlDataType;
166     // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4))
167     float ByPassThr;
168     // M4_STRUCT_DESC("LongFrmModeData", "normal_ui_style")
169     LongFrameModeDataV12_t LongFrmModeData;
170     // M4_STRUCT_DESC("ShortFrmModeData", "normal_ui_style")
171     ShortFrameModeData_t ShortFrmModeData;
172 } MergeV12_t;
173 
174 typedef struct CalibDbV2_merge_v12_s {
175     // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style")
176     MergeV12_t MergeTuningPara;
177 } CalibDbV2_merge_v12_t;
178 
179 RKAIQ_END_DECLARE
180 
181 #endif
182