OpenCV TBB IPP OpenMP functions

匿名 (未验证) 提交于 2019-12-03 01:20:02

问题:

Is there a list of functions/methods of OpenCV that have been optimized with IPP and/or TBB and/or OpenMP?

回答1:

Disclaimer: I have no experience in OpenCV usage.

I found no such a list on the official opencv.org site. However, the ChangeLog says:

switched all the remaining parallel loops from TBB-only tbb::parallel_for() to universal cv::parallel_for_() with many possible backends (MS Concurrency, Apple's GDC, OpenMP, Intel TBB etc.)

Now, we know what to search and grep -IRl parallel_for_ applied on opencv directory gives us the following:

build/include/opencv2/core/core.hpp sources/apps/traincascade/boost.cpp sources/modules/calib3d/src/stereobm.cpp sources/modules/contrib/src/basicretinafilter.cpp sources/modules/contrib/src/magnoretinafilter.cpp sources/modules/contrib/src/parvoretinafilter.cpp sources/modules/contrib/src/retinacolor.cpp sources/modules/contrib/src/templatebuffer.hpp sources/modules/core/include/opencv2/core/core.hpp sources/modules/core/src/matrix.cpp sources/modules/core/src/parallel.cpp sources/modules/core/src/stat.cpp sources/modules/features2d/src/detectors.cpp sources/modules/gpu/src/calib3d.cpp sources/modules/highgui/test/test_ffmpeg.cpp sources/modules/imgproc/src/clahe.cpp sources/modules/imgproc/src/color.cpp sources/modules/imgproc/src/distransform.cpp sources/modules/imgproc/src/generalized_hough.cpp sources/modules/imgproc/src/histogram.cpp sources/modules/imgproc/src/imgwarp.cpp sources/modules/imgproc/src/morph.cpp sources/modules/imgproc/src/smooth.cpp sources/modules/imgproc/src/thresh.cpp sources/modules/ml/src/ann_mlp.cpp sources/modules/ml/src/gbt.cpp sources/modules/ml/src/knearest.cpp sources/modules/ml/src/nbayes.cpp sources/modules/ml/src/svm.cpp sources/modules/nonfree/src/surf.cpp sources/modules/objdetect/src/cascadedetect.cpp sources/modules/objdetect/src/haar.cpp sources/modules/objdetect/src/hog.cpp sources/modules/ocl/src/kmeans.cpp sources/modules/photo/src/denoising.cpp sources/modules/stitching/src/matchers.cpp sources/modules/superres/src/btv_l1.cpp sources/modules/video/src/bgfg_gaussmix2.cpp sources/modules/video/src/bgfg_gmg.cpp sources/modules/video/src/lkpyramid.cpp sources/modules/video/src/tvl1flow.cpp 

Here, we see the list of modules and parts which use the parallel loop. I hope it's enough to answer the question for TBB and OpenMP. For more details, please open the corresponding file and search for parallel_for_ to find out in which circumstances it is applied.

As for IPP, it seems it is quite extensively used by the core library, egrep -IRl '\bipp' gives the following:

modules/calib3d/src/calibration.cpp modules/core/include/opencv2/core/core_c.h modules/core/include/opencv2/core/internal.hpp modules/core/src/arithm.cpp modules/core/src/dxt.cpp modules/core/src/mathfuncs.cpp modules/core/src/matmul.cpp modules/core/src/precomp.hpp modules/core/src/stat.cpp modules/core/src/system.cpp modules/imgproc/src/canny.cpp modules/imgproc/src/color.cpp modules/imgproc/src/deriv.cpp modules/imgproc/src/distransform.cpp modules/imgproc/src/filter.cpp modules/imgproc/src/imgwarp.cpp modules/imgproc/src/morph.cpp modules/imgproc/src/samplers.cpp modules/imgproc/src/smooth.cpp modules/imgproc/src/sumpixels.cpp modules/legacy/test/test_pyrsegmentation.cpp modules/objdetect/src/haar.cpp modules/objdetect/src/hog.cpp modules/ocl/src/haar.cpp 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!