/* * sensorinfo_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_SENSOR_INFO_HEADER_H__ #define __CALIBDBV2_SENSOR_INFO_HEADER_H__ // #define M4_STRUCT_DESC(ALIAS, SIZE, UI_MODULE) // #define M4_NUMBER_DESC(ALIAS, TYPE, SIZE, RANGE, DEFAULT) // #define M4_STRING_DESC(ALIAS, SIZE, RANGE, DEFAULT) // #define M4_ENUM_DESC(ALIAS, ENUM, DEFAULT) #include "rk_aiq_comm.h" RKAIQ_BEGIN_DECLARE /*****************************************************************************/ /** * @brief ISP2.0 SensorInfo enum Params */ /*****************************************************************************/ typedef enum _CalibDb_ExpGainModeV2_e { EXPGAIN_MODE_LINEAR = 0, EXPGAIN_MODE_NONLINEAR_DB = 1, EXPGAIN_MODE_MAX = 2 } CalibDb_ExpGainModeV2_t; typedef enum _CalibDb_HdrFrmNumV2_e { HDR_TWO_FRAME = 0, HDR_THREE_FRAME = 1, } CalibDb_HdrFrmNumV2_t; /*****************************************************************************/ /** * @brief ISP2.0 SensorInfo config Params */ /*****************************************************************************/ typedef struct CalibDb_AecGainRangeV2_s { // M4_ENUM_DESC("GainMode", "CalibDb_ExpGainModeV2_t","EXPGAIN_MODE_LINEAR") CalibDb_ExpGainModeV2_t GainMode; // M4_ARRAY_DESC("GainRange", "f32", M4_SIZE(1,7), M4_RANGE(-65535,65535), "0", M4_DIGIT(4), M4_DYNAMIC(2)) float* GainRange;//contains 7 params per line int GainRange_len; } CalibDb_AecGainRangeV2_t; typedef struct CalibDb_CISNormalTimeSetV2_s { // M4_NUMBER_DESC("TimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0)) uint16_t CISTimeRegMin; // M4_STRUCT_DESC("TimeRegMaxFac", "normal_ui_style") Cam2x1FloatMatrix_t CISLinTimeRegMaxFac; // M4_STRUCT_DESC("TimeRegOdevity", "normal_ui_style") Cam2x1FloatMatrix_t CISTimeRegOdevity; } CalibDb_CISNormalTimeSetV2_t; typedef struct CalibDb_CISHdrTimeSetV2_s { // M4_ENUM_DESC("name", "CalibDb_HdrFrmNumV2_t","HDR_TWO_FRAME") CalibDb_HdrFrmNumV2_t name; // M4_BOOL_DESC("CISTimeRegUnEqualEn", "0") bool CISTimeRegUnEqualEn; // M4_NUMBER_DESC("CISTimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0)) uint16_t CISTimeRegMin; // M4_STRUCT_DESC("CISHdrTimeRegSumFac", "normal_ui_style") Cam2x1FloatMatrix_t CISHdrTimeRegSumFac; // M4_STRUCT_DESC("CISTimeRegMax", "normal_ui_style") Cam1x3ShortMatrix_t CISTimeRegMax; //specially for Hdr that has limit on sframe/mframe, requiring max time line.value 0: no limit // M4_STRUCT_DESC("CISTimeRegOdevity", "normal_ui_style") Cam2x1FloatMatrix_t CISTimeRegOdevity; } CalibDb_CISHdrTimeSetV2_t; typedef struct CalibDb_CISTimeSet_CombV2_s { // M4_STRUCT_DESC("Linear", "normal_ui_style") CalibDb_CISNormalTimeSetV2_t Linear; // M4_STRUCT_LIST_DESC("Hdr", M4_SIZE(1,2),"normal_ui_style") CalibDb_CISHdrTimeSetV2_t Hdr[2]; } CalibDb_CISTimeSet_CombV2_t; typedef struct CalibDb_AeRangeV2_s { // M4_NUMBER_DESC("Min", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) float Min; // M4_NUMBER_DESC("Max", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) float Max; } CalibDb_AeRangeV2_t; typedef struct CalibDb_CISGainSetV2_s { // M4_STRUCT_DESC("CISAgainRange", "normal_ui_style") CalibDb_AeRangeV2_t CISAgainRange; //sensor Again or LCG range // M4_STRUCT_DESC("CISExtraAgainRange", "normal_ui_style") CalibDb_AeRangeV2_t CISExtraAgainRange; //add for HDR-DCG MODE, HCG range // M4_STRUCT_DESC("CISDgainRange", "normal_ui_style") CalibDb_AeRangeV2_t CISDgainRange; //sensor Dgain // M4_STRUCT_DESC("CISIspDgainRange", "normal_ui_style") CalibDb_AeRangeV2_t CISIspDgainRange; //Isp Dgain // M4_BOOL_DESC("CISHdrGainIndSetEn", "1") bool CISHdrGainIndSetEn; //bit 0:use the same value; bit 1: support use different gain value } CalibDb_CISGainSetV2_t; typedef struct CalibDb_CISHdrSetV2_s { // M4_BOOL_DESC("hdr_en", "0") bool hdr_en; // M4_ENUM_DESC("hdr_mode", "rk_aiq_isp_hdr_mode_t","RK_AIQ_ISP_HDR_MODE_2_LINE_HDR") rk_aiq_isp_hdr_mode_t hdr_mode; // M4_ENUM_DESC("line_mode", "rk_aiq_sensor_hdr_line_mode_t","RK_AIQ_SENSOR_HDR_LINE_MODE_STAGGER") rk_aiq_sensor_hdr_line_mode_t line_mode; } CalibDb_CISHdrSetV2_t; typedef struct CalibDb_Dcg_ParamsV2_s { // M4_BOOL_DESC("support_en", "0") bool support_en; // M4_ENUM_DESC("dcg_optype", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO") RKAiqOPMode_t dcg_optype; // M4_STRUCT_DESC("dcg_mode", "normal_ui_style") Cam1x3IntMatrix_t dcg_mode; // M4_NUMBER_DESC("dcg_ratio", "f32", M4_RANGE(1,100), "1", M4_DIGIT(2),M4_HIDE(0)) float dcg_ratio; // M4_BOOL_DESC("sync_switch", "1") bool sync_switch; // M4_NUMBER_DESC("lcg2hcg_gain_th", "f32", M4_RANGE(1,4096), "32", M4_DIGIT(2),M4_HIDE(0)) float lcg2hcg_gain_th; // M4_NUMBER_DESC("hcg2lcg_gain_th", "f32", M4_RANGE(1,4096), "16", M4_DIGIT(2),M4_HIDE(0)) float hcg2lcg_gain_th; } CalibDb_Dcg_ParamsV2_t; typedef struct CalibDb_DcgSetV2_s { // M4_STRUCT_DESC("Linear", "normal_ui_style") CalibDb_Dcg_ParamsV2_t Linear; // M4_STRUCT_DESC("Hdr", "normal_ui_style") CalibDb_Dcg_ParamsV2_t Hdr; } CalibDb_DcgSetV2_t; typedef struct CalibDb_ExpUpdateV2_s { // M4_NUMBER_DESC("time_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) int time_update; // M4_NUMBER_DESC("gain_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) int gain_update; // M4_NUMBER_DESC("dcg_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) int dcg_update; } CalibDb_ExpUpdateV2_t; typedef struct CalibDb_ExpUpdate_CombV2_s { // M4_STRUCT_DESC("Linear", "normal_ui_style") CalibDb_ExpUpdateV2_t Linear; // M4_STRUCT_DESC("Hdr", "normal_ui_style") CalibDb_ExpUpdateV2_t Hdr; } CalibDb_ExpUpdate_CombV2_t; typedef struct CalibDb_ResInfoV2_s { // M4_NUMBER_DESC("width", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) uint16_t width; // M4_NUMBER_DESC("height", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) uint16_t height; } CalibDb_ResInfoV2_t; typedef struct CalibDb_Sensor_ParaV2_s { // M4_STRUCT_DESC("Resolution", "normal_ui_style") CalibDb_ResInfoV2_t resolution; // M4_STRUCT_DESC("Gain2Reg", "normal_ui_style") CalibDb_AecGainRangeV2_t Gain2Reg; // M4_STRUCT_DESC("Time2Reg", "normal_ui_style") Cam1x4FloatMatrix_t Time2Reg; // M4_STRUCT_DESC("CISGainSet", "normal_ui_style") CalibDb_CISGainSetV2_t CISGainSet; // M4_STRUCT_DESC("CISTimeSet", "normal_ui_style") CalibDb_CISTimeSet_CombV2_t CISTimeSet; // M4_STRUCT_DESC("CISHdrSet", "normal_ui_style") CalibDb_CISHdrSetV2_t CISHdrSet; // M4_STRUCT_DESC("CISDcgSet", "normal_ui_style") CalibDb_DcgSetV2_t CISDcgSet; // M4_STRUCT_DESC("CISExpUpdate", "normal_ui_style") CalibDb_ExpUpdate_CombV2_t CISExpUpdate; // M4_NUMBER_DESC("CISMinFps", "f32", M4_RANGE(1,100), "10", M4_DIGIT(2),M4_HIDE(0)) float CISMinFps; // M4_NUMBER_DESC("CISFlip", "u8", M4_RANGE(0,3), "0", M4_DIGIT(0),M4_HIDE(0)) uint8_t CISFlip; // bit 0 : mirror, bit 1 : flip , range[0,3] } CalibDb_Sensor_ParaV2_t; RKAIQ_END_DECLARE #endif