libjpeg-turbo是对libjpeg的扩展,支持SIMD指令,如X86架构的MMX、SSE、SSE2、3DNOW,ARM架构的NEON,在对jpeg进行编码和解码的过程中能提高速度。
MMX:多媒体扩展的缩写,第六代CPU芯片重要特点,57条指令。
SSE2:SIMD流技术扩展2,144个新增指令,被MMX优化过的程序很容易被SSE2进行更深层次的优化。
NEON:可加速多媒体和信号处理算法,它是ARM系列处理器的128位SIMD架构扩展。
在速度上,libjpeg-turbo一般是libjpeg的2-4倍。它既能调用libjpegAPI,又可调用TurboJPEG API。可以使用libjpeg-turbo替代libjpeg。
编译libjpeg-turbo:
1、 从https://sourceforge.net/projects/libjpeg-turbo/通过TortoiseSVN下载libjpeg-turbo最新源代码,将其保存到D:\soft\libjpeg-turbo文件夹下;
2、 从http://www.cmake.org/下载最新版的CMake,并安装;
3、 在D:\soft\libjpeg-turbo文件夹下手动创建一个vs2010文件夹;
4、 打开CMake,其中where isthe source code选项,选择D:/soft/libjpeg-turbo/libjpeg-turbo;where to build thebinaries选项,选择D:/soft/libjpeg-turbo/vs2010;
5、 点击Configure,在弹出的对话框中选择VisualStudio 10,其它默认,点击Finish;
6、 如果有红色框显示,继续点击Configure(将CMAKE_INSTALL_PREFIX中的value改为D:\libjpeg-turbo);
7、 点击Generate,此时会在vs2010文件夹中看到libjpeg-turbo.sln文件;
8、 从https://sourceforge.net/projects/nasm/下载最新版的nasm;
9、 将nasm安装到D:\ProgramFiles\NASM文件夹下,并将其中的nasm.exe和ndisasm.exe两个文件拷贝到C:\ProgramFiles\Microsoft Visual Studio 10.0\VC\bin下(如果是64位,则拷贝到C:\ProgramFiles (x86)\Microsoft Visual Studio 10.0\VC\bin),将其D:\ProgramFiles\NASM添加到系统环境变量中;
10、打开libjpeg-turbo.sln,分别在Debug和Release下,选择Solution Explorer里的Solution libjpeg-turbo,点击右键,运行”Rebuild Solution”,然后选中INSTALL, build;
11、全部完成后会在D:\libjpeg-turbo文件夹下生成bin、doc、lib、include四个文件夹,编译成功(说明:默认的Debgu和Release下生成的所有文件夹都相同,注意区分);
12、打开vs2010,新建一个控制台应用程序,为vs2010配置libjpeg-turbo环境:选择View-->
Properties Manager-->分别选中Debug和Release上的Microsoft.Cpp.Win32.user,点击右键-->Properties:VC++
Directories,Include Directories:D:\libjpeg-turbo\include;Library
Directories:D:\libjpeg-turbo\lib;
13、选中工程-->Properties-->Configuration Properties-->Linker-->Input-->AdditionalDependencies:Debug和Release,添加相应的.lib库;
14、将D:\libjpeg-turbo\bin加入到windows系统环境变量Path中,重启。
参考文献:
1、 http://libjpeg-turbo.virtualgl.org/
2、 http://www.linuxsir.org/bbs/thread374093.html
3、
http://blog.sina.com.cn/s/blog_a5b979d30101af56.html
4、
http://blog.csdn.net/jwzhangjie/article/details/8807409
5、
http://blog.csdn.net/hongwazi_2010/article/details/9153087
分享到:
相关推荐
该源码文件libjpeg-turbo-1.3.0.tar.gz包含了完整的开发库源代码,开发者可以通过解压后进行编译和安装,以便在自己的项目中使用。解压后的文件结构通常包括头文件、源代码、文档、示例程序和测试用例等。头文件定义...
libjpeg-turbo是一个高度优化的JPEG库,专为x86和x86-64架构的处理器设计,其核心在于提供比标准libjpeg更快的JPEG编码和解码速度。这个2.0.1版本的发布,进一步提升了性能和稳定性,对于需要处理大量JPEG图像的应用...
在提供的`libjpeg-turbo-master`压缩包中,通常包含源代码、构建脚本、示例程序、头文件和文档。开发者可以按照提供的指导编译并集成`libjpeg-turbo`到自己的项目中。这通常涉及以下步骤: 1. **解压**: 解压缩`...
cam2ip 将任何网络摄像头变成IP摄像机。 示例(在Web浏览器中): ... jpeg使用本机Go image/jpeg而非libjpeg-turbo构建 下载 二进制文件是使用静态OpenCV / libjpeg-turbo库编译的,它们应该可以
构建标签cv2使用OpenCV 2.x cv2 ( ) cv4 -构建与OpenCV 4.x版( ) jpeg使用本机Go image/jpeg而非libjpeg-turbo构建下载二进制文件是使用静态OpenCV / libjpeg-turbo库编译的,它们应该可以正常工作
而libjpeg-turbo是一个高性能的JPEG图像编解码库,它的特点是使用SIMD(单指令多数据)指令集对libjpeg进行了优化,从而在现代CPU上提供了更快的图像处理速度。openjpeg则是一个开源的JPEG2000编解码库,支持JPEG...
我发现的是: 与其他格式(例如,使用libjpeg-turbo的jpeg)相比,解码PNG图像的速度非常慢在Windows上,GDI +的性能似乎至少与libpng一样,但是libpng在Linux和macOS上是赢家在Mono上,System.Drawing使用...
- JPEG编码模块:使用库(如libjpeg-turbo)将处理后的图像编码为JPEG格式。 - 文件写入模块:将JPEG数据保存到磁盘。 5. **实际应用**:这个转换工具对于那些需要在不支持HEIC的设备上查看或编辑HEIC照片的用户...