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

📄 ae_awb.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 2 页
字号:
}	AE_METERING_DYNAMIC;

typedef enum
{
	TV00020=0,	TV00025,	TV00030,	TV00035,	TV00040,	TV00045,	TV00050,	TV00055,		
	TV00060,		TV00070,	TV00080,	TV00090,	TV00100,	TV00110,	TV00120,	TV00130,
	TV00140,		TV00150,	TV00170,	TV00200,	TV00240,	TV00250,	TV00300,	TV00330,		
	TV00400,		TV00500,	TV00600,	TV01000,	TV01200,	TV01250,	TV01400,	TV01600,		
	TV01750,		TV02000,	TV02500,	TV03200,	TV04000,	TV05000,	TV06400,	TV08000,		
	TV10000,		TV12000,	TV14000,	TV16000,	TV18000,	TV20000,	TV_NO
}TIME_VALUE_INDEX;

typedef enum
{
	AV020=0,	AV028, AV035, AV040, AV045, AV050, AV056, AV063, AV071, AV080, 
	AV090, 	AV100, AV110, AV130, AV140, AV160, AV180, AV200, AV220, AV_NO
}APERTURE_VALUE_INDEX;

typedef enum
{
	ISO100=0,	ISO200,	ISO400,	ISO_NO
}ISO_VALUE_INDEX;
typedef enum
{
	CAMERA_SHADING_NORMAL_SET=0,
	CAMERA_SHADING_PREVIEW_COPY2_TAKE,
	CAMERA_SHADING_TAKE_COPY2_PREVIEW,
	CAMERA_SHADING_SET_FAIL_KEEP_NORMAL_SET,	
	CAMERA_SHADING_END
} camera_shading_mode_set_num;

typedef enum
{
	AWB_NORMAL_FINISH = 0,
	AWB_PWRON_FASTRUN,
	AWB_OVER_LUM,
	AWB_FEW_COUNT,
	AWB_LOWER_VALUE,
	AWB_FASTFLAG,
	AWB_RGAIN_MAX,
	AWB_BGAIN_MAX	
}AWB_STATUS_INDEX;

typedef enum
{
    FLASHLIGHT_NONE = 0,
	FLASHLIGHT_LED_ONOFF,           // LED always on/off
	FLASHLIGHT_LED_CONSTANT,	    // CONSTANT type LED
	FLASHLIGHT_LED_PEAK,	        // peak strobe type LED	
	FLASHLIGHT_XENON_PEAK	        // peak strobe type Xenon		
}	FLASHLIGHT_TYPE;

typedef struct
{
	kal_uint16	value;	//Tv*100000
	kal_uint16	prtinfo;	//1/Tv *10
}shutter_info_struct;

typedef struct
{
	kal_uint8	value;	//Av*10
	kal_uint8	prtinfo; //Av*10
}aperture_info_struct;

typedef struct
{
	shutter_info_struct 	tv[TV_NO];
	aperture_info_struct av[AV_NO];
}tv_av_info_struct;

typedef struct
{
	kal_uint16	shutter;
	kal_uint16	sensorgain;
	kal_uint8	ispgain;
}exposure_lut_struct;

typedef struct
{
	kal_uint8	metering;
	kal_uint16	tv;
	kal_uint8	av;
	kal_uint8	iso;
	kal_uint8	flash;
}ae_operation_struct;

typedef struct
{
	kal_uint8	trigger;
	kal_uint8	index;
	kal_uint8	mode;
	kal_uint8	metering;
	kal_uint8	mfdir;
	kal_uint8	range;
}af_operation_struct;

typedef struct
{
	kal_uint8				dscmode;
	ae_operation_struct	ae;
	af_operation_struct	af;
}dsc_operation_struct;

typedef struct
{
	kal_uint32 	mwb_buffer_address;
	kal_uint16 	mwb_image_width;
	kal_uint16 	mwb_image_height;
} camera_mwb_process_struct;

