高通8x25Q T4K35摄像头调试心得

commit db285ae7f99fa669d65651b11bff78ea1364ef99
Author: wei.qifa <[email protected]>
Date:   Thu Apr 2 15:37:44 2015 +0800

        modified:   chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/Android.mk
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/Android.mk
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/Android.mk
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_v
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_v
        modified:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/sensor.c
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.c
        new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.h
        modified:   kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c


commit 505e8c46eca7f1804b18c6446f6fe27d80f6a8d7
Author: wei.qifa <[email protected]>
Date:   Thu Apr 2 13:35:39 2015 +0800


        modified:   kernel/arch/arm/configs/ua8a00_defconfig  
        modified:   kernel/arch/arm/mach-msm/clock-pcom-lookup.c  这里面有一个地址,但是这个地下不是真正I2C的地址
        modified:   kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c 板级配置文件,加新的摄像头的时候可以参照其他的摄像头来弄。
        modified:   kernel/drivers/gosodrv/Kconfig
        modified:   kernel/drivers/gosodrv/camera/Makefile

        new file:   kernel/drivers/gosodrv/camera/t4k35_v4l2.c


commit 505e8c46eca7f1804b18c6446f6fe27d80f6a8d7
Author: wei.qifa <[email protected]>
Date:   Thu Apr 2 13:35:39 2015 +0800


     [问题描述]:T4K35摄像头驱动代码提交
     [评审人]:柳珍
    
    modified:   kernel/arch/arm/configs/ua8a00_defconfig
    modified:   kernel/arch/arm/mach-msm/clock-pcom-lookup.c
    modified:   kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c
    modified:   kernel/drivers/gosodrv/Kconfig
    modified:   kernel/drivers/gosodrv/camera/Makefile
    new file:   kernel/drivers/gosodrv/camera/t4k35_v4l2.c


diff --git a/android-lte/kernel/arch/arm/configs/ua8a00_defconfig b/android-lte/kernel/arch/arm/configs/ua8a00_defconfig
index da08f4b..d7045a9 100755
--- a/android-lte/kernel/arch/arm/configs/ua8a00_defconfig
+++ b/android-lte/kernel/arch/arm/configs/ua8a00_defconfig
@@ -390,8 +390,9 @@ CONFIG_GOSO_LCDC_HVGA_HX8347D=y
 
 #CONFIG_FB_MSM_LCDC_TOSHIBA_FWVGA_PT_PANEL=y
 #CONFIG_GOSO_OV8825=y   //823yaoyiqin
-CONFIG_ZTE_IMX219=y
-CONFIG_GOSO_SP1628=y
+#CONFIG_ZTE_IMX219=y
+CONFIG_ZTE_T4K35=y
+#CONFIG_GOSO_SP1628=y
 CONFIG_BATTERY_GOSO=y
 #CONFIG_GOSO_ALSPS_CM36283=y
 #CONFIG_GOSO_NFC_PN544=y
diff --git a/android-lte/kernel/arch/arm/mach-msm/clock-pcom-lookup.c b/android-lte/kernel/arch/arm/mach-msm/clock-pcom-lookup.c
index e9a3abb..7bf798b 100755
--- a/android-lte/kernel/arch/arm/mach-msm/clock-pcom-lookup.c
+++ b/android-lte/kernel/arch/arm/mach-msm/clock-pcom-lookup.c
@@ -321,6 +321,7 @@ static struct clk_lookup msm_cmn_clk_7625a_7627a[] __initdata = {
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0010"),
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0078"),
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0020"),//liuzhen
+ CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0078"),//weiqifa modify for t4k35
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-006c"),
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-000d"),
  CLK_LOOKUP("cam_clk", cam_m_clk.c, "0-0042"),
diff --git a/android-lte/kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c b/android-lte/kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c
index ba7cbc3..eec5e8c 100755
--- a/android-lte/kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c
+++ b/android-lte/kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c
@@ -56,6 +56,10 @@
 #define GPIO_REAR_CAM_RESET_IMX219  8
 #define  GPIO_REAR_CAM_SHDN_IMX219 3
 
+#define GPIO_REAR_CAM_RESET_T4K35  8
+#define  GPIO_REAR_CAM_SHDN_T4K35 3
+
+
 //TODO: Do not recommend using the project name to distinguish.
 #if defined(CONFIG_UA8A00)
 #if defined(CONFIG_ZTEGOTA_GH650)    //modify sunshuai for gh650 lte mode  CP2AP_SLEEP
@@ -226,7 +230,7 @@ static struct msm_camera_sensor_flash_src msm_flash_src = {
 };
 #endif
 #endif
-
+#if 0
 static struct camera_vreg_t msm_cam_vreg[] = {
  {"msme1", REG_LDO, 1800000, 1800000, 0},
  {"gp2", REG_LDO, 2850000, 2850000, 0},
@@ -240,6 +244,7 @@ static struct camera_vreg_t msm_cam_vreg[] = {
  {"usb2", REG_LDO, 1800000, 1800000, 0},
 #endif
 };
+#endif
 #ifdef CONFIG_OV5647
 static struct camera_vreg_t ov5647_gpio_vreg[] = {
  {"cam_ov5647_avdd", REG_GPIO, 0, 0, 0},
@@ -1069,6 +1074,68 @@ static struct msm_camera_sensor_info msm_camera_sensor_imx219_data = {
 };
 
 #endif
+#ifdef CONFIG_ZTE_T4K35
+static struct camera_vreg_t msm_cam_vreg_t4k35[] = {
+       {"smps3", REG_LDO, 1800000, 1800000, 0},
+       {"ldo12", REG_LDO, 2850000, 2850000, 0},
+       {"ldo03", REG_LDO, 1200000, 1200000, 0},
+};
+
+
+static struct msm_camera_gpio_conf gpio_conf_t4k35 = {
+       .camera_off_table = camera_off_gpio_table,
+       .camera_on_table = camera_on_gpio_table,
+       .gpio_no_mux = 1,
+};
+
+static struct msm_camera_sensor_platform_info sensor_board_info_t4k35 = {
+      .mount_angle            = 90,//MOUNT_ANGLE_NOT_CONFIGURED,
+      .cam_vreg               = msm_cam_vreg_t4k35,
+      .num_vreg               = ARRAY_SIZE(msm_cam_vreg_t4k35),
+      .gpio_conf              = &gpio_conf_t4k35,//MCLK
+};
+
+static struct i2c_board_info msm_act_main_cam_t4k35_i2c_info = {
+       I2C_BOARD_INFO("msm_actuator", 0x0C),
+};
+
+static struct msm_camera_sensor_flash_src msm_flash_src_t4k35 = {
+       .flash_sr_type = MSM_CAMERA_FLASH_SRC_EXT,
+       ._fsrc.ext_driver_src.led_en = 69,  
+       ._fsrc.ext_driver_src.led_flash_en = 68, 
+       ._fsrc.ext_driver_src.flash_id = MAM_CAMERA_EXT_LED_FLASH_LM3642,
+};
+
+static struct msm_camera_sensor_flash_data flash_t4k35 = {
+  .flash_type             = MSM_CAMERA_FLASH_LED,
+  .flash_src              = &msm_flash_src_t4k35,
+};
+
+static struct msm_actuator_info msm_act_main_cam_9_info_t4k35 = {
+        .board_info     = &msm_act_main_cam_t4k35_i2c_info,
+        .cam_name   = MSM_ACTUATOR_MAIN_CAM_9,
+        .bus_id         = MSM_GSBI0_QUP_I2C_BUS_ID,
+        .vcm_pwd        = GPIO_NOT_CONFIGURED,
+        .vcm_enable     = 0,
+};
+
+static struct msm_camera_sensor_info msm_camera_sensor_t4k35_data = {
+       .sensor_name            = "t4k35",
+       .sensor_reset_enable    = 1,
+       .pmic_gpio_enable       = 1,
+       .sensor_reset           = GPIO_REAR_CAM_RESET_T4K35,
+       .sensor_pwd             = GPIO_REAR_CAM_SHDN_T4K35,
+       .pdata                  = &msm_camera_device_data_csi1[1],
+       .flash_data             = &flash_t4k35,
+       .sensor_platform_info   = &sensor_board_info_t4k35,
+       .csi_if                 = 1,
+       .camera_type            = BACK_CAMERA_2D,
+       .sensor_type            = BAYER_SENSOR,
+       .actuator_info = &msm_act_main_cam_9_info_t4k35,
+};
+
+#endif
+
 #ifdef CONFIG_GOSO_OV8850
 static struct msm_camera_gpio_conf gpio_conf_ov8850 = {
  .camera_off_table = camera_off_gpio_table,
@@ -1838,6 +1905,17 @@ static struct i2c_board_info i2c_camera_devices_skud[] = {
  I2C_BOARD_INFO("lm3642", 0x63),
  },
 #endif
+#ifdef CONFIG_ZTE_T4K35
+      {
+             I2C_BOARD_INFO("t4k35", 0x6c),
+             .platform_data = &msm_camera_sensor_t4k35_data,
+
+      },
+{
+ I2C_BOARD_INFO("lm3642", 0x63),
+ },
+#endif
+
 #ifdef CONFIG_GOSO_OV8850
  {
  I2C_BOARD_INFO("ov8850", 0x6C >> 3),
diff --git a/android-lte/kernel/drivers/gosodrv/Kconfig b/android-lte/kernel/drivers/gosodrv/Kconfig
index 651dd3e..07828aa 100755
--- a/android-lte/kernel/drivers/gosodrv/Kconfig
+++ b/android-lte/kernel/drivers/gosodrv/Kconfig
@@ -470,6 +470,12 @@ config ZTE_IMX219
  default n
  ---help---
   Sony 8M Bayer Sensor with AutoFocus
+config ZTE_T4K35
+ bool "Sensor t4k35 (BAYER 8M)"
+ depends on MSM_CAMERA
+ default n
+ ---help---
+  Sony 8M Bayer Sensor with AutoFocus
 config GOSO_OV8850
  bool "Sensor ov8850 (BAYER 8M)"
  depends on MSM_CAMERA
diff --git a/android-lte/kernel/drivers/gosodrv/camera/Makefile b/android-lte/kernel/drivers/gosodrv/camera/Makefile
index b1e88f9..2eeaf1a 100755
--- a/android-lte/kernel/drivers/gosodrv/camera/Makefile
+++ b/android-lte/kernel/drivers/gosodrv/camera/Makefile
@@ -17,7 +17,9 @@ obj-$(CONFIG_GOSO_IMX111) += imx111_v4l2.o
 obj-$(CONFIG_GOSO_OV8825) += ov8825_v4l2.o
 obj-$(CONFIG_GOSO_OV8850) += ov8850_v4l2.o
 obj-$(CONFIG_ZTE_IMX219) += imx219_v4l2.o
+obj-$(CONFIG_ZTE_T4K35) += t4k35_v4l2.o
 obj-$(CONFIG_ZTE_IMX219) += lm3642.o
+obj-$(CONFIG_ZTE_T4K35) += lm3642.o
 
 #Front cam add here
 obj-$(CONFIG_GOSO_GC2035) += gc2035_v4l2.o
diff --git a/android-lte/kernel/drivers/gosodrv/camera/t4k35_v4l2.c b/android-lte/kernel/drivers/gosodrv/camera/t4k35_v4l2.c
new file mode 100755
index 0000000..942572d
--- /dev/null
+++ b/android-lte/kernel/drivers/gosodrv/camera/t4k35_v4l2.c
@@ -0,0 +1,1157 @@
+/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+#include <mach/pmic.h>
+
+#include "msm_sensor.h"
+#include "msm.h"
+#include "msm_ispif.h"
+#define SENSOR_NAME "t4k35"
+#define PLATFORM_DRIVER_NAME "msm_camera_t4k35"
+#define t4k35_obj t4k35_##obj
+
+//#define T4K35_OTP_FEATURE 0
+//#define T4K35_OTP_FEATURE_DGB
+
+#ifdef CDBG
+#undef CDBG
+#endif
+#ifdef CDBG_HIGH
+#undef CDBG_HIGH
+#endif
+
+#define T4K35_VERBOSE_DGB
+
+#ifdef T4K35_VERBOSE_DGB
+#define CDBG(fmt, args...) printk("t4k35: "fmt, ##args)
+#define CDBG_HIGH(fmt, args...) printk("t4k35: "fmt, ##args)
+#else
+#define CDBG(fmt, args...) do {} while (0)
+#define CDBG_HIGH(fmt, args...) do {} while (0)
+#endif
+
+DEFINE_MUTEX(t4k35_mut);
+static struct msm_sensor_ctrl_t t4k35_s_ctrl;
+
+static struct msm_camera_i2c_reg_conf t4k35_start_settings[] = {
+        {0x0100, 0x01},
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_stop_settings[] = {
+        {0x0100, 0x00},
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_groupon_settings[] = {
+        {0x0104, 0x00},
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_groupoff_settings[] = {
+        {0x0104, 0x01},
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_prev_settings[] = {
+ //1632x1224 30.25fps
+ {0x0104,0x01},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+ {0x0340,0x05},//FR_LENGTH_LINES[15:8];
+ {0x0341,0x88},//FR_LENGTH_LINES[7:0];
+ {0x0342,0x0c},//LINE_LENGTH_PCK[15:8];
+ {0x0343,0x0A},//LINE_LENGTH_PCK[7:0];
+ {0x0346,0x00},//Y_ADDR_START[15:8];
+ {0x0347,0x08},//Y_ADDR_START[7:0];
+ {0x034A,0x09},//Y_ADDR_END[15:8];
+ {0x034B,0xA0},//Y_ADDR_END[7:0];
+ {0x034C,0x06},//X_OUTPUT_SIZE[15:8];
+ {0x034D,0x60},//X_OUTPUT_SIZE[7:0];
+ {0x034E,0x04},//Y_OUTPUT_SIZE[15:8];
+ {0x034F,0xC8},//Y_OUTPUT_SIZE[7:0];
+ {0x0301,0x02},//-/-/-/-/VT_PIX_CLK_DIV[3:0];
+ {0x0401,0x02},//-/-/-/-/-/-/SCALING_MODE[1:0];
+ {0x0404,0x10},//SCALE_M[7:0];
+ {0x0900,0x01},//-/-/-/-/-/-/H_BIN[1:0];
+ {0x0901,0x01},//-/-/-/-/-/-/V_BIN_MODE[1:0];
+ {0x0104,0x00},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_video_settings[] = {
+    //1632x1224 30.25fps
+ {0x0104,0x01},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+ {0x0340,0x05},//FR_LENGTH_LINES[15:8];
+ {0x0341,0x88},//FR_LENGTH_LINES[7:0];
+ {0x0342,0x0c},//LINE_LENGTH_PCK[15:8];
+ {0x0343,0x0A},//LINE_LENGTH_PCK[7:0];
+ {0x0346,0x00},//Y_ADDR_START[15:8];
+ {0x0347,0x08},//Y_ADDR_START[7:0];
+ {0x034A,0x09},//Y_ADDR_END[15:8];
+ {0x034B,0xA0},//Y_ADDR_END[7:0];
+ {0x034C,0x06},//X_OUTPUT_SIZE[15:8];
+ {0x034D,0x60},//X_OUTPUT_SIZE[7:0];
+ {0x034E,0x04},//Y_OUTPUT_SIZE[15:8];
+ {0x034F,0xC8},//Y_OUTPUT_SIZE[7:0];
+ {0x0301,0x02},//-/-/-/-/VT_PIX_CLK_DIV[3:0];
+ {0x0401,0x02},//-/-/-/-/-/-/SCALING_MODE[1:0];
+ {0x0404,0x10},//SCALE_M[7:0];
+ {0x0900,0x01},//-/-/-/-/-/-/H_BIN[1:0];
+ {0x0901,0x01},//-/-/-/-/-/-/V_BIN_MODE[1:0];
+ {0x0104,0x00},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_snap_settings[] = {
+
+ {0x0104,0x01},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+ {0x0340,0x09},//FR_LENGTH_LINES[15:8];        
+ {0x0341,0xB8},//FR_LENGTH_LINES[7:0];         
+ {0x0342,0x0D},//LINE_LENGTH_PCK[15:8];        
+ {0x0343,0xB4},//LINE_LENGTH_PCK[7:0];         
+ {0x0346,0x00},//Y_ADDR_START[15:8];           
+ {0x0347,0x0A},//Y_ADDR_START[7:0];            
+ {0x034A,0x09},//Y_ADDR_END[15:8];             
+ {0x034B,0xA0},//Y_ADDR_END[7:0];              
+ {0x034C,0x0C},//X_OUTPUT_SIZE[15:8];          
+ {0x034D,0xC0},//X_OUTPUT_SIZE[7:0];           
+ {0x034E,0x09},//Y_OUTPUT_SIZE[15:8];          
+ {0x034F,0x90},//Y_OUTPUT_SIZE[7:0];           
+ {0x0301,0x02},//-/-/-/-/VT_PIX_CLK_DIV[3:0];  
+ {0x0401,0x00},//-/-/-/-/-/-/SCALING_MODE[1:0];
+ {0x0404,0x10},//SCALE_M[7:0];                 
+ {0x0900,0x00},//-/-/-/-/-/-/H_BIN[1:0];       
+ {0x0901,0x00},//-/-/-/-/-/-/V_BIN_MODE[1:0];  
+ {0x0104,0x00},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+
+};
+
+static struct msm_camera_i2c_reg_conf t4k35_recommend_settings[] = {
+ {0x0101,0x00},//-/-/-/-/-/-/IMAGE_ORIENT[1:0];
+ {0x0103,0x00},//-/-/-/-/-/-/MIPI_RST/SOFTWARE_RESET;
+ {0x0104,0x00},//-/-/-/-/-/-/-/GROUP_PARA_HOLD;
+ {0x0105,0x01},//-/-/-/-/-/-/-/MSK_CORRUPT_FR;
+ {0x0110,0x00},//-/-/-/-/-/CSI_CHAN_IDNTF[2:0];
+ {0x0111,0x02},//-/-/-/-/-/-/CSI_SIGNAL_MOD[1:0];
+ {0x0112,0x0A},//CSI_DATA_FORMAT[15:8];
+ {0x0113,0x0A},//CSI_DATA_FORMAT[7:0];
+ {0x0114,0x01},//-/-/-/-/-/-/CSI_LANE_MODE[1:0];
+ {0x0130,0x18},//EXTCLK_FRQ_MHZ[15:8];
+ {0x0131,0x00},//EXTCLK_FRQ_MHZ[7:0];
+ {0x0141,0x00},//-/-/-/-/-/cont_select_1B/CTX_SW_CTL/R_CONT_STATUS;
+ {0x0142,0x00},//-/-/-/-/CONT_MDSEL_FRVAL[1:0]/CONT_FRCNT_MSK/CONT_GRHOLD_MSK;
+ {0x0143,0x00},//R_FRAME_COUNT[7:0];
+ {0x0202,0x09},//COAR_INTEGR_TIM[15:8];
+ {0x0203,0xB2},//COAR_INTEGR_TIM[7:0];
+ {0x0204,0x00},//-/-/-/-/ANA_GA_CODE_GL[11:8];
+ {0x0205,0x2E},//ANA_GA_CODE_GL[7:0];
+ {0x0210,0x01},//-/-/-/-/-/-/DG_GA_GREENR[9:8];
+ {0x0211,0x00},//DG_GA_GREENR[7:0];
+ {0x0212,0x01},//-/-/-/-/-/-/DG_GA_RED[9:8];
+ {0x0213,0x00},//DG_GA_RED[7:0];
+ {0x0214,0x01},//-/-/-/-/-/-/DG_GA_BLUE[9:8];
+ {0x0215,0x00},//DG_GA_BLUE[7:0];
+ {0x0216,0x01},//-/-/-/-/-/-/DG_GA_GREENB[9:8];
+ {0x0217,0x00},//DG_GA_GREENB[7:0];
+ {0x0230,0x00},//-/-/-/HDR_MODE[4:0];
+ {0x0301,0x02},//-/-/-/-/VT_PIX_CLK_DIV[3:0];
+ {0x0303,0x05},//-/-/-/-/VT_SYS_CLK_DIV[3:0];
+ {0x0305,0x03},//-/-/-/-/-/PRE_PLL_CLK_DIV[2:0];
+ {0x0306,0x00},//-/-/-/-/-/-/-/PLL_MULTIPLIER[8];
+ {0x0307,0x6E},//PLL_MULTIPLIER[7:0];
+ {0x030B,0x00},//-/-/-/-/OP_SYS_CLK_DIV[3:0];
+ {0x030D,0x03},//-/-/-/-/-/PRE_PLL_ST_CLK_DIV[2:0];
+ {0x030E,0x00},//-/-/-/-/-/-/-/PLL_MULT_ST[8];
+ {0x030F,0x6E},//PLL_MULT_ST[7:0];
+ {0x0310,0x00},//-/-/-/-/-/-/-/OPCK_PLLSEL;
+ {0x0340,0x09},//FR_LENGTH_LINES[15:8];
+ {0x0341,0xB8},//FR_LENGTH_LINES[7:0];
+ {0x0342,0x0D},//LINE_LENGTH_PCK[15:8];
+ {0x0343,0xB4},//LINE_LENGTH_PCK[7:0];
+ {0x0344,0x00},//-/-/-/-/H_CROP[3:0];
+ {0x0346,0x00},//Y_ADDR_START[15:8];
+ {0x0347,0x08},//Y_ADDR_START[7:0];
+ {0x034A,0x09},//Y_ADDR_END[15:8];
+ {0x034B,0x98},//Y_ADDR_END[7:0];
+ {0x034C,0x0C},//X_OUTPUT_SIZE[15:8];
+ {0x034D,0xC0},//X_OUTPUT_SIZE[7:0];
+ {0x034E,0x09},//Y_OUTPUT_SIZE[15:8];
+ {0x034F,0x90},//Y_OUTPUT_SIZE[7:0];
+ {0x0401,0x00},//-/-/-/-/-/-/SCALING_MODE[1:0];
+ {0x0403,0x00},//-/-/-/-/-/-/SPATIAL_SAMPLING[1:0];
+ {0x0404,0x10},//SCALE_M[7:0];
+ {0x0408,0x00},//DCROP_XOFS[15:8];
+ {0x0409,0x00},//DCROP_XOFS[7:0];
+ {0x040A,0x00},//DCROP_YOFS[15:8];
+ {0x040B,0x00},//DCROP_YOFS[7:0];
+ {0x040C,0x0C},//DCROP_WIDTH[15:8];
+ {0x040D,0xD0},//DCROP_WIDTH[7:0];
+ {0x040E,0x09},//DCROP_HIGT[15:8];
+ {0x040F,0xA0},//DCROP_HIGT[7:0];
+ {0x0601,0x00},//TEST_PATT_MODE[7:0];
+ {0x0800,0x88},//TCLK_POST[7:3]/-/-/-/;
+ {0x0801,0x38},//THS_PREPARE[7:3]/-/-/-/;
+ {0x0802,0x78},//THS_ZERO[7:3]/-/-/-/;
+ {0x0803,0x48},//THS_TRAIL[7:3]/-/-/-/;
+ {0x0804,0x48},//TCLK_TRAIL[7:3]/-/-/-/;
+ {0x0805,0x40},//TCLK_PREPARE[7:3]/-/-/-/;
+ {0x0806,0x00},//TCLK_ZERO[7:3]/-/-/-/;
+ {0x0807,0x48},//TLPX[7:3]/-/-/-/;
+ {0x0808,0x01},//-/-/-/-/-/-/DPHY_CTRL[1:0];
+ {0x0820,0x05},//MSB_LBRATE[31:24];
+ {0x0821,0x10},//MSB_LBRATE[23:16];
+ {0x0822,0x00},//MSB_LBRATE[15:8];
+ {0x0823,0x00},//MSB_LBRATE[7:0];
+ {0x0900,0x00},//-/-/-/-/-/-/H_BIN[1:0];
+ {0x0901,0x00},//-/-/-/-/-/-/V_BIN_MODE[1:0];
+ {0x0902,0x00},//-/-/-/-/-/-/BINNING_WEIGHTING[1:0];
+ {0x0A05,0x01},//-/-/-/-/-/-/-/MAP_DEF_EN;
+ {0x0A06,0x01},//-/-/-/-/-/-/-/SGL_DEF_EN;
+ {0x0A07,0x98},//SGL_DEF_W[7:0];
+ {0x0A0A,0x01},//-/-/-/-/-/-/-/COMB_CPLT_SGL_DEF_EN;
+ {0x0A0B,0x98},//COMB_CPLT_SGL_DEF_W[7:0];
+ {0x0F00,0x00},//-/-/-/-/-/ABF_LUT_CTL[2:0];
+ {0x300A,0x00},//Reserved ;
+ {0x301A,0x44},//Reserved ;
+ {0x301B,0x44},//Reserved ;
+ {0x3024,0x01},//Reserved ;
+ {0x3025,0x83},//Reserved ;
+ {0x3037,0x06},//Reserved ;
+ {0x3038,0x06},//Reserved ;
+ {0x3039,0x06},//Reserved ;
+ {0x303A,0x06},//Reserved ;
+ {0x303B,0x0B},//Reserved ;
+ {0x303C,0x03},//Reserved ;
+ {0x303D,0x03},//Reserved ;
+ {0x3053,0xC0},//Reserved ;
+ {0x305D,0x10},//Reserved ;
+ {0x305E,0x06},//Reserved ;
+ {0x306B,0x08},//Reserved ;
+ {0x3073,0x1C},//Reserved ;
+ {0x3074,0x0F},//Reserved ;
+ {0x3075,0x03},//Reserved ;
+ {0x3076,0x7F},//Reserved ;
+ {0x307E,0x02},//Reserved ;
+ {0x308D,0x03},//Reserved ;
+ {0x308E,0x20},//Reserved ;
+ {0x3091,0x04},//Reserved ;
+ {0x3096,0x75},//Reserved ;
+ {0x3097,0x7E},//Reserved ;
+ {0x3098,0x20},//Reserved ;
+ {0x30A0,0x82},//Reserved ;
+ {0x30AB,0x30},//Reserved ;
+ {0x30CE,0x65},//Reserved ;
+ {0x30CF,0x75},//Reserved ;
+ {0x30D2,0xB3},//Reserved ;
+ {0x30D5,0x09},//Reserved ;
+ {0x3134,0x01},//Reserved ;
+ {0x314D,0x80},//Reserved ;
+ {0x315B,0x22},//Reserved ;
+ {0x315C,0x22},//Reserved ;
+ {0x315D,0x02},//Reserved ;
+ {0x3165,0x67},//Reserved ;
+ {0x3168,0xF1},//Reserved ;
+ {0x3169,0x77},//Reserved ;
+ {0x316A,0x77},//Reserved ;
+ {0x3173,0x30},//Reserved ;
+ {0x31C1,0x27},//Reserved ;
+ {0x31DB,0x15},//Reserved ;
+ {0x31DC,0xE0},//Reserved ;
+ {0x3204,0x00},//Reserved ;
+ {0x3231,0x00},//PWB_RG[7:0];
+ {0x3232,0x00},//PWB_GRG[7:0];
+ {0x3233,0x00},//PWB_GBG[7:0];
+ {0x3234,0x00},//PWB_BG[7:0];
+ {0x3237,0x00},//LSSC_EN/-/-/TEST_LSSC/LSSC_DISP/-/LSSC_LIPOL/LSSC_CSPOL;
+ {0x3238,0x00},//LSSC_HCNT_ADJ[7:0];
+ {0x3239,0x80},//LSSC_HCNT_MPY[7:0];
+ {0x323A,0x80},//LSSC_HCEN_ADJ[7:0];
+ {0x323B,0x00},//LSSC_VCNT_ADJ[7:0];
+ {0x323C,0x81},//LSSC_VCNT_MPYSW/-/-/-/LSSC_VCNT_MPY[11:8];
+ {0x323D,0x00},//LSSC_VCNT_MPY[7:0];
+ {0x323E,0x02},//LSSC_VCEN_WIDTH/-/-/-/-/-/LSSC_VCEN_ADJ[9:8];
+ {0x323F,0x00},//LSSC_VCEN_ADJ[7:0];
+ {0x3240,0x00},//LSSC_TOPL_PM1RG[7:0];
+ {0x3241,0x00},//LSSC_TOPL_PM1GRG[7:0];
+ {0x3242,0x00},//LSSC_TOPL_PM1GBG[7:0];
+ {0x3243,0x00},//LSSC_TOPL_PM1BG[7:0];
+ {0x3244,0x00},//LSSC_TOPR_PM1RG[7:0];
+ {0x3245,0x00},//LSSC_TOPR_PM1GRG[7:0];
+ {0x3246,0x00},//LSSC_TOPR_PM1GBG[7:0];
+ {0x3247,0x00},//LSSC_TOPR_PM1BG[7:0];
+ {0x3248,0x00},//LSSC_BOTL_PM1RG[7:0];
+ {0x3249,0x00},//LSSC_BOTL_PM1GRG[7:0];
+ {0x324A,0x00},//LSSC_BOTL_PM1GBG[7:0];
+ {0x324B,0x00},//LSSC_BOTL_PM1BG[7:0];
+ {0x324C,0x00},//LSSC_BOTR_PM1RG[7:0];
+ {0x324D,0x00},//LSSC_BOTR_PM1GRG[7:0];
+ {0x324E,0x00},//LSSC_BOTR_PM1GBG[7:0];
+ {0x324F,0x00},//LSSC_BOTR_PM1BG[7:0];
+ {0x3250,0x00},//-/-/-/-/LSSC1BG_PMSW/LSSC1GBG_PMSW/LSSC1GRG_PMSW/LSSC1RG_PMSW;
+ {0x3251,0x80},//LSSC_LEFT_P2RG[7:0];
+ {0x3252,0x80},//LSSC_LEFT_P2GRG[7:0];
+ {0x3253,0x80},//LSSC_LEFT_P2GBG[7:0];
+ {0x3254,0x80},//LSSC_LEFT_P2BG[7:0];
+ {0x3255,0x80},//LSSC_RIGHT_P2RG[7:0];
+ {0x3256,0x80},//LSSC_RIGHT_P2GRG[7:0];
+ {0x3257,0x80},//LSSC_RIGHT_P2GBG[7:0];
+ {0x3258,0x80},//LSSC_RIGHT_P2BG[7:0];
+ {0x3259,0x80},//LSSC_TOP_P2RG[7:0];
+ {0x325A,0x80},//LSSC_TOP_P2GRG[7:0];
+ {0x325B,0x80},//LSSC_TOP_P2GBG[7:0];
+ {0x325C,0x80},//LSSC_TOP_P2BG[7:0];
+ {0x325D,0x80},//LSSC_BOTTOM_P2RG[7:0];
+ {0x325E,0x80},//LSSC_BOTTOM_P2GRG[7:0];
+ {0x325F,0x80},//LSSC_BOTTOM_P2GBG[7:0];
+ {0x3260,0x80},//LSSC_BOTTOM_P2BG[7:0];
+ {0x3261,0x00},//LSSC_LEFT_PM4RG[7:0];
+ {0x3262,0x00},//LSSC_LEFT_PM4GRG[7:0];
+ {0x3263,0x00},//LSSC_LEFT_PM4GBG[7:0];
+ {0x3264,0x00},//LSSC_LEFT_PM4BG[7:0];
+ {0x3265,0x00},//LSSC_RIGHT_PM4RG[7:0];
+ {0x3266,0x00},//LSSC_RIGHT_PM4GRG[7:0];
+ {0x3267,0x00},//LSSC_RIGHT_PM4GBG[7:0];
+ {0x3268,0x00},//LSSC_RIGHT_PM4BG[7:0];
+ {0x3269,0x00},//LSSC_TOP_PM4RG[7:0];
+ {0x326A,0x00},//LSSC_TOP_PM4GRG[7:0];
+ {0x326B,0x00},//LSSC_TOP_PM4GBG[7:0];
+ {0x326C,0x00},//LSSC_TOP_PM4BG[7:0];
+ {0x326D,0x00},//LSSC_BOTTOM_PM4RG[7:0];
+ {0x326E,0x00},//LSSC_BOTTOM_PM4GRG[7:0];
+ {0x326F,0x00},//LSSC_BOTTOM_PM4GBG[7:0];
+ {0x3270,0x00},//LSSC_BOTTOM_PM4BG[7:0];
+ {0x3271,0x80},//LSSC_MGSEL[1:0]/-/-/LSSC4BG_PMSW/LSSC4GBG_PMSW/LSSC4GRG_PMSW/LSSC4RG_PMSW;
+ {0x3272,0x00},//-/-/-/-/-/-/-/LSSC_BLACK[8];
+ {0x3273,0x80},//LSSC_BLACK[7:0];
+ {0x3274,0x01},//-/-/-/-/-/-/-/OBOFFSET_MPY_LSSC;
+ {0x3275,0x00},//-/-/-/-/-/-/-/LSSC_HGINV;
+ {0x3276,0x00},//-/-/-/-/-/-/-/LSSC_TEST_STRK;
+ {0x3282,0xC0},//ABPC_EN/ABPC_CK_EN/-/-/-/-/-/-/;
+ {0x3284,0x06},//Reserved ;
+ {0x3285,0x03},//Reserved ;
+ {0x3286,0x02},//Reserved ;
+ {0x328A,0x03},//Reserved ;
+ {0x328B,0x02},//Reserved ;
+ {0x3290,0x20},//Reserved ;
+ {0x3294,0x10},//Reserved ;
+ {0x32A8,0x84},//CNR_SW/-/-/-/-/-/-/- ;
+ {0x32A9,0x02},//-/-/-/-/-/-/CNR_UPDATE_FB/- ;
+ {0x32B3,0x10},//-/-/-/MAP_MEMLESS/-/-/-/-;
+ {0x32B4,0x1F},//Reserved ;
+ {0x32B7,0x3B},//Reserved ;
+ {0x32BB,0x0F},//Reserved ;
+ {0x32BC,0x0F},//Reserved ;
+ {0x32BE,0x04},//Reserved ;
+ {0x32BF,0x0F},//Reserved ;
+ {0x32C0,0x0F},//Reserved ;
+ {0x32C6,0x50},//Reserved ;
+ {0x32C8,0x0E},//Reserved ;
+ {0x32C9,0x0E},//Reserved ;
+ {0x32CA,0x0E},//Reserved ;
+ {0x32CB,0x0E},//Reserved ;
+ {0x32CC,0x0E},//Reserved ;
+ {0x32CD,0x0E},//Reserved ;
+ {0x32CE,0x08},//Reserved ;
+ {0x32CF,0x08},//Reserved ;
+ {0x32D0,0x08},//Reserved ;
+ {0x32D1,0x0F},//Reserved ;
+ {0x32D2,0x0F},//Reserved ;
+ {0x32D3,0x0F},//Reserved ;
+ {0x32D4,0x08},//Reserved ;
+ {0x32D5,0x08},//Reserved ;
+ {0x32D6,0x08},//Reserved ;
+ {0x32D8,0x00},//-/-/-/CNR_INTENSITY_AG0[4:0] ;
+ {0x32D9,0x00},//-/-/-/CNR_INTENSITY_AG1[4:0] ;
+ {0x32DA,0x00},//-/-/-/CNR_INTENSITY_AG2[4:0] ;
+ {0x32DD,0x02},//Reserved ;
+ {0x32E0,0x20},//Reserved ;
+ {0x32E1,0x20},//Reserved ;
+ {0x32E2,0x20},//Reserved ;
+ {0x32F2,0x04},//-/-/-/CNR_STR[4:0] ;
+ {0x32F3,0x04},//-/-/-/CNR_AG_RATIO[4:0] ;
+ {0x3307,0x2E},//AG_MIN[7:0] ;
+ {0x3308,0x2D},//AG_MAX[7:0]; *16+15 
+ {0x3309,0x0D},//Reserved ;
+ {0x3384,0x10},//Reserved ;
+ {0x3424,0x00},//-/-/-/-/TRIG_Z5_X/TX_TRIGOPT/CLKULPS/ESCREQ;
+ {0x3425,0x78},//ESCDATA[7:0];
+ {0x3427,0xC0},//MIPI_CLKVBLK/MIPI_CLK_MODE/-/-/HS_SR_CNT[1:0]/LP_SR_CNT[1:0];
+ {0x3430,0xA7},//NUMWAKE[7:0];
+ {0x3431,0x60},//NUMINIT[7:0];
+ {0x3432,0x11},//-/-/-/CLK0_M/-/-/-/LNKBTWK_ON;
+ {0x0100,0x01},//-/-/-/-/-/-/-/MODE_SELECT;
+
+};
+
+static struct v4l2_subdev_info t4k35_subdev_info[] = {
+        {
+        .code   = V4L2_MBUS_FMT_SBGGR10_1X10,
+        .colorspace = V4L2_COLORSPACE_JPEG,
+        .fmt    = 1,
+        .order    = 0,
+        },
+        /* more can be supported, to be added later */
+};
+
+static struct msm_camera_i2c_conf_array t4k35_init_conf[] = {
+        {&t4k35_recommend_settings[0],
+        ARRAY_SIZE(t4k35_recommend_settings), 0, MSM_CAMERA_I2C_BYTE_DATA}
+};
+
+static struct msm_camera_i2c_conf_array t4k35_confs[] = {
+        {&t4k35_snap_settings[0],
+        ARRAY_SIZE(t4k35_snap_settings), 0, MSM_CAMERA_I2C_BYTE_DATA},
+        {&t4k35_prev_settings[0],
+        ARRAY_SIZE(t4k35_prev_settings), 0, MSM_CAMERA_I2C_BYTE_DATA},
+        {&t4k35_video_settings[0],
+        ARRAY_SIZE(t4k35_video_settings), 0, MSM_CAMERA_I2C_BYTE_DATA},
+        {&t4k35_snap_settings[0],
+        ARRAY_SIZE(t4k35_snap_settings), 0, MSM_CAMERA_I2C_BYTE_DATA},
+};
+
+static struct msm_sensor_output_info_t t4k35_dimensions[] = {
+    { /* For SNAPSHOT */
+        .x_output                = 3264,
+        .y_output                = 2448,
+        .line_length_pclk        = 3508,//LINE_LENGTH_PCK value
+        .frame_length_lines      = 2488,//FR_LENGTH_LINES value
+        .vt_pixel_clk            = 132000000,//P_clk
+        .op_pixel_clk            = 165000000,//D_clk
+        .binning_factor          = 0x0,
+    },
+    { /* For PREVIEW */
+        .x_output                = 1632,
+        .y_output                = 1224,
+        .line_length_pclk        = 3082,//LINE_LENGTH_PCK value
+        .frame_length_lines      = 1416,//FR_LENGTH_LINES value
+        .vt_pixel_clk            = 132000000, 
+        .op_pixel_clk            = 165000000,//modify for light  decrease op,but can't letter then vt
+        .binning_factor          = 0x01,
+    },
+};
+
+
+static struct msm_camera_csid_vc_cfg t4k35_cid_cfg[] = {
+        {0, CSI_RAW10, CSI_DECODE_10BIT},
+        {1, CSI_EMBED_DATA, CSI_DECODE_8BIT},
+        {2, CSI_RESERVED_DATA_0, CSI_DECODE_8BIT},
+};
+
+static struct msm_camera_csi2_params t4k35_csi_params = {
+        .csid_params = {
+                .lane_assign = 0xe4,
+                .lane_cnt = 2,
+                .lut_params = {
+                        .num_cid = ARRAY_SIZE(t4k35_cid_cfg),
+                        .vc_cfg = t4k35_cid_cfg,
+                },
+        },
+        .csiphy_params = {
+                .lane_cnt = 2,
+                .settle_cnt = 0x10,
+        },
+};
+
+static struct msm_camera_csi2_params *t4k35_csi_params_array[] = {
+        &t4k35_csi_params,
+        &t4k35_csi_params,
+        &t4k35_csi_params,
+        &t4k35_csi_params,
+};
+
+static struct msm_camera_csi_params t4k35_csic_params = {
+  .data_format               = CSI_10BIT,
+  .lane_cnt                  = 2,
+  .lane_assign               = 0xe4,
+  .dpcm_scheme               = 0,
+  .settle_cnt                = 16,//modify for light up
+};
+
+static struct msm_camera_csi_params *t4k35_csic_params_array[] = {
+  &t4k35_csic_params,
+  &t4k35_csic_params,
+};
+
+
+static struct msm_sensor_output_reg_addr_t t4k35_reg_addr = {
+        .x_output = 0x34C, //X_OUTPUT_SIZE register addr
+        .y_output = 0x34E, //Y_OUTPUT_SIZE register addr
+        .line_length_pclk = 0x342,//LINE_LENGTH_PCK register addr
+        .frame_length_lines = 0x340,//FR_LENGTH_LINES register addr
+};
+
+static struct msm_sensor_id_info_t t4k35_id_info = {
+        .sensor_id_reg_addr = 0x0,
+        .sensor_id = 0x1481,
+};
+
+static struct msm_sensor_exp_gain_info_t t4k35_exp_gain_info = {
+        .coarse_int_time_addr = 0x202,//exposure time register addr
+        .global_gain_addr = 0x204,//analog gain register addr
+        .vert_offset =6,
+};
+
+
+static const struct i2c_device_id t4k35_i2c_id[] = {
+        {SENSOR_NAME, (kernel_ulong_t)&t4k35_s_ctrl},
+        { }
+};
+
+static struct i2c_driver t4k35_i2c_driver = {
+        .id_table = t4k35_i2c_id,
+        .probe  = msm_sensor_i2c_probe,
+        .driver = {
+                .name = SENSOR_NAME,
+        },
+};
+
+static struct msm_camera_i2c_client t4k35_sensor_i2c_client = {
+        .addr_type = MSM_CAMERA_I2C_WORD_ADDR,
+};
+
+static int __init msm_sensor_init_module(void)
+{
+        pr_err("__jrchoi: %s: E\n", __func__);
+        return i2c_add_driver(&t4k35_i2c_driver);
+}
+
+static struct v4l2_subdev_core_ops t4k35_subdev_core_ops = {
+        .ioctl = msm_sensor_subdev_ioctl,
+        .s_power = msm_sensor_power,
+};
+
+
+int32_t t4k35_sensor_set_fps(struct msm_sensor_ctrl_t *s_ctrl,
+                                                struct fps_cfg *fps)
+{
+        uint16_t total_lines_per_frame;
+        int32_t rc = 0;
+        s_ctrl->fps_divider = fps->fps_div;
+
+        if (s_ctrl->curr_res != MSM_SENSOR_INVALID_RES) {
+                uint16_t fl_read = 0;
+                total_lines_per_frame = (uint16_t)
+                        ((s_ctrl->curr_frame_length_lines) *
+                        s_ctrl->fps_divider/Q10);
+
+                rc = msm_camera_i2c_read(s_ctrl->sensor_i2c_client,
+                        s_ctrl->sensor_output_reg_addr->frame_length_lines,
+                        &fl_read, MSM_CAMERA_I2C_WORD_DATA);
+
+                CDBG("%s: before_fl = %d, new_fl = %d", __func__, fl_read, total_lines_per_frame);
+
+                if(fl_read < total_lines_per_frame) {
+                        pr_err("%s: Write new_fl (before_fl = %d, new_fl = %d)", __func__, fl_read, total_lines_per_frame);
+                        rc = msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+                                s_ctrl->sensor_output_reg_addr->frame_length_lines,
+                                total_lines_per_frame, MSM_CAMERA_I2C_WORD_DATA);
+                }
+        }
+        return rc;
+}
+
+
+static int32_t t4k35_write_pict_exp_gain(struct msm_sensor_ctrl_t *s_ctrl,
+ uint16_t gain, uint32_t line)
+{
+ uint8_t intg_time_hsb, intg_time_lsb;
+ uint8_t gain_lsb, gain_hsb;
+ uint32_t fl_lines = s_ctrl->curr_frame_length_lines;
+ uint8_t offset = s_ctrl->sensor_exp_gain_info->vert_offset;
+
+ fl_lines = (fl_lines * s_ctrl->fps_divider) / Q10;
+
+ s_ctrl->func_tbl->sensor_group_hold_on(s_ctrl);
+
+ /* adjust frame rate */
+ if ((s_ctrl->curr_res < MSM_SENSOR_RES_2) &&
+ (line > (fl_lines - offset)))
+ fl_lines = line + offset;
+
+ CDBG("%s: fl_lines = %d\n",__func__, fl_lines);
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_output_reg_addr->frame_length_lines,
+ (uint8_t)(fl_lines >> 8),
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_output_reg_addr->frame_length_lines + 1,
+ (uint8_t)(fl_lines & 0x00FF),
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ intg_time_lsb = (uint8_t) (line & 0x00ff);
+ intg_time_hsb = (uint8_t) (line >> 8);
+
+ CDBG("%s: line = %d\n",__func__, line);
+ /* Coarse Integration Time */
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->coarse_int_time_addr,
+ intg_time_hsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->coarse_int_time_addr + 1,
+ intg_time_lsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ /* gain */
+ gain_lsb = (uint8_t) (gain & 0x00ff);
+ gain_hsb = (uint8_t) (gain >> 8);
+
+ CDBG("%s: gain = %d\n",__func__, gain);
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->global_gain_addr,
+ gain_hsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->global_gain_addr + 1,
+ gain_lsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ s_ctrl->func_tbl->sensor_group_hold_off(s_ctrl);
+
+ return 0;
+}
+
+
+int32_t t4k35_sensor_write_exp_gain(struct msm_sensor_ctrl_t *s_ctrl,
+                uint16_t gain, uint32_t line)
+{
+ uint8_t intg_time_hsb, intg_time_lsb;
+ uint8_t gain_lsb, gain_hsb;
+ uint32_t fl_lines = s_ctrl->curr_frame_length_lines;
+ uint8_t offset = s_ctrl->sensor_exp_gain_info->vert_offset;
+
+ fl_lines = (fl_lines * s_ctrl->fps_divider) / Q10;
+
+ s_ctrl->func_tbl->sensor_group_hold_on(s_ctrl);
+
+ /* adjust frame rate */
+ if ((s_ctrl->curr_res < MSM_SENSOR_RES_2) &&
+ (line > (fl_lines - offset)))
+ fl_lines = line + offset;
+
+ CDBG("%s: fl_lines = 0x%x\n",__func__, fl_lines);
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_output_reg_addr->frame_length_lines,
+ (uint8_t)(fl_lines >> 8),
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_output_reg_addr->frame_length_lines + 1,
+ (uint8_t)(fl_lines & 0x00FF),
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ intg_time_lsb = (uint8_t) (line & 0x00ff);
+ intg_time_hsb = (uint8_t) (line >> 8);
+
+ CDBG("%s: line = 0x%x\n",__func__, line);
+ /* Coarse Integration Time */
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->coarse_int_time_addr,
+ intg_time_hsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->coarse_int_time_addr + 1,
+ intg_time_lsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ /* gain */
+ gain_lsb = (uint8_t) (gain & 0x00ff);
+ gain_hsb = (uint8_t) (gain >> 8);
+
+ CDBG("%s: gain = 0x%x\n",__func__, gain);
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->global_gain_addr,
+ gain_hsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ msm_camera_i2c_write(s_ctrl->sensor_i2c_client,
+ s_ctrl->sensor_exp_gain_info->global_gain_addr + 1,
+ gain_lsb,
+ MSM_CAMERA_I2C_BYTE_DATA);
+
+ s_ctrl->func_tbl->sensor_group_hold_off(s_ctrl);
+
+ return 0;
+}
+
+
+static struct v4l2_subdev_video_ops t4k35_subdev_video_ops = {
+        .enum_mbus_fmt = msm_sensor_v4l2_enum_fmt,
+};
+
+static struct v4l2_subdev_ops t4k35_subdev_ops = {
+        .core = &t4k35_subdev_core_ops,
+        .video  = &t4k35_subdev_video_ops,
+};
+
+int32_t t4k35_sensor_power_down(struct msm_sensor_ctrl_t *s_ctrl)
+{
+  struct msm_camera_sensor_info *info = NULL;
+
+  CDBG("%s: E\n",__func__);
+  info = s_ctrl->sensordata;
+  s_ctrl->func_tbl->sensor_stop_stream(s_ctrl);
+  msleep(100);
+  //pmic_gpio_set_value(info->sensor_pwd, 0);
+  pmic_gpio_set_value(info->sensor_reset, 0);
+  usleep_range(5000, 5100);
+  msm_sensor_power_down(s_ctrl);
+  msleep(40);
+  CDBG("%s: X\n",__func__);
+  return 0;
+}
+
+int32_t t4k35_sensor_power_up(struct msm_sensor_ctrl_t *s_ctrl)
+{
+  int32_t rc = 0;
+  struct msm_camera_sensor_info *info = NULL;
+  info = s_ctrl->sensordata;
+
+  CDBG("%s, sensor_pwd:%d, sensor_reset:%d\r\n",__func__,
+    info->sensor_pwd,info->sensor_reset);
+  //gpio_direction_output(info->sensor_pwd, 0);
+  //gpio_direction_output(info->sensor_reset, 0);
+  //pmic_secure_mpp_control_digital_output(info->sensor_pwd, 0,0);//weiqifa modify add 20150331
+  //pmic_secure_mpp_control_digital_output(info->sensor_reset, 0,0);//weiqifa modify add 20150331
+  pmic_gpio_set_value(info->sensor_reset, 0);
+  //pmic_gpio_set_value(info->sensor_pwd, 0);
+  usleep_range(10000, 11000);
+  //usleep_range(5000, 5100);
+ msleep(20);  //50
+  rc = msm_sensor_power_up(s_ctrl);
+  if (rc < 0) {
+    printk("%s: msm_sensor_power_up failed\n", __func__);
+    return rc;
+  }
+  //printk("%s LIne:%d pwd:%d reset:%d\n",__func__,__LINE__,gpio_get_value(info->sensor_pwd),gpio_get_value(info->sensor_reset));
+  usleep_range(10000, 11000);
+  //usleep_range(5000, 5100);
+  //gpio_direction_output(info->sensor_pwd, 1);
+ msleep(20);
+  rc =pmic_gpio_set_value(info->sensor_reset, 1);
+  //rc = pmic_secure_mpp_control_digital_output(info->sensor_pwd, 1,1);//weiqifa modify add 20150331
+  if(rc <0)
+  {
+ printk("%s rc : %d error\n",__func__,rc);
+  }
+ msleep(30); 
+  //gpio_direction_output(info->sensor_reset, 1);
+  //rc =pmic_gpio_set_value(info->sensor_pwd, 1);
+  //rc = pmic_secure_mpp_control_digital_output(info->sensor_reset, 1,1);//weiqifa modify add 20150331
+  //if(rc <0)
+  //{
+ //  printk("%s rc : %d error\n",__func__,rc);
+  //}
+  //usleep_range(5000, 5100);
+  
+  //printk("%s LIne:%d pwd:%d reset:%d\n",__func__,__LINE__,gpio_get_value(info->sensor_pwd),gpio_get_value(info->sensor_reset));
+  return rc;
+}
+
+#ifdef T4K35_OTP_FEATURE
+
+////////////////////////////////////////////
+//toshiba zh, 
+//ver 0.1:  20130614  created
+//ver 0.2:  20130917  modify read backup data 
+//ver 0.3:  20131204  for MTK k35 porting 
+
+///////////////////////////////////////////
+
+typedef struct t4k35_otp_struct 
+{
+  uint8_t LSC[53];              /* LSC */
+  uint8_t AWB[8];               /* AWB */
+  uint8_t Module_Info[9];
+  uint8_t AF_Macro[2];
+  uint8_t AF_Inifity[5];
+} st_t4k35_otp;
+
+#define T4K35_OTP_PSEL 0x3502
+#define T4K35_OTP_CTRL 0x3500
+#define T4K35_OTP_DATA_BEGIN_ADDR 0x3504
+#define T4K35_OTP_DATA_END_ADDR 0x3543
+
+static uint16_t t4k35_otp_data[T4K35_OTP_DATA_END_ADDR - T4K35_OTP_DATA_BEGIN_ADDR + 1] = {0x00};
+static uint16_t t4k35_otp_data_backup[T4K35_OTP_DATA_END_ADDR - T4K35_OTP_DATA_BEGIN_ADDR + 1] = {0x00};
+
+static uint16_t t4k35_r_golden_value=0x50; //0x91
+static uint16_t t4k35_g_golden_value=0x90; //0xA6
+static uint16_t t4k35_b_golden_value=0x5d; //0x81
+
+#define SET_T4K35_REG(reg_addr, para)  msm_camera_i2c_write(s_ctrl->sensor_i2c_client,reg_addr,para, MSM_CAMERA_I2C_BYTE_DATA)
+#define GET_T4K35_REG(reg_addr,para)   msm_camera_i2c_read(s_ctrl->sensor_i2c_client, reg_addr,&para, MSM_CAMERA_I2C_BYTE_DATA)
+static void t4k35_otp_set_page(struct msm_sensor_ctrl_t *s_ctrl,uint16_t page)
+{
+   //set page
+    SET_T4K35_REG(T4K35_OTP_PSEL, page);
+}
+static void t4k35_otp_access(struct msm_sensor_ctrl_t *s_ctrl,)
+{
+ uint16_t reg_val;
+ //OTP access
+ GET_T4K35_REG(T4K35_OTP_CTRL, reg_val);
+ SET_T4K35_REG(T4K35_OTP_CTRL, reg_val | 0x80);
+ msleep(10);
+}
+static void t4k35_otp_read_enble(struct msm_sensor_ctrl_t *s_ctrl,uint8_t enble)
+{
+    if (enble)
+        SET_T4K35_REG(T4K35_OTP_CTRL, 0x01);
+    else
+        SET_T4K35_REG(T4K35_OTP_CTRL, 0x00);
+}
+
+
+
+static int32_t t4k35_otp_read_data(struct msm_sensor_ctrl_t *s_ctrl,uint16_t* otp_data)
+{
+    uint16_t i = 0;
+    //uint16_t data = 0;
+
+    for (i = 0; i <= (T4K35_OTP_DATA_END_ADDR - T4K35_OTP_DATA_BEGIN_ADDR); i++)
+ {
+        GET_T4K35_REG(T4K35_OTP_DATA_BEGIN_ADDR+i,otp_data[i]);
+    }
+
+    return 0;
+}
+
+static void t4k35_update_awb(struct msm_sensor_ctrl_t *s_ctrl,struct t4k35_otp_struct *p_otp)
+{
+  uint16_t rg,bg,r_otp,g_otp,b_otp;
+
+  r_otp=p_otp->AWB[1]+(p_otp->AWB[0]<<8);
+  g_otp=(p_otp->AWB[3]+(p_otp->AWB[2]<<8)+p_otp->AWB[5]+(p_otp->AWB[4]<<8))/2;
+  b_otp=p_otp->AWB[7]+(p_otp->AWB[6]<<8);
+  
+  rg = 256*(t4k35_r_golden_value *g_otp)/(r_otp*t4k35_g_golden_value);
+  bg = 256*(t4k35_b_golden_value*g_otp)/(b_otp*t4k35_g_golden_value);
+
+  printk("r_golden=0x%x,g_golden=0x%x, b_golden=0x%0x\n", t4k35_r_golden_value,t4k35_g_golden_value,t4k35_b_golden_value);
+  printk("r_otp=0x%x,g_opt=0x%x, b_otp=0x%0x\n", r_otp,g_otp,b_otp);
+  printk("rg=0x%x, bg=0x%0x\n", rg,bg);
+
+  //R
+  SET_T4K35_REG(0x0212, rg >> 8);
+  SET_T4K35_REG(0x0213, rg & 0xff);
+
+  //B
+  SET_T4K35_REG(0x0214, bg >> 8);
+  SET_T4K35_REG(0x0215, bg & 0xff);
+
+}
+
+static void t4k35_update_lsc(struct msm_sensor_ctrl_t *s_ctrl,struct t4k35_otp_struct *p_otp)
+{
+  uint16_t addr;
+  int i;
+
+  //set lsc parameters
+  addr = 0x323A;
+  SET_T4K35_REG(addr, p_otp->LSC[0]);
+  addr = 0x323E;
+  for(i = 1; i < 53; i++) 
+  {
+    printk("SET LSC[%d], addr:0x%0x, val:0x%0x\n", i, addr, p_otp->LSC[i]);
+    SET_T4K35_REG(addr++, p_otp->LSC[i]);
+  }
+
+  //turn on lsc
+  SET_T4K35_REG(0x3237,0x80);
+}
+
+static int32_t t4k35_otp_init_lsc_awb(struct msm_sensor_ctrl_t *s_ctrl,struct t4k35_otp_struct *p_otp)
+{
+  int i,j;
+  //uint16_t reg_val;
+  uint16_t check_sum=0x00;
+
+  //read OTP LSC and AWB data
+  for(i = 3; i >= 0; i--) 
+  {
+   //otp enable
+   t4k35_otp_read_enble(s_ctrl,1);
+   //read data area
+   //set page
+ t4k35_otp_set_page(s_ctrl,i);
+ //OTP access
+    t4k35_otp_access(s_ctrl);
+
+ printk("otp lsc data area data:%d\n",i);
+    t4k35_otp_read_data(s_ctrl,t4k35_otp_data);
+
+
+ //read data backup area
+ printk("otp lsc backup area data:%d\n",i+6);
+ //set page
+ t4k35_otp_set_page(s_ctrl,i+6);
+ //OTP access
+       t4k35_otp_access(s_ctrl);
+
+ t4k35_otp_read_data(s_ctrl,t4k35_otp_data_backup);
+ //otp disable
+   t4k35_otp_read_enble(s_ctrl,0);
+
+ //get final OTP data;
+    for(j = 0; j < 64; j++) 
+ {
+        t4k35_otp_data[j]=t4k35_otp_data[j]|t4k35_otp_data_backup[j];
+    }
+
+ //check program flag
+    if (0 == t4k35_otp_data[0]) 
+ {
+      continue;
+    } 
+ else 
+ {
+  //checking check sum
+  for(j = 2; j < 64; j++) 
+  {
+        check_sum=check_sum+t4k35_otp_data[j];
+      }
+  
+  if((check_sum&0xFF)==t4k35_otp_data[1])
+  {
+   printk("otp lsc checksum ok!\n");
+ for(j=3;j<=55;j++)
+ {
+ p_otp->LSC[j-3]=t4k35_otp_data[j];
+ }
+ for(j=56;j<=63;j++)
+ {
+ p_otp->AWB[j-56]=t4k35_otp_data[j];
+ }
+ return 0;
+  }
+  else
+  {
+ printk("otp lsc checksum error!\n");
+ return -1;
+  }
+    }
+  }
+
+  if (i < 0) 
+  {
+    return -1;
+    printk("No otp lsc data on sensor t4k35\n");
+  }
+  else 
+  {
+    return 0;
+  }
+}
+
+
+static int32_t t4k35_otp_init_module_info(struct msm_sensor_ctrl_t *s_ctrl,struct t4k35_otp_struct *p_otp)
+{
+  int i,pos;
+  uint16_t check_sum=0x00;
+
+  //otp enable
+  t4k35_otp_read_enble(s_ctrl,1);
+  //set page
+  t4k35_otp_set_page(s_ctrl,4);
+  //OTP access
+  t4k35_otp_access(s_ctrl);
+  printk("data area data:\n");
+  t4k35_otp_read_data(s_ctrl,t4k35_otp_data);
+
+
+  //set page
+  t4k35_otp_set_page(s_ctrl,10);
+  //OTP access
+  t4k35_otp_access(s_ctrl);
+  t4k35_otp_read_data(s_ctrl,t4k35_otp_data_backup);
+  //otp disable
+  t4k35_otp_read_enble(s_ctrl,0);
+  
+  //get final OTP data;
+  for(i = 0; i < 64; i++) 
+  {
+  t4k35_otp_data[i]=t4k35_otp_data[i]|t4k35_otp_data_backup[i];
+  }
+
+  //check flag
+  if(t4k35_otp_data[32])
+  {
+  pos=32;
+  }
+  else if(t4k35_otp_data[0])
+  {
+    pos=0;
+  }
+  else
+  {
+    printk("otp no module information!\n");
+    return -1;
+  }
+  
+
+  //checking check sum
+  for(i = pos+2; i <pos+32; i++) 
+  {
+     check_sum=check_sum+t4k35_otp_data[i];
+  }
+  
+  if((check_sum&0xFF)==t4k35_otp_data[pos+1])
+  {
+   printk("otp module info checksum ok!\n");
+ if((t4k35_otp_data[pos+15]==0x00)&&(t4k35_otp_data[pos+16]==0x00)
+ &&(t4k35_otp_data[pos+17]==0x00)&&(t4k35_otp_data[pos+18]==0x00)
+ &&(t4k35_otp_data[pos+19]==0x00)&&(t4k35_otp_data[pos+20]==0x00)
+ &&(t4k35_otp_data[pos+21]==0x00)&&(t4k35_otp_data[pos+22]==0x00))
+ return 0;
+
+
+ t4k35_r_golden_value=t4k35_otp_data[pos+16]+(t4k35_otp_data[pos+15]<<8);
+ t4k35_g_golden_value=(t4k35_otp_data[pos+18]+(t4k35_otp_data[pos+17]<<8)+t4k35_otp_data[pos+20]+(t4k35_otp_data[pos+19]<<8))/2;
+ t4k35_b_golden_value=t4k35_otp_data[pos+22]+(t4k35_otp_data[pos+21]<<8);
+ return 0;
+  }
+  else
+  {
+ printk("otp module info checksum error!\n");
+ return -1;
+  }
+
+}
+
+static int32_t t4k35_otp_init_setting(struct msm_sensor_ctrl_t *s_ctrl)
+{
+    int32_t rc = 0;
+ st_t4k35_otp t4k35_data;
+
+ rc=t4k35_otp_init_module_info(s_ctrl,&t4k35_data);
+ if(rc==0x00)
+ {
+ //check module information
+ }
+
+     rc=t4k35_otp_init_lsc_awb(s_ctrl,&t4k35_data);
+ if(rc==0x00)
+ {
+ t4k35_update_lsc(s_ctrl,&t4k35_data);
+ t4k35_update_awb(s_ctrl,&t4k35_data);
+ }
+
+
+    return rc;
+}
+
+#endif
+int32_t t4k35_sensor_setting(struct msm_sensor_ctrl_t *s_ctrl,
+  int update_type, int res)
+{
+    int32_t rc = 0;
+    static int csi_config;
+
+    s_ctrl->func_tbl->sensor_stop_stream(s_ctrl);
+    msleep(30);
+    if (update_type == MSM_SENSOR_REG_INIT) {
+        CDBG("Register INIT\n");
+        s_ctrl->curr_csi_params = NULL;
+        msm_sensor_enable_debugfs(s_ctrl);
+        msm_sensor_write_init_settings(s_ctrl);
+
+#ifdef T4K35_OTP_FEATURE
+        t4k35_otp_init_setting(s_ctrl);
+#endif
+
+        csi_config = 0;
+    } else if (update_type == MSM_SENSOR_UPDATE_PERIODIC) {
+        CDBG("PERIODIC : %d\n", res);
+        msm_sensor_write_conf_array(
+            s_ctrl->sensor_i2c_client,
+            s_ctrl->msm_sensor_reg->mode_settings, res);
+        msleep(30);
+        if (!csi_config) {
+            s_ctrl->curr_csic_params = s_ctrl->csic_params[res];
+            CDBG("CSI config in progress\n");
+            v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev,
+                NOTIFY_CSIC_CFG,
+                s_ctrl->curr_csic_params);
+            CDBG("CSI config is done\n");
+            mb();
+            msleep(30);
+            csi_config = 1;
+        }
+        v4l2_subdev_notify(&s_ctrl->sensor_v4l2_subdev,
+            NOTIFY_PCLK_CHANGE,
+            &s_ctrl->sensordata->pdata->ioclk.vfe_clk_rate);
+
+        s_ctrl->func_tbl->sensor_start_stream(s_ctrl);
+        msleep(50);
+    }
+    return rc;
+}
+
+static struct msm_sensor_fn_t t4k35_func_tbl = {
+        .sensor_start_stream = msm_sensor_start_stream,
+        .sensor_stop_stream = msm_sensor_stop_stream,
+        .sensor_group_hold_on = msm_sensor_group_hold_on,
+        .sensor_group_hold_off = msm_sensor_group_hold_off,
+        .sensor_set_fps = t4k35_sensor_set_fps,
+        .sensor_write_exp_gain = t4k35_sensor_write_exp_gain,    //msm_sensor_write_exp_gain1,
+        .sensor_write_snapshot_exp_gain = t4k35_write_pict_exp_gain,  //msm_sensor_write_exp_gain1,
+        .sensor_setting = msm_sensor_setting,
+        .sensor_csi_setting = t4k35_sensor_setting,
+        .sensor_set_sensor_mode = msm_sensor_set_sensor_mode,
+        .sensor_mode_init = msm_sensor_mode_init,
+        .sensor_get_output_info = msm_sensor_get_output_info,
+        .sensor_config = msm_sensor_config,
+        .sensor_power_up = t4k35_sensor_power_up,
+        .sensor_power_down = t4k35_sensor_power_down,
+        .sensor_adjust_frame_lines = msm_sensor_adjust_frame_lines,
+        .sensor_get_csi_params = msm_sensor_get_csi_params,
+        //.sensor_match_id  = t4k35_sensor_match_id,
+};
+
+static struct msm_sensor_reg_t t4k35_regs = {
+        .default_data_type = MSM_CAMERA_I2C_BYTE_DATA,
+        .start_stream_conf = t4k35_start_settings,
+        .start_stream_conf_size = ARRAY_SIZE(t4k35_start_settings),
+        .stop_stream_conf = t4k35_stop_settings,
+        .stop_stream_conf_size = ARRAY_SIZE(t4k35_stop_settings),
+        .group_hold_on_conf = t4k35_groupon_settings,
+        .group_hold_on_conf_size = ARRAY_SIZE(t4k35_groupon_settings),
+        .group_hold_off_conf = t4k35_groupoff_settings,
+        .group_hold_off_conf_size =
+                ARRAY_SIZE(t4k35_groupoff_settings),
+        .init_settings = &t4k35_init_conf[0],
+        .init_size = ARRAY_SIZE(t4k35_init_conf),
+        .mode_settings = &t4k35_confs[0],
+        .output_settings = &t4k35_dimensions[0],
+        .num_conf = ARRAY_SIZE(t4k35_confs),
+};
+
+static struct msm_sensor_ctrl_t t4k35_s_ctrl = {
+        .msm_sensor_reg = &t4k35_regs,
+        .sensor_i2c_client = &t4k35_sensor_i2c_client,
+        .sensor_i2c_addr = 0x6E,//0x6C,
+        .sensor_output_reg_addr = &t4k35_reg_addr,
+        .sensor_id_info = &t4k35_id_info,
+        .sensor_exp_gain_info = &t4k35_exp_gain_info,
+        .cam_mode = MSM_SENSOR_MODE_INVALID,
+        .csi_params = &t4k35_csi_params_array[0],
+        .csic_params = &t4k35_csic_params_array[0],
+        .msm_sensor_mutex = &t4k35_mut,
+        .sensor_i2c_driver = &t4k35_i2c_driver,
+        .sensor_v4l2_subdev_info = t4k35_subdev_info,
+        .sensor_v4l2_subdev_info_size = ARRAY_SIZE(t4k35_subdev_info),
+        .sensor_v4l2_subdev_ops = &t4k35_subdev_ops,
+        .func_tbl = &t4k35_func_tbl,
+        .clk_rate = MSM_SENSOR_MCLK_24HZ, // ADD
+};
+
+module_init(msm_sensor_init_module);
+MODULE_DESCRIPTION("Toshiba 8MP Bayer sensor driver");
+MODULE_LICENSE("");

commit db285ae7f99fa669d65651b11bff78ea1364ef99
Author: wei.qifa <[email protected]>
Date:   Thu Apr 2 15:37:44 2015 +0800


      [问题描述]:T4K35摄像头驱动代码提交
         [评审人]:柳珍
    
    modified:   chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/Android.mk
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/Android.mk
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.c
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.h
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/Android.mk
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.c
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.h
    modified:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/sensor.c
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.c
    new file:   chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.h
    modified:   kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-camera.c


diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk
index 4f7b619..085e5dc 100755
--- a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-vendor.mk
@@ -408,6 +408,8 @@ MM_CAMERA += libchromatix_ov7692_default_video
 MM_CAMERA += libchromatix_ov8825_ar
 MM_CAMERA += libchromatix_ov8825_preview
 MM_CAMERA += libchromatix_ov8825_default_video
+MM_CAMERA += libchromatix_t4k35_preview
+MM_CAMERA += libchromatix_t4k35_default_video
 MM_CAMERA += libchromatix_imx219_preview
 MM_CAMERA += libchromatix_imx219_default_video
 MM_CAMERA += libchromatix_ar0542_ar
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/Android.mk b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/Android.mk
new file mode 100755
index 0000000..582ddc9
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/Android.mk
@@ -0,0 +1,3 @@
+ifeq ($(TARGET_ARCH),arm)
+include $(call all-subdir-makefiles)
+endif
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/Android.mk b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/Android.mk
new file mode 100755
index 0000000..ae98ec5
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/Android.mk
@@ -0,0 +1,39 @@
+T4K35_CHROMATIX_PREVIEW_PATH := $(call my-dir)
+
+# ---------------------------------------------------------------------------
+#                      Make the shared library (libchromatix_t4k35_preview)
+# ---------------------------------------------------------------------------
+
+include $(CLEAR_VARS)
+LOCAL_PATH := $(T4K35_CHROMATIX_PREVIEW_PATH)
+LOCAL_MODULE_TAGS := optional eng
+
+LOCAL_CFLAGS:= \
+        -DAMSS_VERSION=$(AMSS_VERSION) \
+        $(mmcamera_debug_defines) \
+        $(mmcamera_debug_cflags) \
+        -include camera_defs_i.h
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../include
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/sensor
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/flash
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/flash/xenon
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../isp3a
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../common
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../../../../hardware/qcom/camera
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../mm-still/jpeg/inc
+
+LOCAL_SRC_FILES:= chromatix_t4k35_preview.c
+
+LOCAL_MODULE           := libchromatix_t4k35_preview
+LOCAL_PRELINK_MODULE   := false
+LOCAL_SHARED_LIBRARIES := libcutils
+include $(LOCAL_PATH)/../../../../../../local_additional_dependency.mk
+
+ifeq ($(MM_DEBUG),true)
+LOCAL_SHARED_LIBRARIES += liblog
+endif
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.c b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.c
new file mode 100755
index 0000000..f7e87e5
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.c
@@ -0,0 +1,39 @@
+/*============================================================================
+
+   Copyright (c) 2012 Qualcomm Technologies, Inc. All Rights Reserved.
+   Qualcomm Technologies Proprietary and Confidential.
+
+============================================================================*/
+
+/*============================================================================
+ *                      INCLUDE FILES
+ *===========================================================================*/
+#include <string.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+#include "sensor.h"
+#include "chromatix.h"
+#include "camera_dbg.h"
+
+static chromatix_parms_type chromatix_t4k35_parms = {
+#include "chromatix_t4k35_preview.h"
+};
+
+/*============================================================================
+ * FUNCTION    - load_chromatix -
+ *
+ * DESCRIPTION:
+ *==========================================================================*/
+void load_chromatix(void *ctrl)
+{
+  sensor_ctrl_t *sctrl = (sensor_ctrl_t *) ctrl;
+
+  CDBG("%s:%s:%d\n", __FILE__, __func__, __LINE__);
+  memcpy(&sctrl->chromatixData, &chromatix_t4k35_parms,
+    sizeof(chromatix_parms_type));
+  CDBG("%s:%d: chromatix_version=%d\n", __func__, __LINE__,
+    sctrl->chromatixData.chromatix_version);
+}
+
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.h b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.h
new file mode 100755
index 0000000..080a67e
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/preview/chromatix_t4k35_preview.h
@@ -0,0 +1,9835 @@
+/*========================================================================
+                          C H R O M A T I X
+
+   DESCRIPTION
+   Auto-Generated by Chromatix tool defining camera tunable parameters.
+
+Copyright (c) 2012 Qualcomm Technologies, Inc. All Rights Reserved.
+Qualcomm Technologies Proprietary and Confidential.
+Export of this technology or software is regulated by the U.S. Government.
+Diversion contrary to U.S. law prohibited.
+==========================================================================*/
+
+/* Chromatix common DMSS header file version number */
+0x0208,
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control color correction.
+// Range: 0 or 1.
+// 0 means to use lux_index to control
+// 1 means to use gain to control
+/*********************************************************************/
+
+//snapshot
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot color correction.
+// gain start :
+// When gain >= gain_start, lowlight CC is interpolated with normal CC.
+// default: N/A
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight CC under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight CC is used.
+// default: N/A
+// range: min_gain to max_gain. Gain means digital and analog combined gain.
+// constraint: gain_end > gain_start.
+// effect: Increasing this value will use 100% lowlight CC under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight CC is interpolated with normal CC.
+// default: N/A
+// range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// effect: Increasing this value will use lowlight CC under lower light condition
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight CC is used.
+// default: N/A
+// range: Ror linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// constraint: lux_index_end > lux_index_start.
+// effect: Increasing this value will use 100% lowlight CC under lower light condition.
+//
+/*********************************************************************/
+
+//snapshot
+/* Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal and bright light color correction for snapshot.
+// 3x3 coefficients:
+// Data range: -15.99 to 15.99.
+// Constraint: The sum of each row needs to be 1.
+// Effect: Higher diagonal values result in higher color saturation with higher noise.
+//
+// 3 offsets
+// Data range: -1023 to 1023.
+// Default : 0
+// Effect: Negative values will make image darker while positive values make image brighter.
+//
+// Q factor:
+// Always set it to 0.
+/*********************************************************************/
+
+/* TL84 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Low light color correction for snapshot.
+/*********************************************************************/
+
+/* Low-Light Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.2331f,    -0.1377f,    -0.0954f,
+   0.0865f,    0.7457f,    0.1678f,
+   0.1909f,    -0.4762f,    1.2852f,
+   0,    0,    0,
+   0
+},
+/* A CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (A).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature < A_start and > A_end, use interpolation between A and FL.
+// When the color temperature >=A_end, just use A parameters.
+// Range: 4100 > A_start > A_end > 2850.
+// Effect: A_start and A_end controls the range of interpolation between A and FL.
+// Constraint: A_start > A_end.
+/*********************************************************************/
+
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (Daylight).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature > Daylight_start and < Daylight_end, use interpolation between D65 and FL.
+// When the color temperature >=D65_end, just use D65 parameters.
+// Range: 4100 < Dayligh_start < Dayligh_end < 5000.
+// Effect: Daylight_start and Daylight_end controls the range of interpolation between Daylight and FL.
+// Constraint: Daylight_start < Daylight_end.
+/*********************************************************************/
+
+   4600, /* Start */
+   4690, /* End */
+},
+/* D65 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.8088f,    -0.5085f,    -0.3004f,
+   -0.1787f,    1.1742f,    0.0045f,
+   0.0189f,    -0.8274f,    1.8085f,
+   0,    0,    0,
+   0
+},
+/* A Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7092f,    -0.3794f,    -0.3299f,
+   -0.1528f,    1.1459f,    0.0069f,
+   0.0321f,    -0.7239f,    1.6918f,
+   0,    0,    0,
+   0
+},
+/* LED CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* LED Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+/* Strobe CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* Strobe Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.0000f,    0.0000f,    0.0000f,
+   0.0000f,    1.0000f,    0.0000f,
+   0.0000f,    0.0000f,    1.0000f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for viewfinder color correction.
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal and bright light color correction for viewfinder.
+/*********************************************************************/
+
+/* TL84 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Low light color correction for viewfinder.
+/*********************************************************************/
+
+/* Yhi-Ylo Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.2331f,    -0.1377f,    -0.0954f,
+   0.0865f,    0.7457f,    0.1678f,
+   0.1909f,    -0.4762f,    1.2852f,
+   0,    0,    0,
+   0
+},
+/* LED CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* LED Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+  1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+/* A CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (A).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature < A_start and > A_end, use interpolation between A and FL.
+// When the color temperature >=A_end, just use A parameters.
+// Range: 4100 > A_start > A_end > 2850.
+// Effect: A_start and A_end controls the range of interpolation between A and FL.
+// Constraint: A_start > A_end.
+/*********************************************************************/
+
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (Daylight).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature > Daylight_start and < Daylight_end, use interpolation between D65 and FL.
+// When the color temperature >=D65_end, just use D65 parameters.
+// Range: 4100 < Dayligh_start < Dayligh_end < 5000.
+// Effect: Daylight_start and Daylight_end controls the range of interpolation between Daylight and FL.
+// Constraint: Daylight_start < Daylight_end.
+/*********************************************************************/
+
+   4200, /* Start */
+   4590, /* End */
+},
+/* D65 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.8088f,    -0.5085f,    -0.3004f,
+   -0.1787f,    1.1742f,    0.0045f,
+   0.0189f,    -0.8274f,    1.8085f,
+   0,    0,    0,
+   0
+},
+/* A Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7092f,    -0.3794f,    -0.3299f,
+   -0.1528f,    1.1459f,    0.0069f,
+   0.0321f,    -0.7239f,    1.6918f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// use gain or lux_index to control color conversion
+// range: 0 or 1.
+// 0 means to use lux_index to control
+// 1 means to use gain to control
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/**************************************************************************************/
+// Feature name :
+// Trigger point for snapshot and viewfinder color conversion (advanced chroma enhancement).
+// gain start :
+// When gain >= gain_start, lowlight CV is interpolated with normal CV.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight CV under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight CV is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight CV under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight CV is interpolated with normal CV.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight CV under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight CV is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight CV under lower light condition
+//
+/**************************************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light advanced chroma enhancement for snapshot and viewfinder for 7k and 8k.
+//
+// am, ap,: Color saturation on Cb
+// Data range: -3.99 to 3.99. 0.5 is unity.
+// Effect: Higher values result in higher color saturation in Cb with higher noise.
+//
+// cm, cp,: Color saturation on Cr
+// Data range: -3.99 to 3.99. 0.5 is unity.
+// Effect: Higher values result in higher color saturation in Cr with higher noise.
+//
+// bm, bp: Certain offset coeffs for Cb calculation.
+// Data range: -1023 to 1023.
+//
+// dm, dp: Certain offset coeffs for Cr calculation.
+// Data range: -1023 to 1023.
+//
+// k_cb, k_cr: Offsets for Cb,Cr, respectively.
+// Data range: -1023 to 1023.
+// Default: 128.
+//
+// v0, v1, v2:
+// Coefficients from RGB to Y conversion.
+// Range: -7.99 to 7.99.
+// Constraint: Sum of them needs to be 1.
+//
+// K offset: Offset to convert from RGB to Y.
+// Range: 0 to 255.
+// Default : 0.
+// Effect: Positive values make image brighter and negative values make image darker.
+/*********************************************************************/
+
+/* TL84 Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5097f, 0.5097f,
+      /* b_m, b_p */
+      -0.3095f, -0.3095f,
+      /* c_m, c_p */
+      0.5296f, 0.5296f,
+      /* d_m, d_p */
+      -0.1461f, -0.1461f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.620f, 0.620f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.620f, 0.620f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* D65 Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Yhi-Ylo Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5000f, 0.5000f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5000f, 0.5000f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Outdoor Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Monochrome Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Sepia Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      110, 140
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Negative Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      -0.5000f, -0.5000f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      -0.5000f, -0.5000f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      -0.2990f, -0.5870f, -0.1140f,
+      /* k */
+      255
+   }
+},
+/* Aqua Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      160, 80
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+
+/*********************************************************************/
+// Feature name :
+// Color saturation boost factor for "flower" best shot modes.
+// Range: 1.0 to 2.0.
+/*********************************************************************/
+
+1.100000f, /* Saturated Color Conversion Factor */
+/* Sunset Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* TL84 Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5097f, 0.5097f,
+      /* b_m, b_p */
+      -0.3095f, -0.3095f,
+      /* c_m, c_p */
+      0.5296f, 0.5296f,
+      /* d_m, d_p */
+      -0.1461f, -0.1461f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* D65 Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.620f, 0.620f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.620f, 0.620f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A CCT Trigger */
+{
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+   4600, /* Start */
+   4690, /* End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light color conversion for snapshot and viewfinder for 6k.
+//
+// v0, v1, v2:
+// Coefficients from RGB to Y conversion.
+// Range: -1.99 to 1.99.
+// Constraint: Sum of them needs to be 1.
+//
+// RtoCb, GtoCb, BtoCb:
+// R,G,B to Cb coefficients, respectively.
+// Range: -1.99 to 1.99 for Q10 format.
+// Constraints: Sum of them needs to be 0.
+//
+// RtoCr, GtoCr, BtoCr:
+// R,G,B to Cr coefficients, respectively.
+// Range: -1.99 to 1.99 for Q10 format.
+// constraints: sum of them needs to be 0.
+//
+// K offset: Offset to convert from RGB to Y.
+// Range: -1023 to 1023.
+// Default : 0.
+// Effect: Larger positive value makes image brighter, negative value makes image darker.
+//
+// k_cb, k_cr: Offsets for Cb,Cr , respectively.
+// Data range: -1023 to 1023.
+// Default : 128.
+
+/*********************************************************************/
+
+/* TL84 Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* A Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* D65 Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Lowlight Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Outdoor Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Monochrome Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    128,    128
+},
+/* Sepia Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    110,    140
+},
+/* Negative Color Conversion */
+{
+   -0.2990f,    -0.5870f,    -0.1140f,
+   0.1687f,    0.3313f,    -0.5000f,
+   -0.5000f,    0.4187f,    0.0813f,
+   255,    128,    128
+},
+/* Aqua Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    160,    80
+},
+/* Sunset Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* TL84 Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* D65 Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* A Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+
+/*********************************************************************/
+// Feature name :
+// Manual white balance gains for both snapshot and viewfinder.
+/*********************************************************************/
+
+/* TL84 Whitebalance - RGB */
+{1.337000f, 1.000000f, 1.797000f},
+/* D50 Whitebalance - RGB */
+{1.530000f, 1.000000f, 1.342000f},
+/* A Whitebalance - RGB */
+{1.054000f, 1.000000f, 2.279000f},
+/* D65 Whitebalance - RGB */
+{1.700000f, 1.000000f, 1.103000f},
+/* Strobe Flash Whitebalance - RGB */
+{1.000000f, 1.000000f, 1.000000f},
+/* LED Flash Whitebalance - RGB */
+{1.58000f, 1.000000f, 1.40000f},
+/* Channel Balance Gains */
+{1.000000f, 0.998264f, 1.000000f, 1.000000f},
+
+/*********************************************************************/
+// Feature name :
+//
+// R/G ratio, B/G ratio: AWB referecne points used for auto WB calculation.
+//
+//Red Gain Adjust,Blue Gain Adjust: Additional gain applied for snapshot only.
+/*********************************************************************/
+
+/* AWB Reference Points w/HW */
+{
+   /* D65 AWB Reference Point */
+   {
+      0.565430f, /* R/G ratio */
+      0.799805f, /* B/G ratio */
+      1.035000f, /* Red Gain Adjust */
+      0.975000f /* Blue Gain Adjust */
+   },
+   /* Shade AWB Reference Point */
+   {
+      0.530811f, /* R/G ratio */
+      0.856241f, /* B/G ratio */
+      0.931000f, /* Red Gain Adjust */
+      0.980000f /* Blue Gain Adjust */
+   },
+   /* A AWB Reference Point */
+   {
+      0.949000f, /* R/G ratio */
+      0.439000f, /* B/G ratio */
+      0.850000f, /* Red Gain Adjust */
+      0.970000f /* Blue Gain Adjust */
+   },
+   /* TL84 AWB Reference Point */
+   {
+      0.738000f, /* R/G ratio */
+      0.506000f, /* B/G ratio */
+      1.000000f, /* Red Gain Adjust */
+      0.988000f /* Blue Gain Adjust */
+   },
+   /* CoolWhite AWB Reference Point */
+   {
+      0.635000f, /* R/G ratio */
+      0.490000f, /* B/G ratio */
+      1.070000f, /* Red Gain Adjust */
+      1.000000f /* Blue Gain Adjust */
+   },
+   /* Horizon AWB Reference Point */
+   {
+      1.117000f, /* R/G ratio */
+      0.369000f, /* B/G ratio */
+      0.836000f, /* Red Gain Adjust */
+      0.982000f /* Blue Gain Adjust */
+   },
+   /* D50 AWB Reference Point */
+   {
+      0.628896f, /* R/G ratio */
+      0.656951f, /* B/G ratio */
+      0.933000f, /* Red Gain Adjust */
+      0.990000f /* Blue Gain Adjust */
+   },
+   /* Cust. Fluor. AWB Reference Point */
+   {
+      0.58000f, /* R/G ratio */
+      0.65000f, /* B/G ratio */
+      0.98000f, /* Red Gain Adjust */
+      0.98000f /* Blue Gain Adjust */
+   },
+   /* Noon AWB Reference Point */
+   {
+      0.637551f, /* R/G ratio */
+      0.703687f, /* B/G ratio */
+      0.935000f, /* Red Gain Adjust */
+      0.970000f /* Blue Gain Adjust */
+   },
+},
+/* AWB Stats with Hardware Rolloff */
+{
+
+/*********************************************************************/
+// Feature name : AWB Low Light Bounding Box
+// Bounding box to select near gray pixels for AWB under low light.
+// This setting is used  when exposure_index reaches max
+// exposure_index provided in exposure table in Chromatix header.
+/*********************************************************************/
+
+   /* Low-Light AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      235
+   },
+
+/*********************************************************************/
+// Feature name : AWB Bounding Box
+// Bounding box to select near gray pixels for AWB under normal and bright light.
+// This setting is used  when exposure_index is less than max
+// exposure_index provided in exposure table in Chromatix header.
+/*********************************************************************/
+
+   /* Normal AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      238
+   },
+
+/*********************************************************************/
+// Feature name : AWB Bright Best Shot Bounding Box
+// Bounding box to select near gray pixels for AWB under bright light for
+// the following best shot mode only: landscape, beach, snow. Under non best
+// shot mode, this setting is not used.
+//
+/*********************************************************************/
+
+   /* Outdoor AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      238
+   },
+},
+
+/*********************************************************************/
+// Comment:
+// Indoor and outdoor index are the parameters used in AWB algorithm in
+// a variety of heuristics. We do not recommend the user change these values.
+/*********************************************************************/
+
+260, /* Indoor Index */
+160, /* Outdoor Index */
+
+/*********************************************************************/
+// Feature name :
+// Blue gain adj ratio is used for Snow and Beach best shot modes only. This factor
+// is applied on top of the blue WB gain determined by AWB algorithm.
+// Range: 0.7 to 1.5.
+/*********************************************************************/
+
+1.100000f, /* Snow Blue Gain Adj Ratio */
+0.900000f, /* Beach Blue Gain Adj Ratio */
+
+/*********************************************************************/
+// Feature name :
+// The following group of parameters are used by AWB algorithm. We do not
+// recommend the user modify them.
+/*********************************************************************/
+
+8, /* Outlier Distance */
+-8, /* Green Zone Offset RG */
+-8, /* Green Zone Offset BG */
+2, /* Num Frames to skip after changing VFE */
+
+/*******************************************************************************/
+// variable name: awb_extreme_RG_ratio_threshold
+// boundary to collect stat in R/G direction
+// applicale chipset(s): VFE 3.1 and higher
+// applicable operation mode: preview, camcorder, snapshot
+// default value (calculated-NA): 1.1 x R/G value of blue patch on MCC (#15) under Horizon
+// data range: 0.0 to 4.0
+// constraints: 0.0 to 4.0
+// effect: higher value allows less pixels to be collected.
+/******************************************************************************/
+
+2.000000f, /* AWB Extreme RG Ratio Treshold */
+
+/*******************************************************************************/
+// variable name: awb_extreme_BG_ratio_threshold
+// boundary to collect stat in B/G direction
+// applicale chipset(s): VFE 3.1 and higher
+// applicable operation mode: preview, camcorder, snapshot
+// default value: 1.25
+// data range: 1.0 to 4.0
+// constraints: 1.0 to 4.0
+// effect: higher value allows less pixels to be collected.
+/******************************************************************************/
+
+1.500000f, /* AWB Extreme BG Ratio Treshold */
+/* More AWB Parameters */
+60, /* Compact Cluster R2 */
+101, /* Compact Cluster To Ref Point R2 */
+75, /* A Cluster Threshold */
+75, /* F Cluster Threshold */
+60, /* Day Cluster Threshold */
+12, /* Outdoor Green Threshold */
+8, /* Outdoor Green Threshold Bright F */
+15, /* Outdoor Green Threshold Dark F */
+12, /* Day Cluster Threshold For F */
+1, /* Whitebalance Allow FLine */
+15, /* Outdoor Valid Sample Count Threshold */
+25, /* Outdoor Green Upper Threshold */
+1000, /* R2 Threshold */
+8, /* Outdoor Green Threshold Bright A */
+15, /* Outdoor Green Threshold Dark A */
+12, /* Day Cluster Threshold For A */
+
+/*********************************************************************/
+// Feature name :
+// CC global gain is a global digital gain applied to the system.
+// We do not recommend the user change this value.
+/*********************************************************************/
+
+1.100000f, /* CC Global Gain */
+
+/*********************************************************************/
+// Feature name :
+// The final WB gain applied to the system is mandated to be between min
+// and max WB values.  We do not recommend the user change the values.
+/*********************************************************************/
+
+/* AWB Min Gains - RGB */
+{1.000000f, 1.000000f, 1.000000f},
+/* AWB Max Gains - RGB */
+{3.900000f, 3.900000f, 3.900000f},
+
+/*********************************************************************/
+// Feature name :
+// The following group of parameters are used by AWB algorithm. We do not
+// recommend the user modify them.
+/*********************************************************************/
+
+{ 1.000000f, 1.000000f }, /* AWB Sample Influence, Outdoor/Indoor */
+/* AWB Weight Vector */
+{
+   {15, 80, 20}, /* AWB Weight Vector D65 */
+   {5, 40, 20}, /* AWB Weight Vector D75 */
+   {7, 2, 1}, /* AWB Weight Vector A */
+   {85, 1, 20}, /* AWB Weight Vector Warm F */
+   {75, 1, 15}, /* AWB Weight Vector Cool F */
+   {3, 1, 1}, /* AWB Weight Vector Horizon */
+   {5, 100, 5}, /* AWB Weight Vector D50 */
+   {11, 1, 3}, /* AWB Weight Vector Cust F */
+   {1, 100, 5}, /* AWB Weight Vector Daylight Noon */
+   {5, 60, 20}, /* AWB Weight Vector Daylight Hybrid */
+},
+70, /* AWB White World Y Min Ratio */
+
+/*********************************************************************/
+// Feature name :
+// AWB aggresiveness
+// 0 low aggressive
+// 1 medium aggressive
+// 2 high aggressive
+/*********************************************************************/
+
+0, /* AWB Aggressiveness */
+0, /* AWB Self-Calibrate */
+
+/******************************************************************************/
+// Feature name : AWB self calibration
+// variable name:
+// Adjust amount of adjustment allowed for AWB self calibration
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+// default value: high=1.15
+// default value: low=0.9
+// data range: high (1.0, 1.2), low (0.8, 1.0)
+// constraints:
+// effect: larger high = larger adjustment, smaller low = larger adjustment
+/******************************************************************************/
+
+1.150000f, /* AWB Self-Calibrate Adjust Ratio High */
+0.900000f, /* AWB Self-Calibrate Adjust Ratio Low */
+
+/******************************************************************************/
+// Feature name : AWB
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+//
+// variable name: awb_enable_lock_heuristics_1
+// Enable lock heuristics #1
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #1.
+// Prevents outdoor decision to be switched into indoor.
+//
+// variable name: awb_enable_lock_heuristics_2
+// Enable lock heuristics #2
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #2.
+// Prevents fluorescent light to be switched to outdoor.
+//
+// variable name: awb_enable_lock_heuristics_3
+// Enable lock heuristics #3
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #3.
+// Prevents fluorescent light to be switched to incandescent.
+/******************************************************************************/
+
+0, /* AWB Enable Lock Heuristics 1 */
+0, /* AWB Enable Lock Heuristics 2 */
+0, /* AWB Enable Lock Heuristics 3 */
+
+/******************************************************************************/
+// Feature name : AWB
+// variable name: awb_enable_white_world
+// Enable adaptive white world
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable adaptive white world
+/******************************************************************************/
+
+1, /* AWB Enable White World */
+/* Purple Prevent */
+{
+
+/******************************************************************************/
+// Feature name : AWB Extended
+// applicable chipset:  all VFEs.
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: AWB_purple_prevent_enable
+// Enables the feature.
+// default value: 1
+// data range: 0 and 1
+// constraints: None
+//
+// variable name: control_purple_prevent
+// Control with gain or lux_index
+// default Value: 0
+// Data Range: 0 or 1.
+// constraints: None
+// effect: use gain or lux_index for control purple sky prevention
+//
+// variable name: purple_prevent_trigger
+// Control the purple sky prevention adjustment trigger
+// default Value: between ?outdoor index and outdoor index
+// Data Range: integers 0 to a few hundreds.
+// constraints: only for bright outdoor
+// effect: smaller index values make the purple sky prevention harder to take effect. (has to be very bright)
+//
+// variable name: purple_sky_prevention_bg_threshold
+// Control the purple sky prevention adjustment
+// default Value: BG ratio of D50
+// Data Range: 0 to 2
+// constraints: around D50
+// effect: smaller index values make the adjustment larger.
+//
+// variable name: AWB_Ymin_low_threshold
+// White world Ymin low end threshold
+// default Value: 60
+// Data Range: 0 to 100
+// constraints: has to be smaller than AWB_Ymin_high_threshold
+// effect: smaller index values make the white world Ymin go lower
+//
+// variable name: AWB_Ymin_high_threshold
+// White world Ymin high end threshold
+// default Value: 98
+// Data Range: 0 to 100
+// constraints: has to be greater than AWB_Ymin_low_threshold
+// effect: smaller index values make the white world Ymin go lower
+/******************************************************************************/
+
+   1, /* Enable */
+   0, /* Control Method - 1 = Gain, 0 = Lux Index */
+   /* Trigger Point */
+   {
+      2.000000f, /* Gain Start */
+      1.000000f, /* Gain End */
+      170, /* Lux Index Start */
+      85, /* Lux Index End */
+   },
+   0.745000f, /* Sky Prevention BG Thresh */
+   60, /* AWB Ymin Low Threshold */
+   98, /* AWB Ymin High Threshold */
+},
+/* R Adjust */
+{
+
+/******************************************************************************/
+// variable name: AWB_R_adj_VF
+// Red gain_adj for viewfinder
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version: N/A
+// applicable operation mode: viewfinder
+// default Value (all): 1.0
+// Data Range: 0.8 to 1.3
+// constraints:
+// effect: higher delta from 1 will result in more adjustment
+/******************************************************************************/
+
+   1.000000f, /* D65 */
+   1.000000f, /* D75 */
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* Cool White */
+   1.000000f, /* Horizon */
+   1.000000f, /* D50 */
+   1.000000f, /* Custom Fluorescent */
+   1.000000f, /* Noon */
+},
+/* B Adjust */
+{
+
+/******************************************************************************/
+// variable name: AWB_B_adj_VF
+// Blue gain_adj for viewfinder
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version: N/A
+// applicable operation mode: viewfinder
+// default Value (all): 1.0
+// Data Range: 0.8 to 1.3
+// constraints:
+// effect: higher delta from 1 will result in more adjustment
+/******************************************************************************/
+
+   0.980000f, /* D65 */
+   0.980000f, /* D75 */
+   1.00000f, /* A */
+   0.980000f, /* TL84 */
+   0.980000f, /* Cool White */
+   1.00000f, /* Horizon */
+   0.980000f, /* D50 */
+   0.980000f, /* Custom Fluorescent */
+   0.980000f, /* Noon */
+},
+/* R Adjust Lowlight Preview */
+{
+
+/******************************************************************************/
+// Variable name: AWB_lowlight_R_adj_VF.
+// Red gain_adj for viewfinder under low light condition.
+// Main purpose is for preferred WB tuning for preview mode under low light condition.
+// Applicable chipset:  8k, 7x30, 8x60 and newer.
+// 3A version: N/A.
+// applicable operation mode: viewfinder.
+// Default value (all): 1.0.
+// Data range: 0.8 to 1.3.
+// Constraints: Higher delta from 1 could possibly result in more WB error in case AWB decision is wrong.
+// Effect: Higher delta from 1 will result in more adjustment.
+/******************************************************************************/
+
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* D65 */
+   1.000000f, /* LED */
+   1.000000f, /* Strobe */
+},
+/* B Adjust Lowlight Preview */
+{
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* D65 */
+   1.000000f, /* LED */
+   1.000000f, /* Strobe */
+},
+/* R Adjust Lowlight Snapshot */
+{
+
+/******************************************************************************/
+// Variable name: AWB_lowlight_R_adj_snapshot.
+// Red gain_adj for snaphot under low light condition.
+// Main purpose is to compensate WB difference caused by different lens rolloff
+// between VF and snapshot mode under low light condition. But also can be used
+// for preferred WB tuning under low light snapshot condition.
+// Applicable chipset:  8k, 7x30, 8x60 and newer.
+// 3A version: N/A.
+// Applicable operation mode: snapshot.
+// Default value: 1.0.
+// Data range: 0.8 to 1.3.
+// Constraints: Higher delta from 1 could possibly result in more WB error in case AWB decision is wrong.
+// Effect: Higher delta from 1 will result in more adjustment.
+/******************************************************************************/
+
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+},
+/* B Adjust Lowlight Snapshot */
+{
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+},
+
+/******************************************************************************/
+// Feature name : AWB golden module calibration data
+//               for module-by-module variation
+// applicale chipset(s): all MSM
+// applicable operation mode: camera & camcorder preview/recording/snapshot
+//
+// variable name: AWB_golden_module_R_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0 and 4
+// constraints: none
+// effect: not tunable
+
+// variable name: AWB_golden_module_Gb_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0.8 and 1.2
+// constraints: none
+// effect: not tunable
+//
+// variable name: AWB_golden_module_B_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0 and 4
+// constraints: none
+// effect: not tunable
+/******************************************************************************/
+
+0.000000f, /* Golden Module R/Gr ratio */
+0.000000f, /* Golden Module Gb/Gr ratio */
+0.000000f, /* Golden Module B/Gr ratio */
+0, /* Enable AWB Module Cal */
+/* AWB Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AWB_motion_sensor_type to aide AWB in determining a change in
+//           scene.
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: awb_gyro_trigger.
+// Used to control how scene change should be detected for AEC
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None .
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: awb_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: awb_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: 0.0 to 360.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: awb_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+/* AWB2 Params */
+{
+
+/*****************************************************************/
+// AWB2 parameters
+// Applicable operation mode: preview and snapshot.
+//
+// Variable name: awb2_bright_green_percentage.
+// Bright green percentage at outdoor index.
+// Applicable chipset:  VFE3.2 and higher
+// 3A version: 3.0 and higher.
+// Default value: 6.
+// Data range: 0 to 100.
+// Constraints: This is a pre-set threshold obtained by testing.
+// Effect: Higher value extends the outdoor green range.
+//
+// Variable name: awb2_dark_green_percentage.
+// Dark green percentage at indoor index.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 12.
+// Data range: 0 to 100.
+// Constraints: This is a pre-set threshold obtained by testing.
+// Effect: Indoor green range is extended or narrowed down.
+//
+// Variable name: awb2_dark_r_threshold, awb2_dark_g_threshold, dark_b_threshold.
+// R(or G or B) stat ave below this value is rejected (8-bit domain).
+// Applicable chipset:  All chipsets.
+// 3A version: N/A.
+// Default value: 1.
+// Data range: 0 to 255.
+// Constraints: This is a pre-set threshold for collecting certain level of
+//              the red/green/blue stat.
+// Effect: Lower values allow stats with lower r, g, b values be collected.
+//
+// Variable name: awb2_white_stat_y_threshold_high.
+// The Y threshold for a region to be a white stat.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 245.
+// Data range: 0 to 255.
+// Constraints: None.
+// Effect: The upper limit for collecting white stat.
+//         Too high will involve saturated stat,
+//         and too low may reduce white stat collection accuracy.
+//
+// Variable name: awb2_ref_b_bg_tl84, awb2_ref_r_rg_a.
+// This reference R, B 's r/g b/g are for 8k FFA;
+// it needs to be tuned for other sensors.
+// Corresponding roll off table should be applied when doing the measurement.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: These two values are specifically estimated for the
+//                corresponding sensor. Default value for 8k Foxcon sensor are:
+//                awb2_ref_b_bg_tl84 = 1.4049; awb2_ref_r_rg_a = 3.1547;
+// Data fange: 0 to 10.
+// Constraints: None.
+// Effect: Accurately estimated values decides the stat collected for extreme
+//         blue and red. For calibration of these two values, take full-view
+//         MCC chart under TL84 and A lighting. Apply correct rolloff table
+//         and then measure the blue’s b/g from the MCC taken under TL84.
+//         Measure the red’s r/g from the MCC taken under A.
+//
+// Variable name: awb2_extreme_range_offset_b, awb2_extreme_range_offset_r.
+// Extreme blue and red threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 1.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value increases the boundary of collecting extreme red and
+//         blue stat. Lower value reduces the boundary of collecting the
+//         extreme stat.
+//
+// Variable name: awb2_threshold_extreme_b_percent.
+// Threshold of the blue extreme stat counts.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.2
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: Higher value requires a higher number of the collected extreme stats
+//         to be recognized as an extreme color case.
+//
+// Variable name: awb2_threshold_extreme_r_percent.
+// Threshold of the red extreme stat counts.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.5
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: Higher value requires a higher number of the collected extreme stats
+//         to be recognized as an extreme color case.
+//
+// Variable name: awb2_threshold_compact_cluster.
+// Compact cluster threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 60.
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: This is the threshold of measured distance from outlier sample grid
+//         to the average. If the measured maximum distance is lower than this
+//         threshold, a compact cluster is recognized. Therefore, a too high
+//         threshod results in false-alarm compact cluter recoganition and too
+//         low threshold may result in missed detection on the compact cluters.
+//
+// Variable name: awb2_compact_to_grey_dis.
+// Outlier compact cluster distance to grey zone.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 4.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Lower value requires the recognized compact cluster is closer to the
+//         grey zone.
+//
+// Variable name: awb2_threshold_compact_cluster_valid.
+// Radius of the compact cluster within grey zone.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default Value: 4.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Lower value requires the recognized compact cluster have a smaller
+//         radius.
+//
+// Variable name: awb2_threshold_dominant_cluster_threshold.
+// Dominant cluster threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 4.
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: This threshold decides on if there is a dominant cluster or not.
+//         Higher threshold gives higher requirement on the cluster counts to
+//         be recognized as a dominant cluster.
+//
+// Variable name: awb2_distance_weight_table[121].
+// Distance weight table
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Data range: 0 to 3888.
+// Constraints: None.
+// Effect: This array is used to control the distance weighting.  The index to
+//         the LUT is the grid distance. If the outlier distance is N, only the
+//         first N entries of this weight table is non-zero, and all other
+//         entries are 0’s. With a Gaussian kernel, the stat closer to
+//         reference points are given higher weight than stat farther away.
+//         With equal weight, all samples in the grey zone are treated equally.
+//
+// Variable name: awb2_outdoor_adjustment.
+// Adjustable parameters for outdoor exposure range control.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 30.
+// Data range: 0 to 140.
+// Constraints: None.
+// Effect: This parameter adjusts the range of the exposure in outdoor
+//         conditions. Higher value gives narrower range for Noon and D50
+//         exposure range but larger D65 exposure range. This parameter is used
+//         for easy exposure adjustment for different sensors.
+//
+// Variable name: awb2_exposure_adjustment.
+// Interpolation range adjustment on the boundary of two different AWB
+// decisions.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 10.
+// Data range: 0 to 140.
+// Constraints: None.
+// Effect: This parameter adjusts the interpolation range on the boundary of
+//         two different AWB decisions based on exposure. Higher value gives a
+//         larger interpolation range which results in smoother AWB decision
+//         changes.
+//
+// Variable name: awb2_outlier_valid_ymax.
+// Check if Y max in outliers is higher than the Y max in valid samples.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 3.
+// Data range: 1 to 10.
+// Constraints: None.
+// Effect: If outlier Y max is awb2_outlier_valid_ymax times more than the Y
+//         max in valid samples, set white world decision to be -1. Higher
+//         value requires a higher threshold for this decision.
+//
+// Variable name: awb2_cluster_high_pec, awb2_cluster_mid_pec, awb2_cluster_low_pec.
+// Cluster percentage to determine dominant light in heuristics.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.4, 0.25, 0.15
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: These three parameters set three boundaries to recognize the
+//         dominant cluster in heuristics. Higher value requires a larger
+//         number cluster counts.
+//
+// Variable name: awb2_weight_vector[][]
+// Weight vector corresponding to different range of exposure index.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value:
+//    in, out, in-out
+//  {  4, 10, 7, 7, // D65 30
+//     5, 10, 8, 8, // D75 30
+//     2, 1, 1, 1,  // A
+//    10, 1, 5, 5,  // 5 wf 3800
+//     9, 1, 3, 3,  // 3 cf 4000
+//     2, 1,  1, 1, // H
+//     3, 10, 6, 6, // D50 30
+//     1,  1, 1, 1, // custom f
+//     1, 10, 1, 1, // index match correction: should be for noon
+//     1, 10, 8, 8, // daylight hybrid 1
+//     1, 10, 8, 8, // daylight hybrid 2
+//     3,  1, 2, 2, // A light line 1
+//     2,  1, 1, 1, // A light line 2
+//     10, 1, 5, 5  // F line
+//  };
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value gives higher weight to the stat at the exposure index
+//         in the corresponding range.
+/******************************************************************/
+
+   6, /* Bright Green Percentage */
+   12, /* Dark Green Percentage */
+   10, /* Dark R Threshold */
+   10, /* Dark G Threshold */
+   10, /* Dark B Threshold */
+   245, /* White Stat Y Threshold High */
+   1.305860f, /* Ref B BG Tl84 */
+   3.154700f, /* Ref R RG A */
+   1.250000f, /* Extreme Range Offset B */
+   1.000000f, /* Extreme Range Offset R */
+   0.200000f, /* Threshold Extreme B Percent */
+   0.500000f, /* Threshold Extreme R Percent */
+   60, /* Threshold Compact Cluster */
+   4, /* Compact To Grey DIS */
+   4, /* Threshold Compact Cluster Valid */
+   4, /* Dominant Cluster Threshold */
+   /* Dist Weight Table */
+   {
+      100, 95, 83, 66, 47, 31, 18, 10,
+      5, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1
+   },
+   30, /* Outdoor Adjustment */
+   10, /* Exposure Adjustment */
+   3.000000f, /* Outlier Valid yMax */
+   0.400000f, /* Cluster High PEC */
+   0.250000f, /* Cluster Mid PEC */
+   0.150000f, /* Cluster Low PEC */
+   /* Weight Vector */
+   {
+      {4, 10, 7, 7}, /* D65 */
+      {5, 10, 8, 8}, /* D75 */
+      {2, 1, 1, 1}, /* A */
+      {10, 1, 5, 5}, /* Warm Fluorescent */
+      {9, 1, 3, 3}, /* Cool Fluorescent */
+      {2, 1, 1, 1}, /* Horizon */
+      {3, 10, 6, 6}, /* D50 */
+      {1, 1, 1, 1}, /* Custom Fluorescent */
+      {1, 10, 1, 1}, /* Noon */
+      {1, 10, 8, 8}, /* Daylight Hybrid 1 */
+      {1, 10, 8, 8}, /* Daylight Hybrid 2 */
+      {3, 1, 2, 2}, /* A Line 1 */
+      {2, 1, 1, 1}, /* A Line 2 */
+      {10, 1, 5, 5}, /* F Line */
+   },
+},
+
+/*********************************************************************/
+// Comments:
+// Use digital gain:
+// This parameter is unused.
+//
+// max number of entries:
+// Number of entries in the exxposure table. It needs to be in sync with the table contents.
+//
+// Exposure table contains 2 columns. The first column is real gain values
+// right shifted 8 bits. For example, 256 means gain of 1.0. The 2nd colum
+// is sensor integration (exposure) time in terms of number of lines.
+// Exposure table is generated by Chromatix or sensor driver team.
+// It can be regenerated in Chromatix tool by specifying different max gain
+// and max line count.  We do not recommend user to manually modify it because it
+// potentially will change trigger points for many parameters.
+/*********************************************************************/
+
+/* Exposure Table */
+{
+   1, /* Use Digital Gain */
+   /* Exposure Table */
+   351, /* Max Exposure Table entries */
+   {
+      {256, 1}, /* Gain= 1.000 Exposure Index=0 */
+      {264, 1}, /* Gain= 1.031 Exposure Index=1 */
+      {272, 1}, /* Gain= 1.063 Exposure Index=2 */
+      {280, 1}, /* Gain= 1.094 Exposure Index=3 */
+      {288, 1}, /* Gain= 1.125 Exposure Index=4 */
+      {297, 1}, /* Gain= 1.160 Exposure Index=5 */
+      {306, 1}, /* Gain= 1.195 Exposure Index=6 */
+      {315, 1}, /* Gain= 1.230 Exposure Index=7 */
+      {324, 1}, /* Gain= 1.266 Exposure Index=8 */
+      {334, 1}, /* Gain= 1.305 Exposure Index=9 */
+      {344, 1}, /* Gain= 1.344 Exposure Index=10 */
+      {354, 1}, /* Gain= 1.383 Exposure Index=11 */
+      {365, 1}, /* Gain= 1.426 Exposure Index=12 */
+      {376, 1}, /* Gain= 1.469 Exposure Index=13 */
+      {387, 1}, /* Gain= 1.512 Exposure Index=14 */
+      {399, 1}, /* Gain= 1.559 Exposure Index=15 */
+      {411, 1}, /* Gain= 1.605 Exposure Index=16 */
+      {423, 1}, /* Gain= 1.652 Exposure Index=17 */
+      {436, 1}, /* Gain= 1.703 Exposure Index=18 */
+      {449, 1}, /* Gain= 1.754 Exposure Index=19 */
+      {462, 1}, /* Gain= 1.805 Exposure Index=20 */
+      {476, 1}, /* Gain= 1.859 Exposure Index=21 */
+      {490, 1}, /* Gain= 1.914 Exposure Index=22 */
+      {505, 1}, /* Gain= 1.973 Exposure Index=23 */
+      {260, 2}, /* Gain= 1.016 Exposure Index=24 */
+      {268, 2}, /* Gain= 1.047 Exposure Index=25 */
+      {276, 2}, /* Gain= 1.078 Exposure Index=26 */
+      {284, 2}, /* Gain= 1.109 Exposure Index=27 */
+      {293, 2}, /* Gain= 1.145 Exposure Index=28 */
+      {302, 2}, /* Gain= 1.180 Exposure Index=29 */
+      {311, 2}, /* Gain= 1.215 Exposure Index=30 */
+      {320, 2}, /* Gain= 1.250 Exposure Index=31 */
+      {330, 2}, /* Gain= 1.289 Exposure Index=32 */
+      {340, 2}, /* Gain= 1.328 Exposure Index=33 */
+      {350, 2}, /* Gain= 1.367 Exposure Index=34 */
+      {361, 2}, /* Gain= 1.410 Exposure Index=35 */
+      {372, 2}, /* Gain= 1.453 Exposure Index=36 */
+      {383, 2}, /* Gain= 1.496 Exposure Index=37 */
+      {263, 3}, /* Gain= 1.027 Exposure Index=38 */
+      {271, 3}, /* Gain= 1.059 Exposure Index=39 */
+      {279, 3}, /* Gain= 1.090 Exposure Index=40 */
+      {287, 3}, /* Gain= 1.121 Exposure Index=41 */
+      {296, 3}, /* Gain= 1.156 Exposure Index=42 */
+      {305, 3}, /* Gain= 1.191 Exposure Index=43 */
+      {314, 3}, /* Gain= 1.227 Exposure Index=44 */
+      {323, 3}, /* Gain= 1.262 Exposure Index=45 */
+      {333, 3}, /* Gain= 1.301 Exposure Index=46 */
+      {257, 4}, /* Gain= 1.004 Exposure Index=47 */
+      {265, 4}, /* Gain= 1.035 Exposure Index=48 */
+      {273, 4}, /* Gain= 1.066 Exposure Index=49 */
+      {281, 4}, /* Gain= 1.098 Exposure Index=50 */
+      {289, 4}, /* Gain= 1.129 Exposure Index=51 */
+      {298, 4}, /* Gain= 1.164 Exposure Index=52 */
+      {307, 4}, /* Gain= 1.199 Exposure Index=53 */
+      {316, 4}, /* Gain= 1.234 Exposure Index=54 */
+      {260, 5}, /* Gain= 1.016 Exposure Index=55 */
+      {268, 5}, /* Gain= 1.047 Exposure Index=56 */
+      {276, 5}, /* Gain= 1.078 Exposure Index=57 */
+      {284, 5}, /* Gain= 1.109 Exposure Index=58 */
+      {293, 5}, /* Gain= 1.145 Exposure Index=59 */
+      {302, 5}, /* Gain= 1.180 Exposure Index=60 */
+      {259, 6}, /* Gain= 1.012 Exposure Index=61 */
+      {267, 6}, /* Gain= 1.043 Exposure Index=62 */
+      {275, 6}, /* Gain= 1.074 Exposure Index=63 */
+      {283, 6}, /* Gain= 1.105 Exposure Index=64 */
+      {291, 6}, /* Gain= 1.137 Exposure Index=65 */
+      {257, 7}, /* Gain= 1.004 Exposure Index=66 */
+      {265, 7}, /* Gain= 1.035 Exposure Index=67 */
+      {273, 7}, /* Gain= 1.066 Exposure Index=68 */
+      {281, 7}, /* Gain= 1.098 Exposure Index=69 */
+      {289, 7}, /* Gain= 1.129 Exposure Index=70 */
+      {260, 8}, /* Gain= 1.016 Exposure Index=71 */
+      {268, 8}, /* Gain= 1.047 Exposure Index=72 */
+      {276, 8}, /* Gain= 1.078 Exposure Index=73 */
+      {284, 8}, /* Gain= 1.109 Exposure Index=74 */
+      {260, 9}, /* Gain= 1.016 Exposure Index=75 */
+      {268, 9}, /* Gain= 1.047 Exposure Index=76 */
+      {276, 9}, /* Gain= 1.078 Exposure Index=77 */
+      {284, 9}, /* Gain= 1.109 Exposure Index=78 */
+      {263, 10}, /* Gain= 1.027 Exposure Index=79 */
+      {271, 10}, /* Gain= 1.059 Exposure Index=80 */
+      {279, 10}, /* Gain= 1.090 Exposure Index=81 */
+      {261, 11}, /* Gain= 1.020 Exposure Index=82 */
+      {269, 11}, /* Gain= 1.051 Exposure Index=83 */
+      {277, 11}, /* Gain= 1.082 Exposure Index=84 */
+      {262, 12}, /* Gain= 1.023 Exposure Index=85 */
+      {270, 12}, /* Gain= 1.055 Exposure Index=86 */
+      {257, 13}, /* Gain= 1.004 Exposure Index=87 */
+      {265, 13}, /* Gain= 1.035 Exposure Index=88 */
+      {273, 13}, /* Gain= 1.066 Exposure Index=89 */
+      {261, 14}, /* Gain= 1.020 Exposure Index=90 */
+      {269, 14}, /* Gain= 1.051 Exposure Index=91 */
+      {259, 15}, /* Gain= 1.012 Exposure Index=92 */
+      {267, 15}, /* Gain= 1.043 Exposure Index=93 */
+      {258, 16}, /* Gain= 1.008 Exposure Index=94 */
+      {266, 16}, /* Gain= 1.039 Exposure Index=95 */
+      {258, 17}, /* Gain= 1.008 Exposure Index=96 */
+      {266, 17}, /* Gain= 1.039 Exposure Index=97 */
+      {259, 18}, /* Gain= 1.012 Exposure Index=98 */
+      {267, 18}, /* Gain= 1.043 Exposure Index=99 */
+      {261, 19}, /* Gain= 1.020 Exposure Index=100 */
+      {269, 19}, /* Gain= 1.051 Exposure Index=101 */
+      {263, 20}, /* Gain= 1.027 Exposure Index=102 */
+      {258, 21}, /* Gain= 1.008 Exposure Index=103 */
+      {266, 21}, /* Gain= 1.039 Exposure Index=104 */
+      {262, 22}, /* Gain= 1.023 Exposure Index=105 */
+      {258, 23}, /* Gain= 1.008 Exposure Index=106 */
+      {266, 23}, /* Gain= 1.039 Exposure Index=107 */
+      {263, 24}, /* Gain= 1.027 Exposure Index=108 */
+      {260, 25}, /* Gain= 1.016 Exposure Index=109 */
+      {258, 26}, /* Gain= 1.008 Exposure Index=110 */
+      {266, 26}, /* Gain= 1.039 Exposure Index=111 */
+      {264, 27}, /* Gain= 1.031 Exposure Index=112 */
+      {262, 28}, /* Gain= 1.023 Exposure Index=113 */
+      {261, 29}, /* Gain= 1.020 Exposure Index=114 */
+      {260, 30}, /* Gain= 1.016 Exposure Index=115 */
+      {259, 31}, /* Gain= 1.012 Exposure Index=116 */
+      {258, 32}, /* Gain= 1.008 Exposure Index=117 */
+      {258, 33}, /* Gain= 1.008 Exposure Index=118 */
+      {258, 34}, /* Gain= 1.008 Exposure Index=119 */
+      {258, 35}, /* Gain= 1.008 Exposure Index=120 */
+      {258, 36}, /* Gain= 1.008 Exposure Index=121 */
+      {259, 37}, /* Gain= 1.012 Exposure Index=122 */
+      {260, 38}, /* Gain= 1.016 Exposure Index=123 */
+      {261, 39}, /* Gain= 1.020 Exposure Index=124 */
+      {262, 40}, /* Gain= 1.023 Exposure Index=125 */
+      {257, 42}, /* Gain= 1.004 Exposure Index=126 */
+      {259, 43}, /* Gain= 1.012 Exposure Index=127 */
+      {261, 44}, /* Gain= 1.020 Exposure Index=128 */
+      {257, 46}, /* Gain= 1.004 Exposure Index=129 */
+      {259, 47}, /* Gain= 1.012 Exposure Index=130 */
+      {261, 48}, /* Gain= 1.020 Exposure Index=131 */
+      {258, 50}, /* Gain= 1.008 Exposure Index=132 */
+      {261, 51}, /* Gain= 1.020 Exposure Index=133 */
+      {259, 53}, /* Gain= 1.012 Exposure Index=134 */
+      {257, 55}, /* Gain= 1.004 Exposure Index=135 */
+      {260, 56}, /* Gain= 1.016 Exposure Index=136 */
+      {259, 58}, /* Gain= 1.012 Exposure Index=137 */
+      {258, 60}, /* Gain= 1.008 Exposure Index=138 */
+      {257, 62}, /* Gain= 1.004 Exposure Index=139 */
+      {256, 64}, /* Gain= 1.000 Exposure Index=140 */
+      {260, 65}, /* Gain= 1.016 Exposure Index=141 */
+      {260, 67}, /* Gain= 1.016 Exposure Index=142 */
+      {256, 70}, /* Gain= 1.000 Exposure Index=143 */
+      {256, 72}, /* Gain= 1.000 Exposure Index=144 */
+      {257, 74}, /* Gain= 1.004 Exposure Index=145 */
+      {258, 76}, /* Gain= 1.008 Exposure Index=146 */
+      {259, 78}, /* Gain= 1.012 Exposure Index=147 */
+      {257, 81}, /* Gain= 1.004 Exposure Index=148 */
+      {258, 83}, /* Gain= 1.008 Exposure Index=149 */
+      {256, 86}, /* Gain= 1.000 Exposure Index=150 */
+      {258, 88}, /* Gain= 1.008 Exposure Index=151 */
+      {257, 91}, /* Gain= 1.004 Exposure Index=152 */
+      {256, 94}, /* Gain= 1.000 Exposure Index=153 */
+      {258, 96}, /* Gain= 1.008 Exposure Index=154 */
+      {258, 99}, /* Gain= 1.008 Exposure Index=155 */
+      {258, 102}, /* Gain= 1.008 Exposure Index=156 */
+      {258, 105}, /* Gain= 1.008 Exposure Index=157 */
+      {258, 108}, /* Gain= 1.008 Exposure Index=158 */
+      {256, 112}, /* Gain= 1.000 Exposure Index=159 */
+      {257, 115}, /* Gain= 1.004 Exposure Index=160 */
+      {258, 118}, /* Gain= 1.008 Exposure Index=161 */
+      {257, 122}, /* Gain= 1.004 Exposure Index=162 */
+      {256, 126}, /* Gain= 1.000 Exposure Index=163 */
+      {258, 129}, /* Gain= 1.008 Exposure Index=164 */
+      {258, 133}, /* Gain= 1.008 Exposure Index=165 */
+      {256, 138}, /* Gain= 1.000 Exposure Index=166 */
+      {256, 142}, /* Gain= 1.000 Exposure Index=167 */
+      {256, 146}, /* Gain= 1.000 Exposure Index=168 */
+      {257, 150}, /* Gain= 1.004 Exposure Index=169 */
+      {256, 155}, /* Gain= 1.000 Exposure Index=170 */
+      {257, 159}, /* Gain= 1.004 Exposure Index=171 */
+      {257, 164}, /* Gain= 1.004 Exposure Index=172 */
+      {257, 169}, /* Gain= 1.004 Exposure Index=173 */
+      {257, 174}, /* Gain= 1.004 Exposure Index=174 */
+      {257, 179}, /* Gain= 1.004 Exposure Index=175 */
+      {256, 185}, /* Gain= 1.000 Exposure Index=176 */
+      {257, 190}, /* Gain= 1.004 Exposure Index=177 */
+      {257, 196}, /* Gain= 1.004 Exposure Index=178 */
+      {257, 202}, /* Gain= 1.004 Exposure Index=179 */
+      {257, 208}, /* Gain= 1.004 Exposure Index=180 */
+      {256, 215}, /* Gain= 1.000 Exposure Index=181 */
+      {257, 221}, /* Gain= 1.004 Exposure Index=182 */
+      {257, 228}, /* Gain= 1.004 Exposure Index=183 */
+      {257, 235}, /* Gain= 1.004 Exposure Index=184 */
+      {257, 242}, /* Gain= 1.004 Exposure Index=185 */
+      {256, 250}, /* Gain= 1.000 Exposure Index=186 */
+      {256, 257}, /* Gain= 1.000 Exposure Index=187 */
+      {257, 264}, /* Gain= 1.004 Exposure Index=188 */
+      {257, 272}, /* Gain= 1.004 Exposure Index=189 */
+      {256, 281}, /* Gain= 1.000 Exposure Index=190 */
+      {256, 289}, /* Gain= 1.000 Exposure Index=191 */
+      {257, 297}, /* Gain= 1.004 Exposure Index=192 */
+      {256, 307}, /* Gain= 1.000 Exposure Index=193 */
+      {256, 316}, /* Gain= 1.000 Exposure Index=194 */
+      {256, 325}, /* Gain= 1.000 Exposure Index=195 */
+      {257, 334}, /* Gain= 1.004 Exposure Index=196 */
+      {256, 345}, /* Gain= 1.000 Exposure Index=197 */
+      {256, 355}, /* Gain= 1.000 Exposure Index=198 */
+      {256, 365}, /* Gain= 1.000 Exposure Index=199 */
+      {257, 375}, /* Gain= 1.004 Exposure Index=200 */
+      {257, 387}, /* Gain= 1.004 Exposure Index=201 */
+      {256, 400}, /* Gain= 1.000 Exposure Index=202 */
+      {256, 412}, /* Gain= 1.000 Exposure Index=203 */
+      {256, 424}, /* Gain= 1.000 Exposure Index=204 */
+      {256, 436}, /* Gain= 1.000 Exposure Index=205 */
+      {256, 449}, /* Gain= 1.000 Exposure Index=206 */
+      {256, 462}, /* Gain= 1.000 Exposure Index=207 */
+      {256, 475}, /* Gain= 1.000 Exposure Index=208 */
+      {256, 489}, /* Gain= 1.000 Exposure Index=209 */
+      {256, 503}, /* Gain= 1.000 Exposure Index=210 */
+      {256, 518}, /* Gain= 1.000 Exposure Index=211 */
+      {256, 533}, /* Gain= 1.000 Exposure Index=212 */
+      {256, 548}, /* Gain= 1.000 Exposure Index=213 */
+      {256, 564}, /* Gain= 1.000 Exposure Index=214 */
+      {256, 580}, /* Gain= 1.000 Exposure Index=215 */
+      {256, 597}, /* Gain= 1.000 Exposure Index=216 */
+      {256, 614}, /* Gain= 1.000 Exposure Index=217 */
+      {256, 632}, /* Gain= 1.000 Exposure Index=218 */
+      {256, 650}, /* Gain= 1.000 Exposure Index=219 */
+      {256, 669}, /* Gain= 1.000 Exposure Index=220 */
+      {256, 689}, /* Gain= 1.000 Exposure Index=221 */
+      {256, 709}, /* Gain= 1.000 Exposure Index=222 */
+      {256, 730}, /* Gain= 1.000 Exposure Index=223 */
+      {256, 751}, /* Gain= 1.000 Exposure Index=224 */
+      {256, 773}, /* Gain= 1.000 Exposure Index=225 */
+      {256, 796}, /* Gain= 1.000 Exposure Index=226 */
+      {256, 819}, /* Gain= 1.000 Exposure Index=227 */
+      {256, 843}, /* Gain= 1.000 Exposure Index=228 */
+      {256, 868}, /* Gain= 1.000 Exposure Index=229 */
+      {256, 894}, /* Gain= 1.000 Exposure Index=230 */
+      {256, 920}, /* Gain= 1.000 Exposure Index=231 */
+      {256, 947}, /* Gain= 1.000 Exposure Index=232 */
+      {256, 975}, /* Gain= 1.000 Exposure Index=233 */
+      {256, 1004}, /* Gain= 1.000 Exposure Index=234 */
+      {256, 1034}, /* Gain= 1.000 Exposure Index=235 */
+      {256, 1065}, /* Gain= 1.000 Exposure Index=236 */
+      {256, 1096}, /* Gain= 1.000 Exposure Index=237 */
+      {256, 1128}, /* Gain= 1.000 Exposure Index=238 */
+      {256, 1161}, /* Gain= 1.000 Exposure Index=239 */
+      {256, 1195}, /* Gain= 1.000 Exposure Index=240 */
+      {256, 1230}, /* Gain= 1.000 Exposure Index=241 */
+      {256, 1266}, /* Gain= 1.000 Exposure Index=242 */
+      {261, 1279}, /* Gain= 1.020 Exposure Index=243 */
+      {269, 1279}, /* Gain= 1.051 Exposure Index=244 */
+      {277, 1279}, /* Gain= 1.082 Exposure Index=245 */
+      {285, 1279}, /* Gain= 1.113 Exposure Index=246 */
+      {294, 1279}, /* Gain= 1.148 Exposure Index=247 */
+      {303, 1279}, /* Gain= 1.184 Exposure Index=248 */
+      {312, 1279}, /* Gain= 1.219 Exposure Index=249 */
+      {321, 1279}, /* Gain= 1.254 Exposure Index=250 */
+      {331, 1279}, /* Gain= 1.293 Exposure Index=251 */
+      {341, 1279}, /* Gain= 1.332 Exposure Index=252 */
+      {351, 1279}, /* Gain= 1.371 Exposure Index=253 */
+      {362, 1279}, /* Gain= 1.414 Exposure Index=254 */
+      {373, 1279}, /* Gain= 1.457 Exposure Index=255 */
+      {384, 1279}, /* Gain= 1.500 Exposure Index=256 */
+      {396, 1279}, /* Gain= 1.547 Exposure Index=257 */
+      {408, 1279}, /* Gain= 1.594 Exposure Index=258 */
+      {420, 1279}, /* Gain= 1.641 Exposure Index=259 */
+      {433, 1279}, /* Gain= 1.691 Exposure Index=260 */
+      {446, 1279}, /* Gain= 1.742 Exposure Index=261 */
+      {459, 1279}, /* Gain= 1.793 Exposure Index=262 */
+      {473, 1279}, /* Gain= 1.848 Exposure Index=263 */
+      {487, 1279}, /* Gain= 1.902 Exposure Index=264 */
+      {502, 1279}, /* Gain= 1.961 Exposure Index=265 */
+      {517, 1279}, /* Gain= 2.020 Exposure Index=266 */
+      {533, 1279}, /* Gain= 2.082 Exposure Index=267 */
+      {549, 1279}, /* Gain= 2.145 Exposure Index=268 */
+      {565, 1279}, /* Gain= 2.207 Exposure Index=269 */
+      {582, 1279}, /* Gain= 2.273 Exposure Index=270 */
+      {599, 1279}, /* Gain= 2.340 Exposure Index=271 */
+      {617, 1279}, /* Gain= 2.410 Exposure Index=272 */
+      {636, 1279}, /* Gain= 2.484 Exposure Index=273 */
+      {655, 1279}, /* Gain= 2.559 Exposure Index=274 */
+      {675, 1279}, /* Gain= 2.637 Exposure Index=275 */
+      {695, 1279}, /* Gain= 2.715 Exposure Index=276 */
+      {716, 1279}, /* Gain= 2.797 Exposure Index=277 */
+      {737, 1279}, /* Gain= 2.879 Exposure Index=278 */
+      {759, 1279}, /* Gain= 2.965 Exposure Index=279 */
+      {782, 1279}, /* Gain= 3.055 Exposure Index=280 */
+      {805, 1279}, /* Gain= 3.145 Exposure Index=281 */
+      {829, 1279}, /* Gain= 3.238 Exposure Index=282 */
+      {854, 1279}, /* Gain= 3.336 Exposure Index=283 */
+      {880, 1279}, /* Gain= 3.438 Exposure Index=284 */
+      {906, 1279}, /* Gain= 3.539 Exposure Index=285 */
+      {933, 1279}, /* Gain= 3.645 Exposure Index=286 */
+      {961, 1279}, /* Gain= 3.754 Exposure Index=287 */
+      {990, 1279}, /* Gain= 3.867 Exposure Index=288 */
+      {1020, 1279}, /* Gain= 3.984 Exposure Index=289 */
+      {1051, 1279}, /* Gain= 4.105 Exposure Index=290 */
+      {1083, 1279}, /* Gain= 4.230 Exposure Index=291 */
+      {1115, 1279}, /* Gain= 4.355 Exposure Index=292 */
+      {1148, 1279}, /* Gain= 4.484 Exposure Index=293 */
+      {1182, 1279}, /* Gain= 4.617 Exposure Index=294 */
+      {1217, 1279}, /* Gain= 4.754 Exposure Index=295 */
+      {1254, 1279}, /* Gain= 4.898 Exposure Index=296 */
+      {1292, 1279}, /* Gain= 5.047 Exposure Index=297 */
+      {1331, 1279}, /* Gain= 5.199 Exposure Index=298 */
+      {1371, 1279}, /* Gain= 5.355 Exposure Index=299 */
+      {1412, 1279}, /* Gain= 5.516 Exposure Index=300 */
+      {1454, 1279}, /* Gain= 5.680 Exposure Index=301 */
+      {1498, 1279}, /* Gain= 5.852 Exposure Index=302 */
+      {1543, 1279}, /* Gain= 6.027 Exposure Index=303 */
+      {1589, 1279}, /* Gain= 6.207 Exposure Index=304 */
+      {1637, 1279}, /* Gain= 6.395 Exposure Index=305 */
+      {1686, 1279}, /* Gain= 6.586 Exposure Index=306 */
+      {1737, 1279}, /* Gain= 6.785 Exposure Index=307 */
+      {1789, 1279}, /* Gain= 6.988 Exposure Index=308 */
+      {1843, 1279}, /* Gain= 7.199 Exposure Index=309 */
+      {1898, 1279}, /* Gain= 7.414 Exposure Index=310 */
+      {1955, 1279}, /* Gain= 7.637 Exposure Index=311 */
+      {2014, 1279}, /* Gain= 7.867 Exposure Index=312 */
+      {2048, 1279}, /* Gain= 8.000 Exposure Index=313 */
+      {2048, 1317}, /* Gain= 8.000 Exposure Index=314 */
+      {2048, 1356}, /* Gain= 8.000 Exposure Index=315 */
+      {2048, 1396}, /* Gain= 8.000 Exposure Index=316 */
+      {2048, 1437}, /* Gain= 8.000 Exposure Index=317 */
+      {2048, 1480}, /* Gain= 8.000 Exposure Index=318 */
+      {2048, 1524}, /* Gain= 8.000 Exposure Index=319 */
+      {2048, 1569}, /* Gain= 8.000 Exposure Index=320 */
+      {2048, 1616}, /* Gain= 8.000 Exposure Index=321 */
+      {2048, 1664}, /* Gain= 8.000 Exposure Index=322 */
+      {2048, 1713}, /* Gain= 8.000 Exposure Index=323 */
+      {2048, 1764}, /* Gain= 8.000 Exposure Index=324 */
+      {2048, 1816}, /* Gain= 8.000 Exposure Index=325 */
+      {2048, 1870}, /* Gain= 8.000 Exposure Index=326 */
+      {2048, 1926}, /* Gain= 8.000 Exposure Index=327 */
+      {2048, 1983}, /* Gain= 8.000 Exposure Index=328 */
+      {2048, 2042}, /* Gain= 8.000 Exposure Index=329 */
+      {2048, 2103}, /* Gain= 8.000 Exposure Index=330 */
+      {2048, 2166}, /* Gain= 8.000 Exposure Index=331 */
+      {2048, 2230}, /* Gain= 8.000 Exposure Index=332 */
+      {2048, 2296}, /* Gain= 8.000 Exposure Index=333 */
+      {2048, 2364}, /* Gain= 8.000 Exposure Index=334 */
+      {2048, 2434}, /* Gain= 8.000 Exposure Index=335 */
+      {2048, 2507}, /* Gain= 8.000 Exposure Index=336 */
+      {2048, 2582}, /* Gain= 8.000 Exposure Index=337 */
+      {2048, 2659}, /* Gain= 8.000 Exposure Index=338 */
+      {2048, 2738}, /* Gain= 8.000 Exposure Index=339 */
+      {2048, 2820}, /* Gain= 8.000 Exposure Index=340 */
+      {2048, 2904}, /* Gain= 8.000 Exposure Index=341 */
+      {2048, 2991}, /* Gain= 8.000 Exposure Index=342 */
+      {2048, 3080}, /* Gain= 8.000 Exposure Index=343 */
+      {2048, 3172}, /* Gain= 8.000 Exposure Index=344 */
+      {2048, 3267}, /* Gain= 8.000 Exposure Index=345 */
+      {2048, 3365}, /* Gain= 8.000 Exposure Index=346 */
+      {2048, 3465}, /* Gain= 8.000 Exposure Index=347 */
+      {2048, 3568}, /* Gain= 8.000 Exposure Index=348 */
+      {2048, 3675}, /* Gain= 8.000 Exposure Index=349 */
+      {2048, 3785} /* Gain= 8.000 Exposure Index=350 */
+   },
+},
+
+/*********************************************************************/
+// Feature name :
+// Luma target is used for AEC. These values are the Y value before gamma
+// in the linear domain, it includes the result from sensor exposure,
+// analog gain, and digital gain.
+// Range: 20 to 100.
+// Effect: Larger value results in brighter images.
+//
+/*********************************************************************/
+
+59, /* Default Luma Target */
+60, /* Outdoor Luma Target */
+59, /* Low-Light Luma Target */
+
+/*********************************************************************/
+// Feature name :
+// Luma tolerance is used in AEC.
+// Range: 2 to 8.
+// Effect: Larger value results in stable and fast AEC convergence but
+//   the picture brightness is not consistent.
+//
+/*********************************************************************/
+
+2, /* Luma Tolerance */
+
+/*********************************************************************/
+// Feature name :
+// Exposure index adj step is tied to exposure table. It is 1/(log(step size)).
+// 77.9 corresponds to 3% exposure step size.
+// We do not recommend the user change this value unless exposure table step size is changed.
+/*********************************************************************/
+
+77.900002f, /* Exposure Index Adj Step */
+
+/*********************************************************************/
+// Feature name :
+// ISO 100 gain is calibrated by Chromatix tool.
+/*********************************************************************/
+
+1.000000f, /* ISO 100 Gain */
+
+/*********************************************************************/
+// Feature name :
+// AEC indoor index and outdoor index are used in some dynamic EV related
+// features. We recommand not to modify these values.
+/*********************************************************************/
+
+260, /* AEC Indoor Index */
+160, /* AEC Outdoor Index */
+
+/*********************************************************************/
+// Feature name :
+// Max snapshot exposure time allowed is defined in seconds. It is used
+// for lowlight snapshot.
+// Effect: Larger value will result in lower noise image but with more blur.
+/*********************************************************************/
+
+0.500000f, /* Max Snapshot Exposure Time Allowed */
+
+/*********************************************************************/
+// Feature name :
+// AEC aggresiveness determines AEC convergence speed.
+// Range: 0 to 1.
+// Effect: Higher value results in faster convergence.
+/*********************************************************************/
+
+0.800000f, /* Aggressiveness */
+
+/*********************************************************************/
+// Feature name :
+// For linear AFR case, Fix FPS AEC Table Index is the last index
+// in the exposure table before the frame rate is changed. User should not manually
+// change this value, it is determine by Chromatix tool based on exposure table.
+// This parameter is not used for non linear AFR case.
+/*********************************************************************/
+
+312, /* Fix FPS AEC Table Index */
+
+/*********************************************************************/
+// Feature name :
+// Linear AFR flag determines if linear AFR algorithm is used for frame
+// rate control.
+// Effect: 1 means linear AFR is used and the AFR table at the end of
+// this file will not be used.
+//   0 means linear AFR is not used and a meaningful AFR table must
+// be provided at the end of this header.
+/*********************************************************************/
+
+1, /* Linear AFR Support */
+
+/*********************************************************************/
+// Feature name :
+// High luma region threshold is used for indoor snapshot only as part of dynamic
+// EV feature.
+// Range: 80 to 255.
+// Effect: Lower value tends to avoid over exposure areas for indoor snapshot
+//   pictures.  Setting to 255 will remove the effect of this feature.
+/*********************************************************************/
+
+255, /* High Luma Region Threshold */
+
+/******************************************************************************/
+// Feature name : AEC bright_region
+// Feature name : Bright region discrimination.
+//  This is a dynamic EV feature for OUTDOOR only, it will increase luma target
+//  when there are a large amount very bright areas in the pictures.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview and snapshot
+//
+// variable name: is_supported
+// Enables bright region feture.
+// default value: 0
+// data range: 0 or 1
+// constraints: None
+// effect: Enables feature.
+//
+// variable name: reduction
+// How bright regions influence will be reduced.
+// default value: 0.5
+// data range: 0 to 1
+// constraints: None
+// effect: 1 means bright region will not influence luma calculation. 0 completely
+//  discards bright region from luma calculation.
+//
+// variable name: threshold_LO
+// Threshold to compare AEC stats regions when lux_idx is at lux_index_LO.
+// default value (calculated): 4 * Default Luma Target
+// data range: 0 to 256
+// constraints: Must be higher than threshold_HI
+// effect: 0 detects all regions as bright, 256 detects none, disable feature.
+//  Tends to make image brighter at presence of bright areas.
+//
+// variable name: lux_index_LO
+// Trigger point to calculate thershold used for bright region feature.
+//  Pairs with threshold_LO.
+// default value (calculated):  AEC outdoor index ?25
+// data range: 0 to Max exp table index
+// constraints: Higher value than lux_index_HI
+// effect: Determines when bright region feature starts to get used.
+//
+// variable name:threshold_HI
+// Threshold to compare AEC stats regions when lux_idx is at lux_index_HI.
+// default value (calculated): 2.5 * Default Luma Target
+// data range: 0 to 256
+// constraints: Lower value than lux_index_LO
+// effect: Determines in outdoor type scenes when a region is considered very bright
+//  so it can be discarded from luma calculation.
+//
+// variable name: lux_index_HI
+// Trigger point to calculate thershold used for bright region feature.
+//  Pairs with threshold_HI.
+// default value (calculated): AEC Outdoor Index/2
+// data range: 0 to Max exp table index
+// constraints: Smaller value than lux_index_LO
+// effect: Determines when bright region feature max effect takes place.
+//
+// variable name: discard_ratio
+// Percent of regions' biases that may be modified by bright region.
+// default value: 0.5
+// data range: 0 to 0.5
+// constraints: 0 disbles feature.  Algorithm caps at 0.5,
+// effect: 0 disables feature, higher value allowes more regions to get discarded
+//  from luma calculation.
+/******************************************************************************/
+
+/* AEC Bright Region */
+{
+   0, /* Is Supported? */
+   0.500000f, /* Reduction */
+   232, /* Threshold Low */
+   145, /* Lux Index Low */
+   145, /* Threshold High */
+   85, /* Lux Index High */
+   0.500000f, /* Discard Ratio */
+},
+
+/******************************************************************************/
+// Feature name : AEC dark_region
+// Feature name : Dark region discrimination .
+//  This is a dynamic EV feature for indoor and outdoor, it will decrease luma target when there
+//  are a large amount very dark areas in the pictures. It applies to both viewfinder and snapshot.
+// applicale chipset(s):All MSM
+// applicable operation mode: Preview and snapshot
+//
+// variable name: is_supported
+// Enables feature.
+// default value: 0
+// data range: 0 and 1
+// constraints: none
+// effect: Detects regions that are dark and reduces their effect on luma
+//  calculation.
+//
+// variable name: threshold_LO
+// Any region below this brightness
+//  value will be not used for luma calculation.
+// default value: 0.1
+// data range: 0 to 0.1
+// constraints: None
+// effect: Lower Value reduces impact of feature. Tend to make image darker
+//  in presence of dark and bright objects in the scene.
+//
+// variable name:threshold_HI
+// Any region above this brightness
+//  value will be not used for luma calculation.
+// default value: 0.5
+// data range: 0 to 0.8
+// constraints: None
+// effect: Higher value increases effect of dark region feature. Tend to make
+//  image darker in presence of dark and bright objects in the scene.
+//
+// variable name: discard_ratio
+// Percent of regions' biases that may be modified by bright region.
+// default value: 0.5
+// data range: 0 to 0.5
+// constraints: None
+// effect: 0 disables the feature.
+/******************************************************************************/
+
+/* AEC Dark Region */
+{
+   0, /* Is Supported? */
+   0.100000f, /* Threshold Low */
+   0.500000f, /* Threshold Hi */
+   0.500000f, /* Discard Ratio */
+},
+
+/******************************************************************************/
+// Feature name : AEC LED
+// variable name: wled_trigger_idx
+// Lux index when LED strobe will start to
+//  be used.  Anytime lux-idx is higher than this, it will flag for LED usage.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview and snapshot.
+// default value (calculated) : Max Exposure Table Index-1
+// data range: 0 to max lux_idx
+// constraints: None
+// effect: 0 will always make LED strobe to be used. Larger value requires scene
+//  to be darker to LED to be used.
+/******************************************************************************/
+
+349, /* wLED Trigger Index */
+
+/******************************************************************************/
+// Feature name : AEC LED
+// variable name: aec_led_preview_flux
+// Amount of light flux emitted by LED in preview.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview
+// default value: 1
+// data range: Any positive number
+// constraints: None
+// effect: Ratio between aec_led_preview_flux and aec_led_snapshot_flux determines
+//  AEC compensation to be used.
+/******************************************************************************/
+
+1.000000f, /* AEC LED Preview Flux */
+
+/******************************************************************************/
+// Feature name : AEC LED
+// applicale chipset(s):All
+// applicable operation mode:Snapshot
+//
+// variable name: aec_led_snapshot_flux_hi
+// Sets LED flux output at highest current
+//  mode.  LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 4.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+//
+// variable name: aec_led_snapshot_flux_med
+// Sets LED flux output at medium current
+//  mode. LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 1.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+//
+// variable name: aec_led_snapshot_flux_low
+// Sets LED flux output at low current
+//  mode. LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 1.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+/******************************************************************************/
+
+1.000000f, /* AEC LED Snapshot Flux Hi */
+1.000000f, /* AEC LED Snapshot Flux Med */
+1.000000f, /* AEC LED Snapshot Flux Low */
+
+/******************************************************************************/
+// Feature name : AEC Motion ISO
+// applicale chipset(s):All MSM
+// applicable operation mode: snapshot, preview, and video
+// (Defaults are same for all 3 modes)
+//
+// variable name: motion_iso_enable
+// motion_iso_enable
+// default value: 0
+// data range: 0 or 1
+// constraints: None
+// effect: Enables motion ISO feature. while scenes are changing or moving,
+//  higher AE gains are used in efforts to reduce motion blur.
+//
+// variable name: motion_iso_aggressiveness
+// Determines how fast motion effect is applied
+//  to preview and snapshot.  Higher values cause gains to react rapidly upon any
+//  motion detection.
+// default value: 0.5
+// data range: 0.01 to 1
+// constraints: None
+// effect: Lower value makes motion to take longer to affect gains and exposure
+//  times and also longer to dissipate.
+//
+// variable name: motion_iso_threshold
+// Motion metric caclulated by algorithm
+// is compared to this threshold, if higher thant motion ISO is applied.
+// default value: 40
+// data range: Any positive value.
+// constraints: Depending on sensor noise, this threshold needs to be adjusted
+//   to make sure sensor noise is not triggering motion iso.  Value also needs
+//   be adjusted based on 256 or 64 AE stats region mode used.
+// effect: Lower value trigger motion ISO sooner.  Higher value requires
+//  more scene motion to trigger feature.
+//
+// variable name:motion_iso_max_gain
+// Max gain allowed to be used when motion ISO feature is triggered.
+// default value (calculated):  2 *  Max Exposure Table Gain.
+// data range: max AEC table gain to max gain supported by system.
+// constraints: If this value is set to default normal mode max gain, motion
+//  ISO will have no effect in low light.
+// effect: Higher gains allow more Motion ISO effect for low light scenes.
+//  Expect higher noise due to high gains used.
+/******************************************************************************/
+
+/* Snapshot Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+/* Preview Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+/* Video Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+
+/******************************************************************************/
+// Feature name : AEC Snapshot LUT
+// applicale chipset(s):All MSM
+// applicable operation mode: Snapshot
+//
+// variable name: enable
+// Allows snapshot to maximize exposure time used when luma target
+//  cannot be reached.
+// default value: 0
+// data range: 0 or 1
+// constraints: LUT needs to be entered or wrong snapshot brightness may ocurr.
+// effect: Allows snapshot gains and exposure times to be modified by a
+//  snapshot_ae_table LUT.
+//
+// variable name: exposure_stretch_enable
+// default value: 0
+// data range: 0 and 1
+// constraints: None
+// effect: Allowing auto stretch will cause snapshot to be brighter than preview
+//  when preview does not reach luma target.
+//
+// variable name: valid_entries
+// Number of entries used in ae_table LUT.
+// default value: 2
+// data range: 2 to 10
+// constraints: None
+// effect: Higher values allow more entries in LUT.
+//
+// variable name: snapshot_ae_table
+// Each entry contains a triplet of settings:
+//  lux_index, gain_trade_off, max_exp_time
+// default value: {0, 1/2, 0.200}, {1000, 1/2, 0.200}
+// data range: lux_index --> 0 to 1000
+//             gain_trade_off --> 1 to .1 (1 means keep preview gain, .1 means reduce gain 10 times)
+//             max_exp_time --> 1 (up to number of seconds allowed of exposure)
+// constraints: None
+// effect: By setting this LUT, at specified lux_idx the gain tradeoff and exposure
+//  caps will be used.  At lux_idx between entries, gain trade-offs and exposure
+//  caps will be linearly interpolated.
+/******************************************************************************/
+
+/* AEC Snapshot Exposure */
+{
+   1, /* Enable */
+   0, /* Stretch Enable */
+   2, /* Valid Entries */
+   /* Snapshot Table */
+   {
+      /* 0 */
+      {
+         0,
+         0.500000f,
+         0.200000f
+      },
+      /* 1 */
+      {
+         1000,
+         0.500000f,
+         0.200000f
+      },
+      /* 2 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 3 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 4 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 5 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 6 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 7 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 8 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 9 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+   },
+},
+
+/******************************************************************************/
+// Feature name : camcorder aec convergence
+// variable name: aec_holding_time_adj
+// Adjust camcorder aec convergence.
+// applicale chipset(s): all MSM
+// applicable operation mode: camcorder preview/recording
+// default value: 0
+// data range: -10 to 10
+// constraints: none
+// effect: larger value, longer holding time. Negative number, shorter holding time
+/******************************************************************************/
+
+0, /* Convergence Holding Time Adjust */
+
+/*********************************************************************/
+// Feature name :
+// The following framerate information should reflect the sensor driver setting.
+// They should be in sync with the sensor driver capability. Forcefully
+// changing their values will NOT actually change the frame, instead it may
+// cause issues with internal alogirhms that use this information as input.
+/*********************************************************************/
+
+30.000000f, /* Max Video FPS */
+
+/******************************************************************************/
+// variable name: max_sensitivity_lux_index
+// Max lux_index when luma target is able to be reached.
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value (calculated) : Max Exposure Table Index
+// Data Range: 0 to 1000
+// constraints: none
+// effect: we do not set this value, it is a value determined by exp table
+//         and supported FPS.
+// Other info: Currently linear AFR case is used. For non-linear AFR case, default is
+//                max_exp_index + (Num_FPS-1)*(max_FPS/min_FPS)*23
+/******************************************************************************/
+
+350, /* Max Sensitivity Lux Index */
+
+/******************************************************************************/
+// variable name: AEC_weight_center_weighted
+// Weight for each AEC STATs region under center weighted mode
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value:
+// Data Range: N/A
+// constraints: none
+// effect: region with higher weight value has more influence to AEC.
+/******************************************************************************/
+
+/* Center Weighted */
+{
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+},
+
+/******************************************************************************/
+// variable name: AEC_weight_spot_weighted
+// Weight for each AEC STATs region under spot weighted mode
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value:
+// Data Range: N/A
+// constraints: none
+// effect: region with higher weight value has more influence to AEC.
+/******************************************************************************/
+
+/* Spot Weighted */
+{
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+},
+/* Strobe Flash */
+{
+
+/******************************************************************************/
+// Feature name: AEC strobe flash estimation.
+// Applicable chipset:  7k and newer supporting strobe flash and precision timers.
+// 3A version: 2.1
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: strobe_flash_enable.
+// 1 (TRUE) uses strobe flash estimation,
+// 0 (FALSE) no flash estimation used for AEC.
+// Default value: 0.
+// Data range: 0 or 1.
+// Constraints: None.
+//
+// Variable name: strobe_min_time.
+// Preflash strobe trigger time used. Also minimum strobe trigger
+//  time (microseconds scale) used for snapshot.
+// Default value: 10.
+// Data range: 5 or 1000  (0us to 1ms).
+// Constraints: Need to verify that strobe capacitor is not discharged too much
+//              so rest of charge can be used for snapshot capture.
+// Effect: Some strobes require specify minimum strobe trigger time. If made
+//         shorter then strobe intensity is not consistent from flash to flash
+//         or strobe will not fire.
+//
+// Variable name: intersect_time_gain.
+// Trigger time where strobe output light gain starts to
+//  compress with respect to trigger time.
+// Default value: 7.
+// Data range: 1 to 20.
+// Constraints: None.
+//
+// Variable name: post_intersect_strobe_flux_rate_increase.
+// After compression point determined by trigger time set in
+//  intersect_time_gain, this value specifies the
+//  trigger time increment for each 1x strobe light flux gain increment.
+// Default value: 138.
+// Data range: 1 to 1000 in us.
+// Constraints: None.
+//
+// Variable name: max_strobe_gain.
+// Max strobe gain available.
+// Default Value: 8.
+// Data Range: 1 to 20.
+// Constraints: None.
+// Effect: If value is too high, AWB may be wrong when strobe and ambient
+//  illuminants are mixed and scene is far such that strobe has little effect.
+//  AEC may show underexposed if value is higher than strobe is capable of.
+//
+// Variable name: strobe_flash_lux_idx_trigger.
+// When lux index is larger than this value
+//   Xenon strobe will be used if full frame exposure for snapshot contraint
+//   is met.
+// Default value (calculated) :  AEC Indoor Index + 46.
+// Data range: 0 to 1000.
+// Constraints: Lux_idx trigger may be met but if exposure time condition is
+//   not met, then flash won't be used.
+// Effect: Larger value will require scene to be darker for strobe to be used.
+/******************************************************************************/
+
+   0, /* Enable */
+   10, /* Min Time */
+   7.000000f, /* Intersect Time Gain */
+   138.000000f, /* Post Intersect Flux Rate Incrase */
+   8.000000f, /* Max Gain */
+   316, /* Lux Idx Trigger */
+},
+/* Touch */
+{
+
+/******************************************************************************/
+// Feature name : Touch AEC  3A 2.2
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version : 2.2.
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: touch_roi_enable
+// 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+// default Value: 1
+// Data Range: 0 or 1
+// constraints:
+// effect: 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+//
+// variable name: touch_roi_weight
+// Determines influence or weight of UI (touch) area vs. normal
+//  AEC metering mode.
+// default Value: 0.8
+// Data Range: 0 to 1
+// constraints:
+// effect: 0 means no influence form UI selected area, 1 means "spot meter" on
+//         area selected.  0.5 means both selected area luma and normal AEC luma
+//         are averaged.
+/******************************************************************************/
+
+   0, /* ROI Enable */
+   0.800000f, /* Weight */
+},
+/* Face */
+{
+
+/******************************************************************************/
+// Feature name : Face priority AEC, 3A 2.2
+// applicable chipset:  7k and newer supporting face detection and interface
+//                      with auto exposure.
+// 3A version: 2.2
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: aec_face_enable
+// 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+// default Value: 0
+// Data Range: 0 or 1
+// constraints:
+// effect:
+//
+// variable name: aec_face_weight
+// Determines how much face area contributes for frame luma calculation.
+// default Value: 0.8
+// Data Range: 0 to 1
+// constraints:
+// effect: 1 means all influence comes from face area.  0 means face information
+// has no influence on AEC.
+//
+// variable name: dark_skin_ratio
+// Skin luma vs. white point luma ratio if close to this value
+//  then we set flag face as dark skin.
+// default Value: 0.3
+// Data Range: 0 to 1
+// constraints:
+// effect:
+//
+// variable name: light_skin_ratio
+// Skin luma vs. white point luma ratio if close to this value
+//  then we flag face as light skin.
+// default Value: 0.7
+// Data Range: 0 to 1
+// constraints:
+// effect:
+//
+// variable name: dark_skin_luma_target
+// Desired luma for dark skin face.
+// default Value (calculated): Default Luma Target * 0.8
+// Data Range: 0 to 255
+// constraints: To be applied post UI EV udpates.
+// effect: AEC tries to make a dark face luma achieve this target.
+//
+// variable name: light_skin_luma_target
+// Desiored luma for light skin face.
+// default Value (calculated): Default Luma Target * 1.2
+// Data Range: 0 to 255
+// constraints: To be applied post UI EV udpates.
+// effect: AEC tries to make a light face luma achieve this target.
+/******************************************************************************/
+
+   0, /* Enable */
+   0.800000f, /* Weight */
+   0.300000f, /* Dark Skin Ratio */
+   0.700000f, /* Light Skin Ratio */
+   40, /* Dark Skin Luma Target */
+   60, /* Light Skin Luma Target */
+},
+/* AEC Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AEC_motion_sensor_type to aide AEC in determining a change in
+//           scene
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: aec_gyro_trigger
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: aec_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: aec_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0
+// Data range: 0.0 to 360.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: aec_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+
+/******************************************************************************/
+// Feature name: Fast Convergence AEC for camera.
+// Applicable chipset(s): VFE 3.1 and later with Bayer support.
+// Applicable operation mode:  Camera mode only.
+//
+// Variable name: aec_fast_convergence_skip.
+// Frames to skip between exposure updates.
+// Default value:  2.
+// Data range: 1 to 5.
+// Constraints: If exposure updates happen before previous frame exposure
+//  updates are reflected on stats, aec oscillation may be present.  Increasing
+//  aec_fast_convergence_skip will remove the problem.
+// Effect: Larger values will slow down aec convergence, smaller values will
+//  converge faster but may cause instability if i2c and sensor updates are
+//  slow.
+//
+// variable name: aec_slow_convergence_skip.
+// Frames to skip between exposure updates.
+// Default value:  1.
+// Data range: 1 to 5.
+// Constraints: If exposure updates happen before previous frame exposure
+//  updates are reflected on stats, aec oscillation may be present.  Increasing
+//  aec_slow_convergence_skip will remove the problem.
+// Effect: Larger values will slow down aec convergence, smaller values will
+//  converge faster but may cause instability if i2c and sensor updates are
+//  slow.
+/******************************************************************************/
+
+2, /* AEC Fast Convergence Skip */
+1, /* AEC Slow Convergence Skip */
+
+/******************************************************************************/
+// Feature name : The following parameters are auto focus related. They should be
+//           obtained during AF characterization process.
+// Applicable chipset: All.
+// Applicable operation mode: Viewfinder.
+//
+// Variable name: num_gross_steps_between_stat_points.
+// Used to control how rough initial AF search (coarse search) is.
+// 3A version: 3.0
+// Default value: 4.
+// Data range: 3 to 6.
+// Constraints: None.
+// Effect: Larger value means more displacement between initial sampled
+//         points.  This would require more num_fine_search_points during
+//         subsequent search (fine search) to locate optimal ending AF lens
+//         position.
+//
+// Variable name: num_fine_steps_between_stat_points.
+// Used to control how precise subsequent AF search (fine search) is.
+// 3A version: 3.0
+// Default value: 1.
+// Data range: 1 or 2.
+// Constraints: Less than num_gross_steps_between_stat_points
+// Effect: The bigger the value is, the less likely AF lens ends in optimal
+//         position.
+//
+// Variable name: num_fine_search_points.
+// Used to control how many search points to be gather in fine search
+// 3A version: 3.0
+// Default value: 8.
+// Data range: Fixed as below.
+// Constraints: It is set to 2*num_gross_steps_between_stat_points to cover
+//              entire range of coarse search's neighboring sampled points.
+// Effect: If it is less than 2*num_gross_steps_between_stat_points, AF
+//         precision maybe lost.
+//
+// Variable name: position_near_end.
+// Used to control how far lens can move away from mechanical stop.  It is
+// defined in term of indices, where position_far_end > position_near_end.
+// 3A version: 3.0
+// Default value: 0.
+// Data range: 0 to (position_far_end ?1).
+// Constraints: Less than position_far_end. Total steps for AF lens to travel
+//              = position_far_end - position_near_end.  For sanity check, it
+//              should be more than 20 steps.
+// Effect: Non-zero means we are limiting AF travel range even more than the
+//         values obtained from AF tuning.  For example, if AF lens on the final
+//         production modules move 8 steps beyond the necessary MACRO focused
+//         distance, we can reduce travel range by setting position_near_end
+//         to 8 (or less to account for module-to-module variation).
+//
+// Variable name: position_default_in_macro.
+// Placeholder. For future use.
+//
+// variable name: position_boundary
+// Used to control how far lens can move away from mechanical stop in NORMAL search
+// mode.
+// 3A version: 3.0
+// Default value: 0 (To be tuned later).
+// Data range: 0 to (position_far_end ?1).
+// Constraints: Less than position_far_end.
+// Effect: The closer it is to position_far_end, the less steps AF lens is allowed
+//         to travel in NORMAL search mode.
+//
+// variable name: position_default_in_normal.
+// Placeholder. For future use
+//
+// variable name: undershoot_protect
+// Boolean flag to enable/disable the feature
+// 3A version: 3.0
+// default value: 0 (disable)
+// data range: 0 (enable) or 1 (disable)
+// constraints: the degree of protection from undershoot will be depends on undershoot_adjust
+//              variable
+// effect: If this feature is enabled, lens will move more in one direction over the other direction.
+//                               This is needed when it is determined that AF actuator has severe hysteresis on its movement
+//         during characterization process. The feature compensate hysteresis by moving the lens more
+//         in either forward or backward direction.
+//
+//
+// variable name: undershoot_adjust;
+// Used when undershoot protection is enabled.
+// 3A version: 3.0
+// default value: 0
+// data range: 0 to (coarse step size - 1)
+// constraints: As noted above, number greater than or equal to coarse step size is not
+//              recommended.
+// effect: When feature is turned on, the feature will compensate the undershoot movement
+//         of lens (mainly due to severe hysteresis) by moving extra step specified in this
+//         variable.
+//
+/******************************************************************************/
+
+4, /* Num Gross Steps Between Stat Points */
+1, /* Num Fine Steps Between Stat Points */
+8, /* Num Fine Search Points */
+1, /* Process Type */
+1, /* Near End */
+10, /* Default In Macro */
+20, /* Boundary */
+30, /* Defult In Normal */
+30, /* Far End */
+0, /* Undershoot Protect */
+0, /* Undershoot Adjust */
+
+/******************************************************************************/
+// applicable chipset: All.
+// applicable operation mode: Snapshot Auto Focus
+//
+// variable name: reset_lens_after_snap
+// Type: boolean
+// Forces the AF lens to reset to infinity position after snapshot capture
+// 3A version: All
+// default value: 1
+// data range: 0 to 1
+// constraints: None
+// effect: If 0 is selected, AF lens will remain in last AF position after
+// after snapshot.
+//         If 1 is selected, AF lens will move back to infinity or
+// RESET position after snapshot.  This could save power for certain actuators
+// like voice coil.  It will help reduce AF latency by setting starting position
+// at infinity prior to AF search.
+/******************************************************************************/
+
+1, /* Reset Lens After Snap */
+/* Config */
+{
+
+/*********************************************************************/
+// Feature name :
+// Min Y and max Y are used to limit pixels being used for focus value
+// calculation to only pixels with Y values between minY and maxY.
+/*********************************************************************/
+
+   0, /* Minimum Y */
+   255, /* Maximum Y */
+
+/*********************************************************************/
+// Feature name :
+// This group of parameters defines the coordinates of single AF window.
+//
+// Horizontal Offset Ratio:
+// Horizontal location of first pixel in terms of the ratio to the whole frame size.
+// For example, image width is 1000, we want to use the middle 500
+// as AF window. Horizontal offset ratio is 250/1000=0.25.
+// default: 0.25.
+//
+// Vertical Offset Ratio:
+// Similar to Horizontal Offset Ratio, but this is in the veritcal direction.
+// default: 0.25.
+//
+// Horizontal Clip Ratio:
+// AF window horizontal size in terms of ratio to the whole image. For the
+// same example above, Horizontal Clip Ratio is 500/1000=0.5.
+// default: 0.5.
+//
+// Vertical Clip Ratio:
+// AF window veritical size in terms of ratio to the whole image. For the
+// same example above, Vertical Clip Ratio is 500/1000=0.5.
+// default: 0.5.
+//
+/*********************************************************************/
+
+   0.250000f, /* Horizontal Offset Ratio */
+   0.250000f, /* Vertical Offset Ratio */
+   0.500000f, /* Horizontal Clip Ratio */
+   0.500000f, /* Vertical Clip Ratio */
+},
+
+/*********************************************************************/
+// Feature name :
+//
+// Focus value metric. 0 means sum, 1 means max.
+/*********************************************************************/
+
+0, /* FV Metric */
+
+/*********************************************************************/
+// Feature name :
+// Highpass filter coeffs used for focus value calculation.
+// range: -16 to 15.
+/*********************************************************************/
+
+/* AF VFE HPF */
+{
+   -3, /* A00 */
+   0, /* A02 */
+   -2, /* A04 */
+   15, /* A20 */
+   0, /* A21 */
+   0, /* A22 */
+   0, /* A23 */
+   -10, /* A24 */
+},
+/* AF Shake Resistant */
+{
+
+/******************************************************************************/
+// Feature name: AF shake resistant.
+// Applicable chipset: all chipsets.
+// 3A version: 1.8.
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: AF_shake_resistant_enable.
+// Enables and disables the feature.
+// Default value: 1.
+// Data range: 0 or 1.
+// Constraints: None.
+// Effect: Enables or disables the featue.
+//
+// Variable name: AF_max_gain (overall gain).
+// Member of AF_shake_resistant_type.
+//  Used to define the maximum gain allowed when the gain is boosted
+//  under low light.
+// Default value (calculated): 4 * Max Exposure Table Gain
+// Data range: 4 to 10X max preview gain of exp table.
+// Constraints: This value will limit the max_af_tradeoff_ratio applied.
+// Effect: The bigger the value, the shorter the exposure time will be,
+//         increasing the noise level.
+//
+// Variable name: AF_min_frame_luma.
+// Member of AF_shake_resistant_type.
+//  The minimum frame luma allowed below which shake-resistant AF will
+//  be disabled.
+// Default value: 0 (to be tuned later).
+// Data range: 0~luma_target.
+// Constraints: It should be greater than the value at which the frame is too dark
+//              for AF to work successfully.
+// Effect: The smaller this value is set, the darker lighting condition under which
+//         shake-resistant AF will be turned off.
+//
+// Variable name: AF_tradeoff_ratio.
+// Member of AF_shake_resistant_type.
+//  Used to define how much the exposure time should be reduced.
+// Default value: 4.
+// Data range: 1~4.
+// Constraints: The value should be greater than or equal to 1.
+// Effect: The bigger the value is, the smaller the adjusted exposure time would be.
+//
+// Variable name: AF_shake_resistante_toggle_frame_skip.
+// Member of AF_shake_resistant_type.
+//  Sets number of frames to skip or drop from preview when this feature is called.
+// Default value: 2.
+// Data range: 0 to 4.
+// Constraints: None.
+// Effect: Will appear as preview is frozen for amount of frames set whenever
+//         AF is started and finished.
+//
+/******************************************************************************/
+
+   0, /* Enable */
+   32.000000f, /* Max Gain */
+   0, /* Min Frame Luma */
+   4.000000f, /* AF Tradeoff Ratio */
+   2, /* Toggle Frame Skip */
+},
+
+/******************************************************************************/
+// Feature name : AF scene change detection.
+// applicable chipset: MSM7x01 and newer chipsets.
+// applicable operation mode: View finder, snapshot and video
+//
+// variable name: AF_scene_change_detection_ratio
+// Used to control how scene change should be detected for continuous AF
+// 3A version: 1.5
+// default value: 4
+// data range: 1~8
+// constraints: the gain should be not be smaller than 1.
+// effect: The bigger the value is, the more sensitive the continuous AF
+//         responds to the scene change.
+//
+// variable name: AF_peak_drop_down_factor
+// Used to control the variation of current FV from peak FV
+// 3A version: all.
+// default value: 0.9
+// data range: 0.8~0.9
+// constraints: it should be smaller than 1 and greater than 0.
+// effect: The bigger the value is, the smaller variation is allowed between the
+//         current FV and the maximum FV.
+/******************************************************************************/
+
+4, /* Scene Change Detection Ratio */
+0.900000f, /* Peak Drop Down Factor */
+/* CAF */
+{
+
+/******************************************************************************/
+// Feature name : AF_CAF_type to aide AF configuring CAF behavior.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: af_cont_lux_index_change_threshold.
+// exp_index delta or lux_idx > af_cont_lux_index_change_threshold then target change is
+// considered to have occurred.
+// 3A version: 3.0.
+// Default value: 23.
+// Data range: 0 to 100.
+// Constraints: Nonen
+// Effect: Smaller setting will cause CAF to trigger search easier.  May cause
+// instability if set too small.  If value is set too high, lux_idx and/or
+// exp_index change will not trigger a scene change, therefore may not trigger
+// a new search.
+//
+// Variable name: af_scene_change_detection_ratio.
+// FV change to trigger a target change, following with a new focus search.
+// 3A version: 3.0
+// Default value: 4.
+// Data range: 0 to 60.
+// Constraints: None.
+// Effect: Higher value makes it easier to trigger a new search.  Smaller value
+// makes it harder to trigger a search due to FV change.
+//
+// Variable name: af_panning_stable_fv_change_trigger.
+// FV change vs. past frame FV to trigger to determine if scene is stable.
+//           If ( |FV[i]-FV[i-1]|*t > FV[i-1]), not stable.
+//
+// 3A version: 3.0
+// constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_panning_stable_fvavg_to_fv_change_trigger.
+// FV change vs. average of 10 past frame's FV to trigger to determine if
+// scene is stable.
+//           If ( |FV[i]-FVavg|*t > Fvavg), not stable.
+// 3A version: 3.0
+// Constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_panning_unstable_trigger_cnt.
+// How many panning unstable detections before triggering a scene change.
+// Video mode to have different settings than camera.
+// 3A version: 3.0
+// Constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_Basedelay_normal.
+// Number of frames to skip after every lens movement command.
+// Suggest video mode to have different than camera mode.
+// 3A version: 3.0
+// Default value: 1.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher values makes CAF search slower but tends to be more stable.
+//
+// Variable name: af_scene_change_trigger_cnt.
+// Number of consecutive random scene change frames to determine need for
+// new AF search.
+// 3A version: 3.0
+// Default value: 5.
+// Data range: 0 to 150.
+// Constraints: None.
+// Effect: Higher values makes CAF harder to start a new search, for example,
+// it is useful when a scene has movement but do not want to trigger
+// a new CAF search.
+//
+// Variable name: af_downhill_allowance.
+// Number of extra steps to search once peak FV is found
+// new AF search.
+// 3A version: 3.0
+// Default value: 3.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value will cause focus search to go beyond peak this amount
+// of frames then return.  Higher values is less prone to get AF stuck in local
+// maximum but it takes longer and user experience is reduced.  Smaller values
+// has better user experience and time but may cause AF to focus on local maximum.
+/******************************************************************************/
+
+   1, /* CAF Enable */
+   4, /* Scene Change Detection Ratio */
+   10.000000f, /* Panning Stable FV Change Trigger */
+   20.000000f, /* Panning Stable FV Avg to FV Change Trigger */
+   16000, /* Panning Unstable Trigger Count */
+   4, /* Scene Change Trigger Count */
+   3, /* Downhill Allowance */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_base_frame_delay.
+// How many frames to wait after lens move.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  1.
+// Data range: 0 ~ 5.
+// Constraints: Integers.
+// Effect: Bigger in value represents longer waiting time.
+/******************************************************************************/
+
+   1, /* Continuous Base Frame Delay */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_lux_index_change_threshold.
+// Threshold above which the change of lux.
+// Index will trigger the continuous AF search.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  10.
+// Data range: > 0.
+// Constraints: Integers.
+// Effect: Refocusing is needed when exp change > threshold.
+/******************************************************************************/
+
+   10, /* Continuous Lux Index Change Threshold */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_threshold_in_noise.
+// Determine if the variation in FV is
+// caused by noise.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  0.05
+// Data range: > 0.
+// Constraints: Float.
+// Effect: (FV1 - FV0)/FV1 (FV1>FV0), noise if this value < threshold,
+//         otherwise, start FV search.
+/******************************************************************************/
+
+   0.050000f, /* Continous Threshold in Noise */
+   2, /* Continuous Search Step Size */
+},
+
+/******************************************************************************/
+// Feature name : snapshot AF delay
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: basedelay_snapshot_AF.
+// Number of frames to skip after lens move is complete during AF snapshot
+// search.
+// 3A version: 3.0
+// Default value: 0.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Set to 0 is fast exhaustive search method.  Setting to higher value
+// is normal exhaustive search.
+/******************************************************************************/
+
+0, /* Basedelay Snapshot AF */
+
+/******************************************************************************/
+// Feature name : AF mode
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: af_macro.
+// Type: chromatix_af_macro_type.
+// Configures the Macro AF snapshot mode.
+// 3A version: 3.0
+// Default value: MACRO.
+// Data range: MACRO, MACRO_LIMITED, or SUPER_MACRO.
+// Constraints: Mode 0 is supported, 1 and 2 are placeholders for future
+// macro modes.
+// Effect: Sets Macro AF mode.
+/******************************************************************************/
+
+MACRO, /* AF Macro */
+
+/******************************************************************************/
+// eature name : AF snapshot algorithm.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: af_snapshot_algorithm.
+// Type: chromatix_af_snapshot_algorithm_type.
+// Configures the Macro AF snapshot mode.
+// 3A version: 3.0
+// Default value: FAST_EXHAUSTIVE.
+// Data range: HILL_CLIMBING, FAST_EXHAUSTIVE, SLOW_EXHAUSTIVE,
+//    FAST_HILL_CLIMBING.
+// Constraints: None.
+// Effect: Sets snapshot AF search method.
+/******************************************************************************/
+
+FAST_EXHAUSTIVE, /* AF Snapshot Algorithm */
+
+/******************************************************************************/
+// Feature name : AF face priority weight.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Face priority Auto Focus.
+//
+// Variable name: face_priority_AF_weight.
+// Type: chromatix_face_priority_AF_weight_type.
+// Configures auto focus metering mode for face, selects between single face and
+// multiple face option.
+// Dominant face configures AF to focus on single face.
+// Weighted average allows AF to focus on multiple faces, applying weight based
+// on priority set by chromatix_face_priority mode.
+// 3A version: 3.0
+// Default value: FACE_PRIORITY_AF_DOMINANT_FACE.
+// Data range: FACE_PRIORITY_AF_DOMINANT_FACE, FACE_PRIORITY_AF_WEIGHTED_AVERAGE.
+// Constraints: None
+// Effect: Sets single face AF or multiple face AF.
+/******************************************************************************/
+
+FACE_PRIORITY_AF_DOMINANT_FACE, /* Face Priority Weight */
+
+/******************************************************************************/
+// Feature name : AF face priority type
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Face priority Auto Focus.
+//
+// Variable name: chromatix_face_priority.
+// Type: chromatix_face_priority_type.
+// Configures method used to set focus priorities when multiple faces are
+// detected.
+// 3A version: 3.0
+// Default value: FACE_PRIORITY_CENTER.
+// Data range: FACE_PRIORITY_CENTER, FACE_PRIORITY_BIG.
+// Constraints: None.
+// Effect: If 0 is selected, centermost face has highest AF priority, if 1 is
+// selected, largest face has AF priority.
+/******************************************************************************/
+
+FACE_PRIORITY_CENTER, /* Face Priority Type */
+/* AF Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AF_motion_sensor_type to aide AF in determining a change in
+//           scene.
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video
+//
+// Variable name: af_gyro_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: af_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: af_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: 0.0 to 360.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: af_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+
+/******************************************************************************/
+// Feature name: LED assisted AF.
+//?// Variable name: led_af_assist_enable.
+// Enable or disable the LED assist for auto focus feature.
+// Default value: 1.
+// Data range: 1 or 0.
+// Constraints: None.
+// Effect: LED auto focus assist can is enable.
+//
+// Variable name: led_af_assist_trigger_idx.
+// Lux Index at which LED assist for autofocus is enabled.
+// Default value (calculated): wLED Trigger Index
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: Selects scene brightness level at which LED auto focus assist can be enabled.
+/******************************************************************************/
+
+1, /* LED AF Assist Enable */
+349, /* LED AF Assist Trigger Idx */
+
+/*********************************************************************/
+// Feature name :
+// Control for lowlight snapshot gamma.
+// 0 means using lux index to control.
+// 1 means using gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for lowlight snapshot gamma.
+// gain start:
+// When gain >= gain_start, lowlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   3.900000f, /* Gain Start */
+   4.000000f, /* Gain End */
+   314, /* Preview */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight snapshot gamma.
+// gain start :
+// When gain <= gain_start, brightlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end < lux_index_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+/*********************************************************************/
+
+/* Outdoor Trigger Points */
+{
+   2.00000f, /* Gain Start */
+   1.00000f, /* Gain End */
+   140, /* Lux Index Start */
+   105, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+//Feature name :
+// Lowlight light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Low-Light Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
+      5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 12, 13,
+      14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 21, 21, 22, 23, 24, 24,
+      25, 26, 27, 28, 28, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 37,
+      37, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47,
+      48, 48, 49, 50, 50, 51, 52, 52, 53, 54, 54, 55, 56, 56, 57, 58,
+      58, 59, 60, 60, 61, 62, 62, 63, 64, 64, 65, 66, 66, 67, 67, 68,
+      69, 69, 70, 71, 71, 72, 72, 73, 74, 74, 75, 75, 76, 77, 77, 78,
+      78, 79, 80, 80, 81, 81, 82, 82, 83, 84, 84, 85, 85, 86, 86, 87,
+      87, 88, 88, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
+      96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 100, 101, 101, 102, 102, 103,
+      103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 109, 110,
+      110, 111, 111, 111, 112, 112, 113, 113, 114, 114, 114, 115, 115, 116, 116, 116,
+      117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 123,
+      123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128,
+      129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134,
+      134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 138, 138, 139,
+      139, 139, 140, 140, 140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144,
+      144, 144, 144, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148,
+      148, 149, 149, 149, 149, 150, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152,
+      153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156,
+      156, 157, 157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160,
+      160, 160, 161, 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, 163, 163, 164,
+      164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 167, 167,
+      167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170,
+      170, 170, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 173, 173, 173, 173,
+      173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 176, 176, 176,
+      176, 176, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 179, 179,
+      179, 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 182,
+      182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184,
+      184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 187, 187,
+      187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 192, 192, 192,
+      192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197,
+      197, 197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199,
+      200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202,
+      202, 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204,
+      205, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 207, 207, 207,
+      207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      209, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212,
+      212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 221, 221,
+      221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223,
+      223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225,
+      225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227,
+      227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229,
+      229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231,
+      231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 233,
+      233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 234, 234, 235,
+      235, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 236,
+      236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238,
+      238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240,
+      240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+      242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243,
+      243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245,
+      245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
+      247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248,
+      248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250,
+      250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
+      252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253,
+      253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Bright light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag.Always set this flag to 0.
+/*********************************************************************/
+
+/* Outdoor Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for lowlight preview gamma.
+// gain start :
+// When gain >= gain_start, lowlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight viewfinder gamma.
+// gain start :
+// When gain <= gain_start, brightlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: decreasing this value will use brightlight gamma under brighter light condition.
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight gamma is used.
+// Range: for linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end < lux_index_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+/*********************************************************************/
+
+/* Outdoor Trigger Points */
+{
+   4.800000f, /* Gain Start */
+   2.400000f, /* Gain End */
+   140, /* Lux Index Start */
+   105, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light gamma for preview.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Default Preview Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// lowlight gamma for preview.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Low-Light Preview Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
+      5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 12, 13,
+      14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 21, 21, 22, 23, 24, 24,
+      25, 26, 27, 28, 28, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 37,
+      37, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47,
+      48, 48, 49, 50, 50, 51, 52, 52, 53, 54, 54, 55, 56, 56, 57, 58,
+      58, 59, 60, 60, 61, 62, 62, 63, 64, 64, 65, 66, 66, 67, 67, 68,
+      69, 69, 70, 71, 71, 72, 72, 73, 74, 74, 75, 75, 76, 77, 77, 78,
+      78, 79, 80, 80, 81, 81, 82, 82, 83, 84, 84, 85, 85, 86, 86, 87,
+      87, 88, 88, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
+      96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 100, 101, 101, 102, 102, 103,
+      103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 109, 110,
+      110, 111, 111, 111, 112, 112, 113, 113, 114, 114, 114, 115, 115, 116, 116, 116,
+      117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 123,
+      123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128,
+      129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134,
+      134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 138, 138, 139,
+      139, 139, 140, 140, 140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144,
+      144, 144, 144, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148,
+      148, 149, 149, 149, 149, 150, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152,
+      153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156,
+      156, 157, 157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160,
+      160, 160, 161, 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, 163, 163, 164,
+      164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 167, 167,
+      167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170,
+      170, 170, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 173, 173, 173, 173,
+      173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 176, 176, 176,
+      176, 176, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 179, 179,
+      179, 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 182,
+      182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184,
+      184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 187, 187,
+      187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 192, 192, 192,
+      192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197,
+      197, 197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199,
+      200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202,
+      202, 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204,
+      205, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 207, 207, 207,
+      207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      209, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212,
+      212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 221, 221,
+      221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223,
+      223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225,
+      225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227,
+      227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229,
+      229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231,
+      231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 233,
+      233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 234, 234, 235,
+      235, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 236,
+      236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238,
+      238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240,
+      240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+      242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243,
+      243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245,
+      245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
+      247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248,
+      248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250,
+      250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
+      252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253,
+      253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Bright light gamma for preview.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Outdoor Preview Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Backlight gamma for snapshot and preview.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Backlight Preview Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 28,
+      30, 32, 34, 36, 38, 40, 42, 44, 45, 47, 49, 51, 53, 54, 56, 58,
+      59, 61, 62, 64, 65, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78,
+      79, 80, 81, 82, 82, 83, 84, 85, 85, 86, 87, 87, 88, 89, 89, 90,
+      90, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98,
+      98, 99, 99, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 104, 104, 104,
+      105, 105, 105, 106, 106, 106, 107, 107, 107, 108, 108, 108, 109, 109, 109, 110,
+      110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 115,
+      115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 117, 118, 118, 118, 118, 119,
+      119, 119, 119, 120, 120, 120, 120, 121, 121, 121, 121, 121, 122, 122, 122, 122,
+      123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126,
+      126, 126, 126, 126, 127, 127, 127, 127, 127, 129, 129, 129, 129, 129, 129, 130,
+      130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133,
+      133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135,
+      135, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 138, 138,
+      138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 139, 140, 140, 140,
+      140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142,
+      142, 142, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+      143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+      144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+      145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, 146,
+      146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+      146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+      146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 147, 147,
+      147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+      147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148,
+      148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+      149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+      149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+      150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, 152,
+      152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153,
+      153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+      155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
+      156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158,
+      158, 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160,
+      160, 160, 160, 160, 161, 161, 161, 161, 161, 161, 161, 162, 162, 162, 162, 162,
+      162, 162, 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 164,
+      165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 167, 167, 167,
+      167, 167, 167, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 170,
+      170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172,
+      172, 173, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175,
+      175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178, 178, 178, 178,
+      178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, 181, 181,
+      181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184,
+      185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188,
+      188, 188, 188, 188, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191,
+      191, 191, 192, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 198, 198,
+      198, 198, 199, 199, 199, 199, 199, 200, 200, 200, 200, 201, 201, 201, 201, 201,
+      202, 202, 202, 202, 203, 203, 203, 203, 203, 204, 204, 204, 204, 205, 205, 205,
+      205, 206, 206, 206, 206, 206, 207, 207, 207, 207, 208, 208, 208, 208, 208, 209,
+      209, 209, 209, 210, 210, 210, 210, 211, 211, 211, 211, 211, 212, 212, 212, 212,
+      213, 213, 213, 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 218, 218, 218, 218, 219, 219, 219, 219, 219, 220,
+      220, 220, 220, 221, 221, 221, 221, 222, 222, 222, 222, 222, 223, 223, 223, 223,
+      224, 224, 224, 224, 225, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227,
+      227, 228, 228, 228, 228, 228, 229, 229, 229, 229, 230, 230, 230, 230, 231, 231,
+      231, 231, 231, 232, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234,
+      235, 235, 235, 235, 236, 236, 236, 236, 236, 237, 237, 237, 237, 238, 238, 238,
+      238, 238, 239, 239, 239, 239, 240, 240, 240, 240, 240, 241, 241, 241, 241, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 244, 244, 245, 245, 245,
+      245, 246, 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 248, 249,
+      249, 249, 249, 249, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252,
+      252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Turning point for solarize gamma generation in 8 bit domain.
+//
+/*********************************************************************/
+
+128, /* Solarize Gamma Reflection Point */
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control black level subtraction.
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot black level subtraction.
+// gain start :
+// When gain >= gain_start, lowlight black level is interpolated with normal black level.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight black level under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight black level is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight black level under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight black level is interpolated with normal black level.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight black level under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight black level is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight black level under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Amount of black level increase for snapshot under lowlight.
+// Range: 0 to "black level offset"(next entry in chromatix header)
+// Constraint: Smaller than or equal to "black level offset".
+// Effect: Larger value will increase signal level but has less contrast.
+/*********************************************************************/
+
+0, /* Max Black Increase Snapshot */
+
+/*********************************************************************/
+// Feature name :
+// 2 channel Black level offsets for snapshot under normal and bright light.
+// This set parameters are used in MSM7201, MSM7601, MSM7501, MSM7x25, MSM7x27.
+// Range: 0 to 1023
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Black level offset */
+{69, 69},
+
+/*********************************************************************/
+// Feature name :
+// 4 channel Black level offsets for snapshot under normal and bright light.
+// This set parameters is used in QSC6270(6240), QSC6295, QSD8x50.
+// Range: 0 to 1023 for MSM7x25, MSM7x27 and QSD8x50; 0 to 256 for QSC6270(6240), QSC6295.
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Four Channel Normal Light Black-Level */
+{69, 69, 69, 69},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for viewfinder black level subtraction.
+// gain start :
+// When gain >= gain_start, lowlight black level is interpolated with normal black level.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight black level under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight black level is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight black level under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight black level is interpolated with normal black level.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight black level under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight black level is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight black level under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Amount of black level increase for viewfinder under lowlight.
+// Range: 0 to "black level offset"(next entry in chromatix header).
+// Constraint: Smaller than or equal to "black level offset".
+// Effect: Larger value will increase signal level but has less contrast.
+/*********************************************************************/
+
+0, /* Max Black Increase Preview */
+
+/*********************************************************************/
+// Feature name :
+// 2 channel black level offsets for vewfinder under normal and bright light.
+// This set parameters is used in MSM7201, MSM7601, MSM7501, MSM7x25, MSM7x27.
+// Range: 0 to 1023.
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Black level offset */
+{69, 69},
+
+/*********************************************************************/
+// Feature name :
+// 4 channel black level offsets for viewfinder under normal and bright light.
+// This set parameters is used in QSC6270(6240), QSC6295, QSD8x50.
+// Range: 0 to 1023 for MSM7x25, MSM7x27 and QSD8x50; 0 to 256 for QSC6270(6240), QSC6295.
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Four Channel Preview Normal Light Black-Level */
+{69, 69, 69, 69},
+
+/*********************************************************************/
+// Feature name :
+// 1 channel black level offsets for snapshot under normal and bright light.
+// This set parameters are used in MSM6xxx.
+// Range: 0 to 256.
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Snapshot Black-Level Value */
+69,
+
+/*********************************************************************/
+// Feature name :
+// 1 channel black level offsets for viewfinder under normal and bright light.
+// This set parameters are used in MSM6xxx.
+// Range: 0 to 256.
+// Effect: Usually we should use sensor recommended value. Smaller value will
+//   reduce contrast and has "foggy" effect.
+/*********************************************************************/
+
+/* Preview Black-Level Value */
+69,
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control rolloff correction.
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+/* SNAP Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Gain threshold above which lowlight rolloff will be used for snapshot.
+// Range: minGain to maxGain from exposure table.
+// Effect: Higher value will result in using lowlight rolloff at
+// lower light condition.
+/*********************************************************************/
+
+7.200000f, /* Gain */
+
+/*********************************************************************/
+// Feature name :
+// Lux index threshold above which lowlight rolloff will be used for snapshot.
+// Range: 0 to max lux index.
+// Effect: Higher value will result in using lowlight rolloff at
+// lower light condition.
+/*********************************************************************/
+
+314, /* Exposure Index */
+/* Radius Square Lens Rolloff */
+{
+
+/*********************************************************************/
+// Comments
+// Radial based rolloff for snapshot under fluorescence illuminant.
+// This is used in MSM7201, MSM7501, MSM7601.
+/*********************************************************************/
+
+   /* TL84 VFE Lens Rolloff */
+   /* Red Correction Percent: 100 */
+   /* Green Correction Percent: 100 */
+   /* Blue Correction Percent: 100 */
+   {
+      /* Image Center x */
+      3,
+      /* Image Center y */
+      3,
+      /* Image Width */
+      12,
+      /* Image Height */
+      6,
+      /* Number of Intervals */
+      32,
+      /* Radius square table */
+      {
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1
+      },
+      /* Red correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Green correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Blue correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Radial based rolloff for snapshot under A and H illuminants.
+// This is used in MSM7201, MSM7501, MSM7601.
+/*********************************************************************/
+
+   /* A VFE Lens Rolloff */
+   /* Red Correction Percent: 100 */
+   /* Green Correction Percent: 100 */
+   /* Blue Correction Percent: 100 */
+   {
+      /* Image Center x */
+      3,
+      /* Image Center y */
+      3,
+      /* Image Width */
+      12,
+      /* Image Height */
+      6,
+      /* Number of Intervals */
+      32,
+      /* Radius square table */
+      {
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1
+      },
+      /* Red correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Green correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Blue correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Radial based rolloff for snapshot under daylight illuminant.
+// This is used in MSM7201, MSM7501, MSM7601.
+/*********************************************************************/
+
+   /* D65 VFE Lens Rolloff */
+   /* Red Correction Percent: 100 */
+   /* Green Correction Percent: 100 */
+   /* Blue Correction Percent: 100 */
+   {
+      /* Image Center x */
+      3,
+      /* Image Center y */
+      3,
+      /* Image Width */
+      12,
+      /* Image Height */
+      6,
+      /* Number of Intervals */
+      32,
+      /* Radius square table */
+      {
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1
+      },
+      /* Red correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Green correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Blue correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Radial based rolloff for snapshot under lowlight.
+// This is used in MSM7201, MSM7501, MSM7601.
+/*********************************************************************/
+
+   /* Low-Light VFE Lens Rolloff */
+   /* Red Correction Percent: 100 */
+   /* Green Correction Percent: 100 */
+   /* Blue Correction Percent: 100 */
+   {
+      /* Image Center x */
+      3,
+      /* Image Center y */
+      3,
+      /* Image Width */
+      12,
+      /* Image Height */
+      6,
+      /* Number of Intervals */
+      32,
+      /* Radius square table */
+      {
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1
+      },
+      /* Red correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Green correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Blue correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      }
+      },
+   /* Preview VFE Lens Rolloff */
+   /* Red Correction Percent: 100 */
+   /* Green Correction Percent: 100 */
+   /* Blue Correction Percent: 100 */
+   {
+      /* Image Center x */
+      3,
+      /* Image Center y */
+      3,
+      /* Image Width */
+      12,
+      /* Image Height */
+      6,
+      /* Number of Intervals */
+      32,
+      /* Radius square table */
+      {
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1,
+         1, 1, 1, 1, 1, 1, 1, 1
+      },
+      /* Red correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Green correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      },
+      /* Blue correction table */
+      {
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
+         1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000
+      }
+      },
+},
+/* Mesh Lens Rolloff */
+{
+
+/*********************************************************************/
+// Feature name :
+// Mesh rolloff for snapshot under fluorescence illuminant.
+// This is used in QSC6270(6240), QSC6295, QSD8x50.
+/*********************************************************************/
+
+   /* TL84 Mesh Lens Rolloff */
+   {
+      221,
+      /* R Gain */
+      {
+         4.293613f, 3.859412f, 3.319426f, 2.846904f, 2.428242f, 2.153993f, 1.964562f, 1.863311f, 1.834183f, 1.869892f, 1.982296f, 2.178145f, 2.467048f, 2.905211f, 3.385616f, 3.879598f, 4.355606f,
+         3.957220f, 3.485382f, 2.886140f, 2.400780f, 2.044097f, 1.808705f, 1.661453f, 1.570873f, 1.542425f, 1.573796f, 1.671983f, 1.833159f, 2.090968f, 2.454429f, 2.961461f, 3.552920f, 3.982659f,
+         3.617190f, 3.063025f, 2.474094f, 2.024294f, 1.726780f, 1.533997f, 1.405149f, 1.353724f, 1.325637f, 1.351735f, 1.428294f, 1.564035f, 1.769889f, 2.092607f, 2.540057f, 3.152755f, 3.748624f,
+         3.339445f, 2.736644f, 2.168879f, 1.784539f, 1.521801f, 1.360438f, 1.260217f, 1.204428f, 1.187852f, 1.211085f, 1.277916f, 1.383016f, 1.553060f, 1.824196f, 2.240862f, 2.820966f, 3.437851f,
+         3.087326f, 2.499934f, 1.976176f, 1.623282f, 1.408664f, 1.261458f, 1.159709f, 1.102035f, 1.087431f, 1.109856f, 1.183694f, 1.287589f, 1.438422f, 1.683745f, 2.068477f, 2.607455f, 3.214874f,
+         2.939503f, 2.365134f, 1.860981f, 1.547360f, 1.342515f, 1.199031f, 1.102484f, 1.052031f, 1.028492f, 1.050423f, 1.118291f, 1.228794f, 1.376414f, 1.591388f, 1.957626f, 2.464550f, 3.059918f,
+         2.849648f, 2.290642f, 1.828773f, 1.506950f, 1.320257f, 1.175876f, 1.071646f, 1.020475f, 1.001392f, 1.024694f, 1.086714f, 1.194831f, 1.349631f, 1.578072f, 1.910882f, 2.418413f, 3.006987f,
+         2.904188f, 2.342716f, 1.865802f, 1.540077f, 1.340204f, 1.196927f, 1.094872f, 1.042651f, 1.023981f, 1.040425f, 1.113685f, 1.226029f, 1.377428f, 1.599528f, 1.951118f, 2.457546f, 3.057787f,
+         3.043993f, 2.480683f, 1.969735f, 1.626734f, 1.416843f, 1.273305f, 1.165172f, 1.109728f, 1.088063f, 1.109887f, 1.178572f, 1.287407f, 1.445222f, 1.692966f, 2.064466f, 2.577406f, 3.182398f,
+         3.267106f, 2.692833f, 2.149812f, 1.767798f, 1.525091f, 1.378175f, 1.275625f, 1.208339f, 1.189352f, 1.215399f, 1.286891f, 1.393974f, 1.571952f, 1.841682f, 2.244740f, 2.825628f, 3.431330f,
+         3.552355f, 2.998428f, 2.418445f, 1.989995f, 1.710982f, 1.530922f, 1.417034f, 1.347679f, 1.328181f, 1.354091f, 1.420453f, 1.547923f, 1.763872f, 2.065597f, 2.520987f, 3.104312f, 3.618368f,
+         3.865250f, 3.396996f, 2.822810f, 2.342755f, 2.002479f, 1.775105f, 1.634454f, 1.558534f, 1.537007f, 1.560146f, 1.650735f, 1.797983f, 2.052466f, 2.428390f, 2.924473f, 3.457728f, 3.900906f,
+         4.173423f, 3.744410f, 3.247157f, 2.736430f, 2.353447f, 2.093140f, 1.913022f, 1.824017f, 1.796935f, 1.831899f, 1.936313f, 2.096854f, 2.391612f, 2.798110f, 3.300969f, 3.769051f, 4.310550f
+      },
+      /* GR Gain */
+      {
+         3.616728f, 3.350174f, 2.890915f, 2.486905f, 2.186644f, 1.977358f, 1.844746f, 1.767400f, 1.747816f, 1.773626f, 1.869238f, 2.017706f, 2.239044f, 2.571993f, 2.987420f, 3.390367f, 3.729983f,
+         3.309944f, 3.031523f, 2.540823f, 2.159148f, 1.888244f, 1.710560f, 1.589951f, 1.530045f, 1.504930f, 1.533736f, 1.606812f, 1.731592f, 1.929260f, 2.223370f, 2.631135f, 3.094660f, 3.493060f,
+         3.041082f, 2.690684f, 2.217019f, 1.878188f, 1.635950f, 1.484886f, 1.387027f, 1.332062f, 1.317723f, 1.339142f, 1.402771f, 1.510208f, 1.671240f, 1.924993f, 2.269013f, 2.772691f, 3.265321f,
+         2.810130f, 2.436893f, 1.990687f, 1.677451f, 1.472128f, 1.337689f, 1.246214f, 1.197412f, 1.181465f, 1.204823f, 1.266854f, 1.357642f, 1.496646f, 1.721122f, 2.051511f, 2.532763f, 3.053454f,
+         2.663846f, 2.263654f, 1.846096f, 1.558967f, 1.372904f, 1.246115f, 1.152535f, 1.100449f, 1.080366f, 1.110198f, 1.171892f, 1.270355f, 1.405374f, 1.601787f, 1.920914f, 2.368015f, 2.894118f,
+         2.556055f, 2.155734f, 1.758055f, 1.486964f, 1.314827f, 1.188907f, 1.091204f, 1.039704f, 1.021114f, 1.046164f, 1.112058f, 1.213907f, 1.346982f, 1.536062f, 1.835060f, 2.281297f, 2.794658f,
+         2.509013f, 2.117719f, 1.725409f, 1.463770f, 1.287163f, 1.165530f, 1.065565f, 1.015348f, 1.000000f, 1.020988f, 1.087142f, 1.188457f, 1.328598f, 1.515771f, 1.800303f, 2.240229f, 2.739821f,
+         2.506793f, 2.141686f, 1.744030f, 1.469493f, 1.309589f, 1.185166f, 1.087866f, 1.033200f, 1.019820f, 1.040521f, 1.106343f, 1.208176f, 1.345590f, 1.541867f, 1.831118f, 2.269510f, 2.763112f,
+         2.609567f, 2.247826f, 1.834616f, 1.546503f, 1.369611f, 1.247267f, 1.159363f, 1.097726f, 1.079299f, 1.104965f, 1.169662f, 1.269734f, 1.404581f, 1.612093f, 1.919888f, 2.377454f, 2.912010f,
+         2.781612f, 2.398829f, 1.979223f, 1.666552f, 1.467253f, 1.341376f, 1.255904f, 1.203487f, 1.185053f, 1.210485f, 1.267784f, 1.363130f, 1.510095f, 1.731633f, 2.066334f, 2.539876f, 3.077464f,
+         2.981104f, 2.642472f, 2.176526f, 1.835891f, 1.618011f, 1.477283f, 1.383273f, 1.327908f, 1.313342f, 1.329667f, 1.395466f, 1.492212f, 1.664244f, 1.914554f, 2.273260f, 2.777570f, 3.258279f,
+         3.241544f, 2.967007f, 2.484192f, 2.107700f, 1.847161f, 1.679661f, 1.565279f, 1.501941f, 1.486681f, 1.510741f, 1.585672f, 1.700007f, 1.900357f, 2.184268f, 2.579677f, 3.062106f, 3.461674f,
+         3.417331f, 3.158087f, 2.767054f, 2.365849f, 2.083766f, 1.885899f, 1.754566f, 1.684555f, 1.669782f, 1.701625f, 1.777235f, 1.909342f, 2.130422f, 2.416610f, 2.838013f, 3.233882f, 3.738842f
+      },
+      /* GB Gain */
+      {
+         3.631358f, 3.359144f, 2.892772f, 2.483073f, 2.175918f, 1.964671f, 1.828447f, 1.742264f, 1.724921f, 1.747786f, 1.845446f, 2.000443f, 2.227213f, 2.567024f, 2.972746f, 3.384410f, 3.711142f,
+         3.314508f, 3.036740f, 2.529760f, 2.148051f, 1.876828f, 1.695556f, 1.572475f, 1.503401f, 1.480209f, 1.510931f, 1.588799f, 1.717114f, 1.916068f, 2.213987f, 2.631263f, 3.086920f, 3.481346f,
+         3.061788f, 2.695312f, 2.218048f, 1.868659f, 1.632168f, 1.476322f, 1.374880f, 1.314855f, 1.293664f, 1.320849f, 1.385938f, 1.498284f, 1.666990f, 1.921168f, 2.276564f, 2.772454f, 3.264323f,
+         2.828434f, 2.439638f, 1.984658f, 1.678392f, 1.470781f, 1.329997f, 1.238416f, 1.180922f, 1.170105f, 1.194130f, 1.258579f, 1.352977f, 1.491847f, 1.719759f, 2.056286f, 2.528821f, 3.054390f,
+         2.656152f, 2.262980f, 1.847653f, 1.564303f, 1.383989f, 1.253293f, 1.149759f, 1.093605f, 1.075966f, 1.102386f, 1.167976f, 1.274017f, 1.409252f, 1.613961f, 1.925848f, 2.370083f, 2.892091f,
+         2.553650f, 2.157623f, 1.764294f, 1.494984f, 1.324583f, 1.195409f, 1.092719f, 1.037687f, 1.019725f, 1.044141f, 1.112102f, 1.214351f, 1.351676f, 1.551269f, 1.833062f, 2.285621f, 2.798886f,
+         2.504692f, 2.121486f, 1.735739f, 1.473991f, 1.304061f, 1.173003f, 1.071355f, 1.017272f, 1.001783f, 1.026670f, 1.091055f, 1.195994f, 1.335230f, 1.528565f, 1.811182f, 2.245534f, 2.748321f,
+         2.527361f, 2.147393f, 1.758518f, 1.488555f, 1.323000f, 1.198880f, 1.097503f, 1.037516f, 1.020763f, 1.044100f, 1.111665f, 1.219503f, 1.355625f, 1.553109f, 1.847748f, 2.276851f, 2.779840f,
+         2.629000f, 2.256457f, 1.848048f, 1.568231f, 1.386316f, 1.259810f, 1.164856f, 1.107836f, 1.084812f, 1.107440f, 1.176842f, 1.276643f, 1.422985f, 1.627143f, 1.937129f, 2.387745f, 2.919618f,
+         2.803722f, 2.418026f, 1.994092f, 1.684453f, 1.483414f, 1.350884f, 1.261756f, 1.206097f, 1.192881f, 1.214122f, 1.275842f, 1.373456f, 1.521296f, 1.749132f, 2.086148f, 2.565120f, 3.079677f,
+         3.022240f, 2.663586f, 2.192926f, 1.864674f, 1.628040f, 1.484747f, 1.389735f, 1.329579f, 1.317831f, 1.336647f, 1.400079f, 1.498441f, 1.675245f, 1.929500f, 2.289479f, 2.803884f, 3.275690f,
+         3.282362f, 3.003849f, 2.507895f, 2.129222f, 1.863755f, 1.695162f, 1.574647f, 1.512062f, 1.502513f, 1.517351f, 1.596246f, 1.717825f, 1.911764f, 2.207714f, 2.604309f, 3.083286f, 3.486289f,
+         3.460620f, 3.197141f, 2.806866f, 2.395978f, 2.106280f, 1.907313f, 1.774475f, 1.704804f, 1.685967f, 1.717421f, 1.795240f, 1.925522f, 2.146562f, 2.443382f, 2.853918f, 3.256007f, 3.758080f
+      },
+      /* B Gain */
+      {
+         3.304854f, 3.002806f, 2.593661f, 2.245915f, 1.978606f, 1.805581f, 1.674371f, 1.620092f, 1.603759f, 1.619721f, 1.680650f, 1.799258f, 1.986475f, 2.287811f, 2.675341f, 3.013137f, 3.446856f,
+         2.911533f, 2.702713f, 2.273844f, 1.947582f, 1.715150f, 1.564059f, 1.465395f, 1.419736f, 1.396532f, 1.416453f, 1.463848f, 1.556570f, 1.723726f, 1.970814f, 2.325957f, 2.735970f, 3.113595f,
+         2.631037f, 2.427631f, 1.991034f, 1.701615f, 1.503317f, 1.381420f, 1.300349f, 1.261596f, 1.245924f, 1.264932f, 1.300824f, 1.381994f, 1.508854f, 1.715184f, 2.035112f, 2.483963f, 2.957583f,
+         2.455479f, 2.201631f, 1.810710f, 1.547560f, 1.379862f, 1.278606f, 1.206297f, 1.165849f, 1.146041f, 1.170140f, 1.213214f, 1.275111f, 1.373470f, 1.558123f, 1.844050f, 2.269914f, 2.787024f,
+         2.317152f, 2.052996f, 1.700593f, 1.459203f, 1.310859f, 1.220024f, 1.142831f, 1.091304f, 1.072939f, 1.097466f, 1.150808f, 1.215494f, 1.306409f, 1.475868f, 1.729100f, 2.147171f, 2.656891f,
+         2.231770f, 1.977606f, 1.616680f, 1.400550f, 1.271748f, 1.174762f, 1.089837f, 1.041714f, 1.024489f, 1.046263f, 1.093388f, 1.172894f, 1.266355f, 1.421407f, 1.665399f, 2.069120f, 2.565553f,
+         2.191334f, 1.939780f, 1.588932f, 1.384194f, 1.248958f, 1.148714f, 1.065863f, 1.021860f, 1.002829f, 1.021647f, 1.072698f, 1.150943f, 1.249812f, 1.403628f, 1.647807f, 2.026693f, 2.506007f,
+         2.238488f, 1.957942f, 1.616533f, 1.390176f, 1.263552f, 1.163489f, 1.078360f, 1.034807f, 1.021691f, 1.041299f, 1.092128f, 1.167182f, 1.268561f, 1.426554f, 1.683651f, 2.060489f, 2.562054f,
+         2.323636f, 2.051422f, 1.682523f, 1.450833f, 1.309140f, 1.216994f, 1.141501f, 1.089872f, 1.071539f, 1.090724f, 1.144039f, 1.214575f, 1.321948f, 1.496669f, 1.764458f, 2.181273f, 2.698637f,
+         2.470867f, 2.193998f, 1.810547f, 1.524827f, 1.366525f, 1.280172f, 1.213770f, 1.163962f, 1.149961f, 1.166726f, 1.209693f, 1.278852f, 1.398891f, 1.585288f, 1.870347f, 2.305720f, 2.833957f,
+         2.647299f, 2.389875f, 1.970433f, 1.681996f, 1.485793f, 1.376739f, 1.301845f, 1.260050f, 1.250122f, 1.260267f, 1.301625f, 1.374215f, 1.507889f, 1.725307f, 2.050174f, 2.515383f, 3.008905f,
+         2.925149f, 2.672705f, 2.238645f, 1.925093f, 1.695941f, 1.554832f, 1.451056f, 1.410010f, 1.394084f, 1.407566f, 1.461524f, 1.551853f, 1.718665f, 1.977086f, 2.342351f, 2.780395f, 3.237744f,
+         3.014446f, 2.806350f, 2.430724f, 2.094807f, 1.849659f, 1.681262f, 1.579784f, 1.507675f, 1.491851f, 1.519174f, 1.578126f, 1.675440f, 1.872357f, 2.125857f, 2.460158f, 2.866698f, 3.476590f
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Mesh rolloff for snapshot under A and H illuminant.
+// This is used in QSC6270(6240), QSC6295, QSD8x50.
+/*********************************************************************/
+
+   /* A Mesh Lens Rolloff */
+   {
+      221,
+      /* R Gain */
+      {
+         5.679616f, 5.183865f, 4.446949f, 3.719548f, 3.153811f, 2.772915f, 2.507495f, 2.371030f, 2.322403f, 2.381466f, 2.532462f, 2.826357f, 3.224485f, 3.781496f, 4.521401f, 5.182319f, 5.715392f,
+         5.291386f, 4.680783f, 3.802150f, 3.128501f, 2.633775f, 2.297924f, 2.075675f, 1.958632f, 1.912371f, 1.963740f, 2.102319f, 2.331693f, 2.694492f, 3.199908f, 3.865411f, 4.707393f, 5.294091f,
+         4.905645f, 4.156694f, 3.296754f, 2.675156f, 2.232708f, 1.938565f, 1.741692f, 1.634634f, 1.599272f, 1.645229f, 1.762015f, 1.967442f, 2.278813f, 2.744320f, 3.364294f, 4.242689f, 4.998608f,
+         4.451943f, 3.651345f, 2.839138f, 2.289213f, 1.911771f, 1.651191f, 1.458786f, 1.355653f, 1.324182f, 1.371194f, 1.490618f, 1.676228f, 1.938533f, 2.346317f, 2.916663f, 3.738450f, 4.560997f,
+         4.065681f, 3.254449f, 2.528424f, 2.043048f, 1.696441f, 1.444993f, 1.270223f, 1.163274f, 1.130980f, 1.177695f, 1.290077f, 1.483871f, 1.738259f, 2.112145f, 2.627647f, 3.338536f, 4.204340f,
+         3.889102f, 3.084676f, 2.423118f, 1.943498f, 1.604567f, 1.355621f, 1.169300f, 1.069179f, 1.036305f, 1.076947f, 1.190321f, 1.382291f, 1.649568f, 1.999251f, 2.504852f, 3.225879f, 4.038719f,
+         3.829145f, 3.059090f, 2.388983f, 1.907243f, 1.585505f, 1.326088f, 1.138284f, 1.037776f, 1.000000f, 1.042225f, 1.165447f, 1.353871f, 1.626771f, 1.985363f, 2.478314f, 3.193029f, 4.005528f,
+         3.858041f, 3.056263f, 2.398084f, 1.923935f, 1.599698f, 1.348905f, 1.166385f, 1.057565f, 1.022507f, 1.065106f, 1.186303f, 1.377056f, 1.648012f, 2.000756f, 2.494867f, 3.207544f, 4.009539f,
+         4.009671f, 3.214586f, 2.522098f, 2.031366f, 1.699663f, 1.450734f, 1.274723f, 1.161970f, 1.123494f, 1.170657f, 1.288595f, 1.481622f, 1.746089f, 2.111513f, 2.630785f, 3.360979f, 4.163346f,
+         4.382601f, 3.554578f, 2.824761f, 2.274547f, 1.908350f, 1.663990f, 1.480189f, 1.367745f, 1.333171f, 1.380507f, 1.499258f, 1.690712f, 1.962280f, 2.365907f, 2.925627f, 3.702562f, 4.543607f,
+         4.776639f, 3.995788f, 3.168614f, 2.597804f, 2.198036f, 1.917256f, 1.734103f, 1.623320f, 1.592181f, 1.629572f, 1.749034f, 1.936844f, 2.259036f, 2.681078f, 3.310593f, 4.171277f, 4.838742f,
+         5.069130f, 4.469782f, 3.687079f, 3.020844f, 2.563352f, 2.240664f, 2.038383f, 1.912550f, 1.890660f, 1.925967f, 2.069454f, 2.275802f, 2.630162f, 3.115966f, 3.794854f, 4.552110f, 5.064608f,
+         5.519311f, 4.907710f, 4.239871f, 3.570708f, 3.051335f, 2.674327f, 2.425343f, 2.302793f, 2.260360f, 2.315512f, 2.451044f, 2.713187f, 3.107013f, 3.652109f, 4.330180f, 4.931463f, 5.581968f
+      },
+      /* GR Gain */
+      {
+         3.806117f, 3.460836f, 3.000046f, 2.593764f, 2.273186f, 2.045117f, 1.903270f, 1.837636f, 1.806378f, 1.844731f, 1.929425f, 2.090023f, 2.334228f, 2.690555f, 3.108080f, 3.539245f, 3.923695f,
+         3.461193f, 3.154765f, 2.654499f, 2.234215f, 1.949327f, 1.765012f, 1.637691f, 1.582747f, 1.557900f, 1.592612f, 1.662668f, 1.798630f, 2.004190f, 2.310121f, 2.745778f, 3.251891f, 3.660950f,
+         3.254312f, 2.859523f, 2.345883f, 1.976805f, 1.718743f, 1.558081f, 1.450717f, 1.394616f, 1.381539f, 1.403845f, 1.472357f, 1.587108f, 1.766482f, 2.039675f, 2.432773f, 2.979995f, 3.498950f,
+         2.964361f, 2.568782f, 2.086132f, 1.750066f, 1.525558f, 1.384425f, 1.285508f, 1.228426f, 1.211902f, 1.240874f, 1.307185f, 1.414171f, 1.560085f, 1.798766f, 2.161899f, 2.672101f, 3.255592f,
+         2.740566f, 2.335254f, 1.903360f, 1.590059f, 1.400240f, 1.266556f, 1.159789f, 1.098597f, 1.077143f, 1.109294f, 1.181740f, 1.291020f, 1.436615f, 1.651224f, 1.984967f, 2.458693f, 3.019074f,
+         2.659042f, 2.261659f, 1.832571f, 1.545094f, 1.357914f, 1.213572f, 1.104991f, 1.040890f, 1.018195f, 1.047227f, 1.123320f, 1.236283f, 1.391191f, 1.609527f, 1.939067f, 2.395379f, 2.975481f,
+         2.641549f, 2.249481f, 1.823230f, 1.537345f, 1.348556f, 1.201923f, 1.089207f, 1.020511f, 1.000147f, 1.026930f, 1.105442f, 1.229893f, 1.380634f, 1.602130f, 1.929595f, 2.390487f, 2.951092f,
+         2.631783f, 2.243565f, 1.826607f, 1.537444f, 1.348462f, 1.211807f, 1.100335f, 1.033570f, 1.012240f, 1.041588f, 1.118167f, 1.232907f, 1.393645f, 1.610031f, 1.931908f, 2.394965f, 2.950333f,
+         2.721501f, 2.320376f, 1.902191f, 1.598809f, 1.411503f, 1.271149f, 1.167197f, 1.100135f, 1.077929f, 1.107735f, 1.182270f, 1.292670f, 1.447313f, 1.669365f, 2.003596f, 2.477147f, 3.046521f,
+         2.957878f, 2.558721f, 2.079231f, 1.756145f, 1.541821f, 1.402303f, 1.309164f, 1.246872f, 1.221858f, 1.248636f, 1.321308f, 1.427750f, 1.589865f, 1.836642f, 2.193853f, 2.724644f, 3.320412f,
+         3.200322f, 2.824925f, 2.309924f, 1.947506f, 1.703894f, 1.553135f, 1.451050f, 1.392395f, 1.382268f, 1.400897f, 1.470340f, 1.576753f, 1.753009f, 2.030361f, 2.429263f, 2.960141f, 3.523761f,
+         3.396710f, 3.097303f, 2.597191f, 2.193215f, 1.924005f, 1.739158f, 1.626538f, 1.560632f, 1.550708f, 1.568293f, 1.652552f, 1.770254f, 1.973878f, 2.291914f, 2.709863f, 3.228761f, 3.714174f,
+         3.629393f, 3.315480f, 2.892699f, 2.470803f, 2.166186f, 1.950041f, 1.814522f, 1.737951f, 1.730436f, 1.749621f, 1.837216f, 1.980012f, 2.204233f, 2.534385f, 2.962382f, 3.395165f, 3.967904f
+      },
+      /* GB Gain */
+      {
+         3.791457f, 3.429908f, 2.987285f, 2.572907f, 2.240388f, 2.012468f, 1.868034f, 1.798259f, 1.775442f, 1.809613f, 1.896763f, 2.054418f, 2.305761f, 2.658176f, 3.080065f, 3.491896f, 3.863424f,
+         3.438114f, 3.139799f, 2.633785f, 2.223431f, 1.928982f, 1.742286f, 1.620978f, 1.553957f, 1.528632f, 1.555235f, 1.636015f, 1.773669f, 1.983621f, 2.287653f, 2.709578f, 3.216141f, 3.612908f,
+         3.243202f, 2.855934f, 2.352146f, 1.969383f, 1.721937f, 1.550383f, 1.433566f, 1.374366f, 1.352619f, 1.379644f, 1.453157f, 1.570821f, 1.752490f, 2.024525f, 2.406181f, 2.945642f, 3.458084f,
+         2.965847f, 2.567984f, 2.083297f, 1.754677f, 1.529213f, 1.376280f, 1.270911f, 1.213109f, 1.195336f, 1.222766f, 1.290366f, 1.398405f, 1.548590f, 1.786654f, 2.139502f, 2.634137f, 3.195209f,
+         2.742571f, 2.341756f, 1.905850f, 1.601017f, 1.407276f, 1.270426f, 1.154172f, 1.088267f, 1.063887f, 1.098672f, 1.175696f, 1.285497f, 1.431503f, 1.647328f, 1.972560f, 2.442671f, 2.973779f,
+         2.671317f, 2.263416f, 1.842859f, 1.562236f, 1.373175f, 1.226413f, 1.104459f, 1.035724f, 1.011268f, 1.042575f, 1.121698f, 1.238624f, 1.393959f, 1.607938f, 1.920786f, 2.373246f, 2.940862f,
+         2.638068f, 2.251839f, 1.840282f, 1.550380f, 1.368246f, 1.212445f, 1.089635f, 1.021233f, 0.995665f, 1.026523f, 1.104233f, 1.231352f, 1.386672f, 1.605474f, 1.925583f, 2.367583f, 2.926471f,
+         2.632808f, 2.247689f, 1.840064f, 1.552887f, 1.365887f, 1.222092f, 1.102469f, 1.030764f, 1.008661f, 1.035395f, 1.114904f, 1.242036f, 1.398191f, 1.612630f, 1.923498f, 2.371835f, 2.923830f,
+         2.727711f, 2.333331f, 1.910341f, 1.616257f, 1.422843f, 1.278099f, 1.169750f, 1.095444f, 1.071701f, 1.099018f, 1.177908f, 1.291011f, 1.453550f, 1.674114f, 2.002856f, 2.458108f, 3.018340f,
+         2.972867f, 2.556772f, 2.090165f, 1.761316f, 1.548404f, 1.403578f, 1.302629f, 1.232958f, 1.210432f, 1.238656f, 1.308519f, 1.422936f, 1.585740f, 1.828565f, 2.179294f, 2.693688f, 3.274943f,
+         3.214308f, 2.839436f, 2.319534f, 1.957006f, 1.709980f, 1.553516f, 1.451375f, 1.377823f, 1.363417f, 1.387911f, 1.453951f, 1.567509f, 1.750031f, 2.015979f, 2.412226f, 2.939657f, 3.476154f,
+         3.411454f, 3.122019f, 2.595702f, 2.196697f, 1.926339f, 1.741574f, 1.621313f, 1.551103f, 1.535152f, 1.557273f, 1.638035f, 1.764516f, 1.969509f, 2.268721f, 2.690860f, 3.209664f, 3.658219f,
+         3.630671f, 3.331338f, 2.893289f, 2.474292f, 2.165129f, 1.952664f, 1.812853f, 1.741131f, 1.723571f, 1.752818f, 1.829305f, 1.976276f, 2.201079f, 2.521446f, 2.939862f, 3.356750f, 3.895591f
+      },
+      /* B Gain */
+      {
+         3.491462f, 3.118029f, 2.658473f, 2.312131f, 2.026383f, 1.847325f, 1.733290f, 1.665148f, 1.644983f, 1.657696f, 1.721873f, 1.846158f, 2.035950f, 2.324483f, 2.735919f, 3.118039f, 3.582087f,
+         3.008979f, 2.832117f, 2.349108f, 2.004128f, 1.760774f, 1.615528f, 1.505257f, 1.461532f, 1.426925f, 1.444503f, 1.501426f, 1.602857f, 1.775195f, 2.006129f, 2.364915f, 2.850093f, 3.317519f,
+         2.848069f, 2.595668f, 2.110584f, 1.801423f, 1.588945f, 1.461317f, 1.367039f, 1.325109f, 1.297338f, 1.318692f, 1.361314f, 1.441056f, 1.587813f, 1.817755f, 2.129202f, 2.627734f, 3.126012f,
+         2.571741f, 2.326808f, 1.894735f, 1.622577f, 1.439216f, 1.319938f, 1.243531f, 1.195835f, 1.175089f, 1.189586f, 1.238313f, 1.311993f, 1.425523f, 1.609324f, 1.918235f, 2.378067f, 2.911229f,
+         2.402005f, 2.105660f, 1.747555f, 1.491702f, 1.340033f, 1.233602f, 1.146600f, 1.088422f, 1.064271f, 1.091272f, 1.144898f, 1.221649f, 1.323578f, 1.493449f, 1.776112f, 2.192092f, 2.719401f,
+         2.339076f, 2.064148f, 1.709351f, 1.461608f, 1.308880f, 1.201093f, 1.103185f, 1.046413f, 1.021967f, 1.043143f, 1.094896f, 1.184344f, 1.304231f, 1.471090f, 1.747053f, 2.166668f, 2.702627f,
+         2.344464f, 2.075815f, 1.697773f, 1.455241f, 1.312752f, 1.187600f, 1.089222f, 1.031850f, 1.004455f, 1.026735f, 1.087477f, 1.186902f, 1.291213f, 1.477012f, 1.746669f, 2.169076f, 2.700672f,
+         2.337780f, 2.057899f, 1.694105f, 1.449098f, 1.301323f, 1.190842f, 1.092374f, 1.033002f, 1.009796f, 1.032164f, 1.090857f, 1.186723f, 1.301784f, 1.475095f, 1.750514f, 2.161861f, 2.703426f,
+         2.431666f, 2.105142f, 1.749189f, 1.486208f, 1.343336f, 1.229956f, 1.140838f, 1.081224f, 1.059646f, 1.078333f, 1.136937f, 1.220478f, 1.337412f, 1.517234f, 1.809754f, 2.240973f, 2.751546f,
+         2.600793f, 2.302947f, 1.900507f, 1.614993f, 1.433340f, 1.323449f, 1.249563f, 1.195059f, 1.171912f, 1.190605f, 1.240468f, 1.316313f, 1.446094f, 1.658660f, 1.975089f, 2.423651f, 2.983700f,
+         2.857064f, 2.548810f, 2.073829f, 1.758794f, 1.558385f, 1.432261f, 1.349458f, 1.307066f, 1.292283f, 1.298551f, 1.344315f, 1.426176f, 1.575019f, 1.811424f, 2.150789f, 2.648179f, 3.191907f,
+         3.022772f, 2.779555f, 2.318932f, 1.945744f, 1.743768f, 1.584551f, 1.496996f, 1.429754f, 1.414029f, 1.424290f, 1.481218f, 1.583329f, 1.756423f, 2.020195f, 2.371301f, 2.889539f, 3.354854f,
+         3.176317f, 2.876319f, 2.496124f, 2.137976f, 1.878038f, 1.709354f, 1.598779f, 1.545275f, 1.519303f, 1.536693f, 1.606492f, 1.722740f, 1.903592f, 2.184328f, 2.549866f, 2.956413f, 3.662561f
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Mesh rolloff for snapshot under daylight illuminant.
+// This is used in QSC6270(6240), QSC6295, QSD8x50.
+/*********************************************************************/
+
+   /* D65 Mesh Lens Rolloff */
+   {
+      221,
+      /* R Gain */
+      {
+         3.543674f, 3.233521f, 2.825140f, 2.441049f, 2.141964f, 1.929741f, 1.799881f, 1.737523f, 1.731233f, 1.743488f, 1.818666f, 1.982298f, 2.186156f, 2.542717f, 2.968196f, 3.396735f, 3.607477f,
+         3.332101f, 2.965880f, 2.483334f, 2.117467f, 1.862461f, 1.700442f, 1.592408f, 1.530714f, 1.515439f, 1.539396f, 1.617240f, 1.730234f, 1.927275f, 2.203124f, 2.626246f, 3.125954f, 3.455263f,
+         3.138112f, 2.657670f, 2.189643f, 1.868995f, 1.655361f, 1.513816f, 1.413549f, 1.365134f, 1.339814f, 1.368350f, 1.435638f, 1.538786f, 1.693084f, 1.952759f, 2.314413f, 2.863255f, 3.293798f,
+         2.888775f, 2.425632f, 1.997186f, 1.702469f, 1.516732f, 1.379011f, 1.281476f, 1.224305f, 1.201447f, 1.235310f, 1.296000f, 1.399015f, 1.528338f, 1.766080f, 2.105731f, 2.595292f, 3.076552f,
+         2.701351f, 2.235257f, 1.859769f, 1.598219f, 1.420796f, 1.291461f, 1.177826f, 1.116340f, 1.092023f, 1.120782f, 1.195002f, 1.307410f, 1.440540f, 1.646357f, 1.974310f, 2.424300f, 2.921724f,
+         2.604703f, 2.165978f, 1.782129f, 1.537436f, 1.360621f, 1.225984f, 1.107118f, 1.044665f, 1.025749f, 1.050095f, 1.120211f, 1.239591f, 1.389014f, 1.590522f, 1.887225f, 2.313613f, 2.841182f,
+         2.563705f, 2.129531f, 1.766425f, 1.524111f, 1.347407f, 1.201243f, 1.086318f, 1.021920f, 1.000523f, 1.026905f, 1.099596f, 1.213328f, 1.367800f, 1.572996f, 1.868781f, 2.306036f, 2.788625f,
+         2.610031f, 2.166169f, 1.787310f, 1.532193f, 1.359879f, 1.229059f, 1.107572f, 1.045794f, 1.021453f, 1.046734f, 1.127863f, 1.237466f, 1.392496f, 1.606568f, 1.904339f, 2.342265f, 2.857882f,
+         2.702919f, 2.263690f, 1.859837f, 1.593702f, 1.418452f, 1.282312f, 1.178424f, 1.111017f, 1.091402f, 1.109746f, 1.188741f, 1.298828f, 1.449971f, 1.670555f, 2.002816f, 2.471361f, 3.017691f,
+         2.907205f, 2.427739f, 2.014076f, 1.708872f, 1.513236f, 1.380582f, 1.285429f, 1.222766f, 1.198426f, 1.227805f, 1.288722f, 1.402222f, 1.566427f, 1.816472f, 2.156541f, 2.661832f, 3.174214f,
+         3.130250f, 2.665740f, 2.235651f, 1.895855f, 1.668355f, 1.515578f, 1.412863f, 1.348158f, 1.337433f, 1.363176f, 1.434224f, 1.544183f, 1.729150f, 1.993524f, 2.375811f, 2.940935f, 3.431245f,
+         3.399855f, 3.025211f, 2.530226f, 2.175978f, 1.884503f, 1.714199f, 1.593051f, 1.541647f, 1.517009f, 1.548004f, 1.628208f, 1.751365f, 1.985026f, 2.286923f, 2.711189f, 3.233615f, 3.678548f,
+         3.593498f, 3.265183f, 2.896344f, 2.455158f, 2.196609f, 1.964768f, 1.823477f, 1.755564f, 1.744616f, 1.765230f, 1.861175f, 2.016612f, 2.260066f, 2.621716f, 3.077031f, 3.522222f, 3.892425f
+      },
+      /* GR Gain */
+      {
+         2.864537f, 2.734767f, 2.417388f, 2.120651f, 1.902936f, 1.750339f, 1.648771f, 1.610140f, 1.599880f, 1.627453f, 1.690604f, 1.803058f, 1.982547f, 2.229721f, 2.567290f, 2.896403f, 3.045394f,
+         2.711808f, 2.516766f, 2.166682f, 1.881166f, 1.681933f, 1.556369f, 1.479229f, 1.444569f, 1.434752f, 1.455872f, 1.506055f, 1.597929f, 1.753080f, 1.978859f, 2.291816f, 2.685696f, 2.975782f,
+         2.541311f, 2.289801f, 1.931049f, 1.679134f, 1.510949f, 1.411045f, 1.338904f, 1.305890f, 1.294439f, 1.310524f, 1.362909f, 1.441222f, 1.558051f, 1.759364f, 2.031270f, 2.436952f, 2.842640f,
+         2.387239f, 2.106617f, 1.770891f, 1.548527f, 1.399348f, 1.305121f, 1.227476f, 1.186565f, 1.171590f, 1.194215f, 1.251275f, 1.328975f, 1.438023f, 1.613037f, 1.880198f, 2.267636f, 2.700376f,
+         2.267977f, 1.972469f, 1.666673f, 1.458732f, 1.322078f, 1.225433f, 1.144739f, 1.092186f, 1.077294f, 1.105216f, 1.162171f, 1.254347f, 1.359085f, 1.519313f, 1.782301f, 2.139236f, 2.575016f,
+         2.196583f, 1.906210f, 1.611052f, 1.418793f, 1.281344f, 1.174239f, 1.087064f, 1.035790f, 1.021167f, 1.045052f, 1.102913f, 1.200588f, 1.317658f, 1.470816f, 1.729114f, 2.074908f, 2.496983f,
+         2.162894f, 1.887315f, 1.588349f, 1.402852f, 1.265497f, 1.155581f, 1.067193f, 1.015282f, 1.000000f, 1.023641f, 1.083908f, 1.180947f, 1.299929f, 1.466747f, 1.707966f, 2.066153f, 2.476856f,
+         2.179768f, 1.906745f, 1.614272f, 1.419227f, 1.283505f, 1.173195f, 1.082662f, 1.035892f, 1.018817f, 1.042431f, 1.104056f, 1.200292f, 1.320582f, 1.493695f, 1.744795f, 2.111529f, 2.533428f,
+         2.283904f, 1.992019f, 1.678140f, 1.466396f, 1.326374f, 1.225377f, 1.146112f, 1.088802f, 1.076520f, 1.100310f, 1.158674f, 1.249536f, 1.372568f, 1.553385f, 1.817617f, 2.194225f, 2.641324f,
+         2.400647f, 2.125621f, 1.794226f, 1.562615f, 1.405218f, 1.303831f, 1.236455f, 1.191357f, 1.171350f, 1.193619f, 1.251741f, 1.335701f, 1.465492f, 1.655147f, 1.936121f, 2.346246f, 2.792536f,
+         2.598922f, 2.328743f, 1.963612f, 1.699171f, 1.524965f, 1.419044f, 1.341563f, 1.299924f, 1.289513f, 1.309975f, 1.362557f, 1.456390f, 1.602301f, 1.816039f, 2.123974f, 2.554498f, 2.972508f,
+         2.793315f, 2.582875f, 2.210293f, 1.928345f, 1.711031f, 1.579236f, 1.493658f, 1.445845f, 1.438614f, 1.463337f, 1.532276f, 1.629866f, 1.808074f, 2.055618f, 2.393552f, 2.815180f, 3.162768f,
+         2.875855f, 2.737493f, 2.421084f, 2.117010f, 1.905913f, 1.746102f, 1.638790f, 1.581474f, 1.582294f, 1.608161f, 1.681322f, 1.793181f, 1.991121f, 2.246320f, 2.600545f, 2.928545f, 3.235689f
+      },
+      /* GB Gain */
+      {
+         2.876124f, 2.742089f, 2.418941f, 2.117383f, 1.893602f, 1.739109f, 1.634203f, 1.587240f, 1.578923f, 1.603743f, 1.669086f, 1.787632f, 1.972071f, 2.225413f, 2.554680f, 2.891313f, 3.030011f,
+         2.715548f, 2.521097f, 2.157248f, 1.871498f, 1.671764f, 1.542717f, 1.462970f, 1.419414f, 1.411184f, 1.434225f, 1.489172f, 1.584568f, 1.741092f, 1.970508f, 2.291928f, 2.678979f, 2.965803f,
+         2.558614f, 2.293739f, 1.931945f, 1.670615f, 1.507456f, 1.402907f, 1.327178f, 1.289021f, 1.270805f, 1.292622f, 1.346554f, 1.429842f, 1.554088f, 1.755868f, 2.038029f, 2.436743f, 2.841771f,
+         2.402789f, 2.108990f, 1.765527f, 1.549396f, 1.398068f, 1.297616f, 1.219795f, 1.170224f, 1.160325f, 1.183616f, 1.243102f, 1.324408f, 1.433412f, 1.611760f, 1.884574f, 2.264107f, 2.701204f,
+         2.261426f, 1.971882f, 1.668078f, 1.463725f, 1.332753f, 1.232492f, 1.141981f, 1.085393f, 1.072906f, 1.097439f, 1.158287f, 1.257963f, 1.362836f, 1.530860f, 1.786879f, 2.141104f, 2.573213f,
+         2.194516f, 1.907880f, 1.616769f, 1.426445f, 1.290851f, 1.180661f, 1.088574f, 1.033781f, 1.019777f, 1.043031f, 1.102957f, 1.201027f, 1.322249f, 1.485377f, 1.727232f, 2.078841f, 2.500761f,
+         2.159169f, 1.890672f, 1.597858f, 1.412648f, 1.282111f, 1.162991f, 1.072991f, 1.017205f, 1.001783f, 1.029338f, 1.087810f, 1.188437f, 1.306418f, 1.479127f, 1.718287f, 2.071046f, 2.484540f,
+         2.197652f, 1.911826f, 1.627682f, 1.437637f, 1.296649f, 1.186771f, 1.092253f, 1.040219f, 1.019759f, 1.046017f, 1.109367f, 1.211545f, 1.330431f, 1.504586f, 1.760641f, 2.118359f, 2.548766f,
+         2.300912f, 1.999668f, 1.690427f, 1.486999f, 1.342552f, 1.237700f, 1.151542f, 1.098830f, 1.082019f, 1.102775f, 1.165787f, 1.256335f, 1.390553f, 1.567887f, 1.833940f, 2.203722f, 2.648225f,
+         2.419729f, 2.142632f, 1.807705f, 1.579399f, 1.420696f, 1.313073f, 1.242216f, 1.193941f, 1.179088f, 1.197206f, 1.259696f, 1.345819f, 1.476362f, 1.671873f, 1.954687f, 2.369566f, 2.794544f,
+         2.634785f, 2.347350f, 1.978407f, 1.725810f, 1.534417f, 1.426214f, 1.347830f, 1.301559f, 1.293920f, 1.316852f, 1.367062f, 1.462469f, 1.612893f, 1.830216f, 2.139128f, 2.578699f, 2.988392f,
+         2.828489f, 2.614947f, 2.231382f, 1.948035f, 1.726402f, 1.593810f, 1.502597f, 1.455588f, 1.453935f, 1.469739f, 1.542494f, 1.646949f, 1.818927f, 2.077683f, 2.416407f, 2.834653f, 3.185257f,
+         2.912284f, 2.771346f, 2.455918f, 2.143970f, 1.926505f, 1.765929f, 1.657385f, 1.600484f, 1.597631f, 1.623089f, 1.698355f, 1.808376f, 2.006206f, 2.271206f, 2.615119f, 2.948582f, 3.252338f
+      },
+      /* B Gain */
+      {
+         2.558541f, 2.427739f, 2.156273f, 1.905969f, 1.724355f, 1.585361f, 1.512805f, 1.465633f, 1.454933f, 1.475912f, 1.526194f, 1.602264f, 1.757733f, 1.969449f, 2.277033f, 2.555700f, 2.710996f,
+         2.345161f, 2.250301f, 1.950530f, 1.698809f, 1.533896f, 1.423014f, 1.352453f, 1.327641f, 1.326255f, 1.326575f, 1.368568f, 1.437503f, 1.558839f, 1.758163f, 2.015218f, 2.362990f, 2.618479f,
+         2.214655f, 2.058257f, 1.738898f, 1.529954f, 1.396667f, 1.317250f, 1.259578f, 1.226785f, 1.224378f, 1.231908f, 1.266642f, 1.324281f, 1.420716f, 1.566737f, 1.818630f, 2.171567f, 2.507508f,
+         2.072586f, 1.897722f, 1.607416f, 1.425750f, 1.315121f, 1.237060f, 1.189032f, 1.147003f, 1.130115f, 1.146548f, 1.195972f, 1.247247f, 1.325614f, 1.460886f, 1.687795f, 2.020207f, 2.428581f,
+         1.961472f, 1.781384f, 1.523801f, 1.352015f, 1.264511f, 1.187024f, 1.114458f, 1.076110f, 1.064404f, 1.081558f, 1.124370f, 1.197421f, 1.268848f, 1.394560f, 1.597540f, 1.925841f, 2.306806f,
+         1.891778f, 1.718456f, 1.474408f, 1.325002f, 1.231121f, 1.150599f, 1.073736f, 1.034890f, 1.018780f, 1.038788f, 1.077792f, 1.148286f, 1.234863f, 1.352122f, 1.551869f, 1.854151f, 2.263825f,
+         1.883692f, 1.710541f, 1.469806f, 1.314749f, 1.226120f, 1.128823f, 1.058915f, 1.017318f, 1.005236f, 1.019251f, 1.076981f, 1.142495f, 1.230131f, 1.355173f, 1.545106f, 1.862614f, 2.250957f,
+         1.920522f, 1.732003f, 1.482958f, 1.329831f, 1.232332f, 1.143998f, 1.072187f, 1.033301f, 1.020948f, 1.038616f, 1.084003f, 1.159359f, 1.242456f, 1.368812f, 1.584315f, 1.903731f, 2.304515f,
+         1.998547f, 1.807780f, 1.535690f, 1.364349f, 1.260700f, 1.185673f, 1.123098f, 1.075566f, 1.063829f, 1.083220f, 1.127098f, 1.192550f, 1.284814f, 1.432202f, 1.649736f, 1.984565f, 2.424369f,
+         2.123090f, 1.927790f, 1.628525f, 1.432997f, 1.318038f, 1.243678f, 1.196482f, 1.146399f, 1.139426f, 1.158795f, 1.199305f, 1.256308f, 1.356213f, 1.520356f, 1.746021f, 2.114474f, 2.517471f,
+         2.283997f, 2.101192f, 1.781539f, 1.548984f, 1.405818f, 1.326638f, 1.270688f, 1.231790f, 1.227141f, 1.239266f, 1.276432f, 1.342076f, 1.455131f, 1.640210f, 1.901417f, 2.294915f, 2.668899f,
+         2.455193f, 2.330020f, 1.990789f, 1.737910f, 1.569240f, 1.450205f, 1.383870f, 1.343955f, 1.336382f, 1.355858f, 1.411365f, 1.495087f, 1.628591f, 1.844984f, 2.164576f, 2.516321f, 2.855405f,
+         2.506672f, 2.405842f, 2.133661f, 1.870691f, 1.683630f, 1.564173f, 1.460322f, 1.417439f, 1.418488f, 1.437519f, 1.494324f, 1.587347f, 1.740609f, 1.964935f, 2.269706f, 2.578497f, 2.939912f
+      }
+      },
+
+/*********************************************************************/
+// Feature name :
+// Mesh rolloff for snapshot under lowlight illuminant.
+// This is used in QSC6270(6240), QSC6295, QSD8x50.
+/*********************************************************************/
+
+   /* Low-Light Mesh Lens Rolloff */
+   {
+      221,
+      /* R Gain */
+      {
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+      },
+      /* GR Gain */
+      {
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+      },
+      /* GB Gain */
+      {
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+      },
+      /* B Gain */
+      {
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+         1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+      }
+      },
+   /* Preview Mesh Lens Rolloff */
+   {
+      221,
+      /* R Gain */
+      {
+         3.543674f, 3.233521f, 2.825140f, 2.441049f, 2.141964f, 1.929741f, 1.799881f, 1.737523f, 1.731233f, 1.743488f, 1.818666f, 1.982298f, 2.186156f, 2.542717f, 2.968196f, 3.396735f, 3.607477f,
+         3.332101f, 2.965880f, 2.483334f, 2.117467f, 1.862461f, 1.700442f, 1.592408f, 1.530714f, 1.515439f, 1.539396f, 1.617240f, 1.730234f, 1.927275f, 2.203124f, 2.626246f, 3.125954f, 3.455263f,
+         3.138112f, 2.657670f, 2.189643f, 1.868995f, 1.655361f, 1.513816f, 1.413549f, 1.365134f, 1.339814f, 1.368350f, 1.435638f, 1.538786f, 1.693084f, 1.952759f, 2.314413f, 2.863255f, 3.293798f,
+         2.888775f, 2.425632f, 1.997186f, 1.702469f, 1.516732f, 1.379011f, 1.281476f, 1.224305f, 1.201447f, 1.235310f, 1.296000f, 1.399015f, 1.528338f, 1.766080f, 2.105731f, 2.595292f, 3.076552f,
+         2.701351f, 2.235257f, 1.859769f, 1.598219f, 1.420796f, 1.291461f, 1.177826f, 1.116340f, 1.092023f, 1.120782f, 1.195002f, 1.307410f, 1.440540f, 1.646357f, 1.974310f, 2.424300f, 2.921724f,
+         2.604703f, 2.165978f, 1.782129f, 1.537436f, 1.360621f, 1.225984f, 1.107118f, 1.044665f, 1.025749f, 1.050095f, 1.120211f, 1.239591f, 1.389014f, 1.590522f, 1.887225f, 2.313613f, 2.841182f,
+         2.563705f, 2.129531f, 1.766425f, 1.524111f, 1.347407f, 1.201243f, 1.086318f, 1.021920f, 1.000523f, 1.026905f, 1.099596f, 1.213328f, 1.367800f, 1.572996f, 1.868781f, 2.306036f, 2.788625f,
+         2.610031f, 2.166169f, 1.787310f, 1.532193f, 1.359879f, 1.229059f, 1.107572f, 1.045794f, 1.021453f, 1.046734f, 1.127863f, 1.237466f, 1.392496f, 1.606568f, 1.904339f, 2.342265f, 2.857882f,
+         2.702919f, 2.263690f, 1.859837f, 1.593702f, 1.418452f, 1.282312f, 1.178424f, 1.111017f, 1.091402f, 1.109746f, 1.188741f, 1.298828f, 1.449971f, 1.670555f, 2.002816f, 2.471361f, 3.017691f,
+         2.907205f, 2.427739f, 2.014076f, 1.708872f, 1.513236f, 1.380582f, 1.285429f, 1.222766f, 1.198426f, 1.227805f, 1.288722f, 1.402222f, 1.566427f, 1.816472f, 2.156541f, 2.661832f, 3.174214f,
+         3.130250f, 2.665740f, 2.235651f, 1.895855f, 1.668355f, 1.515578f, 1.412863f, 1.348158f, 1.337433f, 1.363176f, 1.434224f, 1.544183f, 1.729150f, 1.993524f, 2.375811f, 2.940935f, 3.431245f,
+         3.399855f, 3.025211f, 2.530226f, 2.175978f, 1.884503f, 1.714199f, 1.593051f, 1.541647f, 1.517009f, 1.548004f, 1.628208f, 1.751365f, 1.985026f, 2.286923f, 2.711189f, 3.233615f, 3.678548f,
+         3.593498f, 3.265183f, 2.896344f, 2.455158f, 2.196609f, 1.964768f, 1.823477f, 1.755564f, 1.744616f, 1.765230f, 1.861175f, 2.016612f, 2.260066f, 2.621716f, 3.077031f, 3.522222f, 3.892425f
+      },
+      /* GR Gain */
+      {
+         2.864537f, 2.734767f, 2.417388f, 2.120651f, 1.902936f, 1.750339f, 1.648771f, 1.610140f, 1.599880f, 1.627453f, 1.690604f, 1.803058f, 1.982547f, 2.229721f, 2.567290f, 2.896403f, 3.045394f,
+         2.711808f, 2.516766f, 2.166682f, 1.881166f, 1.681933f, 1.556369f, 1.479229f, 1.444569f, 1.434752f, 1.455872f, 1.506055f, 1.597929f, 1.753080f, 1.978859f, 2.291816f, 2.685696f, 2.975782f,
+         2.541311f, 2.289801f, 1.931049f, 1.679134f, 1.510949f, 1.411045f, 1.338904f, 1.305890f, 1.294439f, 1.310524f, 1.362909f, 1.441222f, 1.558051f, 1.759364f, 2.031270f, 2.436952f, 2.842640f,
+         2.387239f, 2.106617f, 1.770891f, 1.548527f, 1.399348f, 1.305121f, 1.227476f, 1.186565f, 1.171590f, 1.194215f, 1.251275f, 1.328975f, 1.438023f, 1.613037f, 1.880198f, 2.267636f, 2.700376f,
+         2.267977f, 1.972469f, 1.666673f, 1.458732f, 1.322078f, 1.225433f, 1.144739f, 1.092186f, 1.077294f, 1.105216f, 1.162171f, 1.254347f, 1.359085f, 1.519313f, 1.782301f, 2.139236f, 2.575016f,
+         2.196583f, 1.906210f, 1.611052f, 1.418793f, 1.281344f, 1.174239f, 1.087064f, 1.035790f, 1.021167f, 1.045052f, 1.102913f, 1.200588f, 1.317658f, 1.470816f, 1.729114f, 2.074908f, 2.496983f,
+         2.162894f, 1.887315f, 1.588349f, 1.402852f, 1.265497f, 1.155581f, 1.067193f, 1.015282f, 1.000000f, 1.023641f, 1.083908f, 1.180947f, 1.299929f, 1.466747f, 1.707966f, 2.066153f, 2.476856f,
+         2.179768f, 1.906745f, 1.614272f, 1.419227f, 1.283505f, 1.173195f, 1.082662f, 1.035892f, 1.018817f, 1.042431f, 1.104056f, 1.200292f, 1.320582f, 1.493695f, 1.744795f, 2.111529f, 2.533428f,
+         2.283904f, 1.992019f, 1.678140f, 1.466396f, 1.326374f, 1.225377f, 1.146112f, 1.088802f, 1.076520f, 1.100310f, 1.158674f, 1.249536f, 1.372568f, 1.553385f, 1.817617f, 2.194225f, 2.641324f,
+         2.400647f, 2.125621f, 1.794226f, 1.562615f, 1.405218f, 1.303831f, 1.236455f, 1.191357f, 1.171350f, 1.193619f, 1.251741f, 1.335701f, 1.465492f, 1.655147f, 1.936121f, 2.346246f, 2.792536f,
+         2.598922f, 2.328743f, 1.963612f, 1.699171f, 1.524965f, 1.419044f, 1.341563f, 1.299924f, 1.289513f, 1.309975f, 1.362557f, 1.456390f, 1.602301f, 1.816039f, 2.123974f, 2.554498f, 2.972508f,
+         2.793315f, 2.582875f, 2.210293f, 1.928345f, 1.711031f, 1.579236f, 1.493658f, 1.445845f, 1.438614f, 1.463337f, 1.532276f, 1.629866f, 1.808074f, 2.055618f, 2.393552f, 2.815180f, 3.162768f,
+         2.875855f, 2.737493f, 2.421084f, 2.117010f, 1.905913f, 1.746102f, 1.638790f, 1.581474f, 1.582294f, 1.608161f, 1.681322f, 1.793181f, 1.991121f, 2.246320f, 2.600545f, 2.928545f, 3.235689f
+      },
+      /* GB Gain */
+      {
+         2.876124f, 2.742089f, 2.418941f, 2.117383f, 1.893602f, 1.739109f, 1.634203f, 1.587240f, 1.578923f, 1.603743f, 1.669086f, 1.787632f, 1.972071f, 2.225413f, 2.554680f, 2.891313f, 3.030011f,
+         2.715548f, 2.521097f, 2.157248f, 1.871498f, 1.671764f, 1.542717f, 1.462970f, 1.419414f, 1.411184f, 1.434225f, 1.489172f, 1.584568f, 1.741092f, 1.970508f, 2.291928f, 2.678979f, 2.965803f,
+         2.558614f, 2.293739f, 1.931945f, 1.670615f, 1.507456f, 1.402907f, 1.327178f, 1.289021f, 1.270805f, 1.292622f, 1.346554f, 1.429842f, 1.554088f, 1.755868f, 2.038029f, 2.436743f, 2.841771f,
+         2.402789f, 2.108990f, 1.765527f, 1.549396f, 1.398068f, 1.297616f, 1.219795f, 1.170224f, 1.160325f, 1.183616f, 1.243102f, 1.324408f, 1.433412f, 1.611760f, 1.884574f, 2.264107f, 2.701204f,
+         2.261426f, 1.971882f, 1.668078f, 1.463725f, 1.332753f, 1.232492f, 1.141981f, 1.085393f, 1.072906f, 1.097439f, 1.158287f, 1.257963f, 1.362836f, 1.530860f, 1.786879f, 2.141104f, 2.573213f,
+         2.194516f, 1.907880f, 1.616769f, 1.426445f, 1.290851f, 1.180661f, 1.088574f, 1.033781f, 1.019777f, 1.043031f, 1.102957f, 1.201027f, 1.322249f, 1.485377f, 1.727232f, 2.078841f, 2.500761f,
+         2.159169f, 1.890672f, 1.597858f, 1.412648f, 1.282111f, 1.162991f, 1.072991f, 1.017205f, 1.001783f, 1.029338f, 1.087810f, 1.188437f, 1.306418f, 1.479127f, 1.718287f, 2.071046f, 2.484540f,
+         2.197652f, 1.911826f, 1.627682f, 1.437637f, 1.296649f, 1.186771f, 1.092253f, 1.040219f, 1.019759f, 1.046017f, 1.109367f, 1.211545f, 1.330431f, 1.504586f, 1.760641f, 2.118359f, 2.548766f,
+         2.300912f, 1.999668f, 1.690427f, 1.486999f, 1.342552f, 1.237700f, 1.151542f, 1.098830f, 1.082019f, 1.102775f, 1.165787f, 1.256335f, 1.390553f, 1.567887f, 1.833940f, 2.203722f, 2.648225f,
+         2.419729f, 2.142632f, 1.807705f, 1.579399f, 1.420696f, 1.313073f, 1.242216f, 1.193941f, 1.179088f, 1.197206f, 1.259696f, 1.345819f, 1.476362f, 1.671873f, 1.954687f, 2.369566f, 2.794544f,
+         2.634785f, 2.347350f, 1.978407f, 1.725810f, 1.534417f, 1.426214f, 1.347830f, 1.301559f, 1.293920f, 1.316852f, 1.367062f, 1.462469f, 1.612893f, 1.830216f, 2.139128f, 2.578699f, 2.988392f,
+         2.828489f, 2.614947f, 2.231382f, 1.948035f, 1.726402f, 1.593810f, 1.502597f, 1.455588f, 1.453935f, 1.469739f, 1.542494f, 1.646949f, 1.818927f, 2.077683f, 2.416407f, 2.834653f, 3.185257f,
+         2.912284f, 2.771346f, 2.455918f, 2.143970f, 1.926505f, 1.765929f, 1.657385f, 1.600484f, 1.597631f, 1.623089f, 1.698355f, 1.808376f, 2.006206f, 2.271206f, 2.615119f, 2.948582f, 3.252338f
+      },
+      /* B Gain */
+      {
+         2.558541f, 2.427739f, 2.156273f, 1.905969f, 1.724355f, 1.585361f, 1.512805f, 1.465633f, 1.454933f, 1.475912f, 1.526194f, 1.602264f, 1.757733f, 1.969449f, 2.277033f, 2.555700f, 2.710996f,
+         2.345161f, 2.250301f, 1.950530f, 1.698809f, 1.533896f, 1.423014f, 1.352453f, 1.327641f, 1.326255f, 1.326575f, 1.368568f, 1.437503f, 1.558839f, 1.758163f, 2.015218f, 2.362990f, 2.618479f,
+         2.214655f, 2.058257f, 1.738898f, 1.529954f, 1.396667f, 1.317250f, 1.259578f, 1.226785f, 1.224378f, 1.231908f, 1.266642f, 1.324281f, 1.420716f, 1.566737f, 1.818630f, 2.171567f, 2.507508f,
+         2.072586f, 1.897722f, 1.607416f, 1.425750f, 1.315121f, 1.237060f, 1.189032f, 1.147003f, 1.130115f, 1.146548f, 1.195972f, 1.247247f, 1.325614f, 1.460886f, 1.687795f, 2.020207f, 2.428581f,
+         1.961472f, 1.781384f, 1.523801f, 1.352015f, 1.264511f, 1.187024f, 1.114458f, 1.076110f, 1.064404f, 1.081558f, 1.124370f, 1.197421f, 1.268848f, 1.394560f, 1.597540f, 1.925841f, 2.306806f,
+         1.891778f, 1.718456f, 1.474408f, 1.325002f, 1.231121f, 1.150599f, 1.073736f, 1.034890f, 1.018780f, 1.038788f, 1.077792f, 1.148286f, 1.234863f, 1.352122f, 1.551869f, 1.854151f, 2.263825f,
+         1.883692f, 1.710541f, 1.469806f, 1.314749f, 1.226120f, 1.128823f, 1.058915f, 1.017318f, 1.005236f, 1.019251f, 1.076981f, 1.142495f, 1.230131f, 1.355173f, 1.545106f, 1.862614f, 2.250957f,
+         1.920522f, 1.732003f, 1.482958f, 1.329831f, 1.232332f, 1.143998f, 1.072187f, 1.033301f, 1.020948f, 1.038616f, 1.084003f, 1.159359f, 1.242456f, 1.368812f, 1.584315f, 1.903731f, 2.304515f,
+         1.998547f, 1.807780f, 1.535690f, 1.364349f, 1.260700f, 1.185673f, 1.123098f, 1.075566f, 1.063829f, 1.083220f, 1.127098f, 1.192550f, 1.284814f, 1.432202f, 1.649736f, 1.984565f, 2.424369f,
+         2.123090f, 1.927790f, 1.628525f, 1.432997f, 1.318038f, 1.243678f, 1.196482f, 1.146399f, 1.139426f, 1.158795f, 1.199305f, 1.256308f, 1.356213f, 1.520356f, 1.746021f, 2.114474f, 2.517471f,
+         2.283997f, 2.101192f, 1.781539f, 1.548984f, 1.405818f, 1.326638f, 1.270688f, 1.231790f, 1.227141f, 1.239266f, 1.276432f, 1.342076f, 1.455131f, 1.640210f, 1.901417f, 2.294915f, 2.668899f,
+         2.455193f, 2.330020f, 1.990789f, 1.737910f, 1.569240f, 1.450205f, 1.383870f, 1.343955f, 1.336382f, 1.355858f, 1.411365f, 1.495087f, 1.628591f, 1.844984f, 2.164576f, 2.516321f, 2.855405f,
+         2.506672f, 2.405842f, 2.133661f, 1.870691f, 1.683630f, 1.564173f, 1.460322f, 1.417439f, 1.418488f, 1.437519f, 1.494324f, 1.587347f, 1.740609f, 1.964935f, 2.269706f, 2.578497f, 2.939912f
+      }
+      },
+},
+
+/******************************************************************************/
+// applicable chipset: all chipsets.
+// 3A version: N/A
+// applicable operation mode: snapshot.
+//
+// variable name: rolloff_LED_start
+// Trigger point used to interpolate between LED rolloff and ambient rolloff.
+// Use gainxINTL_LED_off/gainxINTL_LED_on as the trigger metric.
+// default value: 1
+// data range: 1~7
+// constraints: none
+// effect: The bigger the value is, LED rolloff is kicked in later.
+//
+// variable name: rolloff_LED_end
+// Trigger point used to interpolate between LED rolloff and ambient rolloff.
+// Use gainxINTL_LED_off/gainxINTL_LED_on as the trigger metric.
+// default value: 1
+// data range: 1~7
+// constraints: none
+// effect: The bigger the value is, 100% LED rolloff is used later.
+/******************************************************************************/
+
+1.000000f, /* LED Mesh Rolloff Start */
+7.500000f, /* LED Mesh Rolloff End */
+/* LED Mesh Rolloff */
+{
+   221,
+   /* R Gain */
+      {
+         1.075784f, 1.038641f, 1.022588f, 1.023529f, 1.017459f, 1.030309f, 1.040508f, 1.055551f, 1.058235f, 1.059189f, 1.060504f, 1.057624f, 1.048836f, 1.059794f, 1.054610f, 1.052953f, 1.071941f, 
+         1.058153f, 1.020809f, 1.012370f, 1.018311f, 1.029477f, 1.053703f, 1.070902f, 1.077273f, 1.077047f, 1.083898f, 1.078681f, 1.074935f, 1.068420f, 1.056906f, 1.053872f, 1.052124f, 1.074257f, 
+         1.044315f, 1.010430f, 1.000448f, 1.019871f, 1.041208f, 1.062755f, 1.078691f, 1.088791f, 1.081306f, 1.088147f, 1.088473f, 1.079208f, 1.069301f, 1.053730f, 1.045392f, 1.045071f, 1.061402f, 
+         1.047140f, 1.003257f, 1.004333f, 1.028901f, 1.051181f, 1.073150f, 1.084788f, 1.086986f, 1.089475f, 1.087466f, 1.085606f, 1.079917f, 1.071829f, 1.057943f, 1.040163f, 1.032768f, 1.063761f, 
+         1.036686f, 1.000000f, 1.000000f, 1.027154f, 1.052292f, 1.066779f, 1.073917f, 1.076782f, 1.063339f, 1.072765f, 1.074373f, 1.076001f, 1.071151f, 1.060158f, 1.043623f, 1.027905f, 1.059569f, 
+         1.041302f, 1.000084f, 1.003281f, 1.030671f, 1.049096f, 1.063855f, 1.068987f, 1.051937f, 1.031425f, 1.041723f, 1.075006f, 1.073876f, 1.072790f, 1.062179f, 1.041980f, 1.036829f, 1.065605f, 
+         1.041195f, 1.000285f, 1.006622f, 1.028905f, 1.051083f, 1.066248f, 1.072185f, 1.037675f, 1.012692f, 1.019109f, 1.058725f, 1.063270f, 1.068813f, 1.059157f, 1.046209f, 1.035884f, 1.054258f, 
+         1.044810f, 1.003468f, 1.015960f, 1.037284f, 1.052883f, 1.068366f, 1.077586f, 1.053637f, 1.035051f, 1.039363f, 1.076237f, 1.066723f, 1.065386f, 1.060578f, 1.048587f, 1.031874f, 1.062815f, 
+         1.048027f, 1.015164f, 1.013288f, 1.036949f, 1.053658f, 1.070431f, 1.078781f, 1.082917f, 1.078966f, 1.076090f, 1.073702f, 1.075536f, 1.066273f, 1.061645f, 1.046779f, 1.036074f, 1.052956f, 
+         1.065296f, 1.021934f, 1.025762f, 1.040768f, 1.052867f, 1.060439f, 1.073667f, 1.070457f, 1.070599f, 1.072216f, 1.078303f, 1.082449f, 1.064566f, 1.065307f, 1.052401f, 1.037666f, 1.071647f, 
+         1.076488f, 1.043715f, 1.028274f, 1.037416f, 1.049411f, 1.055458f, 1.065067f, 1.068543f, 1.067935f, 1.065717f, 1.068049f, 1.067273f, 1.069682f, 1.068430f, 1.053815f, 1.061059f, 1.082859f, 
+         1.083392f, 1.051605f, 1.041530f, 1.049105f, 1.045822f, 1.043815f, 1.043798f, 1.049928f, 1.053904f, 1.056031f, 1.047296f, 1.052746f, 1.057852f, 1.058324f, 1.053754f, 1.065709f, 1.086116f, 
+         1.113912f, 1.078435f, 1.055832f, 1.056204f, 1.042970f, 1.037508f, 1.038937f, 1.039387f, 1.034049f, 1.035231f, 1.036529f, 1.040999f, 1.052800f, 1.061808f, 1.061669f, 1.074525f, 1.103332f
+      },
+   /* GR Gain */
+      {
+         1.137161f, 1.081312f, 1.062683f, 1.058119f, 1.058554f, 1.063745f, 1.063572f, 1.073567f, 1.074475f, 1.071654f, 1.074700f, 1.073187f, 1.074295f, 1.077471f, 1.083072f, 1.095482f, 1.103257f, 
+         1.136735f, 1.083547f, 1.064675f, 1.062841f, 1.072486f, 1.084457f, 1.087368f, 1.096700f, 1.089788f, 1.087071f, 1.090512f, 1.090367f, 1.088336f, 1.084272f, 1.078951f, 1.092209f, 1.097961f, 
+         1.116696f, 1.069477f, 1.048542f, 1.067962f, 1.073954f, 1.081180f, 1.081760f, 1.079739f, 1.074689f, 1.070887f, 1.075974f, 1.076446f, 1.077759f, 1.074646f, 1.062232f, 1.072323f, 1.081416f, 
+         1.108331f, 1.063746f, 1.050702f, 1.065340f, 1.081703f, 1.083544f, 1.072519f, 1.064169f, 1.051411f, 1.052798f, 1.056965f, 1.061846f, 1.069069f, 1.066036f, 1.056106f, 1.064862f, 1.076974f, 
+         1.103389f, 1.056204f, 1.047619f, 1.062735f, 1.071181f, 1.065687f, 1.058334f, 1.045205f, 1.030002f, 1.031363f, 1.033750f, 1.042668f, 1.049029f, 1.047396f, 1.045711f, 1.047848f, 1.065946f, 
+         1.106673f, 1.062129f, 1.054769f, 1.067618f, 1.074455f, 1.062932f, 1.048278f, 1.033278f, 1.025436f, 1.021194f, 1.024037f, 1.035519f, 1.042072f, 1.038719f, 1.042714f, 1.041920f, 1.064060f, 
+         1.106852f, 1.063253f, 1.052257f, 1.065935f, 1.067783f, 1.058531f, 1.042850f, 1.026986f, 1.011243f, 1.008436f, 1.014487f, 1.023199f, 1.039865f, 1.037366f, 1.036504f, 1.042261f, 1.056715f, 
+         1.106175f, 1.064522f, 1.056563f, 1.066736f, 1.072975f, 1.063845f, 1.046657f, 1.033317f, 1.022423f, 1.016343f, 1.023138f, 1.031430f, 1.044518f, 1.045320f, 1.040071f, 1.046296f, 1.061112f, 
+         1.108724f, 1.067974f, 1.057770f, 1.070188f, 1.071312f, 1.066778f, 1.052583f, 1.034603f, 1.023132f, 1.026072f, 1.032135f, 1.042701f, 1.051772f, 1.053045f, 1.050131f, 1.052973f, 1.068938f, 
+         1.118591f, 1.074641f, 1.067762f, 1.069636f, 1.073158f, 1.067151f, 1.054531f, 1.042403f, 1.030430f, 1.035849f, 1.038862f, 1.052033f, 1.066014f, 1.067768f, 1.066954f, 1.071172f, 1.088875f, 
+         1.127596f, 1.087180f, 1.070843f, 1.065822f, 1.070816f, 1.063531f, 1.053112f, 1.044868f, 1.040171f, 1.040623f, 1.047822f, 1.060420f, 1.071180f, 1.076311f, 1.078691f, 1.094198f, 1.107583f, 
+         1.125191f, 1.096206f, 1.073560f, 1.067625f, 1.063979f, 1.055678f, 1.050046f, 1.047181f, 1.043809f, 1.047651f, 1.049135f, 1.056006f, 1.070585f, 1.074257f, 1.081053f, 1.096324f, 1.113421f, 
+         1.149135f, 1.119177f, 1.092520f, 1.089875f, 1.075991f, 1.063666f, 1.054504f, 1.056240f, 1.056303f, 1.055563f, 1.057474f, 1.062452f, 1.079555f, 1.086227f, 1.096365f, 1.114706f, 1.146447f
+      },
+   /* GB Gain */
+      {
+         1.141761f, 1.084207f, 1.063366f, 1.056489f, 1.053362f, 1.056919f, 1.054175f, 1.058299f, 1.060401f, 1.056041f, 1.061021f, 1.064006f, 1.068618f, 1.075389f, 1.077752f, 1.093557f, 1.097684f, 
+         1.138302f, 1.085412f, 1.060039f, 1.057378f, 1.066002f, 1.074945f, 1.075416f, 1.077603f, 1.071886f, 1.070908f, 1.078287f, 1.081251f, 1.080894f, 1.079696f, 1.079003f, 1.089477f, 1.094279f, 
+         1.124299f, 1.071316f, 1.049029f, 1.062544f, 1.071471f, 1.074945f, 1.072286f, 1.065791f, 1.055067f, 1.056258f, 1.063062f, 1.067947f, 1.075019f, 1.072511f, 1.065767f, 1.072231f, 1.081085f, 
+         1.115550f, 1.064944f, 1.047520f, 1.065938f, 1.080713f, 1.077313f, 1.065808f, 1.049514f, 1.041301f, 1.043454f, 1.050061f, 1.058198f, 1.065641f, 1.065192f, 1.058564f, 1.063205f, 1.077304f, 
+         1.100202f, 1.055890f, 1.048503f, 1.066373f, 1.079830f, 1.071826f, 1.055784f, 1.038704f, 1.025808f, 1.024105f, 1.030296f, 1.045673f, 1.051924f, 1.055356f, 1.048396f, 1.048763f, 1.065199f, 
+         1.105632f, 1.063060f, 1.058512f, 1.073376f, 1.082428f, 1.068745f, 1.049734f, 1.031272f, 1.024041f, 1.019219f, 1.024077f, 1.035898f, 1.045704f, 1.049003f, 1.041579f, 1.043895f, 1.065670f, 
+         1.104946f, 1.065145f, 1.058557f, 1.073379f, 1.081801f, 1.065318f, 1.048517f, 1.028932f, 1.013046f, 1.014048f, 1.018138f, 1.029688f, 1.045056f, 1.046122f, 1.042767f, 1.044729f, 1.059993f, 
+         1.115251f, 1.067359f, 1.065340f, 1.080573f, 1.083964f, 1.076155f, 1.055929f, 1.037633f, 1.023368f, 1.019839f, 1.028059f, 1.041100f, 1.052307f, 1.052941f, 1.049517f, 1.049681f, 1.067536f, 
+         1.116980f, 1.072075f, 1.065515f, 1.085223f, 1.084379f, 1.077506f, 1.057570f, 1.044132f, 1.028359f, 1.028370f, 1.038471f, 1.048374f, 1.065553f, 1.062876f, 1.059561f, 1.057531f, 1.071731f, 
+         1.127482f, 1.083241f, 1.075783f, 1.081125f, 1.084979f, 1.074715f, 1.059444f, 1.044663f, 1.037237f, 1.038961f, 1.045465f, 1.060002f, 1.073921f, 1.078558f, 1.077185f, 1.081818f, 1.089658f, 
+         1.143155f, 1.095867f, 1.078912f, 1.082532f, 1.077453f, 1.068904f, 1.058032f, 1.046183f, 1.043727f, 1.046085f, 1.051286f, 1.064847f, 1.078261f, 1.084713f, 1.086387f, 1.104564f, 1.113502f, 
+         1.139359f, 1.109818f, 1.083804f, 1.078527f, 1.073538f, 1.065420f, 1.056330f, 1.054238f, 1.054924f, 1.052235f, 1.056130f, 1.067074f, 1.077012f, 1.085789f, 1.091376f, 1.103907f, 1.121338f, 
+         1.163692f, 1.133017f, 1.108239f, 1.103754f, 1.087617f, 1.075744f, 1.066469f, 1.068936f, 1.066541f, 1.065361f, 1.068187f, 1.071455f, 1.087734f, 1.098260f, 1.102509f, 1.122332f, 1.152346f
+      },
+  /* B Gain */
+      {
+         1.169589f, 1.091697f, 1.074816f, 1.072108f, 1.070143f, 1.080062f, 1.084340f, 1.099443f, 1.112808f, 1.109706f, 1.127180f, 1.135710f, 1.137175f, 1.153990f, 1.167815f, 1.180470f, 1.144893f, 
+         1.192186f, 1.124066f, 1.104930f, 1.102117f, 1.110600f, 1.119534f, 1.132271f, 1.137121f, 1.141816f, 1.144536f, 1.159451f, 1.162968f, 1.171009f, 1.172492f, 1.177758f, 1.193370f, 1.170866f, 
+         1.170386f, 1.114659f, 1.092688f, 1.104740f, 1.109876f, 1.118624f, 1.119295f, 1.122437f, 1.115185f, 1.123164f, 1.134216f, 1.142321f, 1.146537f, 1.144660f, 1.138733f, 1.156236f, 1.133952f, 
+         1.175613f, 1.110526f, 1.094948f, 1.104160f, 1.119251f, 1.122982f, 1.122369f, 1.106520f, 1.100158f, 1.107327f, 1.125442f, 1.143596f, 1.144172f, 1.139971f, 1.131421f, 1.148929f, 1.120869f, 
+         1.168671f, 1.111747f, 1.097772f, 1.109535f, 1.122485f, 1.119911f, 1.099947f, 1.068471f, 1.052512f, 1.067639f, 1.091070f, 1.126424f, 1.132111f, 1.127273f, 1.124886f, 1.138152f, 1.119423f, 
+         1.187212f, 1.127110f, 1.110246f, 1.123289f, 1.127174f, 1.112751f, 1.073812f, 1.043642f, 1.032367f, 1.040574f, 1.068409f, 1.109020f, 1.127712f, 1.127426f, 1.128364f, 1.137128f, 1.123229f, 
+         1.197394f, 1.130718f, 1.126086f, 1.127848f, 1.137810f, 1.107582f, 1.062982f, 1.034255f, 1.018994f, 1.025440f, 1.057043f, 1.095662f, 1.127993f, 1.126835f, 1.126700f, 1.144199f, 1.126412f, 
+         1.207170f, 1.145151f, 1.140358f, 1.146516f, 1.146992f, 1.119505f, 1.071862f, 1.047705f, 1.030085f, 1.036378f, 1.064598f, 1.105162f, 1.130652f, 1.139953f, 1.136465f, 1.148164f, 1.139834f, 
+         1.223416f, 1.167020f, 1.150571f, 1.160631f, 1.168439f, 1.142799f, 1.105827f, 1.076140f, 1.063633f, 1.072352f, 1.093392f, 1.128933f, 1.140358f, 1.139307f, 1.143297f, 1.164680f, 1.148099f, 
+         1.239127f, 1.177153f, 1.169634f, 1.177671f, 1.173837f, 1.168127f, 1.141466f, 1.117873f, 1.104209f, 1.112959f, 1.123990f, 1.136764f, 1.143459f, 1.145785f, 1.147368f, 1.164210f, 1.161443f, 
+         1.244184f, 1.199203f, 1.183513f, 1.180321f, 1.171594f, 1.160925f, 1.144194f, 1.135260f, 1.126925f, 1.123156f, 1.128287f, 1.137361f, 1.143193f, 1.150819f, 1.160917f, 1.187535f, 1.184648f, 
+         1.238324f, 1.199825f, 1.177944f, 1.175393f, 1.160624f, 1.147758f, 1.140360f, 1.136565f, 1.134072f, 1.126765f, 1.125888f, 1.125530f, 1.129106f, 1.144098f, 1.155173f, 1.191917f, 1.200436f, 
+         1.237132f, 1.219750f, 1.201579f, 1.199888f, 1.182859f, 1.167633f, 1.159432f, 1.162438f, 1.155735f, 1.151572f, 1.146603f, 1.144087f, 1.153001f, 1.164621f, 1.180192f, 1.216688f, 1.249146f
+      }
+
+   },
+
+/******************************************************************************/
+// variable name: rolloff_Strobe_start
+// please see information under rolloff_LED_start.
+//
+// variable name: rolloff_Strobe_end
+// please see information under rolloff_LED_end.
+/******************************************************************************/
+
+1.000000f, /* Strobe Mesh Rolloff Start */
+7.500000f, /* Strobe Mesh Rolloff End */
+/* Strobe Mesh Rolloff */
+{
+   221,
+   /* R Gain */
+   {
+      1.236351f, 1.176765f, 1.158545f, 1.161579f, 1.158200f, 1.157070f, 1.164754f, 1.172176f, 1.173280f, 1.176292f, 1.184801f, 1.185991f, 1.194378f, 1.189474f, 1.192909f, 1.203916f, 1.245520f,
+      1.221651f, 1.178936f, 1.156494f, 1.155403f, 1.160488f, 1.166185f, 1.165546f, 1.174062f, 1.170535f, 1.180505f, 1.182024f, 1.184011f, 1.192682f, 1.194921f, 1.188065f, 1.207745f, 1.239281f,
+      1.226448f, 1.166849f, 1.152779f, 1.158300f, 1.159993f, 1.161015f, 1.151127f, 1.146399f, 1.140570f, 1.154561f, 1.162379f, 1.177549f, 1.188866f, 1.187251f, 1.185616f, 1.198557f, 1.235722f,
+      1.221327f, 1.170068f, 1.151922f, 1.149195f, 1.147806f, 1.138763f, 1.132004f, 1.111438f, 1.109132f, 1.113927f, 1.133142f, 1.157217f, 1.173381f, 1.180306f, 1.181548f, 1.193557f, 1.233969f,
+      1.221527f, 1.167622f, 1.141029f, 1.149702f, 1.135198f, 1.120531f, 1.096084f, 1.088789f, 1.067003f, 1.085900f, 1.114946f, 1.138806f, 1.159946f, 1.175413f, 1.180815f, 1.200892f, 1.239493f,
+      1.228884f, 1.171153f, 1.148773f, 1.141279f, 1.124726f, 1.103759f, 1.083680f, 1.043731f, 1.022193f, 1.036391f, 1.096347f, 1.125924f, 1.152106f, 1.169718f, 1.186764f, 1.201051f, 1.244610f,
+      1.235898f, 1.175077f, 1.146062f, 1.136089f, 1.120007f, 1.105745f, 1.083315f, 1.034111f, 1.007747f, 1.024330f, 1.084649f, 1.122294f, 1.157488f, 1.176208f, 1.184945f, 1.202877f, 1.246723f,
+      1.244821f, 1.177756f, 1.152263f, 1.147546f, 1.131619f, 1.119468f, 1.100001f, 1.063962f, 1.038588f, 1.055746f, 1.112665f, 1.140870f, 1.163884f, 1.182535f, 1.186345f, 1.210569f, 1.259731f,
+      1.263458f, 1.194647f, 1.164841f, 1.156234f, 1.152379f, 1.134506f, 1.121017f, 1.110066f, 1.103905f, 1.112663f, 1.132890f, 1.159042f, 1.179841f, 1.187054f, 1.190998f, 1.214933f, 1.267606f,
+      1.293041f, 1.222436f, 1.181468f, 1.169498f, 1.163926f, 1.152961f, 1.143531f, 1.136712f, 1.127712f, 1.144194f, 1.159922f, 1.175908f, 1.195597f, 1.209626f, 1.211246f, 1.254312f, 1.303903f,
+      1.324850f, 1.246517f, 1.197828f, 1.177286f, 1.172570f, 1.161905f, 1.158830f, 1.157903f, 1.155931f, 1.163913f, 1.177481f, 1.191155f, 1.206774f, 1.225948f, 1.246318f, 1.285919f, 1.350092f,
+      1.360977f, 1.287294f, 1.236325f, 1.203488f, 1.181981f, 1.169595f, 1.163969f, 1.166804f, 1.165793f, 1.181326f, 1.186705f, 1.200251f, 1.217155f, 1.239690f, 1.280210f, 1.324476f, 1.383440f,
+      1.397726f, 1.331768f, 1.288535f, 1.252678f, 1.214740f, 1.182255f, 1.172810f, 1.170099f, 1.172824f, 1.179697f, 1.187573f, 1.208283f, 1.247638f, 1.286256f, 1.323773f, 1.367733f, 1.449123f
+   },
+   /* GR Gain */
+   {
+      1.197429f, 1.120184f, 1.087962f, 1.083060f, 1.080657f, 1.073533f, 1.072818f, 1.079339f, 1.078750f, 1.089836f, 1.093570f, 1.098929f, 1.112769f, 1.118122f, 1.123533f, 1.137394f, 1.167338f,
+      1.197887f, 1.141417f, 1.115769f, 1.111910f, 1.116922f, 1.111817f, 1.108904f, 1.110048f, 1.108398f, 1.113907f, 1.118877f, 1.124446f, 1.132543f, 1.139926f, 1.139529f, 1.159358f, 1.181579f,
+      1.194143f, 1.132212f, 1.110821f, 1.112971f, 1.117168f, 1.109071f, 1.097196f, 1.084793f, 1.077572f, 1.083678f, 1.095479f, 1.104883f, 1.116200f, 1.121059f, 1.127600f, 1.150554f, 1.178029f,
+      1.191620f, 1.131912f, 1.108612f, 1.104953f, 1.104313f, 1.092699f, 1.072261f, 1.057606f, 1.043490f, 1.049509f, 1.064434f, 1.084966f, 1.099876f, 1.107967f, 1.116210f, 1.137882f, 1.170789f,
+      1.195469f, 1.134687f, 1.107818f, 1.106968f, 1.098309f, 1.075188f, 1.050017f, 1.029762f, 1.020847f, 1.028286f, 1.040477f, 1.063850f, 1.082513f, 1.094189f, 1.107266f, 1.128411f, 1.168034f,
+      1.201744f, 1.137148f, 1.112252f, 1.105240f, 1.085876f, 1.068248f, 1.042491f, 1.019661f, 1.008244f, 1.010121f, 1.029829f, 1.051962f, 1.072701f, 1.089221f, 1.101677f, 1.132328f, 1.171992f,
+      1.203662f, 1.138691f, 1.113697f, 1.103195f, 1.090462f, 1.073437f, 1.043041f, 1.019461f, 1.000000f, 1.008556f, 1.027708f, 1.049685f, 1.072860f, 1.090704f, 1.105618f, 1.130005f, 1.178121f,
+      1.214925f, 1.144153f, 1.122215f, 1.107807f, 1.098786f, 1.080284f, 1.053153f, 1.031832f, 1.020437f, 1.027672f, 1.046788f, 1.065154f, 1.086904f, 1.096962f, 1.108229f, 1.135991f, 1.181861f,
+      1.232745f, 1.159816f, 1.129139f, 1.116520f, 1.109735f, 1.093454f, 1.070716f, 1.053110f, 1.047588f, 1.050315f, 1.066129f, 1.084281f, 1.102643f, 1.112858f, 1.115294f, 1.148205f, 1.196881f,
+      1.263844f, 1.184813f, 1.138486f, 1.128182f, 1.120605f, 1.109851f, 1.087166f, 1.073071f, 1.064319f, 1.069740f, 1.080106f, 1.100016f, 1.114214f, 1.129605f, 1.141793f, 1.185458f, 1.236591f,
+      1.300522f, 1.213308f, 1.164996f, 1.135858f, 1.122176f, 1.102810f, 1.093128f, 1.080385f, 1.074601f, 1.077909f, 1.090116f, 1.109457f, 1.125186f, 1.149445f, 1.173199f, 1.227356f, 1.277326f,
+      1.336835f, 1.240267f, 1.185598f, 1.146270f, 1.118308f, 1.096874f, 1.086201f, 1.082346f, 1.082408f, 1.092215f, 1.100238f, 1.114349f, 1.136197f, 1.169436f, 1.214198f, 1.260782f, 1.314834f,
+      1.349525f, 1.254683f, 1.204601f, 1.178563f, 1.145196f, 1.111647f, 1.103335f, 1.093750f, 1.096475f, 1.100782f, 1.110083f, 1.132979f, 1.162210f, 1.206364f, 1.241812f, 1.300684f, 1.366314f
+   },
+   /* GB Gain */
+   {
+      1.197149f, 1.122224f, 1.090719f, 1.085770f, 1.077178f, 1.072802f, 1.071367f, 1.075688f, 1.079848f, 1.087836f, 1.089200f, 1.093640f, 1.107919f, 1.113435f, 1.115187f, 1.128435f, 1.160150f,
+      1.194805f, 1.140792f, 1.111383f, 1.113801f, 1.113237f, 1.106731f, 1.102427f, 1.106880f, 1.107868f, 1.111974f, 1.118962f, 1.124175f, 1.127909f, 1.136089f, 1.130216f, 1.150216f, 1.171874f,
+      1.190475f, 1.130198f, 1.104374f, 1.107661f, 1.107714f, 1.105291f, 1.093305f, 1.081269f, 1.073746f, 1.078086f, 1.087893f, 1.100171f, 1.111066f, 1.117351f, 1.115332f, 1.133837f, 1.163872f,
+      1.188224f, 1.126988f, 1.104224f, 1.105068f, 1.104698f, 1.090352f, 1.072490f, 1.051850f, 1.038871f, 1.044618f, 1.060712f, 1.079153f, 1.096651f, 1.101567f, 1.104304f, 1.120493f, 1.153920f,
+      1.186770f, 1.124732f, 1.101871f, 1.106374f, 1.101789f, 1.075875f, 1.049070f, 1.031353f, 1.017699f, 1.024182f, 1.040076f, 1.063939f, 1.079541f, 1.088221f, 1.093689f, 1.112914f, 1.150194f,
+      1.196777f, 1.132050f, 1.104392f, 1.103204f, 1.092442f, 1.067333f, 1.042303f, 1.019152f, 1.006570f, 1.010406f, 1.028483f, 1.051691f, 1.073787f, 1.081660f, 1.091315f, 1.114065f, 1.154010f,
+      1.197972f, 1.130298f, 1.110018f, 1.105577f, 1.095882f, 1.073308f, 1.046138f, 1.020417f, 1.000294f, 1.009163f, 1.031306f, 1.053672f, 1.073952f, 1.086476f, 1.093572f, 1.113308f, 1.158450f,
+      1.212288f, 1.144479f, 1.116941f, 1.114316f, 1.107389f, 1.087855f, 1.062063f, 1.036210f, 1.024918f, 1.029063f, 1.047824f, 1.071627f, 1.085717f, 1.097862f, 1.096527f, 1.122730f, 1.165196f,
+      1.229370f, 1.159169f, 1.127081f, 1.122002f, 1.117544f, 1.101789f, 1.080648f, 1.057914f, 1.049180f, 1.052654f, 1.070060f, 1.091310f, 1.104233f, 1.109014f, 1.112176f, 1.138996f, 1.186251f,
+      1.263806f, 1.181394f, 1.139066f, 1.130816f, 1.129007f, 1.112903f, 1.093351f, 1.078028f, 1.068256f, 1.074507f, 1.082930f, 1.102805f, 1.119115f, 1.131848f, 1.137933f, 1.174345f, 1.223391f,
+      1.304826f, 1.219740f, 1.168644f, 1.142315f, 1.132011f, 1.113189f, 1.100455f, 1.088390f, 1.078929f, 1.087290f, 1.096866f, 1.114981f, 1.129878f, 1.151850f, 1.174744f, 1.226173f, 1.268084f,
+      1.345871f, 1.250607f, 1.193701f, 1.156048f, 1.131622f, 1.111059f, 1.101692f, 1.095999f, 1.097470f, 1.106310f, 1.112103f, 1.123975f, 1.147048f, 1.173133f, 1.210893f, 1.257681f, 1.306127f,
+      1.360324f, 1.263357f, 1.215932f, 1.189924f, 1.154091f, 1.125851f, 1.119065f, 1.112914f, 1.113413f, 1.119837f, 1.128299f, 1.146381f, 1.176733f, 1.210239f, 1.246570f, 1.288844f, 1.359400f
+   },
+   /* B Gain */
+   {
+      1.230613f, 1.156558f, 1.131610f, 1.121892f, 1.113498f, 1.104610f, 1.102538f, 1.109904f, 1.114896f, 1.124420f, 1.131819f, 1.142251f, 1.155878f, 1.163236f, 1.170068f, 1.185140f, 1.208795f,
+      1.234999f, 1.175380f, 1.144723f, 1.147936f, 1.146714f, 1.138040f, 1.137241f, 1.140958f, 1.144001f, 1.155034f, 1.168941f, 1.183440f, 1.198614f, 1.210465f, 1.205843f, 1.226539f, 1.243057f,
+      1.234834f, 1.169000f, 1.147800f, 1.145920f, 1.145758f, 1.137964f, 1.117847f, 1.115387f, 1.114052f, 1.125777f, 1.142539f, 1.163093f, 1.178995f, 1.187955f, 1.187121f, 1.206837f, 1.227732f,
+      1.236739f, 1.174687f, 1.146197f, 1.144635f, 1.142428f, 1.125390f, 1.111528f, 1.093053f, 1.081974f, 1.090303f, 1.119292f, 1.146943f, 1.164248f, 1.171355f, 1.167758f, 1.189954f, 1.218774f,
+      1.247958f, 1.180141f, 1.148316f, 1.145298f, 1.131194f, 1.115653f, 1.081406f, 1.050491f, 1.038318f, 1.049899f, 1.083724f, 1.130063f, 1.148317f, 1.153397f, 1.164087f, 1.188470f, 1.225362f,
+      1.270325f, 1.190033f, 1.158877f, 1.148840f, 1.130865f, 1.105063f, 1.054522f, 1.025575f, 1.012016f, 1.023705f, 1.059047f, 1.109449f, 1.141490f, 1.152929f, 1.169786f, 1.196628f, 1.236126f,
+      1.285343f, 1.200963f, 1.167637f, 1.153825f, 1.137263f, 1.100984f, 1.051404f, 1.020003f, 1.004476f, 1.021115f, 1.055531f, 1.107862f, 1.143461f, 1.157925f, 1.168796f, 1.201436f, 1.253117f,
+      1.304223f, 1.218756f, 1.180614f, 1.167743f, 1.154888f, 1.114355f, 1.068799f, 1.044566f, 1.029928f, 1.040020f, 1.070762f, 1.120634f, 1.149375f, 1.161362f, 1.169035f, 1.205262f, 1.262593f,
+      1.335496f, 1.244412f, 1.205522f, 1.190724f, 1.186692f, 1.154770f, 1.110850f, 1.079380f, 1.068824f, 1.079349f, 1.108956f, 1.152428f, 1.168490f, 1.179548f, 1.187905f, 1.230990f, 1.288933f,
+      1.378056f, 1.285570f, 1.237448f, 1.215329f, 1.208018f, 1.185635f, 1.160410f, 1.133506f, 1.120357f, 1.128238f, 1.147180f, 1.160475f, 1.178338f, 1.187959f, 1.198428f, 1.250514f, 1.306647f,
+      1.411756f, 1.324362f, 1.262718f, 1.232958f, 1.209064f, 1.186263f, 1.169128f, 1.153998f, 1.145522f, 1.149425f, 1.153800f, 1.167501f, 1.181747f, 1.203523f, 1.230700f, 1.288862f, 1.343486f,
+      1.453061f, 1.343430f, 1.274124f, 1.228572f, 1.200844f, 1.177234f, 1.163952f, 1.160569f, 1.160346f, 1.158586f, 1.162135f, 1.170665f, 1.186695f, 1.214210f, 1.264633f, 1.319702f, 1.379894f,
+      1.442754f, 1.349023f, 1.296085f, 1.259690f, 1.225815f, 1.198866f, 1.183139f, 1.176389f, 1.179828f, 1.175151f, 1.177723f, 1.185063f, 1.215980f, 1.264410f, 1.298531f, 1.366018f, 1.437059f
+   }
+   },
+/* A CCT Trigger */
+{
+   3350, /* Start */
+   3250, /* End */
+},
+/* D65 CCT Trigger */
+{
+   4998, /* Start */
+   4999, /* End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control ASF.
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+1, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for lowlight viewfinder 3x3ASF and 5x5 ASF.
+// These are used for all chipsets.
+// gain start :
+// When gain >= gain_start, lowlight ASF is interpolated with normal ASF.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight ASF under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight ASF is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight ASF under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight ASF is interpolated with normal ASF.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight ASF under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight ASF is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight ASF under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight viewfinder 3x3 ASF and 5x5 ASF.
+// These are used for all chipsets.
+// gain start :
+// When gain <= gain_start, brightlight ASF is interpolated with normal ASF.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight ASF under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight ASF is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight ASF under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight ASF is interpolated with normal ASF.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// effect: decrease this value will use brightlight ASF under brighter light condition
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight ASF is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end < lux_index_start.
+// Effect: Decreasing this value will use 100% brightlight ASF under brighter light condition.
+//
+/*********************************************************************/
+
+/* Outdoor Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per upscaling for viewfinder ASF(3x3 or 5x5).
+// This parameter is used for all chipsets.
+// Range: 0.25 to 1.
+// Effect: Larger value will result in little sharpening change for upscaling.
+//   Setting it to 1 will use the same sharpening for upscaling case as
+//   no scaling.
+//
+/*********************************************************************/
+
+0.250000f, /* Sharp Min DS Factor */
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per downscaling for viewfinder ASF(3x3 or 5x5).
+// This parameter is used for all chipsets.
+// We do not recommend changing this value.
+/*********************************************************************/
+
+12.000000f, /* Sharp Max DS Factor */
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per downscaling for viewfinder ASF(3x3 or 5x5).
+// This parameter is used for all chipsets.
+// Range: 1 to 3.
+// Effect: larger value will result in more sharpening for downscaling case.
+// Default value (target-specific): 1 for 6k and 8k and MSM7x30, 2 for other 7k.
+/*********************************************************************/
+
+2.000000f, /* Sharp Max Factor */
+
+/*********************************************************************/
+// Feature name :
+// This set of parameters is used for MSM7201, MSM7601, MSM7501.
+//
+// Edge Filter:
+// Sharpness coefficients for viewfinder 3x3 ASF.
+// Range: -3.99 to 3.99.
+// Constraints: All coeffs need to sum to 1.
+// Effect: Larger center coeff. will result in  sharper image.
+//
+// Noise Filter:
+// Smoothing coefficients for viewfinder 3x3 ASF.
+// Range: -1.99 to 1.99.
+// Constraints: All coeffs need to sum to 1.
+// Effect: Larger center coeff. will result in less smoothing image.
+//
+// Noise threshold for viewfinder 3x3 ASF.
+// Range: 0 to 1023.
+// Effect: Larger value will result in more smooth and less sharpening.
+//
+// Edge threshold for viewfinder 3x3 ASF.
+// Range: 0 to 1023.
+// Constraints: Edge threshold > noise threshold.
+// Effect: Larger value will result in more sharpened edges.
+//
+// q factors, edge detection flag:
+// Parameters for viewfinder 3x3 ASF
+// We recommend not to change these parameters.
+/*********************************************************************/
+
+/* 3x3 ASF */
+{
+   /* Edge Filter */
+   {
+      {-0.125000f, -0.125000f, -0.125000f},
+      {-0.125000f, 2.000000f, -0.125000f},
+      {-0.125000f, -0.125000f, -0.125000f}
+   },
+   /* Noise Filter */
+   {
+      {0.109375f, 0.109375f, 0.109375f},
+      {0.109375f, 0.125000f, 0.109375f},
+      {0.109375f, 0.109375f, 0.109375f}
+   },
+   /* Noise Threshold (10-bit) */
+   160,
+   /* Edge Threshold (10-bit) */
+   240,
+   /* Edge filter q factor */
+   5,
+   /* Noise filter q factor */
+   6,
+   /* Edge detection flag */
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// This set of parameters is used for MSM7201, MSM7601, MSM7501.
+// These are for viewfinder 3x3 ASF under lowlight condition.
+/*********************************************************************/
+
+/* 3x3 Low-Light ASF */
+{
+   /* Edge Filter */
+   {
+      {-0.125000f, -0.125000f, -0.125000f},
+      {-0.125000f, 2.000000f, -0.125000f},
+      {-0.125000f, -0.125000f, -0.125000f}
+   },
+   /* Noise Filter */
+   {
+      {0.109375f, 0.109375f, 0.109375f},
+      {0.109375f, 0.125000f, 0.109375f},
+      {0.109375f, 0.109375f, 0.109375f}
+   },
+   /* Noise Threshold (10-bit) */
+   160,
+   /* Edge Threshold (10-bit) */
+   240,
+   /* Edge filter q factor */
+   5,
+   /* Noise filter q factor */
+   6,
+   /* Edge detection flag */
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control ASF
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+1, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot 5x5ASF.
+// This set of parameters is used for all chipsets for snapshot.
+// gain start :
+// When gain >= gain_start, lowlight ASF is interpolated with normal ASF.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight ASF under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight ASF is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight ASF under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight ASF is interpolated with normal ASF.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight ASF under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight ASF is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight ASF under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   3.800000f, /* Gain Start */
+   4.00000f, /* Gain End */
+   314, /* Lux Index Start */
+   343, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight snapshot 5x5 ASF.
+// This set of parameters is used for all chipsets under snapshot mode.
+// gain start :
+// When gain <= gain_start, brightlight ASF is interpolated with normal ASF.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight ASF under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight ASF is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight ASF under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight ASF is interpolated with normal ASF.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Decreasing this value will use brightlight ASF under brighter light condition.
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight ASF is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end < lux_index_start.
+// Effect: Decreasing this value will use 100% brightlight ASF under brighter light condition.
+//
+/*********************************************************************/
+
+/* Outdoor Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// 5x5 ASF filter mode for snapshot.
+// This set of parameters is used for all chipsets with some exceptions, please see each item for details.
+// 0 means ASF is off.
+// 1 means single 5x5 ASF filter.
+// 2 means two 5x5 ASF filters.
+// 3 means smart mode. Currently software does not support this mode.
+// Default: 2
+//
+//Please do not change smoothing filter and Laplacian filter.
+//
+// Normalization factors for horizontal and veritical directions under snapshot.
+// mode.
+// Constraint: It has to be the inverse value of the center cofficient in
+// sharpening filter for horizontal and vertical directions,
+// respectively.
+//
+// Sharpening coeff. for horizontal and vertical directions, respectively.
+// These parameters are used for all chipsets under snapshot mode.
+// Range: Middle coeff -63.9 to 63, surounding ceoff -127 to 127.
+// Constraints: All coffs need to sum to 0.
+//
+// Extraction factor is not supported by software.
+//
+// 5x5 ASF parameters for snapshot under lowlight, normal, and bright light.
+//
+// e1
+// Noise threshold.
+// It is for all chipsets.
+// Range: 0 to 127.
+// Effect: Smaller value will result in more edges to be sharpened.
+//
+// e2
+// Sharpening Limit
+// Range: 0 to 127.
+// Constraint: e2>=e1.
+// Effect: Larger values will result in sharper strong edges.
+// For MSM7601, MSM7201, MSM7501, e2 affects horizontal and vertical edges.
+// For QSD8x50, QSC6270(6240), QSC6295, e2 only affects horizontal positive edges.
+//
+// e3
+// Sharpening limit for horizontal negative edge.
+// e3 is only supported on QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Default: -e2
+// Range: -128 to 0.
+// Constraints: |e3| >= e1.
+// Effect: Smaller values will result in sharper negative strong edges.
+//
+// e4
+// Sharpening limit for vertical positive edge.
+// e4 is only supported on QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Default: e2.
+// Range: 0 to 127
+// Constraints: e4 >= e1.
+// Effect: Larger values will result in sharper positive strong edges.
+//
+// e5
+// Sharpening limit for vertical negative edge.
+// e5 is only supported on QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Default: -e4.
+// Range: -128 to 0.
+// Constraints: |e5| >= e1.
+// Effect: Smaller values will result in sharper negative strong edges.
+//
+// k1 and k2
+// Sharpening degree for horizontal and vertical edges.
+// These are supported in all chipsets for snapshot.
+// Range: 0 to 3.9. (except for sROC; on sROC max value is 1.9.)
+// Effect: Larger value result in sharper edges.
+//
+// sp
+// Smoothing percentage.
+// It is for all chipsets.
+// Range: 0 to 100.
+// Effect: Larger value results in smoother images.
+//
+/*********************************************************************/
+
+/* 5x5 ASF */
+{
+   2, /* Filter Mode */
+   /* Smoothing Filter */
+   {
+      1, 1, 1,
+      1, 1, 1,
+      1, 1, 1
+   },
+   /* Laplacian Filter */
+   {
+      -1, -1, -1,
+      -1, 8, -1,
+      -1, -1, -1
+   },
+   0.250000f, /* Normalize Factor 1 */
+   0.250000f, /* Normalize Factor 2 */
+   /* 5x5 Filter 1 */
+   {
+      0, -1, -2, -1, 0,
+      0, 0, 0, 0, 0,
+      0, 2, 4, 2, 0,
+      0, 0, 0, 0, 0,
+      0, -1, -2, -1, 0
+   },
+   /* 5x5 Filter 2 */
+   {
+      0, 0, 0, 0, 0,
+      -1, 0, 2, 0, -1,
+      -2, 0, 4, 0, -2,
+      -1, 0, 2, 0, -1,
+      0, 0, 0, 0, 0
+   },
+   80, /* Extraction Factor */
+   /* Settings */
+   {
+      /* Low Light */
+      {
+         35, /* e1 */
+         60, /* e2 */
+         -60, /* e3 */
+         60, /* e4 */
+         -60, /* e5 */
+         0.000000f, /* k1 */
+         0.000000f, /* k2 */
+         60, /* sp */
+         30, /* sp 5x5 */
+      },
+      /* Normal Light */
+      {
+         25, /* e1 */
+         40, /* e2 */
+         -40, /* e3 */
+         40, /* e4 */
+         -40, /* e5 */
+         0.450000f, /* k1 */
+         0.450000f, /* k2 */
+         40, /* sp */
+         15, /* sp 5x5 */
+      },
+      /* Bright Light */
+      {
+         9, /* e1 */
+         28, /* e2 */
+         -28, /* e3 */
+         28, /* e4 */
+         -28, /* e5 */
+         0.470000f, /* k1 */
+         0.470000f, /* k2 */
+         7, /* sp */
+         0, /* sp 5x5 */
+      }
+   }
+},
+
+/*********************************************************************/
+// Feature name :
+// Soft focus degree.
+// This parameter is used for portrait mode under Best Shot Mode.
+// Range: 0.5 to 1.
+// Effect: Smaller value will result in softer focus.
+/*********************************************************************/
+
+0.900000f, /* Soft Focus Degree */
+
+/*********************************************************************/
+// Feature name :
+// The following set of parameters is for viewfinder.
+// It is only offered in QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27 for viewfinder mode.
+// Please see details of the parameter description under 5x5 ASF for snapshot.
+/*********************************************************************/
+
+/* 5x5 ASF */
+{
+   2, /* Filter Mode */
+   /* Smoothing Filter */
+   {
+      1, 1, 1,
+      1, 1, 1,
+      1, 1, 1
+   },
+   /* Laplacian Filter */
+   {
+      -1, -1, -1,
+      -1, 8, -1,
+      -1, -1, -1
+   },
+   0.250000f, /* Normalize Factor 1 */
+   0.250000f, /* Normalize Factor 2 */
+   /* 5x5 Filter 1 */
+   {
+      0, -1, -2, -1, 0,
+      0, 0, 0, 0, 0,
+      0, 2, 4, 2, 0,
+      0, 0, 0, 0, 0,
+      0, -1, -2, -1, 0
+   },
+   /* 5x5 Filter 2 */
+   {
+      0, 0, 0, 0, 0,
+      -1, 0, 2, 0, -1,
+      -2, 0, 4, 0, -2,
+      -1, 0, 2, 0, -1,
+      0, 0, 0, 0, 0
+   },
+   80, /* Extraction Factor */
+   /* Settings */
+   {
+      /* Low Light */
+      {
+         40, /* e1 */
+         60, /* e2 */
+         -60, /* e3 */
+         60, /* e4 */
+         -60, /* e5 */
+         0.000000f, /* k1 */
+         0.000000f, /* k2 */
+         100, /* sp */
+         50, /* sp 5x5 */
+      },
+      /* Normal Light */
+      {
+          30, /* e1 */
+         40, /* e2 */
+         -40, /* e3 */
+         40, /* e4 */
+         -40, /* e5 */
+         0.600000f, /* k1 */
+         0.600000f, /* k2 */
+         60, /* sp */
+         20, /* sp 5x5 */
+      },
+      /* Bright Light */
+      {
+         7, /* e1 */
+         28, /* e2 */
+         -28, /* e3 */
+         28, /* e4 */
+         -28, /* e5 */
+         0.550000f, /* k1 */
+         0.550000f, /* k2 */
+         2, /* sp */
+         0, /* sp 5x5 */
+      }
+   }
+},
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per upscaling for snapshot 5x5 ASF.
+// This parameter is used for all chipsets.
+// Range: 0.25 to 1.
+// Effect: Larger value will result in little sharpening change for upscaling.
+//   Setting it to 1 will use the same sharpening for upscaling case as
+//   no scaling.
+//
+/*********************************************************************/
+
+0.250000f, /* 5x5 Sharp Min DS Factor */
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per downscaling for snapshot 5x5 ASF.
+// This parameter is used for all chipsets.
+// We do not recommend changing this value.
+/*********************************************************************/
+
+12.000000f, /* 5x5 Sharp Max DS Factor */
+
+/*********************************************************************/
+// Feature name :
+// Sharpness control parameters per downscaling for snapshot 5x5 ASF.
+// This parameter is used for all chipsets.
+// Range: 1 to 3.
+// Effect: Larger value will result in more sharpening for downscaling case.
+// Default value (target-specific): 1 for QSC6xxx, QSD8xxx and MSM7201, MSM7601, MSM7501, MSM7x30, 2 for MSM7x25, MSM7x27.
+/*********************************************************************/
+
+2.000000f, /* 5x5 Sharp Max Factor */
+
+/*********************************************************************/
+// Feature name :
+// Parameters for luma adaptation (LA)on MSM7xxx.
+//
+// Number of iterations:
+// Range: 1 to 100
+// Effect: Larger number will have more effect.
+//
+// Low percentage: Handling darker pixels
+// Range: 1 to 100.
+// Effect: It works with "low range", with fixed "low range", smaller
+// "low percentage" will more likely to have LA effect.
+//
+// Low range: handling darker pixels
+// Range: 0 to 255.
+// Effect: it works with "low percentage", with fixed "low percentage", larger
+// "low range" will more likely to have LA effect.
+//
+// High percentage: handling brighter pixels
+// Range: 1 to 100.
+// Effect: it works with "high range", with fixed "high range", smaller
+// "high percentage" will more likely to have LA effect.
+//
+// High range: handling brighter pixels
+// Range: 0 to 255.
+// Effect: it works with "high percentage", with fixed "high percentage", larger
+// "high range" will more likely to have LA effect.
+//
+/*********************************************************************/
+
+50, /* Number of Iterations */
+10, /* Low Percentage */
+30, /* Low Range */
+15, /* High Percentage */
+229, /* High Range */
+
+/*********************************************************************/
+// Feature name :
+// Luma adaptation threshold for QSC6xxx and MSM6xxx.
+// Range: 2 to 5.
+// Effect: Larger value will have more LA effect.
+/*********************************************************************/
+
+3, /* Luma Adaptation Threshold */
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Luma Adaptation snapshot bright light trigger points
+//?/******************************************************************************/
+
+/* Snapshot Bright Light Trigger Points */
+{
+   4.800000f, /* Gain Start */
+   2.400000f, /* Gain End */
+   140, /* Lux Index Start */
+   105, /* Lux Index End */
+},
+0, /* LA 8k Enable */
+
+/******************************************************************************/
+// Feature name : Luma Adaptation (LA) Processing
+// applicale chipset(s): QSD8x50, MSM7x30, QSD8x60
+// applicable operation mode:
+//     QSD8x50: Snapshot processing mode only
+//     MSM7x30, QSD8x60: View finder, snapshot processing, and video modes
+//
+// variable name: la_8k_type.offset
+// Offset added to luma image histogram (iHist)
+// default value: 3.3
+// data range: 0.0 to 16.0
+// effect: Increasing offset will decrease luma emphasis effects, and vice versa
+//
+// variable name: la_8k_type.low_beam
+// iHist enhancement on the low light end
+// default value: 0.9
+// data range: 0.0 to 4.0
+// effect: Increasing low_beam will make darker area brighter, and vice versa
+//
+// variable name: la_8k_type.high_beam
+// iHist enhancement on the high light end
+// default value: 0.1
+// data range: 0.0 to 4.0
+// effect: Increasing high_beam will make brighter area darker, and vice versa
+//
+// variable name: la_8k_type.histogram_cap
+// Histogram cap after iHist adjustment
+// default value: 5.0
+// data range: 0.25 to 15.75
+// effect: Decreasing histogram_cap would truncate high histogram peaks and descrease
+//     histogram equalization effects over sharp histogram peaks.  This helps prevent
+//     image from stepwise luma changes.
+//
+// variable name: la_8k_type.cap_high
+// Upper bound slope of the cumulated iHist (CDF)
+// default value: 2.0
+// data range: 1.0 to 3.75
+// constraints:
+// effect: Decreasing cap_high will restrict CDF from sudden increase, tends to have smoother curve,and vice versa
+//
+// variable name: la_8k_type.cap_low
+// Lower bound slope of cumulated iHist (CDF)
+// default value: 0.75
+// data range: 0 to 1.75
+// constraints:
+// effect: Increasing cap_low will promote smootheir curve.
+/******************************************************************************/
+
+/* Snapshot 8k Indoor Luma Adaptation */
+{
+   3.300000f, /* Offset */
+   0.900000f, /* Low Beam */
+   0.100000f, /* High Beam */
+   5.000000f, /* Histogram Cap */
+   2.000000f, /* Cap High */
+   0.750000f, /* Cap Low */
+},
+
+/******************************************************************************/
+// feature name: Luma Adaptation (LA) Processing
+// Please see above for details
+/******************************************************************************/
+
+/* Snapshot 8k Outdoor Luma Adaptation */
+{
+   3.300000f, /* Offset */
+   0.900000f, /* Low Beam */
+   0.100000f, /* High Beam */
+   5.000000f, /* Histogram Cap */
+   2.000000f, /* Cap High */
+   0.750000f, /* Cap Low */
+},
+
+/******************************************************************************/
+// variable name: la_luma_target_adj
+// luma target modification factor under LA
+// applicale chipset(s): all chipsets
+// applicable operation mode:
+//     QSD8x50, MSM75xx, MSM7600, MSM7200: Snapshot processing mode only
+//     MSM7x30, QSD8x60: View finder, snapshot processing, and video modes
+// default value: 0.9, reduced when LA is on.
+// data range: 0.5 to 1
+// constraints:
+// effect: smaller value will be less likely to have saturated bright pixels
+//         but darker area will be more noisy.
+/******************************************************************************/
+
+0.900000f, /* Luma Target Adjust */
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Luma Adaptation preview bright light trigger points
+//?/******************************************************************************/
+
+/* PreviewBright Light Trigger Points */
+{
+   4.800000f, /* Gain Start */
+   2.400000f, /* Gain End */
+   140, /* Lux Index Start */
+   105, /* Lux Index End */
+},
+/* Snapshot 8k Indoor Luma Adaptation */
+{
+   3.300000f, /* Offset */
+   0.900000f, /* Low Beam */
+   0.100000f, /* High Beam */
+   5.000000f, /* Histogram Cap */
+   2.000000f, /* Cap High */
+   0.750000f, /* Cap Low */
+},
+/* Snapshot 8k Outdoor Luma Adaptation */
+{
+   3.300000f, /* Offset */
+   0.900000f, /* Low Beam */
+   0.100000f, /* High Beam */
+   5.000000f, /* Histogram Cap */
+   2.000000f, /* Cap High */
+   0.750000f, /* Cap Low */
+},
+
+/******************************************************************************/
+// variable name: la_luma_target_adj_VF
+// Factor used to modify luma target for viewfinder
+// applicable chipset: QSD8x50 and newer
+// 3A version: N/A
+// applicable operation mode: preview
+// default Value: 0.9
+// Data Range: 0.6 to 0.95
+// constraints: <=1
+// effect: lower value to less likely to get over saturated image but with sacrifice
+//         of noise in darker areas
+/******************************************************************************/
+
+0.900000f, /* Luma Target Adjust */
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control chroma suppression (CS).
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot chroma suppression (CS)
+// gain start:
+// When gain >= gain_start, lowlight CS is interpolated with normal CS.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight CS under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight CS is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight CS under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight CS is interpolated with normal CS.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight CS under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight CS is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight CS under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// CS parameters for lowlight under snapshot mode.
+//
+// Luma Threshold 1 and Luma Threshold 2
+// Range: 0 to 255.
+// Constraint: For 7x30 and later,
+//             4 <= (threshold2 - threshold1) <= 127
+//             For earlier chips,
+//             (threshold2 - threshold1) > 0 and is a power of 2.
+// Effect: Larger (threshold2 - threshold1) tends to result in more dark pixels
+//         to be pulled towards grey.
+//
+// Luma Threshold 3 and Luma Threshold 4
+// Range: 0 to 255.
+// Constraint: For 7x30 and later,
+//             4 <= (threshold4 - threshold3) <= 127
+//             For earlier chips,
+//             (threshold4 - threshold3) > 0 and is a power of 2.
+// Effect: Larger (threshold4 - threshold3) tends to result in more bright pixels
+//         to be pulled towards grey.
+//
+// Chroma Threshold 1 and Chroma Threshold 2
+// Range: 0 to 255.
+// Constraint: For 7x30 and later,
+//             4 <= (threshold2 - threshold1) <= 127
+//             For earlier chips,
+//             (threshold2 - threshold1) > 0 and is a power of 2.
+// Effect: Larger (threshold2 - threshold1) tends to result in more color pixels
+//         to be pulled towards grey.
+//
+/*********************************************************************/
+
+/* Low-Light Snapshot Chroma Suppression */
+{
+   5, /* Luma Threshold 1 */
+   9, /* Luma Threshold 2 */
+   176, /* Luma Threshold 3 */
+   240, /* Luma Threshold 4 */
+   15, /* Chroma Threshold 1 */
+   31, /* Chroma Threshold 2 */
+},
+
+/*********************************************************************/
+// Feature name : CS parameters for snapshot.
+// CS parameters for normal light under snapshot mode.
+// Please see details under lowlight.
+/*********************************************************************/
+
+/* Chroma Suppression */
+{
+   60, /* Luma Threshold 1 */
+   160, /* Luma Threshold 2 */
+   160, /* Luma Threshold 3 */
+   254, /* Luma Threshold 4 */
+   10, /* Chroma Threshold 1 */
+   18, /* Chroma Threshold 2 */
+},
+
+/*********************************************************************/
+// Feature name : CS lowlight trigger points for preview.
+// The following set of parameters is for chroma suppression under preview mode.
+// Please see details for under snapshot mode.
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+/* Low-Light Preview Chroma Suppression */
+{
+   5, /* Luma Threshold 1 */
+   9, /* Luma Threshold 2 */
+   176, /* Luma Threshold 3 */
+   240, /* Luma Threshold 4 */
+   15, /* Chroma Threshold 1 */
+   31, /* Chroma Threshold 2 */
+},
+/* Preview Chroma Suppression */
+{
+   60, /* Luma Threshold 1 */
+   160, /* Luma Threshold 2 */
+   160, /* Luma Threshold 3 */
+   254, /* Luma Threshold 4 */
+   10, /* Chroma Threshold 1 */
+   18, /* Chroma Threshold 2 */
+},
+
+/******************************************************************************/
+// Feature name : MCE (Memory Color Enhancement)
+// RGB color gains and their corresponding color boundary & transition zone
+// applicale chipset(s): 7X30, 8660, 867x
+// applicable operation mode: preivew and snapshot
+// effect: larger boost factor --> lager color saturation
+//
+// variable name: green_y
+// Adjustment point in Y
+// default value: {20, 40, 200, 235}
+// data range: 0-255
+// constraints: 0-255
+// effect: adjust the boost factor relative to Y
+//
+// variable name: green_boost_factor
+// Max boost factor for green
+// default value: 1.0
+// data range: 1.0 - 2.0
+// constraints: 1.0 - 2.0
+// effect: larger vale --> greener
+//
+// variable name: green_cr_boundary
+// Cr boundary for green
+// default value: default = -10
+// data range: -127 to 127
+// constraints: green zone should not overlap with other color zones
+// effect: size of the green zone, more negative --> smaller green zone
+//
+// variable name: green_cb_boundary
+// Cb boundary for green
+// default value: -12
+// data range: -127 to 127
+// constraints: green zone should not overlap with other color zones
+//              must be same as green_cr_boundary
+// effect: size of the green zone, more negative --> smaller green zone
+//
+// variable name: green_cr_transition_width
+// Transition zone width for Cr boundary for green
+// default value: 8
+// data range: 4 to 31
+// constraints: green zone should not overlap with other color zones
+// effect: Cr width of the green zone transition, larger-> smoother change
+//
+// variable name: green_cb_transition_width
+// Transition zone width for Cb boundary for green
+// default value: 8
+// data range: 4 to 31
+// constraints: green zone should not overlap with other color zones
+// effect: Cb width of the green zone transition, larger-> smoother change
+//
+// variable name: green_bright_index
+// Exposure index for full green boosting effect
+// default value (calculated) : AEC outdoor index
+// data range: 0 to max exp index
+// constraints: < green_dark_index
+// effect: adjust the exposure level for full green boosting effect.
+//
+// variable name: green_dark_index
+// Exposure index for no green boosting effect
+// default value: default (calculated): (AEC indoor index+AEC outdoor index)/2
+// data range: 0 to max exp index
+// constraints: > green_bright_index
+// effect: adjust the exposure level for no green boosting effect.
+//
+// variable name: blue_y
+// Adjustment point in Y
+// default value: {80, 150, 235, 255}
+// data range: 0-255
+// constraints: 0-255
+// effect: adjust the boost factor relative to Y
+//
+// variable name: blue_boost_factor
+// Max boost factor for blue
+// default value: 1.0
+// data range: 1.0 - 2.0
+// constraints: 1.0 - 2.0
+// effect: larger vale --> bluer
+//
+// variable name: blue_cr_boundary
+// Cr boundary for blue
+// default value: default = -18
+// data range: -127 to 127
+// constraints: blue zone should not overlap with other color zones
+// effect: size of the blue zone, more negative --> smaller blue zone
+//
+// variable name: blue_cb_boundary
+// Cb boundary for blue
+// default value: 25
+// data range: -127 to 127
+// constraints: blue zone should not overlap with other color zones
+//              must be same as blue_cr_boundary
+// effect: size of the blue zone, more positive --> smaller blue zone
+//
+// variable name: blue_cr_transition_width
+// Transition zone width for Cr boundary for blue
+// default value: 10
+// data range: 4 to 31
+// constraints: blue zone should not overlap with other color zones
+// effect: Cr width of the blue zone transition, larger-> smoother change
+//
+// variable name: blue_cb_transition_width
+// Transition zone width for Cb boundary for blue
+// default value: 10
+// data range: 4 to 31
+// constraints: blue zone should not overlap with other color zones
+// effect: Cb width of the blue zone transition, larger-> smoother change
+//
+// variable name: blue_bright_index
+// Exposure index for full blue boosting effect
+// default value (calculated) : AEC outdoor index
+// data range: 0 to max exp index
+// constraints: < blue_dark_index
+// effect: adjust the exposure level for full blue boosting effect.
+//
+// variable name: blue_dark_index
+// Exposure index for no blue boosting effect
+// default value: default (calculated): (AEC indoor index+AEC outdoor index)/2
+// data range: 0 to max exp index
+// constraints: > blue_bright_index
+// effect: adjust the exposure level for no blue boosting effect.
+//
+// variable name: red_y
+// Adjustment point in Y
+// default value: {10, 30, 200, 235}
+// data range: 0-255
+// constraints: 0-255
+// effect: adjust the boost factor relative to Y
+//
+// variable name: red_boost_factor
+// Max boost factor for red
+// default value: 1.0
+// data range: 1.0 - 2.0
+// constraints: 1.0 - 2.0
+// effect: larger vale --> redder
+//
+// variable name: red_cr_boundary
+// Cr boundary for red
+// default value: 45
+// data range: -127 to 127
+// constraints: red zone should not overlap with other color zones
+// effect: size of the red zone, more positive --> smaller red zone.
+//
+// variable name: red_cb_boundary
+// Cb boundary for red
+// default value: 127
+// data range: -127 to 127
+// constraints: red zone should not overlap with other color zones
+//              must be same as red_cr_boundary
+// effect: size of the red zone, more positive --> larger red zone
+//
+// variable name: red_cr_transition_width
+// Transition zone width for Cr boundary for red
+// default value: 10
+// data range: 4 to 31
+// constraints: red zone should not overlap with other color zones
+// effect: Cr width of the red zone transition, larger-> smoother change
+//
+// variable name: red_cb_transition_width
+// Transition zone width for Cb boundary for red
+// default value: 10
+// data range: 4 to 31
+// constraints: red zone should not overlap with other color zones
+// effect: Cb width of the red zone transition, larger-> smoother change
+//
+// variable name: red_bright_index
+// Exposure index for full red boosting effect
+// default value (calculated) : AEC outdoor index
+// data range: 0 to max exp index
+// constraints: < red_dark_index
+// effect: adjust the exposure level for full red boosting effect.
+//
+// variable name: red_dark_index
+// Exposure index for no red boosting effect
+// default value (calculated): (AEC indoor index+AEC outdoor index)/2
+// data range: 0 to max exp index
+// constraints: > red_bright_index
+// effect: adjust the exposure level for no red boosting effect.
+/******************************************************************************/
+
+/* Memory Color Enhancement */
+{
+   {20, 40, 200, 235}, /* green y */
+   1.000000f, /* green boost factor */
+   -10, /* green cr boundary */
+   -12, /* green cb boundary */
+   8, /* green cr transition width */
+   8, /* green cb transition width; ignored, green cr transition width used */
+   140, /* green bright index */
+   190, /* green dark index */
+
+   {80, 150, 235, 255}, /* blue y */
+   1.000000f, /* blue boost factor */
+   -18, /* blue cr boundary */
+   25, /* blue cb boundary */
+   10, /* blue cr transition width */
+   10, /* blue cb transition width; ignored, blue cr transition width used */
+   140, /* blue bright index */
+   190, /* blue dark index */
+
+   {10, 30, 200, 235}, /* red y */
+   1.000000f, /* red boost factor */
+   45, /* red cr boundary */
+   127, /* red cb boundary */
+   10, /* red cr transition width */
+   10, /* red cb transition width; ignored, red cr transition width used */
+   140, /* red bright index */
+   190  /* red dark index */
+},
+
+/*********************************************************************/
+// Comment
+// Max number of frames for HJR.
+// Range: 1,2 or 3.
+// Effect: Higher value is more beneficial for very lowlight but longer latency.
+/*********************************************************************/
+
+3, /* Max Number of Frames */
+
+/*********************************************************************/
+// Comment
+// Flat area noise reduction level is used for SW version bayer filter
+// on MSM7201, MSM7501, MSM7601.
+// Range: 0 to 16.
+// Default: 4.
+// Effect: Larger value has lower noise reduction.
+/*********************************************************************/
+
+4, /* Flat Area Noise Reduction Level */
+
+/*********************************************************************/
+// Comment
+// Texture noise reduction level is used for SW version bayer filter
+// on MSM7201, MSM7501, MSM7601.
+// Range: 0 to 16.
+// Default: 12.
+// Effect: Larger value has lower noise reduction.
+/*********************************************************************/
+
+12, /* Texture Noise Reduction Level */
+
+/*********************************************************************/
+// Comment
+// Texture threshold is used for SW version bayer filter
+// on MSM7201, MSM7501, MSM7601.
+// Range: 1 to 5.
+// Default: 2.
+// Effect: Larger value will have more texture perserved.
+/*********************************************************************/
+
+3, /* Texture Threshold */
+
+/*********************************************************************/
+// Comment
+// K table is used for SW version bayer filter on MSM7201, MSM7501, MSM7601.
+// 20 values cover different light intensity levels. Lower indexed K values
+// are for bright light case and higher indexed K values are for lower light case.
+// Range: 0 to 200.
+// Default: 2.
+// Effect: Larger value will have more smoothing.
+/*********************************************************************/
+
+/* HJR K Table */
+{2, 2, 2, 2, 2,
+ 2, 2, 3, 3, 3,
+ 3, 4, 4, 5, 5,
+ 6, 7, 9, 11, 16
+},
+
+/*********************************************************************/
+// Feature name :
+// This parameter is used for SW bayer filter on MSM7201, MSM7501, MSM7601.
+// Bayer filter enabled index. We only enable bayer filter when lux
+// index exceeds this threshold.
+// Range: 0 to max lux index.
+// Effect: Larger value will enable bayer filter under darker light condition.
+/*********************************************************************/
+
+52, /* Bayer Filter Enable Index */
+
+/*********************************************************************/
+// Feature name :
+// The following set of bayer filter parameters are used for HW version.
+// These are for QSD8x50, QSC6270(6240), QSC6295.
+//
+// This set is for snapshot.
+/*********************************************************************/
+
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control bayer filter.
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+1, /* Control */
+
+/******************************************************************************/
+// Feature name : ABF1 snapshot shift lowlight trigger points
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+/******************************************************************************/
+
+/* ABF Snapshot Shift Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+/* Snapshot Adaptive Bayer Filter */
+{
+
+/*********************************************************************/
+// Comment
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// LP threshold is used to filter R and B channels.
+// 20 values cover different light intensity levels. Lower indexed LP values
+// are for bright light case and higher indexed LP values are for lower light case.
+// Range:0 to 1023.
+// Effect: Larger values will have more smoothing on R,B channels.
+//
+/*********************************************************************/
+
+   /* LP Threshold Table */
+   {48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 64,
+ 64, 64, 64, 64, 80,
+ 80, 96, 112, 114, 240
+},
+
+/*********************************************************************/
+// Comment
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Range: 3,4,5 or 6.
+// Effect: Smaller value will have more smoothing on R,B channels.
+/*********************************************************************/
+
+   4, /* Shift */
+
+/*********************************************************************/
+// Comment
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Ratio table is used to filter G channels.
+// 20 values cover different light intensity levels. Lower indexed ratio values
+// are for bright light case and higher indexed ratio values are for lower light case.
+// Range: 0 to 1.
+// Effect: Larger value will have more smoothing on G channel.
+/*********************************************************************/
+
+   /* Ratio Table */
+   {0.015625f, 0.015625f, 0.015625f, 0.015625f, 0.031250f,
+ 0.031250f, 0.031250f, 0.031250f, 0.031250f, 0.031250f,
+ 0.046875f, 0.046875f, 0.046875f, 0.062500f, 0.062500f,
+ 0.078125f, 0.093750f, 0.109375f, 0.125000f, 0.171875f
+},
+
+/*********************************************************************/
+// Comment
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Min table is used to filter G channels.
+// 20 values cover different light intensity levels. Lower indexed min values
+// are for bright light case and higher indexed min values are for lower light case.
+// Range: 0 to 1024
+// Effect: Larger value will have more smoothing on G channel.
+/*********************************************************************/
+
+   /* Min Table */
+   {16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16,
+ 16, 16, 32, 32, 48
+},
+
+/*********************************************************************/
+// Comment
+// These are for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Max table is used to filter G channels.
+// 20 values cover different light intensity levels. Lower indexed max values
+// are for bright light case and higher indexed max values are for lower light case.
+// Range: 0 to 1023.
+// Effect: Larger value will have more smoothing on G channel.
+/*********************************************************************/
+
+   /* Max Table */
+   {64, 64, 64, 64, 64,
+ 80, 80, 80, 80, 80,
+ 80, 80, 96, 96, 96,
+ 112, 128, 128, 128, 160
+},
+   4, /* Lowlight Shift */
+},
+
+/*********************************************************************/
+// Comment
+// The following set of bayer filter parameters is for viewfinder.
+// These are for QSD8x50, QSC6270(6240), QSC6295,MSM7x25, MSM7x27.
+// Please see detailed info listed in snapshot session.
+/*********************************************************************/
+
+/* Preview Adaptive Bayer Filter */
+{
+   /* LP Threshold Table */
+   {48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 64,
+ 64, 64, 64, 64, 80,
+ 80, 96, 112, 114, 240
+},
+   4, /* Shift */
+   /* Ratio Table */
+   {0.015625f, 0.015625f, 0.015625f, 0.015625f, 0.031250f,
+ 0.031250f, 0.031250f, 0.031250f, 0.031250f, 0.031250f,
+ 0.046875f, 0.046875f, 0.046875f, 0.062500f, 0.062500f,
+ 0.078125f, 0.093750f, 0.109375f, 0.125000f, 0.171875f
+},
+   /* Min Table */
+   {16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16,
+ 16, 16, 32, 32, 48
+},
+   /* Max Table */
+   {64, 64, 64, 64, 64,
+ 80, 80, 80, 80, 80,
+ 80, 80, 96, 96, 96,
+ 112, 128, 128, 128, 160
+},
+   4, /* Lowlight Shift */
+},
+/* ABF Preview Shift Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name : ABF enable index for preview
+// This threshold is used for HW version bayer filter on all VFE's
+// Under viewfinder mode, when lux index is smaller than this threshold
+// bayer filter is not used.
+// Range: 0 to max lux index.
+// Effect: Larger value will result in using bayer filter under a less brighter
+//   light condition.
+/*********************************************************************/
+
+52, /* Enable Lux Index Preview */
+
+/*********************************************************************/
+// Feature name : ABF enable index for snapshot
+// This threshold is used for HW version bayer filter on all VFE's
+// Under snapshot mode, when lux index is smaller than this threshold
+// bayer filter is not used.
+// Range: 0 to max lux index.
+// Effect: Larger value will result in using bayer filter under a less brighter
+//   light condition.
+/*********************************************************************/
+
+52, /* Enable Lux Index Snapshot */
+
+/*********************************************************************/
+// Feature name : ABF1 preview index/gain range for preview.
+// This set of parameters is used for HW version bayer filter on
+// QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Under viewfinder mode, the gain range and lux index range when bayer filter
+// is used.
+/*********************************************************************/
+
+/* ABF Preview Index Points */
+{
+   1.200000f, /* Index Gain Start */
+   8.000000f, /* Index Gain End */
+   52, /* Index Lux Index Start */
+   350, /* Index Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name : ABF1 preview index/gain range for snapshot.
+// This set of parameters is used for HW version bayer filter on
+// QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// Under snapshot mode, the gain range and lux index range when bayer filter
+// is used.
+/*********************************************************************/
+
+/* ABF Snapshot Index Points */
+{
+   1.200000f, /* Index Gain Start */
+   8.000000f, /* Index Gain End */
+   52, /* Index Lux Index Start */
+   350, /* Index Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : ABF2.
+// Applicale chipset: QSD8x60, MSM7x30 and later.
+// Applicable operation mode:  For VF and snapshot.
+//
+// Desription of variables in chromatix_adaptive_bayer_filter_data_type2
+// structure.
+//
+// Variable names: threshold_red[3], threshold_green[3],threshold_blue[3].
+// The three threshold values for each of
+// the red, green, and blue channels define boundaries for smoothing,
+// no-processing, and sharpening regions of ABF filter.
+// Default values (for 12-bit data):
+//   low-light : threshold_red[0]=24*16; threshold_red[1]=24*16; threshold_red[2]=25*16;
+//   med-light : threshold_red[0]=21*16; threshold_red[1]=21*16; threshold_red[2]=22*16;
+//   high-light: threshold_red[0]=18*16; threshold_red[1]=18*16; threshold_red[2]=19*16;
+//   Default values of threshold_green[0-2] and threshold_blue[0-2] are same as
+//   threshold_red[0-2] for different exposure levels
+// Data range: 0 to 255*16 (for 12-bit data).
+// Constraints: threshold_red[0] <= threshold_red[1] < threshold_red[2].
+// Effect: Larger value for threshold_red[0] will result in increased smoothing area;
+// larger value for threshold_red[1] will result in reduced sharpening area.
+//
+// Variable names: scale_factor_red[2], scale_factor_green[2],scale_factor_blue[2].
+// Control extent of smoothing and sharpening in
+// smoothing and sharpening regions of the new ABF filter.
+// Default values:
+//   low-light  : scale_factor_red[0]=0.80; scale_factor_red[1]=0.04;
+//   med-light  : scale_factor_red[0]=0.68; scale_factor_red[1]=0.04;
+//   high-light : scale_factor_red[0]=0.50; scale_factor_red[1]=0.04;
+//   Default values of scale_factor_green[0-1] and scale_factor blue[0-1] are
+//   same as scale_factor_red[0-1] for different exposure levels
+// Data range: 0 to 1.
+// Constraints: 0 < scale_factor_red[0-1] <= 1; similar contrasints applicable
+// to green- and blue-channel scaling factors.
+// Effect: Larger value for scale_factor_red\green\blue[0] increases smoothing in
+// smoothing region of ABF filter; larger value for scale_factor_red\green\blue[1]
+// increases sharpening in sharpening region of ABF filter.
+//
+// variable name: a[2]
+// Spatial component of ABF filter; controls
+// influence of neighboring pixels on output pixel value
+// default values:
+//   low-light  : a[0] = a[1] = 1;
+//   med-light  : a[0] = a[1] = 1;
+//   high-light : a[0] = a[1] = 1;
+// Data range: 0 to 1.
+// Constraints: 0 <= a[0-1] <= 1;
+// Effect: When a[0] = a[1] = 0, ABF is essentially turned off; When a[0] = a[1] = 1,
+// we see maximum smoothing/sharpening effects of applying the ABF filter.
+//
+// Variable name: table_pos[16].
+// Lookup table values determine
+// amount of smoothing at different levels of local gradient magnitude.
+// Default values:
+// table_pos[16] = {1.0000, 0.9764, 0.9214, 0.8346, 0.7244, 0.6063, 0.4882,
+//     0.3780, 0.2756, 0.1969, 0.1339, 0.0866, 0.0551, 0.0315, 0.0236, 0.0079};
+// Data range: 0 to 1.
+// Constraints: 0 <= table_pos[0-15] <= 1;
+// Effect: Larger values for table_pos[0-15] entries represent increased amount of
+// smoothing. We do not recommend changing these values.
+//
+// Variable name: table_neg[8].
+// Lookup table values determine
+// amount of sharpening at different values of local gradient magnitude.
+// Default values:
+// table_neg[8] = {-1.000, -1.000, -1.000, -1.000, -1.000, -1.000, -1.000, -1.000}.
+// Data range: -1.000 to 0.000
+// Constraints: -1.0 <= table_neg[0-7] <= 0.0;
+// Effect: Larger values for table_neg[0-7] represent increased amount of
+// sharpening. We do not recommend changing these values.
+/******************************************************************************/
+
+/* ABF2 Preview Low Light */
+{
+   /* Red channel parameters */
+   {240, 320, 2256}, /* 12-bit pixels */
+   {0.5f, 0.000f},
+   
+   /* Green channel parameters */
+   {240, 320, 2256}, /* 12-bit pixels */
+   {0.5f, 0.00f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {240, 320, 2256}, /* 12-bit pixels */
+   {0.5f, 0.00f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 0.925506f, 0.803144f, 0.680781f,
+      0.627530f, 0.512592f, 0.410860f, 0.288285f,
+      0.267442f, 0.181828f, 0.099998f, 0.063337f
+   },
+   /* Negative table */
+   {
+      -0.151028f, -0.953146f, -0.996102f, -0.588973f,
+      -0.502289f, -0.275030f, -0.186168f, -0.059472f
+   },
+},
+/* ABF2 Preview Normal Light */
+{
+   /* Red channel parameters */
+   {128, 144, 2256}, /* 12-bit pixels */
+   {0.3f, 0.026400f},
+   
+   /* Green channel parameters */
+   {128, 144, 2256}, /* 12-bit pixels */
+   {0.2f, 0.024479f},
+   {1.000000f, 1.000000f},
+   
+   /* Blue channel parameters */
+   {144, 160, 2256}, /* 12-bit pixels */
+   {0.3f, 0.025010f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 1.000000f, 0.896626f, 0.833813f,
+      0.689878f, 0.627066f, 0.451724f, 0.429440f,
+      0.265752f, 0.265752f, 0.126878f, 0.057442f
+   },
+   /* Negative table */
+   {
+      -0.282427f, -1.000000f, -0.882414f, -0.379537f,
+      -0.466732f, -0.207039f, -0.129689f, -0.037590f
+   },
+},
+/* ABF2 Preview Bright Light */
+{
+   /* Red channel parameters */
+   {112, 128, 2256}, /* 12-bit pixels */
+   {0.092583f, 0.027300f},
+   
+   /* Green channel parameters */
+   {112, 128, 2256}, /* 12-bit pixels */
+   {0.066815f, 0.025689f},
+   {1.000000f, 1.000000f},
+   
+   /* Blue channel parameters */
+   {128, 144, 2256}, /* 12-bit pixels */
+   {0.112181f, 0.025815f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 1.000000f, 0.961805f, 0.876025f,
+      0.799634f, 0.628074f, 0.551684f, 0.380124f,
+      0.319362f, 0.185243f, 0.140110f, 0.069203f
+   },
+   /* Negative table */
+   {
+      -0.244487f, -1.000000f, -0.868508f, -0.363774f,
+      -0.517083f, -0.184213f, -0.056177f, -0.083638f
+   },
+},
+
+/******************************************************************************/
+// Feature name : ABF2 Preview Low Light Trigger Points
+/******************************************************************************/
+
+/* ABF2 Preview Low Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : ABF2 Preview Bright Light Trigger Points
+/******************************************************************************/
+
+/* ABF2 Preview Bright Light Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : ABF2 Snapshot Low Light parameters
+/******************************************************************************/
+
+/* ABF2 Snapshot Low Light */
+{
+   /* Red channel parameters */
+   {480, 640, 2256}, /* 12-bit pixels */
+   {0.680000f, 0.000000f},
+   
+   /* Green channel parameters */
+   {480, 2240, 2256}, /* 12-bit pixels */
+   {0.550000f, 0.000000f},
+   {1.000000f, 1.000000f},
+   
+   /* Blue channel parameters */
+   {480, 528, 2256}, /* 12-bit pixels */
+   {0.880000f, 0.000000f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 0.925506f, 0.803144f, 0.680781f,
+      0.627530f, 0.512592f, 0.410860f, 0.288285f,
+      0.267442f, 0.181828f, 0.099998f, 0.063337f
+   },
+   /* Negative table */
+   {
+      -0.151028f, -0.953146f, -0.996102f, -0.588973f,
+      -0.502289f, -0.275030f, -0.186168f, -0.059472f
+   },
+},
+/* ABF2 Snapshot Normal Light */
+{
+   /* Red channel parameters */
+   {320, 480, 2256}, /* 12-bit pixels */
+   {0.550000f, 0.000000f},
+   
+   /* Green channel parameters */
+   {320, 2240, 2256}, /* 12-bit pixels */
+   {0.550000f, 0.000000f},
+   {1.000000f, 1.000000f},
+   
+   /* Blue channel parameters */
+   {368, 704, 2256}, /* 12-bit pixels */
+   {0.800000f, 0.000000f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 0.925506f, 0.803144f, 0.680781f,
+      0.627530f, 0.512592f, 0.410860f, 0.288285f,
+      0.267442f, 0.181828f, 0.099998f, 0.063337f
+   },
+   /* Negative table */
+   {
+      -0.151028f, -0.953146f, -0.996102f, -0.588973f,
+      -0.502289f, -0.275030f, -0.186168f, -0.059472f
+   },
+},
+/* ABF2 Snapshot Bright Light */
+{
+   /* Red channel parameters */
+   {128, 240, 2256}, /* 12-bit pixels */
+   {0.20583f, 0.027300f},
+   
+   /* Green channel parameters */
+   {128, 240, 2256}, /* 12-bit pixels */
+   {0.166815f, 0.025689f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {160, 320, 2256}, /* 12-bit pixels */
+   {0.3f, 0.020815f},
+   
+   /* Positive table */
+   {
+      1.000000f, 1.000000f, 1.000000f, 1.000000f,
+      1.000000f, 1.000000f, 0.961805f, 0.876025f,
+      0.799634f, 0.628074f, 0.551684f, 0.380124f,
+      0.319362f, 0.185243f, 0.140110f, 0.069203f
+   },
+   /* Negative table */
+   {
+      -0.244487f, -1.000000f, -0.868508f, -0.363774f,
+      -0.517083f, -0.184213f, -0.056177f, -0.083638f
+   },
+},
+
+/******************************************************************************/
+// Feature name : ABF2 Snapshot Low Light Trigger Points
+/******************************************************************************/
+
+/* ABF2 Snapshot Low Light Trigger Points */
+{
+   3.850000f, /* Gain Start */
+   4.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : ABF2 Snapshot Bright Light Trigger Points
+/******************************************************************************/
+
+/* ABF2 Snapshot Bright Light Trigger Points */
+{
+   1.800000f, /* Gain Start */
+   1.200000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/******************************************************************************/
+// feature name: auto flicker detection
+// variable name: chromatix_auto_flicker_detection_data_type
+// Parameters used for AFD algorithm
+// applicale chipset(s): MSM7xxx and QSD8xxx
+// applicable operation mode: VF
+//
+// chromatix_auto_flicker_detection_data_type.afd_std_threshold
+// default value:0.15
+// Used to determine if a periodic pattern is present. We measure the distance
+// between adjacent peaks and if the standard deviation of these distances is
+// smaller than the afd_std_threshold  value, it has periodic pattern,
+// ie. flicker detect flag is set.  This is part of the multi-peak algorithm.
+// data range:
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_percent_threshold
+// Used by the single peak algorithm only, which is under zoom.
+// The entire single peak algorithm is not needed if we are getting the row-sum stats from VFE HW.
+// Therefore, this parameter is only used for SW AFD solution.
+// Four frames (4 = AFD_NUM_FRAMES ?AFD_FRAME_SKIP ?1)
+// must have a peak present.  For flicker to be detected, the percentage of peak leading and
+// falling edges must be larger than this percentage.
+// default value:50
+// data range:
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_diff_threshold
+// Filtered Peak (diff between neighboring frames) value must be above this threshold to be considered a valid peak,
+// otherwise it is considered noise and is ignored.  When the view finder
+// window changes size, the threshold value should also be tuned.
+// The reason has to do with row sums are not calculated for every row but every other.
+// Tuning consists of finding a threshold value that detects the valid peaks while rejecting noise.
+// default value:90
+// data range:
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_frame_ct_threshold
+// Determines if the AFD process should start, afd_frame_ct_threshold
+// number of frames are skipped before commencing the AFD algorithm.
+// default value: 60
+// data range:
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_num_frames
+// This is the number of simultaneous frames to use in the AFD.
+// The frame information is saved and once this number is available the algorithm starts.
+// default value:6
+// data range:
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_frame_skip
+// Reflect frame skip pattern when collecting AFD STATs
+// default value: 1
+// data range: 0 to 4. 0 means to collect/analyze STAT for every frame. 1 means
+// to collect/analyze STATs every other frame.
+// constraints:
+// effect: we do not recommend user to change this parameter.
+//
+// chromatix_auto_flicker_detection_data_type.afd_num_rows
+// Image height when AFD STATS is collected
+// default value: VF image height
+// data range: 240 to VF image height
+// constraints:
+// effect: This value has to reflect the VF height
+//
+// chromatix_auto_flicker_detection_data_type.afd_num_frames_settle
+// Number of frames to wait after switching exposure tables
+// default value: 3
+// data range: 2 to 6
+// constraints:
+// effect: larger value will take longer time to complete AFD but allow plenty time for
+// exposure table change to settle .
+/******************************************************************************/
+
+/* Auto Flicker Detection */
+{
+   0.150000f, /* Standard Threshold */
+   50, /* Percent Threshold */
+   90, /* Difference Threshold */
+   60, /* Frame CT Threshold */
+   6, /* Number of Frames */
+   1, /* Frame Skip */
+   240, /* Number of Rows */
+   3, /* Numer of Frames Settle */
+},
+/* Auto Flicker Detection (8k) */
+{
+
+/******************************************************************************/
+// Feature name : Auto flicker detection config (8k)
+//
+// chromatix_rscs_stat_config_type.row_sum_enable
+// default value: 1
+// data range: 0 or 1, 0 means disable, 1 means enable.
+// constraints: N/A
+// effect: enabled or disable AFD STATs collection
+//
+// chromatix_rscs_stat_config_type.row_sum_hor_Loffset_ratio
+// Row sum window left offset/imageWidth ratio in horizontal direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels on the left side contributed to STATs
+//
+// chromatix_rscs_stat_config_type.row_sum_ver_Toffset_ratio
+// Row sum window top offset/imageWidth ratio in verticle direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels from the top of image contributed to STATs
+//
+// chromatix_rscs_stat_config_type.row_sum_hor_Roffset_ratio
+// Row sum window right offset/imageWidth ratio in horizontal direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels on the right side contributed to STATs
+//
+// chromatix_rscs_stat_config_type.row_sum_ver_Boffset_ratio
+// Row sum window bottom offset/imageWidth ratio in verticle direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels from the bottom of image contributed to STATs
+//
+// chromatix_rscs_stat_config_type.row_sum_V_subsample_ratio
+// Row sum vertical subsample ratio
+// default value: 1
+// data range: 1,2,3,4
+// constraints: integer
+// effect: larger value will have less STAT data
+//
+// chromatix_rscs_stat_config_type.col_sum_enable
+// default value: 0
+// data range: 0 or 1, 0 means disable, 1 means enable.
+// constraints: N/A
+// effect: enabled or disable column sum STATs collection
+//
+// chromatix_rscs_stat_config_type.col_sum_hor_Loffset_ratio
+// Col sum window left offset/imageWidth ratio in horizontal direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels on the left side contributed to STATs
+//
+// chromatix_rscs_stat_config_type.col_sum_ver_Toffset_ratio
+// Col sum window top offset/imageHeight ratio in verticle direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels from the top of image contributed to STATs
+//
+// chromatix_rscs_stat_config_type.col_sum_hor_Roffset_ratio
+// Col sum window right offset/imageWidth ratio in horizontal direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels on the left side contributed to STATs
+//
+// chromatix_rscs_stat_config_type.col_sum_ver_Boffset_ratio
+// Col sum window bottom offset/imageHeight ratio in verticle direction
+// default value: 0.0
+// data range: 0.0 to 0.9
+// constraints:
+// effect: larger value will have less pixels from the top of image contributed to STATs
+//
+// chromatix_rscs_stat_config_type.col_sum_H_subsample_ratio
+// Col sum horizontal subsample ratio
+// default value: 2
+// data range: 2,3,4
+// constraints: integer
+// effect: larger value will have less STAT data
+/******************************************************************************/
+
+   1, /* Row Sum Enable */
+   0.000000f, /* Row Sum Hor Loffset Ratio */
+   0.000000f, /* Row Sum Ver Toffset Ratio */
+   0.000000f, /* Row Sum Hor Roffset Ratio */
+   0.000000f, /* Row Sum Ver Loffset Batio */
+   1, /* Row Sum V Subsample Ratio */
+   0, /* Col Sum Enable */
+   0.000000f, /* Col Sum Hor Loffset Ratio */
+   0.000000f, /* Col Sum Ver Toffset Ratio */
+   0.000000f, /* Col Sum Hor Roffset Ratio */
+   0.000000f, /* Col Sum Ver Loffset Batio */
+   2, /* Col Sum H Subsample Ratio */
+},
+
+/******************************************************************************/
+// Feature name : AFD parameters
+// applicable chipset:  7k and 8k
+// 3A version: N/A
+// applicable operation mode: preview
+//
+// variable name: AFD_num_peaks_threshold
+// Minimum number of peaks are need for AFD algorithm to continue
+// default Value: 6
+// Data Range: 3 to 8
+// constraints: none
+// effect: higher value imposes higher requirement for flicker detection
+//
+// variable name: AFD_INTL_adj_factor
+// Determine how big a factor that INTL has to be away from band gap
+// when creating exp table for AFD
+// default Value: 0.25
+// Data Range: 0 to 0.45
+// constraints: none
+// effect: higher value is easier for flicker to be detected
+/******************************************************************************/
+
+6, /* Num Peaks Threshold */
+0.250000f, /* INTL Adjust Factor */
+
+/*********************************************************************/
+// Comment
+// Fmin and Fmax are used for bad pixel correction (BPC).
+// These are used for preview.
+// Range: 1 to 127.
+// Constraint: Fmax > Fmin.
+// Effect: Smaller Fmin and higher Fmax will have least amount of correction.
+//        Setting Fmax=Fmin will have the max amount of correction.
+/*********************************************************************/
+
+32, /* Preview Fmin */
+96, /* Preview Fmax */
+64, /* Preview Lowlight Fmin */
+64, /* Preview Lowlight Fmax */
+
+/*********************************************************************/
+// Feature name : bad pixel correction parameters for snapshot
+// Fmin and Fmax are used for bad pixel correction (BPC).
+// These are used for snapshot.
+// Range: 1 to 127.
+// Constraint: Fmax > Fmin.
+// Effect: Smaller Fmin and higher Fmax will have least amount of correction.
+//        Setting Fmax=Fmin will have the max amount of correction.
+/*********************************************************************/
+
+32, /* Snapshot Fmin */
+96, /* Snapshot Fmax */
+64, /* Snapshot Lowlight Fmin */
+64, /* Snapshot Lowlight Fmax */
+
+/*********************************************************************/
+// Feature name :
+// The following BPC parameters are used for QSD8x50, QSC6270(6240), QSC6295,MSM7x25, MSM7x27.
+//
+/*********************************************************************/
+
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control BPC.
+// Range: 0 or 1.
+// 0 means to use lux_index to control.
+// 1 means to use gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot BPC.
+// gain start :
+// When gain >= gain_start, lowlight BPC is interpolated with normal BPC.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight BPC under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight BPC is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight BPC under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight BPC is interpolated with normal BPC.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight BPC under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight BPC is used.
+// Range: for linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight BPC under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+/* Diff Thresholds */
+{
+
+/*********************************************************************/
+// Feature name :
+// The following BPC parameters are used for QSD8x50, QSC6270(6240), QSC6295,MSM7x25, MSM7x27.
+// BPC threshold for snapshot under normal light.
+// Range: 0 to 4095.
+// Effect: Smaller value will have stronger correction.
+/*********************************************************************/
+
+   /* Normal Light */
+   {
+      20, /* Red Difference Threshold */
+      20, /* Green Difference Threshold */
+      20, /* Blue Difference Threshold */
+   },
+
+/*********************************************************************/
+// Feature name :
+// The following BPC parameters are used for QSD8x50, QSC6270(6240), QSC6295, MSM7x25, MSM7x27.
+// BPC threshold for snapshot under lowlight.
+// Range: 0 to 4095.
+// Effect: Smaller value will have stronger correction.
+/*********************************************************************/
+
+   /* Low-Light */
+   {
+      2, /* Low-Light Red Difference Threshold */
+      2, /* Low-Light Green Difference Threshold */
+      2, /* Low-Light Blue Difference Threshold */
+   },
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for viewfinder BPC.
+// gain start:
+// When gain >= gain_start, lowlight BPC is interpolated with normal BPC.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight BPC under lower light condition.
+//
+// gain end:
+// wWen gain >= gain_end, 100% lowlight BPC is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight BPC under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight BPC is interpolated with normal BPC.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight BPC under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight BPC is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight BPC under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+/* Diff Thresholds */
+{
+
+/*********************************************************************/
+// Feature name :
+// The following BPC parameters are used for QSD8x50, QSC6270(6240), QSC6295,MSM7x25, MSM7x27.
+// BPC threshold for viewfinder under normal light.
+// Range: 0 to 4095.
+// Effect: Smaller value will have stronger correction.
+/*********************************************************************/
+
+   /* Normal Light */
+   {
+      25, /* Red Difference Threshold */
+      25, /* Green Difference Threshold */
+      25, /* Blue Difference Threshold */
+   },
+
+/*********************************************************************/
+// Feature name :
+// The following BPC parameters are used for QSD8x50, QSC6270(6240), QSC6295,MSM7x25, MSM7x27.
+// BPC threshold for viewfinder under low light.
+// Range: 0 to 4095.
+// Effect: Smaller value will have stronger correction.
+/*********************************************************************/
+
+   /* Low-Light */
+   {
+      2, /* Low-Light Red Difference Threshold */
+      2, /* Low-Light Green Difference Threshold */
+      2, /* Low-Light Blue Difference Threshold */
+   },
+},
+
+/******************************************************************************/
+// Feature name : bad pixel correction.
+// Applicable chipset:  MSM7x30, QSD8x60 and later.
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: bpc_offset_r_hi.
+// Red channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_r_hi >= bpc_offset_r_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_r_lo.
+// Red channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_r_hi >= bpc_offset_r_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_gr_hi.
+// Green (next to red) channel pixel difference higher offset value
+// Default Value: 0.
+// Data Range: 0 to 1023.
+// Constraints: bpc_offset_gr_hi >= bpc_offset_gr_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_gr_lo.
+// Green (next to red) channel pixel difference lower offset value
+// Default Value: 0.
+// Data Range: 0 to 1023.
+// Constraints: bpc_offset_gr_hi >= bpc_offset_gr_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_gb_hi.
+// Green (next to blue) channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_gb_hi >= bpc_offset_gb_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_gb_lo.
+// Green (next to blue) channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_gb_hi >= bpc_offset_gb_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// Variable name: bpc_offset_b_hi.
+// Blue channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_b_hi >= bpc_offset_b_lo.
+// Effect: Higher value results in less DPC to be corrected.
+//
+// variable name: bpc_offset_b_lo.
+// Description:  Blue channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bpc_offset_b_hi >= bpc_offset_b_lo.
+// Effect: Higher value results in less DPC to be corrected.
+/******************************************************************************/
+
+/* Snapshot */
+{
+   /* Normal Light */
+   {
+      20, /* R Hi */
+      20, /* R Lo */
+      20, /* Gr Hi */
+      20, /* Gr Lo */
+      20, /* Gb Hi */
+      20, /* Gb Lo */
+      20, /* B Hi */
+      20, /* B Lo */
+   },
+   /* Low Light */
+   {
+      2, /* R Hi */
+      2, /* R Lo */
+      2, /* Gr Hi */
+      2, /* Gr Lo */
+      2, /* Gb Hi */
+      2, /* Gb Lo */
+      2, /* B Hi */
+      2, /* B Lo */
+   },
+},
+/* Preview */
+{
+   /* Normal Light */
+   {
+      20, /* R Hi */
+      20, /* R Lo */
+      20, /* Gr Hi */
+      20, /* Gr Lo */
+      20, /* Gb Hi */
+      20, /* Gb Lo */
+      20, /* B Hi */
+      20, /* B Lo */
+   },
+   /* Low Light */
+   {
+      2, /* R Hi */
+      2, /* R Lo */
+      2, /* Gr Hi */
+      2, /* Gr Lo */
+      2, /* Gb Hi */
+      2, /* Gb Lo */
+      2, /* B Hi */
+      2, /* B Lo */
+   },
+},
+
+/******************************************************************************/
+// Feature name : bad cluster correction (BCC)
+/******************************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : BCC lowlight trigger points for snapshot
+/******************************************************************************/
+
+/* Snapshot Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : BCC lowlight trigger points for preview
+/******************************************************************************/
+
+/* Preview Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : BCC ratio parameters
+// Applicable chipset:  8960 and later.
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: bcc_Fmin_preview.
+//   Ratio for setting threshold for cold cluster detection.
+//   Criteria for cold cluster detection is considered as:
+//   pixel_value < bcc_Fmin_preview * minimum_of_neighboring_pixel_values - offset.
+// Default value: 32.
+// Data range: 0 to 255.
+// Constraints: bcc_Fmax_preview >= bcc_Fmin_preview
+// Effect: Higher value results in more BCC to be corrected
+//
+// Variable name: bcc_Fmax_preview.
+//   Ratio for setting threshold for hot cluster detection
+//   Criteria for hot cluster detection is considered as:
+//   pixel_value > bcc_Fmin_preview * maximum_of_neighboring_pixel_values + offset.
+// Default value: 96.
+// Data range: 0 to 255.
+// Constraints: bcc_Fmax_preview >= bcc_Fmin_preview.
+// Effect: Higher value results in less BCC to be corrected.
+/******************************************************************************/
+
+32, /* Preview Fmin */
+96, /* Preview Fmax */
+32, /* Preview Lowlight Fmin */
+96, /* Preview Lowlight Fmax */
+32, /* Snapshot Fmin */
+96, /* Snapshot Fmax */
+32, /* Snapshot Lowlight Fmin */
+96, /* Snapshot Lowlight Fmax */
+
+/******************************************************************************/
+// Feature name : BCC offset parameters
+// Applicable chipset:  8960 and later.
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: bcc_offset_r_hi.
+// Red channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_r_hi >= bcc_offset_r_lo.
+// Effect: Higher value results in less BCC to be corrected
+//
+// Variable name: bcc_offset_r_lo.
+// Red channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_r_hi >= bcc_offset_r_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_gr_hi.
+// Green(next to red) channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_gr_hi >= bcc_offset_gr_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_gr_lo.
+// Green(next to red) channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_gr_hi >= bcc_offset_gr_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_gb_hi.
+// Green (next to blue) channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_gb_hi >= bcc_offset_gb_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_gb_lo.
+// Green (next to blue) channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_gb_hi >= bcc_offset_gb_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_b_hi.
+// Blue channel pixel difference higher offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_b_hi >= bcc_offset_b_lo.
+// Effect: Higher value results in less DCC to be corrected.
+//
+// Variable name: bcc_offset_b_lo.
+// Blue channel pixel difference lower offset value.
+// Default value: 0.
+// Data range: 0 to 1023.
+// Constraints: bcc_offset_b_hi >= bcc_offset_b_lo.
+// Effect: Higher value results in less DCC to be corrected.
+/******************************************************************************/
+
+/* Snapshot */
+{
+   /* Normal Light */
+   {
+      0, /* R Hi */
+      0, /* R Lo */
+      0, /* Gr Hi */
+      0, /* Gr Lo */
+      0, /* Gb Hi */
+      0, /* Gb Lo */
+      0, /* B Hi */
+      0, /* B Lo */
+   },
+   /* Low Light */
+   {
+      0, /* R Hi */
+      0, /* R Lo */
+      0, /* Gr Hi */
+      0, /* Gr Lo */
+      0, /* Gb Hi */
+      0, /* Gb Lo */
+      0, /* B Hi */
+      0, /* B Lo */
+   },
+},
+/* Preview */
+{
+   /* Normal Light */
+   {
+      0, /* R Hi */
+      0, /* R Lo */
+      0, /* Gr Hi */
+      0, /* Gr Lo */
+      0, /* Gb Hi */
+      0, /* Gb Lo */
+      0, /* B Hi */
+      0, /* B Lo */
+   },
+   /* Low Light */
+   {
+      0, /* R Hi */
+      0, /* R Lo */
+      0, /* Gr Hi */
+      0, /* Gr Lo */
+      0, /* Gb Hi */
+      0, /* Gb Lo */
+      0, /* B Hi */
+      0, /* B Lo */
+   },
+},
+
+/******************************************************************************/
+// Feature name : Demosaic3.
+/******************************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Demosaic3 lowlight trigger points for preview
+/******************************************************************************/
+
+/* Preview Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name: Demosaic3.
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+// 3A mode: N/A.
+//
+// Variable name: wk[18] // HW: 10uQ10
+// Discrete adaboost parameters required for local window classification.
+// Default value: {0.1338, 0.0889, 0.0889, 0.9990, 0.9004, 0.0908, 0.1904,
+// 0.0967, 0.0625, 0.3115, 0.1924, 0.0859, 0.0820, 0.1064,  0.1475, 0.0957,
+// 0.0645, 0.0742}.
+// Range for each element in 18-D array: [0,1.0].
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: bk[18]  // HW: 1uQ0
+// Discrete adaboost parameters required for local window classification.
+// Default: {1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1}.
+// Range for each element in 18-D array: {0,1}.
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: lk[18]  // HW: 4uQ0
+// Discrete adaboost parameters required for local window classification.
+// Default value: {0, 0, 1, 2, 2, 3, 9, 9, 9, 4, 4, 5, 6, 7, 8, 8, 10, 10}.
+// Range for each element in 18-D array is {0, 1, ..., 12}.
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: Tk[18]  // HW: 10sQ0
+// Discrete adaboost parameters required for local window classification.
+// Default:     {2, 1, 0, 0, -1, 2, 0, -1, 1, 0, -1, 2, 0, 2, 2, 1, 0, 100}.
+// Range for each element in 18-D array {-512, ..., 511}
+// The classification parameters are optimized in an offline training process.
+// Once the parameters are optimized, they remain fixed.
+/******************************************************************************/
+
+/* Demosaic LUT */
+{
+   /* wk */
+   {
+      0.133800f, 0.088900f, 0.088900f, 0.999000f, 0.900400f, 0.090800f, 0.190400f, 0.096700f, 0.062500f,
+      0.311500f, 0.192400f, 0.085900f, 0.082000f, 0.106400f, 0.147500f, 0.095700f, 0.064500f, 0.074200f
+   },
+   /* bk */
+   {
+      1, 0, 1, 1, 0, 1, 1, 0, 0,
+      1, 0, 1, 1, 1, 1, 0, 1, 1
+   },
+   /* lk */
+   {
+      0, 0, 1, 2, 2, 3, 9, 9, 9,
+      4, 4, 5, 6, 7, 8, 8, 10, 10
+   },
+   /* Tk */
+   {
+      2, 1, 0, 0, -1, 2, 0, -1, 1,
+      0, -1, 2, 0, 2, 2, 1, 0, 100
+   },
+},
+
+/******************************************************************************/
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+// 3A mode: N/A.
+//
+// Variable names: demosic3_aG_snapshot[2],demosic3_aG_preview[2] //HW: 6uQ6
+// Green-channel interpolation parameter (2 light conditions).
+// Default value: 0.4 (for each light condition).
+// Range: [0.3,0.5].
+// This parameter is used to control the tradeoff between noise
+// suppression and aliasing. A higher value of this variable provides more
+// noise suppression but, on the negative side, leads to higher aliasing.
+// For best performance, this parameter should be optimized separately for
+// low, medium, and high lux-index levels. The default value shown above works
+// reasonably well for all lux-index levels, and for both snapshot and
+// viewfinder modes.
+//
+// Variable names: demosic3_bL_snapshot[2],demosic3_bL_preview[2] //HW: 8uQ8
+// Green-channel interpolation parameter (2 light conditions).
+// Default value: 0.0 (for each light condition).
+// Range: [0,0.46].
+// In general, a low value of this parameter provides better noise
+// suppression while a high value of bL provides better detail preservation.
+// For best performance, the parameters should be optimized separately for low,
+// medium, and high lux-index levels. The default value shown above works
+// reasonably well for all lux-index levels and for both preview and snapshot
+// modes.
+/******************************************************************************/
+
+/* aG */
+{
+   0.400000f, /* aG[0] */
+   0.400000f, /* aG[1] */
+},
+/* bL */
+{
+   0.000000f, /* bL[0] */
+   0.000000f, /* bL[1] */
+},
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Demosaic3 lowlight trigger points for snapshot
+/******************************************************************************/
+
+/* SNAP Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name: Demosaic3.
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+// 3A mode: N/A.
+//
+// Variable name: wk[18] // HW: 10uQ10
+// Discrete adaboost parameters required for local window classification.
+// Default value: {0.1338, 0.0889, 0.0889, 0.9990, 0.9004, 0.0908, 0.1904,
+// 0.0967, 0.0625, 0.3115, 0.1924, 0.0859, 0.0820, 0.1064,  0.1475, 0.0957,
+// 0.0645, 0.0742}.
+// Range for each element in 18-D array: [0,1.0].
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: bk[18]  // HW: 1uQ0
+// Discrete adaboost parameters required for local window classification.
+// Default: {1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1}.
+// Range for each element in 18-D array: {0,1}.
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: lk[18]  // HW: 4uQ0
+// Discrete adaboost parameters required for local window classification.
+// Default value: {0, 0, 1, 2, 2, 3, 9, 9, 9, 4, 4, 5, 6, 7, 8, 8, 10, 10}.
+// Range for each element in 18-D array is {0, 1, ..., 12}.
+// The classification parameters are optimized in an offline
+// training process. Once the parameters are optimized, they remain fixed.
+//
+// Variable name: Tk[18]  // HW: 10sQ0
+// Discrete adaboost parameters required for local window classification.
+// Default:     {2, 1, 0, 0, -1, 2, 0, -1, 1, 0, -1, 2, 0, 2, 2, 1, 0, 100}.
+// Range for each element in 18-D array {-512, ..., 511}
+// The classification parameters are optimized in an offline training process.
+// Once the parameters are optimized, they remain fixed.
+/******************************************************************************/
+
+/* Demosaic LUT */
+{
+   /* wk */
+   {
+      0.133800f, 0.088900f, 0.088900f, 0.999000f, 0.900400f, 0.090800f, 0.190400f, 0.096700f, 0.062500f,
+      0.311500f, 0.192400f, 0.085900f, 0.082000f, 0.106400f, 0.147500f, 0.095700f, 0.064500f, 0.074200f
+   },
+   /* bk */
+   {
+      1, 0, 1, 1, 0, 1, 1, 0, 0,
+      1, 0, 1, 1, 1, 1, 0, 1, 1
+   },
+   /* lk */
+   {
+      0, 0, 1, 2, 2, 3, 9, 9, 9,
+      4, 4, 5, 6, 7, 8, 8, 10, 10
+   },
+   /* Tk */
+   {
+      2, 1, 0, 0, -1, 2, 0, -1, 1,
+      0, -1, 2, 0, 2, 2, 1, 0, 100
+   },
+},
+
+/******************************************************************************/
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+// 3A mode: N/A.
+//
+// Variable names: demosic3_aG_snapshot[2],demosic3_aG_preview[2] //HW: 6uQ6
+// Green-channel interpolation parameter (2 light conditions).
+// Default value: 0.4 (for each light condition).
+// Range: [0.3,0.5].
+// This parameter is used to control the tradeoff between noise
+// suppression and aliasing. A higher value of this variable provides more
+// noise suppression but, on the negative side, leads to higher aliasing.
+// For best performance, this parameter should be optimized separately for
+// low, medium, and high lux-index levels. The default value shown above works
+// reasonably well for all lux-index levels, and for both snapshot and
+// viewfinder modes.
+//
+// Variable names: demosic3_bL_snapshot[2],demosic3_bL_preview[2] //HW: 8uQ8
+// Green-channel interpolation parameter (2 light conditions).
+// Default value: 0.0 (for each light condition).
+// Range: [0,0.46].
+// In general, a low value of this parameter provides better noise
+// suppression while a high value of bL provides better detail preservation.
+// For best performance, the parameters should be optimized separately for low,
+// medium, and high lux-index levels. The default value shown above works
+// reasonably well for all lux-index levels and for both preview and snapshot
+// modes.
+/******************************************************************************/
+
+/* aG */
+{
+   0.400000f, /* aG[0] */
+   0.400000f, /* aG[1] */
+},
+/* bL */
+{
+   0.000000f, /* bL[0] */
+   0.000000f, /* bL[1] */
+},
+
+/******************************************************************************/
+// Feature name : Chroma filter parameters for preview.
+/******************************************************************************/
+
+1, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Chroma filter lowlight trigger points for preview.
+/******************************************************************************/
+
+/* Preview Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : Chroma filter.
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+//  3A mode: N/A.
+//
+// Variable name: h[4]
+// Horizontal component of separable Gaussian filter.
+// Default value : {0.1429, 0.1429, 0.1429, 0.142}.
+// Range of each component of array: [0,1.0].
+// Constraints: h[0]>=h[1] >=h[2] >=h[3]; h[0]+2*h[1]+2*h[2]+2*h[3] = 1.
+// Effect: Smoothing amount decreaes as h[1], h[2], and h[3] get smaller.
+// The default value shown above works great for all lux-index levels,
+// and for both viewfinder and snapshot modes. However, for greater
+// flexibility, current recommendation is to tune it separately for different
+// lux-index levels.
+//
+// Variable name: v[2]
+// Vertical component of separable Gaussian filter.
+// Default value: {0.3333, 0.3333}.
+// Range of each component of array [0,1.0].
+// Constraints: v[0]>=v[1]; v[0]+2*v[1] = 1.
+// Effect: Smoothing amount decreases as v[1] gets smaller.
+// The default value shown above works great for all lux-index levels and
+// for both viewfinder and snapshot modes. However, for greater flexibility,
+// current recommendation is to tune it separately for different lux-index
+// levels.
+/******************************************************************************/
+
+/* Filters */
+{
+   /* Lowlight Chroma Filter */
+   {
+      /* H */
+      {
+         0.142857f, 0.142857f, 0.142857f, 0.142857f
+      },
+      /* V */
+      {
+         0.333333f, 0.333333f
+      },
+   },
+   /* Normal Light Chroma Filter */
+   {
+      /* H */
+      {
+         0.142857f, 0.142857f, 0.142857f, 0.142857f
+      },
+      /* V */
+      {
+         0.333333f, 0.333333f
+      },
+   },
+},
+1, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : Chroma filter lowlight trigger points for snapshot.
+/******************************************************************************/
+
+/* SNAP Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : Chroma filter.
+// Applicale chipset(s): 8960, 8x55A and later chipsets.
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+//  3A mode: N/A.
+//
+// Variable name: h[4]
+// Horizontal component of separable Gaussian filter.
+// Default value : {0.1429, 0.1429, 0.1429, 0.142}.
+// Range of each component of array: [0,1.0].
+// Constraints: h[0]>=h[1] >=h[2] >=h[3]; h[0]+2*h[1]+2*h[2]+2*h[3] = 1.
+// Effect: Smoothing amount decreaes as h[1], h[2], and h[3] get smaller.
+// The default value shown above works great for all lux-index levels,
+// and for both viewfinder and snapshot modes. However, for greater
+// flexibility, current recommendation is to tune it separately for different
+// lux-index levels.
+//
+// Variable name: v[2]
+// Vertical component of separable Gaussian filter.
+// Default value: {0.3333, 0.3333}.
+// Range of each component of array [0,1.0].
+// Constraints: v[0]>=v[1]; v[0]+2*v[1] = 1.
+// Effect: Smoothing amount decreases as v[1] gets smaller.
+// The default value shown above works great for all lux-index levels and
+// for both viewfinder and snapshot modes. However, for greater flexibility,
+// current recommendation is to tune it separately for different lux-index
+// levels.
+/******************************************************************************/
+
+/* Filters */
+{
+   /* Lowlight Chroma Filter */
+   {
+      /* H */
+      {
+         0.142857f, 0.142857f, 0.142857f, 0.142857f
+      },
+      /* V */
+      {
+         0.333333f, 0.333333f
+      },
+   },
+   /* Normal Light Chroma Filter */
+   {
+      /* H */
+      {
+         0.142857f, 0.142857f, 0.142857f, 0.142857f
+      },
+      /* V */
+      {
+         0.333333f, 0.333333f
+      },
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter lowlight parameters for preview.
+/******************************************************************************/
+
+/* Luma Filter Preview Low Light */
+{
+   /* Red channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+
+   /* Green channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter normal light parameters for preview.
+/******************************************************************************/
+
+/* Luma Filter Preview Normal Light */
+{
+   /* Red channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+
+   /* Green channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter bright light parameters for preview.
+/******************************************************************************/
+
+/* Luma Filter Preview Bright Light */
+{
+   /* Red channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+
+   /* Green channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter low light trigger points for preview.
+/******************************************************************************/
+
+/* Preview Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : Luma filter bright light trigger points for preview.
+/******************************************************************************/
+
+/* Preview Bright Light Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : Luma filter low light parameters for snapshot.
+/******************************************************************************/
+
+/* Luma Filter Snapshot Low Light */
+{
+   /* Red channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+
+   /* Green channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {384, 384, 400}, /* 12-bit pixels */
+   {0.800000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter normal light parameters for snapshotw.
+/******************************************************************************/
+
+/* Luma Filter Snapshot Normal Light */
+{
+   /* Red channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+
+   /* Green channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {336, 336, 352}, /* 12-bit pixels */
+   {0.680000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter bright light parameters for snapshot.
+/******************************************************************************/
+
+/* Luma Filter Snapshot Bright Light */
+{
+   /* Red channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+
+   /* Green channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+   {1.000000f, 1.000000f},
+
+   /* Blue channel parameters */
+   {288, 288, 304}, /* 12-bit pixels */
+   {0.500000f, 0.040000f},
+
+   /* Positive table */
+   {
+      1.000000f, 0.976400f, 0.921400f, 0.834600f,
+      0.724400f, 0.606300f, 0.488200f, 0.378000f,
+      0.275600f, 0.196900f, 0.133900f, 0.086600f,
+      0.055100f, 0.031500f, 0.023600f, 0.007900f
+   },
+   /* Negative table */
+   {
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f,
+      -1.000000f, -1.000000f, -1.000000f, -1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Luma filter low light trigger points for snapshot.
+/******************************************************************************/
+
+/* SNAP Low-Light Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name : Luma filter bright light trigger points for snapshot.
+/******************************************************************************/
+
+/* SNAP Bright Light Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+
+/******************************************************************************/
+// Feature name: Wavelet denoise
+// Variable name: referencePatchAverageValue.
+// Average value of a gray patch.
+// Applicable chipset:  N/A.
+// 3A version: N/A.
+// Applicable operation mode:  Snapshot.
+// Default value: 0.
+// Data range: 0-255.
+//
+// Variable name: referenceNoiseProfileData.
+// Noise profile(std) of an gray patch.
+// Applicable chipset:  N/A.
+// 3A version: N/A.
+// Applicable operation mode:  snapshot.
+// Default value: 0.
+// Data range: 0-255.
+/******************************************************************************/
+
+/* Reference Noise */
+{
+   /* Noise Profile 1 */
+   {
+      226.525391f, /* Reference Patch Average Value */
+      {
+         2.532038f, 4.443043f, 6.130509f, 7.586466f, 1.624040f, 2.803521f, 4.726257f, 6.096328f,
+         0.442887f, 0.252171f, 2.367145f, 5.000000f, 0.208381f, 0.104244f, 1.035458f, 3.160974f,
+         0.376167f, 0.337723f, 1.881185f, 4.527854f, 0.179402f, 0.100253f, 1.065154f, 3.815082f
+      },
+   },
+   /* Noise Profile 2 */
+   {
+      196.415146f, /* Reference Patch Average Value */
+      {
+         3.000735f, 5.355331f, 6.624536f, 9.827321f, 1.995335f, 3.320261f, 6.853492f, 8.645457f,
+         0.297342f, 0.464252f, 2.153743f, 5.000000f, 0.114131f, 0.146436f, 0.849602f, 3.826010f,
+         0.433145f, 0.681560f, 2.570202f, 5.000000f, 0.144961f, 0.139577f, 1.625554f, 4.846186f
+      },
+   },
+   /* Noise Profile 3 */
+   {
+      158.953583f, /* Reference Patch Average Value */
+      {
+         3.591848f, 5.293681f, 7.099882f, 7.710014f, 2.480871f, 3.654066f, 6.921445f, 7.823184f,
+         0.474284f, 0.467992f, 2.110780f, 5.570985f, 0.240839f, 0.115471f, 1.103107f, 5.538761f,
+         0.521821f, 0.591200f, 2.498274f, 6.666667f, 0.278903f, 0.135579f, 0.981972f, 3.820898f
+      },
+   },
+   /* Noise Profile 4 */
+   {
+      112.671349f, /* Reference Patch Average Value */
+      {
+         4.399601f, 7.234172f, 8.368217f, 9.918022f, 2.704043f, 5.023628f, 9.638922f, 8.723822f,
+         0.407542f, 0.622565f, 2.596448f, 6.263378f, 0.146967f, 0.186849f, 1.105892f, 6.189838f,
+         0.484508f, 0.725230f, 3.283919f, 6.666667f, 0.186673f, 0.223018f, 1.618196f, 6.666667f
+      },
+   },
+   /* Noise Profile 5 */
+   {
+      63.816704f, /* Reference Patch Average Value */
+      {
+         6.055698f, 9.176511f, 10.465139f, 12.545948f, 3.742443f, 7.093024f, 9.986029f, 10.005567f,
+         0.568670f, 0.557087f, 3.905747f, 7.825067f, 0.257783f, 0.204062f, 2.108983f, 4.683286f,
+         0.617738f, 0.586994f, 4.679248f, 7.230753f, 0.296050f, 0.196597f, 1.996458f, 5.579706f
+      },
+   },
+   /* Noise Profile 6 */
+   {
+      26.983788f, /* Reference Patch Average Value */
+      {
+         4.962178f, 7.876689f, 8.944688f, 12.110589f, 2.970979f, 5.083328f, 9.960836f, 6.125922f,
+         0.553159f, 0.778350f, 4.237254f, 10.000000f, 0.234514f, 0.205532f, 1.425097f, 8.887547f,
+         0.484374f, 0.696925f, 3.444722f, 9.781006f, 0.204087f, 0.199880f, 1.490045f, 7.617243f
+      },
+   },
+},
+
+/******************************************************************************/
+// Variable name: denoise_scale.
+// Description:  denoise level.
+// Applicable chipset:  N/A
+// 3A version: N/A
+// Applicable operation mode:  snapshot.
+// Default value: 3.
+// Data range: 1-7.99
+// Effect: Increase noise_scale to denoise more.
+/******************************************************************************/
+
+3.000000f, /* Denoise Scale */
+
+/******************************************************************************/
+// Variable name: ref_gain.
+// Total gain used for the reference image used for calibration.
+// Applicable chipset:  N/A.
+// 3A version: N/A.
+// Applicable operation mode: Snapshot.
+// Default value: 1.
+// Data range: min gain to max gain.
+/******************************************************************************/
+
+1.000000f, /* Reference Gain */
+
+/******************************************************************************/
+// Variable name: wavelet_enable_index.
+// lux_index threshold above which the wavelet denoise is applied.
+// Applicable chipset:  N/A.
+// 3A version: N/A
+// Applicable operation mode: Snapshot.
+// default Value: 1.
+// Data Range: 1 to max_exp_index.
+// Effect: Larger value results in pictures less likely to undergo wavelet denoise.
+/******************************************************************************/
+
+1, /* Enable Index */
+
+/******************************************************************************/
+// Feature name : linearization for both preview and snapshot.
+/******************************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : linearization bright light trigger point.
+/******************************************************************************/
+
+/* Bright Light Trigger Points */
+{
+   2.000000f, /* Gain Start */
+   1.000000f, /* Gain End */
+   175, /* Lux Index Start */
+   157, /* Lux Index End */
+},
+/* A CCT Trigger */
+{
+   3500, /* Start */
+   3200, /* End */
+},
+/* D65 CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+
+/******************************************************************************/
+// Feature name: Linearization.
+// Applicale chipset(s): MSM8960 (Waverider), MSM8660A (Aurora), (Badger).
+// Applicable operation mode:
+//     Viewfinder, snapshot processing, and video modes.
+//
+// Note: For MSM8960, it needs only one set of the following variables;
+//       For MSM8660A and Badger with native 3D support, it needs two sets of
+//       the following variables -- one set for the left image (default set when
+//       3D support is off) and another set for the right image.
+//
+// variable name: r_lut_p[8];  // HW: 12uQ0
+//  Input knee points of the 9 segments (0, 1, ..., 8) of the linearization
+//  curve of R channel, with segment 0 knee point defaulted to 0 hence excluded
+//  from the list.
+// Default value: {(black_level), (4095 - black_level) / 8 + black_level, ...,
+//                 7 * (4095 - black_level) / 8} + black_level}.
+// Data range: 0 to 4095.
+// Effect: Changing knee points changes the shape of the linearization curve.
+//
+// Variable name: r_lut_base[9];  // HW: 12uQ0
+//  Output base values at the starting point of the 9 segments of the
+//  linearization curve of R channel.
+// Default value: {0, 0, (4095 - black_level) / 8, ...,
+//                 7 * (4095 - black_level) / 8}.
+// Data range: 0 to 4095.
+// Effect: Changing base points changes the shape of the linearization curve.
+//
+// Variable name: r_lut_delta[9];  // HW: 18uQ9
+//  Slopes of the 9 segments of the linearization curve of R channel.
+// Default value: {0, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9}.
+// Data range: 0.0 to 511.99.
+// Effect: Changing slopes changes the shape of the linearization curve.
+//
+// Variable name: gr_lut_p[8];  // HW: 12uQ0
+//  Input knee points of the 9 segments (0, 1, ..., 8) of the linearization
+//  curve of Gr channel, with segment 0 knee point defaulted to 0 hence excluded
+//  from the list.
+// default value: {(black_level), (4095 - black_level) / 8 + black_level, ...,
+//                 7 * (4095 - black_level) / 8} + black_level}.
+// Data range: 0 to 4095.
+// Effect: Changing knee points changes the shape of the linearization curve.
+//
+// Variable name: gr_lut_base[9];  // HW: 12uQ0
+//  Output base values at the starting point of the 9 segments of the
+//  linearization curve of Gr channel.
+// Default value: {0, 0, (4095 - black_level) / 8, ...,
+//                 7 * (4095 - black_level) / 8}.
+// Data range: 0 to 4095.
+// Effect: Changing base points changes the shape of the linearization curve.
+//
+// Variable name: gr_lut_delta[9];  // HW: 18uQ9
+//  Slopes of the 9 segments of the linearization curve of Gr channel.
+// Default value: {0, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9}.
+// Data range: 0.0 to 511.99.
+// Effect: Changing slopes changes the shape of the linearization curve.
+//
+// Variable name: gb_lut_p[8];  // HW: 12uQ0
+//  Input knee points of the 9 segments (0, 1, ..., 8) of the linearization
+//  curve of Gb channel, with segment 0 knee point defaulted to 0 hence excluded
+//  from the list.
+// Default value: {(black_level), (4095 - black_level) / 8 + black_level, ...,
+//                 7 * (4095 - black_level) / 8} + black_level}.
+// Data range: 0 to 4095.
+// Effect: Changing knee points changes the shape of the linearization curve.
+//
+// Variable name: gb_lut_base[9];  // HW: 12uQ0
+//  Output base values at the starting point of the 9 segments of the
+//  linearization curve of Gb channel.
+// Default value: {0, 0, (4095 - black_level) / 8, ...,
+//                 7 * (4095 - black_level) / 8}.
+// Data range: 0 to 4095.
+// Effect: Changing base points changes the shape of the linearization curve.
+//
+// Variable name: gb_lut_delta[9];  // HW: 18uQ9
+//  Slopes of the 9 segments of the linearization curve of Gb channel.
+// Default value: {0, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9}.
+// Data range: 0.0 to 511.99.
+// Effect: Changing slopes changes the shape of the linearization curve.
+//
+// Variable name: b_lut_p[8];  // HW: 12uQ0
+//  Input knee points of the 9 segments (0, 1, ..., 8) of the linearization
+//  curve of B channel, with segment 0 knee point defaulted to 0 hence excluded
+//  from the list.
+// Default value: {(black_level), (4095 - black_level) / 8 + black_level, ...,
+//                 7 * (4095 - black_level) / 8} + black_level}.
+// Data range: 0 to 4095.
+// Effect: Changeing knee points changes the shape of the linearization curve.
+//
+// Variable name: b_lut_base[9];  // HW: 12uQ0
+//  Output base values at the starting point of the 9 segments of the
+//  linearization curve of B channel.
+// Default value: {0, 0, (4095 - black_level) / 8, ...,
+//                 7 * (4095 - black_level) / 8}.
+// Data range: 0 to 4095.
+// Effect: Changing base points changes the shape of the linearization curve.
+//
+// Variable name: b_lut_delta[9];  // HW: 18uQ9
+//  Slopes of the 9 segments of the linearization curve of B channel
+// Default value: {0, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9, 512Q9}.
+// Data range: 0.0 to 511.99.
+// Effect: Changing slopes changes the shape of the linearization curve.
+//
+/******************************************************************************/
+
+/* A Bright Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+/* A Normal Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+/* TL84 Bright Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+/* TL84 Normal Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+/* D65 Bright Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+/* D65 Normal Light */
+{
+   /* Red */
+   {
+      67, 192, 318, 444, 570, 1074, 3088, 3591
+   },
+   {
+      0, 0, 125, 251, 377, 503, 1007, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GR */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* GB */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+   /* Blue */
+   {
+      67, 570, 1074, 1577, 2081, 2584, 3088, 3591
+   },
+   {
+      0, 0, 503, 1007, 1510, 2014, 2517, 3021, 3524
+   },
+   {
+      0.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+   },
+},
+
+/******************************************************************************/
+// Feature name : Skin Tone Detection
+// Applicale chipset(s): MSM8xxx chips.
+// Applicable operation mode: For VF and snapshot.
+//
+// skintone_Hmin
+// The negative of the minimum value of the H range.
+// Default value:  1.5.
+// Data range: 1.0 to 3.0.
+// Constraints: skintone_Hmin > skintone_Hmax (because the original data is negative).
+// Effect: Larger values will result in smaller skin tone range.
+//
+// skintone_Hmax
+// The negative of the maximum value of the H range.
+// Default value:  0.5.
+// Data range: 0.0 to 1.0.
+// Constraints: skintone_Hmin > skintone_Hmax (because the original data is negative)
+// Effect: Larger values will result in wider skin tone range.
+//
+// skintone_Ymin
+// The minimum value of the Y range.
+// Applicable operation mode:  For VF and snapshot.
+// Default value:  0.1.
+// Data range: 0.0 to 0.3.
+// Constraints: skintone_Ymax > skintone_Ymin.
+// Effect: Smaller values will result in wider skin tone range, including more dark areas.
+//
+// skintone_Ymax
+// The maximum value of the Y range.
+// Default value:  0.9.
+// Data range: 0.7 to 1.0.
+// Constraints: skintone_Ymax > skintone_Ymin.
+// Effect: Larger values will result in wider skin tone range, including more bright areas.
+//
+// skintone_S_HY_min
+// The minimum value of S on Ymax level.
+// Default value:  0.05.
+// Data range: 0.0 to 0.4.
+// Constraints: skintone_S_HY_max > skintone_S_HY_min.
+// Effect: Smaller values will result in wider skin tone range.
+//
+// skintone_S_HY_max
+// The maximum value of S on Ymax level.
+// Default value:  0.25.
+// Data range: 0.1 to 0.5.
+// Constraints: skintone_S_HY_max > skintone_S_HY_min.
+// Effect: Larger values will result in wider skin tone range.
+//
+// skintone_S_LY_min
+// The minimum value of S on Ymin level.
+// Default value:  0.25.
+// Data range: 0.0 to 0.5.
+// Constraints: skintone_S_LY_max > skintone_S_LY_min.
+// Effect: smaller values will result in wider skin tone range.
+//
+// skintone_S_LY_max
+// The maximum value of S on Ymin level.
+// Default value:  0.6.
+// Data range: 0.2 to 1.0.
+// Constraints: skintone_S_LY_max > skintone_S_LY_min.
+// Effect: Larger values will result in wider skin tone range.
+//
+// skintone_percentage
+// Percentage of skin color pixels to activate skin color map.
+// Default value:  50.
+// Data range: 0 to 100.
+// Effect: The larger the value, the harder to activate the skin color map.
+/******************************************************************************/
+
+1.500000f, /* H Min */
+0.500000f, /* H Max */
+0.100000f, /* Y Min */
+0.900000f, /* Y Max */
+0.050000f, /* S HY Min */
+0.250000f, /* S HY Max */
+0.250000f, /* S LY Min */
+0.600000f, /* S LY Max */
+50, /* Percentage */
+0, /* Demosaic Slope Shift */
+0, /* Skin Color Enhancement Enable */
+
+/******************************************************************************/
+// Feature name : SCE(skin color enhancement)
+// variable name: cr_cb_triangle
+// Three (Cr,Cb) points form a triangle.
+// applicale chipset(s): 7x30, 8660, 867x
+// applicable operation mode: preview and snapshot
+// default value
+// triangle 1: (40,-30), (17,-3), (10,-20)
+// triangle 2: (40,-30), (70,-25), (17,-3)
+// triangle 3: (40,-30), (65,-55), (70,-25)
+// triangle 4: (40,-30), (45,-90), (65,-55)
+// triangle 5: (40,-30), (10,-20), (45,-90)
+// data range: (-128, 127) for each color channel
+// constraints: triangles should not overlap each other
+//              points should be in counter-clockwise order
+// effect: change color from starting triangular area to target triangular area
+/******************************************************************************/
+
+/* TL84 Origin Triangles */
+{
+   /* SCE Origin Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Origin Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Origin Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Origin Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Origin Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+/* TL84 Destination Triangles */
+{
+   /* SCE Destination Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Destination Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Destination Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Destination Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Destination Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+
+/******************************************************************************/
+// Feature name : SCE(skin color enhancement)
+// variable name: sce_affine_transform_2d
+// 2x3 transformation matrix
+// applicale chipset(s): 7x30, 8660, 867x
+// applicable operation mode: preview and snapshot
+// default: a=1, b=0, c=0, d=0,e=1, f=0.
+// data range: computed according to start and target triangles
+// constraints:
+//  cr' = [ a   b    c] cr
+//  cb' = [ d   e    f] cb
+//   1  = [ 0   0    1] 1
+// effect: remap a color to a different color
+/******************************************************************************/
+
+/* Outside Region Mapping */
+{
+   1.000000f, /* a */
+   0.000000f, /* b */
+   0.000000f, /* c */
+   0.000000f, /* d */
+   1.000000f, /* e */
+   0.000000f, /* f */
+},
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/******************************************************************************/
+// Feature name : SCE(skin color enhancement) lowlight trigger points for
+// preview and snapashot
+/******************************************************************************/
+
+/* Lowlight Trigger Points */
+{
+   7.600000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+/* A Origin Triangles */
+{
+   /* SCE Origin Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Origin Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Origin Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Origin Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Origin Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+/* A Destination Triangles */
+{
+   /* SCE Destination Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Destination Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Destination Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Destination Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Destination Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+/* D65 Origin Triangles */
+{
+   /* SCE Origin Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Origin Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Origin Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Origin Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Origin Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+/* D65 Destination Triangles */
+{
+   /* SCE Destination Triangle 1 */
+   {
+      {40, -30},
+      {17, -3},
+      {10, -20}
+   },
+   /* SCE Destination Triangle 2 */
+   {
+      {40, -30},
+      {70, -25},
+      {17, -3}
+   },
+   /* SCE Destination Triangle 3 */
+   {
+      {40, -30},
+      {65, -55},
+      {70, -25}
+   },
+   /* SCE Destination Triangle 4 */
+   {
+      {40, -30},
+      {45, -90},
+      {65, -55}
+   },
+   /* SCE Destination Triangle 5 */
+   {
+      {40, -30},
+      {10, -20},
+      {45, -90}
+   },
+},
+/* A CCT Trigger */
+{
+   3500, /* Start */
+   3200, /* End */
+},
+/* D65 CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+
+/******************************************************************************/
+// applicable chipset:  8k, 7x30 and newer, WM only.
+// 3A version: N/A
+// applicable operation mode: snapshot
+//
+// variable name: min_snapshot_resolution_x
+// Min snapshot resolution that uses sensor full resolution mode.
+// default Value: 640
+// Data Range: 128 to full resolution
+// constraints: none
+// effect: smaller value results in using sensor full resl mode for all snapshots.
+//
+// variable name: min_snapshot_resolution_y
+// Min snapshot resolution that uses sensor full resolution mode.
+// default Value: 480
+// Data Range: 96 to full resolution
+// constraints: none
+// effect: smaller value results in using sensor full resl mode for all snapshots.
+/******************************************************************************/
+
+640, /* Min Snapshot Resolution X */
+480, /* Min Snapshot Resolution Y */
+/* Scene Change Detection */
+{
+
+/******************************************************************************/
+// Feature name : 3A Scene Change Detection
+// applicable chipset(s): for all chipsets
+// 3a Version: 2.0
+// applicable operation mode: camcorder
+//
+// variable name: scd_3a_enable
+// The flag to enable or disable 3a scene change detection
+// default value: 1
+// data range: 0(feature off) and 1 (feature on)
+// constraints: N/A
+// effect: Enable 3A scene change detection feature
+//
+// variable name: scd_aec_para_mean
+// This parameter controls the contribution to the dynamic threshold
+//  from the mean value of the latest scd_aec_dy_window frames?SADs
+//  (sum of the absolute difference).
+// default value: 2
+// data range: 1.0 to 4.0
+// constraints: N/A
+// effect: Increasing this value results in an increase in the dynamic
+//  threshold and therefore less scene changes will be detected.
+//
+// variable name: scd_aec_para_std
+// This parameter control the contribution to the dynamic threshold from
+//  the standard deviation of the latest scd_aec_dy_window frames?SADs
+//  (sum of the absolute difference)
+// default value: 2.76
+// data range: 1 to 10
+// constraints: N/A
+// effect: Increasing this value results in an increase in the dynamic
+//  threshold and therefore less scene changes will be detected.
+//
+// variable name: scd_aec_dy_window
+// This value is used to control the window size (how many frames) for
+//  computing the mean and the standard deviation.
+// default value: 15
+// data range: [1, maximum frame rate that can be achieved]
+// constraints: N/A
+// effect: The smaller the window size, the higher possibility to result
+//  in faulse alarms in scene change detection. The longer the window size,
+//  the more possibility to result in missed scene change detections.
+//
+// variable name: scd_threshold_aec_lux
+// This parameter is a predefined threshold in AEC scene change detection
+//  lux index method.
+// default value: 10
+// data range: [10,100]
+// constraints: N/A
+// effect: Increasing this parameter will increase the threshold for lux
+//  method, which results in higher requirement on the lux index changes
+//  to be classified as a scene change. In another words, the higher the
+//  scd_threshold_aec_lux, the less scene changes caused by brightness
+//  level change will be detected.
+//
+// variable name: scd_af_range_threshold
+// Used to control the threshold of scene change detection in auto focus
+// default value: 0.5
+// data range: [0,1]
+// constraints: N/A
+// effect: Increasing this parameter will increase threshold for scene
+//  change detection caused by auto focus, therefore less scene changes
+//  will be detected.
+/******************************************************************************/
+
+   1, /* Enable */
+   2.000000f, /* AEC Para Mean */
+   2.760000f, /* AEC Para Std */
+   15, /* DY Window */
+   10, /* AEC Lux Threshold */
+   0.500000f, /* AF Range Threshold */
+},
+/* Snow Scene Detection */
+{
+
+/******************************************************************************/
+// Feature name: Snow/cloudy Scene Detection.
+// Applicable chipset:  8k, 7x30 and newer.
+// 3A version: 2.0
+//
+// Variable name: snow_scene_detection_enable.
+// 1 (TRUE) enables the feature from AEC perspective, 0 (FALSE)
+//  disables the feature.
+// Applicable operation mode: Viewfinder and snapshot.
+// Default value: 1.
+// Data range: 0 or 1.
+// Constraints: None.
+// Effect: When enabled snow scene detection and compensation feature is
+//         enabled.
+//
+// Variable name: y_cloudy_snow_threshold.
+// AEC Stat regions luma values above this threshold may be
+//  used as potential snow samples.
+// Applicable operation mode: Viewfinder.
+// default Value (calculated): Default Luma Target
+// Data range: 0 or 255.
+// Constraints: Should be same as or above luma target.
+// Effect: Higher values detect less snow samples, lower values cause more
+//         near white regions to be detected as snow samples.
+//
+// Variable name: awb_y_max_in_grey.
+// Any AE region above this threshold is considered potential
+//  snow/cloudy region.  These regions will not have WB data
+//  because WB considered too bright and above YMAX WB
+//  configuration.
+// Applicable operation mode: Viewfinder.
+// Default value (calculated) : Normal Light AWB YMax
+// Data Range: 0 to 255.
+// Constraints: >= AWB bounding box YMax value.
+// Effect: Higher values detect less snow samples, lower values cause more
+//         close to saturated regions to be detected as snow samples.
+//
+// Variable name: min_snow_cloudy_sample_th.
+// If count of snow/cloudy regions detected above this
+//  threshold, we consider the scene as snow/cloudy. Snow scene
+//  severity is 0 when snow samples are less than this threshold.
+// Applicable operation mode: Viewfinder.
+// Default value: 10
+// Data range: 0 to 64.
+// Constraints: None.
+// Effect: Higher values make it harder to flag current scene as snow scene.
+//
+// Variable name: extreme_snow_cloudy_sample_th.
+// If count of detected snow regions above this threshold,
+//  scene is considered extreme snow/cloudy scene.  Snow scene
+//  severity is 255 when snow samples is equal or larger than this
+//  threshold.
+//  Full extreme_luma_target_offset is applied.
+// Applicable operation mode: Viewfinder and snapshot.
+// Default value: 55.
+// Data range: min_snow_cloudy_sample_th to 64.
+// Constraints: None.
+// Effect: Higher values make it harder to flag current scene as extreme snow
+//         scene or severity set to 255.
+//
+// Variable name: extreme_luma_target_offset.
+// Maximum luma offset that can be applied when snow scene is
+//  detected.  This happens when extreme_snow_cloudy_sample_th is
+//  reached or exceeded and exposure index is less than outdoor
+//  index.
+//  Luma offset is gradually reduced for darker scenes until
+//  eventually made 0 for indoor cases, this is based on exp_index.
+//  (Cannot use lux_idx due to rapid change based on frame luma;
+//  will cause luma offset to be unstable.)
+// Applicable operation mode: Viewfinder and snapshot.
+// default Value (calculated): Default Luma Target
+// Data range: 0 to twice luma target.
+// Constraints: None.
+// Effect: Higher values make image brighter for snow scene detected.
+//
+// Variable name: severe_snow_scene_cap.
+// Point at which “backlit_max_digital_gain?will be applied, value
+//  is 0 to 255 for severity.  255 means snow scene detection must report 255 severity
+//  for backlit_max_digital_gain to be applied.  If set to 0, it is always applied.
+//  Care is needed to not use 0 otherwise backlit_max_digital_gain will always be applied.
+// Spplicable operation mode: Viewfinder and snapshot.
+// Default value: 255
+// Data range: 0 to 255
+// Constraints: None.
+// Effect: See description above.
+//
+// Variable name: snowscene_aggressiveness
+// Adjust reaction time of snow/cloudy scene compensation.
+// Default value: 0.2
+// Data range: 0 to 1.0
+// Constraints:
+// Effect: Larger makes snow/cloudy compensation react faster by updating luma
+//         target.  If set too aggressive, AE oscillation may happen.
+//
+// Variable name: ui_snow_cloudy_display_th.
+// When detection severity is larger than this threshold, UI may display icon
+//     representing this type of scene.
+// Applicable operation Mode: Preview, camcorder.
+// Default value: 80.
+// Data range: 1 to 255.
+// Constraints: Larger vlaue requires scene severity to be larger to display
+//              icon.
+// Effect: ICON display on UI when option is enabled in UI.
+/******************************************************************************/
+
+   1, /* Enable */
+   58, /* Y Snow Threshold */
+   212, /* AWB Y Max in Grey */
+   10, /* Min Snow Sample Threshold */
+   55, /* Extreme Snow Sample Threshold */
+   58.000000f, /* Extreme Luma Target Offset */
+   255, /* Severe Snow Cap */
+   0.200000f, /* Aggressiveness */
+   80, /* UI Display Th */
+},
+/* Backlit Scene Detection */
+{
+
+/******************************************************************************/
+// Feature name: Backlit Scene Detection.
+// Applicable chipset:  8k, 7x30 and newer.
+// 3A version: 2.0
+//
+// Variable name: backlight_detection_enable.
+// 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+// Applicable operation mode: Viewfinder and snapshot.
+// Default value: 1.
+// Data range: 0 or 1.
+// Constraints: None.
+// Effect: 1 enables the feature.
+//
+// Variable name: low_luma_threshold.
+// Preview frame histogram samples which luma is below this
+//  threshold are added to low luma count.
+// Applicable operation mode: Viewfinder.
+// Default value: 10.
+// Data range: 0 to high_luma_threshold.
+// Constraints: None.
+// Effect: Lower values detect less samples as "dark" to be considered for
+//         backlit detection.
+//
+// Variable name: high_luma_threshold.
+// Histogram samples which luma is above this threshold are
+//  added to high luma count.
+// Applicable operation mode: Viewfinder.
+// Default value: 235.
+// Data range: low_luma_threshold to 255.
+// Constraints: None.
+// Effect: Higher values detect less samples as "bright" to be considered for
+//         backlit detection.
+//
+// Variable name: low_luma_count_percent_threshold.
+// If count of low luma samples exceed this percentage of total
+//  samples, we consider potential backlight case.
+// Applicable operation mode: Viewfinder.
+// Default value: 10.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Higher value requires more dark samples for histogram portion of
+// backlight detection to flag as potential backlit scene so it reduces probability
+// to detect backlight condition.
+//
+// Variable name: high_luma_count_percent_threshold.
+// If count of high luma samples exceed this percentage of total
+//  samples, we consider potential backlight case.
+// Applicable operation mode: Viewfinder.
+// Default value: 10.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Higher value requires more bright samples for histogram portion of
+// backlight detection to flag as potential backlit scene so it reduces probability
+// to detect backlight condition.
+//
+// Variable name: backlight_la_8k_config.
+// Luma Adaptation configuration when backlight scene is
+//  detected, compensation portion.
+// Applicable operation mode: Viewfinder.
+// Default value: Same as normal light.
+// Data range: N/A.
+// constraints: None.
+//
+// Variable name: backlight_max_la_luma_target_adj.
+// Maximum luma target adjustment when backlight is detected.
+//  We expect to increase luma target.
+// Applicable operation mode: Viewfinder.
+// Default value: 1.1
+// Data range: 0.5 to 2.
+// Constraints: None
+// Effect: >1 value will increase luma target and bring out the dark areas. <1 value
+// will decrease luma target and avoid saturation in highlight areas.
+//
+// Variable name: max_percent_threshold.
+// End of interpolation range for severity.
+//   Closer value to min_percent_threshold will cause backlit compensation to
+//   have more effect.
+// Applicable operation mode:  Camera mode only.
+// Default value:  1.
+// Data range: 0.5 to 1.0
+// Constraints: Due to nature of compensation affecting the detection, a smaller
+//   value may cause the backlit detection to become unstable.
+// Effect: More aggresive application of backlit compensation for smaller
+//   max_percent_threshold values.
+//
+// Variable name: ui_backlit_display_th.
+// When detection severity is larger than this threshold, UI may display icon
+//     representing this type of scene.
+// Applicable operation mode: Preview, camcorder.
+// Default value: 80.
+// Data range: 1 to 255.
+// Constraints: Larger value requires scene severity to be larger to display
+//              icon
+// Effect: ICON display on UI when option is enabled in UI.
+/******************************************************************************/
+
+   1, /* Enable */
+   10, /* Low Luma Threshold */
+   235, /* High Luma Threshold */
+   10.000000f, /* Low Luma Count Percent Threshold */
+   10.000000f, /* High Luma Count Percent Threshold */
+   /* Luma Adaptation */
+   {
+      3.300000f, /* Offset */
+      0.900000f, /* Low Beam */
+      0.100000f, /* High Beam */
+      5.000000f, /* Histogram Cap */
+      2.000000f, /* Cap High */
+      0.750000f, /* Cap Low */
+   },
+   1.100000f, /* Max Luma Target Adjust */
+   0.200000f, /* Aggressiveness */
+   1.000000f, /* Max Percent Threshold */
+   80, /* UI Display Th */
+},
+/* Red Eye Reduction */
+{
+
+/******************************************************************************/
+// Feature name: Red eye reduction
+// Applicable chipset(s): VFE 3.1 and later with Bayer support.
+// Applicable operation mode:  Camera mode only.
+//
+// Variable name: red_eye_reduction_xenon_strobe_enable.
+// Enables and disables the STROBE red-eye reduction feature.
+// Default value:  0.
+// Data range: 0 to 1.
+// Constraints: Dependent on h/w availability of strobe unit.
+// Effect: 0 disables the feature; 1 enables the feature.
+//
+// Variable name: red_eye_reduction_led_flash_enable.
+// Enables and disables the LED red-eye reduction feature.
+// Default value:  0.
+// Data range: 0 to 1.
+// Constraints: Dependent on h/w availability of LED unit.
+// Effect: 0 disables the feature; 1 enables the feature.
+//
+// Variable name: number_of_preflash_cycles.
+// Number of preflashes to trigger
+//  prior to snapshot flash and capture.  Recommend for LED to use
+//  a single longer duration cycle since it is typically not connected
+//  to precision timers.
+// Default value:  3.
+// Data range: 0 to 20.
+// Constraints: None.
+// Effect: Number of preflashes.
+//
+// Variable name: preflash_interval_between_pulses.
+// Time to wait between preflash triggers.  Unit is is millisecond (ms).
+// Default value:  15.
+// Data range: 0 to 33.
+// Constraints: Larger than preflash pulse duration.
+// Effect: Larger values is more time between pre-flashes.
+//
+// Variable name: preflash_xenon_pulse_duration.
+// Trigger duration for strobe type pre-flash.  Unit is is microsecond (us).
+// Default value:  10.
+// Data range: 0 to 20.
+// Constraints: Larger values may cause strobe charge in cap to deplete and
+//              not have enough light output for final snapshot capture.
+// Effect: Larger value is brighter pre-flash intensity.
+//
+// Variable name: preflash_LED_pulse_duration.
+// LED on duration for LED type pre-flash.  Unit is is millisecond (ms).
+// Default value:  100.
+// Data range: 0 to 1000.
+// Constraints: Larger values may cause LED to overheat.  Verify LED unit
+//              data sheet for heat disipation requirements.
+// Effect: Larger value is longer LED preflash duration.
+//
+// Variable name: preflash_LED_current.
+// Preflash current to be used for driving the LED preflashes.  Unit is mA.
+// Default value:  100.
+// Data range: 0 to 1000.
+// Constraints: Larger values may cause LED to overheat.  Verify LED unit
+//              data sheet for heat disipation requirements.
+//              S/W implementation may only support discrete current values, in
+//              that case, LED current will go to nearest lower value to this
+//              setting.
+// Effect: Larger value is brighter LED preflash intensity.
+/******************************************************************************/
+
+   0, /* Xenon Strobe Enable */
+   0, /* LED Flash Enable */
+   3, /* Number of Preflash Cycles */
+   15, /* Preflash Interval Between Pulses */
+   10, /* Preflash Xenon Pulse Duration */
+   100, /* Preflash LED Pulse Duration */
+   100, /* Preflash LED Current */
+},
+/* Landscape Scene Detection */
+{
+
+/******************************************************************************/
+// Feature name: Landscape Scene Detection.
+// Applicable chipset(s): VFE 3.1 and later with Bayer support
+//
+// Variable name: landscape_detection_enable.
+// Enables and disables the feature.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  1.
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: 0 disables the feature; 1 enables the feature.
+//
+// Variable name: landscape_red_boost_factor.
+// Increases red color saturation.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value: 1.3
+// Data range: 1 to 2.
+// Constraints: None.
+// Effect: Larger boost factor --> larger color saturation.
+//
+// Variable name: landscape_green_boost_factor.
+// Increases green color saturation.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value: 1.6
+// Data range: 1 to 2.
+// Constraints: None.
+// Effect: Larger boost factor --> larger color saturation.
+//
+// Variable name: landscape_blue_boost_factor.
+// Increases blue color saturation.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value: 1.6
+// Data range: 1 to 2.
+// Constraints: None.
+// Effect: Larger boost factor --> larger color saturation.
+//
+// Variable name: min_blue_green_content_detection_threshold.
+// Minumum ratio of blue+green extreme
+//      pixels vs. total pixels to trigger landscape detection.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0.05
+// Data range: 0 to 1.
+// Constraints: min_blue_green_content_detection_threshold <
+//              max_blue_green_content_detecton_threshold.
+// Effect: Smaller value makes it easier to detect a frame as landscape scene.
+//
+// Variable name: max_blue_green_content_detecton_threshold.
+// Maximum ratio of blue+green extreme
+//      pixels vs. total pixels to trigger severity of 255 (max) before
+//      lux_idx adjustment.  Sets interpolation range of severity.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0.12
+// Data range: 0 to 1.
+// Constraints: min_blue_green_content_detection_threshold <
+//              max_blue_green_content_detecton_threshold.
+// Effect: Value closer to min_blue_green_content_detecton_threshold makes
+//         landscape detection more abrupt to scene change.
+//
+// Variable name: green_offset_rg.
+// Allows offsetting of green zone area on the red axis.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0 .
+// Data range: -5 to +5.
+// Constraints: None.
+// Effect: Larger values makes it easier to collect closer to grey samples
+//  as extreme pixels.
+//
+// Variable name: green_offset_bg.
+// Allows offsetting of green zone area on the blue axis.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0.
+// Data range: -5 to +5.
+// Constraints: None.
+// Effect: Larger values makes it easier to collect closer to grey samples
+//         as extreme pixels.
+//
+// Variable name: aggressiveness.
+// Adjust reaction time of landscape compensation.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0.5
+// Data range: 0 to 1.0
+// Constraints: None.
+// Effect: Larger value makes landscape compensation react faster.
+//
+// Variable name: lux_idx_indoor.
+// When lux_idx is larger than this threshold, landscape severity is made 0.
+//    Start of severity detection value interpolation range.
+// Applicable operation mode:  Preview, camcorder.
+// Default value (calculated): AEC indoor index - 23
+// Data range: 0 to 400.
+// Constraints: Larger than lux_idx_outdoor.
+// Effect: Smaller value needs scene to be brighter to be detected as
+//         landscape.
+//
+// Variable name: lux_idx_outdoor.
+// When lux_idx is larger than this threshold, landscape severity is completely
+//     used based on the extreme green+blue pixel count ratio.
+//     End of severity detection value interpolation range.
+// Applicable operation mode:  Preview, camcorder.
+// Default value (calculated): AEC outdoor index
+// Data range: 0 to 400.
+// Constraints: Smaller than lux_idx_indoor.
+// Effect: Smaller value makes it harder to apply full landscape ASD
+//         compensation.
+//
+// Variable name: ui_landscape_display_th.
+// When detection severity is larger than this threshold, UI may display icon
+//     representing this type of scene.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 80.
+// Data range: 1 to 255.
+// Constraints: Larger value requires scene severity to be larger to display
+//              icon.
+// Effect: ICON display on UI when option is enabled in UI.
+/******************************************************************************/
+
+   1, /* Enable */
+   1.300000f, /* Red Boost Factor */
+   1.600000f, /* Green Boost Factor */
+   1.600000f, /* Blue Boost Factor */
+   0.050000f, /* Min Blue Green Content Detection Threshold */
+   0.120000f, /* Max Blue Green Content Detection Threshold */
+   0, /* Green Offset RG */
+   0, /* Green Offset BG */
+   0.500000f, /* Aggressiveness */
+   247, /* Lux Idx Indoor */
+   170, /* Lux Idx Outdoor */
+   80, /* UI Display Th */
+},
+/* Portrait Scene Detection */
+{
+
+/******************************************************************************/
+// Feature name: Portrait Scene Detection.
+// Applicable chipset(s): VFE 3.1 and later with Bayer support.
+//
+// Variable name: portrait_detection_enable.
+// Enables and disables the feature.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  1.
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: 0 disables the feature; 1 enables the feature.
+//
+// Variable name: skin_color_boost_factor.
+// Allows skin tones to be modified to look paler or tanner.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  0.
+// Data range: -1 to +1.
+// Constraints: -1 to +1 in 1/100 step.
+// Effect: +1 = most pale, -1 = most tan.
+//
+// Variable name: min_face_content_threshold.
+// Determines amount of area with respect to frame size to be called a
+//     portrait scene.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  0.010
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: 0 will always detect as portrait as long as a face has been detected.
+//   1 will require face area to cover the whole frame to be called a portait
+//   scene.  Default value needs 1% of the frame area to be face to be called
+//   portrait, although severity will be close to 0.
+//
+// Variable name: max_face_content_threshold.
+// Determines amount of area with respect to frame size to be called a
+//     portrait scene.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  0.05
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: If face area w.r.t. to frame size is larger than this threshold,
+//   portrait severity will be 255.  Portrait severity is interpolated based
+//   on face area between min and max_face_content_threshold.
+//
+// Variable name: soft_focus_degree.
+// Amount of blurring to be applied
+//  on image when portrait scene is detected.  This gets interpolated
+//  according to portrait severity value.
+// Applicable operation mode:  Preview, camcorder record and snapshot.
+// Default value:  0.9
+// Data range: 0.5 to 1.
+// Constraints: None.
+// Effect: Smaller value will result in softer focus appearance.
+//
+// Variable name: aggressiveness.
+// Adjust reaction time of portrait compensation.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 0.5
+// Data range: 0 to 1.0
+// Constraints: None.
+// Effect: Larger value makes portrait compensation react faster.
+//
+// Variable name: ui_portrait_display_th.
+// When detection severity is larger than this threshold, UI may display icon
+//     representing this type of scene.
+// Applicable operation mode:  Preview, camcorder.
+// Default value: 80.
+// Data range: 1 to 255.
+// Constraints: Larger value requires scene severity to be larger to display
+//              icon.
+// Effect: ICON display on UI when option is enabled in UI.
+/******************************************************************************/
+
+   1, /* Enable */
+   0.000000f, /* Skin Color Boost Factor */
+   0.010000f, /* Min Face Content Threshold */
+   0.050000f, /* Max Face Content Threshold */
+   0.900000f, /* Soft Focus Degree */
+   0.500000f, /* Aggressiveness */
+   80, /* UI Display Th */
+},
+
+/******************************************************************************/
+// Feature name: Zero shutter lag.
+//
+// Variable name: default_shutter_lag.
+// Default shutter lag value used in Zero Shutter Lag mode in ms.
+// Default value: 300.
+// Data range: bigger than or equal to 0.
+// Constraints: None.
+// Effect: The bigger the value is, the more images buffered in ZSL mode.?//?// Variable name: max_Q_factor_reduction.
+// The maximum image Q factor percentage reduction used in image buffer size
+//   control. The min image Q factor =
+//   default Q factor * (1- max_Q_factor_reduction).
+// Default value: 20.
+// Data range: 0 to 30.
+// Constraints: None.
+// Effect: The bigger the value is, the lower the potential image quality when
+//         buffer length control is enabled.
+/******************************************************************************/
+
+300, /* Default Shutter Lag */
+20, /* Max Q Factor Reduction */
+
+/******************************************************************/
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/Android.mk b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/Android.mk
new file mode 100755
index 0000000..8f0f038
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/Android.mk
@@ -0,0 +1,39 @@
+T4K35_CHROMATIX_VIDEO_PATH := $(call my-dir)
+
+# ---------------------------------------------------------------------------
+#                   Make the shared library (libchromatix_t4k35_default_video)
+# ---------------------------------------------------------------------------
+
+include $(CLEAR_VARS)
+LOCAL_PATH := $(T4K35_CHROMATIX_VIDEO_PATH)
+LOCAL_MODULE_TAGS := optional eng
+
+LOCAL_CFLAGS:= \
+        -DAMSS_VERSION=$(AMSS_VERSION) \
+        $(mmcamera_debug_defines) \
+        $(mmcamera_debug_cflags) \
+        -include camera_defs_i.h
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../include
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/sensor
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/flash
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../hardware/flash/xenon
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../isp3a
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../common
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../../../../hardware/qcom/camera
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../mm-still/jpeg/inc
+
+LOCAL_SRC_FILES:= chromatix_t4k35_video.c
+
+LOCAL_MODULE           := libchromatix_t4k35_default_video
+LOCAL_PRELINK_MODULE   := false
+LOCAL_SHARED_LIBRARIES := libcutils
+include $(LOCAL_PATH)/../../../../../../local_additional_dependency.mk
+
+ifeq ($(MM_DEBUG),true)
+LOCAL_SHARED_LIBRARIES += liblog
+endif
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.c b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.c
new file mode 100755
index 0000000..2f6be95
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.c
@@ -0,0 +1,38 @@
+/*============================================================================
+
+   Copyright (c) 2012 Qualcomm Technologies, Inc.  All Rights Reserved.
+   Qualcomm Technologies Proprietary and Confidential.
+
+============================================================================*/
+
+/*============================================================================
+ *                      INCLUDE FILES
+ *===========================================================================*/
+#include <string.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+#include "sensor.h"
+#include "chromatix.h"
+#include "camera_dbg.h"
+
+static chromatix_parms_type chromatix_t4k35_parms = {
+#include "chromatix_t4k35_video.h"
+};
+
+/*============================================================================
+ * FUNCTION    - load_chromatix -
+ *
+ * DESCRIPTION:
+ *==========================================================================*/
+void load_chromatix(void *ctrl)
+{
+  sensor_ctrl_t *sctrl = (sensor_ctrl_t *) ctrl;
+
+  CDBG("%s:%s:%d\n", __FILE__, __func__, __LINE__);
+  memcpy(&sctrl->chromatixData, &chromatix_t4k35_parms,
+    sizeof(chromatix_parms_type));
+  CDBG("%s:%d: chromatix_version=%d\n", __func__, __LINE__,
+    sctrl->chromatixData.chromatix_version);
+}
diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.h b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.h
new file mode 100755
index 0000000..fbade10
--- /dev/null
+++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/chromatix/0208/libchromatix/chromatix_t4k35/video/chromatix_t4k35_video.h
@@ -0,0 +1,9840 @@
+/*========================================================================
+                          C H R O M A T I X
+
+   DESCRIPTION
+   Auto-Generated by Chromatix tool defining camera tunable parameters.
+
+Copyright (c) 2012 Qualcomm Technologies, Inc. All Rights Reserved.
+Qualcomm Technologies Proprietary and Confidential.
+Export of this technology or software is regulated by the U.S. Government.
+Diversion contrary to U.S. law prohibited.
+==========================================================================*/
+
+/* Chromatix common DMSS header file version number */
+0x0208,
+
+/*********************************************************************/
+// Feature name :
+// Use gain or lux_index to control color correction.
+// Range: 0 or 1.
+// 0 means to use lux_index to control
+// 1 means to use gain to control
+/*********************************************************************/
+
+//snapshot
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for snapshot color correction.
+// gain start :
+// When gain >= gain_start, lowlight CC is interpolated with normal CC.
+// default: N/A
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight CC under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight CC is used.
+// default: N/A
+// range: min_gain to max_gain. Gain means digital and analog combined gain.
+// constraint: gain_end > gain_start.
+// effect: Increasing this value will use 100% lowlight CC under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight CC is interpolated with normal CC.
+// default: N/A
+// range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// effect: Increasing this value will use lowlight CC under lower light condition
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight CC is used.
+// default: N/A
+// range: Ror linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// constraint: lux_index_end > lux_index_start.
+// effect: Increasing this value will use 100% lowlight CC under lower light condition.
+//
+/*********************************************************************/
+
+//snapshot
+/* Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal and bright light color correction for snapshot.
+// 3x3 coefficients:
+// Data range: -15.99 to 15.99.
+// Constraint: The sum of each row needs to be 1.
+// Effect: Higher diagonal values result in higher color saturation with higher noise.
+//
+// 3 offsets
+// Data range: -1023 to 1023.
+// Default : 0
+// Effect: Negative values will make image darker while positive values make image brighter.
+//
+// Q factor:
+// Always set it to 0.
+/*********************************************************************/
+
+/* TL84 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Low light color correction for snapshot.
+/*********************************************************************/
+
+/* Low-Light Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.2331f,    -0.1377f,    -0.0954f,
+   0.0865f,    0.7457f,    0.1678f,
+   0.1909f,    -0.4762f,    1.2852f,
+   0,    0,    0,
+   0
+},
+/* A CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (A).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature < A_start and > A_end, use interpolation between A and FL.
+// When the color temperature >=A_end, just use A parameters.
+// Range: 4100 > A_start > A_end > 2850.
+// Effect: A_start and A_end controls the range of interpolation between A and FL.
+// Constraint: A_start > A_end.
+/*********************************************************************/
+
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (Daylight).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature > Daylight_start and < Daylight_end, use interpolation between D65 and FL.
+// When the color temperature >=D65_end, just use D65 parameters.
+// Range: 4100 < Dayligh_start < Dayligh_end < 5000.
+// Effect: Daylight_start and Daylight_end controls the range of interpolation between Daylight and FL.
+// Constraint: Daylight_start < Daylight_end.
+/*********************************************************************/
+
+   4600, /* Start */
+   4690, /* End */
+},
+/* D65 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.8088f,    -0.5085f,    -0.3004f,
+   -0.1787f,    1.1742f,    0.0045f,
+   0.0189f,    -0.8274f,    1.8085f,
+   0,    0,    0,
+   0
+},
+/* A Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7092f,    -0.3794f,    -0.3299f,
+   -0.1528f,    1.1459f,    0.0069f,
+   0.0321f,    -0.7239f,    1.6918f,
+   0,    0,    0,
+   0
+},
+/* LED CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* LED Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+/* Strobe CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* Strobe Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.0000f,    0.0000f,    0.0000f,
+   0.0000f,    1.0000f,    0.0000f,
+   0.0000f,    0.0000f,    1.0000f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for viewfinder color correction.
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal and bright light color correction for viewfinder.
+/*********************************************************************/
+
+/* TL84 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// Low light color correction for viewfinder.
+/*********************************************************************/
+
+/* Yhi-Ylo Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.2331f,    -0.1377f,    -0.0954f,
+   0.0865f,    0.7457f,    0.1678f,
+   0.1909f,    -0.4762f,    1.2852f,
+   0,    0,    0,
+   0
+},
+/* LED CCT Trigger */
+{
+   4300, /* Start */
+   4800, /* End */
+},
+/* LED Flash Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+  1.7722f,    -0.4582f,    -0.3139f,
+   -0.1835f,    1.1610f,    0.0225f,
+   0.0149f,    -0.8197f,    1.8047f,
+   0,    0,    0,
+   0
+},
+/* A CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (A).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature < A_start and > A_end, use interpolation between A and FL.
+// When the color temperature >=A_end, just use A parameters.
+// Range: 4100 > A_start > A_end > 2850.
+// Effect: A_start and A_end controls the range of interpolation between A and FL.
+// Constraint: A_start > A_end.
+/*********************************************************************/
+
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for color temperature related control (Daylight).
+// Applicable chipset: For all chipsets.
+// 3A version: 2.2
+// When the color temperature > Daylight_start and < Daylight_end, use interpolation between D65 and FL.
+// When the color temperature >=D65_end, just use D65 parameters.
+// Range: 4100 < Dayligh_start < Dayligh_end < 5000.
+// Effect: Daylight_start and Daylight_end controls the range of interpolation between Daylight and FL.
+// Constraint: Daylight_start < Daylight_end.
+/*********************************************************************/
+
+   4200, /* Start */
+   4590, /* End */
+},
+/* D65 Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.8088f,    -0.5085f,    -0.3004f,
+   -0.1787f,    1.1742f,    0.0045f,
+   0.0189f,    -0.8274f,    1.8085f,
+   0,    0,    0,
+   0
+},
+/* A Color Correction */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   1.7092f,    -0.3794f,    -0.3299f,
+   -0.1528f,    1.1459f,    0.0069f,
+   0.0321f,    -0.7239f,    1.6918f,
+   0,    0,    0,
+   0
+},
+
+/*********************************************************************/
+// Feature name :
+// use gain or lux_index to control color conversion
+// range: 0 or 1.
+// 0 means to use lux_index to control
+// 1 means to use gain to control
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/**************************************************************************************/
+// Feature name :
+// Trigger point for snapshot and viewfinder color conversion (advanced chroma enhancement).
+// gain start :
+// When gain >= gain_start, lowlight CV is interpolated with normal CV.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight CV under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight CV is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight CV under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight CV is interpolated with normal CV.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight CV under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight CV is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight CV under lower light condition
+//
+/**************************************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light advanced chroma enhancement for snapshot and viewfinder for 7k and 8k.
+//
+// am, ap,: Color saturation on Cb
+// Data range: -3.99 to 3.99. 0.5 is unity.
+// Effect: Higher values result in higher color saturation in Cb with higher noise.
+//
+// cm, cp,: Color saturation on Cr
+// Data range: -3.99 to 3.99. 0.5 is unity.
+// Effect: Higher values result in higher color saturation in Cr with higher noise.
+//
+// bm, bp: Certain offset coeffs for Cb calculation.
+// Data range: -1023 to 1023.
+//
+// dm, dp: Certain offset coeffs for Cr calculation.
+// Data range: -1023 to 1023.
+//
+// k_cb, k_cr: Offsets for Cb,Cr, respectively.
+// Data range: -1023 to 1023.
+// Default: 128.
+//
+// v0, v1, v2:
+// Coefficients from RGB to Y conversion.
+// Range: -7.99 to 7.99.
+// Constraint: Sum of them needs to be 1.
+//
+// K offset: Offset to convert from RGB to Y.
+// Range: 0 to 255.
+// Default : 0.
+// Effect: Positive values make image brighter and negative values make image darker.
+/*********************************************************************/
+
+/* TL84 Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5097f, 0.5097f,
+      /* b_m, b_p */
+      -0.3095f, -0.3095f,
+      /* c_m, c_p */
+      0.5296f, 0.5296f,
+      /* d_m, d_p */
+      -0.1461f, -0.1461f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.620f, 0.620f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.620f, 0.620f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* D65 Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Yhi-Ylo Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5000f, 0.5000f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5000f, 0.5000f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Outdoor Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Monochrome Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Sepia Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      110, 140
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* Negative Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      -0.5000f, -0.5000f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      -0.5000f, -0.5000f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      -0.2990f, -0.5870f, -0.1140f,
+      /* k */
+      255
+   }
+},
+/* Aqua Color Conversion */
+{
+   {
+      /* a_m, a_p */
+      0.0000f, 0.0000f,
+      /* b_m, b_p */
+      0.0000f, 0.0000f,
+      /* c_m, c_p */
+      0.0000f, 0.0000f,
+      /* d_m, d_p */
+      0.0000f, 0.0000f,
+      /* k_cb, k_cr */
+      160, 80
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+
+/*********************************************************************/
+// Feature name :
+// Color saturation boost factor for "flower" best shot modes.
+// Range: 1.0 to 2.0.
+/*********************************************************************/
+
+1.100000f, /* Saturated Color Conversion Factor */
+/* Sunset Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* TL84 Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5097f, 0.5097f,
+      /* b_m, b_p */
+      -0.3095f, -0.3095f,
+      /* c_m, c_p */
+      0.5296f, 0.5296f,
+      /* d_m, d_p */
+      -0.1461f, -0.1461f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* D65 Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.5200f, 0.5200f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.5200f, 0.5200f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A Skintone Color Conversion */
+/* Noise Weight: 0.000000 */
+/* Saturation: Red - 1.000000, Green - 1.000000, Blue - 1.000000 */
+{
+   {
+      /* a_m, a_p */
+      0.620f, 0.620f,
+      /* b_m, b_p */
+      -0.3380f, -0.3380f,
+      /* c_m, c_p */
+      0.620f, 0.620f,
+      /* d_m, d_p */
+      -0.1620f, -0.1620f,
+      /* k_cb, k_cr */
+      128, 128
+   },
+   {
+      /* v0, v1, v2 */
+      0.2990f, 0.5870f, 0.1140f,
+      /* k */
+      0
+   }
+},
+/* A CCT Trigger */
+{
+   3600, /* Start */
+   3550, /* End */
+},
+/* D65 CCT Trigger */
+{
+   4600, /* Start */
+   4690, /* End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light color conversion for snapshot and viewfinder for 6k.
+//
+// v0, v1, v2:
+// Coefficients from RGB to Y conversion.
+// Range: -1.99 to 1.99.
+// Constraint: Sum of them needs to be 1.
+//
+// RtoCb, GtoCb, BtoCb:
+// R,G,B to Cb coefficients, respectively.
+// Range: -1.99 to 1.99 for Q10 format.
+// Constraints: Sum of them needs to be 0.
+//
+// RtoCr, GtoCr, BtoCr:
+// R,G,B to Cr coefficients, respectively.
+// Range: -1.99 to 1.99 for Q10 format.
+// constraints: sum of them needs to be 0.
+//
+// K offset: Offset to convert from RGB to Y.
+// Range: -1023 to 1023.
+// Default : 0.
+// Effect: Larger positive value makes image brighter, negative value makes image darker.
+//
+// k_cb, k_cr: Offsets for Cb,Cr , respectively.
+// Data range: -1023 to 1023.
+// Default : 128.
+
+/*********************************************************************/
+
+/* TL84 Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* A Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* D65 Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Lowlight Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Outdoor Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* Monochrome Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    128,    128
+},
+/* Sepia Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    110,    140
+},
+/* Negative Color Conversion */
+{
+   -0.2990f,    -0.5870f,    -0.1140f,
+   0.1687f,    0.3313f,    -0.5000f,
+   -0.5000f,    0.4187f,    0.0813f,
+   255,    128,    128
+},
+/* Aqua Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   0.0000f,    0.0000f,    0.0000f,
+   0.0000f,    0.0000f,    0.0000f,
+   0,    160,    80
+},
+/* Sunset Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* TL84 Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* D65 Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+/* A Skintone Color Conversion */
+{
+   0.2990f,    0.5870f,    0.1140f,
+   -0.1687f,    -0.3313f,    0.5000f,
+   0.5000f,    -0.4187f,    -0.0813f,
+   0,    128,    128
+},
+
+/*********************************************************************/
+// Feature name :
+// Manual white balance gains for both snapshot and viewfinder.
+/*********************************************************************/
+
+/* TL84 Whitebalance - RGB */
+{1.337000f, 1.000000f, 1.797000f},
+/* D50 Whitebalance - RGB */
+{1.530000f, 1.000000f, 1.342000f},
+/* A Whitebalance - RGB */
+{1.054000f, 1.000000f, 2.279000f},
+/* D65 Whitebalance - RGB */
+{1.700000f, 1.000000f, 1.103000f},
+/* Strobe Flash Whitebalance - RGB */
+{1.000000f, 1.000000f, 1.000000f},
+/* LED Flash Whitebalance - RGB */
+{1.58000f, 1.000000f, 1.40000f},
+/* Channel Balance Gains */
+{1.000000f, 0.998264f, 1.000000f, 1.000000f},
+
+/*********************************************************************/
+// Feature name :
+//
+// R/G ratio, B/G ratio: AWB referecne points used for auto WB calculation.
+//
+//Red Gain Adjust,Blue Gain Adjust: Additional gain applied for snapshot only.
+/*********************************************************************/
+
+/* AWB Reference Points w/HW */
+{
+   /* D65 AWB Reference Point */
+   {
+      0.565430f, /* R/G ratio */
+      0.799805f, /* B/G ratio */
+      1.035000f, /* Red Gain Adjust */
+      0.975000f /* Blue Gain Adjust */
+   },
+   /* Shade AWB Reference Point */
+   {
+      0.530811f, /* R/G ratio */
+      0.856241f, /* B/G ratio */
+      0.931000f, /* Red Gain Adjust */
+      0.980000f /* Blue Gain Adjust */
+   },
+   /* A AWB Reference Point */
+   {
+      0.949000f, /* R/G ratio */
+      0.439000f, /* B/G ratio */
+      0.850000f, /* Red Gain Adjust */
+      0.970000f /* Blue Gain Adjust */
+   },
+   /* TL84 AWB Reference Point */
+   {
+      0.738000f, /* R/G ratio */
+      0.506000f, /* B/G ratio */
+      1.000000f, /* Red Gain Adjust */
+      0.988000f /* Blue Gain Adjust */
+   },
+   /* CoolWhite AWB Reference Point */
+   {
+      0.635000f, /* R/G ratio */
+      0.490000f, /* B/G ratio */
+      1.070000f, /* Red Gain Adjust */
+      1.000000f /* Blue Gain Adjust */
+   },
+   /* Horizon AWB Reference Point */
+   {
+      1.117000f, /* R/G ratio */
+      0.369000f, /* B/G ratio */
+      0.836000f, /* Red Gain Adjust */
+      0.982000f /* Blue Gain Adjust */
+   },
+   /* D50 AWB Reference Point */
+   {
+      0.628896f, /* R/G ratio */
+      0.656951f, /* B/G ratio */
+      0.933000f, /* Red Gain Adjust */
+      0.990000f /* Blue Gain Adjust */
+   },
+   /* Cust. Fluor. AWB Reference Point */
+   {
+      0.58000f, /* R/G ratio */
+      0.65000f, /* B/G ratio */
+      0.98000f, /* Red Gain Adjust */
+      0.98000f /* Blue Gain Adjust */
+   },
+   /* Noon AWB Reference Point */
+   {
+      0.637551f, /* R/G ratio */
+      0.703687f, /* B/G ratio */
+      0.935000f, /* Red Gain Adjust */
+      0.970000f /* Blue Gain Adjust */
+   },
+},
+/* AWB Stats with Hardware Rolloff */
+{
+
+/*********************************************************************/
+// Feature name : AWB Low Light Bounding Box
+// Bounding box to select near gray pixels for AWB under low light.
+// This setting is used  when exposure_index reaches max
+// exposure_index provided in exposure table in Chromatix header.
+/*********************************************************************/
+
+   /* Low-Light AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      235
+   },
+
+/*********************************************************************/
+// Feature name : AWB Bounding Box
+// Bounding box to select near gray pixels for AWB under normal and bright light.
+// This setting is used  when exposure_index is less than max
+// exposure_index provided in exposure table in Chromatix header.
+/*********************************************************************/
+
+   /* Normal AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      238
+   },
+
+/*********************************************************************/
+// Feature name : AWB Bright Best Shot Bounding Box
+// Bounding box to select near gray pixels for AWB under bright light for
+// the following best shot mode only: landscape, beach, snow. Under non best
+// shot mode, this setting is not used.
+//
+/*********************************************************************/
+
+   /* Outdoor AWB Stats */
+   {
+      20, /* YMin */
+      212, /* YMax */
+      /* Slope of neutral region and line number */
+      1,
+      -16,
+      16,
+      -16,
+      /* Cb intercept of neutral region and line number */
+      122,
+      153,
+      -97,
+      238
+   },
+},
+
+/*********************************************************************/
+// Comment:
+// Indoor and outdoor index are the parameters used in AWB algorithm in
+// a variety of heuristics. We do not recommend the user change these values.
+/*********************************************************************/
+
+260, /* Indoor Index */
+160, /* Outdoor Index */
+
+/*********************************************************************/
+// Feature name :
+// Blue gain adj ratio is used for Snow and Beach best shot modes only. This factor
+// is applied on top of the blue WB gain determined by AWB algorithm.
+// Range: 0.7 to 1.5.
+/*********************************************************************/
+
+1.100000f, /* Snow Blue Gain Adj Ratio */
+0.900000f, /* Beach Blue Gain Adj Ratio */
+
+/*********************************************************************/
+// Feature name :
+// The following group of parameters are used by AWB algorithm. We do not
+// recommend the user modify them.
+/*********************************************************************/
+
+8, /* Outlier Distance */
+-8, /* Green Zone Offset RG */
+-8, /* Green Zone Offset BG */
+2, /* Num Frames to skip after changing VFE */
+
+/*******************************************************************************/
+// variable name: awb_extreme_RG_ratio_threshold
+// boundary to collect stat in R/G direction
+// applicale chipset(s): VFE 3.1 and higher
+// applicable operation mode: preview, camcorder, snapshot
+// default value (calculated-NA): 1.1 x R/G value of blue patch on MCC (#15) under Horizon
+// data range: 0.0 to 4.0
+// constraints: 0.0 to 4.0
+// effect: higher value allows less pixels to be collected.
+/******************************************************************************/
+
+2.000000f, /* AWB Extreme RG Ratio Treshold */
+
+/*******************************************************************************/
+// variable name: awb_extreme_BG_ratio_threshold
+// boundary to collect stat in B/G direction
+// applicale chipset(s): VFE 3.1 and higher
+// applicable operation mode: preview, camcorder, snapshot
+// default value: 1.25
+// data range: 1.0 to 4.0
+// constraints: 1.0 to 4.0
+// effect: higher value allows less pixels to be collected.
+/******************************************************************************/
+
+1.500000f, /* AWB Extreme BG Ratio Treshold */
+/* More AWB Parameters */
+60, /* Compact Cluster R2 */
+101, /* Compact Cluster To Ref Point R2 */
+75, /* A Cluster Threshold */
+75, /* F Cluster Threshold */
+60, /* Day Cluster Threshold */
+12, /* Outdoor Green Threshold */
+8, /* Outdoor Green Threshold Bright F */
+15, /* Outdoor Green Threshold Dark F */
+12, /* Day Cluster Threshold For F */
+1, /* Whitebalance Allow FLine */
+15, /* Outdoor Valid Sample Count Threshold */
+25, /* Outdoor Green Upper Threshold */
+1000, /* R2 Threshold */
+8, /* Outdoor Green Threshold Bright A */
+15, /* Outdoor Green Threshold Dark A */
+12, /* Day Cluster Threshold For A */
+
+/*********************************************************************/
+// Feature name :
+// CC global gain is a global digital gain applied to the system.
+// We do not recommend the user change this value.
+/*********************************************************************/
+
+1.100000f, /* CC Global Gain */
+
+/*********************************************************************/
+// Feature name :
+// The final WB gain applied to the system is mandated to be between min
+// and max WB values.  We do not recommend the user change the values.
+/*********************************************************************/
+
+/* AWB Min Gains - RGB */
+{1.000000f, 1.000000f, 1.000000f},
+/* AWB Max Gains - RGB */
+{3.900000f, 3.900000f, 3.900000f},
+
+/*********************************************************************/
+// Feature name :
+// The following group of parameters are used by AWB algorithm. We do not
+// recommend the user modify them.
+/*********************************************************************/
+
+{ 1.000000f, 1.000000f }, /* AWB Sample Influence, Outdoor/Indoor */
+/* AWB Weight Vector */
+{
+   {15, 80, 20}, /* AWB Weight Vector D65 */
+   {5, 40, 20}, /* AWB Weight Vector D75 */
+   {7, 2, 1}, /* AWB Weight Vector A */
+   {85, 1, 20}, /* AWB Weight Vector Warm F */
+   {75, 1, 15}, /* AWB Weight Vector Cool F */
+   {3, 1, 1}, /* AWB Weight Vector Horizon */
+   {5, 100, 5}, /* AWB Weight Vector D50 */
+   {11, 1, 3}, /* AWB Weight Vector Cust F */
+   {1, 100, 5}, /* AWB Weight Vector Daylight Noon */
+   {5, 60, 20}, /* AWB Weight Vector Daylight Hybrid */
+},
+70, /* AWB White World Y Min Ratio */
+
+/*********************************************************************/
+// Feature name :
+// AWB aggresiveness
+// 0 low aggressive
+// 1 medium aggressive
+// 2 high aggressive
+/*********************************************************************/
+
+0, /* AWB Aggressiveness */
+0, /* AWB Self-Calibrate */
+
+/******************************************************************************/
+// Feature name : AWB self calibration
+// variable name:
+// Adjust amount of adjustment allowed for AWB self calibration
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+// default value: high=1.15
+// default value: low=0.9
+// data range: high (1.0, 1.2), low (0.8, 1.0)
+// constraints:
+// effect: larger high = larger adjustment, smaller low = larger adjustment
+/******************************************************************************/
+
+1.150000f, /* AWB Self-Calibrate Adjust Ratio High */
+0.900000f, /* AWB Self-Calibrate Adjust Ratio Low */
+
+/******************************************************************************/
+// Feature name : AWB
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+//
+// variable name: awb_enable_lock_heuristics_1
+// Enable lock heuristics #1
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #1.
+// Prevents outdoor decision to be switched into indoor.
+//
+// variable name: awb_enable_lock_heuristics_2
+// Enable lock heuristics #2
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #2.
+// Prevents fluorescent light to be switched to outdoor.
+//
+// variable name: awb_enable_lock_heuristics_3
+// Enable lock heuristics #3
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable lock/unlock heuristics #3.
+// Prevents fluorescent light to be switched to incandescent.
+/******************************************************************************/
+
+0, /* AWB Enable Lock Heuristics 1 */
+0, /* AWB Enable Lock Heuristics 2 */
+0, /* AWB Enable Lock Heuristics 3 */
+
+/******************************************************************************/
+// Feature name : AWB
+// variable name: awb_enable_white_world
+// Enable adaptive white world
+// applicale chipset(s): all MSM
+// applicable operation mode: preview
+// default value: 1 (enable)
+// data range: 0 or 1
+// constraints: 0 or 1
+// effect: 1 to enable adaptive white world
+/******************************************************************************/
+
+1, /* AWB Enable White World */
+/* Purple Prevent */
+{
+
+/******************************************************************************/
+// Feature name : AWB Extended
+// applicable chipset:  all VFEs.
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: AWB_purple_prevent_enable
+// Enables the feature.
+// default value: 1
+// data range: 0 and 1
+// constraints: None
+//
+// variable name: control_purple_prevent
+// Control with gain or lux_index
+// default Value: 0
+// Data Range: 0 or 1.
+// constraints: None
+// effect: use gain or lux_index for control purple sky prevention
+//
+// variable name: purple_prevent_trigger
+// Control the purple sky prevention adjustment trigger
+// default Value: between ½ outdoor index and outdoor index
+// Data Range: integers 0 to a few hundreds.
+// constraints: only for bright outdoor
+// effect: smaller index values make the purple sky prevention harder to take effect. (has to be very bright)
+//
+// variable name: purple_sky_prevention_bg_threshold
+// Control the purple sky prevention adjustment
+// default Value: BG ratio of D50
+// Data Range: 0 to 2
+// constraints: around D50
+// effect: smaller index values make the adjustment larger.
+//
+// variable name: AWB_Ymin_low_threshold
+// White world Ymin low end threshold
+// default Value: 60
+// Data Range: 0 to 100
+// constraints: has to be smaller than AWB_Ymin_high_threshold
+// effect: smaller index values make the white world Ymin go lower
+//
+// variable name: AWB_Ymin_high_threshold
+// White world Ymin high end threshold
+// default Value: 98
+// Data Range: 0 to 100
+// constraints: has to be greater than AWB_Ymin_low_threshold
+// effect: smaller index values make the white world Ymin go lower
+/******************************************************************************/
+
+   1, /* Enable */
+   0, /* Control Method - 1 = Gain, 0 = Lux Index */
+   /* Trigger Point */
+   {
+      2.000000f, /* Gain Start */
+      1.000000f, /* Gain End */
+      170, /* Lux Index Start */
+      85, /* Lux Index End */
+   },
+   0.745000f, /* Sky Prevention BG Thresh */
+   60, /* AWB Ymin Low Threshold */
+   98, /* AWB Ymin High Threshold */
+},
+/* R Adjust */
+{
+
+/******************************************************************************/
+// variable name: AWB_R_adj_VF
+// Red gain_adj for viewfinder
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version: N/A
+// applicable operation mode: viewfinder
+// default Value (all): 1.0
+// Data Range: 0.8 to 1.3
+// constraints:
+// effect: higher delta from 1 will result in more adjustment
+/******************************************************************************/
+
+   1.000000f, /* D65 */
+   1.000000f, /* D75 */
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* Cool White */
+   1.000000f, /* Horizon */
+   1.000000f, /* D50 */
+   1.000000f, /* Custom Fluorescent */
+   1.000000f, /* Noon */
+},
+/* B Adjust */
+{
+
+/******************************************************************************/
+// variable name: AWB_B_adj_VF
+// Blue gain_adj for viewfinder
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version: N/A
+// applicable operation mode: viewfinder
+// default Value (all): 1.0
+// Data Range: 0.8 to 1.3
+// constraints:
+// effect: higher delta from 1 will result in more adjustment
+/******************************************************************************/
+
+   0.980000f, /* D65 */
+   0.980000f, /* D75 */
+   1.00000f, /* A */
+   0.980000f, /* TL84 */
+   0.980000f, /* Cool White */
+   1.00000f, /* Horizon */
+   0.980000f, /* D50 */
+   0.980000f, /* Custom Fluorescent */
+   0.980000f, /* Noon */
+},
+/* R Adjust Lowlight Preview */
+{
+
+/******************************************************************************/
+// Variable name: AWB_lowlight_R_adj_VF.
+// Red gain_adj for viewfinder under low light condition.
+// Main purpose is for preferred WB tuning for preview mode under low light condition.
+// Applicable chipset:  8k, 7x30, 8x60 and newer.
+// 3A version: N/A.
+// applicable operation mode: viewfinder.
+// Default value (all): 1.0.
+// Data range: 0.8 to 1.3.
+// Constraints: Higher delta from 1 could possibly result in more WB error in case AWB decision is wrong.
+// Effect: Higher delta from 1 will result in more adjustment.
+/******************************************************************************/
+
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* D65 */
+   1.000000f, /* LED */
+   1.000000f, /* Strobe */
+},
+/* B Adjust Lowlight Preview */
+{
+   1.000000f, /* A */
+   1.000000f, /* TL84 */
+   1.000000f, /* D65 */
+   1.000000f, /* LED */
+   1.000000f, /* Strobe */
+},
+/* R Adjust Lowlight Snapshot */
+{
+
+/******************************************************************************/
+// Variable name: AWB_lowlight_R_adj_snapshot.
+// Red gain_adj for snaphot under low light condition.
+// Main purpose is to compensate WB difference caused by different lens rolloff
+// between VF and snapshot mode under low light condition. But also can be used
+// for preferred WB tuning under low light snapshot condition.
+// Applicable chipset:  8k, 7x30, 8x60 and newer.
+// 3A version: N/A.
+// Applicable operation mode: snapshot.
+// Default value: 1.0.
+// Data range: 0.8 to 1.3.
+// Constraints: Higher delta from 1 could possibly result in more WB error in case AWB decision is wrong.
+// Effect: Higher delta from 1 will result in more adjustment.
+/******************************************************************************/
+
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+   1.000000f, /* Red */
+},
+/* B Adjust Lowlight Snapshot */
+{
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+   1.000000f, /* Blue */
+},
+
+/******************************************************************************/
+// Feature name : AWB golden module calibration data
+//               for module-by-module variation
+// applicale chipset(s): all MSM
+// applicable operation mode: camera & camcorder preview/recording/snapshot
+//
+// variable name: AWB_golden_module_R_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0 and 4
+// constraints: none
+// effect: not tunable
+
+// variable name: AWB_golden_module_Gb_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0.8 and 1.2
+// constraints: none
+// effect: not tunable
+//
+// variable name: AWB_golden_module_B_Gr_ratio
+// Not tunable. Read it out from module’s EEPROM and convert into floating point
+// default value: none. The value read out from module’s EEPROM
+// data range: 0 and 4
+// constraints: none
+// effect: not tunable
+/******************************************************************************/
+
+0.000000f, /* Golden Module R/Gr ratio */
+0.000000f, /* Golden Module Gb/Gr ratio */
+0.000000f, /* Golden Module B/Gr ratio */
+0, /* Enable AWB Module Cal */
+/* AWB Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AWB_motion_sensor_type to aide AWB in determining a change in
+//           scene.
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: awb_gyro_trigger.
+// Used to control how scene change should be detected for AEC
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None .
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: awb_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: awb_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: 0.0 to 360.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: awb_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0.
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+/* AWB2 Params */
+{
+
+/*****************************************************************/
+// AWB2 parameters
+// Applicable operation mode: preview and snapshot.
+//
+// Variable name: awb2_bright_green_percentage.
+// Bright green percentage at outdoor index.
+// Applicable chipset:  VFE3.2 and higher
+// 3A version: 3.0 and higher.
+// Default value: 6.
+// Data range: 0 to 100.
+// Constraints: This is a pre-set threshold obtained by testing.
+// Effect: Higher value extends the outdoor green range.
+//
+// Variable name: awb2_dark_green_percentage.
+// Dark green percentage at indoor index.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 12.
+// Data range: 0 to 100.
+// Constraints: This is a pre-set threshold obtained by testing.
+// Effect: Indoor green range is extended or narrowed down.
+//
+// Variable name: awb2_dark_r_threshold, awb2_dark_g_threshold, dark_b_threshold.
+// R(or G or B) stat ave below this value is rejected (8-bit domain).
+// Applicable chipset:  All chipsets.
+// 3A version: N/A.
+// Default value: 1.
+// Data range: 0 to 255.
+// Constraints: This is a pre-set threshold for collecting certain level of
+//              the red/green/blue stat.
+// Effect: Lower values allow stats with lower r, g, b values be collected.
+//
+// Variable name: awb2_white_stat_y_threshold_high.
+// The Y threshold for a region to be a white stat.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 245.
+// Data range: 0 to 255.
+// Constraints: None.
+// Effect: The upper limit for collecting white stat.
+//         Too high will involve saturated stat,
+//         and too low may reduce white stat collection accuracy.
+//
+// Variable name: awb2_ref_b_bg_tl84, awb2_ref_r_rg_a.
+// This reference R, B 's r/g b/g are for 8k FFA;
+// it needs to be tuned for other sensors.
+// Corresponding roll off table should be applied when doing the measurement.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: These two values are specifically estimated for the
+//                corresponding sensor. Default value for 8k Foxcon sensor are:
+//                awb2_ref_b_bg_tl84 = 1.4049; awb2_ref_r_rg_a = 3.1547;
+// Data fange: 0 to 10.
+// Constraints: None.
+// Effect: Accurately estimated values decides the stat collected for extreme
+//         blue and red. For calibration of these two values, take full-view
+//         MCC chart under TL84 and A lighting. Apply correct rolloff table
+//         and then measure the blue’s b/g from the MCC taken under TL84.
+//         Measure the red’s r/g from the MCC taken under A.
+//
+// Variable name: awb2_extreme_range_offset_b, awb2_extreme_range_offset_r.
+// Extreme blue and red threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 1.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value increases the boundary of collecting extreme red and
+//         blue stat. Lower value reduces the boundary of collecting the
+//         extreme stat.
+//
+// Variable name: awb2_threshold_extreme_b_percent.
+// Threshold of the blue extreme stat counts.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.2
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: Higher value requires a higher number of the collected extreme stats
+//         to be recognized as an extreme color case.
+//
+// Variable name: awb2_threshold_extreme_r_percent.
+// Threshold of the red extreme stat counts.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.5
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: Higher value requires a higher number of the collected extreme stats
+//         to be recognized as an extreme color case.
+//
+// Variable name: awb2_threshold_compact_cluster.
+// Compact cluster threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 60.
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: This is the threshold of measured distance from outlier sample grid
+//         to the average. If the measured maximum distance is lower than this
+//         threshold, a compact cluster is recognized. Therefore, a too high
+//         threshod results in false-alarm compact cluter recoganition and too
+//         low threshold may result in missed detection on the compact cluters.
+//
+// Variable name: awb2_compact_to_grey_dis.
+// Outlier compact cluster distance to grey zone.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 4.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Lower value requires the recognized compact cluster is closer to the
+//         grey zone.
+//
+// Variable name: awb2_threshold_compact_cluster_valid.
+// Radius of the compact cluster within grey zone.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default Value: 4.
+// Data range: 0 to 100.
+// Constraints: None.
+// Effect: Lower value requires the recognized compact cluster have a smaller
+//         radius.
+//
+// Variable name: awb2_threshold_dominant_cluster_threshold.
+// Dominant cluster threshold.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 4.
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: This threshold decides on if there is a dominant cluster or not.
+//         Higher threshold gives higher requirement on the cluster counts to
+//         be recognized as a dominant cluster.
+//
+// Variable name: awb2_distance_weight_table[121].
+// Distance weight table
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Data range: 0 to 3888.
+// Constraints: None.
+// Effect: This array is used to control the distance weighting.  The index to
+//         the LUT is the grid distance. If the outlier distance is N, only the
+//         first N entries of this weight table is non-zero, and all other
+//         entries are 0’s. With a Gaussian kernel, the stat closer to
+//         reference points are given higher weight than stat farther away.
+//         With equal weight, all samples in the grey zone are treated equally.
+//
+// Variable name: awb2_outdoor_adjustment.
+// Adjustable parameters for outdoor exposure range control.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 30.
+// Data range: 0 to 140.
+// Constraints: None.
+// Effect: This parameter adjusts the range of the exposure in outdoor
+//         conditions. Higher value gives narrower range for Noon and D50
+//         exposure range but larger D65 exposure range. This parameter is used
+//         for easy exposure adjustment for different sensors.
+//
+// Variable name: awb2_exposure_adjustment.
+// Interpolation range adjustment on the boundary of two different AWB
+// decisions.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 10.
+// Data range: 0 to 140.
+// Constraints: None.
+// Effect: This parameter adjusts the interpolation range on the boundary of
+//         two different AWB decisions based on exposure. Higher value gives a
+//         larger interpolation range which results in smoother AWB decision
+//         changes.
+//
+// Variable name: awb2_outlier_valid_ymax.
+// Check if Y max in outliers is higher than the Y max in valid samples.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 3.
+// Data range: 1 to 10.
+// Constraints: None.
+// Effect: If outlier Y max is awb2_outlier_valid_ymax times more than the Y
+//         max in valid samples, set white world decision to be -1. Higher
+//         value requires a higher threshold for this decision.
+//
+// Variable name: awb2_cluster_high_pec, awb2_cluster_mid_pec, awb2_cluster_low_pec.
+// Cluster percentage to determine dominant light in heuristics.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value: 0.4, 0.25, 0.15
+// Data range: 0 to 1.
+// Constraints: None.
+// Effect: These three parameters set three boundaries to recognize the
+//         dominant cluster in heuristics. Higher value requires a larger
+//         number cluster counts.
+//
+// Variable name: awb2_weight_vector[][]
+// Weight vector corresponding to different range of exposure index.
+// Applicable chipset:  VFE3.2 and higher.
+// 3A version: 3.0 and higher.
+// Default value:
+//    in, out, in-out
+//  {  4, 10, 7, 7, // D65 30
+//     5, 10, 8, 8, // D75 30
+//     2, 1, 1, 1,  // A
+//    10, 1, 5, 5,  // 5 wf 3800
+//     9, 1, 3, 3,  // 3 cf 4000
+//     2, 1,  1, 1, // H
+//     3, 10, 6, 6, // D50 30
+//     1,  1, 1, 1, // custom f
+//     1, 10, 1, 1, // index match correction: should be for noon
+//     1, 10, 8, 8, // daylight hybrid 1
+//     1, 10, 8, 8, // daylight hybrid 2
+//     3,  1, 2, 2, // A light line 1
+//     2,  1, 1, 1, // A light line 2
+//     10, 1, 5, 5  // F line
+//  };
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value gives higher weight to the stat at the exposure index
+//         in the corresponding range.
+/******************************************************************/
+
+   6, /* Bright Green Percentage */
+   12, /* Dark Green Percentage */
+   10, /* Dark R Threshold */
+   10, /* Dark G Threshold */
+   10, /* Dark B Threshold */
+   245, /* White Stat Y Threshold High */
+   1.305860f, /* Ref B BG Tl84 */
+   3.154700f, /* Ref R RG A */
+   1.250000f, /* Extreme Range Offset B */
+   1.000000f, /* Extreme Range Offset R */
+   0.200000f, /* Threshold Extreme B Percent */
+   0.500000f, /* Threshold Extreme R Percent */
+   60, /* Threshold Compact Cluster */
+   4, /* Compact To Grey DIS */
+   4, /* Threshold Compact Cluster Valid */
+   4, /* Dominant Cluster Threshold */
+   /* Dist Weight Table */
+   {
+      100, 95, 83, 66, 47, 31, 18, 10,
+      5, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1
+   },
+   30, /* Outdoor Adjustment */
+   10, /* Exposure Adjustment */
+   3.000000f, /* Outlier Valid yMax */
+   0.400000f, /* Cluster High PEC */
+   0.250000f, /* Cluster Mid PEC */
+   0.150000f, /* Cluster Low PEC */
+   /* Weight Vector */
+   {
+      {4, 10, 7, 7}, /* D65 */
+      {5, 10, 8, 8}, /* D75 */
+      {2, 1, 1, 1}, /* A */
+      {10, 1, 5, 5}, /* Warm Fluorescent */
+      {9, 1, 3, 3}, /* Cool Fluorescent */
+      {2, 1, 1, 1}, /* Horizon */
+      {3, 10, 6, 6}, /* D50 */
+      {1, 1, 1, 1}, /* Custom Fluorescent */
+      {1, 10, 1, 1}, /* Noon */
+      {1, 10, 8, 8}, /* Daylight Hybrid 1 */
+      {1, 10, 8, 8}, /* Daylight Hybrid 2 */
+      {3, 1, 2, 2}, /* A Line 1 */
+      {2, 1, 1, 1}, /* A Line 2 */
+      {10, 1, 5, 5}, /* F Line */
+   },
+},
+
+/*********************************************************************/
+// Comments:
+// Use digital gain:
+// This parameter is unused.
+//
+// max number of entries:
+// Number of entries in the exxposure table. It needs to be in sync with the table contents.
+//
+// Exposure table contains 2 columns. The first column is real gain values
+// right shifted 8 bits. For example, 256 means gain of 1.0. The 2nd colum
+// is sensor integration (exposure) time in terms of number of lines.
+// Exposure table is generated by Chromatix or sensor driver team.
+// It can be regenerated in Chromatix tool by specifying different max gain
+// and max line count.  We do not recommend user to manually modify it because it
+// potentially will change trigger points for many parameters.
+/*********************************************************************/
+
+/* Exposure Table */
+{
+   1, /* Use Digital Gain */
+   /* Exposure Table */
+   351, /* Max Exposure Table entries */
+   {
+      {256, 1}, /* Gain= 1.000 Exposure Index=0 */
+      {264, 1}, /* Gain= 1.031 Exposure Index=1 */
+      {272, 1}, /* Gain= 1.063 Exposure Index=2 */
+      {280, 1}, /* Gain= 1.094 Exposure Index=3 */
+      {288, 1}, /* Gain= 1.125 Exposure Index=4 */
+      {297, 1}, /* Gain= 1.160 Exposure Index=5 */
+      {306, 1}, /* Gain= 1.195 Exposure Index=6 */
+      {315, 1}, /* Gain= 1.230 Exposure Index=7 */
+      {324, 1}, /* Gain= 1.266 Exposure Index=8 */
+      {334, 1}, /* Gain= 1.305 Exposure Index=9 */
+      {344, 1}, /* Gain= 1.344 Exposure Index=10 */
+      {354, 1}, /* Gain= 1.383 Exposure Index=11 */
+      {365, 1}, /* Gain= 1.426 Exposure Index=12 */
+      {376, 1}, /* Gain= 1.469 Exposure Index=13 */
+      {387, 1}, /* Gain= 1.512 Exposure Index=14 */
+      {399, 1}, /* Gain= 1.559 Exposure Index=15 */
+      {411, 1}, /* Gain= 1.605 Exposure Index=16 */
+      {423, 1}, /* Gain= 1.652 Exposure Index=17 */
+      {436, 1}, /* Gain= 1.703 Exposure Index=18 */
+      {449, 1}, /* Gain= 1.754 Exposure Index=19 */
+      {462, 1}, /* Gain= 1.805 Exposure Index=20 */
+      {476, 1}, /* Gain= 1.859 Exposure Index=21 */
+      {490, 1}, /* Gain= 1.914 Exposure Index=22 */
+      {505, 1}, /* Gain= 1.973 Exposure Index=23 */
+      {260, 2}, /* Gain= 1.016 Exposure Index=24 */
+      {268, 2}, /* Gain= 1.047 Exposure Index=25 */
+      {276, 2}, /* Gain= 1.078 Exposure Index=26 */
+      {284, 2}, /* Gain= 1.109 Exposure Index=27 */
+      {293, 2}, /* Gain= 1.145 Exposure Index=28 */
+      {302, 2}, /* Gain= 1.180 Exposure Index=29 */
+      {311, 2}, /* Gain= 1.215 Exposure Index=30 */
+      {320, 2}, /* Gain= 1.250 Exposure Index=31 */
+      {330, 2}, /* Gain= 1.289 Exposure Index=32 */
+      {340, 2}, /* Gain= 1.328 Exposure Index=33 */
+      {350, 2}, /* Gain= 1.367 Exposure Index=34 */
+      {361, 2}, /* Gain= 1.410 Exposure Index=35 */
+      {372, 2}, /* Gain= 1.453 Exposure Index=36 */
+      {383, 2}, /* Gain= 1.496 Exposure Index=37 */
+      {263, 3}, /* Gain= 1.027 Exposure Index=38 */
+      {271, 3}, /* Gain= 1.059 Exposure Index=39 */
+      {279, 3}, /* Gain= 1.090 Exposure Index=40 */
+      {287, 3}, /* Gain= 1.121 Exposure Index=41 */
+      {296, 3}, /* Gain= 1.156 Exposure Index=42 */
+      {305, 3}, /* Gain= 1.191 Exposure Index=43 */
+      {314, 3}, /* Gain= 1.227 Exposure Index=44 */
+      {323, 3}, /* Gain= 1.262 Exposure Index=45 */
+      {333, 3}, /* Gain= 1.301 Exposure Index=46 */
+      {257, 4}, /* Gain= 1.004 Exposure Index=47 */
+      {265, 4}, /* Gain= 1.035 Exposure Index=48 */
+      {273, 4}, /* Gain= 1.066 Exposure Index=49 */
+      {281, 4}, /* Gain= 1.098 Exposure Index=50 */
+      {289, 4}, /* Gain= 1.129 Exposure Index=51 */
+      {298, 4}, /* Gain= 1.164 Exposure Index=52 */
+      {307, 4}, /* Gain= 1.199 Exposure Index=53 */
+      {316, 4}, /* Gain= 1.234 Exposure Index=54 */
+      {260, 5}, /* Gain= 1.016 Exposure Index=55 */
+      {268, 5}, /* Gain= 1.047 Exposure Index=56 */
+      {276, 5}, /* Gain= 1.078 Exposure Index=57 */
+      {284, 5}, /* Gain= 1.109 Exposure Index=58 */
+      {293, 5}, /* Gain= 1.145 Exposure Index=59 */
+      {302, 5}, /* Gain= 1.180 Exposure Index=60 */
+      {259, 6}, /* Gain= 1.012 Exposure Index=61 */
+      {267, 6}, /* Gain= 1.043 Exposure Index=62 */
+      {275, 6}, /* Gain= 1.074 Exposure Index=63 */
+      {283, 6}, /* Gain= 1.105 Exposure Index=64 */
+      {291, 6}, /* Gain= 1.137 Exposure Index=65 */
+      {257, 7}, /* Gain= 1.004 Exposure Index=66 */
+      {265, 7}, /* Gain= 1.035 Exposure Index=67 */
+      {273, 7}, /* Gain= 1.066 Exposure Index=68 */
+      {281, 7}, /* Gain= 1.098 Exposure Index=69 */
+      {289, 7}, /* Gain= 1.129 Exposure Index=70 */
+      {260, 8}, /* Gain= 1.016 Exposure Index=71 */
+      {268, 8}, /* Gain= 1.047 Exposure Index=72 */
+      {276, 8}, /* Gain= 1.078 Exposure Index=73 */
+      {284, 8}, /* Gain= 1.109 Exposure Index=74 */
+      {260, 9}, /* Gain= 1.016 Exposure Index=75 */
+      {268, 9}, /* Gain= 1.047 Exposure Index=76 */
+      {276, 9}, /* Gain= 1.078 Exposure Index=77 */
+      {284, 9}, /* Gain= 1.109 Exposure Index=78 */
+      {263, 10}, /* Gain= 1.027 Exposure Index=79 */
+      {271, 10}, /* Gain= 1.059 Exposure Index=80 */
+      {279, 10}, /* Gain= 1.090 Exposure Index=81 */
+      {261, 11}, /* Gain= 1.020 Exposure Index=82 */
+      {269, 11}, /* Gain= 1.051 Exposure Index=83 */
+      {277, 11}, /* Gain= 1.082 Exposure Index=84 */
+      {262, 12}, /* Gain= 1.023 Exposure Index=85 */
+      {270, 12}, /* Gain= 1.055 Exposure Index=86 */
+      {257, 13}, /* Gain= 1.004 Exposure Index=87 */
+      {265, 13}, /* Gain= 1.035 Exposure Index=88 */
+      {273, 13}, /* Gain= 1.066 Exposure Index=89 */
+      {261, 14}, /* Gain= 1.020 Exposure Index=90 */
+      {269, 14}, /* Gain= 1.051 Exposure Index=91 */
+      {259, 15}, /* Gain= 1.012 Exposure Index=92 */
+      {267, 15}, /* Gain= 1.043 Exposure Index=93 */
+      {258, 16}, /* Gain= 1.008 Exposure Index=94 */
+      {266, 16}, /* Gain= 1.039 Exposure Index=95 */
+      {258, 17}, /* Gain= 1.008 Exposure Index=96 */
+      {266, 17}, /* Gain= 1.039 Exposure Index=97 */
+      {259, 18}, /* Gain= 1.012 Exposure Index=98 */
+      {267, 18}, /* Gain= 1.043 Exposure Index=99 */
+      {261, 19}, /* Gain= 1.020 Exposure Index=100 */
+      {269, 19}, /* Gain= 1.051 Exposure Index=101 */
+      {263, 20}, /* Gain= 1.027 Exposure Index=102 */
+      {258, 21}, /* Gain= 1.008 Exposure Index=103 */
+      {266, 21}, /* Gain= 1.039 Exposure Index=104 */
+      {262, 22}, /* Gain= 1.023 Exposure Index=105 */
+      {258, 23}, /* Gain= 1.008 Exposure Index=106 */
+      {266, 23}, /* Gain= 1.039 Exposure Index=107 */
+      {263, 24}, /* Gain= 1.027 Exposure Index=108 */
+      {260, 25}, /* Gain= 1.016 Exposure Index=109 */
+      {258, 26}, /* Gain= 1.008 Exposure Index=110 */
+      {266, 26}, /* Gain= 1.039 Exposure Index=111 */
+      {264, 27}, /* Gain= 1.031 Exposure Index=112 */
+      {262, 28}, /* Gain= 1.023 Exposure Index=113 */
+      {261, 29}, /* Gain= 1.020 Exposure Index=114 */
+      {260, 30}, /* Gain= 1.016 Exposure Index=115 */
+      {259, 31}, /* Gain= 1.012 Exposure Index=116 */
+      {258, 32}, /* Gain= 1.008 Exposure Index=117 */
+      {258, 33}, /* Gain= 1.008 Exposure Index=118 */
+      {258, 34}, /* Gain= 1.008 Exposure Index=119 */
+      {258, 35}, /* Gain= 1.008 Exposure Index=120 */
+      {258, 36}, /* Gain= 1.008 Exposure Index=121 */
+      {259, 37}, /* Gain= 1.012 Exposure Index=122 */
+      {260, 38}, /* Gain= 1.016 Exposure Index=123 */
+      {261, 39}, /* Gain= 1.020 Exposure Index=124 */
+      {262, 40}, /* Gain= 1.023 Exposure Index=125 */
+      {257, 42}, /* Gain= 1.004 Exposure Index=126 */
+      {259, 43}, /* Gain= 1.012 Exposure Index=127 */
+      {261, 44}, /* Gain= 1.020 Exposure Index=128 */
+      {257, 46}, /* Gain= 1.004 Exposure Index=129 */
+      {259, 47}, /* Gain= 1.012 Exposure Index=130 */
+      {261, 48}, /* Gain= 1.020 Exposure Index=131 */
+      {258, 50}, /* Gain= 1.008 Exposure Index=132 */
+      {261, 51}, /* Gain= 1.020 Exposure Index=133 */
+      {259, 53}, /* Gain= 1.012 Exposure Index=134 */
+      {257, 55}, /* Gain= 1.004 Exposure Index=135 */
+      {260, 56}, /* Gain= 1.016 Exposure Index=136 */
+      {259, 58}, /* Gain= 1.012 Exposure Index=137 */
+      {258, 60}, /* Gain= 1.008 Exposure Index=138 */
+      {257, 62}, /* Gain= 1.004 Exposure Index=139 */
+      {256, 64}, /* Gain= 1.000 Exposure Index=140 */
+      {260, 65}, /* Gain= 1.016 Exposure Index=141 */
+      {260, 67}, /* Gain= 1.016 Exposure Index=142 */
+      {256, 70}, /* Gain= 1.000 Exposure Index=143 */
+      {256, 72}, /* Gain= 1.000 Exposure Index=144 */
+      {257, 74}, /* Gain= 1.004 Exposure Index=145 */
+      {258, 76}, /* Gain= 1.008 Exposure Index=146 */
+      {259, 78}, /* Gain= 1.012 Exposure Index=147 */
+      {257, 81}, /* Gain= 1.004 Exposure Index=148 */
+      {258, 83}, /* Gain= 1.008 Exposure Index=149 */
+      {256, 86}, /* Gain= 1.000 Exposure Index=150 */
+      {258, 88}, /* Gain= 1.008 Exposure Index=151 */
+      {257, 91}, /* Gain= 1.004 Exposure Index=152 */
+      {256, 94}, /* Gain= 1.000 Exposure Index=153 */
+      {258, 96}, /* Gain= 1.008 Exposure Index=154 */
+      {258, 99}, /* Gain= 1.008 Exposure Index=155 */
+      {258, 102}, /* Gain= 1.008 Exposure Index=156 */
+      {258, 105}, /* Gain= 1.008 Exposure Index=157 */
+      {258, 108}, /* Gain= 1.008 Exposure Index=158 */
+      {256, 112}, /* Gain= 1.000 Exposure Index=159 */
+      {257, 115}, /* Gain= 1.004 Exposure Index=160 */
+      {258, 118}, /* Gain= 1.008 Exposure Index=161 */
+      {257, 122}, /* Gain= 1.004 Exposure Index=162 */
+      {256, 126}, /* Gain= 1.000 Exposure Index=163 */
+      {258, 129}, /* Gain= 1.008 Exposure Index=164 */
+      {258, 133}, /* Gain= 1.008 Exposure Index=165 */
+      {256, 138}, /* Gain= 1.000 Exposure Index=166 */
+      {256, 142}, /* Gain= 1.000 Exposure Index=167 */
+      {256, 146}, /* Gain= 1.000 Exposure Index=168 */
+      {257, 150}, /* Gain= 1.004 Exposure Index=169 */
+      {256, 155}, /* Gain= 1.000 Exposure Index=170 */
+      {257, 159}, /* Gain= 1.004 Exposure Index=171 */
+      {257, 164}, /* Gain= 1.004 Exposure Index=172 */
+      {257, 169}, /* Gain= 1.004 Exposure Index=173 */
+      {257, 174}, /* Gain= 1.004 Exposure Index=174 */
+      {257, 179}, /* Gain= 1.004 Exposure Index=175 */
+      {256, 185}, /* Gain= 1.000 Exposure Index=176 */
+      {257, 190}, /* Gain= 1.004 Exposure Index=177 */
+      {257, 196}, /* Gain= 1.004 Exposure Index=178 */
+      {257, 202}, /* Gain= 1.004 Exposure Index=179 */
+      {257, 208}, /* Gain= 1.004 Exposure Index=180 */
+      {256, 215}, /* Gain= 1.000 Exposure Index=181 */
+      {257, 221}, /* Gain= 1.004 Exposure Index=182 */
+      {257, 228}, /* Gain= 1.004 Exposure Index=183 */
+      {257, 235}, /* Gain= 1.004 Exposure Index=184 */
+      {257, 242}, /* Gain= 1.004 Exposure Index=185 */
+      {256, 250}, /* Gain= 1.000 Exposure Index=186 */
+      {256, 257}, /* Gain= 1.000 Exposure Index=187 */
+      {257, 264}, /* Gain= 1.004 Exposure Index=188 */
+      {257, 272}, /* Gain= 1.004 Exposure Index=189 */
+      {256, 281}, /* Gain= 1.000 Exposure Index=190 */
+      {256, 289}, /* Gain= 1.000 Exposure Index=191 */
+      {257, 297}, /* Gain= 1.004 Exposure Index=192 */
+      {256, 307}, /* Gain= 1.000 Exposure Index=193 */
+      {256, 316}, /* Gain= 1.000 Exposure Index=194 */
+      {256, 325}, /* Gain= 1.000 Exposure Index=195 */
+      {257, 334}, /* Gain= 1.004 Exposure Index=196 */
+      {256, 345}, /* Gain= 1.000 Exposure Index=197 */
+      {256, 355}, /* Gain= 1.000 Exposure Index=198 */
+      {256, 365}, /* Gain= 1.000 Exposure Index=199 */
+      {257, 375}, /* Gain= 1.004 Exposure Index=200 */
+      {257, 387}, /* Gain= 1.004 Exposure Index=201 */
+      {256, 400}, /* Gain= 1.000 Exposure Index=202 */
+      {256, 412}, /* Gain= 1.000 Exposure Index=203 */
+      {256, 424}, /* Gain= 1.000 Exposure Index=204 */
+      {256, 436}, /* Gain= 1.000 Exposure Index=205 */
+      {256, 449}, /* Gain= 1.000 Exposure Index=206 */
+      {256, 462}, /* Gain= 1.000 Exposure Index=207 */
+      {256, 475}, /* Gain= 1.000 Exposure Index=208 */
+      {256, 489}, /* Gain= 1.000 Exposure Index=209 */
+      {256, 503}, /* Gain= 1.000 Exposure Index=210 */
+      {256, 518}, /* Gain= 1.000 Exposure Index=211 */
+      {256, 533}, /* Gain= 1.000 Exposure Index=212 */
+      {256, 548}, /* Gain= 1.000 Exposure Index=213 */
+      {256, 564}, /* Gain= 1.000 Exposure Index=214 */
+      {256, 580}, /* Gain= 1.000 Exposure Index=215 */
+      {256, 597}, /* Gain= 1.000 Exposure Index=216 */
+      {256, 614}, /* Gain= 1.000 Exposure Index=217 */
+      {256, 632}, /* Gain= 1.000 Exposure Index=218 */
+      {256, 650}, /* Gain= 1.000 Exposure Index=219 */
+      {256, 669}, /* Gain= 1.000 Exposure Index=220 */
+      {256, 689}, /* Gain= 1.000 Exposure Index=221 */
+      {256, 709}, /* Gain= 1.000 Exposure Index=222 */
+      {256, 730}, /* Gain= 1.000 Exposure Index=223 */
+      {256, 751}, /* Gain= 1.000 Exposure Index=224 */
+      {256, 773}, /* Gain= 1.000 Exposure Index=225 */
+      {256, 796}, /* Gain= 1.000 Exposure Index=226 */
+      {256, 819}, /* Gain= 1.000 Exposure Index=227 */
+      {256, 843}, /* Gain= 1.000 Exposure Index=228 */
+      {256, 868}, /* Gain= 1.000 Exposure Index=229 */
+      {256, 894}, /* Gain= 1.000 Exposure Index=230 */
+      {256, 920}, /* Gain= 1.000 Exposure Index=231 */
+      {256, 947}, /* Gain= 1.000 Exposure Index=232 */
+      {256, 975}, /* Gain= 1.000 Exposure Index=233 */
+      {256, 1004}, /* Gain= 1.000 Exposure Index=234 */
+      {256, 1034}, /* Gain= 1.000 Exposure Index=235 */
+      {256, 1065}, /* Gain= 1.000 Exposure Index=236 */
+      {256, 1096}, /* Gain= 1.000 Exposure Index=237 */
+      {256, 1128}, /* Gain= 1.000 Exposure Index=238 */
+      {256, 1161}, /* Gain= 1.000 Exposure Index=239 */
+      {256, 1195}, /* Gain= 1.000 Exposure Index=240 */
+      {256, 1230}, /* Gain= 1.000 Exposure Index=241 */
+      {256, 1266}, /* Gain= 1.000 Exposure Index=242 */
+      {261, 1279}, /* Gain= 1.020 Exposure Index=243 */
+      {269, 1279}, /* Gain= 1.051 Exposure Index=244 */
+      {277, 1279}, /* Gain= 1.082 Exposure Index=245 */
+      {285, 1279}, /* Gain= 1.113 Exposure Index=246 */
+      {294, 1279}, /* Gain= 1.148 Exposure Index=247 */
+      {303, 1279}, /* Gain= 1.184 Exposure Index=248 */
+      {312, 1279}, /* Gain= 1.219 Exposure Index=249 */
+      {321, 1279}, /* Gain= 1.254 Exposure Index=250 */
+      {331, 1279}, /* Gain= 1.293 Exposure Index=251 */
+      {341, 1279}, /* Gain= 1.332 Exposure Index=252 */
+      {351, 1279}, /* Gain= 1.371 Exposure Index=253 */
+      {362, 1279}, /* Gain= 1.414 Exposure Index=254 */
+      {373, 1279}, /* Gain= 1.457 Exposure Index=255 */
+      {384, 1279}, /* Gain= 1.500 Exposure Index=256 */
+      {396, 1279}, /* Gain= 1.547 Exposure Index=257 */
+      {408, 1279}, /* Gain= 1.594 Exposure Index=258 */
+      {420, 1279}, /* Gain= 1.641 Exposure Index=259 */
+      {433, 1279}, /* Gain= 1.691 Exposure Index=260 */
+      {446, 1279}, /* Gain= 1.742 Exposure Index=261 */
+      {459, 1279}, /* Gain= 1.793 Exposure Index=262 */
+      {473, 1279}, /* Gain= 1.848 Exposure Index=263 */
+      {487, 1279}, /* Gain= 1.902 Exposure Index=264 */
+      {502, 1279}, /* Gain= 1.961 Exposure Index=265 */
+      {517, 1279}, /* Gain= 2.020 Exposure Index=266 */
+      {533, 1279}, /* Gain= 2.082 Exposure Index=267 */
+      {549, 1279}, /* Gain= 2.145 Exposure Index=268 */
+      {565, 1279}, /* Gain= 2.207 Exposure Index=269 */
+      {582, 1279}, /* Gain= 2.273 Exposure Index=270 */
+      {599, 1279}, /* Gain= 2.340 Exposure Index=271 */
+      {617, 1279}, /* Gain= 2.410 Exposure Index=272 */
+      {636, 1279}, /* Gain= 2.484 Exposure Index=273 */
+      {655, 1279}, /* Gain= 2.559 Exposure Index=274 */
+      {675, 1279}, /* Gain= 2.637 Exposure Index=275 */
+      {695, 1279}, /* Gain= 2.715 Exposure Index=276 */
+      {716, 1279}, /* Gain= 2.797 Exposure Index=277 */
+      {737, 1279}, /* Gain= 2.879 Exposure Index=278 */
+      {759, 1279}, /* Gain= 2.965 Exposure Index=279 */
+      {782, 1279}, /* Gain= 3.055 Exposure Index=280 */
+      {805, 1279}, /* Gain= 3.145 Exposure Index=281 */
+      {829, 1279}, /* Gain= 3.238 Exposure Index=282 */
+      {854, 1279}, /* Gain= 3.336 Exposure Index=283 */
+      {880, 1279}, /* Gain= 3.438 Exposure Index=284 */
+      {906, 1279}, /* Gain= 3.539 Exposure Index=285 */
+      {933, 1279}, /* Gain= 3.645 Exposure Index=286 */
+      {961, 1279}, /* Gain= 3.754 Exposure Index=287 */
+      {990, 1279}, /* Gain= 3.867 Exposure Index=288 */
+      {1020, 1279}, /* Gain= 3.984 Exposure Index=289 */
+      {1051, 1279}, /* Gain= 4.105 Exposure Index=290 */
+      {1083, 1279}, /* Gain= 4.230 Exposure Index=291 */
+      {1115, 1279}, /* Gain= 4.355 Exposure Index=292 */
+      {1148, 1279}, /* Gain= 4.484 Exposure Index=293 */
+      {1182, 1279}, /* Gain= 4.617 Exposure Index=294 */
+      {1217, 1279}, /* Gain= 4.754 Exposure Index=295 */
+      {1254, 1279}, /* Gain= 4.898 Exposure Index=296 */
+      {1292, 1279}, /* Gain= 5.047 Exposure Index=297 */
+      {1331, 1279}, /* Gain= 5.199 Exposure Index=298 */
+      {1371, 1279}, /* Gain= 5.355 Exposure Index=299 */
+      {1412, 1279}, /* Gain= 5.516 Exposure Index=300 */
+      {1454, 1279}, /* Gain= 5.680 Exposure Index=301 */
+      {1498, 1279}, /* Gain= 5.852 Exposure Index=302 */
+      {1543, 1279}, /* Gain= 6.027 Exposure Index=303 */
+      {1589, 1279}, /* Gain= 6.207 Exposure Index=304 */
+      {1637, 1279}, /* Gain= 6.395 Exposure Index=305 */
+      {1686, 1279}, /* Gain= 6.586 Exposure Index=306 */
+      {1737, 1279}, /* Gain= 6.785 Exposure Index=307 */
+      {1789, 1279}, /* Gain= 6.988 Exposure Index=308 */
+      {1843, 1279}, /* Gain= 7.199 Exposure Index=309 */
+      {1898, 1279}, /* Gain= 7.414 Exposure Index=310 */
+      {1955, 1279}, /* Gain= 7.637 Exposure Index=311 */
+      {2014, 1279}, /* Gain= 7.867 Exposure Index=312 */
+      {2048, 1279}, /* Gain= 8.000 Exposure Index=313 */
+      {2048, 1317}, /* Gain= 8.000 Exposure Index=314 */
+      {2048, 1356}, /* Gain= 8.000 Exposure Index=315 */
+      {2048, 1396}, /* Gain= 8.000 Exposure Index=316 */
+      {2048, 1437}, /* Gain= 8.000 Exposure Index=317 */
+      {2048, 1480}, /* Gain= 8.000 Exposure Index=318 */
+      {2048, 1524}, /* Gain= 8.000 Exposure Index=319 */
+      {2048, 1569}, /* Gain= 8.000 Exposure Index=320 */
+      {2048, 1616}, /* Gain= 8.000 Exposure Index=321 */
+      {2048, 1664}, /* Gain= 8.000 Exposure Index=322 */
+      {2048, 1713}, /* Gain= 8.000 Exposure Index=323 */
+      {2048, 1764}, /* Gain= 8.000 Exposure Index=324 */
+      {2048, 1816}, /* Gain= 8.000 Exposure Index=325 */
+      {2048, 1870}, /* Gain= 8.000 Exposure Index=326 */
+      {2048, 1926}, /* Gain= 8.000 Exposure Index=327 */
+      {2048, 1983}, /* Gain= 8.000 Exposure Index=328 */
+      {2048, 2042}, /* Gain= 8.000 Exposure Index=329 */
+      {2048, 2103}, /* Gain= 8.000 Exposure Index=330 */
+      {2048, 2166}, /* Gain= 8.000 Exposure Index=331 */
+      {2048, 2230}, /* Gain= 8.000 Exposure Index=332 */
+      {2048, 2296}, /* Gain= 8.000 Exposure Index=333 */
+      {2048, 2364}, /* Gain= 8.000 Exposure Index=334 */
+      {2048, 2434}, /* Gain= 8.000 Exposure Index=335 */
+      {2048, 2507}, /* Gain= 8.000 Exposure Index=336 */
+      {2048, 2582}, /* Gain= 8.000 Exposure Index=337 */
+      {2048, 2659}, /* Gain= 8.000 Exposure Index=338 */
+      {2048, 2738}, /* Gain= 8.000 Exposure Index=339 */
+      {2048, 2820}, /* Gain= 8.000 Exposure Index=340 */
+      {2048, 2904}, /* Gain= 8.000 Exposure Index=341 */
+      {2048, 2991}, /* Gain= 8.000 Exposure Index=342 */
+      {2048, 3080}, /* Gain= 8.000 Exposure Index=343 */
+      {2048, 3172}, /* Gain= 8.000 Exposure Index=344 */
+      {2048, 3267}, /* Gain= 8.000 Exposure Index=345 */
+      {2048, 3365}, /* Gain= 8.000 Exposure Index=346 */
+      {2048, 3465}, /* Gain= 8.000 Exposure Index=347 */
+      {2048, 3568}, /* Gain= 8.000 Exposure Index=348 */
+      {2048, 3675}, /* Gain= 8.000 Exposure Index=349 */
+      {2048, 3785} /* Gain= 8.000 Exposure Index=350 */
+   },
+},
+
+/*********************************************************************/
+// Feature name :
+// Luma target is used for AEC. These values are the Y value before gamma
+// in the linear domain, it includes the result from sensor exposure,
+// analog gain, and digital gain.
+// Range: 20 to 100.
+// Effect: Larger value results in brighter images.
+//
+/*********************************************************************/
+
+59, /* Default Luma Target */
+60, /* Outdoor Luma Target */
+59, /* Low-Light Luma Target */
+
+/*********************************************************************/
+// Feature name :
+// Luma tolerance is used in AEC.
+// Range: 2 to 8.
+// Effect: Larger value results in stable and fast AEC convergence but
+//   the picture brightness is not consistent.
+//
+/*********************************************************************/
+
+2, /* Luma Tolerance */
+
+/*********************************************************************/
+// Feature name :
+// Exposure index adj step is tied to exposure table. It is 1/(log(step size)).
+// 77.9 corresponds to 3% exposure step size.
+// We do not recommend the user change this value unless exposure table step size is changed.
+/*********************************************************************/
+
+77.900002f, /* Exposure Index Adj Step */
+
+/*********************************************************************/
+// Feature name :
+// ISO 100 gain is calibrated by Chromatix tool.
+/*********************************************************************/
+
+1.000000f, /* ISO 100 Gain */
+
+/*********************************************************************/
+// Feature name :
+// AEC indoor index and outdoor index are used in some dynamic EV related
+// features. We recommand not to modify these values.
+/*********************************************************************/
+
+260, /* AEC Indoor Index */
+160, /* AEC Outdoor Index */
+
+/*********************************************************************/
+// Feature name :
+// Max snapshot exposure time allowed is defined in seconds. It is used
+// for lowlight snapshot.
+// Effect: Larger value will result in lower noise image but with more blur.
+/*********************************************************************/
+
+0.500000f, /* Max Snapshot Exposure Time Allowed */
+
+/*********************************************************************/
+// Feature name :
+// AEC aggresiveness determines AEC convergence speed.
+// Range: 0 to 1.
+// Effect: Higher value results in faster convergence.
+/*********************************************************************/
+
+0.800000f, /* Aggressiveness */
+
+/*********************************************************************/
+// Feature name :
+// For linear AFR case, Fix FPS AEC Table Index is the last index
+// in the exposure table before the frame rate is changed. User should not manually
+// change this value, it is determine by Chromatix tool based on exposure table.
+// This parameter is not used for non linear AFR case.
+/*********************************************************************/
+
+312, /* Fix FPS AEC Table Index */
+
+/*********************************************************************/
+// Feature name :
+// Linear AFR flag determines if linear AFR algorithm is used for frame
+// rate control.
+// Effect: 1 means linear AFR is used and the AFR table at the end of
+// this file will not be used.
+//   0 means linear AFR is not used and a meaningful AFR table must
+// be provided at the end of this header.
+/*********************************************************************/
+
+1, /* Linear AFR Support */
+
+/*********************************************************************/
+// Feature name :
+// High luma region threshold is used for indoor snapshot only as part of dynamic
+// EV feature.
+// Range: 80 to 255.
+// Effect: Lower value tends to avoid over exposure areas for indoor snapshot
+//   pictures.  Setting to 255 will remove the effect of this feature.
+/*********************************************************************/
+
+255, /* High Luma Region Threshold */
+
+/******************************************************************************/
+// Feature name : AEC bright_region
+// Feature name : Bright region discrimination.
+//  This is a dynamic EV feature for OUTDOOR only, it will increase luma target
+//  when there are a large amount very bright areas in the pictures.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview and snapshot
+//
+// variable name: is_supported
+// Enables bright region feture.
+// default value: 0
+// data range: 0 or 1
+// constraints: None
+// effect: Enables feature.
+//
+// variable name: reduction
+// How bright regions influence will be reduced.
+// default value: 0.5
+// data range: 0 to 1
+// constraints: None
+// effect: 1 means bright region will not influence luma calculation. 0 completely
+//  discards bright region from luma calculation.
+//
+// variable name: threshold_LO
+// Threshold to compare AEC stats regions when lux_idx is at lux_index_LO.
+// default value (calculated): 4 * Default Luma Target
+// data range: 0 to 256
+// constraints: Must be higher than threshold_HI
+// effect: 0 detects all regions as bright, 256 detects none, disable feature.
+//  Tends to make image brighter at presence of bright areas.
+//
+// variable name: lux_index_LO
+// Trigger point to calculate thershold used for bright region feature.
+//  Pairs with threshold_LO.
+// default value (calculated):  AEC outdoor index – 25
+// data range: 0 to Max exp table index
+// constraints: Higher value than lux_index_HI
+// effect: Determines when bright region feature starts to get used.
+//
+// variable name:threshold_HI
+// Threshold to compare AEC stats regions when lux_idx is at lux_index_HI.
+// default value (calculated): 2.5 * Default Luma Target
+// data range: 0 to 256
+// constraints: Lower value than lux_index_LO
+// effect: Determines in outdoor type scenes when a region is considered very bright
+//  so it can be discarded from luma calculation.
+//
+// variable name: lux_index_HI
+// Trigger point to calculate thershold used for bright region feature.
+//  Pairs with threshold_HI.
+// default value (calculated): AEC Outdoor Index/2
+// data range: 0 to Max exp table index
+// constraints: Smaller value than lux_index_LO
+// effect: Determines when bright region feature max effect takes place.
+//
+// variable name: discard_ratio
+// Percent of regions' biases that may be modified by bright region.
+// default value: 0.5
+// data range: 0 to 0.5
+// constraints: 0 disbles feature.  Algorithm caps at 0.5,
+// effect: 0 disables feature, higher value allowes more regions to get discarded
+//  from luma calculation.
+/******************************************************************************/
+
+/* AEC Bright Region */
+{
+   0, /* Is Supported? */
+   0.500000f, /* Reduction */
+   232, /* Threshold Low */
+   145, /* Lux Index Low */
+   145, /* Threshold High */
+   85, /* Lux Index High */
+   0.500000f, /* Discard Ratio */
+},
+
+/******************************************************************************/
+// Feature name : AEC dark_region
+// Feature name : Dark region discrimination .
+//  This is a dynamic EV feature for indoor and outdoor, it will decrease luma target when there
+//  are a large amount very dark areas in the pictures. It applies to both viewfinder and snapshot.
+// applicale chipset(s):All MSM
+// applicable operation mode: Preview and snapshot
+//
+// variable name: is_supported
+// Enables feature.
+// default value: 0
+// data range: 0 and 1
+// constraints: none
+// effect: Detects regions that are dark and reduces their effect on luma
+//  calculation.
+//
+// variable name: threshold_LO
+// Any region below this brightness
+//  value will be not used for luma calculation.
+// default value: 0.1
+// data range: 0 to 0.1
+// constraints: None
+// effect: Lower Value reduces impact of feature. Tend to make image darker
+//  in presence of dark and bright objects in the scene.
+//
+// variable name:threshold_HI
+// Any region above this brightness
+//  value will be not used for luma calculation.
+// default value: 0.5
+// data range: 0 to 0.8
+// constraints: None
+// effect: Higher value increases effect of dark region feature. Tend to make
+//  image darker in presence of dark and bright objects in the scene.
+//
+// variable name: discard_ratio
+// Percent of regions' biases that may be modified by bright region.
+// default value: 0.5
+// data range: 0 to 0.5
+// constraints: None
+// effect: 0 disables the feature.
+/******************************************************************************/
+
+/* AEC Dark Region */
+{
+   0, /* Is Supported? */
+   0.100000f, /* Threshold Low */
+   0.500000f, /* Threshold Hi */
+   0.500000f, /* Discard Ratio */
+},
+
+/******************************************************************************/
+// Feature name : AEC LED
+// variable name: wled_trigger_idx
+// Lux index when LED strobe will start to
+//  be used.  Anytime lux-idx is higher than this, it will flag for LED usage.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview and snapshot.
+// default value (calculated) : Max Exposure Table Index-1
+// data range: 0 to max lux_idx
+// constraints: None
+// effect: 0 will always make LED strobe to be used. Larger value requires scene
+//  to be darker to LED to be used.
+/******************************************************************************/
+
+349, /* wLED Trigger Index */
+
+/******************************************************************************/
+// Feature name : AEC LED
+// variable name: aec_led_preview_flux
+// Amount of light flux emitted by LED in preview.
+// applicale chipset(s): All MSM
+// applicable operation mode: Preview
+// default value: 1
+// data range: Any positive number
+// constraints: None
+// effect: Ratio between aec_led_preview_flux and aec_led_snapshot_flux determines
+//  AEC compensation to be used.
+/******************************************************************************/
+
+1.000000f, /* AEC LED Preview Flux */
+
+/******************************************************************************/
+// Feature name : AEC LED
+// applicale chipset(s):All
+// applicable operation mode:Snapshot
+//
+// variable name: aec_led_snapshot_flux_hi
+// Sets LED flux output at highest current
+//  mode.  LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 4.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+//
+// variable name: aec_led_snapshot_flux_med
+// Sets LED flux output at medium current
+//  mode. LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 1.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+//
+// variable name: aec_led_snapshot_flux_low
+// Sets LED flux output at low current
+//  mode. LED power to be used is determined by available power on battery
+//  for this feature, which is customizable by OEM.
+// default value: 1.0
+// data range: 1.0 to 1000
+// constraints: Positive number
+// effect: Higher values means LED outputs more lumen.  If brighter image is
+//  needed, make this value smaller, for darker image make value higher.
+/******************************************************************************/
+
+1.000000f, /* AEC LED Snapshot Flux Hi */
+1.000000f, /* AEC LED Snapshot Flux Med */
+1.000000f, /* AEC LED Snapshot Flux Low */
+
+/******************************************************************************/
+// Feature name : AEC Motion ISO
+// applicale chipset(s):All MSM
+// applicable operation mode: snapshot, preview, and video
+// (Defaults are same for all 3 modes)
+//
+// variable name: motion_iso_enable
+// motion_iso_enable
+// default value: 0
+// data range: 0 or 1
+// constraints: None
+// effect: Enables motion ISO feature. while scenes are changing or moving,
+//  higher AE gains are used in efforts to reduce motion blur.
+//
+// variable name: motion_iso_aggressiveness
+// Determines how fast motion effect is applied
+//  to preview and snapshot.  Higher values cause gains to react rapidly upon any
+//  motion detection.
+// default value: 0.5
+// data range: 0.01 to 1
+// constraints: None
+// effect: Lower value makes motion to take longer to affect gains and exposure
+//  times and also longer to dissipate.
+//
+// variable name: motion_iso_threshold
+// Motion metric caclulated by algorithm
+// is compared to this threshold, if higher thant motion ISO is applied.
+// default value: 40
+// data range: Any positive value.
+// constraints: Depending on sensor noise, this threshold needs to be adjusted
+//   to make sure sensor noise is not triggering motion iso.  Value also needs
+//   be adjusted based on 256 or 64 AE stats region mode used.
+// effect: Lower value trigger motion ISO sooner.  Higher value requires
+//  more scene motion to trigger feature.
+//
+// variable name:motion_iso_max_gain
+// Max gain allowed to be used when motion ISO feature is triggered.
+// default value (calculated):  2 *  Max Exposure Table Gain.
+// data range: max AEC table gain to max gain supported by system.
+// constraints: If this value is set to default normal mode max gain, motion
+//  ISO will have no effect in low light.
+// effect: Higher gains allow more Motion ISO effect for low light scenes.
+//  Expect higher noise due to high gains used.
+/******************************************************************************/
+
+/* Snapshot Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+/* Preview Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+/* Video Motion ISO */
+{
+   0, /* Enable */
+   0.500000f, /* Aggressiveness */
+   40.000000f, /* Threshold */
+   16.000000f, /* Max Gain */
+},
+
+/******************************************************************************/
+// Feature name : AEC Snapshot LUT
+// applicale chipset(s):All MSM
+// applicable operation mode: Snapshot
+//
+// variable name: enable
+// Allows snapshot to maximize exposure time used when luma target
+//  cannot be reached.
+// default value: 0
+// data range: 0 or 1
+// constraints: LUT needs to be entered or wrong snapshot brightness may ocurr.
+// effect: Allows snapshot gains and exposure times to be modified by a
+//  snapshot_ae_table LUT.
+//
+// variable name: exposure_stretch_enable
+// default value: 0
+// data range: 0 and 1
+// constraints: None
+// effect: Allowing auto stretch will cause snapshot to be brighter than preview
+//  when preview does not reach luma target.
+//
+// variable name: valid_entries
+// Number of entries used in ae_table LUT.
+// default value: 2
+// data range: 2 to 10
+// constraints: None
+// effect: Higher values allow more entries in LUT.
+//
+// variable name: snapshot_ae_table
+// Each entry contains a triplet of settings:
+//  lux_index, gain_trade_off, max_exp_time
+// default value: {0, 1/2, 0.200}, {1000, 1/2, 0.200}
+// data range: lux_index --> 0 to 1000
+//             gain_trade_off --> 1 to .1 (1 means keep preview gain, .1 means reduce gain 10 times)
+//             max_exp_time --> 1 (up to number of seconds allowed of exposure)
+// constraints: None
+// effect: By setting this LUT, at specified lux_idx the gain tradeoff and exposure
+//  caps will be used.  At lux_idx between entries, gain trade-offs and exposure
+//  caps will be linearly interpolated.
+/******************************************************************************/
+
+/* AEC Snapshot Exposure */
+{
+   1, /* Enable */
+   0, /* Stretch Enable */
+   2, /* Valid Entries */
+   /* Snapshot Table */
+   {
+      /* 0 */
+      {
+         0,
+         0.500000f,
+         0.200000f
+      },
+      /* 1 */
+      {
+         1000,
+         0.500000f,
+         0.200000f
+      },
+      /* 2 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 3 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 4 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 5 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 6 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 7 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 8 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+      /* 9 */
+      {
+         0,
+         0.000000f,
+         0.000000f
+      },
+   },
+},
+
+/******************************************************************************/
+// Feature name : camcorder aec convergence
+// variable name: aec_holding_time_adj
+// Adjust camcorder aec convergence.
+// applicale chipset(s): all MSM
+// applicable operation mode: camcorder preview/recording
+// default value: 0
+// data range: -10 to 10
+// constraints: none
+// effect: larger value, longer holding time. Negative number, shorter holding time
+/******************************************************************************/
+
+0, /* Convergence Holding Time Adjust */
+
+/*********************************************************************/
+// Feature name :
+// The following framerate information should reflect the sensor driver setting.
+// They should be in sync with the sensor driver capability. Forcefully
+// changing their values will NOT actually change the frame, instead it may
+// cause issues with internal alogirhms that use this information as input.
+/*********************************************************************/
+
+30.000000f, /* Max Video FPS */
+
+/******************************************************************************/
+// variable name: max_sensitivity_lux_index
+// Max lux_index when luma target is able to be reached.
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value (calculated) : Max Exposure Table Index
+// Data Range: 0 to 1000
+// constraints: none
+// effect: we do not set this value, it is a value determined by exp table
+//         and supported FPS.
+// Other info: Currently linear AFR case is used. For non-linear AFR case, default is
+//                max_exp_index + (Num_FPS-1)*(max_FPS/min_FPS)*23
+/******************************************************************************/
+
+350, /* Max Sensitivity Lux Index */
+
+/******************************************************************************/
+// variable name: AEC_weight_center_weighted
+// Weight for each AEC STATs region under center weighted mode
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value:
+// Data Range: N/A
+// constraints: none
+// effect: region with higher weight value has more influence to AEC.
+/******************************************************************************/
+
+/* Center Weighted */
+{
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 2.400000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+   {
+      0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f, 0.533000f
+   },
+},
+
+/******************************************************************************/
+// variable name: AEC_weight_spot_weighted
+// Weight for each AEC STATs region under spot weighted mode
+// applicable chipset:  all chipsets
+// 3A version: N/A
+// applicable operation mode: preview and snapshot
+// default Value:
+// Data Range: N/A
+// constraints: none
+// effect: region with higher weight value has more influence to AEC.
+/******************************************************************************/
+
+/* Spot Weighted */
+{
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+   {
+      0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f
+   },
+},
+/* Strobe Flash */
+{
+
+/******************************************************************************/
+// Feature name: AEC strobe flash estimation.
+// Applicable chipset:  7k and newer supporting strobe flash and precision timers.
+// 3A version: 2.1
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: strobe_flash_enable.
+// 1 (TRUE) uses strobe flash estimation,
+// 0 (FALSE) no flash estimation used for AEC.
+// Default value: 0.
+// Data range: 0 or 1.
+// Constraints: None.
+//
+// Variable name: strobe_min_time.
+// Preflash strobe trigger time used. Also minimum strobe trigger
+//  time (microseconds scale) used for snapshot.
+// Default value: 10.
+// Data range: 5 or 1000  (0us to 1ms).
+// Constraints: Need to verify that strobe capacitor is not discharged too much
+//              so rest of charge can be used for snapshot capture.
+// Effect: Some strobes require specify minimum strobe trigger time. If made
+//         shorter then strobe intensity is not consistent from flash to flash
+//         or strobe will not fire.
+//
+// Variable name: intersect_time_gain.
+// Trigger time where strobe output light gain starts to
+//  compress with respect to trigger time.
+// Default value: 7.
+// Data range: 1 to 20.
+// Constraints: None.
+//
+// Variable name: post_intersect_strobe_flux_rate_increase.
+// After compression point determined by trigger time set in
+//  intersect_time_gain, this value specifies the
+//  trigger time increment for each 1x strobe light flux gain increment.
+// Default value: 138.
+// Data range: 1 to 1000 in us.
+// Constraints: None.
+//
+// Variable name: max_strobe_gain.
+// Max strobe gain available.
+// Default Value: 8.
+// Data Range: 1 to 20.
+// Constraints: None.
+// Effect: If value is too high, AWB may be wrong when strobe and ambient
+//  illuminants are mixed and scene is far such that strobe has little effect.
+//  AEC may show underexposed if value is higher than strobe is capable of.
+//
+// Variable name: strobe_flash_lux_idx_trigger.
+// When lux index is larger than this value
+//   Xenon strobe will be used if full frame exposure for snapshot contraint
+//   is met.
+// Default value (calculated) :  AEC Indoor Index + 46.
+// Data range: 0 to 1000.
+// Constraints: Lux_idx trigger may be met but if exposure time condition is
+//   not met, then flash won't be used.
+// Effect: Larger value will require scene to be darker for strobe to be used.
+/******************************************************************************/
+
+   0, /* Enable */
+   10, /* Min Time */
+   7.000000f, /* Intersect Time Gain */
+   138.000000f, /* Post Intersect Flux Rate Incrase */
+   8.000000f, /* Max Gain */
+   316, /* Lux Idx Trigger */
+},
+/* Touch */
+{
+
+/******************************************************************************/
+// Feature name : Touch AEC  3A 2.2
+// applicable chipset:  8k, 7x30 and newer.
+// 3A version : 2.2.
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: touch_roi_enable
+// 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+// default Value: 1
+// Data Range: 0 or 1
+// constraints:
+// effect: 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+//
+// variable name: touch_roi_weight
+// Determines influence or weight of UI (touch) area vs. normal
+//  AEC metering mode.
+// default Value: 0.8
+// Data Range: 0 to 1
+// constraints:
+// effect: 0 means no influence form UI selected area, 1 means "spot meter" on
+//         area selected.  0.5 means both selected area luma and normal AEC luma
+//         are averaged.
+/******************************************************************************/
+
+   1, /* ROI Enable */
+   0.800000f, /* Weight */
+},
+/* Face */
+{
+
+/******************************************************************************/
+// Feature name : Face priority AEC, 3A 2.2
+// applicable chipset:  7k and newer supporting face detection and interface
+//                      with auto exposure.
+// 3A version: 2.2
+// applicable operation mode: View finder and snapshot.
+//
+// variable name: aec_face_enable
+// 1 (TRUE) enables the feature, 0 (FALSE) disables the feature.
+// default Value: 0
+// Data Range: 0 or 1
+// constraints:
+// effect:
+//
+// variable name: aec_face_weight
+// Determines how much face area contributes for frame luma calculation.
+// default Value: 0.8
+// Data Range: 0 to 1
+// constraints:
+// effect: 1 means all influence comes from face area.  0 means face information
+// has no influence on AEC.
+//
+// variable name: dark_skin_ratio
+// Skin luma vs. white point luma ratio if close to this value
+//  then we set flag face as dark skin.
+// default Value: 0.3
+// Data Range: 0 to 1
+// constraints:
+// effect:
+//
+// variable name: light_skin_ratio
+// Skin luma vs. white point luma ratio if close to this value
+//  then we flag face as light skin.
+// default Value: 0.7
+// Data Range: 0 to 1
+// constraints:
+// effect:
+//
+// variable name: dark_skin_luma_target
+// Desired luma for dark skin face.
+// default Value (calculated): Default Luma Target * 0.8
+// Data Range: 0 to 255
+// constraints: To be applied post UI EV udpates.
+// effect: AEC tries to make a dark face luma achieve this target.
+//
+// variable name: light_skin_luma_target
+// Desiored luma for light skin face.
+// default Value (calculated): Default Luma Target * 1.2
+// Data Range: 0 to 255
+// constraints: To be applied post UI EV udpates.
+// effect: AEC tries to make a light face luma achieve this target.
+/******************************************************************************/
+
+   0, /* Enable */
+   0.800000f, /* Weight */
+   0.300000f, /* Dark Skin Ratio */
+   0.700000f, /* Light Skin Ratio */
+   40, /* Dark Skin Luma Target */
+   60, /* Light Skin Luma Target */
+},
+/* AEC Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AEC_motion_sensor_type to aide AEC in determining a change in
+//           scene
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: aec_gyro_trigger
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0.
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: aec_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: aec_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0
+// Data range: 0.0 to 360.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: aec_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0.
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+
+/******************************************************************************/
+// Feature name: Fast Convergence AEC for camera.
+// Applicable chipset(s): VFE 3.1 and later with Bayer support.
+// Applicable operation mode:  Camera mode only.
+//
+// Variable name: aec_fast_convergence_skip.
+// Frames to skip between exposure updates.
+// Default value:  2.
+// Data range: 1 to 5.
+// Constraints: If exposure updates happen before previous frame exposure
+//  updates are reflected on stats, aec oscillation may be present.  Increasing
+//  aec_fast_convergence_skip will remove the problem.
+// Effect: Larger values will slow down aec convergence, smaller values will
+//  converge faster but may cause instability if i2c and sensor updates are
+//  slow.
+//
+// variable name: aec_slow_convergence_skip.
+// Frames to skip between exposure updates.
+// Default value:  1.
+// Data range: 1 to 5.
+// Constraints: If exposure updates happen before previous frame exposure
+//  updates are reflected on stats, aec oscillation may be present.  Increasing
+//  aec_slow_convergence_skip will remove the problem.
+// Effect: Larger values will slow down aec convergence, smaller values will
+//  converge faster but may cause instability if i2c and sensor updates are
+//  slow.
+/******************************************************************************/
+
+2, /* AEC Fast Convergence Skip */
+1, /* AEC Slow Convergence Skip */
+
+/******************************************************************************/
+// Feature name : The following parameters are auto focus related. They should be
+//           obtained during AF characterization process.
+// Applicable chipset: All.
+// Applicable operation mode: Viewfinder.
+//
+// Variable name: num_gross_steps_between_stat_points.
+// Used to control how rough initial AF search (coarse search) is.
+// 3A version: 3.0
+// Default value: 4.
+// Data range: 3 to 6.
+// Constraints: None.
+// Effect: Larger value means more displacement between initial sampled
+//         points.  This would require more num_fine_search_points during
+//         subsequent search (fine search) to locate optimal ending AF lens
+//         position.
+//
+// Variable name: num_fine_steps_between_stat_points.
+// Used to control how precise subsequent AF search (fine search) is.
+// 3A version: 3.0
+// Default value: 1.
+// Data range: 1 or 2.
+// Constraints: Less than num_gross_steps_between_stat_points
+// Effect: The bigger the value is, the less likely AF lens ends in optimal
+//         position.
+//
+// Variable name: num_fine_search_points.
+// Used to control how many search points to be gather in fine search
+// 3A version: 3.0
+// Default value: 8.
+// Data range: Fixed as below.
+// Constraints: It is set to 2*num_gross_steps_between_stat_points to cover
+//              entire range of coarse search's neighboring sampled points.
+// Effect: If it is less than 2*num_gross_steps_between_stat_points, AF
+//         precision maybe lost.
+//
+// Variable name: position_near_end.
+// Used to control how far lens can move away from mechanical stop.  It is
+// defined in term of indices, where position_far_end > position_near_end.
+// 3A version: 3.0
+// Default value: 0.
+// Data range: 0 to (position_far_end – 1).
+// Constraints: Less than position_far_end. Total steps for AF lens to travel
+//              = position_far_end - position_near_end.  For sanity check, it
+//              should be more than 20 steps.
+// Effect: Non-zero means we are limiting AF travel range even more than the
+//         values obtained from AF tuning.  For example, if AF lens on the final
+//         production modules move 8 steps beyond the necessary MACRO focused
+//         distance, we can reduce travel range by setting position_near_end
+//         to 8 (or less to account for module-to-module variation).
+//
+// Variable name: position_default_in_macro.
+// Placeholder. For future use.
+//
+// variable name: position_boundary
+// Used to control how far lens can move away from mechanical stop in NORMAL search
+// mode.
+// 3A version: 3.0
+// Default value: 0 (To be tuned later).
+// Data range: 0 to (position_far_end – 1).
+// Constraints: Less than position_far_end.
+// Effect: The closer it is to position_far_end, the less steps AF lens is allowed
+//         to travel in NORMAL search mode.
+//
+// variable name: position_default_in_normal.
+// Placeholder. For future use
+//
+// variable name: undershoot_protect
+// Boolean flag to enable/disable the feature
+// 3A version: 3.0
+// default value: 0 (disable)
+// data range: 0 (enable) or 1 (disable)
+// constraints: the degree of protection from undershoot will be depends on undershoot_adjust
+//              variable
+// effect: If this feature is enabled, lens will move more in one direction over the other direction.
+//                               This is needed when it is determined that AF actuator has severe hysteresis on its movement
+//         during characterization process. The feature compensate hysteresis by moving the lens more
+//         in either forward or backward direction.
+//
+//
+// variable name: undershoot_adjust;
+// Used when undershoot protection is enabled.
+// 3A version: 3.0
+// default value: 0
+// data range: 0 to (coarse step size - 1)
+// constraints: As noted above, number greater than or equal to coarse step size is not
+//              recommended.
+// effect: When feature is turned on, the feature will compensate the undershoot movement
+//         of lens (mainly due to severe hysteresis) by moving extra step specified in this
+//         variable.
+//
+/******************************************************************************/
+
+4, /* Num Gross Steps Between Stat Points */
+1, /* Num Fine Steps Between Stat Points */
+8, /* Num Fine Search Points */
+1, /* Process Type */
+1, /* Near End */
+10, /* Default In Macro */
+20, /* Boundary */
+30, /* Defult In Normal */
+30, /* Far End */
+0, /* Undershoot Protect */
+0, /* Undershoot Adjust */
+
+/******************************************************************************/
+// applicable chipset: All.
+// applicable operation mode: Snapshot Auto Focus
+//
+// variable name: reset_lens_after_snap
+// Type: boolean
+// Forces the AF lens to reset to infinity position after snapshot capture
+// 3A version: All
+// default value: 1
+// data range: 0 to 1
+// constraints: None
+// effect: If 0 is selected, AF lens will remain in last AF position after
+// after snapshot.
+//         If 1 is selected, AF lens will move back to infinity or
+// RESET position after snapshot.  This could save power for certain actuators
+// like voice coil.  It will help reduce AF latency by setting starting position
+// at infinity prior to AF search.
+/******************************************************************************/
+
+1, /* Reset Lens After Snap */
+/* Config */
+{
+
+/*********************************************************************/
+// Feature name :
+// Min Y and max Y are used to limit pixels being used for focus value
+// calculation to only pixels with Y values between minY and maxY.
+/*********************************************************************/
+
+   0, /* Minimum Y */
+   255, /* Maximum Y */
+
+/*********************************************************************/
+// Feature name :
+// This group of parameters defines the coordinates of single AF window.
+//
+// Horizontal Offset Ratio:
+// Horizontal location of first pixel in terms of the ratio to the whole frame size.
+// For example, image width is 1000, we want to use the middle 500
+// as AF window. Horizontal offset ratio is 250/1000=0.25.
+// default: 0.25.
+//
+// Vertical Offset Ratio:
+// Similar to Horizontal Offset Ratio, but this is in the veritcal direction.
+// default: 0.25.
+//
+// Horizontal Clip Ratio:
+// AF window horizontal size in terms of ratio to the whole image. For the
+// same example above, Horizontal Clip Ratio is 500/1000=0.5.
+// default: 0.5.
+//
+// Vertical Clip Ratio:
+// AF window veritical size in terms of ratio to the whole image. For the
+// same example above, Vertical Clip Ratio is 500/1000=0.5.
+// default: 0.5.
+//
+/*********************************************************************/
+
+   0.250000f, /* Horizontal Offset Ratio */
+   0.250000f, /* Vertical Offset Ratio */
+   0.500000f, /* Horizontal Clip Ratio */
+   0.500000f, /* Vertical Clip Ratio */
+},
+
+/*********************************************************************/
+// Feature name :
+//
+// Focus value metric. 0 means sum, 1 means max.
+/*********************************************************************/
+
+0, /* FV Metric */
+
+/*********************************************************************/
+// Feature name :
+// Highpass filter coeffs used for focus value calculation.
+// range: -16 to 15.
+/*********************************************************************/
+
+/* AF VFE HPF */
+{
+   -3, /* A00 */
+   0, /* A02 */
+   -2, /* A04 */
+   15, /* A20 */
+   0, /* A21 */
+   0, /* A22 */
+   0, /* A23 */
+   -10, /* A24 */
+},
+/* AF Shake Resistant */
+{
+
+/******************************************************************************/
+// Feature name: AF shake resistant.
+// Applicable chipset: all chipsets.
+// 3A version: 1.8.
+// Applicable operation mode: Viewfinder and snapshot.
+//
+// Variable name: AF_shake_resistant_enable.
+// Enables and disables the feature.
+// Default value: 1.
+// Data range: 0 or 1.
+// Constraints: None.
+// Effect: Enables or disables the featue.
+//
+// Variable name: AF_max_gain (overall gain).
+// Member of AF_shake_resistant_type.
+//  Used to define the maximum gain allowed when the gain is boosted
+//  under low light.
+// Default value (calculated): 4 * Max Exposure Table Gain
+// Data range: 4 to 10X max preview gain of exp table.
+// Constraints: This value will limit the max_af_tradeoff_ratio applied.
+// Effect: The bigger the value, the shorter the exposure time will be,
+//         increasing the noise level.
+//
+// Variable name: AF_min_frame_luma.
+// Member of AF_shake_resistant_type.
+//  The minimum frame luma allowed below which shake-resistant AF will
+//  be disabled.
+// Default value: 0 (to be tuned later).
+// Data range: 0~luma_target.
+// Constraints: It should be greater than the value at which the frame is too dark
+//              for AF to work successfully.
+// Effect: The smaller this value is set, the darker lighting condition under which
+//         shake-resistant AF will be turned off.
+//
+// Variable name: AF_tradeoff_ratio.
+// Member of AF_shake_resistant_type.
+//  Used to define how much the exposure time should be reduced.
+// Default value: 4.
+// Data range: 1~4.
+// Constraints: The value should be greater than or equal to 1.
+// Effect: The bigger the value is, the smaller the adjusted exposure time would be.
+//
+// Variable name: AF_shake_resistante_toggle_frame_skip.
+// Member of AF_shake_resistant_type.
+//  Sets number of frames to skip or drop from preview when this feature is called.
+// Default value: 2.
+// Data range: 0 to 4.
+// Constraints: None.
+// Effect: Will appear as preview is frozen for amount of frames set whenever
+//         AF is started and finished.
+//
+/******************************************************************************/
+
+   0, /* Enable */
+   32.000000f, /* Max Gain */
+   0, /* Min Frame Luma */
+   4.000000f, /* AF Tradeoff Ratio */
+   2, /* Toggle Frame Skip */
+},
+
+/******************************************************************************/
+// Feature name : AF scene change detection.
+// applicable chipset: MSM7x01 and newer chipsets.
+// applicable operation mode: View finder, snapshot and video
+//
+// variable name: AF_scene_change_detection_ratio
+// Used to control how scene change should be detected for continuous AF
+// 3A version: 1.5
+// default value: 4
+// data range: 1~8
+// constraints: the gain should be not be smaller than 1.
+// effect: The bigger the value is, the more sensitive the continuous AF
+//         responds to the scene change.
+//
+// variable name: AF_peak_drop_down_factor
+// Used to control the variation of current FV from peak FV
+// 3A version: all.
+// default value: 0.9
+// data range: 0.8~0.9
+// constraints: it should be smaller than 1 and greater than 0.
+// effect: The bigger the value is, the smaller variation is allowed between the
+//         current FV and the maximum FV.
+/******************************************************************************/
+
+4, /* Scene Change Detection Ratio */
+0.900000f, /* Peak Drop Down Factor */
+/* CAF */
+{
+
+/******************************************************************************/
+// Feature name : AF_CAF_type to aide AF configuring CAF behavior.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Viewfinder and video.
+//
+// Variable name: af_cont_lux_index_change_threshold.
+// exp_index delta or lux_idx > af_cont_lux_index_change_threshold then target change is
+// considered to have occurred.
+// 3A version: 3.0.
+// Default value: 23.
+// Data range: 0 to 100.
+// Constraints: Nonen
+// Effect: Smaller setting will cause CAF to trigger search easier.  May cause
+// instability if set too small.  If value is set too high, lux_idx and/or
+// exp_index change will not trigger a scene change, therefore may not trigger
+// a new search.
+//
+// Variable name: af_scene_change_detection_ratio.
+// FV change to trigger a target change, following with a new focus search.
+// 3A version: 3.0
+// Default value: 4.
+// Data range: 0 to 60.
+// Constraints: None.
+// Effect: Higher value makes it easier to trigger a new search.  Smaller value
+// makes it harder to trigger a search due to FV change.
+//
+// Variable name: af_panning_stable_fv_change_trigger.
+// FV change vs. past frame FV to trigger to determine if scene is stable.
+//           If ( |FV[i]-FV[i-1]|*t > FV[i-1]), not stable.
+//
+// 3A version: 3.0
+// constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_panning_stable_fvavg_to_fv_change_trigger.
+// FV change vs. average of 10 past frame's FV to trigger to determine if
+// scene is stable.
+//           If ( |FV[i]-FVavg|*t > Fvavg), not stable.
+// 3A version: 3.0
+// Constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_panning_unstable_trigger_cnt.
+// How many panning unstable detections before triggering a scene change.
+// Video mode to have different settings than camera.
+// 3A version: 3.0
+// Constraints: None.
+// Effect: Higher value makes it harder for scene to be determined as stable.
+//
+// Variable name: af_Basedelay_normal.
+// Number of frames to skip after every lens movement command.
+// Suggest video mode to have different than camera mode.
+// 3A version: 3.0
+// Default value: 1.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher values makes CAF search slower but tends to be more stable.
+//
+// Variable name: af_scene_change_trigger_cnt.
+// Number of consecutive random scene change frames to determine need for
+// new AF search.
+// 3A version: 3.0
+// Default value: 5.
+// Data range: 0 to 150.
+// Constraints: None.
+// Effect: Higher values makes CAF harder to start a new search, for example,
+// it is useful when a scene has movement but do not want to trigger
+// a new CAF search.
+//
+// Variable name: af_downhill_allowance.
+// Number of extra steps to search once peak FV is found
+// new AF search.
+// 3A version: 3.0
+// Default value: 3.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Higher value will cause focus search to go beyond peak this amount
+// of frames then return.  Higher values is less prone to get AF stuck in local
+// maximum but it takes longer and user experience is reduced.  Smaller values
+// has better user experience and time but may cause AF to focus on local maximum.
+/******************************************************************************/
+
+   1, /* CAF Enable */
+   4, /* Scene Change Detection Ratio */
+   10.000000f, /* Panning Stable FV Change Trigger */
+   20.000000f, /* Panning Stable FV Avg to FV Change Trigger */
+   16000, /* Panning Unstable Trigger Count */
+   4, /* Scene Change Trigger Count */
+   3, /* Downhill Allowance */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_base_frame_delay.
+// How many frames to wait after lens move.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  1.
+// Data range: 0 ~ 5.
+// Constraints: Integers.
+// Effect: Bigger in value represents longer waiting time.
+/******************************************************************************/
+
+   1, /* Continuous Base Frame Delay */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_lux_index_change_threshold.
+// Threshold above which the change of lux.
+// Index will trigger the continuous AF search.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  10.
+// Data range: > 0.
+// Constraints: Integers.
+// Effect: Refocusing is needed when exp change > threshold.
+/******************************************************************************/
+
+   10, /* Continuous Lux Index Change Threshold */
+
+/******************************************************************************/
+// Feature name: Continuous AF.
+// Variable name: af_cont_threshold_in_noise.
+// Determine if the variation in FV is
+// caused by noise.
+// Applicale chipset(s): 7K and 8K.
+// Applicable operation mode:  Continuous AF.
+// Default value:  0.05
+// Data range: > 0.
+// Constraints: Float.
+// Effect: (FV1 - FV0)/FV1 (FV1>FV0), noise if this value < threshold,
+//         otherwise, start FV search.
+/******************************************************************************/
+
+   0.050000f, /* Continous Threshold in Noise */
+   2, /* Continuous Search Step Size */
+},
+
+/******************************************************************************/
+// Feature name : snapshot AF delay
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: basedelay_snapshot_AF.
+// Number of frames to skip after lens move is complete during AF snapshot
+// search.
+// 3A version: 3.0
+// Default value: 0.
+// Data range: 0 to 10.
+// Constraints: None.
+// Effect: Set to 0 is fast exhaustive search method.  Setting to higher value
+// is normal exhaustive search.
+/******************************************************************************/
+
+0, /* Basedelay Snapshot AF */
+
+/******************************************************************************/
+// Feature name : AF mode
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: af_macro.
+// Type: chromatix_af_macro_type.
+// Configures the Macro AF snapshot mode.
+// 3A version: 3.0
+// Default value: MACRO.
+// Data range: MACRO, MACRO_LIMITED, or SUPER_MACRO.
+// Constraints: Mode 0 is supported, 1 and 2 are placeholders for future
+// macro modes.
+// Effect: Sets Macro AF mode.
+/******************************************************************************/
+
+MACRO, /* AF Macro */
+
+/******************************************************************************/
+// eature name : AF snapshot algorithm.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Applies to snapshot AF only.
+//
+// Variable name: af_snapshot_algorithm.
+// Type: chromatix_af_snapshot_algorithm_type.
+// Configures the Macro AF snapshot mode.
+// 3A version: 3.0
+// Default value: FAST_EXHAUSTIVE.
+// Data range: HILL_CLIMBING, FAST_EXHAUSTIVE, SLOW_EXHAUSTIVE,
+//    FAST_HILL_CLIMBING.
+// Constraints: None.
+// Effect: Sets snapshot AF search method.
+/******************************************************************************/
+
+FAST_EXHAUSTIVE, /* AF Snapshot Algorithm */
+
+/******************************************************************************/
+// Feature name : AF face priority weight.
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Face priority Auto Focus.
+//
+// Variable name: face_priority_AF_weight.
+// Type: chromatix_face_priority_AF_weight_type.
+// Configures auto focus metering mode for face, selects between single face and
+// multiple face option.
+// Dominant face configures AF to focus on single face.
+// Weighted average allows AF to focus on multiple faces, applying weight based
+// on priority set by chromatix_face_priority mode.
+// 3A version: 3.0
+// Default value: FACE_PRIORITY_AF_DOMINANT_FACE.
+// Data range: FACE_PRIORITY_AF_DOMINANT_FACE, FACE_PRIORITY_AF_WEIGHTED_AVERAGE.
+// Constraints: None
+// Effect: Sets single face AF or multiple face AF.
+/******************************************************************************/
+
+FACE_PRIORITY_AF_DOMINANT_FACE, /* Face Priority Weight */
+
+/******************************************************************************/
+// Feature name : AF face priority type
+// Applicable chipset: MSM8x50 and newer chipsets.
+// Applicable operation mode: Face priority Auto Focus.
+//
+// Variable name: chromatix_face_priority.
+// Type: chromatix_face_priority_type.
+// Configures method used to set focus priorities when multiple faces are
+// detected.
+// 3A version: 3.0
+// Default value: FACE_PRIORITY_CENTER.
+// Data range: FACE_PRIORITY_CENTER, FACE_PRIORITY_BIG.
+// Constraints: None.
+// Effect: If 0 is selected, centermost face has highest AF priority, if 1 is
+// selected, largest face has AF priority.
+/******************************************************************************/
+
+FACE_PRIORITY_CENTER, /* Face Priority Type */
+/* AF Motion Sensor */
+{
+
+/******************************************************************************/
+// Feature name : AF_motion_sensor_type to aide AF in determining a change in
+//           scene.
+// Applicable chipset: MSM7x30, QSD8x60, and newer chipsets.
+// Applicable operation mode: Viewfinder and video
+//
+// Variable name: af_gyro_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         gyro output value.
+//
+// Variable name: af_accelerometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         accelerometer change.
+//
+// Variable name: af_magnetometer_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: 0.0 to 360.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         magnetic field change.
+//
+// Variable name: af_DIS_motion_vector_trigger.
+// Used to control how scene change should be detected for AEC.
+// 3A version: 3.0
+// Default value: 0.0
+// Data range: -16000.0 to +16000.0
+// Constraints: None.
+// Effect: The bigger the value is, the less sensitive AEC response to
+//         digital image stabilization movement/compensation value.
+/******************************************************************************/
+
+   0.000000f, /* Gyro Trigger */
+   0.000000f, /* Accelerometer Trigger */
+   0.000000f, /* Magnetometer Trigger */
+   0.000000f, /* DIS Motion Vector Trigger */
+},
+
+/******************************************************************************/
+// Feature name: LED assisted AF.
+// 
+// Variable name: led_af_assist_enable.
+// Enable or disable the LED assist for auto focus feature.
+// Default value: 1.
+// Data range: 1 or 0.
+// Constraints: None.
+// Effect: LED auto focus assist can is enable.
+//
+// Variable name: led_af_assist_trigger_idx.
+// Lux Index at which LED assist for autofocus is enabled.
+// Default value (calculated): wLED Trigger Index
+// Data range: 0 to 1000.
+// Constraints: None.
+// Effect: Selects scene brightness level at which LED auto focus assist can be enabled.
+/******************************************************************************/
+
+1, /* LED AF Assist Enable */
+349, /* LED AF Assist Trigger Idx */
+
+/*********************************************************************/
+// Feature name :
+// Control for lowlight snapshot gamma.
+// 0 means using lux index to control.
+// 1 means using gain to control.
+/*********************************************************************/
+
+0, /* Control Method - 1 = Gain, 0 = Lux Index */
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for lowlight snapshot gamma.
+// gain start:
+// When gain >= gain_start, lowlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   3.900000f, /* Gain Start */
+   4.000000f, /* Gain End */
+   314, /* Preview */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight snapshot gamma.
+// gain start :
+// When gain <= gain_start, brightlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end < lux_index_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+/*********************************************************************/
+
+/* Outdoor Trigger Points */
+{
+   2.00000f, /* Gain Start */
+   1.00000f, /* Gain End */
+   140, /* Lux Index Start */
+   105, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Normal light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+//Feature name :
+// Lowlight light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag. Always set this flag to 0.
+/*********************************************************************/
+
+/* Low-Light Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5,
+      5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 12, 13,
+      14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 21, 21, 22, 23, 24, 24,
+      25, 26, 27, 28, 28, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 37,
+      37, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47,
+      48, 48, 49, 50, 50, 51, 52, 52, 53, 54, 54, 55, 56, 56, 57, 58,
+      58, 59, 60, 60, 61, 62, 62, 63, 64, 64, 65, 66, 66, 67, 67, 68,
+      69, 69, 70, 71, 71, 72, 72, 73, 74, 74, 75, 75, 76, 77, 77, 78,
+      78, 79, 80, 80, 81, 81, 82, 82, 83, 84, 84, 85, 85, 86, 86, 87,
+      87, 88, 88, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
+      96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 100, 101, 101, 102, 102, 103,
+      103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 109, 110,
+      110, 111, 111, 111, 112, 112, 113, 113, 114, 114, 114, 115, 115, 116, 116, 116,
+      117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 123,
+      123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 127, 127, 127, 128, 128, 128,
+      129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134,
+      134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 138, 138, 139,
+      139, 139, 140, 140, 140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144,
+      144, 144, 144, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148,
+      148, 149, 149, 149, 149, 150, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152,
+      153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156,
+      156, 157, 157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160,
+      160, 160, 161, 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, 163, 163, 164,
+      164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 167, 167,
+      167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170,
+      170, 170, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 173, 173, 173, 173,
+      173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 176, 176, 176,
+      176, 176, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 179, 179,
+      179, 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 182,
+      182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184,
+      184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 187, 187,
+      187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 192, 192, 192,
+      192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197,
+      197, 197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199,
+      200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202,
+      202, 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204,
+      205, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 207, 207, 207,
+      207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      209, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212,
+      212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 221, 221,
+      221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223,
+      223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225,
+      225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227,
+      227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229,
+      229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231,
+      231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 233,
+      233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 234, 234, 235,
+      235, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 236,
+      236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238,
+      238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240,
+      240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+      242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243,
+      243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245,
+      245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
+      247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248,
+      248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250,
+      250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
+      252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253,
+      253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Bright light gamma for snapshot.
+// Range: 0 to 255.
+//
+// linear flag:
+// This is a HW flag.Always set this flag to 0.
+/*********************************************************************/
+
+/* Outdoor Gamma Table */
+/* Gamma Option: Medium, Weight: 0 */
+{
+   {
+      2, 2, 3, 4, 4, 5, 6, 6, 8, 8, 9, 10, 10, 11, 12, 12,
+      13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
+      26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39,
+      39, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 48, 49, 49, 50, 51,
+      51, 52, 53, 53, 54, 55, 55, 56, 56, 57, 58, 59, 59, 60, 61, 61,
+      62, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71,
+      71, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80,
+      80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87,
+      87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94,
+      95, 95, 96, 96, 96, 97, 97, 98, 98, 99, 99, 99, 100, 100, 100, 101,
+      101, 102, 102, 102, 103, 103, 104, 104, 105, 105, 105, 106, 106, 107, 107, 107,
+      108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 114,
+      114, 114, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 119, 119,
+      119, 120, 120, 121, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 125,
+      125, 125, 126, 126, 126, 127, 127, 127, 128, 128, 128, 129, 129, 129, 130, 130,
+      130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 134, 134, 134, 134, 135, 135,
+      135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 138, 139, 139, 139, 140, 140,
+      140, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 144, 144, 144, 144,
+      145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 148, 148, 148, 148, 149,
+      149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 152, 152, 152, 153, 153, 153,
+      153, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157,
+      157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, 161,
+      161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164,
+      165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168,
+      168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171,
+      171, 172, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174,
+      175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178,
+      178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+      181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184,
+      184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 187,
+      187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189,
+      189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 192, 192,
+      192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
+      195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197,
+      197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200,
+      200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 203,
+      203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+      205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207,
+      207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209,
+      210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
+      212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214,
+      214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216,
+      216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218,
+      218, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220,
+      220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222,
+      222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224,
+      224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226,
+      226, 226, 227, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
+      228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230,
+      230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232,
+      232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233,
+      233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235,
+      235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237,
+      237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239,
+      239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241,
+      241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242,
+      242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+      244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245,
+      245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247,
+      247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249,
+      249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+      250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252,
+      252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+      253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255
+   },
+   0 /* Linear */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for lowlight preview gamma.
+// gain start :
+// When gain >= gain_start, lowlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// gain end:
+// When gain >= gain_end, 100% lowlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end > gain_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+// lux_index_start:
+// When lux_index >= lux_index_start, lowlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: Increasing this value will use lowlight gamma under lower light condition.
+//
+// lux_index_end:
+// When lux_index >= lux_index_end, 100% lowlight gamma is used.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Constraint: lux_index_end > lux_index_start.
+// Effect: Increasing this value will use 100% lowlight gamma under lower light condition.
+//
+/*********************************************************************/
+
+/* Low-Light Trigger Points */
+{
+   7.200000f, /* Gain Start */
+   8.000000f, /* Gain End */
+   314, /* Lux Index Start */
+   350, /* Lux Index End */
+},
+
+/*********************************************************************/
+// Feature name :
+// Trigger point for brightlight viewfinder gamma.
+// gain start :
+// When gain <= gain_start, brightlight gamma is interpolated with normal gamma.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Effect: Decreasing this value will use brightlight gamma under brighter light condition.
+//
+// gain end:
+// When gain <= gain_end, 100% brightlight gamma is used.
+// Range: min_gain to max_gain. Gain means digital and analog combined gain.
+// Constraint: gain_end < gain_start.
+// Effect: Decreasing this value will use 100% brightlight gamma under brighter light condition.
+//
+// lux_index_start:
+// When lux_index <= lux_index_start, brightlight gamma is interpolated with normal gamma.
+// Range: For linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR case : 0 to max_index*numberof_FPS_supported.
+// Effect: decreasing this value will use brightlight gamma under brighter light condition.
+//
+// lux_index_end:
+// When lux_index <= lux_index_end, 100% lowlight gamma is used.
+// Range: for linear AFR case: 0 to max_index from exposure table.
+//  For non-linear AFR

你可能感兴趣的:(高通8x25Q T4K35摄像头调试心得)