ImageMagick高速化まとめ
最新版を使う。
imagemagickをOpenMPを無効にして最新にバージョンアップ
デフォルトでOpenMPオプションは有効になっています。
OpenMPオプションが有効のままだと、メモリを多く消費するようです。
--disable-openmp
convertコマンドによるリサイズ処理に、下記オプションを設定
-define jpeg:size=リサイズ幅xリサイズ高さ
このオプションが有効なのはjpeg画像のみですが、
リサイズ処理の時間の削減、メモリ消費を抑えることができるようです。
一説では、このオプションの有無で10倍の速度の差が発生するといわれていました。
jpeg画像をリサイズする際には上記オプションを必ずつけるようにしましょう。
本当は速いImageMagick: サムネイル画像生成を10倍速くする方法
8bit
QuantumDepth=8バージョン(Q8)は業界基準の24/32ビットピクセルを提供します。
通常はこのQ8バージョンで十分です。 もう一方のQuantumDepth=16バージョン(Q16)は、
48/64ビットピクセルの高画質カラーを提供します。 Q8はQ16に対してメモリ使用量は約半分、
CPU消費量は30%程度少ないです。
学術・医学的な目的で使用する場合、高精度のQ16を選択すれば良いでしょう。
--with-quantum-depth=8
libjpeg-turboを入れる (書き途中)
更にこれ使えば爆速?
libjpeg-turboはMMX、SSE、SSE2 SIMD命令を使用して、
x86および64ビットx86プラットフォームでの
ベースラインJPEG圧縮/伸張処理を2倍から4倍程度に高速化します。
libjpeg/SIMDをベースにしていますが、数多くの改良が施されています。
http://sourceforge.jp/projects/sfnet_libjpeg-turbo/
libjpeg-turbo-1.2.0.x86_64.rpm
cd /usr/local/src
sudo wget 'http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Flibjpeg-turbo%2F1.2.0%2Flibjpeg-turbo-1.2.0.x86_64.rpm'
sudo rpm -Uvh libjpeg-turbo-1.2.0.x86_64.rpm
準備中... ########################################### [100%]
1:libjpeg-turbo ########################################### [100%]
cd /opt/libjpeg-turbo/
tree
.
|-- bin
| |-- cjpeg
| |-- djpeg
| |-- jpegtran
| |-- rdjpgcom
| |-- tjbench
| `-- wrjpgcom
|-- classes
| `-- turbojpeg.jar
|-- include
| |-- jconfig.h
| |-- jerror.h
| |-- jmorecfg.h
| |-- jpeglib.h
| `-- turbojpeg.h -> /usr/include/turbojpeg.h
|-- lib64
| |-- libjpeg.a
| |-- libjpeg.so -> libjpeg.so.62.0.0
| |-- libjpeg.so.62 -> libjpeg.so.62.0.0
| |-- libjpeg.so.62.0.0
| `-- libturbojpeg.a -> /usr/lib64/libturbojpeg.a
`-- man
`-- man1
|-- cjpeg.1
|-- djpeg.1
|-- jpegtran.1
|-- rdjpgcom.1
`-- wrjpgcom.1
# 毎回exportはめんどくさいから
# ldconfigに追加してあげる
echo /opt/libjpeg-turbo/lib64/ > /etc/ld.so.conf.d/libjpeg-turbo.conf
ldconfig
ちょっと待ってください。。。。
画像軽量化まとめ
・メタデータを削除する。
・webpを検討する。