Changes between Version 4 and Version 5 of OSGeo4W_jp/JpegIPP
- Timestamp:
- Mar 24, 2010, 9:37:54 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OSGeo4W_jp/JpegIPP
v4 v5 1 = Building to use Intel IPP libjpeg=1 = Intel IPP libjpeg を使用するため構築する = 2 2 3 == Objective==3 == 目的 == 4 4 5 Intel produces a custom optimized version of libjpeg which takes advantage of various particular chip features of some intel chips for faster access.5 Intel は、より速いアクセスのため intel chips 特有の特徴を利用する libjpeg の利用者に合わせたバージョン生産します。 6 6 7 == The Dilemma==7 == ジレンマ == 8 8 9 However, there are a few tricky aspects to using it as a drop in replacement for normal libjpeg "6b" builds. In particular in non-progressive mode the IPP libjpeg does not always fully fill or drain the io buffers while the generic libjpeg does. This causes problems for application level code (normally io redirection code) that assumes the libjpeg 6b behavior.9 しかしながら、通常の libjpeg "6b" ビルドの代用においてドロップとして利用するには難しい点がいくつかあります。特に non-progressive モードにおいて、ジェネリック libjpeg とは違い、IPP libjpeg は必ず io buffers を完全に埋めるまたは空にするとは限りません。これは、libjpeg 6b behavior を想定するアプリケーションレベルコード(通常 io リダイレクトコード)において問題を引き起こします。 10 10 11 == The solutions==11 == 解決策 == 12 12 13 The work around is to patch the libjpeg interfaces in places like the GDAL jpeg driver, and the GDAL GTiff driver (for jpeg compressed tiff).13 GDAL jpeg ドライバや GDAL GTiff ドライバ(jpeg 圧縮された tiff のための)のような場所にある ibjpeg インターフェイスをパッチします。 14 14 15 Unfortunately, the patch turns out not to be compatible with libjpeg 6b, which does not properly set some state information before calling the flush/fill functions. 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. 15 残念ながら、flush/fill 機能を呼び出す前に state information を適切に設定しない libjpeg 6b とパッチの間に互換性がないことが判明しました。これは、リコンパイルなしで 16 IPP または non-IPP バージョンの libjpeg のどちらかと連動する GDAL のバージョンを持つことは“ほぼ”不可能だということを意味します。しかしながら、もし、r15507 にあるように state information を適切に設定するようlibjpeg 6b を修正すれば、他のパッチは安全であるといえます。r15507 が libjpeg を使用するアプリケーションを破損しないよう注意して下さい。利用者が誰であるかに関係なく、libjpeg 6b は安全に適用することができます。 17 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. 16 18 17 == How this plays out in OSGeo4W==19 == OSGeo4W においてどのように展開するか == 18 20 19 We need to:21 以下を行う必要があります: 20 22 21 * Rebuild the libjpeg package (6b) with r15507, r16363 and r16601 (done).22 * We need to rebuild GDAL with the IPP support in the JPEG (r15508) driver enabled (done).23 * We need to rebuild the libtiff package with IPP support enabled in tif_jpeg.c (done).24 * We need to create a libjpeg-ipp package for OSGeo4W that replaces the standard jpeg_osgeo.dll (done).25 * We need to rebuild MapServer with an adjusted GD (is this right?) (not done)23 * r15507、r16363 そして r16601 (完了) を用いて libjpeg パッケージ(6b) を再構築する。 24 * We need to rebuild GDAL with the IPP support in the JPEG (r15508) ドライバ enabled (完了). 25 * tif_jpeg.c で使用可能な IPP サポートを用いて libtiff パッケージを再構築する。(完了) 26 * 標準 jpeg_osgeo.dll に取って代わる OSGeo4W の libjpeg-ipp パッケージを作成する(完了). 27 * 調整された GD (?) を用いて MapServer を再構築する。 (未完) 26 28 27 29 28 30 Outstanding: 29 31 30 * MapServer GD not yet updated.31 * lib tiff with libjpeg-ipp sometimes produces spurious "Premature end of file" messages.32 * MapServer GD はまだアップデートされていません。 33 * libjpeg-ipp を用いた libtiff は、"ファイルの途中終了" と言う誤ったメッセージを表示することがあります。 32 34 33 == Building==35 == 構築 == 34 36 35 In order to build GDAL and libtiff in "IPP compatible" form, it is necessary to define the IPPJ_HUFF macro for the build. This can be manually accomplished for each. 36 37 "IPP 互換" の形で GDAL と libtiff を構築するためには、IPPJ_HUFF マクロを定義することが必要です。この作業は手動で行うことが可能です。 37 38 === libtiff === 38 39