ibjpeg-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中,重启。
以上转自文章windows7 64位机上,libjpeg-turbo的安装和使用
上述文章也有不对的地方,我这边是vs2015的最新版,
在cmake的时候需要选择NASM的路径:
NASM path to nasm.exe
当然也可能是路径没有设置好,但是如果此项不对的话,项目的编译是不会成功的!
后面将会研究如何整合进OPENCV