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
|