163 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _VQA_H
 | |
| #define _VQA_H
 | |
| #include "vendor_isp.h"
 | |
| 
 | |
| #define VQA_VERSION         0x80200917
 | |
| #define VQA_MAX_CH_NUM	  	1
 | |
| #define VQA_DEBUG_MODE	  	0
 | |
| #define VQA_IMG_SIZE 		240*135
 | |
| 
 | |
| #if VQA_DEBUG_MODE
 | |
| #include    <basetsd.h>
 | |
| #else
 | |
| //#include    "ipl_header_infor_yuv.h"
 | |
| //#include    "ipl_hal_ime_info.h"
 | |
| //#include    "ErrorNo.h"
 | |
| //#include    "md_module.h"
 | |
| #include "hd_type.h"
 | |
| #endif
 | |
| 
 | |
| typedef HD_RESULT (* clrcst_vendor_isp_init_t)(VOID);
 | |
| typedef HD_RESULT (* clrcst_vendor_isp_uninit_t)(VOID);
 | |
| typedef HD_RESULT (* clrcst_vendor_isp_get_common_t)(ISPT_ITEM item, VOID *p_param);
 | |
| 
 | |
| typedef struct _vqa_res_t {
 | |
| 	UINT32 res_too_light;
 | |
| 	UINT32 res_too_dark;
 | |
| 	UINT32 res_blur;
 | |
| 	UINT32 res_blur_block[(160*94)];
 | |
| 	UINT32 res_blur_cover;
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }vqa_res_t;
 | |
| 
 | |
| typedef struct _enable_param_t {
 | |
| 	UINT32 en_auto_adj_param;
 | |
| 	UINT32 en_ref_md;
 | |
| 	UINT32 en_too_light;
 | |
| 	UINT32 en_too_dark;
 | |
| 	UINT32 en_blur;
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }enable_param_t;
 | |
| 
 | |
| typedef struct _global_param_t {
 | |
| 	UINT32 width;
 | |
| 	UINT32 height;
 | |
| 	UINT32 mb_x_size;
 | |
| 	UINT32 mb_y_size;
 | |
| 	UINT32 auto_adj_period;
 | |
| 	UINT32 g_alarm_frame_num;
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }global_param_t;
 | |
| 
 | |
| typedef struct _light_param_t {
 | |
| 	UINT32 too_light_strength_th;
 | |
| 	UINT32 too_light_cover_th;
 | |
| 	UINT32 too_light_alarm_times;
 | |
| 
 | |
| 	UINT32 too_dark_strength_th;
 | |
| 	UINT32 too_dark_cover_th;
 | |
| 	UINT32 too_dark_alarm_times;
 | |
| 
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }light_param_t;
 | |
| 
 | |
| typedef struct _contrast_param_t {
 | |
| 	UINT32 blur_strength;
 | |
| 	UINT32 blur_cover_th;
 | |
| 	UINT32 blur_alarm_times;
 | |
| 	UINT32 blur_w_num;
 | |
| 	UINT32 blur_h_num;
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }contrast_param_t;
 | |
| 
 | |
| typedef struct _vqa_param_t {
 | |
| 	enable_param_t enable_param;
 | |
| 	global_param_t global_param;
 | |
| 	light_param_t light_param;
 | |
| 	contrast_param_t contrast_param;
 | |
| 	UINT32 reserved[7];          ///< Reserved words
 | |
| }vqa_param_t;
 | |
| 
 | |
| /**
 | |
|     Color-Cast parameter
 | |
| 
 | |
|     Structure of parameter of Color-Cast
 | |
| */
 | |
| //@{
 | |
