work.log

元エンジニアの備忘録的ブログ

jpegtranでJPEG画像を最適化してみる

投稿:

WordPress で利用する画像ファイルを最適化するメモです。

前回の Pngcrush に引き続き、jpegtran を使って今度は JPEG 画像を最適化してみます。

インストールおよび行ったテスト内容は以下に記載します。

jpegtranのインストール

利用している FreeBSD 8.3 の環境では、jpegtran コマンドは気付いたら入っていたので特に何もしませんでしたが、ない場合は以下のようにインストールすると良いと思います。

# cd /usr/ports/graphics/jpeg
# make install clean

CentOS の場合は libjpeg というパッケージに含まれているので yum でインストールします。

# yum -y install libjpeg

インストールとしてはこんな感じです。

jpegtranで画像の最適化

JPEG 画像には EXIF 情報等の表示には影響しないデータが含まれている場合があるので、これを削除して劣化させずに最適化という感じなります。

他にもハフマンテーブルと呼ばれるデータ構造 ? を最適化して圧縮率の改善を図るという方法もあります。

これに使うオプションは以下です。

  • -copy none = EXIF 情報等のメタデータを削除
  • -optimize = ハフマンテーブルの最適化

コマンドの使い方は以下のようになります。

# jpegtran -copy none -optimize -outfile dest.jpg src.jpg

jpegtranの動作テスト

以下の JPEG ファイルを用意してそれぞれ最適化してみたいと思います。

  • sample-01.jpg (600×400 75KB)
  • sample-02.jpg (2048×1365 817KB)

sample-01.jpg (最適化前)

jpegtran-sample-01

sample-01.jpg (最適化後)

jpegtran-optimization-01

ファイルサイズは 75KB → 67KB となり、約 10.6% バイト数を削減できました。

sample-02.jpg (最適化前)

jpegtran-sample-02

sample-02.jpg (最適化後)

jpegtran-optimization-02

表示される画像は上記と同じですが、劣化具合を確認するために大きいサイズの画像を利用しました。

ファイルサイズは 817KB → 794KB となり、約 2.8% バイト数を削減できました。

先ほどと比べるとほとんど削減できていませんが、いずれも画像の劣化はないように思えます。

画像によっては効果が今ひとつという場合もあるのですが、Pngcrush と比べるとサーバリソースもそんなに食わない見たいですのでついでにやっておく程度で組み込むのは有りかもしれません。

簡単でしたが jpegtran については以上になります。

関連記事

PngcrushでPNG画像を最適化してみる