OpenCV TBB IPP OpenMP功能

时间:2014-05-17 22:21:41

标签: opencv openmp tbb

是否有使用IPP和/或TBB和/或OpenMP优化的OpenCV功能/方法列表?

1 个答案:

答案 0 :(得分:5)

免责声明:我没有使用OpenCV的经验。

我在官方opencv.org网站上找不到这样的列表。但是,ChangeLog says

  

将所有剩余的并行循环从TBB-only tbb :: parallel_for()切换到具有许多可能后端的通用cv :: parallel_for_()(MS Concurrency,Apple的GDC,OpenMP,Intel TBB等)< / p>

现在,我们知道要搜索的内容以及在grep -IRl parallel_for_目录中应用的opencv为我们提供了以下内容:

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

在这里,我们看到使用并行循环的模块和部件列表。我希望能够回答TBB和OpenMP的问题。有关详细信息,请打开相应的文件并搜索parallel_for_以了解其应用的具体情况。

至于IPP,它似乎被核心库广泛使用,egrep -IRl '\bipp'给出了以下内容:

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