203 lines
3.3 KiB
C
203 lines
3.3 KiB
C
|
|
#ifndef ALGO_GLOBALS_H
|
|
#define ALGO_GLOBALS_H
|
|
|
|
//#include "ap_int.h"
|
|
//#include "hls_stream.h"
|
|
|
|
#define RGN_DATA_WIN_SIZE 16
|
|
#define RGN_DATA_PIXEL_WIDTH 2 //output 2 pixels per clock
|
|
#define MAX_PT_NUM 4096
|
|
|
|
#define MAX_HEIGHT 2500
|
|
|
|
typedef unsigned char uchar;
|
|
typedef unsigned short ushort;
|
|
typedef unsigned short uint16_t;
|
|
typedef unsigned int uint_32;
|
|
typedef unsigned int uint32_t;
|
|
|
|
struct FramePara
|
|
{
|
|
uint32_t FrmNo;
|
|
uint32_t timeStamp;
|
|
uint32_t encInfo;
|
|
uint16_t frameROI_w;
|
|
uint16_t frameROI_h;
|
|
uint16_t frameROI_x;
|
|
uint16_t frameROI_y;
|
|
};
|
|
|
|
struct ProcObj
|
|
{
|
|
short StartIdx;
|
|
short EndIdx;
|
|
char* SrcFileDir;
|
|
char* DstFileDir;
|
|
#ifdef FIXED_PROC
|
|
int MinStgTh; // = 10 ;
|
|
#else
|
|
float MinStgTh; // = 4.0f;
|
|
#endif
|
|
short LazerWMin;
|
|
short LazerWMax;
|
|
#ifdef FIXED_PROC
|
|
int RflctPixTh;
|
|
#else
|
|
float RflctPixTh;
|
|
#endif
|
|
unsigned char RflctOutEna;
|
|
int OverlapPixTh;
|
|
unsigned char EnhanStep;
|
|
unsigned char PickEna;
|
|
|
|
unsigned char RgnFltrTh;
|
|
unsigned char RmvWkEndEna;
|
|
unsigned char RmvWkEndTh;
|
|
unsigned char RmvWkEndMultCoe;
|
|
unsigned short RmvWkEndMinLen;
|
|
unsigned char PickBFEna;
|
|
unsigned char PickBkGrnd;
|
|
unsigned char PickRLenTh;
|
|
|
|
unsigned char EnergyPickEna;
|
|
unsigned short PickEnergyType;
|
|
unsigned short RgnEnergyPLen;
|
|
|
|
unsigned short RgnMeanETh;
|
|
};
|
|
|
|
union CharFloat
|
|
{
|
|
float fdata;
|
|
unsigned char buff[4];
|
|
};
|
|
|
|
union UintDouble
|
|
{
|
|
double fdata;
|
|
unsigned int buff[2];
|
|
};
|
|
|
|
union UintFloat
|
|
{
|
|
float fdata;
|
|
unsigned int unData;
|
|
};
|
|
|
|
struct PeakRun{
|
|
uchar start;
|
|
uchar len;
|
|
uchar value;
|
|
};
|
|
|
|
struct RgnPix
|
|
{
|
|
ushort LazerWinX; //winStartX, ap_uint<12>
|
|
ushort LazerWinY; //ap_uint<12>
|
|
ushort LazerWinRid; //ap_uint<11>
|
|
uchar LazerWinFlag; //ap_uint<4>, bit0:OverLap | bit1:Rflct,
|
|
uchar LazerWinRsv; //ap_uint<1>
|
|
uchar Sync; //ap_uint<2>, FrmSync:b10 | LineSync:b01
|
|
uchar RltvRdx; //ap_uint<8>, bit3~0:Str | bit7~4:End
|
|
};
|
|
|
|
struct RgnPixConvolve
|
|
{
|
|
ushort LazerWinX; //winStartX
|
|
ushort LazerWinY;
|
|
ushort LazerWinRid;
|
|
uchar LazerWinFlag; //bit0:OverLap | bit1:Rflct
|
|
uchar LazerWinRsv;
|
|
uchar Sync; //FrmSync:b10 | LineSync:b01
|
|
uchar value;
|
|
int nD1;
|
|
int nD2;
|
|
};
|
|
|
|
struct RgnSubPix
|
|
{
|
|
float x;
|
|
ushort y;
|
|
ushort rid;
|
|
uchar flag; //bit0:OverLap | bit1:Rflct
|
|
uchar rsv;
|
|
uchar Sync; //FrmSync:b10 | LineSync:b01
|
|
uchar value;
|
|
};
|
|
|
|
struct RgnSubPixCalib
|
|
{
|
|
float x;
|
|
float y;
|
|
ushort rid;
|
|
uchar flag; //bit0:OverLap | bit1:Rflct
|
|
uchar rsv;
|
|
uchar Sync; //FrmSync:b10 | LineSync:b01
|
|
uchar value;
|
|
};
|
|
|
|
struct SubpixInfo
|
|
{
|
|
float x;
|
|
ushort y;
|
|
ushort rid;
|
|
uchar flag; //bit0:OverLap | bit1:Rflct
|
|
uchar rsv;
|
|
uchar value;
|
|
};
|
|
union Byte8
|
|
{
|
|
//SubpixInfo subpix;
|
|
unsigned int nData[2];
|
|
float fData[2];
|
|
double dData;;
|
|
};
|
|
|
|
struct LineCalibK
|
|
{
|
|
double calibK[8]; //K0 - K7
|
|
};
|
|
|
|
struct CalibData
|
|
{
|
|
double calibK[2];
|
|
//SubCalib subpix_calib;
|
|
uchar Sync; //FrmSync:b10 | LineSync:b01
|
|
};
|
|
|
|
struct CamPara
|
|
{
|
|
double u0;
|
|
double v0;
|
|
double F_inv;
|
|
double plane_a;
|
|
double plane_b;
|
|
double plane_c;
|
|
};
|
|
|
|
struct Pnt3D
|
|
{
|
|
float x;
|
|
float y;
|
|
float z;
|
|
uchar value;
|
|
uchar Sync; //FrmSync:b10 | LineSync:b01
|
|
};
|
|
|
|
#if 0
|
|
struct RgnPnt {
|
|
ap_uint<12> winStartX;
|
|
ap_uint<12> y;
|
|
ap_uint<11> rid_data; //HSync=1:rid; HSync=0:data
|
|
ap_uint<1> overlalFlag;
|
|
ap_uint<1> reflectFlag;
|
|
ap_uint<1> rsvd;
|
|
ap_uint<1> VSync;
|
|
ap_uint<1> HSync;
|
|
ap_uint<8> PkRltvRdx;
|
|
|
|
};
|
|
#endif
|
|
#endif
|