画像エンジン・画像ライブラリなどの調査

プログラミング
この記事は約7分で読めます。

 

訳あって画像処理をしたいため、画像変換エンジン・画像変換OSS・画像変換ライブラリについて調査したメモ書き。特に画像の拡大縮小(リサイズ機能)に焦点をあてて調べてます。

  • ImageMagick
  • Graphicsmagick
    • ImageMagickから派生したライブラリ
  • Imlib2
  • OpenCV
    • 汎用的な画像ライブラリ
  • pillow(PIL)
    • pythonの画像ライブラリ
  •  GD
    • PHPの画像ライブラリ
  • Small_Light
    • apacheのモジュール
    • 裏側はImageMagick
  • Nginx_Small_light
    • Nginxのモジュール
    • 裏側はImageMagick
  • pilbox
  • thumbor

 

■python画像ライブラリ‐比較

pythonで使えるライブラリに関して、まさに比較しているサイトがあった

Benchmark of Python Image Processing(resize) | hexacosa.net
Benchmark of Python Image Processing(resize) hexacosa.net
  • gd
  • kaa-imlib2
  • PIL
  • PythonMagick
  • pgmagick
  • OpenCV Python

の6つを比較している。

 

■多くのライブラリを比較している

Speed_and_Memory_Use
SoftwareRun time (secs real)Memory (peak RSS MB)Times slower
tiffcp -s0.19148
VIPS C/C++ 8.40.17431.0
Python VIPS 8.40.26511.5
VIPS C/C++ 8.4, JPEG images0.33611.9
VIPS command-line 8.40.47402.8
ymagine git master 15/12/15 (see 2)1.062.93.2 (compared to vips-c JPEG)
GraphicsMagick 1.3.230.64913.5
sips 10.4.4 (see 6)0.7 (est.)2684.1
NetPBM 10.0-15.30.84744.4
ImageMagick 6.8.9-90.754854.5
VIPS C/C++ 8.4, one thread0.77324.5
VIPS nip2 8.40.79854.6
RMagick 2.15.2 (ImageMagick 6.8.9)0.866825.1
Pillow 3.1.2 (see 1)0.942075.6
OpenCV 2.4.9.11.132156.7
libgd 2.1.1 (see 2)2.311867 (compared to vips-c JPEG)
ExactImage 0.9.1 (see 3)1.391298.2
Imlib2 1.4.7 (see 9)1.532419
FreeImage 3.17 (see 7)1.591859.2
ImageMagick 7.0.2-5 (see 11)1.577339.2
ImageScience 1.3.0 (based on FreeImage 3.17, see 7, 8)1.8136010.6
gmic 1.6.21.972411.2
pike 8.02.2834213.4
OpenImageIO 1.6.11 (see 10)3.0757818.1
GEGL 0.3.8 / BABL 0.1.18 (see 4)12.485173
Octave 4.0 (see 5)15.48615591

■こちらも検証サイト

WYSIWYG: Image processing Benchmarks

結論は以下の通り、VIPS・EPEGがかなり早いが、他のは高機能。みたいな感じ?

From the above results, VIPS seems to be the fastest among all followed by epeg and opencv. But one thing to consider is the features provided vs performance. Libraries such as VIPS and EPEG are more optimized towards image resizing and image cropping while opencv, graphicsmagick and imagemagick provides a slew of image processing and analysis features.

 

■Imlib2とImageMagickの比較検証のサイト(日本語)

Imlib2とImage::Imlib2のJPEGヒント対応版を作成しました - 猫好きモバイルアプリケーション開発者記録
久々に作ったものをGithubへ公開しました。元ネタは、よくImageMagickと比較される Imlib2 です。これのJPEGヒント対応版が欲しくなったので探したのですが、どこにも見当たらなかったのでいっそのこと自分で作りました。( …

 

■pillowの公式サイトでのパフォーマンス比較

Pillow Performance

PIL・Pillow・Pillow-SIMD・ImageMagick・Skia・OpenCV・IPPのパフォーマンス比較を行っている。

 

■画像変換Nightという勉強会が過去にあった模様

画像変換Night - 資料一覧 - connpass
「画像変換Night」の資料一覧です

 

■画像の最適化

画像の最適化を行うものは以下のようなものがあるらしい(まったく中身を調べてない)

  • ImageOptim
  • ImageAlpha
  • JPEGmini

 


■dockerからのGPUリソースを利用

GPUリソースをdockerから利用することに関しては以下のページが参考になった

Github:https://github.com/NVIDIA/nvidia-docker

日本語解説:http://gihyo.jp/admin/serial/01/ubuntu-recipe/0461

そしてwindows10からではGPUパススルー(ホストOSでGPU使えなくする代わりにゲストOS上で使えるようにする技術)を実施するぐらいしかCudaを効率的に利用できなさそう…

 

■画像リサイズに関してGPUとCPUでの比較

コメント

タイトルとURLをコピーしました