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中,重啓。