Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么延迟太高,即使只是RGB到灰度转换(Vivado HLS)?_C++_Image Processing_Vivado_Low Latency_Vivado Hls - Fatal编程技术网

C++ 为什么延迟太高,即使只是RGB到灰度转换(Vivado HLS)?

C++ 为什么延迟太高,即使只是RGB到灰度转换(Vivado HLS)?,c++,image-processing,vivado,low-latency,vivado-hls,C++,Image Processing,Vivado,Low Latency,Vivado Hls,我正在处理Vivado HLS 2015.4上的图像 我得到了大约311774个时钟周期的非常高的延迟。即使程序只需要两个输入图像并将其从RGB转换为灰色。总体延迟为311774,因为我获得了所有三个Axi2Mat、RGB2GRAY和Mat2AXI的77-78k延迟 有没有办法减少它,这样我就可以通过管道传输它,使最终延迟达到78k左右 我附上我的代码和综合报告: #include <hls_video.h> #include <hls/hls_video_types.h>

我正在处理Vivado HLS 2015.4上的图像

我得到了大约311774个时钟周期的非常高的延迟。即使程序只需要两个输入图像并将其从RGB转换为灰色。总体延迟为311774,因为我获得了所有三个Axi2Mat、RGB2GRAY和Mat2AXI的77-78k延迟

有没有办法减少它,这样我就可以通过管道传输它,使最终延迟达到78k左右

我附上我的代码和综合报告:

#include <hls_video.h>
#include <hls/hls_video_types.h>
#include "top.h"


void toGray(AXI_IN_STREAM &IN_STREAM_1, AXI_IN_STREAM &IN_STREAM_2, AXI_OUT_STREAM &OUT_STREAM_1, AXI_OUT_STREAM &OUT_STREAM_2, unsigned int cols, unsigned int rows){
    #pragma HLS INTERFACE axis port=IN_STREAM_1
    #pragma HLS INTERFACE axis port=OUT_STREAM_1

    #pragma HLS INTERFACE axis port=IN_STREAM_2
    #pragma HLS INTERFACE axis port=OUT_STREAM_2


    #pragma HLS RESOURCE core=AXI_SLAVE variable=rows metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=cols metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=return metadata="-bus_bundle CONTROL"

    #pragma HLS INTERFACE ap_stable port=rows
    #pragma HLS INTERFACE ap_stable port=cols

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_2(rows, cols);

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_2(rows, cols);


 // hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> outMat(rows, cols);

    hls::AXIvideo2Mat(IN_STREAM_1, inMat_1);
    hls::AXIvideo2Mat(IN_STREAM_2, inMat_2);

    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_1, grayMat_1);
    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_2, grayMat_2);
 // hls::EqualizeHist(grayMat, outMat );




    hls::Mat2AXIvideo(grayMat_1, OUT_STREAM_1);
    hls::Mat2AXIvideo(grayMat_2, OUT_STREAM_2);

}
UG902:Vivado Design Suite用户指南第293页:由于功能已经流水线化,添加数据流优化可确保 流水线函数将并行执行


因此,只要在代码中添加pragma HLS dataflow指令,就可以确保在函数之间使用数据流处理每个时钟一个样本。因此,延迟应该减少到77-78k,我假设是cols*行。

77K:kiloseconds?一个进程的77K时钟周期是否需要格式转换?RGB到灰度的转换是RGB组件的简单线性组合,可能随后是箝位。