The rgbir2bayer
function creates a standard RGB-only-mosaic
and an IR image from input RGB-IR combined mosaic image.
API Syntax
template <int FSIZE1 = 5,
int FSIZE2 = 3,
int BFORMAT = 0,
int TYPE,
int ROWS,
int COLS,
int NPPC = 1,
int XFCVDEPTH_IN = _XFCVDEPTH_DEFAULT,
int XFCVDEPTH_OUT_0 = _XFCVDEPTH_DEFAULT,
int XFCVDEPTH_OUT_1 = _XFCVDEPTH_DEFAULT,
int XFCVDEPTH_OUT_2 = _XFCVDEPTH_DEFAULT,
int BORDER_T = XF_BORDER_CONSTANT,
int USE_URAM = 0>
void rgbir2bayer(xf::cv::Mat<TYPE, ROWS, COLS, NPPC, XFCVDEPTH_IN>& _src,
char R_IR_C1_wgts[FSIZE1 * FSIZE1],
char R_IR_C2_wgts[FSIZE1 * FSIZE1],
char B_at_R_wgts[FSIZE1 * FSIZE1],
char IR_at_R_wgts[FSIZE2 * FSIZE2],
char IR_at_B_wgts[FSIZE2 * FSIZE2],
char sub_wgts[4],
xf::cv::Mat<TYPE, ROWS, COLS, NPPC, XFCVDEPTH_OUT_0>& _dst_rggb,
xf::cv::Mat<TYPE, ROWS, COLS, NPPC, XFCVDEPTH_OUT_1>& _dst_ir)
Parameter Descriptions
The following table describes the template and the function parameters.
Parameter | Description |
---|---|
FSIZE1 | Filter size for RGB pixels |
FSIZE2 | Filter size for IR pixels |
BFORMAT | Bayer format. Supported types are XF_BAYER_GR and XF_BAYER_BG |
TYPE | Input pixel Type. 8-bit, 10 bit, 12 bit and 16 bit unsigned, 1 channel is supported (XF_8UC1,XF_10UC1, XF_12UC1, XF_16UC1). |
ROWS | Maximum height of input and output image. |
COLS | Maximum width of input and output image. Must be multiple of NPC. |
NPPC | Number of pixels to be processed per cycle, possible options are XF_NPPC1 only. |
XFCVDEPTH_IN | Depth of Input image |
XFCVDEPTH_OUT_0 | Depth of Output image |
XFCVDEPTH_OUT_1 | Depth of Output image |
XFCVDEPTH_OUT_2 | Depth of the hls::stream formed by the xf::Mat |
BORDER_T | Border handling type. Fixed to XF_BORDER_CONSTANT |
USE_URAM | Enable URAM storage strucure |
_src_mat | Input image |
R_IR_C1_wgts | Weights to calculate R at IR location for constellation 1 |
R_IR_C2_wgts | Weights to calculate R at IR location for constellation 2 |
B_at_R_wgts | Weights to calculate B at R location |
IR_at_R_wgts | Weights to calculate IR at R location |
IR_at_B_wgts | Weights to calculate IR at B location |
sub_wgts | Weights to perform weighted subtraction of IR image from RGB image. sub_wgts[0] -> G Pixel, sub_wgts[1] -> R Pixel, sub_wgts[2] -> B Pixel sub_wgts[3] -> calculated B Pixel |
_dst_rggb | output image in standard bayer format with only R,G,B pixels |
_dst_ir | IR output image with only IR pixels |
Resource Utilization
The following table summarizes the resource utilization in different configurations, generated using Vitis HLS 2021.1 tool for the Xczu9eg-ffvb1156-1-i-es1 FPGA.
Operating Mode | Operating Frequency (MHz) | Utilization Estimate | ||||
---|---|---|---|---|---|---|
BRAM_18K | DSP_48Es | FF | LUT | CLB | ||
1 Pixel | 300 | 37 | 0 | 4345 | 6243 | 1366 |
Performance Estimate
The following table summarizes the performance of the kernel in 1-pixel mode as generated using Vitis HLS 2021.1 tool for the Xilinx xczu9eg-ffvb1156-2-i-es2 FPGA to process a grayscale 4K (2160x3840) image.
Operating Mode | Latency Estimate |
---|---|
Max Latency (ms) | |
1 pixel operation (300 MHz) | 27.7 |