当前位置: 首页 > news >正文

opencv + jpeg_turbo(启用SIMD加速)

背景

opencv的imread+imwrite耗时过大
一张5M的图片读用了140ms,写一张1.7M的图片用149ms

  1. 平台:mingw64编译Windows程序
  2. 版本:opencv4.5.4

加速方案

  1. opencv启用openmp
  2. opencv启用jpeg_turbo
  3. jpeg_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

编译

  1. libjpeg-turbo的SIMD加速依赖NASM处理汇编代码
# 在MSYS2终端中执行
pacman -S nasm
  1. 配置CMake参数
mkdir build_mingw64
cd build_mingw64cmake \-G "MSYS Makefiles" \-DCMAKE_INSTALL_PREFIX=$(pwd)/output_mingw64 \-DWITH_SIMD=ON \-DENABLE_SHARED=OFF \-DENABLE_STATIC=ON \-DCMAKE_BUILD_TYPE=Release \-DWITH_JPEG8=ON \-DCMAKE_ASM_NASM_COMPILER="D:/msys64/usr/bin/nasm.exe" \..make -j8
make install

导入到opencv编译

mkdir build
cd buildcmake \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_OPENMP=ON \          # 启用openmp
#。。。。你的其它配置
-DWITH_JPEG=ON \            # 启用JPEG支持
-DBUILD_JPEG=OFF \          # 禁用OpenCV内置JPEG编译
-DJPEG_INCLUDE_DIR="D:/xxx/libjpeg-turbo/build_mingw64/output_mingw64/include" \   # 指定外部libjpeg-turbo的头文件路径
-DJPEG_LIBRARY="D:/xxx/libjpeg-turbo/build_mingw64/output_mingw64/lib/libjpeg.a" \ # 指定外部libjpeg-turbo的静态库路径
-DCPU_BASELINE=AVX2 \
-DBUILD_OPENJPEG=OFF \
-DWITH_OPENJPEG=OFF \
-G "MSYS Makefiles" ..make
make install

最终效果

读图片,5M jpg格式,原本140 ms,现在92 ms
写图片,1.7M jpg格式,原本149 ms,现在41 ms

相关文章:

  • 【每天一个知识点】LangChain
  • 消息队列从入门到实战:用外卖订单理解高并发系统的核心设计
  • AMBA-AHB的控制信号
  • 水域应急救援可视化平台
  • Ai书签管理工具开发全记录(一):项目总览与技术蓝图
  • c/c++的opencv图像金字塔缩放
  • 在 Linux 中,目录权限,mkdir -m 选项,用法
  • 扇形 圆形 面积公式
  • java读取excel数据中字段是否为金额格式
  • 图像锐化和图像运算
  • Vue CLI创建vue项目,安装插件
  • 前端面试准备-1
  • 算法 Arrays.sort()函数自定义排序(Comparator 接口)
  • XCTF-web-fileinclude
  • 在 MATLAB 2015a 中如何调用 Python
  • Golang | gRPC demo
  • JS 逆向太费劲,试试 JS 注入!
  • 题海拾贝:P1208 [USACO1.3] 混合牛奶 Mixing Milk
  • 流程自动化引擎:让业务自己奔跑
  • 深入理解设计模式之职责链模式
  • 做网站下载别人的图算不算侵权/百度高级搜索页面
  • 怎样建设凡科网站/软件测试培训机构哪家好
  • 公司取名字 八字 免费测试/win7优化大师官网
  • 文章编辑器wordpress/无忧seo
  • 简单网站开发/西安网络优化哪家好
  • 福州定制网站开发制作/上海今天最新新闻10条