/* 
 | 
 *  Copyright (c) 2019 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 _ISP20_HW_SIMULATOR_H_ 
 | 
#define _ISP20_HW_SIMULATOR_H_ 
 | 
  
 | 
#include "awb/rk_aiq_types_awb_algo_int.h" 
 | 
#include "ae/rk_aiq_types_ae_algo.h" 
 | 
#include "af/rk_aiq_af_hw_v200.h" 
 | 
#include "adehaze/rk_aiq_types_adehaze_algo_prvt.h" 
 | 
#include "anr/rk_aiq_types_anr_algo_int.h" 
 | 
#include "asharp/rk_aiq_types_asharp_algo_int.h" 
 | 
#include "adebayer/rk_aiq_types_algo_adebayer.h" 
 | 
#include "atmo/rk_aiq_types_atmo_algo_int.h" 
 | 
#include "atmo/rk_aiq_types_atmo_algo.h" 
 | 
#include "amerge/rk_aiq_types_amerge_algo_int.h" 
 | 
#include "amerge/rk_aiq_types_amerge_algo.h" 
 | 
#include "agamma/rk_aiq_types_agamma_algo_prvt.h" 
 | 
#include "aorb/rk_aiq_orb_hw.h" 
 | 
#include "adpcc/rk_aiq_types_adpcc_algo_int.h" 
 | 
#include "ablc/rk_aiq_types_ablc_algo_int.h" 
 | 
#include "alsc/rk_aiq_types_alsc_algo.h" 
 | 
#include "accm/rk_aiq_types_accm_algo.h" 
 | 
#include "agic/rk_aiq_types_algo_agic.h" 
 | 
#include "rk_aiq_luma.h" 
 | 
#include "a3dlut/rk_aiq_types_a3dlut_algo_int.h" 
 | 
typedef struct rk_sim_isp_v200_luma_s { 
 | 
    //luma 
 | 
    bool valid_luma; 
 | 
    isp_luma_stat_t image_luma_result; 
 | 
} rk_sim_isp_v200_luma_t; 
 | 
  
 | 
typedef struct rk_sim_isp_v200_stats_s { 
 | 
    //awb 
 | 
    bool valid_awb; 
 | 
    rk_aiq_awb_stat_res_v200_t awb; 
 | 
    rk_aiq_awb_stat_res_v201_t awb_v201; 
 | 
    //ae 
 | 
    bool valid_ae; 
 | 
    RKAiqAecStats_t ae; 
 | 
    //af 
 | 
    bool valid_af; 
 | 
    rawaf_isp_af_stat_t af; 
 | 
    //anr html params 
 | 
    int iso; 
 | 
    //orb 
 | 
    bool valid_orb; 
 | 
    sim_orb_stat_t orb; 
 | 
    //atmo 
 | 
    unsigned short  rawWidth;               // rawͼ¿í 
 | 
    unsigned short  rawHeight; 
 | 
    bool valid_atmo; 
 | 
    rkisp_atmo_stats_t atmo; 
 | 
} rk_sim_isp_v200_stats_t; 
 | 
  
 | 
typedef struct rk_sim_isp_v200_params_s { 
 | 
    float awb_smooth_factor; 
 | 
    rk_aiq_wb_gain_t awb_gain_algo; 
 | 
    rk_aiq_awb_stat_cfg_v200_t awb_hw0_para; 
 | 
    rk_aiq_awb_stat_cfg_v201_t awb_hw1_para; 
 | 
    //ae 
 | 
    RkAiqAecHwConfig_t ae_hw_config; 
 | 
    //anr 
 | 
    ANRProcResult_t rkaiq_anr_proc_res; 
 | 
    AsharpProcResult_t rkaiq_asharp_proc_res; 
 | 
    //adhaz 
 | 
    rk_aiq_dehaze_cfg_t adhaz_config; 
 | 
    //agamma 
 | 
    AgammaProcRes_t agamma_config; 
 | 
    //amerge 
 | 
    RkAiqAmergeProcResult_t amerge_proc_res; 
 | 
    //atmo 
 | 
    RkAiqAtmoProcResult_t atmo_proc_res; 
 | 
    //adpcc 
 | 
    AdpccProcResult_t   dpcc; 
 | 
    //adebayer 
 | 
    AdebayerConfig_t adebayer_config; 
 | 
    //ablc 
 | 
    AblcProc_t blc; 
 | 
    //agic 
 | 
    AgicConfig_t agic_config; 
 | 
    rk_aiq_lsc_cfg_t lscHwConf; 
 | 
    rk_aiq_ccm_cfg_t ccmHwConf; 
 | 
  
 | 
    rk_aiq_lut3d_cfg_t lut3d_hw_conf; 
 | 
    unsigned short  rawWidth;               // rawͼ¿í 
 | 
    unsigned short  rawHeight; 
 | 
} rk_sim_isp_v200_params_t; 
 | 
  
 | 
#endif 
 |