wiki:OSGeo4W_jp/JpegIPP

Version 5 (modified by hfujii, 14 years ago) ( diff )

--

Intel IPP libjpeg を使用するため構築する

目的

Intel は、より速いアクセスのため intel chips 特有の特徴を利用する libjpeg の利用者に合わせたバージョン生産します。

ジレンマ

しかしながら、通常の libjpeg "6b" ビルドの代用においてドロップとして利用するには難しい点がいくつかあります。特に non-progressive モードにおいて、ジェネリック libjpeg とは違い、IPP libjpeg は必ず io buffers を完全に埋めるまたは空にするとは限りません。これは、libjpeg 6b behavior を想定するアプリケーションレベルコード(通常 io リダイレクトコード)において問題を引き起こします。

解決策

GDAL jpeg ドライバや GDAL GTiff ドライバ(jpeg 圧縮された tiff のための)のような場所にある ibjpeg インターフェイスをパッチします。

残念ながら、flush/fill 機能を呼び出す前に state information を適切に設定しない libjpeg 6b とパッチの間に互換性がないことが判明しました。これは、リコンパイルなしで IPP または non-IPP バージョンの libjpeg のどちらかと連動する GDAL のバージョンを持つことは“ほぼ”不可能だということを意味します。しかしながら、もし、r15507 にあるように state information を適切に設定するようlibjpeg 6b を修正すれば、他のパッチは安全であるといえます。r15507 が libjpeg を使用するアプリケーションを破損しないよう注意して下さい。利用者が誰であるかに関係なく、libjpeg 6b は安全に適用することができます。 This puts us in a situation where it is nearly impossible to have a version of GDAL that works with either the IPP or non IPP versions of libjpeg without recompiling. However, if we also fix libjpeg 6b to properly set the state information as shown in r15507 then the other patches are safe. Note that r15507 should not break any application using libjpeg. So it is safe to apply to libjpeg 6b regardless of who is using it.

OSGeo4W においてどのように展開するか

以下を行う必要があります:

  • r15507r16363 そして r16601 (完了) を用いて libjpeg パッケージ(6b) を再構築する。
  • We need to rebuild GDAL with the IPP support in the JPEG (r15508) ドライバ enabled (完了).
  • tif_jpeg.c で使用可能な IPP サポートを用いて libtiff パッケージを再構築する。(完了)
  • 標準 jpeg_osgeo.dll に取って代わる OSGeo4W の libjpeg-ipp パッケージを作成する(完了).
  • 調整された GD (?) を用いて MapServer を再構築する。 (未完)

Outstanding:

  • MapServer GD はまだアップデートされていません。
  • libjpeg-ipp を用いた libtiff は、"ファイルの途中終了" と言う誤ったメッセージを表示することがあります。

構築

"IPP 互換" の形で GDAL と libtiff を構築するためには、IPPJ_HUFF マクロを定義することが必要です。この作業は手動で行うことが可能です。

libtiff

Add the following in libtiff\libtiff\tiffconf.h:

#define IPPJ_HUFF

GDAL

On unix edit GDALmake.opt and add a "USER_DEFS=-DIPPJ_HUFF" macro at the top of the file.

On windows add /DIPPJ_HUFF in the OPTFLAGS macro.

Related Pages

戻る

Note: See TracWiki for help on using the wiki.