OpenCVのJPEG読み書きにlibjpeg turboを使う

atinfinity edited this page Jul 27, 2016 · 14 revisions

Home


Menu

Computer Vision

AR

ROS

ARM

プログラミング言語

開発環境

勉強会

Clone this wiki locally

OpenCVのJPEG読み書きにlibjpeg turboを使う

はじめに

libjpeg turboはSIMD命令を用いた実装により高速化が図られているJPEG圧縮・展開ライブラリです.OpenCVにおけるJPEG圧縮・展開は通常libjpegを用いますが,ここではlibjpeg turboを用いる方法を紹介します.

使い方

  1. 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).
  2. libjpeg-turbo-1.4.1-vc64.exeを実行してインストールします.
    この例ではデフォルトのインストール先であるC:/libjpeg-turbo64にインストールします.
  3. OpenCVをビルドするためにcmake-guiを起動します.
  4. cmake-guiでWITH_JPEGをONにします.
  5. cmake-guiでBUILD_JPEGをOFFにします.
  6. cmake-guiでJPEG_INCLUDE_DIRエントリをPATHとして追加します.
    Valueはインストール先のインクルードディレクトリC:/libjpeg-turbo64/includeとします.
  7. cmake-guiでJPEG_LIBRARYエントリをFILEPATHとして追加します.
    ValueはインストールしたライブラリC:/libjpeg-turbo64/lib/jpeg-static.libとします.
  8. cmake-guiでConfigureボタンを押下します.
  9. 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を参照下さい.

備考

筆者はOpenCV 3.0.0で動作確認しました.