Template Class CLAHEImpl
Defined in File xf_clahe.hpp
Class Documentation
-
template<int IN_TYPE, int HEIGHT, int WIDTH, int NPC, int CLIPLIMIT, int TILES_Y_MAX, int TILES_X_MAX, int TILES_Y_MIN = 4, int TILES_X_MIN = 4>
class CLAHEImpl Public Functions
-
inline void init(ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])
-
inline void clipLut(_CLAHE_TILE &Tile, ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])
-
inline void populateLutBlk(xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in, _CLAHE_TILE &Tile, xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in_copy, ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])
-
inline void populateLut(xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in, _CLAHE_TILE &Tile, xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in_copy, ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])
-
inline void interpolate(xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in, _CLAHE_TILE &Tile, ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &dst)
-
inline void process_i(xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &dst, xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in, _CLAHE_TILE &Tile, ap_uint<HIST_COUNTER_BITS> _lutw[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<HIST_COUNTER_BITS> _lutr[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])
-
inline void process(xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &dst, xf::cv::Mat<IN_TYPE, HEIGHT, WIDTH, NPC> &in, ap_uint<HIST_COUNTER_BITS> _lutw[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<HIST_COUNTER_BITS> _lutr[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX], int height, int width, int clip, int tilesY, int tilesX)
Public Static Attributes
-
static constexpr int TILE_HEIGHT_MAX = _CLAHE_TILE::TILE_HEIGHT_MAX
-
static constexpr int TILE_WIDTH_MAX = _CLAHE_TILE::TILE_WIDTH_MAX
-
static constexpr int CLIP_COUNTER_BITS = _CLAHE_TILE::CLIP_COUNTER_BITS
-
static constexpr int _MAXCLIPVALUE = ((CLIPLIMIT * TILE_HEIGHT_MAX * TILE_WIDTH_MAX) >> XF_DTPIXELDEPTH(IN_TYPE, NPC))
-
static constexpr int MAXCLIPVALUE = (_MAXCLIPVALUE > 1) ? _MAXCLIPVALUE : 1
-
static constexpr int HIST_COUNTER_BITS = (XF_DTPIXELDEPTH(IN_TYPE, NPC) > xf::cv::log2<MAXCLIPVALUE>::cvalue) ? XF_DTPIXELDEPTH(IN_TYPE, NPC) : xf::cv::log2<MAXCLIPVALUE>::cvalue
-
inline void init(ap_uint<HIST_COUNTER_BITS> _lut[TILES_Y_MAX][TILES_X_MAX][(XF_NPIXPERCYCLE(NPC) << 1)][1 << XF_DTPIXELDEPTH(IN_TYPE, NPC)], ap_uint<CLIP_COUNTER_BITS> _clipCounter[TILES_Y_MAX][TILES_X_MAX])