flash_tuning_custom_cct.cpp(附解析笔记)

#define LOG_TAG "flash_tuning_custom_cct.cpp"

#include "string.h"

#include "camera_custom_nvram.h"

#include "camera_custom_types.h"

#include "camera_custom_AEPlinetable.h"

#include <cutils/xlog.h>

#include "flash_feature.h"

#include "flash_param.h"

#include "flash_tuning_custom.h"

#include <kd_camera_feature.h>

//==============================================================================

//

//==============================================================================

int cust_fillDefaultStrobeNVRam_main (void* data)

{

NVRAM_CAMERA_STROBE_STRUCT* p;

p = (NVRAM_CAMERA_STROBE_STRUCT*)data;

static short engTab[]={

888,2144,3297,4403,5434,6390,7303,8217,9012,9999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

};

memcpy(p->engTab.yTab, engTab, 1600*sizeof(short));

p->u4Version = NVRAM_CAMERA_STROBE_FILE_VERSION;

p->tuningPara[0].yTarget = 228;    //前景亮度的目标值  值↑前景亮度↑  default value=188

p->tuningPara[0].fgWIncreaseLevelbySize = 10;   //Level↑ size小的前景对亮度影响越大   Range:-10~10

p->tuningPara[0].fgWIncreaseLevelbyRef = 5;     //Level↑ 反射率↑的前景对亮度影响越大   Range:-10~10

p->tuningPara[0].ambientRefAccuracyRatio = 5;   //影响环境反射率统计精准度   Ratio↓ accuracy精准度↑   AE-EV frame num↑    default value=5   5/256=2%

p->tuningPara[0].flashRefAccuracyRatio = 0;     //影响预闪反射率统计精准度   Ratio↓ accuracy精准度↑   preflash-EV frame num↑    default value=1   1/256=0.4%

p->tuningPara[0].backlightAccuracyRatio = 18;   //背光统计精准度   Ratio↓ accuracy精准度↑   preflash+EV frame num↑    default value=18   18/256=0.7%

p->tuningPara[0].backlightUnderY = 40;   //判断为背光的亮度条件     亮度<backlightUnderY为背光

p->tuningPara[0].backlightWeakRefRatio = 32;    //影响判为背光的Ratio    Ratio↓ 判为背光的概率↓   default value=32   32/256=12.5%

p->tuningPara[0].safetyExp = 66644;   //打闪时期望的快门  值↑  背景亮度↑ 越容易手震    default value=33322 us

p->tuningPara[0].maxUsableISO = 1200;     //ISO↑ 背景亮度↑ 杂讯容易↑  打闪时希望使用的ISO    default value=680

p->tuningPara[0].yTargetWeight = 0;    //Flash target<Preview target时,Flash target和Preview target混合权重   default value=0   即完全使用Preview  若default value=256 完全使用FlashWeight↑,参考Preview target越少,偏向使用Flash target(打闪可能比Preview暗)

p->tuningPara[0].lowReflectanceThreshold = 13;    //低反射率景判断,判为低反射率,会使用  Preview exposure setting + Max duty flash   值↓越不容易判为低反射率景   default value=13  13/256=5%

p->tuningPara[0].flashReflectanceWeight = 0;     //Weight↑ 反射率↑判断为前景概率↑

p->tuningPara[0].bgSuppressMaxDecreaseEV = 20;   //Base BV从Preview -EV的最大范围    default value=20   unit:0.1EV

p->tuningPara[0].bgSuppressMaxOverExpRatio = 6;   //Ratio↓ 背景过曝光区↓ 最大容忍的过曝光比率   default value=6   6/256=2%   例:对着镜子拍摄场景

p->tuningPara[0].fgEnhanceMaxIncreaseEV = 50;     //最高可增加EV 到Preview EV+fgEnhanceMaxIncreaseEV/10

p->tuningPara[0].fgEnhanceMaxOverExpRatio = 2;    //Ratio↓ 背景过曝光区↓ 背光下前景亮度↓    可以容忍+EV增加额外过曝区的比例,用来控制背光景的过曝程度  default value=6   6/256=2%

p->tuningPara[0].isFollowCapPline = 0;       //置1:使用Capture Pline 置0:使用Flash Pline(AETABLE_STROBE)

p->tuningPara[0].histStretchMaxFgYTarget = 300;    //避免画面过曝光很严重 HS的前景亮度上限      default value=266

p->tuningPara[0].histStretchBrightestYTarget = 480;     //值↑ 加亮前景↑  default value=328

p->tuningPara[0].fgSizeShiftRatio = 0;     //前后景判断偏移  值↑ 前景区域↓全面性的影响,不建议修改    default value=0   means 0/256=0%

p->tuningPara[0].backlitPreflashTriggerLV = 90;     //背光判断启动LV  当LV>backlitPreflashTriggerLV启动Preflash背光判断机制default value=90   unit=0.1LV

p->tuningPara[0].backlitMinYTarget = 90;      //前景最低需要达到的亮度,可确保前景的亮度,为了达到此亮度过曝比率可超过    值↑ 背光前景亮度↑ 过曝区域↑   default value=100

////////////////优先权:fgEnhanceMaxIncreaseEV>backlitMinYTarget>fgEnhanceMaxOverExpRatio/////////////////////////////////////////////////////////////

////////////////在Max duty能量很小时,backlitMinYTarget需摄小,不燃容易造成画面过曝光(Low Battery与Burst mode),建议Auto mode 下设定较小值,Force on mode才设较大///////////////

/////////////// Preflash判定为背光景时,会增加EV画面会有变亮过曝的情形/////////////////////////////////////////////////////////////////////////////////////

p->tuningPara[1].yTarget = 228;

p->tuningPara[1].fgWIncreaseLevelbySize = 10;

p->tuningPara[1].fgWIncreaseLevelbyRef = 5;

p->tuningPara[1].ambientRefAccuracyRatio = 5;

p->tuningPara[1].flashRefAccuracyRatio = 0;

p->tuningPara[1].backlightAccuracyRatio = 18;

p->tuningPara[1].backlightUnderY = 40;

p->tuningPara[1].backlightWeakRefRatio = 32;

p->tuningPara[1].safetyExp = 66644;

p->tuningPara[1].maxUsableISO = 1200;

p->tuningPara[1].yTargetWeight = 0;

p->tuningPara[1].lowReflectanceThreshold = 13;

p->tuningPara[1].flashReflectanceWeight = 0;

p->tuningPara[1].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[1].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[1].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[1].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[1].isFollowCapPline = 1;

p->tuningPara[1].histStretchMaxFgYTarget = 300;

p->tuningPara[1].histStretchBrightestYTarget = 480;

p->tuningPara[1].fgSizeShiftRatio = 0;

p->tuningPara[1].backlitPreflashTriggerLV = 90;

p->tuningPara[1].backlitMinYTarget = 90;

p->tuningPara[2].yTarget = 228;

p->tuningPara[2].fgWIncreaseLevelbySize = 10;

p->tuningPara[2].fgWIncreaseLevelbyRef = 5;

p->tuningPara[2].ambientRefAccuracyRatio = 5;

p->tuningPara[2].flashRefAccuracyRatio = 0;

p->tuningPara[2].backlightAccuracyRatio = 18;

p->tuningPara[2].backlightUnderY = 40;

p->tuningPara[2].backlightWeakRefRatio = 32;

p->tuningPara[2].safetyExp = 66644;

p->tuningPara[2].maxUsableISO = 1200;

p->tuningPara[2].yTargetWeight = 0;

p->tuningPara[2].lowReflectanceThreshold = 13;

p->tuningPara[2].flashReflectanceWeight = 0;

p->tuningPara[2].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[2].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[2].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[2].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[2].isFollowCapPline = 1;

p->tuningPara[2].histStretchMaxFgYTarget = 300;

p->tuningPara[2].histStretchBrightestYTarget = 480;

p->tuningPara[2].fgSizeShiftRatio = 0;

p->tuningPara[2].backlitPreflashTriggerLV = 90;

p->tuningPara[2].backlitMinYTarget = 90;

p->tuningPara[3].yTarget = 228;

p->tuningPara[3].fgWIncreaseLevelbySize = 10;

p->tuningPara[3].fgWIncreaseLevelbyRef = 5;

p->tuningPara[3].ambientRefAccuracyRatio = 5;

p->tuningPara[3].flashRefAccuracyRatio = 0;

p->tuningPara[3].backlightAccuracyRatio = 18;

p->tuningPara[3].backlightUnderY = 40;

p->tuningPara[3].backlightWeakRefRatio = 32;

p->tuningPara[3].safetyExp = 66644;

p->tuningPara[3].maxUsableISO = 1200;

p->tuningPara[3].yTargetWeight = 0;

p->tuningPara[3].lowReflectanceThreshold = 13;

p->tuningPara[3].flashReflectanceWeight = 0;

p->tuningPara[3].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[3].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[3].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[3].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[3].isFollowCapPline = 1;

p->tuningPara[3].histStretchMaxFgYTarget = 300;

p->tuningPara[3].histStretchBrightestYTarget = 480;

p->tuningPara[3].fgSizeShiftRatio = 0;

p->tuningPara[3].backlitPreflashTriggerLV = 90;

p->tuningPara[3].backlitMinYTarget = 90;

p->tuningPara[4].yTarget = 228;

p->tuningPara[4].fgWIncreaseLevelbySize = 10;

p->tuningPara[4].fgWIncreaseLevelbyRef = 5;

p->tuningPara[4].ambientRefAccuracyRatio = 5;

p->tuningPara[4].flashRefAccuracyRatio = 0;

p->tuningPara[4].backlightAccuracyRatio = 18;

p->tuningPara[4].backlightUnderY = 40;

p->tuningPara[4].backlightWeakRefRatio = 32;

p->tuningPara[4].safetyExp = 66644;

p->tuningPara[4].maxUsableISO = 1200;

p->tuningPara[4].yTargetWeight = 0;

p->tuningPara[4].lowReflectanceThreshold = 13;

p->tuningPara[4].flashReflectanceWeight = 0;

p->tuningPara[4].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[4].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[4].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[4].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[4].isFollowCapPline = 1;

p->tuningPara[4].histStretchMaxFgYTarget = 300;

p->tuningPara[4].histStretchBrightestYTarget = 480;

p->tuningPara[4].fgSizeShiftRatio = 0;

p->tuningPara[4].backlitPreflashTriggerLV = 90;

p->tuningPara[4].backlitMinYTarget = 90;

p->tuningPara[5].yTarget = 228;

p->tuningPara[5].fgWIncreaseLevelbySize = 10;

p->tuningPara[5].fgWIncreaseLevelbyRef = 5;

p->tuningPara[5].ambientRefAccuracyRatio = 5;

p->tuningPara[5].flashRefAccuracyRatio = 0;

p->tuningPara[5].backlightAccuracyRatio = 18;

p->tuningPara[5].backlightUnderY = 40;

p->tuningPara[5].backlightWeakRefRatio = 32;

p->tuningPara[5].safetyExp = 66644;

p->tuningPara[5].maxUsableISO = 1200;

p->tuningPara[5].yTargetWeight = 0;

p->tuningPara[5].lowReflectanceThreshold = 13;

p->tuningPara[5].flashReflectanceWeight = 0;

p->tuningPara[5].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[5].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[5].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[5].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[5].isFollowCapPline = 1;

p->tuningPara[5].histStretchMaxFgYTarget = 300;

p->tuningPara[5].histStretchBrightestYTarget = 480;

p->tuningPara[5].fgSizeShiftRatio = 0;

p->tuningPara[5].backlitPreflashTriggerLV = 90;

p->tuningPara[5].backlitMinYTarget = 90;

p->tuningPara[6].yTarget = 228;

p->tuningPara[6].fgWIncreaseLevelbySize = 10;

p->tuningPara[6].fgWIncreaseLevelbyRef = 5;

p->tuningPara[6].ambientRefAccuracyRatio = 5;

p->tuningPara[6].flashRefAccuracyRatio = 0;

p->tuningPara[6].backlightAccuracyRatio = 18;

p->tuningPara[6].backlightUnderY = 40;

p->tuningPara[6].backlightWeakRefRatio = 32;

p->tuningPara[6].safetyExp = 66644;

p->tuningPara[6].maxUsableISO = 1200;

p->tuningPara[6].yTargetWeight = 0;

p->tuningPara[6].lowReflectanceThreshold = 13;

p->tuningPara[6].flashReflectanceWeight = 0;

p->tuningPara[6].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[6].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[6].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[6].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[6].isFollowCapPline = 1;

p->tuningPara[6].histStretchMaxFgYTarget = 300;

p->tuningPara[6].histStretchBrightestYTarget = 480;

p->tuningPara[6].fgSizeShiftRatio = 0;

p->tuningPara[6].backlitPreflashTriggerLV = 90;

p->tuningPara[6].backlitMinYTarget = 90;

p->tuningPara[7].yTarget = 228;

p->tuningPara[7].fgWIncreaseLevelbySize = 10;

p->tuningPara[7].fgWIncreaseLevelbyRef = 5;

p->tuningPara[7].ambientRefAccuracyRatio = 5;

p->tuningPara[7].flashRefAccuracyRatio = 0;

p->tuningPara[7].backlightAccuracyRatio = 18;

p->tuningPara[7].backlightUnderY = 40;

p->tuningPara[7].backlightWeakRefRatio = 32;

p->tuningPara[7].safetyExp = 66644;

p->tuningPara[7].maxUsableISO = 1200;

p->tuningPara[7].yTargetWeight = 0;

p->tuningPara[7].lowReflectanceThreshold = 13;

p->tuningPara[7].flashReflectanceWeight = 0;

p->tuningPara[7].bgSuppressMaxDecreaseEV = 20;

p->tuningPara[7].bgSuppressMaxOverExpRatio = 6;

p->tuningPara[7].fgEnhanceMaxIncreaseEV = 50;

p->tuningPara[7].fgEnhanceMaxOverExpRatio = 2;

p->tuningPara[7].isFollowCapPline = 1;

p->tuningPara[7].histStretchMaxFgYTarget = 300;

p->tuningPara[7].histStretchBrightestYTarget = 480;

p->tuningPara[7].fgSizeShiftRatio = 0;

p->tuningPara[7].backlitPreflashTriggerLV = 90;

p->tuningPara[7].backlitMinYTarget = 90;

///////////////////各场景的Flash auto与Flash force on,可个别设定不同的Flash AE参数///////////////////////////////////////

p->paraIdxForceOn[0] = 1;  //default

p->paraIdxForceOn[1] = 0;  //LIB3A_AE_SCENE_OFF

p->paraIdxForceOn[2] = 0;  //LIB3A_AE_SCENE_AUTO

p->paraIdxForceOn[3] = 1;  //LIB3A_AE_SCENE_NIGHT

p->paraIdxForceOn[4] = 1;  //LIB3A_AE_SCENE_ACTION

p->paraIdxForceOn[5] = 1;  //LIB3A_AE_SCENE_BEACH

p->paraIdxForceOn[6] = 1;  //LIB3A_AE_SCENE_CANDLELIGHT

p->paraIdxForceOn[7] = 1;  //LIB3A_AE_SCENE_FIREWORKS

p->paraIdxForceOn[8] = 1;  //LIB3A_AE_SCENE_LANDSCAPE

p->paraIdxForceOn[9] = 1;  //LIB3A_AE_SCENE_PORTRAIT

p->paraIdxForceOn[10] = 1;  //LIB3A_AE_SCENE_NIGHT_PORTRAIT

p->paraIdxForceOn[11] = 1;  //LIB3A_AE_SCENE_PARTY

p->paraIdxForceOn[12] = 1;  //LIB3A_AE_SCENE_SNOW

p->paraIdxForceOn[13] = 1;  //LIB3A_AE_SCENE_SPORTS

p->paraIdxForceOn[14] = 1;  //LIB3A_AE_SCENE_STEADYPHOTO

p->paraIdxForceOn[15] = 1;  //LIB3A_AE_SCENE_SUNSET

p->paraIdxForceOn[16] = 1;  //LIB3A_AE_SCENE_THEATRE

p->paraIdxForceOn[17] = 1;  //LIB3A_AE_SCENE_ISO_ANTI_SHAKE

p->paraIdxForceOn[18] = 1;  //LIB3A_AE_SCENE_BACKLIGHT

p->paraIdxAuto[0] = 1;  //default

p->paraIdxAuto[1] = 0;  //LIB3A_AE_SCENE_OFF

p->paraIdxAuto[2] = 0;  //LIB3A_AE_SCENE_AUTO

p->paraIdxAuto[3] = 1;  //LIB3A_AE_SCENE_NIGHT

p->paraIdxAuto[4] = 1;  //LIB3A_AE_SCENE_ACTION

p->paraIdxAuto[5] = 1;  //LIB3A_AE_SCENE_BEACH

p->paraIdxAuto[6] = 1;  //LIB3A_AE_SCENE_CANDLELIGHT

p->paraIdxAuto[7] = 1;  //LIB3A_AE_SCENE_FIREWORKS

p->paraIdxAuto[8] = 1;  //LIB3A_AE_SCENE_LANDSCAPE

p->paraIdxAuto[9] = 1;  //LIB3A_AE_SCENE_PORTRAIT

p->paraIdxAuto[10] = 1;  //LIB3A_AE_SCENE_NIGHT_PORTRAIT

p->paraIdxAuto[11] = 1;  //LIB3A_AE_SCENE_PARTY

p->paraIdxAuto[12] = 1;  //LIB3A_AE_SCENE_SNOW

p->paraIdxAuto[13] = 1;  //LIB3A_AE_SCENE_SPORTS

p->paraIdxAuto[14] = 1;  //LIB3A_AE_SCENE_STEADYPHOTO

p->paraIdxAuto[15] = 1;  //LIB3A_AE_SCENE_SUNSET

p->paraIdxAuto[16] = 1;  //LIB3A_AE_SCENE_THEATRE

p->paraIdxAuto[17] = 1;  //LIB3A_AE_SCENE_ISO_ANTI_SHAKE

p->paraIdxAuto[18] = 1;  //LIB3A_AE_SCENE_BACKLIGHT

//--------------------

//eng level

//index mode

//torch

p->engLevel.torchDuty = 1;     //长亮模式闪光灯强度(手电筒模式)

p->engLevel.torchDutyEx[0] = 0;

p->engLevel.torchDutyEx[1] = 0;

p->engLevel.torchDutyEx[2] = 0;

p->engLevel.torchDutyEx[3] = 0;

p->engLevel.torchDutyEx[4] = 0;

p->engLevel.torchDutyEx[5] = 0;

p->engLevel.torchDutyEx[6] = 0;

p->engLevel.torchDutyEx[7] = 0;

p->engLevel.torchDutyEx[8] = 0;

p->engLevel.torchDutyEx[9] = 0;

p->engLevel.torchDutyEx[10] = 0;

p->engLevel.torchDutyEx[11] = 0;

p->engLevel.torchDutyEx[12] = 0;

p->engLevel.torchDutyEx[13] = 0;

p->engLevel.torchDutyEx[14] = 0;

p->engLevel.torchDutyEx[15] = 0;

p->engLevel.torchDutyEx[16] = 0;

p->engLevel.torchDutyEx[17] = 0;

p->engLevel.torchDutyEx[18] = 0;

p->engLevel.torchDutyEx[19] = 0;

//af

p->engLevel.afDuty = 1;     //对焦辅助灯闪光灯强度 (补光模式)

//pf, mf, normal

p->engLevel.pfDuty = 1;     //预闪强度

p->engLevel.mfDutyMax = 9;  //主闪最高可用强度

p->engLevel.mfDutyMin = 0;  //主闪对低可用强度

//low bat     //避免低电量打闪导致手机关机

p->engLevel.IChangeByVBatEn = 0;  //置1 启动低电压模式,低电量时允许关闭闪光灯

p->engLevel.vBatL = 3600;    //低电量门限值(ml)  当前电压< vBatL(ml)才会生效

p->engLevel.pfDutyL = 1;     //低电压预闪强度

p->engLevel.mfDutyMaxL = 2;   //低电压主闪最高可用强度

p->engLevel.mfDutyMinL = 0;   //低电压主闪最低可用强度

//burst setting

p->engLevel.IChangeByBurstEn = 1;    //置1:连拍时使用低电压模式

p->engLevel.pfDutyB = 1;     //连拍Burst预闪强度

p->engLevel.mfDutyMaxB = 3;  //连拍Burst主闪最高可用强度

p->engLevel.mfDutyMinB = 0;  //连拍Burst主闪最低可用强度

//high current setting   //保护机制

p->engLevel.decSysIAtHighEn = 1;   //置1:Duty High时降系统电流

p->engLevel.dutyH = 8;     //Duty>dutyH降系统电流  例:停止闪光灯

p->engLevelLT.torchDuty = 0;   //额外存储19组torch mode duty设定   客户可自行program来更换Torch duty   例:依照闪光灯温度降低Torch mode duty功能

p->engLevelLT.torchDutyEx[0] = 0;

p->engLevelLT.torchDutyEx[1] = 0;

p->engLevelLT.torchDutyEx[2] = 0;

p->engLevelLT.torchDutyEx[3] = 0;

p->engLevelLT.torchDutyEx[4] = 0;

p->engLevelLT.torchDutyEx[5] = 0;

p->engLevelLT.torchDutyEx[6] = 0;

p->engLevelLT.torchDutyEx[7] = 0;

p->engLevelLT.torchDutyEx[8] = 0;

p->engLevelLT.torchDutyEx[9] = 0;

p->engLevelLT.torchDutyEx[10] = 0;

p->engLevelLT.torchDutyEx[11] = 0;

p->engLevelLT.torchDutyEx[12] = 0;

p->engLevelLT.torchDutyEx[13] = 0;

p->engLevelLT.torchDutyEx[14] = 0;

p->engLevelLT.torchDutyEx[15] = 0;

p->engLevelLT.torchDutyEx[16] = 0;

p->engLevelLT.torchDutyEx[17] = 0;

p->engLevelLT.torchDutyEx[18] = 0;

p->engLevelLT.torchDutyEx[19] = 0;

p->engLevelLT.afDuty = 0;

p->engLevelLT.pfDuty = 0;

p->engLevelLT.mfDutyMax = 0;

p->engLevelLT.mfDutyMin = 0;

p->engLevelLT.pfDutyL = 0;

p->engLevelLT.mfDutyMaxL = 0;

p->engLevelLT.mfDutyMinL = 0;

p->engLevelLT.pfDutyB = 0;

p->engLevelLT.mfDutyMaxB = 0;

p->engLevelLT.mfDutyMinB = 0;

p->dualTuningPara.toleranceEV_pos = 10;

p->dualTuningPara.toleranceEV_neg = 10;

p->dualTuningPara.XYWeighting = 64;

p->dualTuningPara.useAwbPreferenceGain = 0;

p->dualTuningPara.envOffsetIndex[0] = -200;

p->dualTuningPara.envOffsetIndex[1] = -100;

p->dualTuningPara.envOffsetIndex[2] = 50;

p->dualTuningPara.envOffsetIndex[3] = 150;

p->dualTuningPara.envXrOffsetValue[0] = 0;

p->dualTuningPara.envXrOffsetValue[1] = 0;

p->dualTuningPara.envXrOffsetValue[2] = 0;

p->dualTuningPara.envXrOffsetValue[3] = 0;

p->dualTuningPara.envYrOffsetValue[0] = 0;

p->dualTuningPara.envYrOffsetValue[1] = 0;

p->dualTuningPara.envYrOffsetValue[2] = 0;

p->dualTuningPara.envYrOffsetValue[3] = 0;

p->dualTuningPara.VarianceTolerance = 23;

p->dualTuningPara.ChooseColdOrWarm = 1;

return 0;

}

(0)

相关推荐