Mozilla製JPEGエンコーダー「MozJPEG」のインストール方法と使い方

ウェブブラウザ「Firefox」やメールソフト「Thunderbird」を開発しているMozillaが「MozJPEG」というJPEGエンコーダーを公開しています。

GitHub - mozilla/mozjpeg: Improved JPEG encoder.
Improved JPEG encoder. Contribute to mozilla/mozjpeg development by creating an account on GitHub.

画像容量を小さくする新しい技術やファイルフォーマットは定期的に現れていますが、どれも互換性という壁があり普及させるのは難しいのが現状です。

MozJPEGはlibjpeg-turboからのフォークで、既存のJPEGエンコーダーと互換性がありながら画像容量をさらに圧縮することを実現するために発足されたプロジェクトになります。

このプロジェクトは2014年にスタートしましたが、違いを最小限にしつつ高品質な圧縮を実現するため現在でも適時アップデートが行われています。

具体的にはバージョン1.0でjpgcrushというperlスクリプトを追加しているのですが、これによりWikipediaにあるサンプル画像1500枚の容量を平均で10%の削減できたそうです。

バージョン2.0ではプログレッシブJPEGだけでなくベースラインJPEGにも対応し、libjpeg-turboと比べて平均5%の容量を削減できるようになりました。

バージョン3.0以降もさらなる圧縮改善やバグ修正が続いています。

この記事ではMozJPEGのインストール方法と使い方を詳しく解説していきます。

MozJPEGをインストール

使用したOS

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

インストール手順

MozJPEGをダウンロードします。

記事更新時点での最新バージョンは3.3.1です。

wget https://github.com/mozilla/mozjpeg/archive/v3.3.1.tar.gz -O mozjpeg-3.3.1.tar.gz

autoconf、automake、nasm、libtoolをインストールします。

yum install autoconf automake nasm libtool

ダウンロードしたファイルを解凍してディレクトリに移動します。

tar xzvf mozjpeg-3.3.1.tar.gz
cd mozjpeg-3.3.1

configureファイルを作成します。

autoreconf -i

コンパイルしてインストールします。

./configure
make
make install

mozjpegは/opt/mozjpegにインストールされています。

このままだと使いづらい場合は/usr/local/binにシンボリックリンクを作成してください。

ln -s /opt/mozjpeg/bin/jpegtran /usr/local/bin/mozjpegtran

便宜上moz***としていますが、自分が使いやすい名前を付けてください。

cjpegやdjpegなどを使う場合も同様にシンボリックリンクを作成します。

[root@localhost ~]# mozjpegtran -version
mozjpeg version 3.3.1 (build 20190331)

最後にコマンドを入力してバージョン情報が出力されればインストールは完了です。

MozJPEGの使い方

jpegtran

基本的にはjpegtranのオプションと変わりません。詳細はこちらの記事に書いています。

jpegtranのインストール方法と使い方【JPG画像最適化】
jpegtranはJPEG画像を最適化できるコマンドラインツールです。 jpegtranは”圧縮”ではなく”最適化”なので、容量を凄く減らせるわけではないですが画質が劣化することがないのが利点となっています。 また、容量の削減以...

MozJPEGでは比率縮小するscaleオプションと指定位置をグレーアウトするwipeオプションが無くなっており、ベースラインで出力するrevertオプションとプログレッシブスキャンによる最適化を無効にするfastcrushオプションが追加されています。

jpegtran -revert -outfile 出力ファイル名 ファイル名
jpegtran -fastcrush -outfile 出力ファイル名 ファイル名

MozJPEGの性能テスト

元となる画像は幅800pxにリサイズ後、本家jpegtranに-copy noneと-optimizeオプションを付けて出力したものです。

その画像に、MozJPEG版jpegtranで同じオプションを使って出力しました。

本家jpegtran(511KB)

MozJPEG版jpegtran(485KB)

511KB→485KBとなり、約5.09%の容量削減となりました。

見た目では違いは全くわかりません。

一応、本家jpegtranを通さず直接MozJPEG版jpegtranを実行した場合でも結果は変わりませんでした。

さいごに

以上がMozJPEGのインストール方法と使い方になります。

少し試しただけですが、普通にjpegtranを使うよりもMozJPEGを通した方が良さそうな感じですね。

画像を比較して見ても差を感じさせませんでした。

libjpegなどが事前にインストールされている場合、コマンド名が被ってしまったりとインストール方法に一癖ありますが、そこまで難しくないので問題ないかと思います。

MozJPEG、興味がある人は一度触ってみてはいかがでしょうか。

コメント

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