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_BAYER_2DNR_HEADER_V23_H__ 21 #define __CALIBDBV2_BAYER_2DNR_HEADER_V23_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 ////////////////////////bayernr V23////////////////////////////////////// 28 typedef struct CalibDbV2_Bayer2dnrV23_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_Bayer2dnrV23_C_ISO_t; 39 40 typedef struct CalibDbV2_Bayer2dnrV23_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_Bayer2dnrV23_C_ISO_t *Calib_ISO; 47 int Calib_ISO_len; 48 49 } CalibDbV2_Bayer2dnrV23_C_Set_t; 50 51 typedef struct CalibDbV2_BlcV32_calib_s { 52 53 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index1") 54 float iso; 55 56 // M4_NUMBER_DESC("Reference_r", "f32", M4_RANGE(-512,512), "256.0", M4_DIGIT(4)) 57 float Reference_r; 58 59 // M4_NUMBER_DESC("Reference_gr", "f32", M4_RANGE(-512,512), "256.0", M4_DIGIT(4)) 60 float Reference_gr; 61 62 // M4_NUMBER_DESC("Reference_gb", "f32", M4_RANGE(-512,512), "256.0", M4_DIGIT(4)) 63 float Reference_gb; 64 65 // M4_NUMBER_DESC("Reference_b", "f32", M4_RANGE(-512,512), "256.0", M4_DIGIT(4)) 66 float Reference_b; 67 68 } CalibDbV2_BlcV32_calib_t; 69 70 typedef struct CalibDbV2_Bayer2dnrV23_Calib_s { 71 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 72 CalibDbV2_Bayer2dnrV23_C_Set_t *Setting; 73 int Setting_len; 74 75 // M4_STRUCT_LIST_DESC("Blc_Ref", M4_SIZE_DYNAMIC, "index1") 76 CalibDbV2_BlcV32_calib_t *Blc_Ref; 77 int Blc_Ref_len; 78 } CalibDbV2_Bayer2dnrV23_Calib_t; 79 80 typedef struct CalibDbV2_Bayer2dnrV23_gain_s { 81 // M4_ARRAY_DESC("lumapoint", "u16", M4_SIZE(1,16), M4_RANGE(0,256), "[16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256]", M4_DIGIT(0), M4_DYNAMIC(0)) 82 uint16_t gain_lumapoint[16]; 83 // M4_ARRAY_DESC("gain_adj", "u16", M4_SIZE(1,16), M4_RANGE(0,4095), "[16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256]", M4_DIGIT(2), M4_DYNAMIC(0)) 84 uint16_t gain_adj[16]; 85 86 } CalibDbV2_Bayer2dnrV23_gain_t; 87 88 89 typedef struct CalibDbV2_Bayer2dnrV23_T_ISO_s { 90 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2") 91 float iso; 92 93 // M4_BOOL_DESC("gauss_guide", "1") 94 bool gauss_guide; 95 96 // M4_NUMBER_DESC("filter_strength", "f32", M4_RANGE(0, 16), "0.5", M4_DIGIT(2)) 97 float filter_strength; 98 99 // M4_NUMBER_DESC("edgesofts", "f32", M4_RANGE(0, 16.0), "1.0", M4_DIGIT(2)) 100 float edgesofts; 101 102 // M4_NUMBER_DESC("ratio", "f32", M4_RANGE(0, 1.0), "0.2", M4_DIGIT(2)) 103 float ratio; 104 105 // M4_NUMBER_DESC("weight", "f32", M4_RANGE(0, 1.0), "1.0", M4_DIGIT(2)) 106 float weight; 107 108 // M4_BOOL_DESC("gain_bypass", "1") 109 bool gain_bypass; 110 111 // M4_NUMBER_DESC("gain_scale", "f32", M4_RANGE(0, 16.0), "1.0", M4_DIGIT(2)) 112 float gain_scale; 113 114 // M4_NUMBER_DESC("pix_diff", "u16", M4_RANGE(0, 16383), "16383", M4_DIGIT(0)) 115 uint16_t pix_diff; 116 117 // M4_NUMBER_DESC("diff_thld", "u16", M4_RANGE(0, 1023), "1023", M4_DIGIT(0)) 118 uint16_t diff_thld; 119 120 121 // M4_NUMBER_DESC("trans_mode", "u8", M4_RANGE(0, 3), "0", M4_DIGIT(0)) 122 uint8_t trans_mode; 123 // M4_NUMBER_DESC("trans_offset", "u16", M4_RANGE(0, 8191), "256", M4_DIGIT(0)) 124 uint16_t trans_offset; 125 // M4_NUMBER_DESC("itrans_offset", "u16", M4_RANGE(0, 65535), "32768", M4_DIGIT(0)) 126 uint16_t itrans_offset; 127 // M4_NUMBER_DESC("trans_datmax", "u32", M4_RANGE(0, 1048575), "1048575", M4_DIGIT(0)) 128 uint32_t trans_datmax; 129 130 131 // M4_NUMBER_DESC("hdr_dgain_scale_s", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2)) 132 float hdr_dgain_scale_s; 133 134 // M4_NUMBER_DESC("hdr_dgain_scale_m", "f32", M4_RANGE(0, 128.0), "1.0", M4_DIGIT(2)) 135 float hdr_dgain_scale_m; 136 137 // M4_ARRAY_TABLE_DESC("gain_adj", "array_table_ui", "none") 138 CalibDbV2_Bayer2dnrV23_gain_t gain_adj; 139 140 } CalibDbV2_Bayer2dnrV23_T_ISO_t; 141 142 typedef struct CalibDbV2_Bayer2dnrV23_T_Set_s { 143 // M4_STRING_MARK_DESC("SNR_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "LSNR",M4_DYNAMIC(0), "index1") 144 char *SNR_Mode; 145 // M4_STRING_DESC("Sensor_Mode", M4_SIZE(1,1), M4_RANGE(0, 64), "lcg", M4_DYNAMIC(0)) 146 char *Sensor_Mode; 147 // M4_STRUCT_LIST_DESC("Tuning_ISO", M4_SIZE_DYNAMIC, "double_index_list") 148 CalibDbV2_Bayer2dnrV23_T_ISO_t *Tuning_ISO; 149 int Tuning_ISO_len; 150 } CalibDbV2_Bayer2dnrV23_T_Set_t; 151 152 153 typedef struct CalibDbV2_Bayer2dnrV23_Tuning_s { 154 // M4_BOOL_DESC("enable", "1") 155 bool enable; 156 // M4_BOOL_DESC("hdrdgain_ctrl_en", "0") 157 bool hdrdgain_ctrl_en; 158 // M4_STRUCT_LIST_DESC("Setting", M4_SIZE_DYNAMIC, "double_index_list") 159 CalibDbV2_Bayer2dnrV23_T_Set_t *Setting; 160 int Setting_len; 161 } CalibDbV2_Bayer2dnrV23_Tuning_t; 162 163 164 165 typedef struct CalibDbV2_Bayer2dnrV23_s { 166 // M4_STRING_DESC("Version", M4_SIZE(1,1), M4_RANGE(0, 64), "V23", M4_DYNAMIC(0)) 167 char *Version; 168 // M4_STRUCT_DESC("CalibPara", "normal_ui_style") 169 CalibDbV2_Bayer2dnrV23_Calib_t CalibPara; 170 // M4_STRUCT_DESC("Bayernr2D", "normal_ui_style") 171 CalibDbV2_Bayer2dnrV23_Tuning_t TuningPara; 172 } CalibDbV2_Bayer2dnrV23_t; 173 174 RKAIQ_END_DECLARE 175 176 #endif 177