typedef struct
{
	kal_bool		ae_mode;									/* QUALITY_PRIORITY, FRAME_RATE_PRIORITY */
	kal_bool		enable_cap_shutter_compensate;	/* KAL_TRUE, KAL_FALSE */
	kal_bool		gain_priority;							/* ISP_GAIN_PRIORITY, SENSOR_GAIN_PRIORITY */
	kal_uint8	pregain_mode;							/* ISP_ONLY, SENSOR_ONLY, ISP_SENSOR_BOTH */
	kal_uint16	pregain_max;							/* Whole Camera Pregain Upper Bound */
	kal_uint16	isp_pregain_max;						/* ISP Digital Pregain Upper Bound */
	kal_uint16	sensor_pregain_max;					/* Sensor Pregain Upper Bound */
	kal_uint16	pregain_compensate_max;				/* For FRAME_RATE_PRIORITY in Preview Mode  */
	kal_uint16	shutter_compensate_max;				/* For Capture Mode  Quality*/
	kal_uint16	pregain_min;							/* ISP driver assign, 1x gain */
	kal_uint16	isp_pregain_min;						/* ISP driver assign, 1x gain */
	kal_uint16	sensor_pregain_min;					/* ISP driver assign, 1x gain */
	kal_uint8	preview_display_wait_frame;		/* Wait AE stable to display fist frame image */
	kal_uint8	ae_smooth_upper_bound;				/* Smooth range upper bound */
	kal_uint8	ae_smooth_lower_bound;				/* Smooth range lower bound */
	kal_uint8	ae_awb_cal_period;					/* AE AWB calculation period */
	kal_uint8	ae_setting_gain_delay_frame;		/* The frame of setting gain */
	kal_uint8	ae_setting_shut_delay_frame;		/* The frame of setting shutter */
	kal_uint8	ae_setting_cal_delay_frame;		/* The frame of calculation */
	kal_uint8	capture_delay_frame;					/* wait stable frame when sensor change mode (pre to cap) */
	kal_uint8	preview_delay_frame;					/* wait stable frame when sensor change mode (cap to pre) */
	kal_uint8	ae_lowlight_threshold;				/* low light threshold of luminance for camera */
	kal_uint8	ae_lowlight_off_threshold;			/* low light turn off threshold of luminance for camera */
	kal_uint8	ae_video_lowlight_threshold;		/* low light threshold of luminance for video */
	kal_uint8	ae_video_lowlight_off_threshold;	/* low light turn off threshold of luminance for video */
	kal_bool		ae_high_banding_target_enable;	/* enable/disable banding taeget (default enable) */
	kal_bool		flare_camera_enable;					/* flare algorithm enable for camera */
	kal_bool		flare_video_enable;					/* flare algorithm enable for video */
	kal_uint8	flare_lower_bound_percentage;		/* percentage of total pixel for flare lower bound */
	kal_uint8	flare_upper_bound_percentage;		/* percentage of total pixel for flare upper bound */
	kal_uint8	flare_gain_max;						/* the gain to maximize flare gain to prevent saturation earier */
	kal_uint8	ae_setting_sensor_gain_delay_frame;		/* The frame of setting sensor gain */
	kal_bool		preview_defect_table_enable;		/* KAL_TRUE or KAL_FALSE */
	kal_bool		capture_defect_table_enable;		/* KAL_TRUE or KAL_FALSE */
	camera_shading_mode_set_num	shading_table_mode_set; /* shading table mode set */
	kal_uint8	yuv_af_timeout_frame;				/* frame no of af result status checking for YUV sensor */
	kal_uint8	flashlight_mode;		            /* FLASH_LIGHT_TYPE */		
	kal_uint8	flashlight_delta_main_lum;          /* delta main lum@60cm / delta sub lum@60cm * 64 */
	kal_uint8	extreme_CT_fixWB_enable;			/*enable/disable extreme low and high color temperature to limit to A and D75*/
	kal_uint8	outdoorIdx;							/*AE index for outdoor condition*/
	kal_uint8	outdoor_fixWB_enable;				/*enable/disable outdoor fix WB*/	
	kal_uint16	out_Rgain;							/*outdoor Rgain*/	
	kal_uint16	out_GRgain;							/*outdoor GRgain*/	
	kal_uint16	out_Bgain;							/*outdoor Bgain*/	
	kal_uint16	out_GBgain;							/*outdoor GBgain*/

}camera_operation_para_struct;

extern kal_uint8	ae_range;
extern kal_uint8	expo_level;
extern kal_uint8	high_expo_level;
extern kal_uint8	low_expo_level;
extern kal_uint8	light_band;
extern kal_uint32 eShutter;
extern kal_uint32	lum[9];
extern kal_uint8	BaseShutter;
extern kal_uint32	avglum;
extern kal_uint32	histogram[5],Rhist[5],Ghist[5],Bhist[5];
extern kal_uint8	flare_offset;
extern kal_uint8	flare_gain;
extern kal_uint8	histogram_b1,histogram_b2,histogram_b3,histogram_b4,histogram_b5;
#if (defined(MT6228)||defined(MT6229)||defined(MT6230))
extern kal_uint32	ae_result[7][9];
#endif
#if (!defined(MT6219))
extern dsc_operation_struct dsc_status;
#endif

extern kal_uint16	pregain; 
extern kal_uint8	isp_pregain; 
extern kal_uint16	sensor_pregain; 
extern kal_uint8 	iris_no;

