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