10-11-2017 04:45 AM
I have to design and IP for image processing on Zynq (not UltraScale) and I ´ve found two xilinx versions of the OpenCV.
The first one, HLS OpenCV, is described in the "VivadoHLS user guide", the second, xfOpenCV, described in the "Xilinx OpenCV user guide".
Are they the same library?, Is HLS library deprecated for xf lib? what are the use case for each library?
10-11-2017 05:17 AM
As far as I can tell, xfOpenCV is essentially a higher-level version of the HLS OpenCV, closer in functionality to the original OpenCV.
It can do the higher-level processing because SDSoC gives it access to both the CPU and off-chip memory buffers. This allows things like optic flow, which are simply not possible when you're restricted to streaming access (as the HLS OpenCV functions are).
The advantage (compared to HLS OpenCV) is obviously that you get vastly more powerful functions. The disadvantage is that it's usable in a far smaller set of scenarios (specifically: you must have a Zynq 7000 or Zynq UltraScale+ with external RAM).
10-16-2017 12:39 AM
thaks for the answer,
some additional questions.
1) could I assume that xf function uses as xfOpenCV kernel the corresponding hls function? (for instance xf::Sobel uses hls::Sobel as kernel)
2) some hls functions are omitted in xf library (e.g. HoughLines). Is it possible to modify a similar xf core to include such a function?
10-16-2017 02:12 AM
(1) It seems very likely, but I'm not 100% sure.
(2) I expect that you could, although this is not something I've done.