网站建设模板系统,公司职务名称大全,全网项目资源整合平台,做运营的网站背景
opencv的imreadimwrite耗时过大 一张5M的图片读用了140ms,写一张1.7M的图片用149ms
平台#xff1a;mingw64编译Windows程序版本#xff1a;opencv4.5.4
加速方案
opencv启用openmpopencv启用jpeg_turbojpeg_turbo启动SIMD加速
下载jpeg_turbo源码
opencv源码自带…背景
opencv的imreadimwrite耗时过大 一张5M的图片读用了140ms,写一张1.7M的图片用149ms
平台mingw64编译Windows程序版本opencv4.5.4
加速方案
opencv启用openmpopencv启用jpeg_turbojpeg_turbo启动SIMD加速
下载jpeg_turbo源码
opencv源码自带的jpeg_turbo源码不支持SIMD配置的需要自己重新下载源码
版本确定
opencv-4.5.4\3rdparty\libjpeg-turbo\CMakeLists.txt set(VERSION_MAJOR 2) set(VERSION_MINOR 1) set(VERSION_REVISION 0) 所以opnecv4.5.4使用的是libjpeg-turbo v2.1.0
下载源码
git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git -b 2.1.0
编译
libjpeg-turbo的SIMD加速依赖NASM处理汇编代码
# 在MSYS2终端中执行
pacman -S nasm配置CMake参数
mkdir build_mingw64
cd build_mingw64cmake \-G MSYS Makefiles \-DCMAKE_INSTALL_PREFIX$(pwd)/output_mingw64 \-DWITH_SIMDON \-DENABLE_SHAREDOFF \-DENABLE_STATICON \-DCMAKE_BUILD_TYPERelease \-DWITH_JPEG8ON \-DCMAKE_ASM_NASM_COMPILERD:/msys64/usr/bin/nasm.exe \..make -j8
make install导入到opencv编译
mkdir build
cd buildcmake \
-DBUILD_SHARED_LIBSOFF \
-DWITH_OPENMPON \ # 启用openmp
#。。。。你的其它配置
-DWITH_JPEGON \ # 启用JPEG支持
-DBUILD_JPEGOFF \ # 禁用OpenCV内置JPEG编译
-DJPEG_INCLUDE_DIRD:/xxx/libjpeg-turbo/build_mingw64/output_mingw64/include \ # 指定外部libjpeg-turbo的头文件路径
-DJPEG_LIBRARYD:/xxx/libjpeg-turbo/build_mingw64/output_mingw64/lib/libjpeg.a \ # 指定外部libjpeg-turbo的静态库路径
-DCPU_BASELINEAVX2 \
-DBUILD_OPENJPEGOFF \
-DWITH_OPENJPEGOFF \
-G MSYS Makefiles ..make
make install最终效果
读图片5M jpg格式原本140 ms现在92 ms 写图片1.7M jpg格式原本149 ms现在41 ms