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_YNR_HEADER_V2_H__ 21 #define __CALIBDBV2_YNR_HEADER_V2_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 ///////////////////////////ynr v1////////////////////////////////////// 28 29 typedef struct CalibDbV2_YnrV2_C_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_ci_l", "f32", M4_RANGE(0.0, 2.0), "0.5", M4_DIGIT(3)) 35 float ynr_ci_l; 36 // M4_NUMBER_DESC("ynr_ci_h", "f32", M4_RANGE(0.0, 2.0), "0.5", M4_DIGIT(3)) 37 float ynr_ci_h; 38 39 } CalibDbV2_YnrV2_C_ISO_t; 40 41 typedef struct CalibDbV2_YnrV2_C_Set_s { 42 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 43 char *SNR_Mode; 44 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 45 char *Sensor_Mode; 46 // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list") 47 CalibDbV2_YnrV2_C_ISO_t *Calib_ISO; 48 int Calib_ISO_len; 49 } CalibDbV2_YnrV2_C_Set_t; 50 51 typedef struct CalibDbV2_YnrV2_Calib_s { 52 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 53 CalibDbV2_YnrV2_C_Set_t *Setting; 54 int Setting_len; 55 } CalibDbV2_YnrV2_Calib_t; 56 57 58 typedef struct CalibDbV2_YnrV2_T_ISO_s { 59 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 60 float iso; 61 62 // M4_BOOL_DESC("ynr_bft3x3_bypass", "0") 63 float ynr_bft3x3_bypass; 64 // M4_BOOL_DESC("ynr_lbft5x5_bypass", "0") 65 float ynr_lbft5x5_bypass; 66 // M4_BOOL_DESC("ynr_lgft3x3_bypass", "0") 67 float ynr_lgft3x3_bypass; 68 // M4_BOOL_DESC("ynr_flt1x1_bypass", "0") 69 float ynr_flt1x1_bypass; 70 // M4_BOOL_DESC("ynr_sft5x5_bypass", "0") 71 float ynr_sft5x5_bypass; 72 73 // M4_NUMBER_DESC("low_bf_0", "f32", M4_RANGE(0.1, 512), "0.5", M4_DIGIT(2)) 74 float low_bf_0; 75 // M4_NUMBER_DESC("low_bf_1", "f32", M4_RANGE(0.1, 512), "0.5", M4_DIGIT(2)) 76 float low_bf_1; 77 // M4_NUMBER_DESC("low_thred_adj", "f32", M4_RANGE(0.0, 31.0), "0.25", M4_DIGIT(2)) 78 float low_thred_adj; 79 // M4_NUMBER_DESC("low_peak_supress", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 80 float low_peak_supress; 81 // M4_NUMBER_DESC("low_edge_adj_thresh", "f32", M4_RANGE(0, 1023), "7", M4_DIGIT(2)) 82 float low_edge_adj_thresh; 83 // M4_NUMBER_DESC("low_center_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 84 float low_center_weight; 85 // M4_NUMBER_DESC("low_dist_adj", "f32", M4_RANGE(0.0, 63.0), "8.0", M4_DIGIT(2)) 86 float low_dist_adj; 87 // M4_NUMBER_DESC("low_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 88 float low_weight; 89 // M4_NUMBER_DESC("low_filt_strength_0", "f32", M4_RANGE(0.0, 1.0), "0.7", M4_DIGIT(2)) 90 float low_filt_strength_0; 91 // M4_NUMBER_DESC("low_filt_strength_1", "f32", M4_RANGE(0.0, 1.0), "0.85", M4_DIGIT(2)) 92 float low_filt_strength_1; 93 // M4_NUMBER_DESC("low_bi_weight", "f32", M4_RANGE(0.0, 1.0), "0.2", M4_DIGIT(2)) 94 float low_bi_weight; 95 96 97 // M4_NUMBER_DESC("base_filter_weight_0", "f32", M4_RANGE(0.0, 1.0), "0.28", M4_DIGIT(2)) 98 float base_filter_weight_0; 99 // M4_NUMBER_DESC("base_filter_weight_1", "f32", M4_RANGE(0.0, 1.0), "0.46", M4_DIGIT(2)) 100 float base_filter_weight_1; 101 // M4_NUMBER_DESC("base_filter_weight_2", "f32", M4_RANGE(0.0, 1.0), "0.26", M4_DIGIT(2)) 102 float base_filter_weight_2; 103 104 105 // M4_NUMBER_DESC("high_thred_adj", "f32", M4_RANGE(0.0, 31.0), "0.5", M4_DIGIT(2)) 106 float high_thred_adj; 107 // M4_NUMBER_DESC("high_weight", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 108 float high_weight; 109 // M4_NUMBER_DESC("hi_min_adj", "f32", M4_RANGE(0.0, 1), "0.9", M4_DIGIT(2)) 110 float hi_min_adj; 111 // M4_NUMBER_DESC("hi_edge_thed", "f32", M4_RANGE(0.0, 255.0), "100.0", M4_DIGIT(2)) 112 float hi_edge_thed; 113 // 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)) 114 float high_direction_weight[8]; 115 116 // M4_ARRAY_DESC("rnr_strength", "f32", M4_SIZE(1,17), M4_RANGE(0,16), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 117 float rnr_strength[17]; 118 119 } CalibDbV2_YnrV2_T_ISO_t; 120 121 122 typedef struct CalibDbV2_YnrV2_T_Set_s { 123 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 124 char *SNR_Mode; 125 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 126 char *Sensor_Mode; 127 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 128 CalibDbV2_YnrV2_T_ISO_t *Tuning_ISO; 129 int Tuning_ISO_len; 130 } CalibDbV2_YnrV2_T_Set_t; 131 132 typedef struct CalibDbV2_YnrV2_Tuning_s { 133 // M4_BOOL_DESC("enable", "1") 134 bool enable; 135 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 136 CalibDbV2_YnrV2_T_Set_t *Setting; 137 int Setting_len; 138 } CalibDbV2_YnrV2_Tuning_t; 139 140 141 typedef struct CalibDbV2_YnrV2_s { 142 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V2", M4_DYNAMIC(0)) 143 char *Version; 144 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 145 CalibDbV2_YnrV2_Calib_t CalibPara; 146 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 147 CalibDbV2_YnrV2_Tuning_t TuningPara; 148 } CalibDbV2_YnrV2_t; 149 150 RKAIQ_END_DECLARE 151 152 #endif 153