1 /*
2  * bayertnr_uapi_head_v23.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_BAYER2DNR_UAPI_HEADER_V23_H__
21 #define __CALIBDBV2_BAYER2DNR_UAPI_HEADER_V23_H__
22 
23 #include "rk_aiq_comm.h"
24 
25 RKAIQ_BEGIN_DECLARE
26 
27 ////////////////////////bayernr V23//////////////////////////////////////
28 #if 1
29 typedef struct RK_Bayer2dnr_Params_V23_Select_s {
30     // v23 version register // edge filter params
31     // M4_BOOL_DESC("enable", "1")
32     bool enable;
33 
34 
35     // M4_ARRAY_DESC("lumapoint", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
36     int lumapoint[16];
37 
38     // M4_ARRAY_DESC("sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0))
39     int sigma[16];
40 
41     // M4_BOOL_DESC("gauss_guide", "1")
42     bool gauss_guide;
43 
44     // M4_NUMBER_DESC("filter_strength", "f32", M4_RANGE(0, 16), "0.5", M4_DIGIT(2))
45     float filter_strength;
46 
47     // M4_NUMBER_DESC("edgesofts", "f32", M4_RANGE(0, 16.0), "1.0", M4_DIGIT(2))
48     float edgesofts;
49 
50     // M4_NUMBER_DESC("ratio", "f32", M4_RANGE(0, 1.0), "0.2", M4_DIGIT(2))
51     float ratio;
52 
53     // M4_NUMBER_DESC("weight", "f32", M4_RANGE(0, 1.0), "1.0", M4_DIGIT(2))
54     float weight;
55 
56     // M4_NUMBER_DESC("pix_diff", "u16", M4_RANGE(0, 16383), "16383", M4_DIGIT(0))
57     uint16_t pix_diff;
58     // M4_NUMBER_DESC("diff_thld", "u16", M4_RANGE(0, 1023), "1023", M4_DIGIT(0))
59     uint16_t diff_thld;
60 
61 
62     // M4_NUMBER_DESC("trans_mode", "u8", M4_RANGE(0, 3), "0", M4_DIGIT(0))
63     uint8_t trans_mode;
64     // M4_NUMBER_DESC("trans_offset", "u16", M4_RANGE(0, 8191), "256", M4_DIGIT(0))
65     uint16_t trans_offset;
66     // M4_NUMBER_DESC("itrans_offset", "u16", M4_RANGE(0, 65535), "32768", M4_DIGIT(0))
67     uint16_t itrans_offset;
68     // M4_NUMBER_DESC("trans_datmax", "u32", M4_RANGE(0, 1048575), "1048575", M4_DIGIT(0))
69     uint32_t trans_datmax;
70 
71 
72     // M4_BOOL_DESC("gain_bypass", "1")
73     bool gain_bypass;
74     // M4_NUMBER_DESC("gain_scale", "f32", M4_RANGE(0, 16.0), "1.0", M4_DIGIT(2))
75     float gain_scale;
76     // M4_ARRAY_DESC("gain_lumapoint", "u16", M4_SIZE(1,16), M4_RANGE(0,256), "[16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256]", M4_DIGIT(0), M4_DYNAMIC(0))
77     uint16_t gain_lumapoint[16];
78     // M4_ARRAY_DESC("gain_adj", "u16", M4_SIZE(1,16), M4_RANGE(0,4095), "[16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256]", M4_DIGIT(2), M4_DYNAMIC(0))
79     uint16_t gain_adj[16];
80 
81     // M4_BOOL_DESC("hdrdgain_ctrl_en", "0")
82     bool hdrdgain_ctrl_en;
83     // M4_NUMBER_DESC("hdr_dgain_scale_s", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2))
84     float hdr_dgain_scale_s;
85     // M4_NUMBER_DESC("hdr_dgain_scale_m", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2))
86     float hdr_dgain_scale_m;
87 
88 } RK_Bayer2dnrV23_Params_Select_t;
89 
90 typedef struct Abayer2dnr_ExpInfo_V23_s {
91     // M4_NUMBER_DESC("hdr_mode", "u8", M4_RANGE(0, 2), "0", M4_DIGIT(0))
92     int hdr_mode;
93 
94     // M4_NUMBER_DESC("snr_mode", "s8", M4_RANGE(0, 2), "0", M4_DIGIT(0))
95     int   snr_mode;
96 
97     // M4_NUMBER_DESC("gray_mode", "s8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
98     int gray_mode;
99 
100     // M4_NUMBER_DESC("bayertnr_en", "s8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
101     int bayertnr_en;
102 
103     // M4_ARRAY_DESC("time", "f32", M4_SIZE(1,3), M4_RANGE(0, 1024), "0.01", M4_DIGIT(6))
104     float arTime[3];
105     // M4_ARRAY_DESC("again", "f32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(3))
106     float arAGain[3];
107     // M4_ARRAY_DESC("dgain", "f32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(3))
108     float arDGain[3];
109     // M4_ARRAY_DESC("isp_dgain", "f32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(3))
110     float isp_dgain[3];
111     // M4_NUMBER_DESC("blc_ob_predgain", "f32", M4_RANGE(0, 204800), "1", M4_DIGIT(3))
112     float blc_ob_predgain;
113     // M4_ARRAY_DESC("iso", "u32", M4_SIZE(1,3), M4_RANGE(0, 204800), "1", M4_DIGIT(0))
114     int   arIso[3];
115 
116     // M4_NUMBER_DESC("isoLevelLow", "u8", M4_RANGE(0, 12), "0", M4_DIGIT(0))
117     int isoLevelLow;
118     // M4_NUMBER_DESC("isoLevelHig", "u8", M4_RANGE(0, 12), "0", M4_DIGIT(0))
119     int isoLevelHig;
120 
121 } Abayer2dnr_ExpInfo_V23_t;
122 
123 typedef struct rk_aiq_bayer2dnr_info_v23_s {
124     // M4_ARRAY_TABLE_DESC("sync", "array_table_ui", "none", "1")
125     rk_aiq_uapi_sync_t sync;
126     // M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 204800), "50", M4_DIGIT(0), "0", "0")
127     int iso;
128     // M4_ARRAY_TABLE_DESC("expo_info", "normal_ui_style", "none", "0", "0")
129     Abayer2dnr_ExpInfo_V23_t expo_info;
130 } rk_aiq_bayer2dnr_info_v23_t;
131 
132 
133 #endif
134 
135 
136 RKAIQ_END_DECLARE
137 
138 #endif
139