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