= 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 においてどのように展開するか == 以下を行う必要があります: * r15507、r16363 そして 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 == * OSGeo4W libjpeg-ipp package: http://trac.osgeo.org/osgeo4w/wiki/pkg-libjpeg-ipp * IPP GDAL ticket: http://trac.osgeo.org/gdal/ticket/2606 * IPP Libtiff ticket: http://bugzilla.maptools.org/show_bug.cgi?id=1951 * IPP Related GDAL problem ticket: http://trac.osgeo.org/gdal/ticket/2845 [wiki:OSGeo4W_jp/PackageListing 戻る]