?? camera_yuv_para.c
字號:
/* STRUCT: PREDGAMMA */
{
/* PREDGAMMA.gamma_select */ 0x00, /* ARRAY: PREDGAMMA.gamma[9][11] */
{
/* ARRAY: PREDGAMMA.gamma[0][11] */
{
0x28, 0x4E, 0x67, 0x78, 0x91, 0xA8, 0xC0, 0xD7,
0xE1, 0xEB, 0xF5
},
/* ARRAY: PREDGAMMA.gamma[1][11] */
{
0x20, 0x3C, 0x55, 0x69, 0x8D, 0xA8, 0xC0, 0xD7,
0xE1, 0xEB, 0xF5
},
/* ARRAY: PREDGAMMA.gamma[2][11] */
{
0x14, 0x28, 0x46, 0x64, 0x91, 0xB4, 0xCE, 0xE0,
0xE8, 0xF0, 0xF8
},
/* ARRAY: PREDGAMMA.gamma[3][11] */
{
0x49, 0x64, 0x78, 0x88, 0xA4, 0xBA, 0xCE, 0xE0,
0xE8, 0xF0, 0xF8
},
/* ARRAY: PREDGAMMA.gamma[4][11] */
{
0x29, 0x59, 0x75, 0x88, 0xA4, 0xBA, 0xCE, 0xE0,
0xE8, 0xF0, 0xF8
},
/* ARRAY: PREDGAMMA.gamma[5][11] */
{
0x14, 0x30, 0x50, 0x69, 0x87, 0xA5, 0xBE, 0xD7,
0xE1, 0xEB, 0xF5
},
/* ARRAY: PREDGAMMA.gamma[6][11] */
{
0x17, 0x30, 0x53, 0x74, 0x99, 0xAB, 0xBE, 0xD7,
0xE1, 0xEB, 0xF5
},
/* ARRAY: PREDGAMMA.gamma[7][11] */
{
0x30, 0x49, 0x5D, 0x6F, 0x8D, 0xA8, 0xC0, 0xD7,
0xE1, 0xEB, 0xF5
},
/* ARRAY: PREDGAMMA.gamma[8][11] */
{
0x10, 0x20, 0x30, 0x40, 0x60, 0x80, 0xA0, 0xC0,
0xD0, 0xE0, 0xF0
}
}
},
/* STRUCT: Comp */
{
/* ARRAY: COMP.shading_cap[11] */
{
0x06442800, 0x64646400, 0x03204162, 0x9AB4DBFC,
0xFFFFFFFF, 0x20406080, 0x94A8A8E2, 0xE2226200,
0x20416384, 0xB9C6FFFF, 0xFFFFFF00
},
/* ARRAY: COMP.autodefect_pre_low[2] */
{
0xF8000000, 0x04040000
},
/* ARRAY: COMP.autodefect_cap_nor[2] */
{
0xF8000000, 0xA0A00000
},
/* ARRAY: COMP.autodefect_cap_low[2] */
{
0xF8000000, 0x14140000
},
/* ARRAY: COMP.shading_spare_1[11] */
{
0x00000000, 0x00000000, 0x00204060, 0x8090A0B0,
0xC0D0E0F0, 0x20406080, 0x90A0B0C0, 0xD0E0F000,
0x20406080, 0x90A0B0C0, 0xD0E0F000
},
/* ARRAY: COMP.shading_spare_2[11] */
{
0x00000000, 0x00000000, 0x00204060, 0x8090A0B0,
0xC0D0E0F0, 0x20406080, 0x90A0B0C0, 0xD0E0F000,
0x20406080, 0x90A0B0C0, 0xD0E0F000
}
},
/* STRUCT: AE */
{
/* AE.iniShutter */ 0x0118, /* AE.TargetLum */ 0x5A, /* AE.StepperEV */ 0x02, /* AE.iniExpoIdx */ 0x28
},
/* STRUCT: AWB */
{
/* ARRAY: AWB.LightSource[6][5] */
{
/* ARRAY: AWB.LightSource[0][5] */
// {
// 0x1D4C, 0x00D8, 0x0080, 0x0080, 0x0080
//},
/* ARRAY: AWB.LightSource[1][5] */
//{
// 0x1964, 0x00D8, 0x0080, 0x009A, 0x0080
// },
/* ARRAY: AWB.LightSource[2][5] */
// {
// 0x1130, 0x00B7, 0x0080, 0x00E9, 0x0080
// },
/* ARRAY: AWB.LightSource[3][5] */
// {
// 0x0ED8, 0x00A5, 0x0080, 0x00DE, 0x0080
// },
/* ARRAY: AWB.LightSource[4][5] */
// {
// 0x0ED8, 0x0080, 0x0081, 0x00FB, 0x0081
// },
/* ARRAY: AWB.LightSource[5][5] */
// {
// 0x1130, 0x0087, 0x0080, 0x00D0, 0x0080
// }
/* ARRAY: AWB.LightSource[5][5] */
// {
/* ARRAY: AWB.LightSource[0][5] */
{
0x1D4C, 0x008E, 0x0083, 0x0080, 0x0083
},
/* ARRAY: AWB.LightSource[1][5] */
{
0x1964, 0x0094, 0x0088, 0x0080, 0x0088
},
/* ARRAY: AWB.LightSource[2][5] */
{
0x1130, 0x0080, 0x0086, 0x00BB, 0x0086
},
/* ARRAY: AWB.LightSource[3][5] */
{
0x0ED8, 0x0080, 0x016F, 0x00D0, 0x016F
},
/* ARRAY: AWB.LightSource[4][5] */
{
0x0AF0, 0x0080, 0x00B1, 0x00F8, 0x00B1
}
},
/* AWB.AWB_rgain_max */ 0x00B5, /* AWB.AWB_ggain_max */ 0x009C, /* AWB.AWB_bgain_max */ 0x00A5
},
/* STRUCT: SENSOR */
{
/* ARRAY: SENSOR.reg[34] */
{
{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
//------------------------Engineer mode---------------------------------
,{ 0xFFFFFFFF, ISP_DRIVING_8MA }
//------------------------Engineer mode---------------------------------
},
//------------------------CCT mode---------------------------------
{{ 0xFFFFFFFF, 0x27 } ,{ 0x002D, 0x0025 } ,{ 0x002E, 0x0020 } ,{ 0x002B, 0x0020 } ,{ 0x002C, 0x0028 }}
//------------------------CCT mode---------------------------------
}
};
// _Camera_Parameter_Structure_END_
void init_camera_operation_para(camera_operation_para_struct *oper_data)
{
oper_data->ae_mode=FRAME_RATE_PRIORITY; /* QUALITY_PRIORITY, FRAME_RATE_PRIORITY */
oper_data->pregain_mode=ISP_SENSOR_BOTH; /* ISP_ONLY, SENSOR_ONLY, ISP_SENSOR_BOTH */
oper_data->gain_priority=SENSOR_GAIN_PRIORITY; /* ISP_GAIN_PRIORITY, SENSOR_GAIN_PRIORITY */
oper_data->enable_cap_shutter_compensate=KAL_TRUE; /* KAL_TRUE, KAL_FALSE */
oper_data->shutter_compensate_max=4*BASEGAIN;
oper_data->isp_pregain_max=1.5*BASEGAIN;
oper_data->sensor_pregain_max=8*BASEGAIN;
oper_data->pregain_compensate_max=4*BASEGAIN;
oper_data->preview_display_wait_frame=3;
oper_data->ae_smooth_upper_bound=140;
oper_data->ae_smooth_lower_bound=40;
oper_data->ae_awb_cal_period=4;
oper_data->ae_setting_gain_delay_frame=3;
// oper_data->ae_setting_sensor_gain_delay_frame=2;
oper_data->ae_setting_shut_delay_frame=2;
oper_data->ae_setting_cal_delay_frame=0;
oper_data->capture_delay_frame=1;//1 /* Switch Preview to Capture */
oper_data->preview_delay_frame=2;//2 /* Switch Capture to Preview */
oper_data->ae_lowlight_threshold=10; /* low light threshold of luminance for camera */
oper_data->ae_lowlight_off_threshold=15; /* low light turn off threshold of luminance for camera */
oper_data->ae_video_lowlight_threshold=10; /* low light threshold of luminance for video */
oper_data->ae_video_lowlight_off_threshold=15; /* low light turn off threshold of luminance for video */
oper_data->ae_high_banding_target_enable = KAL_FALSE; /* Disable banding taeget */
}
void init_af_operation_para(af_operation_para_struct *oper_data)
{
oper_data->manual_focus_step = 5;
oper_data->af_auto_range_start_idx = 11;
oper_data->af_auto_range_end_idx = 1;
oper_data->af_normal_range_start_idx = 10;
oper_data->af_normal_range_end_idx = 4;
oper_data->af_macro_range_start_idx = 12;
oper_data->af_macro_range_end_idx = 1;
oper_data->af_infinite_range_start_idx = 3;
oper_data->af_infinite_range_end_idx = 0;
oper_data->auto_peak_select_min_fv_ratio_diff = 50;
oper_data->auto_peak_select_min_up_fv_th = 12;
oper_data->auto_peak_select_max_dn_fv_th = 79;
oper_data->auto_multi_zone_min_fv_ratio = 12;
oper_data->macro_peak_select_min_fv_ratio_diff = 50;
oper_data->macro_peak_select_min_up_fv_th = 12;
oper_data->macro_peak_select_max_dn_fv_th = 79;
oper_data->macro_multi_zone_min_fv_ratio = 12;
oper_data->infi_peak_select_min_fv_ratio_diff = 50;
oper_data->infi_peak_select_min_up_fv_th = 12;
oper_data->infi_peak_select_max_dn_fv_th = 79;
oper_data->infi_multi_zone_min_fv_ratio = 12;
oper_data->lowlight_peak_select_min_fv_ratio_diff = 50;
oper_data->lowlight_peak_select_min_up_fv_th = 12;
oper_data->lowlight_peak_select_max_dn_fv_th = 79;
oper_data->lowlight_multi_zone_min_fv_ratio = 12;
oper_data->AF_LC_m = 36;
oper_data->AF_Normal_Dist = 6;//*lens_step_scaling;
oper_data->AF_Inf_Dist =3;//*lens_step_scaling;
oper_data->AF_Macro_Dist = 8;//*lens_step_scaling;
oper_data->AF_Closer_Dist = 6;//*lens_step_scaling;
oper_data->AF_count_max = 2;
oper_data->AF_count_max_no = 4;
oper_data->AF_count_release = 4;
oper_data->AF_slow_max_step = 8;//*lens_step_scaling;
oper_data->AF_mini_step = 2;//*lens_step_scaling;
oper_data->AF_boundary_inf = 20;
oper_data->AF_boundary_macro = 130;
}
void set_camera_mode_para(kal_uint8 mode)
{
kal_uint16 sensor_width,sensor_height;
kal_uint16 max_expo_width,max_expo_line;
image_sensor_func->get_sensor_size(&sensor_width,&sensor_height);
image_sensor_func->get_sensor_period(&max_expo_width, &max_expo_line);
}
/********************************************
reduce_color_matrix
reduce color matrix for reduece noise
input : sat_factor
saturation factor
uint: 0x20
0x20 mean keep saturation the same with ISP table
0x00 mean reduce saturation to bypass
*********************************************/
void reduce_color_matrix(kal_uint32 sat_factor)
{
kal_uint32 cm_table[3],m[9];
kal_uint32 i,k,j;
/*******************************
change to read nvram data
********************************/
cm_table[0]=camera_para.ISP.reg[39];//REG_ISP_COLOR_MATRIX1;
cm_table[1]=camera_para.ISP.reg[40];
cm_table[2]=camera_para.ISP.reg[41];
for(i=0;i<9;i++){
k=i/3;
j=(2-(i%3))*8;
m[i]=(cm_table[k]>>j)&0xff;
}
for(i=0;i<9;i++){
if(i%4==0){
m[i]=(m[i]-32)*sat_factor/32+32;
}
else{
if(m[i]>=128){
m[i]=(m[i]-128)*sat_factor/32+128;
}
else{
m[i]=m[i]*sat_factor/32;
}
}
}
SET_COLOR_MATRIX1(m[0],m[1],m[2]);
SET_COLOR_MATRIX2(m[3],m[4],m[5]);
SET_COLOR_MATRIX3(m[6],m[7],m[8]);
}
void set_anti_low_light_para(kal_uint8 aeidx)
{
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -