xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser_v2/bayer2dnr_uapi_head_v2.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * bayer2dnr_uapi_head_v2.h
3  *
4  *  Copyright (c) 2022 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_UAPI_BAYER_2DNR_HEADER_V2_H__
21 #define __CALIBDBV2_UAPI_BAYER_2DNR_HEADER_V2_H__
22 
23 #include "rk_aiq_comm.h"
24 //#include "RkAiqCalibDbTypes.h"
25 
26 #define RK_BAYER2DNR_V2_MAX_ISO_NUM  13
27 
28 RKAIQ_BEGIN_DECLARE
29 
30 
31 typedef struct RK_Bayer2dnr_Params_V2_Select_s
32 {
33     // M4_BOOL_DESC("enable", "1")
34     int enable;
35     // M4_BOOL_DESC("gauss_guide", "1")
36     int gauss_guide;
37 
38 
39     // M4_ARRAY_DESC("lumapoint", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "[512,1024,1536,2048,3072,4096,5120,6144,7168,8192,9216,10240,11264,12288,13312,14336]", M4_DIGIT(0), M4_DYNAMIC(0))
40     int lumapoint[16];
41     // M4_ARRAY_DESC("sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "[256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256]", M4_DIGIT(0), M4_DYNAMIC(0))
42     int sigma[16];
43 
44     // M4_NUMBER_DESC("filter_strength", "f32", M4_RANGE(0, 16), "0.5", M4_DIGIT(2))
45     float filter_strength;
46     // M4_NUMBER_DESC("edgesofts", "f32", M4_RANGE(0, 16.0), "1.0", M4_DIGIT(2))
47     float edgesofts;
48     // M4_NUMBER_DESC("ratio", "f32", M4_RANGE(0, 1.0), "0.2", M4_DIGIT(2))
49     float ratio;
50     // M4_NUMBER_DESC("weight", "f32", M4_RANGE(0, 1.0), "1.0", M4_DIGIT(2))
51     float weight;
52 
53     // M4_NUMBER_DESC("pix_diff", "s32", M4_RANGE(0, 16383), "16383", M4_DIGIT(0))
54     int pix_diff;
55     // M4_NUMBER_DESC("diff_thld", "s32", M4_RANGE(0, 1024), "1024", M4_DIGIT(0))
56     int diff_thld;
57 
58     // M4_BOOL_DESC("hdrdgain_ctrl_en", "0")
59     bool hdrdgain_ctrl_en;
60     // M4_NUMBER_DESC("hdr_dgain_scale_s", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2))
61     float hdr_dgain_scale_s;
62     // M4_NUMBER_DESC("hdr_dgain_scale_m", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2))
63     float hdr_dgain_scale_m;
64 
65 
66 } RK_Bayer2dnr_Params_V2_Select_t;
67 
68 typedef struct RK_Bayer2dnr_Params_V2_s
69 {
70     // M4_BOOL_DESC("enable", "1")
71     int enable;
72 
73     // M4_ARRAY_DESC("lumapoint", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
74     int   lumapoint[16];
75 
76     // M4_ARRAY_DESC("sigma", "s32", M4_SIZE(13,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
77     int   sigma[RK_BAYER2DNR_V2_MAX_ISO_NUM][16];
78 
79     // v2 parse
80     // M4_ARRAY_DESC("iso", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
81     float iso[RK_BAYER2DNR_V2_MAX_ISO_NUM];
82     // M4_ARRAY_DESC("filter_strength", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
83     float filter_strength[RK_BAYER2DNR_V2_MAX_ISO_NUM];
84     // M4_ARRAY_DESC("edgesofts", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
85     float edgesofts[RK_BAYER2DNR_V2_MAX_ISO_NUM];
86     // M4_ARRAY_DESC("ratio", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
87     float ratio[RK_BAYER2DNR_V2_MAX_ISO_NUM];
88     // M4_ARRAY_DESC("weight", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
89     float weight[RK_BAYER2DNR_V2_MAX_ISO_NUM];
90 
91     // M4_ARRAY_DESC("gauss_guide", "s32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
92     int gauss_guide[RK_BAYER2DNR_V2_MAX_ISO_NUM];
93 
94     // M4_ARRAY_DESC("pix_diff", "s32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
95     int pix_diff[RK_BAYER2DNR_V2_MAX_ISO_NUM];
96     // M4_ARRAY_DESC("diff_thld", "s32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
97     int diff_thld[RK_BAYER2DNR_V2_MAX_ISO_NUM];
98 
99 
100     // M4_BOOL_DESC("hdrdgain_ctrl_en", "0")
101     bool hdrdgain_ctrl_en;
102     // M4_ARRAY_DESC("hdr_dgain_scale_s", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
103     float hdr_dgain_scale_s[RK_BAYER2DNR_V2_MAX_ISO_NUM];
104     // M4_ARRAY_DESC("hdr_dgain_scale_m", "f32", M4_SIZE(1,13), M4_RANGE(0,65535), "0.0", M4_DIGIT(2), M4_DYNAMIC(0))
105     float hdr_dgain_scale_m[RK_BAYER2DNR_V2_MAX_ISO_NUM];
106 
107 } RK_Bayer2dnr_Params_V2_t;
108 
109 
110 typedef struct Abayer2dnr_ExpInfo_V2_s {
111 
112     // M4_NUMBER_DESC("hdr_mode", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0))
113     int hdr_mode;
114 
115     // M4_NUMBER_DESC("snr_mode", "s8", M4_RANGE(0, 2), "0", M4_DIGIT(0))
116     int snr_mode;
117 
118     // M4_NUMBER_DESC("gray_mode", "s8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
119     int gray_mode;
120 
121     // M4_ARRAY_DESC("time", "f32", M4_SIZE(1,3), M4_RANGE(0, 1024), "0.01", M4_DIGIT(6))
122     float arTime[3];
123     // M4_ARRAY_DESC("again", "f32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(3))
124     float arAGain[3];
125     // M4_ARRAY_DESC("dgain", "f32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(3))
126     float arDGain[3];
127     // M4_ARRAY_DESC("iso", "u32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(0))
128     int   arIso[3];
129 
130     // M4_NUMBER_DESC("isoLow", "u32", M4_RANGE(0, 204800), "50", M4_DIGIT(0))
131     int isoLow;
132     // M4_NUMBER_DESC("isoHigh", "u32", M4_RANGE(0, 204800), "50", M4_DIGIT(0))
133     int isoHigh;
134 } Abayer2dnr_ExpInfo_V2_t;
135 
136 typedef struct rk_aiq_bayer2dnr_info_v2_s {
137     // M4_ARRAY_TABLE_DESC("sync", "array_table_ui", "none", "1")
138     rk_aiq_uapi_sync_t sync;
139     // M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 204800), "50", M4_DIGIT(0), "0", "0")
140     int iso;
141     // M4_ARRAY_TABLE_DESC("expo_info", "normal_ui_style", "none", "0", "0")
142     Abayer2dnr_ExpInfo_V2_t expo_info;
143 } rk_aiq_bayer2dnr_info_v2_t;
144 
145 
146 
147 RKAIQ_END_DECLARE
148 
149 #endif
150