🐕
vipsによるピラミダルタイルTIFF作成と圧縮方式の比較
はじめに
高解像度画像をWeb上で快適に閲覧するためには、ピラミダル構造(複数解像度)とタイル分割が不可欠です。本記事では、vipsを使用してJPEG2000画像からピラミダルタイルTIFFを作成し、各圧縮方式のファイルサイズを比較検証しました。
検証環境
- vips 8.17.3
- macOS (darwin)
- 元画像: 764029-1.jp2 (274MB)
- 出典: 国立公文書館デジタルアーカイブ
vipsコマンド
JPEG圧縮(非可逆)
# 品質100(ほぼ無劣化)
vips tiffsave input.jp2 output_q100.tif --tile --pyramid --compression=jpeg --Q=100
# 品質75(バランス型)
vips tiffsave input.jp2 output_q75.tif --tile --pyramid --compression=jpeg --Q=75
# 品質25(高圧縮)
vips tiffsave input.jp2 output_q25.tif --tile --pyramid --compression=jpeg --Q=25
ロスレス圧縮
# Deflate圧縮(zlib)
vips tiffsave input.jp2 output_deflate.tif --tile --pyramid --compression=deflate
# LZW圧縮
vips tiffsave input.jp2 output_lzw.tif --tile --pyramid --compression=lzw
# 無圧縮(4GB超の場合はBigTIFF形式が必要)
vips tiffsave input.jp2 output_none.tif --tile --pyramid --compression=none --bigtiff
検証結果
| ファイル | 圧縮方式 | サイズ | 元ファイル比 | 備考 |
|---|---|---|---|---|
| 元ファイル | JPEG2000 | 274MB | - | 入力 |
| q25.tif | JPEG Q=25 | 57MB | 0.21x | 非可逆・高圧縮 |
| q75.tif | JPEG Q=75 | 167MB | 0.61x | 非可逆・バランス |
| q100.tif | JPEG Q=100 | 2.4GB | 8.8x | 非可逆・高品質 |
| deflate.tif | Deflate | 2.8GB | 10.2x | ロスレス |
| lzw.tif | LZW | 3.2GB | 11.7x | ロスレス |
| none.tif | 無圧縮 | 4.3GB | 15.7x | ロスレス |
画質比較
JPEG圧縮の品質による違いを視覚的に比較しました(左から Q=25, Q=75, Q=100)。

Q=25では文字の輪郭にノイズが見られますが、Q=75以上ではほぼ劣化を感じません。
考察
JPEG圧縮
- Q=25: 元ファイルの約1/5。文字の輪郭などにJPEG特有のノイズが見られる。プレビュー用途向け
- Q=75: 元ファイルの約6割。品質とサイズのバランスが良く、多くの用途で推奨(vipsのデフォルト値)
- Q=100: ロスレスに近いが、ファイルサイズはロスレス圧縮より小さい
ロスレス圧縮
- Deflate: ロスレス圧縮の中で最も効率的(2.8GB)
- LZW: Deflateより約14%大きい(3.2GB)
- 無圧縮: 4GB超のためBigTIFF形式が必要
JPEG2000との比較
元のJPEG2000ファイル(274MB)は非常に効率的な圧縮を実現しています。JPEG2000はウェーブレット変換を使用しており、TIFFのJPEG圧縮(DCT変換)とは異なるアルゴリズムです。
ただし、JPEG2000はブラウザでの直接表示に対応しておらず、IIIFサーバー経由でのタイル配信が必要です。ピラミダルTIFFは多くのIIIFサーバー(Cantaloupe等)でそのまま利用可能です。
用途別推奨設定
| 用途 | 推奨設定 | 理由 |
|---|---|---|
| アーカイブ保存 | Deflate | ロスレスで最小サイズ |
| Web配信(高品質) | JPEG Q=75〜85 | 品質とサイズのバランス |
| Web配信(速度重視) | JPEG Q=50〜60 | 高速転送 |
| 印刷用途 | JPEG Q=90〜100 | 高品質維持 |
まとめ
vipsを使用することで、高解像度画像から効率的にピラミダルタイルTIFFを作成できます。圧縮方式の選択は用途に応じて行い、一般的なWeb配信にはJPEG Q=75が推奨されます。
Discussion