mrgloom 242 Жалоба Опубликовано July 20, 2011 есть ли библиотеки компьютерного зрения написанные на asm? или хотя бы какие то подрутины и т.д. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 20, 2011 Вот целая куча библиотек (это просто для справки). А вот цитата с этого сайта: Intel Image Processing Library - Optimized assembly MMX code for image processing, pattern recognition, signal processing, and matrix manipulation (no source - but still free) IPL - это основа OpenCV (правда насколько сейчас это верно не знаю ). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 20, 2011 ну про opencv то Does OpenCV work on other processors? Yes, OpenCV itself is open source and written in quite portable C/C++, it runs on other processors already and should be fairly easy to port (for example, there are already some CUDA optimizations on NVidia. On the other hand, OpenCV can sometimes run much faster on Intel processors (and sometimes AMD) because it can take advantage of SSE optimizations. OpenCV can be compiled statically with IPP libraries from Intel also which can speed up some function. Does OpenCV still work with the optimized Intel IPP libraries? a) Is it possible to get OpenCV 2.0 to use the IPP libraries? Yes, WITH_IPP option should be selected in CMake and you must ensure that after configuration it prints "Use IPP: YES" Is it desirable to get OpenCV 2.0 to use the IPP libraries? For some functions the use of IPP still gives a noticeable performance improvement, but the number of such functions is much, much smaller than in OpenCV 1.x c) For best performance should we be using IPP, and if not, then what is the recommended practice for best performance? IPP has been designed as the library of low-level primitives suitable for optimization of various performance-critical applications. So, of course, you are welcome to use IPP directly to improve performance of your applications. It should be easy to use both OpenCV and IPP in the same application. Similarly, you are free to use SIMD intrinsics (MMX, SSE, SSE2 ...), OpenMP, OpenCL and any other performance-enhancing tools. d) Is there a list, and if not can we get a list, of OpenCV functions for versions 1.0 and 2.0 that can use IPP? The list of the function can be retrieved using the following commands: cd opencv/src/cxcore grep "ipp[is]" *.cpp cd ../cv grep "ipp[is]" *.cpp e) Why was the support for IPP dropped? Does the road map for OpenCV intend to steer clear of IPP in the future? IPP support was not dropped completely; we still use IPP, but in a smaller extent. Desirably, OpenCV should run faster on various platforms without having to use commercial closed-source libraries. We do not have plans to get rid of IPP, but we have ongoing optimization efforts to optimize critical time-consuming algorithms that we use, and so IPP is removed there and supported natively. We found that only few algorithms can be optimized using existing OpenCV or IPP functions. Instead, many of the algorithms, such as HOG people detector, outlet detector, stereo correspondence etc., require manual optimization of the inner loops using intrinsics, OpenMP etc. We optimize such loops, but I doubt that any significant part of this optimized code will be included into IPP in the near future. If it happens and IPP counterparts do much better comparing to OpenCV, we will certainly include the corresponding hooks. получается, что основной упор сделан на распаралеливание нужных кусков кода, либо опять же ассемблерным вставкам для SSE и т.д. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 20, 2011 Честно говоря, я не очень представляю задачи, где библиотеки на ASM было бы предпочтительнее применять. Такой код будет очень быстро устаревать из-за изменения архитектуры процессоров. Да и то что хорошо для Intel не всегда хорошо для AMD, не говоря уже о разных семействах процессоров/контроллеров, коих тьма-тьмущая. Архитектуры процессоров разрабатываются с оглядкой на эффективность компиляторов, а не наоборот. (см. "Компиляторы. Принципы, технологии, инструменты." Альфред Ахо, Моника Лам, Рави Сети, Джефри Ульман.) И естественно, современные компиляторы выдают очень неплохие результаты при грамотном использовании, в большинстве случаев лучше чем рукописный ASM код. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано August 23, 2011 вот заинтересовался насчет библиотек параллельной обработки изображений пока нашел только http://loi.sscc.ru/lab/RFFI07/ru/SSCC-PIPL/main.htm в opencv как то с этим туго.(хотя они вроде говорили что есть и openmp и tbb, но процент покрытия ими кода видимо очень малый) по поиску openmp в opencv_2.3.0 выдается blobtrackingmsfg.cpp blobtrackanalysisior.cpp cvhaartraining.cpp cvboost.cpp surf.cpp stardetector.cpp system.cpp core_c.h spinimages.cpp selfsimilarity.cpp по TBB stereo_multi.cpp multi.cpp driver_api_stereo_multi.cpp driver_api_multi.cpp latentsvmdetect.cpp test_latentsvmdetector.cpp matching.cpp lsvmtbbversion.cpp latentsvm.cpp haar.cpp cascadedetect.cpp _lsvm_tbbversion.h _lsvm_matching.h _lsvm_error.h gbt.cpp ann_mlp.cpp ml.hpp window_w32.cpp qtgui.png surf.cpp internal.hpp stereobm.cpp solvepnp.cpp jas_image.c Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано February 12, 2015 Нашел на SIMD http://sourceforge.net/projects/simd/?source=directory http://simd.sourceforge.net/ кстати в IPP еще есть много чего для computer vision. https://software.intel.com/en-us/node/504440 https://software.intel.com/en-us/intel-ipp хотя IPP тоже на базе SIMD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ter_nk 0 Жалоба Опубликовано February 12, 2015 По-моему писать что-то на асме в данном случае не имеет смысла, потому что получается что здесь писать на асме только ради того чтобы писать на асме. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано February 14, 2015 По-моему писать что-то на асме в данном случае не имеет смысла, потому что получается что здесь писать на асме только ради того чтобы писать на асме. Ну почему. Когда алгоритм готов и его нужно запустить в реальном времени на таргетном железе, то и на асме будешь писать, если это даст прирост производительности. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах