1 /* 2 * Copyright (c) 2019 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 _RK_AIQ_USER_API_ADEHAZE_H_ 19 #define _RK_AIQ_USER_API_ADEHAZE_H_ 20 21 #include "adehaze/rk_aiq_uapi_adehaze_int.h" 22 23 typedef struct rk_aiq_sys_ctx_s rk_aiq_sys_ctx_t; 24 25 26 //typedef enum rk_aiq_dehaze_op_mode_s { 27 // RK_AIQ_DEHAZE_MODE_INVALID = 0, /**< invalid mode */ 28 // RK_AIQ_DEHAZE_MODE_MANUAL = 1, /**< run manual dehaze */ 29 // RK_AIQ_DEHAZE_MODE_AUTO = 2, /**< run auto dehaze */ 30 // RK_AIQ_DEHAZE_MODE_OFF = 3, /**< dehaze off, enhance follow IQ setting*/ 31 // RK_AIQ_DEHAZE_MODE_TOOL = 4, /**< dehaze off, enhance follow IQ setting*/ 32 //} rk_aiq_dehaze_op_mode_t; 33 /* 34 struct CalibDb_IIR_setting_s { 35 float stab_fnum; 36 float sigma; 37 float wt_sigma; 38 float air_sigma; 39 float tmax_sigma; 40 }; 41 42 struct CalibDb_Dehaze_Setting_s { 43 char name[CALIBDB_MAX_MODE_NAME_LENGTH]; 44 float en; 45 float iso[9]; 46 float dc_min_th[9]; 47 float dc_max_th[9]; 48 float yhist_th[9]; 49 float yblk_th[9]; 50 float dark_th[9]; 51 float bright_min[9]; 52 float bright_max[9]; 53 float wt_max[9]; 54 float air_min[9]; 55 float air_max[9]; 56 float tmax_base[9]; 57 float tmax_off[9]; 58 float tmax_max[9]; 59 float cfg_wt[9]; 60 float cfg_air[9]; 61 float cfg_tmax[9]; 62 float dc_thed[9]; 63 float dc_weitcur[9]; 64 float air_thed[9]; 65 float air_weitcur[9]; 66 struct CalibDb_IIR_setting_s IIR_setting; 67 }; 68 69 struct CalibDb_Enhance_Setting_s { 70 char name[CALIBDB_MAX_MODE_NAME_LENGTH]; 71 float en; 72 float iso[9]; 73 float enhance_value[9]; 74 }; 75 76 struct CalibDb_Hist_setting_s { 77 char name[CALIBDB_MAX_MODE_NAME_LENGTH]; 78 float en; 79 float iso[9]; 80 unsigned char hist_channel[9]; 81 unsigned char hist_para_en[9]; 82 float hist_gratio[9]; 83 float hist_th_off[9]; 84 float hist_k[9]; 85 float hist_min[9]; 86 float hist_scale[9]; 87 float cfg_gratio[9]; 88 }; 89 90 typedef struct CalibDbDehaze_s { 91 float en; 92 float cfg_alpha_normal; 93 float cfg_alpha_hdr; 94 float cfg_alpha_night; 95 struct CalibDb_Dehaze_Setting_s dehaze_setting[CALIBDB_MAX_MODE_NUM]; 96 struct CalibDb_Enhance_Setting_s enhance_setting[CALIBDB_MAX_MODE_NUM]; 97 struct CalibDb_Hist_setting_s hist_setting[CALIBDB_MAX_MODE_NUM]; 98 } CalibDbDehaze_t; 99 100 typedef struct rk_adehaze_sw_s { 101 bool byPass; 102 rk_aiq_dehaze_op_mode_t mode; 103 rk_aiq_dehaze_M_attrib_t stManual; 104 CalibDbDehaze_t stAuto; 105 rk_aiq_dehaze_enhance_t stEnhance; 106 CalibDbDehaze_t stTool; 107 } adehaze_sw_t; 108 */ 109 110 RKAIQ_BEGIN_DECLARE 111 /* 112 XCamReturn rk_aiq_user_api_adehaze_setSwAttrib(const rk_aiq_sys_ctx_t* sys_ctx, adehaze_sw_t attr); 113 XCamReturn rk_aiq_user_api_adehaze_getSwAttrib(const rk_aiq_sys_ctx_t* sys_ctx, adehaze_sw_t *attr); 114 */ 115 RKAIQ_END_DECLARE 116 117 #endif 118 119