Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
174
sdk/lib/video/isp/isp_param_ov9734.c
Normal file
174
sdk/lib/video/isp/isp_param_ov9734.c
Normal file
@@ -0,0 +1,174 @@
|
||||
#include "sys_config.h"
|
||||
#include "typesdef.h"
|
||||
#include "osal/string.h"
|
||||
#include "hal/isp_param.h"
|
||||
|
||||
#define ISP_DMA_ENABLE 1
|
||||
|
||||
const struct hgisp_param_info isp_master_param =
|
||||
{
|
||||
.enable_param = {
|
||||
.test_pattern_en = 0,
|
||||
.dma_flush_en = ISP_DMA_ENABLE,
|
||||
.blc_en = 1,
|
||||
.awb_en = 1,
|
||||
.ae_en = 1,
|
||||
.hist_en = 1,
|
||||
.ccm_en = 1,
|
||||
.y_gamma_en = 0,
|
||||
.rgb_gamma_en = 1,
|
||||
.ce_en = 1,
|
||||
.sharpen_en = 1,
|
||||
.bnr_en = 1,
|
||||
.ynr_en = 1,
|
||||
.cnr_en = 1,
|
||||
.csupp_en = 1,
|
||||
.adj_hue_en = 1,
|
||||
.lsc_en = 1,
|
||||
.dpc_en = 0,
|
||||
.af_en = 0,
|
||||
.dehaze_en = 0,
|
||||
.gic_en = 0,
|
||||
.md_en = 0,
|
||||
.luma_ca_en = 0,
|
||||
},
|
||||
|
||||
.awb_param = {
|
||||
.coarse_scale = 128,
|
||||
.coarse_thr = 3 << 2,
|
||||
.fine_step = 1 << 2,
|
||||
.lock_hi_thr = 4,
|
||||
.lock_lo_thr = 0,
|
||||
.stable_thr = 16,
|
||||
.cbcr_thr = 6 << 2,
|
||||
.awb_auto_en = 1,
|
||||
.awb_meas_mode = 2,
|
||||
.cr_target = 2048,
|
||||
.cb_target = 2048,
|
||||
.front_cr_val = 30,
|
||||
.front_cb_val = 30,
|
||||
.front_uv_sum = 15,
|
||||
.back_cr_val = 30,
|
||||
.back_cb_val = 30,
|
||||
.back_uv_sum = 10,
|
||||
.cons_cr_max = 40,
|
||||
.cons_cb_max = 40,
|
||||
.cons_uv_max = 30,
|
||||
.cons_cr_min = 10,
|
||||
.cons_cb_min = 10,
|
||||
.cons_uv_min = 2,
|
||||
.awb_wp_max = 0xc0,
|
||||
.awb_wp_min = 32,
|
||||
.awb_r_max = 0xc0,
|
||||
.awb_g_max = 0xc0,
|
||||
.awb_b_max = 0xc0,
|
||||
.awb_precision = 1,
|
||||
.awb_fine_cons_en = 0,
|
||||
.awb_coarse_cons_en = 0,
|
||||
.manual_gain = {256, 256, 256, 256},
|
||||
},
|
||||
|
||||
.cfg_ae = {
|
||||
.ae_manual_en = 0,
|
||||
.luma_target = 55,
|
||||
.luma_weight_sum = 450,
|
||||
.luma_weight = { 10, 10, 10, 10, 10,//50
|
||||
10, 30, 30, 30, 10,//110
|
||||
10, 30, 50, 30, 10,//130
|
||||
10, 30, 30, 30, 10,//110
|
||||
10, 10, 10, 10, 10},//50
|
||||
.ae_lock_cnt = 5,
|
||||
.ae_lock_tolerance = 12,
|
||||
.reduce_fps_en = 0,
|
||||
.lowlight_lsb_gain_en = 1,//低光<<2
|
||||
.lowlight_lsb_gain_4hi_fps = 64,
|
||||
.lowlight_lsb_gain_4lo_fps = 64,
|
||||
.hist_hs_bin_thr = 250,
|
||||
.hist_upper_hs_pixel_ratio = 0.74,
|
||||
.hist_upper_pixel_ratio = 0.88,
|
||||
.hist_lower_pixel_ratio = 0.00,
|
||||
|
||||
.abl_luma_target_max = 100,
|
||||
.dark_pos_thr_max = 50,
|
||||
.abl_diff_ratio = 0.03,
|
||||
.abl_dark_pos_diff_thr = 9, // 0.15 * 61
|
||||
.abl_bright_pos_diff_thr = 6, // 0.10 * 61
|
||||
.bright_pixel_high_ratio = 0.10,
|
||||
.bright_pixel_sub_ratio = 0.05,
|
||||
.dark_pixel_low_ratio = 0.55,
|
||||
.dark_pixel_high_ratio = 0.85,
|
||||
.abl_dark_pos_low_wthr = 18, // 0.30 * 61,
|
||||
.abl_dark_pos_add_wthr = 12, // 0.20 * 61,
|
||||
.bright_pos_adjust_ratio = 0.80,
|
||||
.aoe_dark_pos_wthr = 30, // 0.50 * 61,
|
||||
.aoe_bright_pos_wthr = 9, // 0.15 * 61,
|
||||
// .abl_bv_gain_sel = 0,
|
||||
.abl_expo_line_low_ratio = 0.80,
|
||||
.abl_expo_line_high_ratio = 1.00,
|
||||
.abl_expo_gain_low_thr = 256,
|
||||
.abl_expo_gain_high_thr = 324,
|
||||
.abl_hist_thr[0] = 50,
|
||||
.abl_hist_thr[1] = 230,
|
||||
.aoe_expo_gain_thr[0] = 384-50,
|
||||
.aoe_expo_gain_thr[1] = 384,
|
||||
// .abl_bv_thr[0] = 6645, // 80lx
|
||||
// .abl_bv_thr[1] = 13216, // 160lx
|
||||
// .aoe_bv_thr[0] = 3531, // 40lx
|
||||
// .aoe_bv_thr[1] = 6645, // 80lx
|
||||
|
||||
.stg_mode = 0,
|
||||
.stg_ratio_slope = 0.3*256,
|
||||
.stg_max_offset = 0,
|
||||
|
||||
.abl_bv_gain_sel = 1,
|
||||
.abl_bv_thr[0] = 1e20,
|
||||
.abl_bv_thr[1] = 1e20,
|
||||
.aoe_bv_thr[0] = 1,
|
||||
.aoe_bv_thr[1] = 1,
|
||||
|
||||
|
||||
},
|
||||
|
||||
.config_wdr = {
|
||||
.wdr_en = 0,
|
||||
.temporal_smooth_alpha = 0.1,
|
||||
.noise_floor = 128,
|
||||
.noise_floor_out = 128,
|
||||
.shadow_boost_target = 512,
|
||||
.highlight_compress_target = 870,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
#define SENSOR_PARAM_SIZE (64*4*4+153*4*4)
|
||||
|
||||
void *isp_sensor_param_load(uint16 *buff)
|
||||
{
|
||||
struct hgisp_sensor_init *init = NULL;
|
||||
init = (struct hgisp_sensor_init *)os_malloc(sizeof(struct hgisp_sensor_init));
|
||||
if (init)
|
||||
{
|
||||
os_memset(init, 0, sizeof(struct hgisp_sensor_init));
|
||||
if (buff[0] && (buff[1]) && (buff[2] == ISPCFG_MAGIC))
|
||||
{
|
||||
os_printf("sensor param use flash param!\r\n");
|
||||
os_memcpy(init, (void *)&buff[2], sizeof(struct hgisp_sensor_init));
|
||||
goto _end;
|
||||
} else {
|
||||
goto _err;
|
||||
}
|
||||
} else {
|
||||
os_printf("%s malloc sram size : %d err!\r\n", sizeof(struct hgisp_sensor_init));
|
||||
}
|
||||
return (void *)NULL;
|
||||
|
||||
_err:
|
||||
os_printf("sensor param use default param!\r\n");
|
||||
os_memcpy((void *)&init->sensor_info[0].sensor_param, (void *)&isp_master_param, sizeof(struct hgisp_param_info));
|
||||
// os_memcpy((void *)&init->sensor_info[1].sensor_param, (void *)&isp_slave0_param, sizeof(struct hgisp_param_info));
|
||||
// os_memcpy((void *)&init->sensor_info[2].sensor_param, (void *)&isp_slave1_param, sizeof(struct hgisp_param_info));
|
||||
_end:
|
||||
return (void *)init;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user