/*
|
* af_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_AF_HEADER_H__
|
#define __CALIBDBV2_AF_HEADER_H__
|
|
#include "rk_aiq_comm.h"
|
|
RKAIQ_BEGIN_DECLARE
|
|
#define CALIBDBV2_MAX_ISO_LEVEL 13
|
#define CALIBDBV2_ZOOM_FOCUS_POSITION_NUM 32
|
#define CALIBDBV2_ZOOM_FOCUS_ZOOM_MOVE_TBL_SIZE 32
|
#define CALIBDBV2_AF_CORRECT_SEARCHTBL_MAX 100
|
|
typedef enum CalibDbV2_Af_SearchDir_s {
|
CalibDbV2_CAM_AFM_POSITIVE_SEARCH = 0,
|
CalibDbV2_CAM_AFM_NEGATIVE_SEARCH = 1,
|
CalibDbV2_CAM_AFM_ADAPTIVE_SEARCH = 2
|
} CalibDbV2_Af_SearchDir_t;
|
|
typedef enum CalibDbV2_Af_SS_s {
|
CalibDbV2_CAM_AFM_FSS_INVALID = 0,
|
CalibDbV2_CAM_AFM_FSS_FULLRANGE = 1, /**< scan the full focus range to find the point of best focus */
|
CalibDbV2_CAM_AFM_FSS_HILLCLIMBING = 2, /**< use hillclimbing search */
|
CalibDbV2_CAM_AFM_FSS_ADAPTIVE_RANGE = 3, /**< similar to full range search, but with multiple subsequent scans
|
with decreasing range and step size will be performed. */
|
CalibDbV2_CAM_AFM_FSS_MUTIWINDOW = 4, /**< search by muti-window statistics */
|
CalibDbV2_CAM_AFM_FSS_MAX
|
} CalibDbV2_Af_SS_t;
|
|
typedef enum CalibDbV2_AF_MODE_s
|
{
|
CalibDbV2_AF_MODE_NOT_SET = -1,
|
CalibDbV2_AF_MODE_AUTO,
|
CalibDbV2_AF_MODE_MACRO,
|
CalibDbV2_AF_MODE_INFINITY,
|
CalibDbV2_AF_MODE_FIXED,
|
CalibDbV2_AF_MODE_EDOF,
|
CalibDbV2_AF_MODE_CONTINUOUS_VIDEO,
|
CalibDbV2_AF_MODE_CONTINUOUS_PICTURE,
|
CalibDbV2_AF_MODE_ONESHOT_AFTER_ZOOM,
|
} CalibDbV2_AF_MODE_t;
|
|
typedef enum CalibDbV2_PDAF_DATA_DIR_s {
|
CalibDbV2_PDAF_DIR_INVAL = 0,
|
CalibDbV2_PDAF_DIR_LEFT = 1,
|
CalibDbV2_PDAF_DIR_RIGHT = 2,
|
CalibDbV2_PDAF_DIR_TOP = 3,
|
CalibDbV2_PDAF_DIR_DOWN = 4
|
} CalibDbV2_PDAF_DATA_DIR_t;
|
|
typedef struct CalibDbV2_Af_ContrastZoom_s {
|
// M4_ARRAY_DESC("QuickFoundThersZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *QuickFoundThersZoomIdx;
|
int QuickFoundThersZoomIdx_len;
|
// M4_ARRAY_DESC("QuickFoundThers", "f32", M4_SIZE(1,32), M4_RANGE(0,1), "0", M4_DIGIT(3), M4_DYNAMIC(1))
|
float *QuickFoundThers;
|
int QuickFoundThers_len;
|
// M4_ARRAY_DESC("SearchStepZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *SearchStepZoomIdx;
|
int SearchStepZoomIdx_len;
|
// M4_ARRAY_DESC("SearchStep", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *SearchStep;
|
int SearchStep_len;
|
// M4_ARRAY_DESC("StopStepZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *StopStepZoomIdx;
|
int StopStepZoomIdx_len;
|
// M4_ARRAY_DESC("StopStep", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *StopStep;
|
int StopStep_len;
|
// M4_NUMBER_DESC("SkipHighPassZoomIdx", "u16", M4_RANGE(0, 65535), "0", M4_DIGIT(0))
|
unsigned short SkipHighPassZoomIdx;
|
// M4_NUMBER_DESC("SkipHighPassGain", "f32", M4_RANGE(0, 1000), "0", M4_DIGIT(3))
|
float SkipHighPassGain;
|
// M4_NUMBER_DESC("SwitchDirZoomIdx", "u16", M4_RANGE(0, 65535), "0", M4_DIGIT(0))
|
unsigned short SwitchDirZoomIdx;
|
|
// M4_NUMBER_DESC("Spotlight HighlightRatio", "f32", M4_RANGE(0, 1), "0.014", M4_DIGIT(3))
|
float SpotlightHighlightRatio;
|
// M4_ARRAY_DESC("Spotlight LumaRatio", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[0.3, 0.5, 0.8]", M4_DIGIT(3), M4_DYNAMIC(0))
|
float SpotlightLumaRatio[3];
|
// M4_ARRAY_DESC("Spotlight BlkCnt", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[0.2, 0.5, 0.25]", M4_DIGIT(3), M4_DYNAMIC(0))
|
float SpotlightBlkCnt[3];
|
} CalibDbV2_Af_ContrastZoom_t;
|
|
typedef struct CalibDbV2_Af_Contrast_s {
|
// M4_BOOL_DESC("enable", "0")
|
bool enable;
|
// M4_ENUM_DESC("SearchStrategy", "CalibDbV2_Af_SS_t", "CalibDbV2_CAM_AFM_FSS_ADAPTIVE_RANGE")
|
CalibDbV2_Af_SS_t Afss; /**< enumeration type for search strategy */
|
// M4_ENUM_DESC("FullDir", "CalibDbV2_Af_SearchDir_t", "CalibDbV2_CAM_AFM_ADAPTIVE_SEARCH")
|
CalibDbV2_Af_SearchDir_t FullDir;
|
// M4_ARRAY_DESC("FullRangeTbl", "u16", M4_SIZE(1,65), M4_RANGE(0,64), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *FullRangeTbl; /**< full range search table*/
|
int FullRangeTbl_len;
|
// M4_ENUM_DESC("AdaptiveDir", "CalibDbV2_Af_SearchDir_t", "CalibDbV2_CAM_AFM_ADAPTIVE_SEARCH")
|
CalibDbV2_Af_SearchDir_t AdaptiveDir;
|
// M4_ARRAY_DESC("AdaptRangeTbl", "u16", M4_SIZE(1,65), M4_RANGE(0,64), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
unsigned short *AdaptRangeTbl; /**< adaptive range search table*/
|
int AdaptRangeTbl_len;
|
// M4_ARRAY_DESC("TrigThers", "f32", M4_SIZE(1,32), M4_RANGE(0,1), "0", M4_DIGIT(3), M4_DYNAMIC(1))
|
float *TrigThers; /**< AF trigger threshold */
|
int TrigThers_len;
|
// M4_ARRAY_DESC("TrigThersFv", "f32", M4_SIZE(1,32), M4_RANGE(0,100000000000), "0", M4_DIGIT(0), M4_DYNAMIC(1))
|
float *TrigThersFv; /**< AF trigger threshold */
|
int TrigThersFv_len;
|
// M4_NUMBER_DESC("LumaTrigThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float LumaTrigThers;
|
// M4_NUMBER_DESC("ExpTrigThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float ExpTrigThers;
|
|
// M4_NUMBER_DESC("StableThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float StableThers; /**< AF stable threshold */
|
// M4_NUMBER_DESC("StableFrames", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short StableFrames; /**< AF stable status must hold frames */
|
// M4_NUMBER_DESC("StableTime", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0))
|
unsigned short StableTime; /**< AF stable status must hold time */
|
|
// M4_NUMBER_DESC("SceneDiffEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned char SceneDiffEnable;
|
// M4_NUMBER_DESC("SceneDiffThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float SceneDiffThers;
|
// M4_NUMBER_DESC("SceneDiffBlkThers", "u16", M4_RANGE(0,225), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short SceneDiffBlkThers;
|
// M4_NUMBER_DESC("CenterSceneDiffThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float CenterSceneDiffThers;
|
|
// M4_NUMBER_DESC("ValidMaxMinRatio", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float ValidMaxMinRatio;
|
// M4_NUMBER_DESC("ValidValueThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float ValidValueThers;
|
|
// M4_NUMBER_DESC("OutFocusValue", "f32", M4_RANGE(0,1000000), "0", M4_DIGIT(3),M4_HIDE(0))
|
float OutFocusValue; /**< out of focus vlaue*/
|
// M4_NUMBER_DESC("OutFocusPos", "u16", M4_RANGE(0,65), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short OutFocusPos; /**< out of focus position*/
|
|
// M4_NUMBER_DESC("WeightEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned char WeightEnable;
|
// M4_ARRAY_DESC("Weight", "u16", M4_SIZE(15,15), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
unsigned short Weight[225]; /**< weight */
|
|
// M4_NUMBER_DESC("SearchPauseLumaEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned char SearchPauseLumaEnable;
|
// M4_NUMBER_DESC("SearchPauseLumaThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float SearchPauseLumaThers;
|
// M4_NUMBER_DESC("StableFrames", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0))
|
unsigned short SearchLumaStableFrames;
|
// M4_NUMBER_DESC("SearchLumaStableThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float SearchLumaStableThers;
|
|
// M4_NUMBER_DESC("Stage1QuickFoundThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float Stage1QuickFoundThers;
|
// M4_NUMBER_DESC("Stage2QuickFoundThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float Stage2QuickFoundThers;
|
|
// M4_NUMBER_DESC("FlatValue", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0))
|
float FlatValue;
|
|
// M4_NUMBER_DESC("PointLightLumaTh", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short PointLightLumaTh; /**< point light luma threshold */
|
// M4_NUMBER_DESC("PointLightCntTh", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short PointLightCntTh; /**< point light count threshold */
|
|
// M4_STRUCT_DESC("ZoomConfig", "normal_ui_style")
|
CalibDbV2_Af_ContrastZoom_t ZoomCfg;
|
} CalibDbV2_Af_Contrast_t;
|
|
typedef struct CalibDbV2_Af_Laser_s {
|
// M4_BOOL_DESC("enable", "0")
|
bool enable;
|
// M4_ARRAY_DESC("vcmDot", "f32", M4_SIZE(1,7), M4_RANGE(0,64), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
float vcmDot[7];
|
// M4_ARRAY_DESC("distanceDot", "f32", M4_SIZE(1,7), M4_RANGE(0,65535), "0", M4_DIGIT(4), M4_DYNAMIC(0))
|
float distanceDot[7];
|
} CalibDbV2_Af_Laser_t;
|
|
typedef struct CalibDbV2_Af_Pdaf_fineSearch_s {
|
// M4_NUMBER_DESC("confidence", "u32", M4_RANGE(0,1000), "0", M4_DIGIT(0))
|
unsigned int confidence;
|
// M4_NUMBER_DESC("range", "s32", M4_RANGE(0,64), "0", M4_DIGIT(0))
|
int range;
|
// M4_NUMBER_DESC("stepPos", "s32", M4_RANGE(1,64), "1", M4_DIGIT(0))
|
int stepPos;
|
} CalibDbV2_Af_Pdaf_fineSearch_t;
|
|
typedef struct CalibDbV2_Af_PdafIsoPara_s {
|
// M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0))
|
int iso;
|
// M4_NUMBER_DESC("pdNoiseFactor", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float pdNoiseFactor;
|
// M4_NUMBER_DESC("pdConfdRatio1", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float pdConfdRatio1;
|
// M4_NUMBER_DESC("pdConfdRatio2", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float pdConfdRatio2;
|
// M4_NUMBER_DESC("pdNoiseBias", "f32", M4_RANGE(0,100), "0", M4_DIGIT(3),M4_HIDE(0))
|
float pdNoiseBias;
|
// M4_NUMBER_DESC("pdConfdRhresh", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float pdConfdThresh;
|
// M4_NUMBER_DESC("defocusPdThresh", "u16", M4_RANGE(0,1023), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short defocusPdThresh;
|
// M4_NUMBER_DESC("stablePdRatio", "f32", M4_RANGE(0,255), "0", M4_DIGIT(3),M4_HIDE(0))
|
float stablePdRatio;
|
// M4_NUMBER_DESC("stablePdOffset", "u16", M4_RANGE(0,1023), "0", M4_DIGIT(3),M4_HIDE(0))
|
unsigned short stablePdOffset;
|
// M4_NUMBER_DESC("stableCntRatio", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float stableCntRatio;
|
// M4_NUMBER_DESC("noconfCntThresh", "u16", M4_RANGE(0,255), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short noconfCntThresh;
|
// M4_STRUCT_LIST_DESC("fineSearchTbl", M4_SIZE(1,10), "normal_ui_style")
|
CalibDbV2_Af_Pdaf_fineSearch_t* fineSearchTbl;
|
int fineSearchTbl_len;
|
} CalibDbV2_Af_PdafIsoPara_t;
|
|
typedef struct CalibDbV2_Af_Pdaf_s {
|
// M4_BOOL_DESC("enable", "0")
|
bool enable;
|
// M4_NUMBER_DESC("pdVsCdDebug", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char pdVsCdDebug;
|
// M4_NUMBER_DESC("pdDumpDebug", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char pdDumpDebug;
|
// M4_NUMBER_DESC("pdDataBit", "u16", M4_RANGE(1,16), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short pdDataBit;
|
// M4_NUMBER_DESC("pdBlkLevel", "u16", M4_RANGE(1,1023), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short pdBlkLevel;
|
// M4_NUMBER_DESC("pdSearchRadius", "u16", M4_RANGE(0,32), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short pdSearchRadius;
|
// M4_NUMBER_DESC("pdMirrorInCalib", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char pdMirrorInCalib;
|
// M4_NUMBER_DESC("pdVsImgoutMirror", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char pdVsImgoutMirror;
|
// M4_NUMBER_DESC("pdWidth", "u16", M4_RANGE(0, 65535), "0", M4_DIGIT(0))
|
unsigned short pdWidth;
|
// M4_NUMBER_DESC("pdHeight", "u16", M4_RANGE(0, 65535), "0", M4_DIGIT(0))
|
unsigned short pdHeight;
|
// M4_NUMBER_DESC("pdConfdMwinFactor", "u16", M4_RANGE(0,225), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short pdConfdMwinFactor;
|
// M4_ARRAY_DESC("pdStepRatio", "f32", M4_SIZE(1,7), M4_RANGE(0,1), "0.5", M4_DIGIT(3), M4_DYNAMIC(0))
|
float pdStepRatio[7];
|
// M4_ARRAY_DESC("pdStepDefocus", "u16", M4_SIZE(1,7), M4_RANGE(0,1023), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
unsigned short pdStepDefocus[7];
|
// M4_STRUCT_LIST_DESC("pdIsoPara", M4_SIZE(1,16), "normal_ui_style")
|
CalibDbV2_Af_PdafIsoPara_t* pdIsoPara;
|
int pdIsoPara_len;
|
} CalibDbV2_Af_Pdaf_t;
|
|
typedef struct CalibDbV2_Af_VcmCfg_s {
|
// M4_NUMBER_DESC("start current", "s32", M4_RANGE(-1, 2048), "-1", M4_DIGIT(0))
|
int start_current;
|
// M4_NUMBER_DESC("rated current", "s32", M4_RANGE(-1, 2048), "-1", M4_DIGIT(0))
|
int rated_current;
|
// M4_NUMBER_DESC("step mode", "s32", M4_RANGE(-1, 1000), "-1", M4_DIGIT(0))
|
int step_mode;
|
// M4_NUMBER_DESC("extra delay", "s32", M4_RANGE(-10000,10000), "0", M4_DIGIT(0))
|
int extra_delay;
|
// M4_NUMBER_DESC("posture diff", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3))
|
float posture_diff;
|
} CalibDbV2_Af_VcmCfg_t;
|
|
typedef struct CalibDbV2_Af_MeasIsoCfg_s {
|
// M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0))
|
int iso;
|
// M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 255), "4", M4_DIGIT(0))
|
unsigned short afmThres;
|
// M4_ARRAY_MARK_DESC("Gamma_curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table")
|
unsigned short gammaY[17];
|
// M4_ARRAY_DESC("gaussWeight", "u8", M4_SIZE(1,3), M4_RANGE(0,128), "[16,14,14]", M4_DIGIT(0), M4_DYNAMIC(0))
|
unsigned char gaussWeight[3];
|
} CalibDbV2_Af_MeasIsoCfg_t;
|
|
typedef struct CalibDbV2_Af_DefCode_s {
|
// M4_NUMBER_DESC("code", "u8", M4_RANGE(0, 64), "0", M4_DIGIT(0))
|
unsigned char code;
|
} CalibDbV2_Af_DefCode_t;
|
|
typedef struct CalibDbV2_Af_FocusCode_s {
|
// M4_NUMBER_DESC("focus position", "f32", M4_RANGE(0, 1000000), "0", M4_DIGIT(3), M4_HIDE(1))
|
float pos;
|
// M4_ARRAY_DESC("focus code", "s16", M4_SIZE(1,5000), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1), M4_HIDE(1))
|
short *code;
|
int code_len;
|
} CalibDbV2_Af_FocusCode_t;
|
|
typedef struct CalibDbV2_Af_ZoomFocusTbl_s {
|
// M4_NUMBER_DESC("widemod deviate", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0))
|
int widemod_deviate;
|
// M4_NUMBER_DESC("telemod deviate", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0))
|
int telemod_deviate;
|
// M4_NUMBER_DESC("focus backward value", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0))
|
int focus_backval;
|
// M4_ARRAY_DESC("zoom move dot", "u32", M4_SIZE(1,32), M4_RANGE(0,1000000), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
int *zoom_move_dot;
|
int zoom_move_dot_len;
|
// M4_ARRAY_DESC("zoom move step", "u32", M4_SIZE(1,32), M4_RANGE(0,1000000), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
int *zoom_move_step;
|
int zoom_move_step_len;
|
// M4_ARRAY_DESC("focal length", "f32", M4_SIZE(1,5000), M4_RANGE(0,10000), "0", M4_DIGIT(3), M4_DYNAMIC(1), M4_HIDE(1))
|
float *focal_length;
|
int focal_length_len;
|
// M4_ARRAY_DESC("zoom code", "s16", M4_SIZE(1,5000), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1), M4_HIDE(1))
|
short *zoomcode;
|
int zoomcode_len;
|
// M4_STRUCT_LIST_DESC("focus code", M4_SIZE_DYNAMIC, "normal_ui_style", M4_HIDE(1))
|
CalibDbV2_Af_FocusCode_t *focuscode;
|
int focuscode_len;
|
|
// M4_ARRAY_DESC("zoom search table", "s32", M4_SIZE(1,100), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
int *ZoomSearchTbl;
|
// M4_NUMBER_DESC("zoom search table number", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0))
|
int ZoomSearchTbl_len;
|
// M4_NUMBER_DESC("zoom search reference curve", "u32", M4_RANGE(0, 32), "0", M4_DIGIT(0))
|
int ZoomSearchRefCurveIdx;
|
// M4_NUMBER_DESC("zoom search margin", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0))
|
int FocusSearchMargin;
|
// M4_ARRAY_DESC("zoom search plus range", "u32", M4_SIZE(1,100), M4_RANGE(0,32767), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
int *FocusSearchPlusRange;
|
int FocusSearchPlusRange_len;
|
// M4_NUMBER_DESC("focus stage1 step", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0))
|
int FocusStage1Step;
|
// M4_NUMBER_DESC("quickFndRate", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0))
|
float QuickFndRate;
|
// M4_NUMBER_DESC("quickFndMinFv", "f32", M4_RANGE(0,2147483647), "0", M4_DIGIT(0),M4_HIDE(0))
|
float QuickFndMinFv;
|
// M4_NUMBER_DESC("search zoom range", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0))
|
int searchZoomRange;
|
// M4_NUMBER_DESC("search focus range", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0))
|
int searchFocusRange;
|
// M4_NUMBER_DESC("search emax", "f32", M4_RANGE(0,100000), "0", M4_DIGIT(3),M4_HIDE(0))
|
float searchEmax;
|
// M4_NUMBER_DESC("search eavg", "f32", M4_RANGE(0,100000), "0", M4_DIGIT(3),M4_HIDE(0))
|
float searchEavg;
|
|
// M4_NUMBER_DESC("IsZoomFocusRec", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char IsZoomFocusRec;
|
// M4_STRING_DESC("ZoomInfoDir", M4_SIZE(1,1), M4_RANGE(0, 64), "/data/", M4_DYNAMIC(0))
|
char *ZoomInfoDir;
|
} CalibDbV2_Af_ZoomFocusTbl_t;
|
|
typedef struct CalibDb_Af_LdgParam_s {
|
// M4_NUMBER_DESC("enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char enable;
|
// M4_NUMBER_DESC("ldg xl", "u32", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
int ldg_xl;
|
// M4_NUMBER_DESC("ldg yl", "u32", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
int ldg_yl;
|
// M4_NUMBER_DESC("ldg kl", "u32", M4_RANGE(0, 2147483647), "0", M4_DIGIT(0))
|
int ldg_kl;
|
// M4_NUMBER_DESC("ldg xh", "u32", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
int ldg_xh;
|
// M4_NUMBER_DESC("ldg yh", "u32", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
int ldg_yh;
|
// M4_NUMBER_DESC("ldg kh", "u32", M4_RANGE(0, 2147483647), "0", M4_DIGIT(0))
|
int ldg_kh;
|
} CalibDbV2_Af_LdgParam_t;
|
|
typedef struct CalibDb_Af_HighLightParam_s {
|
// M4_NUMBER_DESC("ther0", "u32", M4_RANGE(0, 255), "245", M4_DIGIT(0))
|
int ther0;
|
// M4_NUMBER_DESC("ther1", "u32", M4_RANGE(0, 255), "200", M4_DIGIT(0))
|
int ther1;
|
} CalibDbV2_Af_HighLightParam_t;
|
|
typedef struct CalibDbV2_AF_Tuning_Para_s {
|
// M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AF_MODE_CONTINUOUS_PICTURE")
|
CalibDbV2_AF_MODE_t af_mode;
|
// M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_h_offs;
|
// M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_v_offs;
|
// M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_h_size;
|
// M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_v_size;
|
// M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_h_offs;
|
// M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_v_offs;
|
// M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_h_size;
|
// M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_v_size;
|
// M4_STRUCT_DESC("fixed mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t fixed_mode;
|
// M4_STRUCT_DESC("macro mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t macro_mode;
|
// M4_STRUCT_DESC("infinity mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t infinity_mode;
|
// M4_STRUCT_DESC("ldg param", "normal_ui_style")
|
CalibDbV2_Af_LdgParam_t ldg_param;
|
// M4_STRUCT_DESC("high light", "normal_ui_style")
|
CalibDbV2_Af_HighLightParam_t highlight;
|
// M4_STRUCT_DESC("contrast af", "normal_ui_style")
|
CalibDbV2_Af_Contrast_t contrast_af;
|
// M4_STRUCT_DESC("video contrast af", "normal_ui_style")
|
CalibDbV2_Af_Contrast_t video_contrast_af;
|
// M4_STRUCT_DESC("laser af", "normal_ui_style")
|
CalibDbV2_Af_Laser_t laser_af;
|
// M4_STRUCT_DESC("pdaf", "normal_ui_style")
|
CalibDbV2_Af_Pdaf_t pdaf;
|
// M4_STRUCT_DESC("vcmcfg", "normal_ui_style")
|
CalibDbV2_Af_VcmCfg_t vcmcfg;
|
// M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style")
|
CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl;
|
// M4_STRUCT_LIST_DESC("meas iso config", M4_SIZE(1,13), "normal_ui_style")
|
CalibDbV2_Af_MeasIsoCfg_t measiso_cfg[CALIBDBV2_MAX_ISO_LEVEL];
|
} CalibDbV2_AF_Tuning_Para_t;
|
|
typedef struct {
|
// M4_STRUCT_DESC("TuningPara", "normal_ui_style")
|
CalibDbV2_AF_Tuning_Para_t TuningPara;
|
} CalibDbV2_AF_t;
|
|
typedef struct CalibDbV2_AfV30_MeasCfg_s {
|
// M4_NUMBER_DESC("table index", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0))
|
unsigned int tbl_idx;
|
// M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 65535), "4", M4_DIGIT(0))
|
unsigned short afmThres;
|
// M4_ARRAY_MARK_DESC("Gamma Curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table")
|
unsigned short gammaY[17];
|
// M4_NUMBER_DESC("v1fv reliable", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(3))
|
float v1fv_reliable;
|
// M4_NUMBER_DESC("v2fv reliable", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(3))
|
float v2fv_reliable;
|
// M4_NUMBER_DESC("v1 fir sel", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char v1_fir_sel;
|
// M4_ARRAY_DESC("v1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "0", M4_DIGIT(3), M4_DYNAMIC(0))
|
float v1_band[2];
|
// M4_ARRAY_DESC("vertical first iir filter", "s16", M4_SIZE(1,9), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short v1_iir_coe[9];
|
// M4_ARRAY_DESC("vertical first fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short v1_fir_coe[3];
|
// M4_ARRAY_DESC("v2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "0", M4_DIGIT(3), M4_DYNAMIC(0))
|
float v2_band[2];
|
// M4_ARRAY_DESC("vertical second iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short v2_iir_coe[3];
|
// M4_ARRAY_DESC("vertical second fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short v2_fir_coe[3];
|
// M4_ARRAY_DESC("h1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "0", M4_DIGIT(3), M4_DYNAMIC(0))
|
float h1_band[2];
|
// M4_ARRAY_DESC("horizontal first iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short h1_iir1_coe[6];
|
// M4_ARRAY_DESC("horizontal first iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short h1_iir2_coe[6];
|
// M4_ARRAY_DESC("h2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "0", M4_DIGIT(3), M4_DYNAMIC(0))
|
float h2_band[2];
|
// M4_ARRAY_DESC("horizontal second iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short h2_iir1_coe[6];
|
// M4_ARRAY_DESC("horizontal second iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "0", M4_DIGIT(0), M4_DYNAMIC(0))
|
short h2_iir2_coe[6];
|
// M4_NUMBER_DESC("ldg enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0))
|
unsigned char ldg_en;
|
// M4_NUMBER_DESC("vertical minluma thresh", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ve_ldg_lumth_l;
|
// M4_NUMBER_DESC("vertical gain for minluma", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ve_ldg_gain_l;
|
// M4_NUMBER_DESC("vertical slope low", "u16", M4_RANGE(0, 8191), "0", M4_DIGIT(0))
|
unsigned short ve_ldg_gslp_l;
|
// M4_NUMBER_DESC("vertical maxluma thresh", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ve_ldg_lumth_h;
|
// M4_NUMBER_DESC("vertical gain for maxluma", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ve_ldg_gain_h;
|
// M4_NUMBER_DESC("vertical slope high", "u16", M4_RANGE(0, 8191), "0", M4_DIGIT(0))
|
unsigned short ve_ldg_gslp_h;
|
// M4_NUMBER_DESC("horizontal minluma thresh", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ho_ldg_lumth_l;
|
// M4_NUMBER_DESC("horizontal gain for minluma", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ho_ldg_gain_l;
|
// M4_NUMBER_DESC("horizontal slope low", "u16", M4_RANGE(0, 8191), "0", M4_DIGIT(0))
|
unsigned short ho_ldg_gslp_l;
|
// M4_NUMBER_DESC("horizontal maxluma thresh", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ho_ldg_lumth_h;
|
// M4_NUMBER_DESC("horizontal gain for maxluma", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0))
|
unsigned char ho_ldg_gain_h;
|
// M4_NUMBER_DESC("horizontal slope high", "u16", M4_RANGE(0, 8191), "0", M4_DIGIT(0))
|
unsigned short ho_ldg_gslp_h;
|
// M4_NUMBER_DESC("vertical fv thresh", "u16", M4_RANGE(0, 4095), "0", M4_DIGIT(0))
|
unsigned short v_fv_thresh;
|
// M4_NUMBER_DESC("horizontal fv thresh", "u16", M4_RANGE(0, 4095), "0", M4_DIGIT(0))
|
unsigned short h_fv_thresh;
|
// M4_NUMBER_DESC("highlight thresh", "u16", M4_RANGE(0, 4095), "0", M4_DIGIT(0))
|
unsigned short highlit_thresh;
|
// M4_NUMBER_DESC("vertical fv ratio", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3))
|
float v_fv_ratio;
|
} CalibDbV2_AfV30_MeasCfg_t;
|
|
typedef struct CalibDbV2_AfV30_IsoMeasCfg_s {
|
// M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(1), "index2")
|
float iso;
|
// M4_NUMBER_DESC("meas table index", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0))
|
int idx;
|
// M4_NUMBER_DESC("spotlight scene meas table index", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0))
|
int spotlt_scene_idx;
|
} CalibDbV2_AfV30_IsoMeasCfg_t;
|
|
typedef struct CalibDbV2_AfV30_ZoomMeas_s {
|
// M4_NUMBER_MARK_DESC("zoom index", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0), "index1")
|
int zoom_idx;
|
// M4_STRUCT_LIST_DESC("meas iso config", M4_SIZE(1,13), "double_index_list")
|
CalibDbV2_AfV30_IsoMeasCfg_t measiso[CALIBDBV2_MAX_ISO_LEVEL];
|
} CalibDbV2_AfV30_ZoomMeas_t;
|
|
typedef struct CalibDbV2_AFV30_Tuning_Para_s {
|
// M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AF_MODE_CONTINUOUS_PICTURE")
|
CalibDbV2_AF_MODE_t af_mode;
|
// M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_h_offs;
|
// M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_v_offs;
|
// M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_h_size;
|
// M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short win_v_size;
|
// M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_h_offs;
|
// M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_v_offs;
|
// M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_h_size;
|
// M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0))
|
unsigned short video_win_v_size;
|
// M4_STRUCT_DESC("fixed mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t fixed_mode;
|
// M4_STRUCT_DESC("macro mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t macro_mode;
|
// M4_STRUCT_DESC("infinity mode", "normal_ui_style")
|
CalibDbV2_Af_DefCode_t infinity_mode;
|
// M4_STRUCT_DESC("contrast af", "normal_ui_style")
|
CalibDbV2_Af_Contrast_t contrast_af;
|
// M4_STRUCT_DESC("video contrast af", "normal_ui_style")
|
CalibDbV2_Af_Contrast_t video_contrast_af;
|
// M4_STRUCT_DESC("laser af", "normal_ui_style")
|
CalibDbV2_Af_Laser_t laser_af;
|
// M4_STRUCT_DESC("pdaf", "normal_ui_style")
|
CalibDbV2_Af_Pdaf_t pdaf;
|
// M4_STRUCT_DESC("vcmcfg", "normal_ui_style")
|
CalibDbV2_Af_VcmCfg_t vcmcfg;
|
// M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style")
|
CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl;
|
// M4_STRUCT_LIST_DESC("zoom meas", M4_SIZE_DYNAMIC, "double_index_list")
|
CalibDbV2_AfV30_ZoomMeas_t *zoom_meas;
|
int zoom_meas_len;
|
// M4_STRUCT_LIST_DESC("meas config table", M4_SIZE_DYNAMIC, "normal_ui_style")
|
CalibDbV2_AfV30_MeasCfg_t *meascfg_tbl;
|
int meascfg_tbl_len;
|
} CalibDbV2_AFV30_Tuning_Para_t;
|
|
typedef struct {
|
// M4_STRUCT_DESC("TuningPara", "normal_ui_style")
|
CalibDbV2_AFV30_Tuning_Para_t TuningPara;
|
} CalibDbV2_AFV30_t;
|
|
RKAIQ_END_DECLARE
|
|
#endif
|