/* 
 | 
 * atmo_head.h 
 | 
 * 
 | 
 *  Copyright (c) 2021 Rockchip Corporation 
 | 
 * 
 | 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 | 
 * you may not use this file except in compliance with the License. 
 | 
 * You may obtain a copy of the License at 
 | 
 * 
 | 
 *      http://www.apache.org/licenses/LICENSE-2.0 
 | 
 * 
 | 
 * Unless required by applicable law or agreed to in writing, software 
 | 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 | 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 | 
 * See the License for the specific language governing permissions and 
 | 
 * limitations under the License. 
 | 
 * 
 | 
 */ 
 | 
  
 | 
#ifndef __CALIBDBV2_ATMO_HEADER_H__ 
 | 
#define __CALIBDBV2_ATMO_HEADER_H__ 
 | 
  
 | 
#include "rk_aiq_comm.h" 
 | 
  
 | 
RKAIQ_BEGIN_DECLARE 
 | 
  
 | 
typedef enum GlobalLumaMode_e { 
 | 
    GLOBALLUMAMODE_ENVLV     = 0, 
 | 
    GLOBALLUMAMODE_ISO       = 1, 
 | 
} GlobalLumaMode_t; 
 | 
  
 | 
typedef struct GlobalLumaData_s 
 | 
{ 
 | 
    // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            EnvLv; 
 | 
    int EnvLv_len; 
 | 
    // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* ISO; 
 | 
    int ISO_len; 
 | 
    // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.25",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            Strength; 
 | 
    int Strength_len; 
 | 
} GlobalLumaData_t; 
 | 
  
 | 
typedef struct CalibDbGlobalLuma_s 
 | 
{ 
 | 
    // M4_ENUM_DESC("Mode", "GlobalLumaMode_t", "GLOBALLUMAMODE_ENVLV") 
 | 
    GlobalLumaMode_t Mode; 
 | 
    // M4_ARRAY_TABLE_DESC("GlobalLumaData", "array_table_ui", "none") 
 | 
    GlobalLumaData_t GlobalLumaData; 
 | 
    // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 
 | 
    float            Tolerance; 
 | 
} CalibDbGlobalLuma_t; 
 | 
  
 | 
typedef enum DetailsHighLightMode_e { 
 | 
    DETAILSHIGHLIGHTMODE_OEPDF       = 0, 
 | 
    DETAILSHIGHLIGHTMODE_ENVLV       = 1, 
 | 
} DetailsHighLightMode_t; 
 | 
  
 | 
typedef struct HighLightData_s 
 | 
{ 
 | 
    // M4_ARRAY_DESC("OEPdf", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* OEPdf; 
 | 
    int OEPdf_len; 
 | 
    // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            EnvLv; 
 | 
    int EnvLv_len; 
 | 
    // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.5",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            Strength; 
 | 
    int Strength_len; 
 | 
} HighLightData_t; 
 | 
  
 | 
typedef struct CalibDbDetailsHighLight_s 
 | 
{ 
 | 
    // M4_ENUM_DESC("Mode", "DetailsHighLightMode_t", "DETAILSHIGHLIGHTMODE_ENVLV") 
 | 
    DetailsHighLightMode_t Mode; 
 | 
    // M4_ARRAY_TABLE_DESC("HighLightData", "array_table_ui", "none") 
 | 
    HighLightData_t HighLightData; 
 | 
    // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 
 | 
    float                  Tolerance; 
 | 
} CalibDbDetailsHighLight_t; 
 | 
  
 | 
typedef enum DetailsLowLightMode_e { 
 | 
    DETAILSLOWLIGHTMODE_FOCUSLUMA   = 0, 
 | 
    DETAILSLOWLIGHTMODE_DARKPDF     = 1, 
 | 
    DETAILSLOWLIGHTMODE_ISO          = 2, 
 | 
} DetailsLowLightMode_t; 
 | 
  
 | 
typedef struct LowLightData_s 
 | 
{ 
 | 
    // M4_ARRAY_DESC("FocusLuma", "f32", M4_SIZE(1,100), M4_RANGE(0,100), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* FocusLuma; 
 | 
    int FocusLuma_len; 
 | 
    // M4_ARRAY_DESC("DarkPdf", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* DarkPdf; 
 | 
    int DarkPdf_len; 
 | 
    // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* ISO; 
 | 
    int ISO_len; 
 | 
    // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(1,4), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            Strength; 
 | 
    int Strength_len; 
 | 
} LowLightData_t; 
 | 
  
 | 
