![]() Simd Library Documentation.Home | Release Notes | Download | Documentation | Forum | SourceForge | GitHub |
Simd Library Overview The Simd Library is a free open source image processing library, designed for C and C++ programmers. It provides many useful high performance algorithms for image processing such as: pixel format conversion, image scaling and filtration, extraction of statistic information from images, motion detection, object detection (HAAR and LBP classifier cascades) and classification, neural network. The algorithms are optimized with using of different SIMD CPU extensions. In particular the library supports following CPU extensions: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM. The Simd Library has C API and also contains useful C++ classes and functions to facilitate access to C API. The library supports dynamic and static linking, 32-bit and 64-bit Windows and Linux, MSVS, G++ and Clang compilers, MSVS project and CMake build systems. Library folder's structureThe Simd Library has next folder's structure:
The library building for WindowsTo build the library and test application for Windows 32/64 you need to use Microsoft Visual Studio 2015. These project files are in the directory: The library building for LinuxTo build the library and test application for Linux 32/64 you need to use CMake build systems. Files of CMake build systems are placed in the directory: cd ./prj/cmake
cmake . -DTOOLCHAIN="" -DTARGET=""
make
To build the library for PowePC(64) and ARM(32/64) platforms you can also use toolchain for cross compilation. There is an example of using for PowerPC (64 bit): cd ./prj/cmake
cmake . -DTOOLCHAIN="/path_to_your_toolchain/usr/bin/powerpc-linux-gnu-g++" -DTARGET="ppc64" -DCMAKE_BUILD_TYPE="Release"
make
For ARM (32 bit): cd ./prj/cmake
cmake . -DTOOLCHAIN="/path_to_your_toolchain/usr/bin/arm-linux-gnueabihf-g++" -DTARGET="arm" -DCMAKE_BUILD_TYPE="Release"
make
And for ARM (64 bit): cd ./prj/cmake
cmake . -DTOOLCHAIN="/path_to_your_toolchain/usr/bin/aarch64-linux-gnu-g++" -DTARGET="aarch64" -DCMAKE_BUILD_TYPE="Release"
make
As result the library and the test application will be built in the current directory. The library usingIf you use the library from C code you must include: #include "Simd/SimdLib.h"
And to use the library from C++ code you must include: #include "Simd/SimdLib.hpp"
In order to use Simd::Detection you must include: #include "Simd/SimdDetection.hpp"
Test FrameworkThe test suite is needed for testing of correctness of work of the library and also for its performance testing. There is a set of tests for every function from API of the library. There is an example of test application using: ./Test -m=a -t=1 -f=Sobel -o=log.txt
Where next parameters were used:
Also you can use parameters:
|