avifについて https://ics.media/entry/201001/
遅延読み込みについて https://www.lyzon.co.jp/blog/2020/20200511_how-to-make-lazy-loading-image-with-fade-effect/
Progressive jpegについて https://e-words.jp/w/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%AC%E3%83%83%E3%82%B7%E3%83%96JPEG.html
Astro で解像度ベース Progressive AVIF を実装する(libavif layered + scaling-mode)
akitoshi-lab.com では、ギャラリー等の大きな画像を AVIF 1ファイルのまま段階表示できるように「解像度ベース Progressive AVIF(layered AVIF)」を採用しました。
「最初に粗いプレビューが出て、徐々に鮮明になる」体験を LQIP みたいに別画像を用意せずに実現できるのが最大の魅力です。
ただし、これは一般的なAVIFの使い方ではなく、libavif の avifenc が提供する “EXPERIMENTAL” 機能を利用します。(manpages.debian.org)
1. Progressive AVIF とは
Progressive AVIF(ここでは layered AVIF を指す)は、1つのAVIFファイルに複数の「レイヤ(= フレームに似たもの)」を格納し、対応ビューアが 低解像度→高解像度の順で段階的に描画できる形式です。
メリット
制限
2. --progressive と --layered は別物
avifenc には “progressive” に関係する入口が2つあります。
--progressive は manpage 上も「単一入力から layered を自動設定する(EXPERIMENTAL)」であって、“解像度ベースになる”とは書かれていません。(manpages.debian.org)
解像度ベースの段階表示を 確実に作りたいなら --layered + --scaling-mode