xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/algos/anr/rk_aiq_types_anr_hw.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *rk_aiq_types_alsc_hw.h
3  *
4  *  Copyright (c) 2019 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 _RK_AIQ_TYPE_ANR_HW_H_
21 #define _RK_AIQ_TYPE_ANR_HW_H_
22 #include "rk_aiq_comm.h"
23 
24 RKAIQ_BEGIN_DECLARE
25 
26 
27 typedef struct RKAnr_Bayernr_Fix_s {
28     unsigned char rawnr_en;
29     unsigned char gauss_en;
30     unsigned char log_bypass;
31 
32     unsigned short filtpar0;
33     unsigned short filtpar1;
34     unsigned short filtpar2;
35 
36     unsigned int dgain0;
37     unsigned int dgain1;
38     unsigned int dgain2;
39 
40     unsigned short luration[8];
41     unsigned short lulevel[8];
42 
43     unsigned int gauss;
44     unsigned short sigma;
45     unsigned short pix_diff;
46 
47     unsigned int thld_diff;
48 
49     unsigned char gas_weig_scl2;
50     unsigned char gas_weig_scl1;
51     unsigned short thld_chanelw;
52 
53     unsigned short lamda;
54 
55     unsigned short fixw0;
56     unsigned short fixw1;
57     unsigned short fixw2;
58     unsigned short fixw3;
59 
60     unsigned int wlamda0;
61     unsigned int wlamda1;
62     unsigned int wlamda2;
63 
64     unsigned short rgain_filp;
65     unsigned short bgain_filp;
66 } RKAnr_Bayernr_Fix_t;
67 
68 
69 
70 typedef struct RKAnr_Uvnr_Fix_s {
71     unsigned char uvnr_en;
72     unsigned char uvnr_step1_en;
73     unsigned char uvnr_step2_en;
74     unsigned char nr_gain_en;
75     unsigned char uvnr_nobig_en;
76     unsigned char uvnr_big_en;
77 
78     unsigned char uvnr_gain_1sigma;
79     unsigned char uvnr_gain_offset;
80     unsigned char uvnr_gain_uvgain[2];
81     unsigned char uvnr_gain_t2gen;
82     unsigned char uvnr_gain_iso;
83     unsigned char uvnr_t1gen_m3alpha;
84     unsigned char uvnr_t1flt_mode;
85     unsigned short uvnr_t1flt_msigma;
86     unsigned char uvnr_t1flt_wtp;
87     unsigned char uvnr_t1flt_wtq[8];
88     unsigned char uvnr_t2gen_m3alpha;
89     unsigned short uvnr_t2gen_msigma;
90     unsigned char uvnr_t2gen_wtp;
91     unsigned char uvnr_t2gen_wtq[4];
92     unsigned short uvnr_t2flt_msigma;
93 
94     unsigned char uvnr_t2flt_wtp;
95     unsigned char uvnr_t2flt_wt[3];
96 
97 } RKAnr_Uvnr_Fix_t;
98 
99 
100 
101 typedef struct RKAnr_Ynr_Fix_s {
102     unsigned char ynr_en;
103     unsigned char ynr_sgm_dx[16];
104     unsigned short ynr_lsgm_y[17];
105     unsigned char ynr_lci[4];
106     unsigned char ynr_lgain_min[4];
107     unsigned char ynr_lgain_max;
108 
109     unsigned char ynr_lmerge_bound;
110     unsigned char ynr_lmerge_ratio;
111 
112     unsigned char ynr_lweit_flt[4];
113     unsigned short ynr_hsgm_y[17];
114     unsigned char ynr_hlci[4];
115     unsigned char ynr_lhci[4];
116     unsigned char ynr_hhci[4];
117     unsigned char ynr_hgain_sgm[4];
118     unsigned char ynr_hweit_d[20];
119     unsigned char ynr_hgrad_y[24];
120     unsigned short ynr_hweit[4];
121     unsigned char ynr_hmax_adjust;
122     unsigned char ynr_hstrength;
123     unsigned char ynr_lweit_cmp[2];
124     unsigned char ynr_lmaxgain_lv4;
125     unsigned short ynr_hstv_y[17];
126     unsigned short ynr_st_scale[3];
127 } RKAnr_Ynr_Fix_t;
128 
129 
130 
131 typedef struct RKAnr_Mfnr_Fix_s {
132     unsigned char tnr_en;
133     unsigned char mode;
134     unsigned char opty_en;
135     unsigned char optc_en;
136     unsigned char gain_en;
137 
138     unsigned char pk0_y;
139     unsigned char pk1_y;
140     unsigned char pk0_c;
141     unsigned char pk1_c;
142 
143     unsigned short glb_gain_cur;
144     unsigned short glb_gain_nxt;
145     unsigned short glb_gain_cur_div;
146     unsigned char glb_gain_cur_sqrt;
147 
148     unsigned char sigma_x[16];
149     unsigned short sigma_y[17];
150 
151     unsigned short luma_curve[6];
152 
153     unsigned short txt_th0_y;
154     unsigned short txt_th1_y;
155     unsigned short txt_th0_c;
156     unsigned short txt_th1_c;
157     unsigned short txt_thy_dlt;
158     unsigned short txt_thc_dlt;
159 
160     unsigned char gfcoef_y0[6];
161     unsigned char gfcoef_y1[3];
162     unsigned char gfcoef_y2[3];
163     unsigned char gfcoef_y3[3];
164 
165     unsigned char gfcoef_yg0[6];
166     unsigned char gfcoef_yg1[3];
167     unsigned char gfcoef_yg2[3];
168     unsigned char gfcoef_yg3[3];
169 
170     unsigned char gfcoef_yl0[6];
171     unsigned char gfcoef_yl1[3];
172     unsigned char gfcoef_yl2[3];
173 
174     unsigned char gfcoef_cg0[6];
175     unsigned char gfcoef_cg1[3];
176     unsigned char gfcoef_cg2[3];
177 
178     unsigned char gfcoef_cl0[6];
179     unsigned char gfcoef_cl1[3];
180 
181     unsigned short scale_yg[4];
182     unsigned short scale_yl[3];
183     unsigned short scale_cg[3];
184     unsigned short scale_y2cg[3];
185     unsigned short scale_cl[2];
186     unsigned short scale_y2cl[3];
187 
188     unsigned char weight_y[3];
189 } RKAnr_Mfnr_Fix_t;
190 
191 typedef struct RKAnr_Gain_Fix_s {
192     unsigned char gain_table_en;
193     unsigned char dhaz_en;
194     unsigned char wdr_en;
195     unsigned char tmo_en;
196     unsigned char lsc_en;
197     unsigned char mge_en;
198 
199     unsigned int mge_gain[3];
200     unsigned short int idx[15];
201     unsigned short int lut[17];
202 } RKAnr_Gain_Fix_t;
203 
204 
205 RKAIQ_END_DECLARE
206 
207 #endif
208 
209 
210 
211