普段、ブログで画像を使うことは稀なのですが、たまに使いたくなります。
そんな中、面白そうな記事を発見しました。
目次
JPEG エンコーダ
base on GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE
2017年01月13日 08時00分
Google製のJPEGエンコーダー「Guetzli」がGitHubで公開されています。生成されるJPEGファイルはlibjpegと比較したとき、同等の品質でファイルサイズが20~30%ほど小さくなるとのことです。
base on JPEG画像の画質そのままでさらにサイズを小さくする「mozjpeg」プロジェクト - GIGAZINE
2014年03月31日 20時00分
非営利組織のMozillaは、そんなJPEGファイルを品質を落とさずにさらに10%程度圧縮できる新しいJPEGエンコーダ「mozjpeg」のプロジェクトを開始しています。
Google の Guetzli は偶然記事を見つけたので、その時は斜め読みした程度でした。
後で調べた時に Mozilla の mozjpeg が検索にヒットして、調べるうちに興味が湧いてきた感じです。
学生の頃、HTMLタグを削って通信量をどれだけ削れるかに邁進していた頃を思い出しました...。
画像最適化ソリューション
romeolight という Webサイトで画像最適化ソフトウェアが配布されています。
各々 GIF, JPG, PNG に対応しています。
base on 画像最適化ソリューション - romeolight
GIFmicro | GIFファイル最適化アプリ | Romeolight
JPEGmicro | JPEGファイル最適化アプリ | Romeolight
PNGmicro | PNGファイル最適化アプリ | Romeolight
JPEGmicro vs. PNGmicro
Lubuntu(Ubuntu)のスクリーンショットソフトウェアは標準で gnome-screenshot が組み込まれています。
gnome-screenshot は PNG形式でキャプチャを取るので、PNGファイルの処理前後と GIMP で JPEG変換したファイルの処理前後を比較してみました。
それぞれ、対応するソフトウェアは以下になります。
- PNG ファイル最適化 : PNGmicro
- JPEGファイル最適化 : JPEGmicro
検証
設定
以下の条件で確認しました。
JPEGmicro
- バージョン
JPEGmicro 2.4 - JPEG OPTION
✓ Exif 及び XMP データを削除
✓ ICC カラープロファイルを削除
✓ プログレッシブ
✓ 非可逆圧縮モード (非可逆圧縮レベル : 50)
※オプション全てにチェックを入れており、且つ非可逆圧縮レベルを標準の75より低い「50」に設定しています。
PNGmicro
- バージョン
PNGmicro 2.1 - PNG OPTION
最適化レベル : 3
✓ インターレス
✓ カラープロファイルを削除
✓ 非可逆圧縮モード (非可逆圧縮品質 : 0)
※最適化レベルは標準の3のままで使用しています。
最適化レベルは1でもサイズは変わりませんでした。なお、6ではフリーズしました(マシンパワーの可能性あり)。
また、非可逆圧縮品質は最低の「0」に設定しています。
サイズ比較
実際に処理した結果、前後のファイルサイズを表にしました。
なお、画像は先日記事にした「Chrome 拡張機能に対応した Opera 55」で使用した画像と同じです。
※記事で使用したのは PNG形式の画像です。
ファイル | 元サイズ | 処理後サイズ | 処理後サイズ(率) |
---|---|---|---|
PNGmicro | |||
20180822-1.png | 399,688 byte | 154,865 byte | 38.7 % |
20180822-2.png | 319,491 byte | 118,573 byte | 37.1 % |
20180822-3.png | 243,633 byte | 96,553 byte | 39.6 % |
20180822-4.png | 12,179 byte | 4,956 byte | 40.7 % |
20180822-5.png | 52,057 byte | 22,686 byte | 43.6 % |
20180822-6.png | 91,136 byte | 39,254 byte | 43.1 % |
JPEGmicro | |||
20180822-1.jpg | 466,510 byte | 67,584 byte | 14.5 % |
20180822-2.jpg | 315,101 byte | 42,046 byte | 13.3 % |
20180822-3.jpg | 302,133 byte | 42,504 byte | 14.1 % |
20180822-4.jpg | 33,474 byte | 5,849 byte | 17.5 % |
20180822-5.jpg | 134,924 byte | 17,400 byte | 12.9 % |
20180822-6.jpg | 235,685 byte | 31,256 byte | 13.3 % |
考察
- ファイルサイズが大きい方が結果が出やすい
元のファイルサイズが 100kb 以上無いと、JPGmicro・PNGmicro の差異は出づらいようです。 - JPG は非可逆圧縮なのでサイズを落としやすい
可逆圧縮の PNG と比較すると JPG はサイズの落としやすさが顕著に出ました。
今回、JPGmicroで非可逆圧縮レベルを"50"に設定しました。
結果として、ファイルサイズが極端に小さくなった反面、目視で劣化が分かる程度の画質となりました。
可逆圧縮の PNG は設定によらず綺麗にサイズダウンが可能です。
非可逆圧縮の JPG はサイズを大幅に落とせる反面、画質に影響が出ます。
どんなときでも綺麗に、をモットーにするなら PNG もありではないでしょうか。