| typedef struct _CLRCST_PARM_S {
 | |
|     UINT32 cl_collect_time;
 | |
|     UINT32 cl_warning_max;
 | |
|     UINT32 cl_diff_th;
 | |
|     UINT32 cl_diff_area;
 | |
|     UINT32 cl_mode;
 | |
|     UINT32 cl_backup_cnt;
 | |
|     UINT32 cl_is_debug;
 | |
| 	UINT32 cl_max_yuv_width;
 | |
| 	UINT32 cl_max_yuv_height;
 | |
| 	UINT32 sensor_ch;
 | |
| 	clrcst_vendor_isp_init_t vendor_isp_init;
 | |
|     clrcst_vendor_isp_uninit_t vendor_isp_uninit;
 | |
| 	clrcst_vendor_isp_get_common_t vendor_isp_get_common;
 | |
| } CLRCST_PARM_S;
 | |
| 
 | |
| /**
 | |
|     Color-Cast Result
 | |
| 
 | |
|     Result
 | |
| */
 | |
| typedef enum {
 | |
|     CL_NORMAL_S          = 0,    ///< normal
 | |
|     CL_ALARM_S           = 1,    ///< abnormal
 | |
|     CL_ERROR_S           = 2,    ///< error
 | |
| } CLRCST_STATUS_S;
 | |
| 
 | |
| /**
 | |
|  */
 | |
| typedef struct _LIB_VQA_AP_REGION_POINT {
 | |
| 	INT32		  x;
 | |
| 	INT32		  y;
 | |
| } LIB_VQA_AP_REGION_POINT;
 | |
| 
 | |
| typedef struct _LIB_VQA_AP_CROSS_REGION {
 | |
| 	UINT32  point_num;
 | |
| 	LIB_VQA_AP_REGION_POINT*	pstPt;
 | |
| } LIB_VQA_AP_CROSS_REGION;
 | |
| 
 | |
| typedef struct _LIB_VQA_AP_CROSS_INFO {
 | |
| 	UINT32  region_num;
 | |
| 	LIB_VQA_AP_CROSS_REGION* pstCrossRegion;
 | |
| } LIB_VQA_AP_CROSS_INFO;
 | |
| 
 | |
| #if VQA_DEBUG_MODE
 | |
| extern void		vqa_init(UINT32 ch, UINT32 buf);
 | |
| #else
 | |
| extern VOID		vqa_init(UINT32 ch, UINT32 buf);
 | |
| #endif
 | |
| 
 | |
| #if VQA_DEBUG_MODE
 | |
| extern void		vqa_set_param(UINT32 ch, vqa_param_t *vqa_param);
 | |
| #else
 | |
| extern VOID		vqa_set_param(UINT32 ch, vqa_param_t *vqa_param);
 | |
| #endif
 | |
| 
 | |
| extern INT32	vqa_run(UINT32 ch, UINT32 sc_hw_evt, UINT8 *img_y, UINT32 width, UINT32 height, UINT32 src_evt_addr, vqa_res_t *vqa_res);
 | |
| 
 | |
| #if VQA_DEBUG_MODE
 | |
| extern void		vqa_release(UINT32 ch);
 | |
| #else
 | |
| extern UINT32	vqa_calc_buf_size(VOID);
 | |
| 
 | |
| #endif
 | |
| 
 | |
| extern VOID vqa_set_debug(UINT32 is_debug);
 | |
| extern UINT32 vqa_get_version(UINT32 ver);
 | |
| 
 | |
| extern INT vqa_clrcst_init(CLRCST_PARM_S *cl_parm);
 | |
| extern UINT32 vqa_clrcst_detect(UINT32 va_addr, UINT32 yuv_width, UINT32 yuv_height);
 | |
| extern VOID vqa_clrcst_uninit(CLRCST_PARM_S *cl_parm);
 | |
| 
 | |
| extern VOID vqa_clrcst_uninit(CLRCST_PARM_S *cl_parm);
 | |
| extern INT32 vqa_cal_point_in_polygon(INT32 point_x, INT32 ponit_y, LIB_VQA_AP_CROSS_INFO region, UINT8* cross_rst);
 | |
| 
 | |
| #endif
 | 
