guetzliはGoogleの新しいJPEGエンコーダ
Googleの新しいJPEGエンコーダー "guetzli"がニュースになっていたので調べてみた。
グーグル、JPEGを35%圧縮するエンコーダ「Guetzli」を考案 - CNET Japan
https://www.tekitouniyaruwa.com/wp-admin/post-new.php
このguetzliというエンコーダ、JPEGに圧縮するのであるが、通常のJPEGエンコーダに比べて同じ画質でファイルサイズを小さくできるという。Googleでのテストでは35%ファイルサイズを小さくできるようだ。
つまりJPEGで12MBくらいのJPEGファイルであれば8MBくらいまでに落としても同じ画質ということである。
(実際には元から圧縮されているファイルを再度圧縮すれば画質は劣化するが。。。)
特にRAWで撮ったが、とりあえず記録用としてJPEGにしてとっておくことにするようなケースではなるべく画質を保ちつつサイズを小さくしたい。そういう用途には向くだろう。
というわけで早速試してみた。
guetzli使用の準備
guetzliは以下からダウンロードできる。
GitHub - google/guetzli: Perceptual JPEG encoder
https://github.com/google/guetzli
私が参考にしたのは以下のサイト。
Googleが開発したJPEGエンコーダー「guetzli」を試してみた | cupOF Interests
http://co.bsnws.net/article/206
libpngがないとMakeができない。
guetzliを試す
ビルド後に引数なしで起動すると説明が出る。
guetzli [flags] input_filename output_filename
Flags:
--verbose - Print a verbose trace of all attempts to standard output.
--quality Q - Visual quality to aim for, expressed as a JPEG quality value.
--memlimit M - Memory limit in MB. Guetzli will fail if unable to stay under
the limit. Default is 6000 MB
--nomemlimit - Do not limit memory usage.
--quality 値 で画質指定。
メモリの使用量の上限も指定ができるようだ。
とりあえず画質だけ指定して試してみた。
Guetzli should be called with quality >= 84, otherwise the
output will have noticeable artifacts. If you want to
proceed anyway, please edit the source code.
Guetzli processing failed
guetzliは画質指定が84以上じゃないとダメだと。ということで84にして起動。
圧縮した画像は4200万画素で、もともとRAWで撮ったものをLightroomでquality 100としてJPEGで出力したもの。画像の内容はハンバーガーとポテトである。
この画像はguetzliで圧縮後のファイルです。(6.5MB)
この画像1枚を圧縮するのにほぼちょうど1時間かかった。
Macは2012年のMacbook Pro Retina 15インチでi7 2.6GHz, RAM 16GB。
guetzli稼働中はCPUは1コアのみ100%で、メモリは6〜7GBほど使用されていた。
同じくLightroomからQuality 84でJPEGを生成し、まずサイズを比べてみた。
Lightroomで生成した方が12.2MB, guetzliで生成した方は6.5MBとなった。50%近く小さい。
また絵についても見た目で比較してみたが、差はわからなかった。左がguetzli、右がLightroomで出力した画像である。
まあ、比較に使った画像がもともと高ISOで撮ってて若干ノイズがあるってのもね。。。
ファイルサイズに6MBほど差が出たということは、100枚なら600MB, 10000枚なら60GBである。しかし1枚の画像の圧縮に1時間かける価値があるかというと大半の人はないと思うだろう。そもそもCPUをフルに動かす電気代もかかるしね。
あと、Exifを確認してみたが撮影やプロファイルに関する情報が全て消えていた。この辺りもまだ実験用という感じだ。
今後またアップデートがあったら試してみたいと思いました。