⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera_yuv_para.c

📁 美光CMOS摄像头驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
	/* 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 + -