技術的な仕組み(概要)
WebP は Google が提案したモダンな画像フォーマットで、ロス圧縮とロスレス圧縮の両方をサポートします。ロス圧縮は VP8 ベースの手法を用い、変換・量子化・エントロピー符号化により高い圧縮率を実現します。ロスレスは予測と辞書圧縮を組み合わせて高画質を維持します。
- ロス(Lossy):写真などの複雑な画像に適しています。
- ロスレス(Lossless):アイコンやスクリーンショットなど、ピクセルの完全な再現が必要な場合に適します。
- アルファ(透過):透過チャンネルをサポートします(ロス/ロスレス共に対応)。
- アニメーション:複数フレームを扱えるため、GIF の代替として有効です。
実運用では、写真はロス圧縮、アイコンや透過が必要な画像はロスレスを使うのが一般的です。
対応状況と実践アドバイス
主要な最新ブラウザは WebP に対応していますが、古いバージョンや特殊な環境では未対応のこともあります。互換性のためにフォールバック実装を用意してください。
互換性の実践例
<picture>タグで WebP とフォールバックを提供します。- CSS 背景画像はビルド時に複数フォーマットを用意して切り替えると安全です。
- アニメーションは Animated WebP を優先し、非対応環境では GIF/MP4 を代替します。
サンプル:<picture> でのフォールバック
<picture>
<source srcset="/images/example.webp" type="image/webp">
<img src="/images/example.jpg" alt="例の画像" class="w-full h-auto rounded">
</picture>このようにすれば、対応するブラウザは WebP を読み込み、対応しない場合は JPG にフォールバックします。
