高通8x25Q T4K35摄像头调试心得
发布日期:2021-06-30 18:52:53
浏览次数:3
分类:技术文章
本文共 903576 字,大约阅读时间需要 3011 分钟。
commit db285ae7f99fa669d65651b11bff78ea1364ef99 Author: wei.qifa <wei.qifa@zte.com.cn> 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 <wei.qifa@zte.com.cn> 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/Makefilenew file: kernel/drivers/gosodrv/camera/t4k35_v4l2.c
commit 505e8c46eca7f1804b18c6446f6fe27d80f6a8d7
Author: wei.qifa <wei.qifa@zte.com.cn> 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,¶, 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 <wei.qifa@zte.com.cn> 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 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/hardware/sensor/sensor.c b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/sensor.c index e85997a..74c1cf7 100755 --- a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/sensor.c +++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/sensor.c @@ -52,6 +52,7 @@ #include "ov5648_truly_cm8352_u.h" #include "ov8825_u.h" #include "imx219_u.h" + #include "t4k35_u.h" #include "ar0543_u.h" #include "a8140_u.h" #include "s5k3h2_sunny_q8s02e_u.h" @@ -95,6 +96,7 @@ extern char *ov5647_truly_cm6868_load_chromatix[]; extern char *ov5648_truly_cm8352_load_chromatix[]; extern char *ov8825_load_chromatix[]; extern char *imx219_load_chromatix[]; +extern char *t4k35_load_chromatix[]; extern char *ar0543_load_chromatix[]; extern char *a8140_load_chromatix[]; extern char *s5k3h2_sunny_q8s02e_load_chromatix[]; @@ -146,6 +148,7 @@ static sensor_proc_start_t sensors[] = { SENSORS_PROCCESS_START(ov5648_truly_cm8352), SENSORS_PROCCESS_START(ov8825), SENSORS_PROCCESS_START(imx219), + SENSORS_PROCCESS_START(t4k35), SENSORS_PROCCESS_START(ar0543), SENSORS_PROCCESS_START(a8140), SENSORS_PROCCESS_START(s5k3h2_sunny_q8s02e), diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.c b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.c new file mode 100755 index 0000000..9c47320 --- /dev/null +++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.c @@ -0,0 +1,151 @@ +/*============================================================================ + + Copyright (c) 2011-2012 QUALCOMM Incorporated. All Rights Reserved. + QUALCOMM Proprietary and Confidential. + +============================================================================*/ +#include <stdio.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include "camera_dbg.h" +#include "sensor_util.h" +#include "t4k35_u.h" + +/*============================================================================ + EXTERNAL VARIABLES DECLARATIONS +============================================================================*/ +/* r/w copy of chromatix data. Must be initialized with + * active sensor chromatix data everytime camera is started. + */ +/* Sensor model number used in camear for this sensor */ +#define SENSOR_MODEL_NO_t4k35 "t4k35" +#define t4k35_LOAD_CHROMATIX(n) \ + "libchromatix_"SENSOR_MODEL_NO_t4k35"_"#n".so" + +/* Types of shared object available for this sensor to load dynamically */ +char *t4k35_load_chromatix[SENSOR_LOAD_CHROMATIX_MAX] = { + t4k35_LOAD_CHROMATIX(preview), /* camera / camcorder preview */ + t4k35_LOAD_CHROMATIX(default_video), /* Non HD Video recording */ + NULL, /* HD video recording */ + NULL, /* HFR 60 fps video recording */ + NULL, /* HFR 90 fps video recording */ + NULL, /* HFR 120 fps video recording */ + NULL, /* HFR 150 fps video recording */ + NULL, + t4k35_LOAD_CHROMATIX(preview), /* ZSL */ +}; +/***************************************************************************** + * RUN TIME VARIABLES + ****************************************************************************/ + +static sensor_camif_inputformat_t t4k35_inputformat[] = { + CAMIF_BAYER_B_G,/*RES0*/ + CAMIF_BAYER_B_G,/*RES1*/ +}; + +static sensor_crop_parms_t t4k35_cropinfo[] = { +/*top, down, left, right*/ + {0, 0, 0, 0},/*FULL*/ + {0, 0, 0, 0},/*QTR*/ +}; + +static uint32_t t4k35_mode_res[SENSOR_MODE_INVALID] = { + MSM_SENSOR_RES_FULL,/*SENSOR_MODE_SNAPSHOT*/ + MSM_SENSOR_RES_FULL,/*SENSOR_MODE_RAW_SNAPSHOT*/ + MSM_SENSOR_RES_QTR,/*SENSOR_MODE_PREVIEW*/ + MSM_SENSOR_RES_QTR,/*SENSOR_MODE_VIDEO*/ + MSM_SENSOR_INVALID_RES,/*SENSOR_MODE_VIDEO_HD*/ + MSM_SENSOR_INVALID_RES,/*SENSOR_MODE_HFR_60FPS*/ + MSM_SENSOR_INVALID_RES,/*SENSOR_MODE_HFR_90FPS*/ + MSM_SENSOR_INVALID_RES,/*SENSOR_MODE_HFR_120FPS*/ + MSM_SENSOR_INVALID_RES,/*SENSOR_MODE_HFR_150FPS*/ + MSM_SENSOR_RES_FULL,/*SENSOR_MODE_ZSL*/ +}; + +/*=========================================================================== + * FUNCTION - imx111_real_to_register_gain - + * + * DESCRIPTION: + *==========================================================================*/ +static uint16_t t4k35_real_to_register_gain(float gain) +{ + uint16_t reg_gain; + + if (gain < 1.0) + gain = 1.0; + + if (gain > 10.66) + gain = 10.66; + + reg_gain = (uint16_t)(256.0 - 256.0 / gain); + + return reg_gain; +}/* imx111_real_to_register_gain */ + +/*=========================================================================== + * FUNCTION - imx111_register_to_real_gain - + * + * DESCRIPTION: + *==========================================================================*/ +float t4k35_register_to_real_gain(uint16_t reg_gain) +{ + float gain; + + if (reg_gain > 232) + reg_gain = 232; + + gain = 256.0 /(256.0 - reg_gain); + + return gain; +}/* imx111_register_to_real_gain */ + +static sensor_function_table_t t4k35_func_tbl = { + .sensor_set_op_mode = sensor_util_set_op_mode, + .sensor_get_mode_aec_info = sensor_util_get_mode_aec_info, + .sensor_get_dim_info = sensor_util_get_dim_info, + .sensor_get_preview_fps_range = sensor_util_get_preview_fps_range, + .sensor_set_frame_rate = sensor_util_set_frame_rate, + .sensor_get_snapshot_fps = sensor_util_get_snapshot_fps, + + .sensor_set_exposure_gain = sensor_util_set_exposure_gain, + .sensor_set_snapshot_exposure_gain = sensor_util_set_snapshot_exposure_gain, + .sensor_register_to_real_gain = t4k35_register_to_real_gain, + .sensor_real_to_register_gain = t4k35_real_to_register_gain, + .sensor_get_max_supported_hfr_mode = sensor_util_get_max_supported_hfr_mode, + .sensor_get_cur_fps = sensor_util_get_cur_fps, + .sensor_get_lens_info = sensor_get_lens_info, +}; + +static struct sensor_calib_data t4k35_calib_data; + +int8_t t4k35_process_start(void *ctrl) +{ + sensor_ctrl_t *sctrl = (sensor_ctrl_t *) ctrl; + sctrl->fn_table = &t4k35_func_tbl; + sctrl->sensor.inputformat = t4k35_inputformat; + sctrl->sensor.crop_info = t4k35_cropinfo; + sctrl->sensor.mode_res = t4k35_mode_res; + + sensor_util_get_output_info(sctrl); + sctrl->sensor.op_mode = SENSOR_MODE_VIDEO; + + sctrl->sensor.out_data.sensor_output.connection_mode = SENSOR_MIPI_CSI; + sctrl->sensor.out_data.sensor_output.output_format = SENSOR_BAYER; + sctrl->sensor.out_data.sensor_output.raw_output = SENSOR_10_BIT_DIRECT; + + sctrl->sensor.out_data.aec_info.max_gain = 8.0; + sctrl->sensor.out_data.aec_info.max_linecount = + sctrl->sensor.output_info[sctrl->sensor. + mode_res[SENSOR_MODE_PREVIEW]].frame_length_lines * 24; + sctrl->sensor.snapshot_exp_wait_frames = 1; + + sctrl->sensor.out_data.lens_info.focal_length = 2.93; + sctrl->sensor.out_data.lens_info.pix_size = 1.12; + sctrl->sensor.out_data.lens_info.f_number = 2; + sctrl->sensor.out_data.lens_info.total_f_dist = 1.2; + sctrl->sensor.out_data.lens_info.hor_view_angle = 63.2; + sctrl->sensor.out_data.lens_info.ver_view_angle = 49.7; + + sensor_util_config(sctrl); + return TRUE; +} diff --git a/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.h b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.h new file mode 100755 index 0000000..68120b3 --- /dev/null +++ b/android-lte/chipcode/LINUX/android/vendor/qcom/proprietary/mm-camera/server/hardware/sensor/t4k35/t4k35_u.h @@ -0,0 +1,13 @@ +/*============================================================================ + + Copyright (c) 2011-2012 QUALCOMM Incorporated. All Rights Reserved. + QUALCOMM Proprietary and Confidential. + +============================================================================*/ +#ifndef _T4K35_U_H_ +#define _T4K35_U_H_ + +#include "sensor.h" + +int8_t t4k35_process_start(void *ctrl); +#endif 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 eec5e8c..4ab2a71 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 @@ -1905,6 +1905,7 @@ static struct i2c_board_info i2c_camera_devices_skud[] = { I2C_BOARD_INFO("lm3642", 0x63), }, #endif +//weiqifa modify add start 20150402 #ifdef CONFIG_ZTE_T4K35 { I2C_BOARD_INFO("t4k35", 0x6c), @@ -1915,7 +1916,7 @@ static struct i2c_board_info i2c_camera_devices_skud[] = { I2C_BOARD_INFO("lm3642", 0x63), }, #endif - +//weiqifa modify add end #ifdef CONFIG_GOSO_OV8850 { I2C_BOARD_INFO("ov8850", 0x6C >> 3),转载地址:https://linus.blog.csdn.net/article/details/44836063 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月05日 15时49分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30
牛客国庆集训派对Day4——I 连通块计数(思维)
2019-04-30
牛客国庆集训派对Day4——G 区间权值(找规律,双重前缀和)
2019-04-30
牛客国庆集训派对Day5——L 数论之神(找规律/数论)
2019-04-30
CodeForces - 629B Far Relative’s Problem(模拟)
2019-04-30
CodeForces - 1059B Forgery (思维)
2019-04-30
CodeForces - 456C Boredom (dp)
2019-04-30
CodeForces - 960B Minimize the error (思维,贪心)
2019-04-30
CodeForces - 97B Superset (思维/分治/构造)
2019-04-30
CodeForces - 675A Infinite Sequence(简单数论 细节)
2019-04-30