1 /* 2 * ynr_head_v1.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_YNRV3_HEADER_H__ 21 #define __CALIBDBV2_YNRV3_HEADER_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 ///////////////////////////ynr v1////////////////////////////////////// 28 29 typedef struct CalibDbV2_YnrV3_C_Set_ISO_s { 30 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 31 float iso; 32 // M4_ARRAY_DESC("sigma_curve", "f32", M4_SIZE(1,5), M4_RANGE(-65535.0, 65535), "0.0", M4_DIGIT(20), M4_DYNAMIC(0)) 33 double sigma_curve[5]; 34 // M4_NUMBER_DESC("ynr_lci", "f32", M4_RANGE(0.0, 2.0), "0.5", M4_DIGIT(3)) 35 float ynr_lci; 36 // M4_NUMBER_DESC("ynr_hci", "f32", M4_RANGE(0.0, 2.0), "0.5", M4_DIGIT(3)) 37 float ynr_hci; 38 // M4_ARRAY_DESC("lumaPoint", "s16", M4_SIZE(1,17), M4_RANGE(0,1024), "[0,64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024]", M4_DIGIT(0), M4_DYNAMIC(0)) 39 int16_t lumaPoint[17]; 40 // M4_ARRAY_DESC("sigma", "f32", M4_SIZE(1,17), M4_RANGE(0, 4095), "[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]", M4_DIGIT(3), M4_DYNAMIC(0)) 41 float sigma[17]; 42 43 } CalibDbV2_YnrV3_C_Set_ISO_t; 44 45 typedef struct CalibDbV2_YnrV3_C_Set_s { 46 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 47 char *SNR_Mode; 48 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 49 char *Sensor_Mode; 50 // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list") 51 CalibDbV2_YnrV3_C_Set_ISO_t *Calib_ISO; 52 int Calib_ISO_len; 53 } CalibDbV2_YnrV3_C_Set_t; 54 55 typedef struct CalibDbV2_YnrV3_Calib_s { 56 //M4_BOOL_DESC("sigma_use_point", "0") 57 bool sigma_use_point; 58 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 59 CalibDbV2_YnrV3_C_Set_t *Setting; 60 int Setting_len; 61 } CalibDbV2_YnrV3_Calib_t; 62 63 typedef struct CalibDbV2_YnrV3_ISO_LumaParam_s { 64 // M4_ARRAY_DESC("lo_lumaPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0,32,64,128,192,256]", M4_DIGIT(0), M4_DYNAMIC(0)) 65 float lo_lumaPoint[6]; 66 // M4_ARRAY_DESC("lo_ratio", "f32", M4_SIZE(1,6), M4_RANGE(0,2), "[1,1,1,1,1,1]", M4_DIGIT(2), M4_DYNAMIC(0)) 67 float lo_ratio[6]; 68 // M4_ARRAY_DESC("hi_lumaPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0,32,64,128,192,256]", M4_DIGIT(0), M4_DYNAMIC(0)) 69 float hi_lumaPoint[6]; 70 // M4_ARRAY_DESC("hi_ratio", "f32", M4_SIZE(1,6), M4_RANGE(0,2), "[1,1,1,1,1,1]", M4_DIGIT(2), M4_DYNAMIC(0)) 71 float hi_ratio[6]; 72 } CalibDbV2_YnrV3_ISO_LumaParam_t; 73 74 75 typedef struct CalibDbV2_YnrV3_T_Set_ISO_s { 76 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 77 float iso; 78 79 // M4_BOOL_DESC("ynr_bft3x3_bypass", "0") 80 float ynr_bft3x3_bypass; 81 // M4_BOOL_DESC("ynr_lbft5x5_bypass", "0") 82 float ynr_lbft5x5_bypass; 83 // M4_BOOL_DESC("ynr_lgft3x3_bypass", "0") 84 float ynr_lgft3x3_bypass; 85 // M4_BOOL_DESC("ynr_flt1x1_bypass", "0") 86 float ynr_flt1x1_bypass; 87 // M4_BOOL_DESC("ynr_sft5x5_bypass", "0") 88 float ynr_sft5x5_bypass; 89 90 // M4_NUMBER_DESC("ynr_global_gain_alpha", "f32", M4_RANGE(0, 1.0), "0", M4_DIGIT(2)) 91 float ynr_global_gain_alpha; 92 // M4_NUMBER_DESC("ynr_global_gain", "f32", M4_RANGE(0, 64), "1", M4_DIGIT(2)) 93 float ynr_global_gain; 94 95 // M4_NUMBER_DESC("ynr_adjust_thresh", "f32", M4_RANGE(0, 1.0), "1", M4_DIGIT(2)) 96 float ynr_adjust_thresh; 97 // M4_NUMBER_DESC("ynr_adjust_scale", "f32", M4_RANGE(0, 16), "1", M4_DIGIT(2)) 98 float ynr_adjust_scale; 99 100 // M4_ARRAY_TABLE_DESC("lumaPara", "array_table_ui", "none") 101 CalibDbV2_YnrV3_ISO_LumaParam_t lumaPara; 102 103 // M4_NUMBER_DESC("low_bf1", "f32", M4_RANGE(0.1, 32), "0.5", M4_DIGIT(2)) 104 float low_bf1; 105 // M4_NUMBER_DESC("low_bf2", "f32", M4_RANGE(0.1, 32), "0.5", M4_DIGIT(2)) 106 float low_bf2; 107 108 // M4_NUMBER_DESC("low_thred_adj", "f32", M4_RANGE(0.0, 31.0), "0.25", M4_DIGIT(2)) 109 float low_thred_adj; 110 // M4_NUMBER_DESC("low_peak_supress", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 111 float low_peak_supress; 112 // M4_NUMBER_DESC("low_edge_adj_thresh", "f32", M4_RANGE(0, 1023), "7", M4_DIGIT(2)) 113 float low_edge_adj_thresh; 114 // M4_NUMBER_DESC("low_lbf_weight_thresh", "f32", M4_RANGE(0.0, 1.0), "0.25", M4_DIGIT(2)) 115 float low_lbf_weight_thresh; 116 // M4_NUMBER_DESC("low_center_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 117 float low_center_weight; 118 // M4_NUMBER_DESC("low_dist_adj", "f32", M4_RANGE(0.0, 127.0), "8.0", M4_DIGIT(2)) 119 float low_dist_adj; 120 // M4_NUMBER_DESC("low_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 121 float low_weight; 122 // M4_NUMBER_DESC("low_filt1_strength", "f32", M4_RANGE(0.0, 1.0), "0.7", M4_DIGIT(2)) 123 float low_filt1_strength; 124 // M4_NUMBER_DESC("low_filt2_strength", "f32", M4_RANGE(0.0, 1.0), "0.85", M4_DIGIT(2)) 125 float low_filt2_strength; 126 // M4_NUMBER_DESC("low_bi_weight", "f32", M4_RANGE(0.0, 1.0), "0.2", M4_DIGIT(2)) 127 float low_bi_weight; 128 129 130 // M4_NUMBER_DESC("base_filter_weight1", "f32", M4_RANGE(0.0, 1.0), "0.28", M4_DIGIT(2)) 131 float base_filter_weight1; 132 // M4_NUMBER_DESC("base_filter_weight2", "f32", M4_RANGE(0.0, 1.0), "0.46", M4_DIGIT(2)) 133 float base_filter_weight2; 134 // M4_NUMBER_DESC("base_filter_weight3", "f32", M4_RANGE(0.0, 1.0), "0.26", M4_DIGIT(2)) 135 float base_filter_weight3; 136 137 138 // M4_NUMBER_DESC("high_thred_adj", "f32", M4_RANGE(0.0, 31.0), "0.5", M4_DIGIT(2)) 139 float high_thred_adj; 140 // M4_NUMBER_DESC("high_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 141 float high_weight; 142 // M4_NUMBER_DESC("hi_min_adj", "f32", M4_RANGE(0.0, 1), "0.9", M4_DIGIT(2)) 143 float hi_min_adj; 144 // M4_NUMBER_DESC("hi_edge_thed", "f32", M4_RANGE(0.0, 255.0), "100.0", M4_DIGIT(2)) 145 float hi_edge_thed; 146 // M4_ARRAY_DESC("high_direction_weight", "f32", M4_SIZE(1,8), M4_RANGE(0,1.0), "[1 1 1 1 0.5 0.5 0.5 0.5]", M4_DIGIT(2), M4_DYNAMIC(0)) 147 float high_direction_weight[8]; 148 149 // M4_ARRAY_DESC("rnr_strength", "f32", M4_SIZE(1,17), M4_RANGE(0,16), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 150 float rnr_strength[17]; 151 152 } CalibDbV2_YnrV3_T_Set_ISO_t; 153 154 155 typedef struct CalibDbV2_YnrV3_T_Set_s { 156 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 157 char *SNR_Mode; 158 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 159 char *Sensor_Mode; 160 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 161 CalibDbV2_YnrV3_T_Set_ISO_t *Tuning_ISO; 162 int Tuning_ISO_len; 163 } CalibDbV2_YnrV3_T_Set_t; 164 165 typedef struct CalibDbV2_YnrV3_Tuning_s { 166 // M4_BOOL_DESC("enable", "1") 167 bool enable; 168 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 169 CalibDbV2_YnrV3_T_Set_t *Setting; 170 int Setting_len; 171 } CalibDbV2_YnrV3_Tuning_t; 172 173 174 typedef struct CalibDbV2_YnrV3_s { 175 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V2", M4_DYNAMIC(0)) 176 char *Version; 177 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 178 CalibDbV2_YnrV3_Calib_t CalibPara; 179 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 180 CalibDbV2_YnrV3_Tuning_t TuningPara; 181 } CalibDbV2_YnrV3_t; 182 183 RKAIQ_END_DECLARE 184 185 #endif 186