by greyloch

Google製のJPEGエンコーダー「Guetzli」がGitHubで公開されています。生成されるJPEGファイルはlibjpegと比較したとき、同等の品質でファイルサイズが20〜30%ほど小さくなるとのことです。

GitHub - google/guetzli

https://github.com/google/guetzli



特にニュースリリースなどは発表されていないようなのですが、2016年10月にEncode.ruというフォーラムにJyrki Alakuijala氏が投稿した内容(Googleキャッシュ)によると、このGuetzliはGoogleが新たな圧縮アルゴリズムとして2013年に発表した「Zopfli」ライクな、非常に遅いJPEGエンコーダーだとのこと。

画像の品質とファイルサイズについて、butteraugliを用いてlibjpegと結果を比較したところ、同等のスコア(品質)でもファイルサイズを35%減らすことができたそうです。なお、The Structural SIMilarity(SSIM)PSNR-HVS-Mでのスコアは13%〜14%悪化したとのこと。ただ、目視の限りでは「ブロックノイズなどが減少してきれいになっている」そうです。

GitHubのページ内ではPOSIX(UbuntuやArch LinuxなどUNIX系OS)向けとWindows向けのビルド方法、およびBazelを使ったビルド方法が紹介されています。

Windowsの場合、Visual Studio 2015vcpkgが必要。なお、vcpkgの利用に、さらにgit.exeが必要になってくるので、Git for Windows などを入れる必要があります。

ただし、「Release」のページではバイナリファイルが公開されているので、こちらを利用する手もあります。Windowsの場合、「guetzli_windows_x86.exe」をダウンロード。



GUIはないので、こんな感じでコマンドプロンプトから利用することになります。実行ファイルのみなので任意のフォルダに置き、「入力するファイル名」と「出力するファイル名」を渡して実行します。画面はサンプルとして配布されている「bees.png」を変換してみたところ。



結果、174KBのPNGファイルが38KBのJPEGファイルに縮みました。入力可能なファイルはJPEGとPNG、出力はJPEGのみです。



これが実際に使用したファイル。まずは変換前の「bees.png」。



そしてこれが変換後の「bees-v2.jpg」。ファイルサイズでは100KBちょっと縮んでいますが、その違いはほぼわかりません。