403 lines
10 KiB
C
403 lines
10 KiB
C
/*
|
|
* Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
|
|
*
|
|
* File Name: cvi_ive_ioctl.h
|
|
* Description:
|
|
*/
|
|
|
|
#ifndef __CVI_IVE_IOCTL_H__
|
|
#define __CVI_IVE_IOCTL_H__
|
|
|
|
#include "cvi_comm_ive.h"
|
|
#include "cvi_errno.h"
|
|
|
|
struct cvi_ive_test_arg {
|
|
IVE_IMAGE_TYPE_E enType;
|
|
char *pAddr;
|
|
#ifdef __arm__
|
|
__u32 padding;
|
|
#endif
|
|
CVI_U16 u16Width;
|
|
CVI_U16 u16Height;
|
|
};
|
|
|
|
struct cvi_ive_query_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
CVI_BOOL *pbFinish;
|
|
#ifdef __arm__
|
|
__u32 padding;
|
|
#endif
|
|
CVI_BOOL bBlock;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_add_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_ADD_CTRL_S pstCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_and_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_xor_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_or_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_sub_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_SUB_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_erode_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_ERODE_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_dilate_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_DILATE_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_thresh_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_THRESH_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_match_bgmodel_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stCurImg;
|
|
IVE_DATA_S stBgModel;
|
|
IVE_IMAGE_S stFgFlag;
|
|
IVE_DST_IMAGE_S stDiffFg;
|
|
IVE_DST_MEM_INFO_S stStatData;
|
|
IVE_MATCH_BG_MODEL_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_update_bgmodel_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_DATA_S stBgModel;
|
|
IVE_IMAGE_S stFgFlag;
|
|
IVE_DST_IMAGE_S stBgImg;
|
|
IVE_DST_IMAGE_S stChgSta;
|
|
IVE_DST_MEM_INFO_S stStatData;
|
|
IVE_UPDATE_BG_MODEL_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_gmm_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stFg;
|
|
IVE_DST_IMAGE_S stBg;
|
|
IVE_MEM_INFO_S stModel;
|
|
IVE_GMM_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_gmm2_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_SRC_IMAGE_S stFactor;
|
|
IVE_DST_IMAGE_S stFg;
|
|
IVE_DST_IMAGE_S stBg;
|
|
IVE_DST_IMAGE_S stInfo;
|
|
IVE_MEM_INFO_S stModel;
|
|
IVE_GMM2_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_dma_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_DATA_S stSrc;
|
|
IVE_DST_DATA_S stDst;
|
|
IVE_DMA_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_bernsen_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_BERNSEN_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_filter_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_FILTER_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_sobel_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDstH;
|
|
IVE_DST_IMAGE_S stDstV;
|
|
IVE_SOBEL_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_maganang_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDstMag;
|
|
IVE_DST_IMAGE_S stDstAng;
|
|
IVE_MAG_AND_ANG_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_csc_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_CSC_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_hist_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_MEM_INFO_S stDst;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_filter_and_csc_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_FILTER_AND_CSC_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_map_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_SRC_MEM_INFO_S stMap;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_MAP_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_ncc_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_MEM_INFO_S stDst;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_integ_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_MEM_INFO_S stDst;
|
|
IVE_INTEG_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_lbp_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_LBP_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_thresh_s16_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_THRESH_S16_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_thres_su16_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_THRESH_U16_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_16bit_to_8bit_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_16BIT_TO_8BIT_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_ord_stat_filter_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_ORD_STAT_FILTER_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_canny_hys_edge_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_DST_MEM_INFO_S stStack;
|
|
IVE_CANNY_HYS_EDGE_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_norm_grad_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDstH;
|
|
IVE_DST_IMAGE_S stDstV;
|
|
IVE_DST_IMAGE_S stDstHV;
|
|
IVE_NORM_GRAD_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_grad_fg_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stBgDiffFg;
|
|
IVE_SRC_IMAGE_S stCurGrad;
|
|
IVE_SRC_IMAGE_S stBgGrad;
|
|
IVE_DST_IMAGE_S stGradFg;
|
|
IVE_GRAD_FG_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_sad_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stSad;
|
|
IVE_DST_IMAGE_S stThr;
|
|
IVE_SAD_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_resize_arg {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S *astSrc;
|
|
#ifdef __arm__
|
|
__u32 padding1;
|
|
#endif
|
|
IVE_DST_IMAGE_S *astDst;
|
|
#ifdef __arm__
|
|
__u32 padding2;
|
|
#endif
|
|
IVE_RESIZE_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_rgbPToYuvToErodeToDilate {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst1;
|
|
IVE_DST_IMAGE_S stDst2;
|
|
IVE_FILTER_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_stcandicorner {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_ST_CANDI_CORNER_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
struct cvi_ive_ioctl_md {
|
|
IVE_HANDLE pIveHandle;
|
|
IVE_SRC_IMAGE_S stSrc1;
|
|
IVE_SRC_IMAGE_S stSrc2;
|
|
IVE_DST_IMAGE_S stDst;
|
|
IVE_FRAME_DIFF_MOTION_CTRL_S stCtrl;
|
|
CVI_BOOL bInstant;
|
|
};
|
|
|
|
#define CVI_IVE_IOC_MAGIC 'v'
|
|
#define CVI_IVE_IOC_TEST _IOW(CVI_IVE_IOC_MAGIC, 0x00, unsigned long long)
|
|
#define CVI_IVE_IOC_DMA _IOW(CVI_IVE_IOC_MAGIC, 0x01, unsigned long long)
|
|
#define CVI_IVE_IOC_Add _IOW(CVI_IVE_IOC_MAGIC, 0x02, unsigned long long)
|
|
#define CVI_IVE_IOC_And _IOW(CVI_IVE_IOC_MAGIC, 0x03, unsigned long long)
|
|
#define CVI_IVE_IOC_Or _IOW(CVI_IVE_IOC_MAGIC, 0x04, unsigned long long)
|
|
#define CVI_IVE_IOC_Sub _IOW(CVI_IVE_IOC_MAGIC, 0x05, unsigned long long)
|
|
#define CVI_IVE_IOC_Xor _IOW(CVI_IVE_IOC_MAGIC, 0x06, unsigned long long)
|
|
#define CVI_IVE_IOC_Thresh _IOW(CVI_IVE_IOC_MAGIC, 0x07, unsigned long long)
|
|
#define CVI_IVE_IOC_Thresh_S16 _IOW(CVI_IVE_IOC_MAGIC, 0x08, unsigned long long)
|
|
#define CVI_IVE_IOC_Thresh_U16 _IOW(CVI_IVE_IOC_MAGIC, 0x09, unsigned long long)
|
|
#define CVI_IVE_IOC_16BitTo8Bit _IOW(CVI_IVE_IOC_MAGIC, 0x0a, unsigned long long)
|
|
#define CVI_IVE_IOC_CSC _IOW(CVI_IVE_IOC_MAGIC, 0x0b, unsigned long long)
|
|
#define CVI_IVE_IOC_GradFg _IOW(CVI_IVE_IOC_MAGIC, 0x0c, unsigned long long)
|
|
#define CVI_IVE_IOC_NormGrad _IOW(CVI_IVE_IOC_MAGIC, 0x0d, unsigned long long)
|
|
#define CVI_IVE_IOC_Filter _IOW(CVI_IVE_IOC_MAGIC, 0x0e, unsigned long long)
|
|
#define CVI_IVE_IOC_FilterAndCSC _IOW(CVI_IVE_IOC_MAGIC, 0x0f, unsigned long long)
|
|
#define CVI_IVE_IOC_Hist _IOW(CVI_IVE_IOC_MAGIC, 0x10, unsigned long long)
|
|
#define CVI_IVE_IOC_EqualizeHist _IOW(CVI_IVE_IOC_MAGIC, 0x11, unsigned long long)
|
|
#define CVI_IVE_IOC_Map _IOW(CVI_IVE_IOC_MAGIC, 0x12, unsigned long long)
|
|
#define CVI_IVE_IOC_NCC _IOWR(CVI_IVE_IOC_MAGIC, 0x13, unsigned long long)
|
|
#define CVI_IVE_IOC_OrdStatFilter _IOW(CVI_IVE_IOC_MAGIC, 0x14, unsigned long long)
|
|
#define CVI_IVE_IOC_Resize _IOW(CVI_IVE_IOC_MAGIC, 0x15, unsigned long long)
|
|
#define CVI_IVE_IOC_CannyHysEdge _IOW(CVI_IVE_IOC_MAGIC, 0x16, unsigned long long)
|
|
#define CVI_IVE_IOC_CannyEdge _IOW(CVI_IVE_IOC_MAGIC, 0x17, unsigned long long)
|
|
#define CVI_IVE_IOC_Integ _IOW(CVI_IVE_IOC_MAGIC, 0x18, unsigned long long)
|
|
#define CVI_IVE_IOC_LBP _IOW(CVI_IVE_IOC_MAGIC, 0x19, unsigned long long)
|
|
#define CVI_IVE_IOC_MagAndAng _IOW(CVI_IVE_IOC_MAGIC, 0x1a, unsigned long long)
|
|
#define CVI_IVE_IOC_STCandiCorner _IOW(CVI_IVE_IOC_MAGIC, 0x1b, unsigned long long)
|
|
#define CVI_IVE_IOC_STCorner _IOW(CVI_IVE_IOC_MAGIC, 0x1c, unsigned long long)
|
|
#define CVI_IVE_IOC_Sobel _IOW(CVI_IVE_IOC_MAGIC, 0x1d, unsigned long long)
|
|
#define CVI_IVE_IOC_CCL _IOW(CVI_IVE_IOC_MAGIC, 0x1e, unsigned long long)
|
|
#define CVI_IVE_IOC_Dilate _IOW(CVI_IVE_IOC_MAGIC, 0x1f, unsigned long long)
|
|
#define CVI_IVE_IOC_Erode _IOW(CVI_IVE_IOC_MAGIC, 0x20, unsigned long long)
|
|
#define CVI_IVE_IOC_MatchBgModel _IOWR(CVI_IVE_IOC_MAGIC, 0x21, unsigned long long)
|
|
#define CVI_IVE_IOC_UpdateBgModel _IOWR(CVI_IVE_IOC_MAGIC, 0x22, unsigned long long)
|
|
#define CVI_IVE_IOC_GMM _IOW(CVI_IVE_IOC_MAGIC, 0x23, unsigned long long)
|
|
#define CVI_IVE_IOC_GMM2 _IOW(CVI_IVE_IOC_MAGIC, 0x24, unsigned long long)
|
|
#define CVI_IVE_IOC_LKOpticalFlowPyr \
|
|
_IOW(CVI_IVE_IOC_MAGIC, 0x25, unsigned long long)
|
|
#define CVI_IVE_IOC_SAD _IOW(CVI_IVE_IOC_MAGIC, 0x26, unsigned long long)
|
|
#define CVI_IVE_IOC_Bernsen _IOW(CVI_IVE_IOC_MAGIC, 0x27, unsigned long long)
|
|
#define CVI_IVE_IOC_imgInToOdma _IOW(CVI_IVE_IOC_MAGIC, 0x28, unsigned long long)
|
|
#define CVI_IVE_IOC_rgbPToYuvToErodeToDilate \
|
|
_IOW(CVI_IVE_IOC_MAGIC, 0x29, unsigned long long)
|
|
#define CVI_IVE_IOC_MD _IOW(CVI_IVE_IOC_MAGIC, 0x2a, unsigned long long)
|
|
#define CVI_IVE_IOC_CMDQ _IOW(CVI_IVE_IOC_MAGIC, 0x2b, unsigned long long)
|
|
#define CVI_IVE_IOC_RESET _IOW(CVI_IVE_IOC_MAGIC, 0xF0, unsigned long long)
|
|
#define CVI_IVE_IOC_DUMP _IO(CVI_IVE_IOC_MAGIC, 0xF1)
|
|
#define CVI_IVE_IOC_QUERY _IOWR(CVI_IVE_IOC_MAGIC, 0xF2, unsigned long long)
|
|
#endif /* __CVI_IVE_IOCTL_H__ */
|