网站文章怎么做才能被快速收录,宿迁明远建设有限公司网站,微商平台app,品牌建设 企业发言目录
一、概述
二、安装PyTurboJPEG
三、测试 一、概述
在计算机视觉领域#xff0c;图像编解码是绕不开的基础环节。虽然 OpenCV 能解决大部分图像处理问题#xff0c;但在性能要求严苛的场景下存在短板。本文将介绍基于 libjpeg-turbo 的高效 JPEG 编解码库 PyTurboJPE…目录
一、概述
二、安装PyTurboJPEG
三、测试 一、概述
在计算机视觉领域图像编解码是绕不开的基础环节。虽然 OpenCV 能解决大部分图像处理问题但在性能要求严苛的场景下存在短板。本文将介绍基于 libjpeg-turbo 的高效 JPEG 编解码库 PyTurboJPEG特别适用于纯 CPU 环境下的性能优化需求。
PyTurboJPEG 核心优势如下 技术渊源ibjpeg 是经典的 JPEG 压缩库使用C语言开发而 libjpeg-turbo 是在此基础上进行深度优化的库使用来SIMD 指令集MMX、SSE2、NEON 等实现性能加速支持 x86、ARM 等主流架构。本文介绍的PyTurboJPEG则是 libjpeg-turbo 的 Python 封装版。 性能表现实测表明libjpeg-turbo在JPEG 编解码速度上较原生libjpeg提升2-6 倍且在压缩率与速度之间达到极佳平衡性能可媲美部分商业编解码器。
二、安装PyTurboJPEG
本文实验环境为Ubuntu22.04。
首先安装nasm
sudo apt-get install nasm
然后进入下载官网页面网址https://sourceforge.net/projects/libjpeg-turbo/files/ 。
下载2.0.x版本对应的libjpeg-turbo-2.0.2.tar.gz如下图所示 下载后使用下面的命令进行解压
tar -zxvf libjpeg-turbo-2.0.2.tar.gz
然后使用下面的命令进行编译和安装
cd libjpeg-turbo-2.0.2
mkdir build
cd build
cmake -GUnix Makefiles ..
make -j8
sudo make install
sudo cp -rvf /opt/libjpeg-turbo/lib64/* /lib/
最后安装PyTurboJPEG库即可
pip install PyTurboJPEG
三、测试
下面测试图像读取的性能。
以下是使用Opencv的imdecode函数实现
import os
import time
import cv2
import numpy as npfrom turbojpeg import TurboJPEGimg_folder ../test/img5/
dst_folder ../test/result/# 检索img_folder下的所有图片
img_files os.listdir(img_folder)
jpegtool TurboJPEG()start_time time.time()# 逐张处理
pic 0
for img_file in img_files:# 使用opencv的decode读取图像img cv2.imdecode(np.fromfile(img_folder img_file, dtypenp.uint8), cv2.IMREAD_COLOR)pic 1end_time time.time()
print(average time: , (end_time - start_time) / pic)
测试结果为2.5ms/张图像。
下面是使用PyTurboJPEG的版本
import os
import timefrom turbojpeg import TurboJPEGimg_folder ../test/img5/
dst_folder ../test/result/# 检索img_folder下的所有图片
img_files os.listdir(img_folder)
jpegtool TurboJPEG()start_time time.time()# 逐张处理
pic 0
for img_file in img_files:# decoding input.jpg to BGR arraywith open(img_folder img_file, rb) as in_file:bgr_array jpegtool.decode(in_file.read())pic 1end_time time.time()
print(average time: , (end_time - start_time) / pic)
测试结果为2.0ms/张。