#if (defined(MT6219))
extern kal_uint16	AWB_Rgain,AWB_Ggain,AWB_Bgain;
extern kal_uint16	tmp_Rgain,tmp_Ggain,tmp_Bgain;
#else
extern kal_uint16	AWB_Rgain,AWB_GRgain,AWB_Bgain,AWB_GBgain;
extern kal_uint16	tmp_Rgain,tmp_GRgain,tmp_Bgain,tmp_GBgain; 
#endif
extern kal_uint16	Rgain_max,Ggain_max,Bgain_max;
extern kal_uint16	Rgain_min,Ggain_min,Bgain_min;
extern kal_uint32	Acc_R,Acc_G,Acc_B,Acc_Cnt;
extern kal_uint8	awbEntryCnt;
extern kal_bool		awbFastFlag;

extern kal_bool ae_enable_flag,awb_enable_flag;
extern camera_operation_para_struct camera_oper_data;
extern kal_uint8	ae_awb_cal_complete;

extern kal_bool ae_bypass_enable_flag;		// AE bypass mode: bypass ae cal
extern kal_uint8 AE_BYPASS_INDEX;

#if (!defined(MT6219))
extern const exposure_lut_struct *AE_LUT;
extern const kal_uint8 *IRIS_LUT;
#endif

#if (!defined(MT6219))
/* DSC AE */
extern const tv_av_info_struct tv_av_info;
extern kal_bool shutter_pri_60hz_info[TV_NO];
extern kal_bool shutter_pri_50hz_info[TV_NO];
extern kal_bool aperture_pri_info[AV_NO];
extern kal_bool iso_pri_info[ISO_NO];
extern kal_uint16 iso_gain_info[ISO_NO];
extern kal_uint8 AE_INDEX, AE_INDEX_C;
#endif

/* AE AWB Main */
void init_ae_awb(void);
void ae_awb_main(void);
void ae_on_off(kal_bool flag);
void ae_select_band(kal_uint8 band);
void awb_on_off(kal_bool flag);
void awb_fast_method(kal_bool flag);
void awb_reset(void);
void get_ae_awb_info(void);
void get_histogram_info(kal_uint8 color);
void ae_bypass_mode_on_off(kal_bool flag);
kal_uint32 get_lum_info(void);

/* Auto-Exposure */
void ae_config(kal_uint16 Hsize,kal_uint16 Vsize);
void ae_proc(void);
void ae_banding_factor(void);
void ae_cal_lum(void);
void ae_compute(void);
void cal_shutter(void);
void cal_pregain(void);
void ae_set_pregain(kal_uint16 pre_gain);
void ae_set_lut_gain(void);
void ae_set_isp_pregain(void);
void ae_set_ini_shutter(kal_uint16 shutter);
void ae_select_stepperev(kal_uint8 step);
void ae_set_expovalue(kal_uint8 target);
void ae_set_shutter(kal_uint16 lines);
void init_histogram_setting (void);
kal_int8 ae_get_ev_level(void);
kal_uint8 ae_set_ev(kal_int8 level);
kal_uint8 ae_get_totalevlevel(void);
kal_uint8 ae_get_stepperev(void);
kal_uint8 ae_get_expovalue(void);
kal_uint16 ae_get_ini_shutter(void);
kal_uint16 ae_get_current_shutter(void);
kal_uint32 get_shutter_from_time(kal_uint32 time, kal_uint16 pixel_width);
#if (!defined(MT6219))
void ae_set_ini_expo_idx(kal_uint8 idx);
kal_uint8 ae_get_ini_expo_idx(void);
#endif

/* Auto-White-Balance */
void awb_config(kal_uint16 Hsize,kal_uint16 Vsize);
void awb_set_manual_gain(kal_uint8 light);
void awb_save_manual_gain(kal_uint8 light, kal_uint16 color_temp, kal_uint16 r_gain, kal_uint16 g_gain, kal_uint16 b_gain);
void awb_read_all_manual_gain(kal_uint16 manualWB[5][4]);
void awb_proc(void);
void awb_set_gain(void);
void awb_gain_max_min(void);
#if (defined(MT6228)||defined(MT6229)||defined(MT6230))
void camera_manual_wb_setting(void);
void camera_mwb_process(camera_mwb_process_struct *mwb_data);
void backup_mwb_setting(void);
void restore_mwb_setting(void);
#endif

#if (!defined(MT6219))
void flash_config(kal_uint16 delay_line,kal_uint16 duty_line);
void get_shutter_priority_info(kal_uint8 tv_index, shutter_info_struct *tv_data);
void get_aperture_priority_info(kal_uint8 av_index, aperture_info_struct *av_data);
#if (defined(EXIF_SUPPORT))	
void exif_update_cam_para_struct(exif_cam_para_struct *exif_para);
#endif
#endif



#endif /* _AE_AWB_H */
#endif /* MT6219||MT6228||MT6226||MT6227||MT6229 ||MT6230*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -