-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
画像の圧縮にAVIFかJPEG XLを使う #9283
Comments
Mastodon v4はあまり普及してないので後回しかな |
これに関してなにかデータとかありますか?ただ気になるだけですが |
まず大きなインスタンス(fedibird, mstdn.jp)あたりが対応しないことには… |
よしんばMastodon v4が普及したとしてもImageMagick 7が必要なので対応するインスタンスは限られそう(v6が広く使われているようなので)
|
FedibirdはまだMastodon 3.4.1使っているし、時間かかりそうですね |
MEMO: Webpもv4からっぽい mastodon/mastodon@379a7a7 |
* chore: Make image/avif browsersafe * server side * change FileInfoService * ✌️ * avifはMastodonでは絶望的 see #9283 Co-authored-by: syuilo <[email protected]>
Mastodonや他のソフトウェアが問題なので、高互換と圧縮優先の2種類を用意して使い分けるというのはどうだろう |
AVIFを検討するならJPEG XLも検討して良さそうだけど、ブラウザの対応が全滅している Sharp.jsの対応も面倒 lovell/sharp#2731 (comment) |
圧縮優先低互換の方をストレージに保存するのがサーバーのCPU的にもストレージ的にも無難そう |
* chore: Make image/avif browsersafe * server side * change FileInfoService * ✌️ * avifはMastodonでは絶望的 see misskey-dev#9283 Co-authored-by: syuilo <[email protected]> Co-authored-by: tamaina <[email protected]>
avifは重たすぎるし、jpeg xlはブラウザ対応の見込みがわからないためnot planned |
AVIF 重いのは昔の話では |
WebPに比べてどのくらい重たいのか数字をみたいですね |
なんなら WebP (VP8) エンコーダー (libwebp) の方が wasm に持ち込むのが高コストという事象などがある |
sharp.jsで試してみるか
ならサーバーで圧縮するのはwebp, クライアントではavifにするとかの対応もありうる |
WebPってVP9サポートします? |
すみません VP8 です |
webp (smartSubsample: false) vs avif webp (smartSubsample: true) vs avif |
effort: 0だと、avifは写真は得意だがイラストがかなりノイズが多くなる |
wasm-vipsも試して見たかったですがAVIFサポートがなかったです kleisauke/wasm-vips#44 |
avifの個人的な指針 写真: イラストlossy: イラストロスレス: |
でも写真とイラスト区分ができないですね lossyだと圧縮の結果のサイズの違いが大きいのでオプションで両方できるようにするのはどうでしょう。 |
sharp.jsのstats()のentropyを見てなんとなく判断できないかな |
7以上は写真とみなすとか |
Sharpでやってるのは縮小とかbadge生成とかもあるので(まあ圧縮部分だけRustにすればいいだろうけど) rav1eじゃなくてlibaom使ってた lovell/sharp-libvips#97 |
wasmビルドも作って欲しい(Service Worker内で実行する) |
全部 Rust ベースにして良さそうじゃね
misskey-dev/slacc はあくまでバインディングのみを目的としているからロジックは分離して slacc 経由でのバックエンドバインドと wasm バインドそれぞれ作ればよさそう |
まあ可能なら(もはやそれ単体ですごいライブラリだと思う…) |
優れた crate がいっぱいあるしそこまで大変でもないと思う(楽観視) |
とりあえず libavif で未リリース機能としては存在するっぽい https://github.com/AOMediaCodec/libavif/blob/905e30049fda48053fc2049bc08422cdb3292ac8/CHANGELOG.md#unreleased |
そういう調子だとブラウザのデコーダーが対応してるか怪しくない? |
AOMediaCodec/av1-avif#134 で追加されたファイルのデコーディングはFirefox/Chrome/Safariで全部問題なさそうです |
https://github.com/saschazar21/wasm-rav1e wasmやっぱ遅いのか |
(生vips使いたくない…と思ったけどd.tsがあるからまだマシかしら) |
(wasm、ネイティブより遅いのとバンドルサイズが馬鹿にならないのは注意すべきよね) |
どのみちメディアが十分大きいしキャッシュ効くから気にするほどではない |
そろそろ手をつけたいがまだむり |
Edgeってavif対応したんだろうか |
Edge 114はダメらしい |
https://front-end.social/@jensimmons/110497266298128289
👀 |
JPEG XLにするか |
(webpでも他のソフトに取り込めないとそれなりに文句が出てるわけだけど、jpeg xlにしたら大変なことになりそう) |
ん、Firefoxはトグルがデフォルトでオフなのか @saschanaz なんとかして |
サーバーどうしに |
Chromeもデフォルトが無効だった |
Edgeも121からAVIFに対応したようです |
I don't think browser support should matter much in JPEG XL. It supports compressing legacy JPEG images further without any quality loss (while being fully reversible bit-by-bit), so we can reencode all saved JPEGs as JPEG XL internally and just serve JPEG on-the-fly. That's some free storage just waiting to be reclaimed for pretty large servers like misskey.io (up to 20% filesize saved on average) |
お |
Summary
Related to #6626, #9275
Mastodon v4からAVIFに対応したらしいので
https://caniuse.com/avif
The text was updated successfully, but these errors were encountered: