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_V1_H__ 21 #define __CALIBDBV2_YNR_HEADER_V1_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 ///////////////////////////ynr v1////////////////////////////////////// 28 29 typedef struct CalibDbV2_YnrV1_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), "[2.0,2.0,1.2,1.2]", M4_DIGIT(6), M4_DYNAMIC(0)) 33 double sigma_curve[5]; 34 // M4_ARRAY_DESC("ynr_lci", "f32", M4_SIZE(1,4), M4_RANGE(0.0, 16.0), "[0.9332,0.6865,0.4320,0.2739]", M4_DIGIT(4), M4_DYNAMIC(0)) 35 float ynr_lci[4]; 36 // M4_ARRAY_DESC("ynr_lhci", "f32", M4_SIZE(1,4), M4_RANGE(0.0, 16.0), "[0.8322,0.9514,0.7381,0.4824]", M4_DIGIT(4), M4_DYNAMIC(0)) 37 float ynr_lhci[4]; 38 // M4_ARRAY_DESC("ynr_hlci", "f32", M4_SIZE(1,4), M4_RANGE(0.0, 16.0), "[0.8451,0.9787,0.7649,0.5108]", M4_DIGIT(4), M4_DYNAMIC(0)) 39 float ynr_hlci[4]; 40 // M4_ARRAY_DESC("ynr_hhci", "f32", M4_SIZE(1,4), M4_RANGE(0.0, 16.0), "[0.6986,1.4097,1.2535,0.8366]", M4_DIGIT(4), M4_DYNAMIC(0)) 41 float ynr_hhci[4]; 42 } CalibDbV2_YnrV1_C_ISO_t; 43 44 typedef struct CalibDbV2_YnrV1_C_Set_s { 45 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 46 char *SNR_Mode; 47 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 48 char *Sensor_Mode; 49 // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list") 50 CalibDbV2_YnrV1_C_ISO_t *Calib_ISO; 51 int Calib_ISO_len; 52 } CalibDbV2_YnrV1_C_Set_t; 53 54 typedef struct CalibDbV2_YnrV1_Calib_s { 55 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 56 CalibDbV2_YnrV1_C_Set_t *Setting; 57 int Setting_len; 58 } CalibDbV2_YnrV1_Calib_t; 59 60 typedef struct CalibDbV2_YnrV1_Luma_s { 61 // M4_ARRAY_DESC("lo_lumaPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0.0000,32.0000,64.0000,128.0000,192.0000,256.0000]", M4_DIGIT(0), M4_DYNAMIC(0)) 62 float lo_lumaPoint[6]; 63 // M4_ARRAY_DESC("lo_lumaRatio", "f32", M4_SIZE(1,6), M4_RANGE(0,2.0), ""[1.0,1.0,1.0,1.0,1.0,1.0]"", M4_DIGIT(2), M4_DYNAMIC(0)) 64 float lo_lumaRatio[6]; 65 // M4_ARRAY_DESC("hi_lumaPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,256), "[0.0000,32.0000,64.0000,128.0000,192.0000,256.0000]", M4_DIGIT(0), M4_DYNAMIC(0)) 66 float hi_lumaPoint[6]; 67 // M4_ARRAY_DESC("hi_lumaRatio", "f32", M4_SIZE(1,6), M4_RANGE(0,2.0), ""[1.0,1.0,1.0,1.0,1.0,1.0]"", M4_DIGIT(2), M4_DYNAMIC(0)) 68 float hi_lumaRatio[6]; 69 } CalibDbV2_YnrV1_Luma_t; 70 71 typedef struct CalibDbV2_YnrV1_Hgrad_s { 72 // M4_ARRAY_DESC("y_luma_point", "f32", M4_SIZE(1,6), M4_RANGE(0,512), "[64.0000,128.0000,192.0000,256.0000,384.0000,512.0000]", M4_DIGIT(0), M4_DYNAMIC(0)) 73 float y_luma_point[6]; 74 // M4_ARRAY_DESC("hgrad_y_level1", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[1.0000,0.6700,0.6700,0.6700,0.6700,0.6700]", M4_DIGIT(0), M4_DYNAMIC(0)) 75 float hgrad_y_level1[6]; 76 // M4_ARRAY_DESC("hgrad_y_level2", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[1.0000,0.6700,0.6700,0.6700,0.6700,0.6700]", M4_DIGIT(0), M4_DYNAMIC(0)) 77 float hgrad_y_level2[6]; 78 // M4_ARRAY_DESC("hgrad_y_level3", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[1.0000,0.5700,0.5700,0.5700,0.5700,0.5700]", M4_DIGIT(0), M4_DYNAMIC(0)) 79 float hgrad_y_level3[6]; 80 // M4_ARRAY_DESC("hgrad_y_level4", "f32", M4_SIZE(1,6), M4_RANGE(0,1.0), "[1.0000,0.5000,0.5000,0.4000,0.3000,0.2000]", M4_DIGIT(0), M4_DYNAMIC(0)) 81 float hgrad_y_level4[6]; 82 } CalibDbV2_YnrV1_Hgrad_t; 83 84 85 typedef struct CalibDbV2_YnrV1_T_ISO_s { 86 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 87 float iso; 88 89 // M4_NUMBER_DESC("lo_bfScale_1", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 90 float lo_bfScale_1; 91 // M4_NUMBER_DESC("lo_bfScale_2", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 92 float lo_bfScale_2; 93 // M4_NUMBER_DESC("lo_bfScale_3", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 94 float lo_bfScale_3; 95 // M4_NUMBER_DESC("lo_bfScale_4", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 96 float lo_bfScale_4; 97 98 // M4_NUMBER_DESC("denoise_weight_1", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 99 float denoise_weight_1; 100 // M4_NUMBER_DESC("denoise_weight_2", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 101 float denoise_weight_2; 102 // M4_NUMBER_DESC("denoise_weight_3", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 103 float denoise_weight_3; 104 // M4_NUMBER_DESC("denoise_weight_4", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 105 float denoise_weight_4; 106 107 // M4_NUMBER_DESC("imerge_ratio", "f32", M4_RANGE(0.0, 1.0), "0.4", M4_DIGIT(2)) 108 float imerge_ratio; 109 // M4_NUMBER_DESC("imerge_bound", "f32", M4_RANGE(1.0, 16.0), "1.25", M4_DIGIT(2)) 110 float imerge_bound; 111 // M4_NUMBER_DESC("lo_directionStrength", "f32", M4_RANGE(0.0, 16.0), "0.5", M4_DIGIT(2)) 112 float lo_directionStrength; 113 114 // M4_NUMBER_DESC("hi_bfScale_1", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 115 float hi_bfScale_1; 116 // M4_NUMBER_DESC("hi_bfScale_2", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 117 float hi_bfScale_2; 118 // M4_NUMBER_DESC("hi_bfScale_3", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 119 float hi_bfScale_3; 120 // M4_NUMBER_DESC("hi_bfScale_4", "f32", M4_RANGE(0.0, 15.9), "1.0", M4_DIGIT(2)) 121 float hi_bfScale_4; 122 123 // M4_NUMBER_DESC("hi_denoiseWeight_1", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 124 float hi_denoiseWeight_1; 125 // M4_NUMBER_DESC("hi_denoiseWeight_2", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 126 float hi_denoiseWeight_2; 127 // M4_NUMBER_DESC("hi_denoiseWeight_3", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 128 float hi_denoiseWeight_3; 129 // M4_NUMBER_DESC("hi_denoiseWeight_4", "f32", M4_RANGE(0.0, 1.0), "0.5", M4_DIGIT(2)) 130 float hi_denoiseWeight_4; 131 132 // M4_NUMBER_DESC("hi_soft_thresh_scale_1", "f32", M4_RANGE(0.0, 1.0), "0.1", M4_DIGIT(2)) 133 float hi_soft_thresh_scale_1; 134 // M4_NUMBER_DESC("hi_soft_thresh_scale_2", "f32", M4_RANGE(0.0, 1.0), "0.1", M4_DIGIT(2)) 135 float hi_soft_thresh_scale_2; 136 // M4_NUMBER_DESC("hi_soft_thresh_scale_3", "f32", M4_RANGE(0.0, 1.0), "0.1", M4_DIGIT(2)) 137 float hi_soft_thresh_scale_3; 138 // M4_NUMBER_DESC("hi_soft_thresh_scale_4", "f32", M4_RANGE(0.0, 1.0), "0.1", M4_DIGIT(2)) 139 float hi_soft_thresh_scale_4; 140 141 // M4_NUMBER_DESC("hi_denoiseStrength", "f32", M4_RANGE(0.0, 63.0), "1.0", M4_DIGIT(2)) 142 float hi_denoiseStrength; 143 // M4_NUMBER_DESC("hi_detailMinAdjDnW", "f32", M4_RANGE(0.0, 1.9), "0.2", M4_DIGIT(2)) 144 float hi_detailMinAdjDnW; 145 // M4_ARRAY_DESC("hwith_d", "f32", M4_SIZE(1,4), M4_RANGE(0,15.9), "[2.0,2.0,1.2,1.2]", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 146 float hwith_d[4]; 147 148 // M4_ARRAY_TABLE_DESC("luma_para", "array_table_ui", "none") 149 CalibDbV2_YnrV1_Luma_t luma_para; 150 // M4_ARRAY_TABLE_DESC("hgrad_para", "array_table_ui", "none", M4_HIDE(1)) 151 CalibDbV2_YnrV1_Hgrad_t hgrad_para; 152 } CalibDbV2_YnrV1_T_ISO_t; 153 154 155 typedef struct CalibDbV2_YnrV1_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_YnrV1_T_ISO_t *Tuning_ISO; 162 int Tuning_ISO_len; 163 } CalibDbV2_YnrV1_T_Set_t; 164 165 typedef struct CalibDbV2_YnrV1_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_YnrV1_T_Set_t *Setting; 170 int Setting_len; 171 } CalibDbV2_YnrV1_Tuning_t; 172 173 174 typedef struct CalibDbV2_YnrV1_s { 175 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V1", M4_DYNAMIC(0)) 176 char *Version; 177 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 178 CalibDbV2_YnrV1_Calib_t CalibPara; 179 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 180 CalibDbV2_YnrV1_Tuning_t TuningPara; 181 } CalibDbV2_YnrV1_t; 182 183 RKAIQ_END_DECLARE 184 185 #endif 186