1 /* 2 * atmo_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_ATMO_HEADER_H__ 21 #define __CALIBDBV2_ATMO_HEADER_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 typedef enum GlobalLumaMode_e { 28 GLOBALLUMAMODE_ENVLV = 0, 29 GLOBALLUMAMODE_ISO = 1, 30 } GlobalLumaMode_t; 31 32 typedef struct GlobalLumaData_s 33 { 34 // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 35 float* EnvLv; 36 int EnvLv_len; 37 // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 38 float* ISO; 39 int ISO_len; 40 // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.25",M4_DIGIT(4), M4_DYNAMIC(1)) 41 float* Strength; 42 int Strength_len; 43 } GlobalLumaData_t; 44 45 typedef struct CalibDbGlobalLuma_s 46 { 47 // M4_ENUM_DESC("Mode", "GlobalLumaMode_t", "GLOBALLUMAMODE_ENVLV") 48 GlobalLumaMode_t Mode; 49 // M4_ARRAY_TABLE_DESC("GlobalLumaData", "array_table_ui", "none") 50 GlobalLumaData_t GlobalLumaData; 51 // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 52 float Tolerance; 53 } CalibDbGlobalLuma_t; 54 55 typedef enum DetailsHighLightMode_e { 56 DETAILSHIGHLIGHTMODE_OEPDF = 0, 57 DETAILSHIGHLIGHTMODE_ENVLV = 1, 58 } DetailsHighLightMode_t; 59 60 typedef struct HighLightData_s 61 { 62 // M4_ARRAY_DESC("OEPdf", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 63 float* OEPdf; 64 int OEPdf_len; 65 // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 66 float* EnvLv; 67 int EnvLv_len; 68 // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.5",M4_DIGIT(4), M4_DYNAMIC(1)) 69 float* Strength; 70 int Strength_len; 71 } HighLightData_t; 72 73 typedef struct CalibDbDetailsHighLight_s 74 { 75 // M4_ENUM_DESC("Mode", "DetailsHighLightMode_t", "DETAILSHIGHLIGHTMODE_ENVLV") 76 DetailsHighLightMode_t Mode; 77 // M4_ARRAY_TABLE_DESC("HighLightData", "array_table_ui", "none") 78 HighLightData_t HighLightData; 79 // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 80 float Tolerance; 81 } CalibDbDetailsHighLight_t; 82 83 typedef enum DetailsLowLightMode_e { 84 DETAILSLOWLIGHTMODE_FOCUSLUMA = 0, 85 DETAILSLOWLIGHTMODE_DARKPDF = 1, 86 DETAILSLOWLIGHTMODE_ISO = 2, 87 } DetailsLowLightMode_t; 88 89 typedef struct LowLightData_s 90 { 91 // M4_ARRAY_DESC("FocusLuma", "f32", M4_SIZE(1,100), M4_RANGE(0,100), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 92 float* FocusLuma; 93 int FocusLuma_len; 94 // M4_ARRAY_DESC("DarkPdf", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 95 float* DarkPdf; 96 int DarkPdf_len; 97 // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 98 float* ISO; 99 int ISO_len; 100 // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(1,4), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 101 float* Strength; 102 int Strength_len; 103 } LowLightData_t; 104 105 typedef struct CalibDbDetailsLowLight_s 106 { 107 // M4_ENUM_DESC("Mode", "DetailsLowLightMode_t", "DETAILSLOWLIGHTMODE_ISO") 108 DetailsLowLightMode_t Mode; 109 // M4_ARRAY_TABLE_DESC("LowLightData", "array_table_ui", "none") 110 LowLightData_t LowLightData; 111 // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 112 float Tolerance; 113 } CalibDbDetailsLowLight_t; 114 115 typedef enum TmoTypeMode_e { 116 TMOTYPEMODE_DYNAMICRANGE = 0, 117 TMOTYPEMODE_ENVLV = 1, 118 } TmoTypeMode_t; 119 120 typedef struct TmoData_s 121 { 122 // M4_ARRAY_DESC("DynamicRange", "f32", M4_SIZE(1,100), M4_RANGE(1,84), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 123 float* DynamicRange; 124 int DynamicRange_len; 125 // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 126 float* EnvLv; 127 int EnvLv_len; 128 // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.5",M4_DIGIT(4), M4_DYNAMIC(1)) 129 float* Strength; 130 int Strength_len; 131 } TmoData_t; 132 133 typedef struct CalibDbLocalTMO_s 134 { 135 // M4_ENUM_DESC("Mode", "TmoTypeMode_t", "TMOTYPEMODE_DYNAMICRANGE") 136 TmoTypeMode_t Mode; 137 // M4_ARRAY_TABLE_DESC("LocalTmoData", "array_table_ui", "none") 138 TmoData_t LocalTmoData; 139 // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 140 float Tolerance; 141 } CalibDbLocalTMO_t; 142 143 typedef struct CalibDbGlobaTMO_s 144 { 145 // M4_BOOL_DESC("Enable", "1") 146 bool Enable; 147 // M4_NUMBER_DESC("IIR", "f32", M4_RANGE(1,1000), "64", M4_DIGIT(0)) 148 float IIR; 149 // M4_ENUM_DESC("Mode", "TmoTypeMode_t", "TMOTYPEMODE_DYNAMICRANGE") 150 TmoTypeMode_t Mode; 151 // M4_ARRAY_TABLE_DESC("GlobalTmoData", "array_table_ui", "none") 152 TmoData_t GlobalTmoData; 153 // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 154 float Tolerance; 155 } CalibDbGlobaTMO_t; 156 157 typedef struct CalibDbTmoV20_s 158 { 159 // M4_BOOL_DESC("Enable", "1") 160 bool Enable; 161 // M4_STRUCT_DESC("GlobalLuma", "normal_ui_style") 162 CalibDbGlobalLuma_t GlobalLuma; 163 // M4_STRUCT_DESC("DetailsHighLight", "normal_ui_style") 164 CalibDbDetailsHighLight_t DetailsHighLight; 165 // M4_STRUCT_DESC("DetailsLowLight", "normal_ui_style") 166 CalibDbDetailsLowLight_t DetailsLowLight; 167 // M4_STRUCT_DESC("LocalTMO", "normal_ui_style") 168 CalibDbLocalTMO_t LocalTMO; 169 // M4_STRUCT_DESC("GlobaTMO", "normal_ui_style") 170 CalibDbGlobaTMO_t GlobaTMO; 171 // M4_NUMBER_DESC("damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 172 float damp; 173 } CalibDbTmoV20_t; 174 175 typedef struct CalibDbV2_tmo_s 176 { 177 // M4_STRUCT_DESC("TmoTuningPara", "normal_ui_style") 178 CalibDbTmoV20_t TmoTuningPara; 179 } CalibDbV2_tmo_t; 180 181 182 RKAIQ_END_DECLARE 183 184 #endif 185