1 /* 2 * bayernr_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_BAYERNR_HEADER_V2_H__ 21 #define __CALIBDBV2_BAYERNR_HEADER_V2_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 ////////////////////////bayernr V2////////////////////////////////////// 28 typedef struct CalibDbV2_BayerNrV2_C_ISO_s { 29 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 30 float iso; 31 32 // M4_ARRAY_DESC("lumapoint", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0)) 33 int lumapoint[16]; 34 35 // M4_ARRAY_DESC("sigma", "s32", M4_SIZE(1,16), M4_RANGE(0,65535), "0.0", M4_DIGIT(0), M4_DYNAMIC(0)) 36 int sigma[16]; 37 38 } CalibDbV2_BayerNrV2_C_ISO_t; 39 40 typedef struct CalibDbV2_BayerNrV2_C_Set_s { 41 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 42 char *SNR_Mode; 43 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 44 char *Sensor_Mode; 45 // M4_STRUCT_LIST_DESC("Calib_ISO", M4_SIZE_DYNAMIC, "double_index_list") 46 CalibDbV2_BayerNrV2_C_ISO_t *Calib_ISO; 47 int Calib_ISO_len; 48 49 } CalibDbV2_BayerNrV2_C_Set_t; 50 51 typedef struct CalibDbV2_BayerNrV2_Calib_s { 52 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 53 CalibDbV2_BayerNrV2_C_Set_t *Setting; 54 int Setting_len; 55 } CalibDbV2_BayerNrV2_Calib_t; 56 57 typedef struct CalibDbV2_BayerNrV2_2d_ISO_s { 58 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 59 float iso; 60 61 // M4_BOOL_DESC("gauss_guide", "1") 62 bool gauss_guide; 63 64 // M4_NUMBER_DESC("filter_strength", "f32", M4_RANGE(0, 16), "0.5", M4_DIGIT(2)) 65 float filter_strength; 66 67 // M4_NUMBER_DESC("edgesofts", "f32", M4_RANGE(0, 1.0), "1.0", M4_DIGIT(2)) 68 float edgesofts; 69 70 // M4_NUMBER_DESC("ratio", "f32", M4_RANGE(0, 1.0), "0.2", M4_DIGIT(2)) 71 float ratio; 72 73 // M4_NUMBER_DESC("weight", "f32", M4_RANGE(0, 1.0), "1.0", M4_DIGIT(2)) 74 float weight; 75 76 } CalibDbV2_BayerNrV2_2d_ISO_t; 77 78 typedef struct CalibDbV2_BayerNrV2_2d_Set_s { 79 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 80 char *SNR_Mode; 81 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 82 char *Sensor_Mode; 83 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 84 CalibDbV2_BayerNrV2_2d_ISO_t *Tuning_ISO; 85 int Tuning_ISO_len; 86 } CalibDbV2_BayerNrV2_2d_Set_t; 87 88 typedef struct CalibDbV2_BayerNrV2_2d_s { 89 // M4_BOOL_DESC("enable", "1") 90 bool enable; 91 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 92 CalibDbV2_BayerNrV2_2d_Set_t *Setting; 93 int Setting_len; 94 } CalibDbV2_BayerNrV2_2d_t; 95 96 typedef struct CalibDbV2_BayerNrV2_3d_ISO_s { 97 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 98 float iso; 99 100 // M4_NUMBER_DESC("filter_strength", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(2)) 101 float filter_strength; 102 103 // M4_NUMBER_DESC("sp_filter_strength", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(2), M4_HIDE(1)) 104 float sp_filter_strength; 105 106 // M4_NUMBER_DESC("lo_clipwgt", "f32", M4_RANGE(0, 1.0), "0.01", M4_DIGIT(3)) 107 float lo_clipwgt; 108 109 // M4_NUMBER_DESC("hi_clipwgt", "f32", M4_RANGE(0, 1.0), "0.01", M4_DIGIT(3)) 110 float hi_clipwgt; 111 112 // M4_NUMBER_DESC("softwgt", "f32", M4_RANGE(0, 1), "0.0", M4_DIGIT(2)) 113 float softwgt; 114 115 } CalibDbV2_BayerNrV2_3d_ISO_t; 116 117 typedef struct CalibDbV2_BayerNrV2_3d_Set_s { 118 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 119 char *SNR_Mode; 120 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 121 char *Sensor_Mode; 122 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 123 CalibDbV2_BayerNrV2_3d_ISO_t *Tuning_ISO; 124 int Tuning_ISO_len; 125 } CalibDbV2_BayerNrV2_3d_Set_t; 126 127 typedef struct CalibDbV2_BayerNrV2_3d_s { 128 // M4_BOOL_DESC("enable", "1") 129 bool enable; 130 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 131 CalibDbV2_BayerNrV2_3d_Set_t *Setting; 132 int Setting_len; 133 } CalibDbV2_BayerNrV2_3d_t; 134 135 136 typedef struct CalibDbV2_BayerNrV2_s { 137 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V2", M4_DYNAMIC(0)) 138 char *Version; 139 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 140 CalibDbV2_BayerNrV2_Calib_t CalibPara; 141 // M4_STRUCT_DESC("Bayernr2D", "normal_ui_style") 142 CalibDbV2_BayerNrV2_2d_t Bayernr2D; 143 // M4_STRUCT_DESC("Bayernr3D", "normal_ui_style") 144 CalibDbV2_BayerNrV2_3d_t Bayernr3D; 145 } CalibDbV2_BayerNrV2_t; 146 147 RKAIQ_END_DECLARE 148 149 #endif 150