BLOGTIMES
2017/03/18

Google が高品質な JPEG エンコーダー「Guetzli」を公開

  encoder  google 
このエントリーをはてなブックマークに追加

Google が「Guetzli」という新しい JPEG エンコーダーを公開していたのでさっそく試してみました。
公式ブログの解説と、GitHub のリポジトリは以下にあります。

インストール方法は

手っ取り早く試したいという場合には Releases にアップロードされているコンパイル済みのバイナリを使うのが楽です。
インストール方法は 64bit 版 Linux の場合には guetzli_linux_x86-64 を適当な場所 (例えば /usr/local/bin )などに突っ込むだけで OK です。

wget https://github.com/google/guetzli/releases/download/v1.0/guetzli_linux_x86-64 -O /usr/local/bin/guetzli chmod 755 /usr/local/bin/guetzli

guetzli の特徴は?

この guetzli の特徴はより高品質で小サイズな JPEG を生成できることのようです。
ただし、エンコード時間が長くなる(遅い)という欠点はあるようです。

Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch

Guetzliによる変換で従来よりもファイルサイズを小さくできるものの、検索アルゴリズムの処理に時間が必要で、結果として従来のlibjpegといったエンコーダを用いるよりもエンコード時間が長くなってしまうというデメリットが発生する。

これと同じようなプログラムとしては Mozilla が開発した mozjpeg があるので、今回はこれと比べてみようと思います。
左が mozjpeg で最適化したもの 、右は左をさらに Guetzli で最適化したもの。


これを見比べる限りでは、どちらも遜色ないように見えます。

ファイルサイズと処理にかかる時間ですが、ファイルサイズについては mozjpeg よりも若干小さくなるのは間違いないようです。
ところが、1200x800 の JPEG をエンコードすると、Xeon E5-2650v2 を使ってもなんと1分/枚くらいかかります
アルゴリズム的に仕方ないのかもしれませんが、現在のところ実用的には mozjpeg(数秒/枚) で十分と言えそうです。

$ cat /proc/cpuinfo | grep CPU | uniq -c 4 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz $ time guetzli -quality 100 20170219-D500_029700.JPG 20170219-D500_029700_guetzli.JPG real 0m57.703s user 0m55.008s sys 0m2.599s $ ls -l 20170219-D500_029700.JPG 20170219-D500_029700_guetzli.JPG -rw-r--r-- 1 apache apache 289666 Mar 17 22:17 20170219-D500_029700_guetzli.JPG -rw-r--r-- 1 apache apache 284181 Feb 19 14:46 20170219-D500_029700.JPG

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9216
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン