1 /* 2 * Copyright (c) 2021 Rockchip Corporation 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 */ 17 18 #ifndef __AWB_UAPI_HEAD_H__ 19 #define __AWB_UAPI_HEAD_H__ 20 21 22 #include "rk_aiq_user_api_common.h" 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 typedef struct __uapi_wb_mode_t { 29 // M4_ENUM_DESC("mode", "opMode_t", "OP_AUTO"); 30 opMode_t mode; 31 } uapi_wb_mode_t; 32 33 typedef struct __uapi_wb_gain_t { 34 // M4_NUMBER_DESC("rgain", "f32", M4_RANGE(0,8), "0", M4_DIGIT(6)) 35 float rgain; 36 // M4_NUMBER_DESC("grgain", "f32", M4_RANGE(0,8), "0", M4_DIGIT(6)) 37 float grgain; 38 // M4_NUMBER_DESC("gbgain", "f32", M4_RANGE(0,8), "0", M4_DIGIT(6)) 39 float gbgain; 40 // M4_NUMBER_DESC("bgain", "f32", M4_RANGE(0,8), "0", M4_DIGIT(6)) 41 float bgain; 42 } uapi_wb_gain_t; 43 44 45 #define RK_TOOL_AWB_MAX_WHITEREGIONS_NUM 7 46 #define RK_TOOL_AWB_MAX_WHITEREGIONS_NUM_V32 4 47 #define RK_TOOL_AWB_MAX_WHITEREGIONS_NUM2 14 48 #define RK_TOOL_AWB_STAT_WP_RANGE_NUM_V201 4 49 #define RK_TOOL_AWB_WP_HIST_BIN_NUM 8 50 #define RK_TOOL_AWB_XY_TYPE_MAX_V201 2 51 #define RK_TOOL_AWB_GRID_NUM_TOTAL 225 52 #define RK_TOOL_AWB_CHANNEL_MAX 4 53 #define RK_TOOL_MAX_AWB_TIME_SHARE_FRAME_NUM 4 54 //typedef struct stat3a_lightType_s 55 typedef struct rk_tool_awb_stat_wp_res_v201_s { 56 // M4_NUMBER_DESC("WpNo", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 57 long long WpNo; 58 // M4_NUMBER_DESC("RgainValue", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 59 long long RgainValue; 60 // M4_NUMBER_DESC("BgainValue", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 61 long long BgainValue; 62 } rk_tool_awb_stat_wp_res_v201_t; 63 64 typedef struct rk_tool_awb_stat_blk_res_v201_s { 65 // M4_NUMBER_DESC("WpNo", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 66 long long WpNo; 67 // M4_NUMBER_DESC("Rvalue", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 68 long long Rvalue; 69 // M4_NUMBER_DESC("Gvalue", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 70 long long Gvalue; 71 // M4_NUMBER_DESC("Bvalue", "u32", M4_RANGE(-9223372036854775808,9223372036854775807), "0", M4_DIGIT(0), M4_HIDE(0)) 72 long long Bvalue; 73 } rk_tool_awb_stat_blk_res_v201_t; 74 75 typedef struct rk_tool_awb_wp_res_light_v201_s { 76 // M4_STRUCT_LIST_DESC("xYType", M4_SIZE(1,2), "normal_ui_style") 77 rk_tool_awb_stat_wp_res_v201_t xYType[RK_TOOL_AWB_XY_TYPE_MAX_V201]; 78 } rk_tool_awb_wp_res_light_v201_t; 79 80 typedef struct rk_tool_awb_stat_res2_v201_s { 81 // M4_STRUCT_LIST_DESC("light", M4_SIZE(1,7), "normal_ui_style") 82 rk_tool_awb_wp_res_light_v201_t light[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM]; 83 //method2 84 // M4_STRUCT_LIST_DESC("blockResult", M4_SIZE(1,225), "normal_ui_style") 85 rk_tool_awb_stat_blk_res_v201_t blockResult[RK_TOOL_AWB_GRID_NUM_TOTAL]; 86 // M4_ARRAY_DESC("WpNoHist", "u32", M4_SIZE(1,8), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 87 unsigned int WpNoHist[RK_TOOL_AWB_WP_HIST_BIN_NUM]; 88 } rk_tool_awb_stat_res2_v201_t; 89 90 91 typedef struct rk_tool_awb_stat_res2_v30_s { 92 // M4_STRUCT_LIST_DESC("light", M4_SIZE(1,7), "normal_ui_style") 93 rk_tool_awb_wp_res_light_v201_t light[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM]; 94 // M4_ARRAY_DESC("WpNo2", "s32", M4_SIZE(1,8), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 95 int WpNo2[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM]; 96 // M4_STRUCT_LIST_DESC("blockResult", M4_SIZE(1,225), "normal_ui_style") 97 rk_tool_awb_stat_blk_res_v201_t blockResult[RK_TOOL_AWB_GRID_NUM_TOTAL]; 98 // M4_STRUCT_LIST_DESC("multiwindowLightResult", M4_SIZE(1,4), "normal_ui_style") 99 rk_tool_awb_wp_res_light_v201_t multiwindowLightResult[4]; 100 // M4_STRUCT_LIST_DESC("excWpRangeResult", M4_SIZE(1,4), "normal_ui_style") 101 rk_tool_awb_stat_wp_res_v201_t excWpRangeResult[RK_TOOL_AWB_STAT_WP_RANGE_NUM_V201]; 102 // M4_ARRAY_DESC("WpNoHist", "u32", M4_SIZE(1,8), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 103 unsigned int WpNoHist[RK_TOOL_AWB_WP_HIST_BIN_NUM]; 104 } rk_tool_awb_stat_res2_v30_t; 105 106 typedef struct rk_tool_isp_awb_stats_v32_s { 107 // M4_STRUCT_LIST_DESC("light", M4_SIZE(1,4), "normal_ui_style") 108 rk_tool_awb_wp_res_light_v201_t light[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM_V32]; 109 // M4_ARRAY_DESC("WpNo2", "s32", M4_SIZE(1,8), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 110 int WpNo2[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM_V32]; 111 // M4_STRUCT_LIST_DESC("blockResult", M4_SIZE(1,225), "normal_ui_style") 112 rk_tool_awb_stat_blk_res_v201_t blockResult[RK_TOOL_AWB_GRID_NUM_TOTAL]; 113 // M4_STRUCT_LIST_DESC("multiwindowLightResult", M4_SIZE(1,4), "normal_ui_style") 114 rk_tool_awb_stat_wp_res_v201_t excWpRangeResult[RK_TOOL_AWB_STAT_WP_RANGE_NUM_V201]; 115 // M4_ARRAY_DESC("WpNoHist", "u32", M4_SIZE(1,8), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 116 unsigned int WpNoHist[RK_TOOL_AWB_WP_HIST_BIN_NUM]; 117 } rk_tool_isp_awb_stats_v32_t; 118 119 120 typedef struct rk_tool_awb_measure_wp_res_fl_s { 121 // M4_ARRAY_DESC("WpNo", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 122 unsigned int WpNo; 123 // M4_ARRAY_DESC("gain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 124 float gain[RK_TOOL_AWB_CHANNEL_MAX];//mean rgain value 125 // M4_ARRAY_DESC("WpNoHist_2", "s32", M4_SIZE(1,8), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 126 int WpNoHist_2[RK_TOOL_AWB_WP_HIST_BIN_NUM]; //uselsess 127 } rk_tool_awb_measure_wp_res_fl_t; 128 129 typedef struct rk_tool_awb_blk_res2_fl_s { 130 // M4_ARRAY_DESC("WpNo", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 131 unsigned int WpNo; 132 // M4_ARRAY_DESC("gain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 133 float gain[RK_TOOL_AWB_CHANNEL_MAX];//mean rgain value 134 } rk_tool_awb_blk_res2_fl_t; 135 136 typedef struct rk_tool_awb_wp_res_light_fl_s { 137 // M4_STRUCT_LIST_DESC("xYType", M4_SIZE(1,2), "normal_ui_style") 138 rk_tool_awb_measure_wp_res_fl_t xYType[RK_TOOL_AWB_XY_TYPE_MAX_V201]; 139 } rk_tool_awb_wp_res_light_fl_t; 140 141 typedef struct rk_tool_awb_blk_res_fl_s { 142 // M4_ARRAY_DESC("R", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 143 float R;//mean r value and normalize to 0~1 144 // M4_ARRAY_DESC("G", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 145 float G; 146 // M4_ARRAY_DESC("B", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 147 float B; 148 } rk_tool_awb_blk_res_fl_t; 149 150 typedef struct rk_tool_awb_effect_para1_s{ 151 // M4_ARRAY_DESC("hdrFrameChoose", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 152 int hdrFrameChoose; 153 }rk_tool_awb_effect_para1_t; 154 155 typedef struct rk_tool_awb_stat_res_full_s { 156 // M4_ARRAY_DESC("lightNum", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 157 int lightNum; 158 // M4_STRUCT_LIST_DESC("light", M4_SIZE(1,14), "normal_ui_style") 159 rk_tool_awb_wp_res_light_fl_t light[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM2]; 160 // M4_BOOL_DESC("lightWpResVaLidIll", "0") 161 bool lightWpResVaLidIll[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM2];//for time share 162 // M4_BOOL_DESC("lightWpResVaLid", "0") 163 bool lightWpResVaLid;//for time share 164 // M4_ARRAY_DESC("WpNo", "s32", M4_SIZE(1,2), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 165 int WpNo[RK_TOOL_AWB_XY_TYPE_MAX_V201];//for diff xy type 166 // M4_ARRAY_DESC("WpNo2", "s32", M4_SIZE(1,14), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 167 int WpNo2[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM2];//for diff illu 168 // M4_BOOL_DESC("blkGwResValid", "0") 169 bool blkGwResValid; 170 // M4_BOOL_DESC("blkSgcResVaLid", "0") 171 bool blkSgcResVaLid; 172 // M4_STRUCT_LIST_DESC("blkSgcResult", M4_SIZE(1,225), "normal_ui_style") 173 rk_tool_awb_blk_res_fl_t blkSgcResult[RK_TOOL_AWB_GRID_NUM_TOTAL]; 174 // M4_BOOL_DESC("blkWpResVaLid", "0") 175 bool blkWpResVaLid; 176 // M4_STRUCT_LIST_DESC("blkWpResult", M4_SIZE(1,225), "normal_ui_style") 177 rk_tool_awb_blk_res2_fl_t blkWpResult[RK_TOOL_AWB_GRID_NUM_TOTAL]; 178 // M4_BOOL_DESC("excWpResValid", "0") 179 bool excWpResValid; 180 // M4_STRUCT_LIST_DESC("excWpRangeResult", M4_SIZE(1,4), "normal_ui_style") 181 rk_tool_awb_measure_wp_res_fl_t excWpRangeResult[RK_TOOL_AWB_STAT_WP_RANGE_NUM_V201]; 182 // M4_STRUCT_DESC("extraLightResult", "normal_ui_style") 183 rk_tool_awb_measure_wp_res_fl_t extraLightResult; 184 // M4_ARRAY_DESC("WpNoHist", "u32", M4_SIZE(1,8), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 185 unsigned int WpNoHist[RK_TOOL_AWB_WP_HIST_BIN_NUM]; 186 // M4_STRUCT_DESC("effectHwPara", "normal_ui_style") 187 rk_tool_awb_effect_para1_t effectHwPara; 188 } rk_tool_awb_stat_res_full_t; 189 190 typedef struct rk_tool_awb_smart_run_res_s{ 191 // M4_BOOL_DESC("blc1Stable", "0") 192 bool blc1Stable; 193 // M4_BOOL_DESC("lvStable", "0") 194 bool lvStable; 195 // M4_BOOL_DESC("wbgainStable", "0") 196 bool wbgainStable; 197 // M4_BOOL_DESC("wpDiffweiStable", "0") 198 bool wpDiffweiStable; 199 // M4_NUMBER_DESC("statisticsStable", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0)) 200 unsigned char statisticsStable; 201 // M4_BOOL_DESC("forceRunAwbFlag", "0") 202 bool forceRunAwbFlag;//update by api or prepare; 203 // M4_BOOL_DESC("samrtRunAwbFlag2", "0") 204 bool samrtRunAwbFlag2;//update by above paras 205 // M4_ARRAY_DESC("wbgainMean", "f32", M4_SIZE(4,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 206 float wbgainMean[RK_TOOL_MAX_AWB_TIME_SHARE_FRAME_NUM][RK_TOOL_AWB_CHANNEL_MAX]; 207 // M4_BOOL_DESC("algMethodStable", "0") 208 bool algMethodStable; 209 }rk_tool_awb_smart_run_res_t; 210 211 typedef struct rk_tool_awb_illInf_s { 212 // M4_STRING_DESC("illName", M4_SIZE(1,100), M4_RANGE(-128, 127), "default", M4_DYNAMIC(0)) 213 char illName[100]; 214 // M4_ARRAY_DESC("gainValue", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 215 float gainValue[4]; 216 // M4_ARRAY_DESC("prob_total", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 217 float prob_total; 218 // M4_ARRAY_DESC("prob_dis", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 219 float prob_dis; 220 // M4_ARRAY_DESC("prob_LV", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 221 float prob_LV; 222 // M4_ARRAY_DESC("weight", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 223 float weight; 224 // M4_ARRAY_DESC("spatialGainValue", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 225 float spatialGainValue[RK_TOOL_AWB_CHANNEL_MAX]; 226 // M4_ARRAY_DESC("prob_WPNO", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 227 float prob_WPNO; 228 // M4_ARRAY_DESC("staWeight", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 229 float staWeight; 230 // M4_ARRAY_DESC("xyType2Weight", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 231 float xyType2Weight; 232 } rk_tool_awb_illInf_t; 233 234 typedef struct rk_tool_color_tempture_info_s { 235 // M4_BOOL_DESC("valid", "0") 236 bool valid; 237 // M4_NUMBER_DESC("CCT", "f32", M4_RANGE(0,10000), "5000", M4_DIGIT(0)) 238 float CCT; 239 // M4_NUMBER_DESC("CCRI", "f32", M4_RANGE(-2,2), "0", M4_DIGIT(3)) 240 float CCRI; 241 } rk_tool_color_tempture_info_t; 242 243 typedef struct rk_tool_awb_strategy_result_s { 244 // M4_BOOL_DESC("awbConverged", "0") 245 bool awbConverged; 246 // M4_STRUCT_DESC("cctGloabl", "normal_ui_style") 247 rk_tool_color_tempture_info_t cctGloabl; 248 // M4_ARRAY_DESC("lightNum", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 249 int lightNum; 250 // M4_STRUCT_DESC("smartAwbRunRes", "normal_ui_style") 251 rk_tool_awb_smart_run_res_t smartAwbRunRes; 252 // M4_ARRAY_DESC("count", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 253 unsigned int count; 254 // M4_ARRAY_DESC("runInterval", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 255 uint32_t runInterval; 256 // M4_NUMBER_DESC("tolerance", "f32", M4_RANGE(0,10000), "5000", M4_DIGIT(0)) 257 float tolerance; 258 // M4_ARRAY_DESC("dsRateWt", "u8", M4_SIZE(1,1), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 259 uint8_t dsRateWh; //downsample 8x8->Pixel(R,G,B) 260 // M4_ARRAY_DESC("dsRateHt", "u8", M4_SIZE(1,1), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 261 uint8_t dsRateHt; //downsample 8x8->Pixel(R,G,B) 262 // M4_ARRAY_DESC("width_ds", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 263 uint32_t width_ds; 264 // M4_ARRAY_DESC("height_ds", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 265 uint32_t height_ds; 266 // M4_ARRAY_DESC("WPmode", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 267 int WPmode; 268 // M4_ARRAY_DESC("WPTotalNUM", "u32", M4_SIZE(1,1), M4_RANGE(0,4294967295), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 269 uint32_t WPTotalNUM; 270 // M4_ARRAY_DESC("WPType", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 271 int WPType; 272 // M4_ARRAY_DESC("LVType", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 273 int LVType; 274 // M4_ARRAY_DESC("LVValue", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 275 int LVValue;// 8bit/1x/1s 276 // M4_NUMBER_DESC("fLVValue", "f32", M4_RANGE(0,255000), "5000", M4_DIGIT(0)) 277 float fLVValue; 278 // M4_ARRAY_DESC("LVLevel", "s32", M4_SIZE(1,1), M4_RANGE(-2147483648,2147483647), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 279 int LVLevel; 280 // M4_STRUCT_LIST_DESC("illInf", M4_SIZE(1,14), "normal_ui_style") 281 rk_tool_awb_illInf_t illInf[RK_TOOL_AWB_MAX_WHITEREGIONS_NUM2];//information and measure result in different illuminations 282 // M4_ARRAY_DESC("wbGainTepTp3", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 283 float wbGainTepTp3[RK_TOOL_AWB_CHANNEL_MAX]; 284 // M4_ARRAY_DESC("wbWeiTepTp3", "f32", M4_SIZE(1,1), M4_RANGE(0,100), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 285 float wbWeiTepTp3;//temporal mix statistics 286 // M4_ARRAY_DESC("xy_area_type", "u8", M4_SIZE(1,1), M4_RANGE(0,255), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 287 uint8_t xy_area_type; //enalbe type 288 // M4_BOOL_DESC("spaGainEqu2Tem", "0") 289 bool spaGainEqu2Tem; 290 // M4_BOOL_DESC("sgcGainEqu2Tem", "0") 291 bool sgcGainEqu2Tem; 292 // M4_ARRAY_DESC("wbGainType3", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 293 float wbGainType3[RK_TOOL_AWB_CHANNEL_MAX]; 294 // M4_ARRAY_DESC("wbGainType1", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 295 float wbGainType1[RK_TOOL_AWB_CHANNEL_MAX]; 296 // M4_ARRAY_DESC("wbWeightType3", "f32", M4_SIZE(1,1), M4_RANGE(0,100), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 297 float wbWeightType3; 298 // M4_ARRAY_DESC("wbGainTep", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 299 float wbGainTep[RK_TOOL_AWB_CHANNEL_MAX];//night gain 300 // M4_ARRAY_DESC("wbGainSgc", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 301 float wbGainSgc[RK_TOOL_AWB_CHANNEL_MAX]; 302 // M4_ARRAY_DESC("wbWeightSgc", "f32", M4_SIZE(1,1), M4_RANGE(0,100), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 303 float wbWeightSgc; 304 // M4_ARRAY_DESC("wbGainSpa", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 305 float wbGainSpa[RK_TOOL_AWB_CHANNEL_MAX];//day gain 306 // M4_ARRAY_DESC("wbWeightSpa", "f32", M4_SIZE(1,1), M4_RANGE(0,100), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 307 float wbWeightSpa; 308 // M4_ARRAY_DESC("varianceLuma", "f32", M4_SIZE(1,1), M4_RANGE(0,2147483647), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 309 float varianceLuma; 310 // M4_ARRAY_DESC("wbGainDampFactor", "f32", M4_SIZE(1,1), M4_RANGE(0,1), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 311 float wbGainDampFactor; 312 // M4_BOOL_DESC("clipEnalbe", "0") 313 bool clipEnalbe; 314 // M4_BOOL_DESC("updateFlag", "0") 315 bool updateFlag; 316 // M4_ARRAY_DESC("wbGainIntpStrategy", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 317 float wbGainIntpStrategy[RK_TOOL_AWB_CHANNEL_MAX];//gain by interpartition strategy 318 // M4_ARRAY_DESC("wbGainClip", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 319 float wbGainClip[RK_TOOL_AWB_CHANNEL_MAX];//gain by clip 320 // M4_ARRAY_DESC("wbGainCaga", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 321 float wbGainCaga[RK_TOOL_AWB_CHANNEL_MAX];//gain by chromatic adatptation gain adjust 322 // M4_ARRAY_DESC("wbGainAdjustIn", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 323 float wbGainAdjustIn[RK_TOOL_AWB_CHANNEL_MAX];//gain by color temperature shift 324 // M4_ARRAY_DESC("wbGainAdjustOut", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 325 float wbGainAdjust[RK_TOOL_AWB_CHANNEL_MAX];//gain by color temperature shift 326 // M4_STRUCT_DESC("cctAdjustIn", "normal_ui_style") 327 rk_tool_color_tempture_info_t cctAdjustIn; 328 // M4_STRUCT_DESC("cctAdjustOut", "normal_ui_style") 329 rk_tool_color_tempture_info_t cctAdjustOut; 330 // M4_ARRAY_DESC("wbGainOffset", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 331 float wbGainOffset[RK_TOOL_AWB_CHANNEL_MAX];//gain by gain shift 332 // M4_ARRAY_DESC("wbGainSmooth", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 333 float wbGainSmooth[RK_TOOL_AWB_CHANNEL_MAX];//gain by smooth factor 334 // M4_ARRAY_DESC("stat3aAwbLastGainOut", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 335 float stat3aAwbLastGainOut[RK_TOOL_AWB_CHANNEL_MAX];//final gain of last frame 336 // M4_ARRAY_DESC("stat3aAwbGainOut", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 337 float stat3aAwbGainOut[RK_TOOL_AWB_CHANNEL_MAX];// final gain 338 // M4_ARRAY_DESC("algMethod", "s32", M4_SIZE(1,1), M4_RANGE(0,100), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 339 int algMethod; 340 } rk_tool_awb_strategy_result_t; 341 342 typedef struct __uapi_wbV21_log_info_t { 343 // M4_STRUCT_DESC("awb_stat", "normal_ui_style") 344 rk_tool_awb_stat_res2_v201_t awb_stat; 345 // M4_STRUCT_DESC("awb_stat_algo", "normal_ui_style") 346 rk_tool_awb_stat_res_full_t awb_stat_algo; 347 // M4_STRUCT_DESC("awb_strategy_result", "normal_ui_style") 348 rk_tool_awb_strategy_result_t awb_strategy_result; 349 } uapi_wbV21_log_info_t; 350 351 typedef struct __uapi_wbV21_log_t { 352 // M4_STRUCT_DESC("uapi_wb_log_info_t", "normal_ui_style") 353 uapi_wbV21_log_info_t info; 354 } uapi_wbV21_log_t; 355 356 typedef struct __uapi_wbV30_log_info_t { 357 // M4_STRUCT_DESC("awb_stat", "normal_ui_style") 358 rk_tool_awb_stat_res2_v30_t awb_stat; 359 // M4_STRUCT_DESC("awb_stat_algo", "normal_ui_style") 360 rk_tool_awb_stat_res_full_t awb_stat_algo; 361 // M4_STRUCT_DESC("awb_strategy_result", "normal_ui_style") 362 rk_tool_awb_strategy_result_t awb_strategy_result; 363 } uapi_wbV30_log_info_t; 364 365 typedef struct __uapi_wbV30_log_t { 366 // M4_STRUCT_DESC("uapi_wb_log_info_t", "normal_ui_style") 367 uapi_wbV30_log_info_t info; 368 } uapi_wbV30_log_t; 369 370 typedef struct __uapi_wbV32_log_info_t { 371 // M4_STRUCT_DESC("awb_stat", "normal_ui_style") 372 rk_tool_isp_awb_stats_v32_t awb_stat; 373 // M4_STRUCT_DESC("awb_stat_algo", "normal_ui_style") 374 rk_tool_awb_stat_res_full_t awb_stat_algo; 375 // M4_STRUCT_DESC("awb_strategy_result", "normal_ui_style") 376 rk_tool_awb_strategy_result_t awb_strategy_result; 377 } uapi_wbV32_log_info_t; 378 379 typedef struct __uapi_wbV32_log_t { 380 // M4_STRUCT_DESC("uapi_wb_log_info_t", "normal_ui_style") 381 uapi_wbV32_log_info_t info; 382 } uapi_wbV32_log_t; 383 384 385 386 #ifdef __cplusplus 387 } 388 #endif 389 390 391 #endif /*__AWB_UAPI_HEAD_H__*/ 392