#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