11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 61bd4fe43Sopenharmony_ci * 71bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 131bd4fe43Sopenharmony_ci * limitations under the License. 141bd4fe43Sopenharmony_ci */ 151bd4fe43Sopenharmony_ci 161bd4fe43Sopenharmony_ci#ifndef __HI_COMM_SNS_H__ 171bd4fe43Sopenharmony_ci#define __HI_COMM_SNS_H__ 181bd4fe43Sopenharmony_ci 191bd4fe43Sopenharmony_ci#include "hi_type.h" 201bd4fe43Sopenharmony_ci#include "hi_common.h" 211bd4fe43Sopenharmony_ci#include "hi_comm_isp.h" 221bd4fe43Sopenharmony_ci 231bd4fe43Sopenharmony_ci#ifdef __cplusplus 241bd4fe43Sopenharmony_ci#if __cplusplus 251bd4fe43Sopenharmony_ciextern "C" { 261bd4fe43Sopenharmony_ci#endif 271bd4fe43Sopenharmony_ci#endif /* End of #ifdef __cplusplus */ 281bd4fe43Sopenharmony_ci 291bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_BLACK_LEVEL_S { 301bd4fe43Sopenharmony_ci HI_BOOL bUpdate; 311bd4fe43Sopenharmony_ci HI_U16 au16BlackLevel[ISP_BAYER_CHN_NUM]; 321bd4fe43Sopenharmony_ci} ISP_CMOS_BLACK_LEVEL_S; 331bd4fe43Sopenharmony_ci 341bd4fe43Sopenharmony_citypedef struct hiISP_SNS_ATTR_INFO_S { 351bd4fe43Sopenharmony_ci SENSOR_ID eSensorId; 361bd4fe43Sopenharmony_ci} ISP_SNS_ATTR_INFO_S; 371bd4fe43Sopenharmony_ci 381bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DEMOSAIC_S { 391bd4fe43Sopenharmony_ci HI_BOOL bEnable; 401bd4fe43Sopenharmony_ci HI_U8 au8NonDirStr[ISP_AUTO_ISO_STRENGTH_NUM]; 411bd4fe43Sopenharmony_ci HI_U8 au8NonDirMFDetailEhcStr[ISP_AUTO_ISO_STRENGTH_NUM]; 421bd4fe43Sopenharmony_ci HI_U8 au8NonDirHFDetailEhcStr[ISP_AUTO_ISO_STRENGTH_NUM]; 431bd4fe43Sopenharmony_ci HI_U8 au8DetailSmoothRange[ISP_AUTO_ISO_STRENGTH_NUM]; 441bd4fe43Sopenharmony_ci} ISP_CMOS_DEMOSAIC_S; 451bd4fe43Sopenharmony_ci 461bd4fe43Sopenharmony_ci#define WDR_MAX_FRAME 2 471bd4fe43Sopenharmony_ci#define BAYER_CALIBRATION_PARA_NUM 3 481bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_BAYERNR_S { 491bd4fe43Sopenharmony_ci HI_BOOL bEnable; 501bd4fe43Sopenharmony_ci HI_BOOL bBnrMonoSensorEn; 511bd4fe43Sopenharmony_ci HI_BOOL bNrLscEnable; 521bd4fe43Sopenharmony_ci HI_U8 u8BnrLscMaxGain; 531bd4fe43Sopenharmony_ci HI_U16 u16BnrLscCmpStrength; 541bd4fe43Sopenharmony_ci 551bd4fe43Sopenharmony_ci HI_U8 au8LutFineStr[ISP_AUTO_ISO_STRENGTH_NUM]; 561bd4fe43Sopenharmony_ci HI_U8 au8ChromaStr[ISP_BAYER_CHN_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; 571bd4fe43Sopenharmony_ci HI_U8 au8WDRFrameStr[WDR_MAX_FRAME_NUM]; 581bd4fe43Sopenharmony_ci HI_U8 au8FusionFrameStr[WDR_MAX_FRAME_NUM]; 591bd4fe43Sopenharmony_ci HI_U16 au16CoarseStr[ISP_BAYER_CHN_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; 601bd4fe43Sopenharmony_ci HI_U16 au16LutCoringWgt[ISP_AUTO_ISO_STRENGTH_NUM]; 611bd4fe43Sopenharmony_ci HI_U16 au16LutCoringRatio[HI_ISP_BAYERNR_LUT_LENGTH]; 621bd4fe43Sopenharmony_ci} ISP_CMOS_BAYERNR_S; 631bd4fe43Sopenharmony_ci 641bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_NOISE_CALIBRATION_S { 651bd4fe43Sopenharmony_ci HI_U16 u16CalibrationLutNum; 661bd4fe43Sopenharmony_ci HI_FLOAT afCalibrationCoef[BAYER_CALIBTAION_MAX_NUM][BAYER_CALIBRATION_PARA_NUM]; 671bd4fe43Sopenharmony_ci} ISP_CMOS_NOISE_CALIBRATION_S; 681bd4fe43Sopenharmony_ci 691bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DETAIL_S { 701bd4fe43Sopenharmony_ci ISP_DE_ATTR_S stAttr; 711bd4fe43Sopenharmony_ci} ISP_CMOS_DETAIL_S; 721bd4fe43Sopenharmony_ci 731bd4fe43Sopenharmony_citypedef struct HiISP_CMOS_SHARPEN_MANUAL_S { 741bd4fe43Sopenharmony_ci HI_U8 au8LumaWgt[ISP_SHARPEN_LUMA_NUM]; /* Range:[0, 127]; Adjust the sharpen strength according to luma. 751bd4fe43Sopenharmony_ci Sharpen strength will be weaker when it decrease. */ 761bd4fe43Sopenharmony_ci HI_U16 au16TextureStr[ISP_SHARPEN_GAIN_NUM]; /* Range:[0, 4095]; Format:7.5;Undirectional sharpen strength 771bd4fe43Sopenharmony_ci for texture and detail enhancement */ 781bd4fe43Sopenharmony_ci HI_U16 au16EdgeStr[ISP_SHARPEN_GAIN_NUM]; /* Range:[0, 4095]; Format:7.5;Directional sharpen strength for 791bd4fe43Sopenharmony_ci edge enhancement */ 801bd4fe43Sopenharmony_ci HI_U16 u16TextureFreq; /* Range:[0, 4095];Format:6.6; Texture frequency adjustment. Texture and detail will be 811bd4fe43Sopenharmony_ci finer when it increase */ 821bd4fe43Sopenharmony_ci HI_U16 u16EdgeFreq; /* Range:[0, 4095];Format:6.6; Edge frequency adjustment. 831bd4fe43Sopenharmony_ci Edge will be narrower and thiner when it increase */ 841bd4fe43Sopenharmony_ci HI_U8 u8OverShoot; /* Range:[0, 127]; u8OvershootAmt */ 851bd4fe43Sopenharmony_ci HI_U8 u8UnderShoot; /* Range:[0, 127]; u8UndershootAmt */ 861bd4fe43Sopenharmony_ci HI_U8 u8ShootSupStr; /* Range:[0, 255]; overshoot and undershoot suppression strength, the amplitude and width 871bd4fe43Sopenharmony_ci of shoot will be decrease when shootSupSt increase */ 881bd4fe43Sopenharmony_ci HI_U8 u8ShootSupAdj; /* Range:[0, 15]; overshoot and undershoot suppression adjusting, adjust the edge shoot 891bd4fe43Sopenharmony_ci suppression strength */ 901bd4fe43Sopenharmony_ci HI_U8 u8DetailCtrl; /* Range:[0, 255]; Different sharpen strength for detail and edge. When it is bigger than 911bd4fe43Sopenharmony_ci 128, detail sharpen strength will be stronger than edge. */ 921bd4fe43Sopenharmony_ci HI_U8 u8DetailCtrlThr; /* Range:[0, 255];The threshold of DetailCtrl,it is used to distinguish detail and edge */ 931bd4fe43Sopenharmony_ci HI_U8 u8EdgeFiltStr; /* Range:[0, 63]; The strength of edge filtering. */ 941bd4fe43Sopenharmony_ci HI_U8 u8EdgeFiltMaxCap; /* Range:[0, 47]; The max capacity of edge filtering. */ 951bd4fe43Sopenharmony_ci HI_U8 u8RGain; /* Range:[0, 31];Sharpen Gain for Red Area */ 961bd4fe43Sopenharmony_ci HI_U8 u8GGain; /* Range:[0, 255]; Sharpen Gain for Green Area */ 971bd4fe43Sopenharmony_ci HI_U8 u8BGain; /* Range:[0, 31]; Sharpen Gain for Blue Area */ 981bd4fe43Sopenharmony_ci HI_U8 u8SkinGain; /* Range:[0, 31]; Sharpen Gain for Skin Area */ 991bd4fe43Sopenharmony_ci HI_U16 u16MaxSharpGain; /* Range:[0, 0x7FF]; Format:8.3; Maximum sharpen gain */ 1001bd4fe43Sopenharmony_ci} ISP_CMOS_SHARPEN_MANUAL_S; 1011bd4fe43Sopenharmony_ci 1021bd4fe43Sopenharmony_citypedef struct HiISP_CMOS_SHARPEN_AUTO_S { 1031bd4fe43Sopenharmony_ci HI_U8 au8LumaWgt[ISP_SHARPEN_LUMA_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 127]; Adjust the sharpen 1041bd4fe43Sopenharmony_ci strength according to luma. Sharpen 1051bd4fe43Sopenharmony_ci strength will be weaker when it decrease */ 1061bd4fe43Sopenharmony_ci HI_U16 au16TextureStr[ISP_SHARPEN_GAIN_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 4095]; Format:7.5;Undirectional 1071bd4fe43Sopenharmony_ci sharpen strength for texture and detail 1081bd4fe43Sopenharmony_ci enhancement */ 1091bd4fe43Sopenharmony_ci HI_U16 au16EdgeStr[ISP_SHARPEN_GAIN_NUM][ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 4095]; Format:7.5;Directional 1101bd4fe43Sopenharmony_ci sharpen strength for edge enhancement */ 1111bd4fe43Sopenharmony_ci HI_U16 au16TextureFreq[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 4095]; Format:6.6;Texture frequency adjustment. 1121bd4fe43Sopenharmony_ci Texture and detail will be finer when it increase */ 1131bd4fe43Sopenharmony_ci HI_U16 au16EdgeFreq[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 4095]; Format:6.6;Edge frequency adjustment. 1141bd4fe43Sopenharmony_ci Edge will be narrower and thiner when it increase */ 1151bd4fe43Sopenharmony_ci HI_U8 au8OverShoot[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 127] */ 1161bd4fe43Sopenharmony_ci HI_U8 au8UnderShoot[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 127] */ 1171bd4fe43Sopenharmony_ci HI_U8 au8ShootSupStr[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 255]; overshoot and undershoot suppression 1181bd4fe43Sopenharmony_ci strength, the amplitude and width of shoot will be decrease 1191bd4fe43Sopenharmony_ci when shootSupSt increase */ 1201bd4fe43Sopenharmony_ci HI_U8 au8ShootSupAdj[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 15]; overshoot and undershoot suppression 1211bd4fe43Sopenharmony_ci adjusting, adjust the edge shoot suppression strength */ 1221bd4fe43Sopenharmony_ci HI_U8 au8DetailCtrl[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 255];Different sharpen strength for detail and 1231bd4fe43Sopenharmony_ci edge. When it is bigger than 128, detail sharpen strength 1241bd4fe43Sopenharmony_ci will be stronger than edge. */ 1251bd4fe43Sopenharmony_ci HI_U8 au8DetailCtrlThr[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 255]; The threshold of DetailCtrl, it is used to 1261bd4fe43Sopenharmony_ci distinguish detail and edge. */ 1271bd4fe43Sopenharmony_ci HI_U8 au8EdgeFiltStr[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 63]; The strength of edge filtering. */ 1281bd4fe43Sopenharmony_ci HI_U8 au8EdgeFiltMaxCap[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 47]; The max capacity of edge filtering. */ 1291bd4fe43Sopenharmony_ci HI_U8 au8RGain[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 31]; Sharpen Gain for Red Area */ 1301bd4fe43Sopenharmony_ci HI_U8 au8GGain[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 255]; Sharpen Gain for Green Area */ 1311bd4fe43Sopenharmony_ci HI_U8 au8BGain[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 31]; Sharpen Gain for Blue Area */ 1321bd4fe43Sopenharmony_ci HI_U8 au8SkinGain[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 31]; */ 1331bd4fe43Sopenharmony_ci HI_U16 au16MaxSharpGain[ISP_AUTO_ISO_STRENGTH_NUM]; /* Range:[0, 0x7FF]; Format:8.3; */ 1341bd4fe43Sopenharmony_ci} ISP_CMOS_SHARPEN_AUTO_S; 1351bd4fe43Sopenharmony_ci 1361bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_SHARPEN_S { 1371bd4fe43Sopenharmony_ci HI_U8 u8SkinUmin; 1381bd4fe43Sopenharmony_ci HI_U8 u8SkinVmin; 1391bd4fe43Sopenharmony_ci HI_U8 u8SkinUmax; 1401bd4fe43Sopenharmony_ci HI_U8 u8SkinVmax; 1411bd4fe43Sopenharmony_ci ISP_CMOS_SHARPEN_MANUAL_S stManual; 1421bd4fe43Sopenharmony_ci ISP_CMOS_SHARPEN_AUTO_S stAuto; 1431bd4fe43Sopenharmony_ci} ISP_CMOS_SHARPEN_S; 1441bd4fe43Sopenharmony_ci 1451bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_EDGEMARK_S { 1461bd4fe43Sopenharmony_ci HI_BOOL bEnable; /* RW; Range:[0, 1]; Format:1.0;Enable/Disable Edge Mark */ 1471bd4fe43Sopenharmony_ci HI_U8 u8Threshold; /* RW; range: [0, 255]; Format:8.0; */ 1481bd4fe43Sopenharmony_ci HI_U32 u32Color; /* RW; range: [0, 0xFFFFFF]; Format:32.0; */ 1491bd4fe43Sopenharmony_ci} ISP_CMOS_EDGEMARK_S; 1501bd4fe43Sopenharmony_ci 1511bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_HLC_S { 1521bd4fe43Sopenharmony_ci HI_BOOL bEnable; /* RW; Range:[0, 1]; Format:1.0;Enable/Disable HLC module */ 1531bd4fe43Sopenharmony_ci HI_U8 u8LumaThr; /* RW; range: [0, 255]; Format:8.0; */ 1541bd4fe43Sopenharmony_ci HI_U8 u8LumaTarget; /* RW; range: [0, 255]; Format:8.0; */ 1551bd4fe43Sopenharmony_ci} ISP_CMOS_HLC_S; 1561bd4fe43Sopenharmony_ci 1571bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DRC_S { 1581bd4fe43Sopenharmony_ci HI_BOOL bEnable; 1591bd4fe43Sopenharmony_ci ISP_OP_TYPE_E enOpType; 1601bd4fe43Sopenharmony_ci 1611bd4fe43Sopenharmony_ci HI_U16 u16ManualStrength; 1621bd4fe43Sopenharmony_ci HI_U16 u16AutoStrength; 1631bd4fe43Sopenharmony_ci 1641bd4fe43Sopenharmony_ci HI_U8 u8SpatialFltCoef; 1651bd4fe43Sopenharmony_ci HI_U8 u8RangeFltCoef; 1661bd4fe43Sopenharmony_ci HI_U8 u8ContrastControl; 1671bd4fe43Sopenharmony_ci HI_S8 s8DetailAdjustFactor; 1681bd4fe43Sopenharmony_ci HI_U8 u8RangeAdaMax; 1691bd4fe43Sopenharmony_ci 1701bd4fe43Sopenharmony_ci HI_U8 u8FltScaleFine; 1711bd4fe43Sopenharmony_ci HI_U8 u8FltScaleCoarse; 1721bd4fe43Sopenharmony_ci HI_U8 u8GradRevMax; 1731bd4fe43Sopenharmony_ci HI_U8 u8GradRevThr; 1741bd4fe43Sopenharmony_ci 1751bd4fe43Sopenharmony_ci HI_U8 u8BrightGainLmt; 1761bd4fe43Sopenharmony_ci HI_U8 u8BrightGainLmtStep; 1771bd4fe43Sopenharmony_ci HI_U8 u8DarkGainLmtY; 1781bd4fe43Sopenharmony_ci HI_U8 u8DarkGainLmtC; 1791bd4fe43Sopenharmony_ci HI_U8 u8PDStrength; 1801bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingBrightMax; 1811bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingBrightMin; 1821bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingBrightThr; 1831bd4fe43Sopenharmony_ci HI_S8 s8LocalMixingBrightSlo; 1841bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingDarkMax; 1851bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingDarkMin; 1861bd4fe43Sopenharmony_ci HI_U8 u8LocalMixingDarkThr; 1871bd4fe43Sopenharmony_ci HI_S8 s8LocalMixingDarkSlo; 1881bd4fe43Sopenharmony_ci HI_U16 u16ColorCorrectionLut[HI_ISP_DRC_CC_NODE_NUM]; 1891bd4fe43Sopenharmony_ci HI_U16 u16ToneMappingValue[HI_ISP_DRC_TM_NODE_NUM]; 1901bd4fe43Sopenharmony_ci 1911bd4fe43Sopenharmony_ci HI_U8 u8Asymmetry; 1921bd4fe43Sopenharmony_ci HI_U8 u8SecondPole; 1931bd4fe43Sopenharmony_ci HI_U8 u8Stretch; 1941bd4fe43Sopenharmony_ci HI_U8 u8Compress; 1951bd4fe43Sopenharmony_ci 1961bd4fe43Sopenharmony_ci HI_U8 u8CurveSel; 1971bd4fe43Sopenharmony_ci 1981bd4fe43Sopenharmony_ci HI_U16 au16Xpoint[HI_ISP_DRC_CUBIC_POINT_NUM]; 1991bd4fe43Sopenharmony_ci HI_U16 au16Ypoint[HI_ISP_DRC_CUBIC_POINT_NUM]; 2001bd4fe43Sopenharmony_ci HI_U16 au16Slope[HI_ISP_DRC_CUBIC_POINT_NUM]; 2011bd4fe43Sopenharmony_ci} ISP_CMOS_DRC_S; 2021bd4fe43Sopenharmony_ci 2031bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_WDR_S { 2041bd4fe43Sopenharmony_ci HI_BOOL bFusionMode; 2051bd4fe43Sopenharmony_ci HI_BOOL bMotionComp; 2061bd4fe43Sopenharmony_ci 2071bd4fe43Sopenharmony_ci HI_U16 u16ShortThr; 2081bd4fe43Sopenharmony_ci HI_U16 u16LongThr; 2091bd4fe43Sopenharmony_ci 2101bd4fe43Sopenharmony_ci HI_BOOL bForceLong; 2111bd4fe43Sopenharmony_ci HI_U16 u16ForceLongLowThr; 2121bd4fe43Sopenharmony_ci HI_U16 u16ForceLongHigThr; 2131bd4fe43Sopenharmony_ci 2141bd4fe43Sopenharmony_ci HI_BOOL bShortExpoChk; 2151bd4fe43Sopenharmony_ci HI_U16 u16ShortCheckThd; 2161bd4fe43Sopenharmony_ci HI_BOOL bMDRefFlicker; 2171bd4fe43Sopenharmony_ci 2181bd4fe43Sopenharmony_ci HI_U8 au8MdThrLowGain[ISP_AUTO_ISO_STRENGTH_NUM]; 2191bd4fe43Sopenharmony_ci HI_U8 au8MdThrHigGain[ISP_AUTO_ISO_STRENGTH_NUM]; 2201bd4fe43Sopenharmony_ci 2211bd4fe43Sopenharmony_ci ISP_BNR_MODE_E enBnrMode; 2221bd4fe43Sopenharmony_ci HI_U16 au16FusionThr[WDR_MAX_FRAME]; 2231bd4fe43Sopenharmony_ci HI_U8 u8MdtStillThd; 2241bd4fe43Sopenharmony_ci HI_U8 u8MdtLongBlend; 2251bd4fe43Sopenharmony_ci} ISP_CMOS_WDR_S; 2261bd4fe43Sopenharmony_ci 2271bd4fe43Sopenharmony_citypedef struct HiISP_CMOS_DEHAZE_S { 2281bd4fe43Sopenharmony_ci HI_BOOL bEnable; /* RW;Range:[0,1];Format:1.0; */ 2291bd4fe43Sopenharmony_ci HI_BOOL bUserLutEnable; /* RW;Range:[0,1];0:Auto Lut 1:User Lut */ 2301bd4fe43Sopenharmony_ci ISP_OP_TYPE_E enOpType; 2311bd4fe43Sopenharmony_ci HI_U8 u8AutoStrength; 2321bd4fe43Sopenharmony_ci HI_U8 u8ManualStrength; 2331bd4fe43Sopenharmony_ci} ISP_CMOS_DEHAZE_S; 2341bd4fe43Sopenharmony_ci 2351bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_PREGAMMA_S { 2361bd4fe43Sopenharmony_ci HI_BOOL bEnable; 2371bd4fe43Sopenharmony_ci HI_U32 au32PreGamma[PREGAMMA_NODE_NUM]; 2381bd4fe43Sopenharmony_ci} ISP_CMOS_PREGAMMA_S; 2391bd4fe43Sopenharmony_ci 2401bd4fe43Sopenharmony_ci#define GAMMA_NODE_NUMBER 257 /* Update NODE NUMBER */ 2411bd4fe43Sopenharmony_ci#define GAMMA_EXT_NODE_NUMBER 1025 /* Update NODE NUMBER */ 2421bd4fe43Sopenharmony_ci#define GAMMA_OUTSEG_NUMBER 8 /* Update NODE NUMBER */ 2431bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_GAMMA_S { 2441bd4fe43Sopenharmony_ci HI_U16 au16Gamma[GAMMA_EXT_NODE_NUMBER]; 2451bd4fe43Sopenharmony_ci} ISP_CMOS_GAMMA_S; 2461bd4fe43Sopenharmony_ci 2471bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_SENSOR_MAX_RESOLUTION_S { 2481bd4fe43Sopenharmony_ci HI_U32 u32MaxWidth; 2491bd4fe43Sopenharmony_ci HI_U32 u32MaxHeight; 2501bd4fe43Sopenharmony_ci} ISP_CMOS_SENSOR_MAX_RESOLUTION_S; 2511bd4fe43Sopenharmony_ci 2521bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DPC_S { 2531bd4fe43Sopenharmony_ci HI_U16 au16Strength[ISP_AUTO_ISO_STRENGTH_NUM]; 2541bd4fe43Sopenharmony_ci HI_U16 au16BlendRatio[ISP_AUTO_ISO_STRENGTH_NUM]; 2551bd4fe43Sopenharmony_ci} ISP_CMOS_DPC_S; 2561bd4fe43Sopenharmony_ci 2571bd4fe43Sopenharmony_citypedef struct hiISP_LSC_CABLI_TABLE_S { 2581bd4fe43Sopenharmony_ci HI_U16 au16R_Gain[HI_ISP_LSC_GRID_POINTS]; 2591bd4fe43Sopenharmony_ci HI_U16 au16Gr_Gain[HI_ISP_LSC_GRID_POINTS]; 2601bd4fe43Sopenharmony_ci HI_U16 au16Gb_Gain[HI_ISP_LSC_GRID_POINTS]; 2611bd4fe43Sopenharmony_ci HI_U16 au16B_Gain[HI_ISP_LSC_GRID_POINTS]; 2621bd4fe43Sopenharmony_ci} ISP_LSC_CABLI_TABLE_S; 2631bd4fe43Sopenharmony_ci 2641bd4fe43Sopenharmony_citypedef struct hiISP_BNR_LSC_CALIB_TABLE_S { 2651bd4fe43Sopenharmony_ci HI_U16 au16R_Gain[HI_ISP_RLSC_POINTS]; 2661bd4fe43Sopenharmony_ci HI_U16 au16Gr_Gain[HI_ISP_RLSC_POINTS]; 2671bd4fe43Sopenharmony_ci HI_U16 au16Gb_Gain[HI_ISP_RLSC_POINTS]; 2681bd4fe43Sopenharmony_ci HI_U16 au16B_Gain[HI_ISP_RLSC_POINTS]; 2691bd4fe43Sopenharmony_ci} ISP_BNR_LSC_CALIB_TABLE_S; 2701bd4fe43Sopenharmony_ci 2711bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_LSC_S { 2721bd4fe43Sopenharmony_ci HI_U16 u16MeshStrength; 2731bd4fe43Sopenharmony_ci HI_U8 u8MeshScale; 2741bd4fe43Sopenharmony_ci ISP_LSC_CABLI_TABLE_S astLscCalibTable[HI_ISP_MLSC_GAIN_LUT_NUM]; 2751bd4fe43Sopenharmony_ci ISP_BNR_LSC_CALIB_TABLE_S stBNRLscCalibTable; 2761bd4fe43Sopenharmony_ci} ISP_CMOS_LSC_S; 2771bd4fe43Sopenharmony_ci 2781bd4fe43Sopenharmony_citypedef struct hiISP_ACS_Y_SHADING_LUT_S { 2791bd4fe43Sopenharmony_ci HI_U16 u16GParamHighCT[HI_ISP_LSC_GRID_POINTS]; 2801bd4fe43Sopenharmony_ci HI_U16 u16GParamLowCT[HI_ISP_LSC_GRID_POINTS]; 2811bd4fe43Sopenharmony_ci} ISP_ACS_Y_SHADING_LUT_S; 2821bd4fe43Sopenharmony_ci 2831bd4fe43Sopenharmony_citypedef struct hiISP_ACS_COLOR_SHADING_LUT_S { 2841bd4fe43Sopenharmony_ci HI_FLOAT f32AvgRgMap[HI_ISP_LSC_GRID_POINTS]; 2851bd4fe43Sopenharmony_ci HI_FLOAT f32AvgBgMap[HI_ISP_LSC_GRID_POINTS]; 2861bd4fe43Sopenharmony_ci HI_FLOAT f32ProfRgMap[HI_ISP_LSC_GRID_POINTS]; 2871bd4fe43Sopenharmony_ci HI_FLOAT f32ProfBgMap[HI_ISP_LSC_GRID_POINTS]; 2881bd4fe43Sopenharmony_ci} ISP_ACS_COLOR_SHADING_LUT_S; 2891bd4fe43Sopenharmony_ci 2901bd4fe43Sopenharmony_citypedef struct hiISP_ACS_CALIB_PARAM_S { 2911bd4fe43Sopenharmony_ci HI_S16 u16LightIndex[HI_ISP_ACS_LIGHT_NUM * HI_ISP_ACS_CHN_NUM]; 2921bd4fe43Sopenharmony_ci HI_FLOAT f32ModelARMin; 2931bd4fe43Sopenharmony_ci HI_FLOAT f32ModelARStep; 2941bd4fe43Sopenharmony_ci HI_FLOAT f32ModelABMin; 2951bd4fe43Sopenharmony_ci HI_FLOAT f32ModelABStep; 2961bd4fe43Sopenharmony_ci HI_S16 u16LightTypeGHigh; 2971bd4fe43Sopenharmony_ci HI_S16 u16LightTypeGLow; 2981bd4fe43Sopenharmony_ci} ISP_ACS_CALIB_PARAM_S; 2991bd4fe43Sopenharmony_ci 3001bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_ACS_S { 3011bd4fe43Sopenharmony_ci HI_BOOL bAcsEn; 3021bd4fe43Sopenharmony_ci HI_U16 u16AcsShadingStr; 3031bd4fe43Sopenharmony_ci ISP_ACS_CALIB_PARAM_S stAcsCalibParam; 3041bd4fe43Sopenharmony_ci ISP_ACS_Y_SHADING_LUT_S stAcsYShadingLut; 3051bd4fe43Sopenharmony_ci ISP_ACS_COLOR_SHADING_LUT_S stAcsColorShadingLut; 3061bd4fe43Sopenharmony_ci} ISP_CMOS_ACS_S; 3071bd4fe43Sopenharmony_ci 3081bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_CA_S { 3091bd4fe43Sopenharmony_ci HI_BOOL bEnable; 3101bd4fe43Sopenharmony_ci HI_U16 au16YRatioLut[HI_ISP_CA_YRATIO_LUT_LENGTH]; /* 1.10bit Y Ratio For UV; Max = 2047 FW Limit */ 3111bd4fe43Sopenharmony_ci HI_S16 as16ISORatio[ISP_AUTO_ISO_STRENGTH_NUM]; /* 1.10bit ISO Ratio For UV,Max = 2047 FW Limi */ 3121bd4fe43Sopenharmony_ci} ISP_CMOS_CA_S; 3131bd4fe43Sopenharmony_ci 3141bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_CLUT_S { 3151bd4fe43Sopenharmony_ci HI_BOOL bEnable; 3161bd4fe43Sopenharmony_ci HI_U32 u32GainR; 3171bd4fe43Sopenharmony_ci HI_U32 u32GainG; 3181bd4fe43Sopenharmony_ci HI_U32 u32GainB; 3191bd4fe43Sopenharmony_ci ISP_CLUT_LUT_S stClutLut; 3201bd4fe43Sopenharmony_ci} ISP_CMOS_CLUT_S; 3211bd4fe43Sopenharmony_ci 3221bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_EXPANDER_POINT_S { 3231bd4fe43Sopenharmony_ci HI_U16 u16X; /* RW;Range:[0x0,0x100];Format:8.0;The X point of the knee */ 3241bd4fe43Sopenharmony_ci HI_U32 u32Y; /* RW;Range:[0x0,0x100000];Format:21.0;The Y point of the knee */ 3251bd4fe43Sopenharmony_ci} ISP_CMOS_EXPANDER_POINT_S; 3261bd4fe43Sopenharmony_ci 3271bd4fe43Sopenharmony_ci#define ISP_EXPANDER_POINT_NUM_MAX (EXPANDER_NODE_NUM - 1) 3281bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_EXPANDER_S { 3291bd4fe43Sopenharmony_ci HI_BOOL bEnable; 3301bd4fe43Sopenharmony_ci HI_U8 u8BitDepthIn; /* RW;Range:[0xC,0x14];Format:5.0;The Bit depth of input */ 3311bd4fe43Sopenharmony_ci HI_U8 u8BitDepthOut; /* RW;Range:[0xC,0x14];Format:5.0;The Bit depth of output */ 3321bd4fe43Sopenharmony_ci HI_U16 u16ExpanderPointNum; /* Range:[1, 256] */ 3331bd4fe43Sopenharmony_ci ISP_CMOS_EXPANDER_POINT_S astExpanderPoint[ISP_EXPANDER_POINT_NUM_MAX]; 3341bd4fe43Sopenharmony_ci} ISP_CMOS_EXPANDER_S; 3351bd4fe43Sopenharmony_ci 3361bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_GE_S { 3371bd4fe43Sopenharmony_ci HI_BOOL bEnable; /* RW,Range: [ 0, 1] */ 3381bd4fe43Sopenharmony_ci HI_U8 u8Slope; /* RW,Range: [ 0, 0xE] */ 3391bd4fe43Sopenharmony_ci HI_U8 u8SensiSlope; /* RW,Range: [ 0, 0xE] */ 3401bd4fe43Sopenharmony_ci HI_U16 u16SensiThr; /* RW,Range: [ 0, 0x3FFF] */ 3411bd4fe43Sopenharmony_ci HI_U16 au16Threshold[ISP_AUTO_ISO_STRENGTH_NUM]; /* RW,Range: [ 0, 0x3FFF] */ 3421bd4fe43Sopenharmony_ci HI_U16 au16Strength[ISP_AUTO_ISO_STRENGTH_NUM]; /* RW,Range: [ 0, 0x100] */ 3431bd4fe43Sopenharmony_ci HI_U16 au16NpOffset[ISP_AUTO_ISO_STRENGTH_NUM]; /* RW,Range: [0x200, 0x3FFF] */ 3441bd4fe43Sopenharmony_ci} ISP_CMOS_GE_S; 3451bd4fe43Sopenharmony_ci 3461bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_ANTIFALSECOLOR_S { 3471bd4fe43Sopenharmony_ci HI_BOOL bEnable; /* RW;Range:[0x0,0x1];Format:1.0; */ 3481bd4fe43Sopenharmony_ci HI_U8 au8AntiFalseColorThreshold[ISP_AUTO_ISO_STRENGTH_NUM]; /* RW;Range:[0x0,0x20];Format:6.0; */ 3491bd4fe43Sopenharmony_ci HI_U8 au8AntiFalseColorStrength[ISP_AUTO_ISO_STRENGTH_NUM]; /* RW;Range:[0x0,0x1F];Format:5.0; */ 3501bd4fe43Sopenharmony_ci} ISP_CMOS_ANTIFALSECOLOR_S; 3511bd4fe43Sopenharmony_ci 3521bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_LDCI_S { 3531bd4fe43Sopenharmony_ci HI_BOOL bEnable; 3541bd4fe43Sopenharmony_ci HI_U8 u8GaussLPFSigma; 3551bd4fe43Sopenharmony_ci HI_U8 au8HePosWgt[ISP_AUTO_ISO_STRENGTH_NUM]; 3561bd4fe43Sopenharmony_ci HI_U8 au8HePosSigma[ISP_AUTO_ISO_STRENGTH_NUM]; 3571bd4fe43Sopenharmony_ci HI_U8 au8HePosMean[ISP_AUTO_ISO_STRENGTH_NUM]; 3581bd4fe43Sopenharmony_ci HI_U8 au8HeNegWgt[ISP_AUTO_ISO_STRENGTH_NUM]; 3591bd4fe43Sopenharmony_ci HI_U8 au8HeNegSigma[ISP_AUTO_ISO_STRENGTH_NUM]; 3601bd4fe43Sopenharmony_ci HI_U8 au8HeNegMean[ISP_AUTO_ISO_STRENGTH_NUM]; 3611bd4fe43Sopenharmony_ci HI_U16 au16BlcCtrl[ISP_AUTO_ISO_STRENGTH_NUM]; 3621bd4fe43Sopenharmony_ci} ISP_CMOS_LDCI_S; 3631bd4fe43Sopenharmony_ci 3641bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_LCAC_MANUAL_S { 3651bd4fe43Sopenharmony_ci HI_U8 u8DePurpleCrStr; 3661bd4fe43Sopenharmony_ci HI_U8 u8DePurpleCbStr; 3671bd4fe43Sopenharmony_ci} ISP_CMOS_LCAC_MANUAL_S; 3681bd4fe43Sopenharmony_ci 3691bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_LCAC_AUTO_S { 3701bd4fe43Sopenharmony_ci HI_U8 au8DePurpleCrStr[ISP_EXP_RATIO_STRENGTH_NUM]; 3711bd4fe43Sopenharmony_ci HI_U8 au8DePurpleCbStr[ISP_EXP_RATIO_STRENGTH_NUM]; 3721bd4fe43Sopenharmony_ci} ISP_CMOS_LCAC_AUTO_S; 3731bd4fe43Sopenharmony_ci 3741bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_LCAC_S { 3751bd4fe43Sopenharmony_ci HI_BOOL bEnable; 3761bd4fe43Sopenharmony_ci ISP_OP_TYPE_E OpMode; 3771bd4fe43Sopenharmony_ci HI_U16 u16VarThr; 3781bd4fe43Sopenharmony_ci HI_U16 au16RLumaThd[ISP_LCAC_DET_NUM]; 3791bd4fe43Sopenharmony_ci HI_U16 au16GLumaThd[ISP_LCAC_DET_NUM]; 3801bd4fe43Sopenharmony_ci HI_U16 au16BLumaThd[ISP_LCAC_DET_NUM]; 3811bd4fe43Sopenharmony_ci HI_U16 au16YLumaThd[ISP_LCAC_DET_NUM]; 3821bd4fe43Sopenharmony_ci HI_S16 as16CbCrRatio[ISP_LCAC_DET_NUM]; 3831bd4fe43Sopenharmony_ci HI_U16 u16PurpleDetRange; 3841bd4fe43Sopenharmony_ci ISP_CMOS_LCAC_MANUAL_S stManual; 3851bd4fe43Sopenharmony_ci ISP_CMOS_LCAC_AUTO_S stAuto; 3861bd4fe43Sopenharmony_ci} ISP_CMOS_LCAC_S; 3871bd4fe43Sopenharmony_ci 3881bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_SENSOR_MODE_S { 3891bd4fe43Sopenharmony_ci HI_U32 u32SensorID; 3901bd4fe43Sopenharmony_ci HI_U8 u8SensorMode; 3911bd4fe43Sopenharmony_ci HI_BOOL bValidDngRawFormat; 3921bd4fe43Sopenharmony_ci DNG_RAW_FORMAT_S stDngRawFormat; 3931bd4fe43Sopenharmony_ci} ISP_CMOS_SENSOR_MODE_S; 3941bd4fe43Sopenharmony_ci 3951bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DNG_COLORPARAM_S { 3961bd4fe43Sopenharmony_ci ISP_DNG_WBGAIN_S stWbGain1; /* the calibration White balance gain of colorcheker in A Light */ 3971bd4fe43Sopenharmony_ci ISP_DNG_WBGAIN_S stWbGain2; /* the calibration White balance gain of colorcheker in D50 Light */ 3981bd4fe43Sopenharmony_ci} ISP_CMOS_DNG_COLORPARAM_S; 3991bd4fe43Sopenharmony_ci 4001bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_WDR_SWITCH_ATTR_S { 4011bd4fe43Sopenharmony_ci HI_U32 au32ExpRatio[EXP_RATIO_NUM]; 4021bd4fe43Sopenharmony_ci} ISP_CMOS_WDR_SWITCH_ATTR_S; 4031bd4fe43Sopenharmony_ci 4041bd4fe43Sopenharmony_citypedef union hiISP_CMOS_ALG_KEY_U { 4051bd4fe43Sopenharmony_ci HI_U64 u64Key; 4061bd4fe43Sopenharmony_ci struct { 4071bd4fe43Sopenharmony_ci HI_U64 bit1Drc : 1; /* [0] */ 4081bd4fe43Sopenharmony_ci HI_U64 bit1Demosaic : 1; /* [1] */ 4091bd4fe43Sopenharmony_ci HI_U64 bit1PreGamma : 1; /* [2] */ 4101bd4fe43Sopenharmony_ci HI_U64 bit1Gamma : 1; /* [3] */ 4111bd4fe43Sopenharmony_ci HI_U64 bit1Sharpen : 1; /* [4] */ 4121bd4fe43Sopenharmony_ci HI_U64 bit1EdgeMark : 1; /* [5] */ 4131bd4fe43Sopenharmony_ci HI_U64 bit1Hlc : 1; /* [6] */ 4141bd4fe43Sopenharmony_ci HI_U64 bit1Ldci : 1; /* [7] */ 4151bd4fe43Sopenharmony_ci HI_U64 bit1Dpc : 1; /* [8] */ 4161bd4fe43Sopenharmony_ci HI_U64 bit1Lsc : 1; /* [9] */ 4171bd4fe43Sopenharmony_ci HI_U64 bit1Ge : 1; /* [10] */ 4181bd4fe43Sopenharmony_ci HI_U64 bit1AntiFalseColor : 1; /* [11] */ 4191bd4fe43Sopenharmony_ci HI_U64 bit1BayerNr : 1; /* [12] */ 4201bd4fe43Sopenharmony_ci HI_U64 bit1Detail : 1; /* [13] */ 4211bd4fe43Sopenharmony_ci HI_U64 bit1Ca : 1; /* [14] */ 4221bd4fe43Sopenharmony_ci HI_U64 bit1Expander : 1; /* [15] */ 4231bd4fe43Sopenharmony_ci HI_U64 bit1Clut : 1; /* [16] */ 4241bd4fe43Sopenharmony_ci HI_U64 bit1Wdr : 1; /* [17] */ 4251bd4fe43Sopenharmony_ci HI_U64 bit1Dehaze : 1; /* [18] */ 4261bd4fe43Sopenharmony_ci HI_U64 bit1Lcac : 1; /* [19] */ 4271bd4fe43Sopenharmony_ci HI_U64 bit1Acs : 1; /* [20] */ 4281bd4fe43Sopenharmony_ci HI_U64 bit43Rsv : 43; /* [21:63] */ 4291bd4fe43Sopenharmony_ci }; 4301bd4fe43Sopenharmony_ci} ISP_CMOS_ALG_KEY_U; 4311bd4fe43Sopenharmony_ci 4321bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_DEFAULT_S { 4331bd4fe43Sopenharmony_ci ISP_CMOS_ALG_KEY_U unKey; 4341bd4fe43Sopenharmony_ci const ISP_CMOS_DRC_S *pstDrc; 4351bd4fe43Sopenharmony_ci const ISP_CMOS_DEMOSAIC_S *pstDemosaic; 4361bd4fe43Sopenharmony_ci const ISP_CMOS_PREGAMMA_S *pstPreGamma; 4371bd4fe43Sopenharmony_ci const ISP_CMOS_GAMMA_S *pstGamma; 4381bd4fe43Sopenharmony_ci const ISP_CMOS_SHARPEN_S *pstSharpen; 4391bd4fe43Sopenharmony_ci const ISP_CMOS_EDGEMARK_S *pstEdgeMark; 4401bd4fe43Sopenharmony_ci const ISP_CMOS_HLC_S *pstHlc; 4411bd4fe43Sopenharmony_ci const ISP_CMOS_LDCI_S *pstLdci; 4421bd4fe43Sopenharmony_ci const ISP_CMOS_DPC_S *pstDpc; 4431bd4fe43Sopenharmony_ci const ISP_CMOS_LSC_S *pstLsc; 4441bd4fe43Sopenharmony_ci const ISP_CMOS_GE_S *pstGe; 4451bd4fe43Sopenharmony_ci const ISP_CMOS_ANTIFALSECOLOR_S *pstAntiFalseColor; 4461bd4fe43Sopenharmony_ci const ISP_CMOS_BAYERNR_S *pstBayerNr; 4471bd4fe43Sopenharmony_ci const ISP_CMOS_DETAIL_S *pstDetail; 4481bd4fe43Sopenharmony_ci const ISP_CMOS_CA_S *pstCa; 4491bd4fe43Sopenharmony_ci const ISP_CMOS_EXPANDER_S *pstExpander; 4501bd4fe43Sopenharmony_ci const ISP_CMOS_CLUT_S *pstClut; 4511bd4fe43Sopenharmony_ci const ISP_CMOS_WDR_S *pstWdr; 4521bd4fe43Sopenharmony_ci const ISP_CMOS_DEHAZE_S *pstDehaze; 4531bd4fe43Sopenharmony_ci const ISP_CMOS_LCAC_S *pstLcac; 4541bd4fe43Sopenharmony_ci const ISP_CMOS_ACS_S *pstAcs; 4551bd4fe43Sopenharmony_ci ISP_CMOS_NOISE_CALIBRATION_S stNoiseCalibration; 4561bd4fe43Sopenharmony_ci ISP_CMOS_SENSOR_MAX_RESOLUTION_S stSensorMaxResolution; 4571bd4fe43Sopenharmony_ci ISP_CMOS_SENSOR_MODE_S stSensorMode; 4581bd4fe43Sopenharmony_ci ISP_CMOS_DNG_COLORPARAM_S stDngColorParam; 4591bd4fe43Sopenharmony_ci ISP_CMOS_WDR_SWITCH_ATTR_S stWdrSwitchAttr; 4601bd4fe43Sopenharmony_ci} ISP_CMOS_DEFAULT_S; 4611bd4fe43Sopenharmony_ci 4621bd4fe43Sopenharmony_citypedef struct hiISP_CMOS_SENSOR_IMAGE_MODE_S { 4631bd4fe43Sopenharmony_ci HI_U16 u16Width; 4641bd4fe43Sopenharmony_ci HI_U16 u16Height; 4651bd4fe43Sopenharmony_ci HI_FLOAT f32Fps; 4661bd4fe43Sopenharmony_ci HI_U8 u8SnsMode; 4671bd4fe43Sopenharmony_ci} ISP_CMOS_SENSOR_IMAGE_MODE_S; 4681bd4fe43Sopenharmony_ci 4691bd4fe43Sopenharmony_citypedef struct hiISP_SENSOR_EXP_FUNC_S { 4701bd4fe43Sopenharmony_ci HI_VOID (*pfn_cmos_sensor_init)(VI_PIPE ViPipe); 4711bd4fe43Sopenharmony_ci HI_VOID (*pfn_cmos_sensor_exit)(VI_PIPE ViPipe); 4721bd4fe43Sopenharmony_ci HI_VOID (*pfn_cmos_sensor_global_init)(VI_PIPE ViPipe); 4731bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_set_image_mode)(VI_PIPE ViPipe, ISP_CMOS_SENSOR_IMAGE_MODE_S *pstSensorImageMode); 4741bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_set_wdr_mode)(VI_PIPE ViPipe, HI_U8 u8Mode); 4751bd4fe43Sopenharmony_ci 4761bd4fe43Sopenharmony_ci /* the algs get data which is associated with sensor, except 3a */ 4771bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_get_isp_default)(VI_PIPE ViPipe, ISP_CMOS_DEFAULT_S *pstDef); 4781bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_get_isp_black_level)(VI_PIPE ViPipe, ISP_CMOS_BLACK_LEVEL_S *pstBlackLevel); 4791bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_get_sns_reg_info)(VI_PIPE ViPipe, ISP_SNS_REGS_INFO_S *pstSnsRegsInfo); 4801bd4fe43Sopenharmony_ci 4811bd4fe43Sopenharmony_ci /* the function of sensor set pixel detect */ 4821bd4fe43Sopenharmony_ci HI_VOID (*pfn_cmos_set_pixel_detect)(VI_PIPE ViPipe, HI_BOOL bEnable); 4831bd4fe43Sopenharmony_ci HI_S32 (*pfn_cmos_get_awb_gains)(VI_PIPE ViPipe, HI_U32 *pu32SensorAwbGain); 4841bd4fe43Sopenharmony_ci} ISP_SENSOR_EXP_FUNC_S; 4851bd4fe43Sopenharmony_ci 4861bd4fe43Sopenharmony_citypedef struct hiISP_SENSOR_REGISTER_S { 4871bd4fe43Sopenharmony_ci ISP_SENSOR_EXP_FUNC_S stSnsExp; 4881bd4fe43Sopenharmony_ci} ISP_SENSOR_REGISTER_S; 4891bd4fe43Sopenharmony_ci 4901bd4fe43Sopenharmony_ci#ifdef __cplusplus 4911bd4fe43Sopenharmony_ci#if __cplusplus 4921bd4fe43Sopenharmony_ci} 4931bd4fe43Sopenharmony_ci#endif 4941bd4fe43Sopenharmony_ci#endif /* End of #ifdef __cplusplus */ 4951bd4fe43Sopenharmony_ci 4961bd4fe43Sopenharmony_ci#endif /* __HI_COMM_SNS_H__ */ 497