WebP(ウェッピー)は、米Googleが開発しているオープン標準の静止画像フォーマット。ファイルの拡張子は「.webp」。

## 概要

2010年9月30日に仕様が公表され、オープンソースの各種ツールと共に提供が開始された。

ウェブサイトのトラフィック量軽減と表示速度短縮を目的としており、インターネットのWebページで広く使われている非可逆圧縮のJPEGや可逆圧縮のGIF、PNGの置き換えを意図する規格である。JPEGとは異なり、非可逆圧縮でもアルファチャンネルを扱える。

画像圧縮については動画規格WebMのベースであるVP8ビデオコーデックの技術を利用しており、コンテナ形式としてRIFFを採用している。コンテナの部分を除くと、非可逆のWebPは1フレームのWebMである。

WebPの最大ピクセル数は16383x16383ピクセル。非可逆のサンプリングファクタはYCbCr 4:2:0のみ。

アルファチャンネル、ICCプロファイル、アニメーション、 EXIF/EMPメタデータに対応している(⇒#機能)。CMYKカラーモデルには対応していない。3D画像には将来対応する予定。

発音については公表時にGoogleは「Did you know? WebP is pronounced "weppy"」(WebPは"weppy"と発音する)と説明したことにより、ウェッピーとなった。なお、その説明は2012年には残っていない。

## 機能

### 基本機能

WebPの基本機能は単一静止画の可逆・非可逆圧縮である。非可逆画像圧縮コーデックはVP8のキーフレーム圧縮を基本とする。

### 拡張機能

WebPはオプションで拡張機能を有効化できる。以下は拡張機能の一覧である:

- アルファチャンネル
- 色設定: ICCプロファイルに基づく色管理
- アニメーション: アルファチャンネルが有効なアニメーション
- ファイルメタデータ: EXIF形式 or EMP形式のファイルメタデータ

## 評価

Googleの示した事例では、ファイルサイズは非可逆圧縮モードで(同一画像、同等画質の)JPEGと比較して25-34%小さくなり、可逆圧縮モードでPNGと比較して28%小さくなるとしている。また22%のファイルサイズ増加でアルファチャネルを追加できるとしている。可逆圧縮は、エンコードはPNGよりも時間がかかるが、デコードはPNGよりも高速であると主張している。一方、非可逆圧縮では、2013年10月に行われたMozillaの比較調査で、旧来のJPEGと大して変わらないという結果となった。

## libwebp

libwebpは、webpを取り扱えるライブラリである。C言語やJava、Go言語などが開発に使用されている。加えて、cwebpやdwebpなどのエンコード、デコード用のユーティリティも用意されている。

Linux、Windows、macOSにはプリコンパイルパッケージが用意されている。iOSにはフレームワークがあり、Androidでは、Android StudioのAPI レベル 18以上のプロジェクトで完全にサポートされる。

## 対応環境

### OS

- Android - 非可逆圧縮は 4.0 以降、可逆圧縮は 4.3 以降
- Microsoft Windows 10 Creators Update以降
- macOS - Big Sur 以降
- iOS - 14 以降

### ウェブブラウザ

- Google Chrome
- Mozilla Firefox 65以降
- Microsoft Edge 18以降
- Opera
- Safari 14以降
- SeaMonkey 2.53.5以降

### ビューアー

- nomacs
- PicView
- Pixelmator
- XnView
- IrfanView
- JPEGView
- Honeyview

### エディター

- Adobe Photoshop (23.2以降)
- GIMP (2.10.0以降)
- CLIP STUDIO (3.0.0以降)

### コンバーター

- Google Official WebP Tools
- Squoosh
- ImageMagick
- XnConvert
- Romeolight WebPconv
- Advanced Batch Image Converter
- PicWish
- Bandisoft Honeyview

### ライブラリおよびプラグイン等

- Squoosh CLI - Google製の画像圧縮コマンドラインインターフェース
- WebPJS - JavaScriptによるWebPライブラリ
- WebP QuickLook Plugin - macOSのQuickLook 用プラグイン
- Weppy - OS Xのウェブブラウザ向けのプラグイン
- ifwebp.spi - WebPファイルを表示するSusieプラグイン
- WebP Codec for Windows - Windows Imaging Component (WIC) に準拠したコーデック。導入することでWIC対応の各種ソフトウェアにてWebP画像の表示が可能になる。説明ページのみがリンク切れしているため、現在もダウンロードは可能。2024年7月現在でも、デコードのみの対応でエンコードには今後対応する予定。2016年1月以降は更新が行われていない。
- Webp 画像拡張機能 - Windows上で使用できる、Microsoft Edge用の拡張機能。Microsoft Storeで配布されている。2017年前後はEdgeにWebpを読み込む機能が備わっていなかったため代替手段として用いられた。しかし、バージョン18以降のEdgeは標準でWebpのデコード機能を備え、後にはChromiumベースになったため、同プラグインの使用用途はほぼ無くなっている。

## 仕様

WebP は画像に特化した RIFF のサブセットである。RIFFヘッダーは WebP File Header と呼ばれ、フォーマット名FourCCは `WEBP` でなければならない。コンテンツ及びメタデータに関するチャンクタイプが WebP 仕様により定められており、それ以外のチャンクは(RIFF仕様に基づき)unknown チャンクとして無視される。

チャンクタイプは以下の 8 種類が存在する:

- VP8: VP8コーデックで非可逆圧縮された単一静止画
- VP8L: 可逆圧縮された単一静止画
- VP8X: 拡張仕様の利用に関するメタデータ
- ICCP: ICCプロファイル
- ANIM: アニメーションのグローバル設定
- ANMF: アニメーションを構成する単一フレーム
- EXIF: EXIF形式のファイルメタデータ
- XMP: EMP形式のファイルメタデータ

### VP8チャンク

VP8チャンクは FourCC `VP8` をもち VP8 で非可逆圧縮された単一静止画を収納するチャンクである。

### VP8Lチャンク

VP8Lチャンクは FourCC `VP8L` をもち WebP lossless で可逆圧縮された単一静止画を収納するチャンクである。

### VP8Xチャンク

VP8チャンクは FourCC `VP8X` をもち RIFF 拡張仕様の利用に関するメタデータを収納するチャンクである。

WebP の最も基本的な役割は単一静止画を収納することである。他にアニメーション等の拡張機能がオプショナルであるが、基本機能のみを利用するならオプションON/OFFの明示的指定はファイル容量の無駄である。これを解決するため、WebP は VP8Xチャンクが存在しなければ基本機能のみ(全オプションOFF)と解釈する。その対として、オプションを1つでも利用する際は VP8Xチャンクを持ち、このチャンク内で全オプションの利用フラグと設定を明示する。

### ANIMチャンク

ANIMチャンクは FourCC `ANIM` をもちアニメーションのグローバル設定を収納するチャンクである。

バックグラウンド色およびループカウント数を設定できる。

### ANMFチャンク

ANMFチャンクは FourCC `ANMF` をもちアニメーションを構成する単一フレームを収納するチャンクである。

キャンパス内におけるフレームのX/Y座標・Hight/Width・継続長・アルファブレンド設定・フレーム破棄設定をメタデータとして有し、末尾に Frame Data をもつ。Frame Data は LISTチャンク に似たチャンクで、アルファ・ビットストリーム・unknown のサブチャンク列を格納している。

### EXIFチャンク

EXIFチャンクは FourCC `EXIF` をもち EXIF メタデータを収納するチャンクである。

ファイル全体のメタデータを収納するチャンクであるため、このチャンクかXMPチャンクのいずれか1つのみしか同時に存在できない。

### XMPチャンク

XMPチャンクは FourCC `XMP` をもち EMP メタデータを収納するチャンクである。

ファイル全体のメタデータを収納するチャンクであるため、このチャンクかEXIFチャンクのいずれか1つのみしか同時に存在できない。