11

C/C++ 用の無料のオープンソース jpeg エンコーディング ライブラリを知っている人はいますか? 現在、使いやすい ImageMagick を使用していますが、かなり遅いです。Intel Performance Primitives の評価と比較したところ、IPP の速度は非常識です。残念ながら、それには 200 ドルもかかり、IPP の 99% は必要ありません)。また、Intel でのみ高速に動作します。

誰でもテストを行いますか?ImageMagick よりも高速な他の優れたライブラリはありますか?

編集:より高速であるはずのImageMagickの8ビットバージョンを使用していました。

4

7 に答える 7

7

TigerVNC ( http://www.tigervnc.com ) のトランクにある libjpeg/SIMD を確認してください。ベースライン JPEG の圧縮/解凍で IPP とほぼ同じ速度の 64 ビットおよび 32 ビット バージョンを最適化しました。

http://www.mail-archive.com/tigervnc-devel@lists.sourceforge.net/msg00403.html

于 2010-01-20T06:21:12.410 に答える
3

AMDは、IPPのオープンソース代替品であるFramewaveを提供しています。

于 2009-05-15T15:41:43.137 に答える
3

BoostのライブラリであるGILには、画像データをJPEG形式で保存する方法が含まれていると思います。速度はわからないけど。ライブラリが Adob​​e によって後援されていることを考えると、かなりよくできていると思います。

于 2009-05-15T14:35:34.153 に答える
2

ImageMagick は libjpeg (別名 Independent JPEG Group ライブラリ) を使用します。libjpeg の速度を上げると、ImageMagick JPEG の速度が上がります。

いくつかのオプションがあります:

  1. 最適化された libjpeg をコンパイルします。最新の gcc と少なくとも Pentium 4 をお持ちの場合は-O3 -msse2、速度が向上するかどうか試してみてください。次に、LD_LIBRARY_PATHまたは他の方法を使用して、システムの代わりに libjpeg をロードできます。
  2. libjpeg-mmx を試してください。メンテナンスされておらず、おそらくバグがあり、セキュリティ上の欠陥がありますが、場合によっては速度が向上する可能性があります.
于 2009-06-06T04:44:29.827 に答える
1

512x512 jpeg を 100% の品質でタイミング エンコードしました (100% はロスレスではないことはわかっています)。基本的に、ImageMagick は libjpeg よりわずかに遅いだけでした。100 枚の画像の場合、違いは 10 分の 1 秒のオーダーでした。次に、SIMD 拡張 ( http://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html#source ) を使用して libjpeg を取得し、6 ~ 10 倍高速化しました。画像の種類によって大きく異なることに注意してください。黒が多い画像は非常に高速ですが、細部にまでこだわった画像は非常に低速です。これはエンコード アルゴリズムによるものだと思います。libjpeg-mmx を試してみる必要があるかもしれません。これは、ライセンスが何であるかさえわからない、私が入手した日本語版よりもメンテナンスが行き届いているように見えるからです。

私はまた、Framewave を機能させようとしましたが、それを軌道に乗せることさえできませんでした。ヘッダー ファイルには一部の構造の定義がなく、フォーラムはまったくサポートを提供していません。「AMDが後援している」なんて信じられない。

于 2009-06-08T15:00:19.663 に答える
1

かなり古いIndependent JPEG Groupもありますが、その速度については保証できません。しかし、それは安定している必要があります。

このページから見つけました。

于 2009-05-18T08:19:51.330 に答える