最新記事 by 夜桜 なの (全て見る)
- 著名人が謝罪すべき時の良い手法 - 2024年2月1日
- 【能登地震】自衛隊さんが単独で行動できるときは? ニセ自衛官に注意 - 2024年1月12日
- 【能登地震】被災地に現るニセ自衛官に騙されないで - 2024年1月12日
- 【能登地震】自衛隊さんのお風呂に入るときの注意 - 2024年1月11日
- 自衛隊はなぜ単独で動けるの?能登半島地震においても - 2024年1月8日
某匿名掲示板で、まだRyzen 第2世代が遅すぎて愚痴を言いまくって
お買い得な価格のL3キャッシュ3倍 Zen3D 8コア TDP65Wを求めようとしているなのたんです。
8コア16スレッドを仮想マシン上の16コアのCPU上で同時に超圧縮の再ビルドをたまにおこなっており、
37003枚の画像を圧縮するとcc のコンパイルオプションを(OSカーネルやライブラリ全部すべてを含み) -O3 にしても 1日近くかかってしまいます。
以前mozjpeg と guetzli を簡易徹底比較したつもりですが、
せっかくですのでWebpに対応したのと、mozjpegがアップデートしたことで
mozjpeg vs guetzli vs webp を比較してみました。
Windowsバイナリのダウンロード先
圧縮するコマンドライン
- /opt/mozjpeg/bin/cjpeg -quality 84 -optimize
- /usr/local/bin/guetzli –quality 84
- /usr/local/bin/cwebp -quiet -q 80
もしくは /usr/local/bin/cwebp -quiet -q 75
利用しているサイト
冷えたカレーというよりも常温で食べる非常食のレトルトカレー
無理においしく見せようとせず、本当に非常食にした時のための
比較サイトです。
非常食を想定していますので、いざとなった時のためにインターネット回線がふくそうした時の為に、異常な程の圧縮施策を取っています。
掲載されている画像の実際の変換
1枚のおおむね4K画像の画像から Image::Magick を使用して、多少の画像自動加工をしてから
- 横1600pxのJPEG(クォリティー84)
- 横800pxのJPEG(クォリティー84)
- 横600pxのJPEG(クォリティー84)
- 縦✕横80pxのJPEG(クォリティー84またはクォリティー75)
を生成しています。
このデータをソース画像として、
Makefileを利用した並列処理にて
- mozjpeg とguetzli の療法で圧縮して小さいサイズを採用
- 同時にwebp で圧縮
を行ったもののデータです。
使用バージョン
- mozjpeg (cjpeg) v4.0.3
- guetzli v1.0.1
- webp (cwebp) v1.2.1
使用OSとコンパイルオプション
- FreeBSD 13.0-RELEASE p4 x86_64 kernel on Microsoft Windows 10 Hyper-V
CPUTYPE?=
CFLAGS+=-O2 -pipe
CXXFLAGS+=
COPTFLAGS+= -O3 -fno-strict-aliasing -pipe - FreeBSD 13.0-RELEASE p4 x86_64 world on Microsoft Windows 10 Hyper-V
CPUTYPE?=znver2
CFLAGS+=-O3 -fno-strict-aliasing -pipe
CXXFLAGS+=-O3 -fno-strict-aliasing -pipe -march=znver2
COPTFLAGS+= -O3 -fno-strict-aliasing -pipe -march=znver2 - FreeBSD ports
CFLAGS+= -O3 -fno-strict-aliasing -pipe -march=znver2 -fPIC
CXXFLAGS+=-O3 -fno-strict-aliasing -pipe -march=znver2 -fPIC
COPTFLAGS+= -O3 -fno-strict-aliasing -pipe -march=znver2 -fPIC
パット見の傾向
- mozjpegが v3 から v4になって、多少圧縮率が上がっています。
- guetzli は v1.01から一切メンテナンスされていないので、未だに200倍の時間をかけてます。
- mozjpegがv4になってからguetzliよりサイズが減少したファイルが増えています。
- 一般的にwebpのが超圧縮JPEGの平均1/2のサイズになるものの、場合によっては超圧縮(guetzliに限る)よりwebpのがサイズが大きくなる
という傾向にあります。
37003枚を超圧縮した総データサイズ
guetzli が失敗するケースが多くあるため、残念ながら 37078枚すべてを、どれがどれに・・というのは、うまい具合に表現することはできません。
しかし、総計を取ってみると
- オリジナル 1ファイル平均 351273 bytes
- mozjpeg 1ファイル平均 131087bytes
- guetzli 1ファイル平均 114851bytes
- 採用JPEG 1ファイル平均 121969bytes (圧縮率34.72%)
- webp 1ファイル平均 78685bytes(圧縮率22.40%)
となります。
生データを見てみる
https://docs.google.com/spreadsheets/d/1SFXM2GhwIs0dTnLwkkkdxOS3gKbO6T6OlbFYxgDh53U/edit?usp=sharing
非常に大きなスプレッドシートとなります。ブラウザークラッシュにはご注意ください。
※guetzli のサイズが 0 の場合、圧縮に失敗しています。