typedef struct CalibDbDetailsLowLight_s 
 | 
{ 
 | 
    // M4_ENUM_DESC("Mode", "DetailsLowLightMode_t", "DETAILSLOWLIGHTMODE_ISO") 
 | 
    DetailsLowLightMode_t Mode; 
 | 
    // M4_ARRAY_TABLE_DESC("LowLightData", "array_table_ui", "none") 
 | 
    LowLightData_t LowLightData; 
 | 
    // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 
 | 
    float                  Tolerance; 
 | 
} CalibDbDetailsLowLight_t; 
 | 
  
 | 
typedef enum TmoTypeMode_e { 
 | 
    TMOTYPEMODE_DYNAMICRANGE   = 0, 
 | 
    TMOTYPEMODE_ENVLV           = 1, 
 | 
} TmoTypeMode_t; 
 | 
  
 | 
typedef struct TmoData_s 
 | 
{ 
 | 
    // M4_ARRAY_DESC("DynamicRange", "f32", M4_SIZE(1,100), M4_RANGE(1,84), "1",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float* DynamicRange; 
 | 
    int DynamicRange_len; 
 | 
    // M4_ARRAY_DESC("EnvLv", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            EnvLv; 
 | 
    int EnvLv_len; 
 | 
    // M4_ARRAY_DESC("Strength", "f32", M4_SIZE(1,100), M4_RANGE(0,1), "0.5",M4_DIGIT(4), M4_DYNAMIC(1)) 
 | 
    float*            Strength; 
 | 
    int Strength_len; 
 | 
} TmoData_t; 
 | 
  
 | 
typedef struct CalibDbLocalTMO_s 
 | 
{ 
 | 
    // M4_ENUM_DESC("Mode", "TmoTypeMode_t", "TMOTYPEMODE_DYNAMICRANGE") 
 | 
    TmoTypeMode_t Mode; 
 | 
    // M4_ARRAY_TABLE_DESC("LocalTmoData", "array_table_ui", "none") 
 | 
    TmoData_t LocalTmoData; 
 | 
    // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 
 | 
    float                  Tolerance; 
 | 
} CalibDbLocalTMO_t; 
 | 
  
 | 
typedef struct CalibDbGlobaTMO_s 
 | 
{ 
 | 
    // M4_BOOL_DESC("Enable", "1") 
 | 
    bool         Enable; 
 | 
    // M4_NUMBER_DESC("IIR", "f32", M4_RANGE(1,1000), "64", M4_DIGIT(0)) 
 | 
    float         IIR; 
 | 
    // M4_ENUM_DESC("Mode", "TmoTypeMode_t", "TMOTYPEMODE_DYNAMICRANGE") 
 | 
    TmoTypeMode_t Mode; 
 | 
    // M4_ARRAY_TABLE_DESC("GlobalTmoData", "array_table_ui", "none") 
 | 
    TmoData_t GlobalTmoData; 
 | 
    // M4_NUMBER_DESC("Tolerance", "f32", M4_RANGE(0,0.2), "0", M4_DIGIT(4)) 
 | 
    float                  Tolerance; 
 | 
} CalibDbGlobaTMO_t; 
 | 
  
 | 
typedef struct CalibDbTmoV20_s 
 | 
{ 
 | 
    // M4_BOOL_DESC("Enable", "1") 
 | 
    bool         Enable; 
 | 
    // M4_STRUCT_DESC("GlobalLuma", "normal_ui_style") 
 | 
    CalibDbGlobalLuma_t       GlobalLuma; 
 | 
    // M4_STRUCT_DESC("DetailsHighLight", "normal_ui_style") 
 | 
    CalibDbDetailsHighLight_t DetailsHighLight; 
 | 
    // M4_STRUCT_DESC("DetailsLowLight", "normal_ui_style") 
 | 
    CalibDbDetailsLowLight_t  DetailsLowLight; 
 | 
    // M4_STRUCT_DESC("LocalTMO", "normal_ui_style") 
 | 
    CalibDbLocalTMO_t         LocalTMO; 
 | 
    // M4_STRUCT_DESC("GlobaTMO", "normal_ui_style") 
 | 
    CalibDbGlobaTMO_t         GlobaTMO; 
 | 
    // M4_NUMBER_DESC("damp", "f32", M4_RANGE(0,1), "0.9", M4_DIGIT(4)) 
 | 
    float damp; 
 | 
} CalibDbTmoV20_t; 
 | 
  
 | 
typedef struct CalibDbV2_tmo_s 
 | 
{ 
 | 
    // M4_STRUCT_DESC("TmoTuningPara", "normal_ui_style") 
 | 
    CalibDbTmoV20_t TmoTuningPara; 
 | 
} CalibDbV2_tmo_t; 
 | 
  
 | 
  
 | 
RKAIQ_END_DECLARE 
 | 
  
 | 
#endif 
 |