OpenCVのJPEG読み書きにlibjpeg turboを使う - atinfinity/lab GitHub Wiki
libjpeg turboはSIMD命令を用いた実装により高速化が図られているJPEG圧縮・展開ライブラリです.OpenCVにおけるJPEG圧縮・展開は通常libjpegを用いますが,ここではlibjpeg turboを用いる方法を紹介します.
- 2015/8/16時点で最新のlibjpeg-turbo 1.4.1を入手します.
 Windows 64bitの場合,インストーラはlibjpeg-turbo-1.4.1-vc64.exeです
 (Windows 32bitの場合はlibjpeg-turbo-1.4.1-vc.exe).
- 
libjpeg-turbo-1.4.1-vc64.exeを実行してインストールします.
 この例ではデフォルトのインストール先であるC:/libjpeg-turbo64にインストールします.
- OpenCVをビルドするためにcmake-guiを起動します.
- cmake-guiでWITH_JPEGをONにします.
- cmake-guiでBUILD_JPEGをOFFにします.
- cmake-guiでJPEG_INCLUDE_DIRエントリをPATHとして追加します.
 Valueはインストール先のインクルードディレクトリC:/libjpeg-turbo64/includeとします.
- cmake-guiでJPEG_LIBRARYエントリをFILEPATHとして追加します.
 ValueはインストールしたライブラリC:/libjpeg-turbo64/lib/jpeg-static.libとします.
- cmake-guiでConfigureボタンを押下します.
- cmake-guiでGenerateボタンを押下し,OpenCV.slnを生成します.
コマンドラインでCMakeを実行する場合は以下のようなオプションを付与することで同様のことが行えます.
-D WITH_JPEG=ON ^
-D BUILD_JPEG=OFF ^
-D JPEG_INCLUDE_DIR="C:/libjpeg-turbo64/include" ^
-D JPEG_LIBRARY="C:/libjpeg-turbo64/lib/jpeg-static.lib" ^
C:/libjpeg-turbo64/libには以下の4つのライブラリが含まれています.
- jpeg.lib(DLLインポートライブラリ/libjpeg API)
- jpeg-static.lib(スタティックライブラリ/libjpeg API)
- turbojpeg.lib(DLLインポートライブラリ/libjpeg API+TurboJPEG API)
- turbojpeg-static.lib(スタティックライブラリ/libjpeg API+TurboJPEG API)
現行のOpenCVではTurboJPEG APIを使用していないため,前述の手順ではjpeg-static.libを使用しています.
TurboJPEG APIについては以下のURLを参照下さい.
- http://www.libjpeg-turbo.org/About/TurboJPEG
- https://cdn.rawgit.com/libjpeg-turbo/libjpeg-turbo/1.4.x/doc/html/group___turbo_j_p_e_g.html
筆者はOpenCV 3.0.0で動作確認しました.