#ifndef _TI_vcop_sobelxy_kernel_h_
#define _TI_vcop_sobelxy_kernel_h_

/* Parameter Register Block */
extern unsigned short * __pblock_vcop_sobelX_3x3_uchar_char; //[32];

/* Basic Runner Function */
void vcop_sobelX_3x3_uchar_char(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift);
/* Custom Runner Function */
void vcop_sobelX_3x3_uchar_char_custom(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* Parameter Block Initialization Function */
unsigned int vcop_sobelX_3x3_uchar_char_init(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* VCOP VLOOP Execution Function */
void vcop_sobelX_3x3_uchar_char_vloops(
   unsigned short pblock[]);

/* Parameter Register Count */
#define PARAM_SIZE_vcop_sobelX_3x3_uchar_char ((unsigned int)32)
unsigned int vcop_sobelX_3x3_uchar_char_param_count(void);
/* Internal Value Count */
#define CTRL_SIZE_vcop_sobelX_3x3_uchar_char ((unsigned int)0)
unsigned int vcop_sobelX_3x3_uchar_char_ctrl_count(void);
#if 0
/***********************************************************/
/* Parameter Register Block */
extern unsigned short * __pblock_vcop_sobelX_3x3_2D_uchar_char; //[24];

/* Basic Runner Function */
void vcop_sobelX_3x3_2D_uchar_char(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift);
/* Custom Runner Function */
void vcop_sobelX_3x3_2D_uchar_char_custom(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* Parameter Block Initialization Function */
unsigned int vcop_sobelX_3x3_2D_uchar_char_init(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* VCOP VLOOP Execution Function */
void vcop_sobelX_3x3_2D_uchar_char_vloops(
   unsigned short pblock[]);

/* Parameter Register Count */
#define PARAM_SIZE_vcop_sobelX_3x3_2D_uchar_char ((unsigned int)24)
unsigned int vcop_sobelX_3x3_2D_uchar_char_param_count(void);
/* Internal Value Count */
#define CTRL_SIZE_vcop_sobelX_3x3_2D_uchar_char ((unsigned int)0)
unsigned int vcop_sobelX_3x3_2D_uchar_char_ctrl_count(void);
#endif
/***********************************************************/
/* Parameter Register Block */
extern unsigned short * __pblock_vcop_sobelY_3x3_uchar_char; //[32];

/* Basic Runner Function */
void vcop_sobelY_3x3_uchar_char(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift);
/* Custom Runner Function */
void vcop_sobelY_3x3_uchar_char_custom(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* Parameter Block Initialization Function */
unsigned int vcop_sobelY_3x3_uchar_char_init(
   __vptr_uint8 in,
   __vptr_int16 inter,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int inter_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* VCOP VLOOP Execution Function */
void vcop_sobelY_3x3_uchar_char_vloops(
   unsigned short pblock[]);

/* Parameter Register Count */
#define PARAM_SIZE_vcop_sobelY_3x3_uchar_char ((unsigned int)32)
unsigned int vcop_sobelY_3x3_uchar_char_param_count(void);
/* Internal Value Count */
#define CTRL_SIZE_vcop_sobelY_3x3_uchar_char ((unsigned int)0)
unsigned int vcop_sobelY_3x3_uchar_char_ctrl_count(void);
#if 0
/***********************************************************/
/* Parameter Register Block */
extern unsigned short * __pblock_vcop_sobelY_3x3_2D_uchar_char; //[24];

/* Basic Runner Function */
void vcop_sobelY_3x3_2D_uchar_char(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift);
/* Custom Runner Function */
void vcop_sobelY_3x3_2D_uchar_char_custom(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* Parameter Block Initialization Function */
unsigned int vcop_sobelY_3x3_2D_uchar_char_init(
   __vptr_uint8 in,
   __vptr_int8 coef,
   __vptr_int8 out,
   int img_w,
   int img_h,
   int out_w,
   int out_h,
   int comp_w,
   int comp_h,
   int in_type,
   int coef_type,
   int out_type,
   int round_shift,
   unsigned short pblock[]);

/* VCOP VLOOP Execution Function */
void vcop_sobelY_3x3_2D_uchar_char_vloops(
   unsigned short pblock[]);

/* Parameter Register Count */
#define PARAM_SIZE_vcop_sobelY_3x3_2D_uchar_char ((unsigned int)24)
unsigned int vcop_sobelY_3x3_2D_uchar_char_param_count(void);
/* Internal Value Count */
#define CTRL_SIZE_vcop_sobelY_3x3_2D_uchar_char ((unsigned int)0)
unsigned int vcop_sobelY_3x3_2D_uchar_char_ctrl_count(void);
#endif
/***********************************************************/
/* Parameter Register Block */
extern unsigned short * __pblock_vcop_sobel_magnitude; //[24];

/* Basic Runner Function */
void vcop_sobel_magnitude(
   __vptr_int8 inX,
   __vptr_int8 inY,
   __vptr_uint8 out,
   unsigned short blk_w,
   unsigned short blk_h,
   unsigned short out_w);
/* Custom Runner Function */
void vcop_sobel_magnitude_custom(
   __vptr_int8 inX,
   __vptr_int8 inY,
   __vptr_uint8 out,
   unsigned short blk_w,
   unsigned short blk_h,
   unsigned short out_w,
   unsigned short pblock[]);

/* Parameter Block Initialization Function */
unsigned int vcop_sobel_magnitude_init(
   __vptr_int8 inX,
   __vptr_int8 inY,
   __vptr_uint8 out,
   unsigned short blk_w,
   unsigned short blk_h,
   unsigned short out_w,
   unsigned short pblock[]);

/* VCOP VLOOP Execution Function */
void vcop_sobel_magnitude_vloops(
   unsigned short pblock[]);

/* Parameter Register Count */
#define PARAM_SIZE_vcop_sobel_magnitude ((unsigned int)24)
unsigned int vcop_sobel_magnitude_param_count(void);
/* Internal Value Count */
#define CTRL_SIZE_vcop_sobel_magnitude ((unsigned int)0)
unsigned int vcop_sobel_magnitude_ctrl_count(void);

/***********************************************************/
#endif

