1 /* 2 * amerge_head.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_AMERGE_HEADER_H__ 21 #define __CALIBDBV2_AMERGE_HEADER_H__ 22 23 #include "adehaze_head.h" 24 #include "rk_aiq_comm.h" 25 26 #define MERGE_ENVLV_STEP_MAX 13 27 28 RKAIQ_BEGIN_DECLARE 29 30 // merge V10 31 typedef struct MergeOECurveV10_s { 32 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 33 float CtrlData[MERGE_ENVLV_STEP_MAX]; 34 // M4_ARRAY_DESC("Smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 35 float Smooth[MERGE_ENVLV_STEP_MAX]; 36 // M4_ARRAY_DESC("Offset", "f32", M4_SIZE(1,13), M4_RANGE(108,300), "[210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 37 float Offset[MERGE_ENVLV_STEP_MAX]; 38 } MergeOECurveV10_t; 39 40 typedef struct MergeMDCurveV10_s { 41 // M4_ARRAY_DESC("MoveCoef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 42 float MoveCoef[MERGE_ENVLV_STEP_MAX]; 43 // M4_ARRAY_DESC("LM_smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 44 float LM_smooth[MERGE_ENVLV_STEP_MAX]; 45 // M4_ARRAY_DESC("LM_offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 46 float LM_offset[MERGE_ENVLV_STEP_MAX]; 47 // M4_ARRAY_DESC("MS_smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 48 float MS_smooth[MERGE_ENVLV_STEP_MAX]; 49 // M4_ARRAY_DESC("MS_offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 50 float MS_offset[MERGE_ENVLV_STEP_MAX]; 51 } MergeMDCurveV10_t; 52 53 typedef struct MergeV10_s { 54 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 55 CtrlDataType_t CtrlDataType; 56 // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none") 57 MergeOECurveV10_t OECurve; 58 // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none") 59 MergeMDCurveV10_t MDCurve; 60 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 61 float ByPassThr; 62 // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 63 float OECurve_damp; 64 // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 65 float MDCurveLM_damp; 66 // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 67 float MDCurveMS_damp; 68 } MergeV10_t; 69 70 typedef struct CalibDbV2_merge_v10_s { 71 // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style") 72 MergeV10_t MergeTuningPara; 73 } CalibDbV2_merge_v10_t; 74 75 // merge V11 76 typedef enum MergeBaseFrame_e { 77 BASEFRAME_LONG = 0, 78 BASEFRAME_SHORT = 1, 79 } MergeBaseFrame_t; 80 81 typedef struct LongFrameModeData_s { 82 // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none") 83 MergeOECurveV10_t OECurve; 84 // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none") 85 MergeMDCurveV10_t MDCurve; 86 // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 87 float OECurve_damp; 88 // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 89 float MDCurveLM_damp; 90 // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 91 float MDCurveMS_damp; 92 } LongFrameModeData_t; 93 94 typedef struct MergeMDCurveV11Short_s { 95 // M4_ARRAY_DESC("MoveCoef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 96 float MoveCoef[MERGE_ENVLV_STEP_MAX]; 97 // M4_ARRAY_DESC("Coef", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 98 float Coef[MERGE_ENVLV_STEP_MAX]; 99 // M4_ARRAY_DESC("ms_thd0", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(1), M4_DYNAMIC(0), 0) 100 float ms_thd0[MERGE_ENVLV_STEP_MAX]; 101 // M4_ARRAY_DESC("lm_thd0", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]",M4_DIGIT(1), M4_DYNAMIC(0), 0) 102 float lm_thd0[MERGE_ENVLV_STEP_MAX]; 103 } MergeMDCurveV11Short_t; 104 105 typedef struct ShortFrameModeData_s { 106 // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none") 107 MergeOECurveV10_t OECurve; 108 // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none") 109 MergeMDCurveV11Short_t MDCurve; 110 // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 111 float OECurve_damp; 112 // M4_NUMBER_DESC("MDCurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 113 float MDCurve_damp; 114 } ShortFrameModeData_t; 115 116 typedef struct MergeV11_s { 117 // M4_ENUM_DESC("BaseFrm", "MergeBaseFrame_t", "BASEFRAME_LONG") 118 MergeBaseFrame_t BaseFrm; 119 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 120 CtrlDataType_t CtrlDataType; 121 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 122 float ByPassThr; 123 // M4_STRUCT_DESC("LongFrmModeData", "normal_ui_style") 124 LongFrameModeData_t LongFrmModeData; 125 // M4_STRUCT_DESC("ShortFrmModeData", "normal_ui_style") 126 ShortFrameModeData_t ShortFrmModeData; 127 } MergeV11_t; 128 129 typedef struct CalibDbV2_merge_v11_s { 130 // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style") 131 MergeV11_t MergeTuningPara; 132 } CalibDbV2_merge_v11_t; 133 134 // merge v12 135 typedef struct MergeEachChnCurveV12_s { 136 // M4_ARRAY_DESC("CtrlData", "f32", M4_SIZE(1,13), M4_RANGE(0,10000000), "[0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 137 float CtrlData[MERGE_ENVLV_STEP_MAX]; 138 // M4_ARRAY_DESC("Smooth", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 139 float Smooth[MERGE_ENVLV_STEP_MAX]; 140 // M4_ARRAY_DESC("Offset", "f32", M4_SIZE(1,13), M4_RANGE(0,1), "[0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38]",M4_DIGIT(4), M4_DYNAMIC(0), 0) 141 float Offset[MERGE_ENVLV_STEP_MAX]; 142 } MergeEachChnCurveV12_t; 143 144 typedef struct LongFrameModeDataV12_s { 145 // M4_BOOL_DESC("EnableEachChn", "1") 146 bool EnableEachChn; 147 // M4_ARRAY_TABLE_DESC("OECurve", "array_table_ui", "none") 148 MergeOECurveV10_t OECurve; 149 // M4_ARRAY_TABLE_DESC("MDCurve", "array_table_ui", "none") 150 MergeMDCurveV10_t MDCurve; 151 // M4_ARRAY_TABLE_DESC("EachChnCurve", "array_table_ui", "none") 152 MergeEachChnCurveV12_t EachChnCurve; 153 // M4_NUMBER_DESC("OECurve_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 154 float OECurve_damp; 155 // M4_NUMBER_DESC("MDCurveLM_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 156 float MDCurveLM_damp; 157 // M4_NUMBER_DESC("MDCurveMS_damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 158 float MDCurveMS_damp; 159 } LongFrameModeDataV12_t; 160 161 typedef struct MergeV12_s { 162 // M4_ENUM_DESC("BaseFrm", "MergeBaseFrame_t", "BASEFRAME_LONG") 163 MergeBaseFrame_t BaseFrm; 164 // M4_ENUM_DESC("CtrlDataType", "CtrlDataType_t", "CTRLDATATYPE_ENVLV") 165 CtrlDataType_t CtrlDataType; 166 // M4_NUMBER_DESC("ByPassThr", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 167 float ByPassThr; 168 // M4_STRUCT_DESC("LongFrmModeData", "normal_ui_style") 169 LongFrameModeDataV12_t LongFrmModeData; 170 // M4_STRUCT_DESC("ShortFrmModeData", "normal_ui_style") 171 ShortFrameModeData_t ShortFrmModeData; 172 } MergeV12_t; 173 174 typedef struct CalibDbV2_merge_v12_s { 175 // M4_STRUCT_DESC("MergeTuningPara", "normal_ui_style") 176 MergeV12_t MergeTuningPara; 177 } CalibDbV2_merge_v12_t; 178 179 RKAIQ_END_DECLARE 180 181 #endif 182